{"version":3,"sources":["webpack:///./node_modules/@firebase/database/dist/index.esm.js"],"names":["name","version","SDK_VERSION","setSDKVersion","DOMStorageWrapper","domStorage_","this","prefix_","prototype","set","key","value","removeItem","prefixedName_","setItem","get","storedVal","getItem","remove","toString","MemoryStorage","cache_","isInMemoryStorage","createStoragefor","domStorageName","window","domStorage","e","PersistentStorage","SessionStorage","logClient","LUIDGenerator","id","sha1","str","utf8Bytes","update","sha1Bytes","digest","encodeByteArray","buildLogMessage_","varArgs","_i","arguments","length","message","i","arg","Array","isArray","apply","logger","firstLog_","enableLogging","logger_","persistent","logLevel","VERBOSE","log","bind","logWrapper","prefix","error","fatal","Error","warn","warnIfPageIsSecure","location","protocol","indexOf","isInvalidJSONNumber","data","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","executeWhenDOMReady","fn","document","readyState","called_1","wrappedFn_1","body","setTimeout","Math","floor","addEventListener","attachEvent","MIN_NAME","MAX_NAME","nameCompare","a","b","aAsInt","tryParseInt","bAsInt","stringCompare","requireKey","obj","ObjectToUniqueKey","keys","k","push","sort","splitStringBySize","segsize","len","dataSegs","c","substring","each","hasOwnProperty","doubleToIEEE754String","v","s","f","ln","ebits","fbits","bias","Infinity","abs","pow","min","LN2","round","bits","reverse","join","hexByteString","hexByte","parseInt","substr","toLowerCase","isChromeExtensionContentScript","test","href","isWindowsStoreApp","Windows","UI","errorForServerCode","code","query","reason","_path","toUpperCase","INTEGER_REGEXP_","RegExp","INTEGER_32_MIN","INTEGER_32_MAX","intVal","exceptionGuard","stack","beingCrawled","userAgent","search","setTimeoutNonBlocking","time","timeout","AppCheckTokenProvider","appName_","appCheckProvider","_this","appCheck","getImmediate","optional","then","getToken","forceRefresh","Promise","resolve","reject","addTokenChangeListener","listener","_a","addTokenListener","notifyForInvalidToken","FirebaseAuthTokenProvider","firebaseOptions_","authProvider_","auth_","onInit","auth","catch","addAuthTokenListener","removeTokenChangeListener","removeAuthTokenListener","errorMessage","EmulatorTokenProvider","accessToken","OWNER","PROTOCOL_VERSION","VERSION_PARAM","TRANSPORT_SESSION_PARAM","REFERER_PARAM","FORGE_REF","FORGE_DOMAIN_RE","LAST_SESSION_PARAM","APPLICATION_ID_PARAM","APP_CHECK_TOKEN_PARAM","WEBSOCKET","LONG_POLLING","RepoInfo","host","secure","namespace","webSocketOnly","nodeAdmin","persistenceKey","includeNamespaceInQueryParams","_host","_domain","internalHost","isCacheableHost","isCustomHost","Object","defineProperty","newHost","enumerable","configurable","toURLString","repoInfoNeedsQueryParam","repoInfo","repoInfoConnectionURL","type","params","connURL","pairs","StatsCollection","counters_","incrementCounter","amount","collections","reporters","statsManagerGetCollection","hashString","statsManagerGetOrCreateReporter","creatorFunction","PacketReceiver","onMessage_","pendingResponses","currentResponseNum","closeAfterResponse","onClose","closeAfter","responseNum","callback","handleResponse","requestNum","_loop_1","toProcess","this_1","_loop_2","state_1","FIREBASE_LONGPOLL_START_PARAM","FIREBASE_LONGPOLL_CLOSE_COMMAND","FIREBASE_LONGPOLL_COMMAND_CB_NAME","FIREBASE_LONGPOLL_DATA_CB_NAME","FIREBASE_LONGPOLL_ID_PARAM","FIREBASE_LONGPOLL_PW_PARAM","FIREBASE_LONGPOLL_SERIAL_PARAM","FIREBASE_LONGPOLL_CALLBACK_ID_PARAM","FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM","FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET","FIREBASE_LONGPOLL_DATA_PARAM","FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM","MAX_URL_DATA_SIZE","SEG_HEADER_SIZE","MAX_PAYLOAD_SIZE","KEEPALIVE_REQUEST_INTERVAL","LP_CONNECT_TIMEOUT","BrowserPollConnection","connId","applicationId","appCheckToken","authToken","transportSessionId","lastSessionId","bytesSent","bytesReceived","everConnected_","log_","stats_","urlFn","open","onMessage","onDisconnect","curSegmentNum","onDisconnect_","myPacketOrderer","isClosed_","connectTimeoutTimer_","onClosed_","scriptTagHolder","FirebaseIFrameScriptHolder","args","command","arg1","arg2","incrementIncomingBytes_","clearTimeout","password","sendNewPolls","pN","urlParams","random","uniqueCallbackIdentifier","hostname","connectURL","addTag","start","startLongPoll","addDisconnectPingFrame","forceAllow","forceAllow_","forceDisallow","forceDisallow_","isAvailable","createElement","markConnectionHealthy","shutdown_","close","myDisconnFrame","removeChild","send","dataStr","base64data","enqueueSegment","pw","src","style","display","appendChild","commandCB","onMessageCB","outstandingRequests","Set","pendingSegs","currentSerial","myIFrame","createIFrame_","script","currentDomain","domain","iframeContents","doc","write","iframe","contentWindow","contentDocument","alive","innerHTML","myID","myPW","newRequest_","size","theURL","curDataString","nextSeg","d","theSeg","shift","seg","ts","addLongPollTag_","segnum","totalsegs","url","serial","add","doNewRequest","delete","keepaliveTimeout","readyStateCB","loadCB","doNodeLongPoll","newScript_1","async","onload","onreadystatechange","rstate","parentNode","onerror","WEBSOCKET_MAX_FRAME_SIZE","WEBSOCKET_KEEPALIVE_INTERVAL","WebSocketImpl","MozWebSocket","WebSocket","WebSocketConnection","keepaliveTimer","frames","totalFrames","connectionURL_","device","options","headers","process","platform","env","proxy","origin","mySock","onopen","onclose","onmessage","m","handleIncomingFrame","isOldAndroid","navigator","oldAndroidRegex","oldAndroidMatch","match","parseFloat","previouslyFailed","appendFrame_","fullMess","jsonMess","handleNewFrameCount_","frameCount","extractFrameCount_","isNaN","mess","resetKeepAlive","remainingData","sendString_","String","clearInterval","setInterval","responsesRequiredToBeHealthy","healthyTimeout","TransportManager","initTransports_","e_1","isWebSocketsAvailable","isSkipPollConnection","transports_","transports","_b","ALL_TRANSPORTS","_c","next","done","transport","e_1_1","return","call","initialTransport","upgradeTransport","UPGRADE_TIMEOUT","DELAY_BEFORE_SENDING_EXTRA_REQUESTS","BYTES_SENT_HEALTHY_OVERRIDE","BYTES_RECEIVED_HEALTHY_OVERRIDE","MESSAGE_TYPE","MESSAGE_DATA","CONTROL_SHUTDOWN","CONTROL_RESET","CONTROL_ERROR","CONTROL_PONG","SWITCH_ACK","END_TRANSMISSION","PING","SERVER_HELLO","Connection","repoInfo_","applicationId_","appCheckToken_","authToken_","onReady_","onKill_","connectionCount","pendingDataMessages","state_","transportManager_","start_","conn","conn_","nextTransportId_","primaryResponsesRequired_","onMessageReceived","connReceiver_","onConnectionLost","disconnReceiver_","tx_","rx_","secondaryConn_","isHealthy_","healthyTimeoutMS","healthyTimeout_","everConnected","onConnectionLost_","onSecondaryConnectionLost_","onPrimaryMessageReceived_","onSecondaryMessageReceived_","sendRequest","dataMsg","msg","t","sendData_","tryCleanupConnection","onSecondaryControl_","controlData","cmd","upgradeIfSecondaryHealthy_","secondaryResponsesRequired_","parsedData","layer","proceedWithUpgrade_","onControl_","onDataMessage_","onPrimaryResponse_","payload","onHandshake_","onConnectionShutdown_","onReset_","sendPingOnPrimaryIfNecessary_","handshake","timestamp","h","sessionId","onConnectionEstablished_","tryStartUpgrade_","startUpgrade_","closeConnections_","ServerActions","put","pathString","onComplete","hash","merge","refreshAuthToken","token","refreshAppCheckToken","onDisconnectPut","onDisconnectMerge","onDisconnectCancel","reportStats","stats","EventEmitter","allowedEvents_","listeners_","trigger","eventType","listeners","context","on","validateEventType_","eventData","getInitialEvent","off","splice","find","et","OnlineMonitor","_super","online_","getInstance","currentlyOnline","MAX_PATH_DEPTH","MAX_PATH_LENGTH_BYTES","Path","pathOrString","pieceNum","pieces_","split","copyTo","pieceNum_","newEmptyPath","pathGetFront","path","pathGetLength","pathPopFront","pathGetBack","pathToUrlEncodedString","encodeURIComponent","pathSlice","begin","slice","pathParent","pieces","pathChild","childPathObj","childPieces","pathIsEmpty","newRelativePath","outerPath","innerPath","outer","inner","pathCompare","left","right","leftKeys","rightKeys","cmp","pathEquals","other","j","pathContains","ValidationPath","errorPrefix_","parts_","byteLength_","max","validationPathCheckValid","validationPathPush","validationPath","child","validationPathPop","last","pop","validationPathToErrorString","__EMPTY_NODE","MAX_NODE$2","VisibilityMonitor","hidden","visibilityChange","visible_","visible","RECONNECT_MIN_DELAY","RECONNECT_MAX_DELAY_DEFAULT","GET_CONNECT_TIMEOUT","RECONNECT_MAX_DELAY_FOR_ADMINS","RECONNECT_DELAY_MULTIPLIER","RECONNECT_DELAY_RESET_TIMEOUT","SERVER_KILL_INTERRUPT_REASON","INVALID_TOKEN_THRESHOLD","PersistentConnection","onDataUpdate_","onConnectStatus_","onServerInfoUpdate_","authTokenProvider_","appCheckTokenProvider_","authOverride_","nextPersistentConnectionId_","interruptReasons_","listens","Map","outstandingPuts_","outstandingGets_","outstandingPutCount_","outstandingGetCount_","onDisconnectRequestQueue_","connected_","reconnectDelay_","maxReconnectDelay_","securityDebugCallback_","establishConnectionTimer_","requestCBHash_","requestNumber_","realtime_","forceTokenRefresh_","invalidAuthTokenCount_","invalidAppCheckTokenCount_","firstConnection_","lastConnectionAttemptTime_","lastConnectionEstablishedTime_","onVisible_","onOnline_","action","onResponse","curReqNum","r","initConnection_","deferred","request","p","q","_queryObject","outstandingGet","index","undefined","sendGet_","promise","listen","currentHashFn","tag","queryId","_queryIdentifier","has","_queryParams","isDefault","loadsAllData","listenSpec","hashFn","sendListen_","req","status","warnOnListenWarnings_","currentListenSpec","removeListen_","warnings","indexSpec","getIndex","indexPath","tryAuth","reduceReconnectDelayIfAdminCredential_","credential","isFirebaseSecret","tryAppCheck","token_1","authMethod","requestData","cred","res","onAuthRevoked_","onAppCheckRevoked_","unlisten","sendUnlisten_","queryObj","sendOnDisconnect_","response","putInternal","sendPut_","queued","result","errorReason","reqNum","onDataPush_","onListenRevoked_","onSecurityDebugPacket_","Date","getTime","handleTimestamp_","sendConnectStats_","restoreState_","scheduleConnect_","establishConnection_","online","onRealtimeDisconnect_","cancelSentTransactions_","shouldReconnect_","timeSinceLastConnectSucceeded","timeSinceLastConnectAttempt","reconnectDelay","onDataMessage","onReady","onDisconnect_1","canceled_1","connection_1","closeFn","sendRequestFn","error_1","label","nextConnectionId_","trys","all","sent","interrupt","resume","delta","serverTimeOffset","map","normalizedPathString","statusCode","explanation","console","replace","e_2","values","_d","queries","_e","_f","e_2_1","clientName","NamedNode","node","Wrap","Index","getCompare","compare","indexedValueChanged","oldNode","newNode","oldWrapped","newWrapped","minPost","MIN","KeyIndex","val","isDefinedOn","maxPost","makePost","indexValue","KEY_INDEX","SortedMapIterator","startKey","comparator","isReverse_","resultGenerator_","nodeStack_","isEmpty","getNext","hasNext","peek","LLRBNode","color","RED","SortedMap","EMPTY_NODE","copy","count","inorderTraversal","reverseTraversal","min_","minKey","maxKey","insert","n","fixUp_","removeMin_","isRed_","moveRedLeft_","smallest","rotateRight_","moveRedRight_","rotateLeft_","colorFlip_","nl","nr","checkMaxDepth_","blackDepth","check_","BLACK","LLRBEmptyNode","comparator_","root_","getPredecessorKey","rightParent","getIterator","resultGenerator","getIteratorFrom","getReverseIteratorFrom","getReverseIterator","NAME_ONLY_COMPARATOR","NAME_COMPARATOR","setMaxNode$1","__childrenNodeConstructor","nodeFromJSON$1","MAX_NODE$1","priorityHashText","priority","validatePriorityNode","priorityNode","isLeafNode","getPriority","LeafNode","value_","priorityNode_","lazyHash_","updatePriority","newPriorityNode","getImmediateChild","childName","getChild","hasChild","getPredecessorChildName","childNode","updateImmediateChild","newChildNode","updateChild","front","numChildren","forEachChild","exportFormat","getValue","toHash","compareTo","compareToLeafNode_","otherLeaf","otherLeafType","thisLeafType","otherIndex","VALUE_TYPE_ORDER","thisIndex","withIndex","isIndexed","equals","setNodeFromJSON","setMaxNode","_defaultIndexMap","PriorityIndex","aPriority","bPriority","indexCmp","PRIORITY_INDEX","LOG_2","Base12Num","logBase2","num","bitMask","current_","mask","bits_","nextBitIsOne","buildChildSet","childList","keyFn","mapSortFn","buildBalancedTree","low","high","namedNode","middle","buildFrom12Array","base12","root","buildPennant","chunkSize","childTree","attachPennant","pennant","isOne","fallbackObject","IndexMap","indexes_","indexSet_","indexKey","sortedMap","hasIndex","indexDefinition","addIndex","existingChildren","newIndex","sawIndexedValue","iter","indexName","newIndexSet","newIndexes","addToIndexes","indexedChildren","existingSnap","newChildren","removeFromIndexes","ChildrenNode","children_","indexMap_","Default","newIndexMap","newPriority","newImmediateChild","numKeys","allIntegerKeys","array","toHash_1","childHash","idx","resolveIndex_","predecessor","getFirstChildName","getFirstChild","getLastChildName","getLastChild","wrappedNode","startPost","iterator","endPost","MAX_NODE","otherChildrenNode","thisIter","otherIter","thisCurrent","otherCurrent","MaxNode","defineProperties","MAX","USE_HINZE","nodeFromJSON","json","jsonLeaf","node_1","childData","children_1","childrenHavePriority_1","hinzeJsonObj","childSet","sortedChildSet","PathIndex","indexPath_","extractChild","snap","aChild","bChild","valueNode","ValueIndex","VALUE_INDEX","PUSH_CHARS","MIN_PUSH_CHAR","MAX_PUSH_CHAR","MAX_KEY_LEN","nextPushId","lastPushTime","lastRandChars","now","duplicateTime","timeStampChars","charAt","successor","keyAsInt","i_1","source","sourcePlusOne","repeat","changeValue","snapshotNode","changeChildAdded","changeChildRemoved","changeChildChanged","oldSnap","changeChildMoved","IndexedFilter","index_","newChild","affectedPath","optChangeAccumulator","oldChild","trackChildChange","updateFullNode","newSnap","filtersNodes","getIndexedFilter","RangedFilter","indexedFilter_","startPost_","getStartPost_","endPost_","getEndPost_","getStartPost","getEndPost","matches","filtered","self","hasStart","startName","getIndexStartName","getIndexStartValue","hasEnd","endName","getIndexEndName","getIndexEndValue","LimitedFilter","rangedFilter_","limit_","getLimit","reverse_","isViewFromLeft","fullLimitUpdateChild_","inRange","indexCompare_1","foundStartPost","childKey","childSnap","changeAccumulator","indexCmp_1","oldEventCache","newChildNamedNode","windowBoundary","oldChildSnap","nextChild","getChildAfterChild","compareNext","remainsInWindow","newEventCache","nextChildInRange","QueryParams","limitSet_","startSet_","startNameSet_","startAfterSet_","endSet_","endNameSet_","endBeforeSet_","viewFrom_","indexStartValue_","indexStartName_","indexEndValue_","indexEndName_","hasStartAfter","hasEndBefore","hasLimit","hasAnchoredLimit","queryParamsGetNodeFilter","queryParams","queryParamsLimitToFirst","newLimit","newParams","queryParamsLimitToLast","queryParamsStartAt","queryParamsStartAfter","queryParamsEndAt","queryParamsEndBefore","queryParamsOrderBy","queryParamsToRestQueryStringParameters","orderBy","qs","queryParamsGetQueryObject","viewFrom","ReadonlyRestClient","listens_","getListenId_","listenId","thisListen","queryStringParameters","restRequest_","status_1","xhr","XMLHttpRequest","responseText","SnapshotHolder","rootNode_","getNode","updateSnapshot","newSnapshotNode","newSparseSnapshotTree","children","sparseSnapshotTreeRemember","sparseSnapshotTree","clear","sparseSnapshotTreeForget","tree","safeToRemove","sparseSnapshotTreeForEachTree","prefixPath","func","sparseSnapshotTreeForEachChild","forEach","OperationType","StatsListener","collection_","last_","newStats","stat","FIRST_STATS_MIN_TIME","FIRST_STATS_MAX_TIME","REPORT_STATS_INTERVAL","StatsReporter","collection","server_","statsToReport_","statsListener_","reportStats_","reportedStats","haveStatsToReport","statsReporterIncludeStat","reporter","newOperationSourceUser","fromUser","fromServer","tagged","newOperationSourceServer","newOperationSourceServerTaggedQuery","emptyChildrenSingleton","AckUserWrite","affectedTree","revert","ACK_USER_WRITE","operationForChild","subtree","ListenComplete","LISTEN_COMPLETE","Overwrite","OVERWRITE","Merge","MERGE","CacheNode","node_","fullyInitialized_","filtered_","isFullyInitialized","isFiltered","isCompleteForPath","isCompleteForChild","EventGenerator","query_","eventGeneratorGenerateEventsForChanges","eventGenerator","changes","eventCache","eventRegistrations","events","moves","change","eventGeneratorGenerateEventsForType","registrations","filteredChanges","filter","eventGeneratorCompareChanges","materializedChange","eventGeneratorMaterializeSingleChange","registration","respondsTo","createEvent","prevName","aWrapped","bWrapped","newViewCache","serverCache","viewCacheUpdateEventSnap","viewCache","eventSnap","complete","viewCacheUpdateServerSnap","serverSnap","viewCacheGetCompleteEventSnap","viewCacheGetCompleteServerSnap","EmptyChildren","ImmutableTree","fromObject","childPath","findRootMostMatchingPathAndValue","relativePath","predicate","childExistingPathAndValue","fullPath","findRootMostValueAndPath","toSet","setTree","newTree","fold","fold_","pathSoFar","accum","findOnPath","findOnPath_","pathToFollow","foreachOnPath","foreachOnPath_","currentRelativePath","foreach","foreach_","foreachChild","CompoundWrite","writeTree_","empty","compoundWriteAddWrite","compoundWrite","rootmost","rootMostPath","newWriteTree","compoundWriteAddWrites","updates","newWrite","compoundWriteRemoveWrite","compoundWriteHasCompleteWrite","compoundWriteGetCompleteNode","compoundWriteGetCompleteChildren","compoundWriteChildCompoundWrite","shadowingNode","compoundWriteIsEmpty","compoundWriteApply","applySubtreeWrite","writeTree","priorityWrite_1","writeTreeChildWrites","newWriteTreeRef","writeTreeAddOverwrite","writeId","lastWriteId","allWrites","visibleWrites","writeTreeAddMerge","changedChildren","writeTreeGetWrite","record","writeTreeRemoveWrite","findIndex","writeToRemove","removedWriteWasVisible","removedWriteOverlapsWithOtherWrites","currentWrite","writeTreeRecordContainsPath_","writeTreeResetTree_","writeRecord","writeTreeLayerTree_","writeTreeDefaultFilter_","writes","treeRoot","writePath","deepNode","writeTreeCalcCompleteEventCache","treePath","completeServerCache","writeIdsToExclude","includeHiddenWrites","mergeAtPath","layeredCache","subMerge","writeTreeCalcCompleteEventChildren","completeServerChildren","completeChildren","topLevelSet","merge_1","writeTreeCalcEventCacheAfterServerOverwrite","existingEventSnap","existingServerSnap","childMerge","writeTreeCalcCompleteChild","writeTreeShadowingWrite","writeTreeCalcIndexedSlice","completeServerData","toIterate","nodes","writeTreeRefCalcCompleteEventCache","writeTreeRef","writeTreeRefCalcCompleteEventChildren","writeTreeRefCalcEventCacheAfterServerOverwrite","writeTreeRefShadowingWrite","writeTreeRefCalcIndexedSlice","writeTreeRefCalcCompleteChild","existingServerCache","writeTreeRefChild","ChildChangeAccumulator","changeMap","oldChange","oldType","getChanges","from","NoCompleteChildSource_","getCompleteChild","NO_COMPLETE_CHILD_SOURCE","WriteTreeCompleteChildSource","writes_","viewCache_","optCompleteServerCache_","serverNode","newViewProcessor","viewProcessorAssertIndexed","viewProcessor","viewProcessorApplyOperation","oldViewCache","operation","writesCache","completeCache","filterServerNode","accumulator","overwrite","viewProcessorApplyUserOverwrite","viewProcessorApplyServerOverwrite","viewProcessorApplyUserMerge","viewProcessorApplyServerMerge","ackUserWrite","viewProcessorRevertUserWrite","viewProcessorAckUserWrite","viewProcessorListenComplete","viewProcessorMaybeAddValueEvent","isLeafOrEmpty","oldCompleteSnap","viewProcessorGenerateEventCacheAfterServerEvent","changePath","oldEventSnap","completeEventChildren","completeNode","oldEventNode","updatedPriority","childChangePath","newEventChild","eventChildUpdate","changedSnap","newServerCache","oldServerSnap","serverFilter","newServerNode","newEventSnap","viewProcessorCacheHasChild","curViewCache","viewProcessorApplyMerge","viewMergeTree","serverChild","childMergeTree","isUnknownDeepMerge","ackPath","changedChildren_1","changedChildren_2","mergePath","serverCachePath","oldServerNode","serverChildren","referenceConstructor$1","View","initialViewCache","eventRegistrations_","indexFilter","processor_","initialServerCache","initialEventCache","eventGenerator_","viewGetServerCache","view","viewGetCompleteNode","viewGetCompleteServerCache","cache","viewIsEmpty","viewAddEventRegistration","eventRegistration","viewRemoveEventRegistration","cancelError","cancelEvents","path_1","maybeEvent","createCancelEvent","remaining","existing","hasAnyCallback","concat","viewApplyOperation","viewGenerateEventsForChanges_","viewGetInitialEvents","initialChanges","eventNode","referenceConstructor","SyncPoint","views","syncPointSetReferenceConstructor","syncPointGetReferenceConstructor","syncPointIsEmpty","syncPoint","syncPointApplyOperation","optCompleteServerCache","syncPointGetView","serverCacheComplete","eventCacheComplete","syncPointAddEventRegistration","syncPointRemoveEventRegistration","removed","hadCompleteView","syncPointHasCompleteView","entries","viewQueryId","_repo","syncPointGetQueryViews","e_3","e_3_1","syncPointGetCompleteServerCache","e_4","e_4_1","syncPointViewForQuery","syncPointGetCompleteView","syncPointViewExistsForQuery","e_5","e_5_1","syncTreeSetReferenceConstructor","syncTreeGetReferenceConstructor","syncTreeNextQueryTag_","SyncTree","listenProvider_","syncPointTree_","pendingWriteTree_","tagToQueryMap","queryToTagMap","syncTreeApplyUserOverwrite","syncTree","newData","syncTreeApplyOperationToSyncPoints_","syncTreeApplyUserMerge","changeTree","syncTreeAckUserWrite","needToReevaluate","affectedTree_1","syncTreeApplyServerOverwrite","syncTreeApplyServerMerge","syncTreeApplyListenComplete","syncTreeApplyTaggedListenComplete","queryKey","syncTreeQueryKeyForTag_","syncTreeParseQueryKey_","queryPath","op","syncTreeApplyTaggedOperation_","syncTreeRemoveEventRegistration","maybeSyncPoint","removedAndEvents","removingDefault","covered","parentSyncPoint","newViews","syncTreeCollectDistinctViewsForSubTree_","newQuery","syncTreeCreateListenerForView_","startListening","syncTreeQueryForListening_","syncTreeTagForQuery_","defaultTag","stopListening","queryToRemove","tagToRemove","syncTreeMakeQueryKey_","syncTreeRemoveTags_","syncTreeApplyTaggedQueryOverwrite","syncTreeApplyTaggedQueryMerge","syncTreeAddEventRegistration","foundAncestorDefaultView","pathToSyncPoint","sp","childSyncPoint","viewAlreadyExists","syncTreeGetNextQueryTag_","syncTreeSetupListener_","syncTreeCalcCompleteEventCache","includeHiddenSets","syncTreeGetServerValue","serverCacheNode","syncTreeApplyOperationHelper_","syncPointTree","syncTreeApplyOperationDescendantsHelper_","childOperation","childServerCache","childWritesCache","splitIndex","maybeChildSyncPoint","childMap","completeView","views_1","_key","childViews","removedQuery","removedQueryKey","removedQueryTag","queriesToStop","queries_1","childQueries","queryToStop","ExistingValueProvider","DeferredValueProvider","syncTree_","path_","generateWithValues","resolveDeferredLeafValue","existingVal","serverValues","resolveScalarDeferredValue","resolveComplexDeferredValue","JSON","stringify","unused","existingNode","leaf","resolveDeferredValueTree","resolveDeferredValue","resolveDeferredValueSnapshot","rawPri","leafNode","childrenNode","Tree","parent","childCount","treeSubTree","pathObj","treeGetValue","treeSetValue","treeUpdateParents","treeHasChildren","treeIsEmpty","treeForEachChild","treeForEachDescendant","includeSelf","childrenFirst","treeForEachAncestor","treeGetPath","treeUpdateChild","childEmpty","childExists","INVALID_KEY_REGEX_","INVALID_PATH_REGEX_","MAX_LEAF_SIZE_","isValidKey","isValidPathString","isValidRootPathString","isValidPriority","validateFirebaseDataArg","fnName","validateFirebaseData","errorPrefix","hasDotValue_1","hasActualChild_1","validateFirebaseMergePaths","mergePaths","curPath","prevPath","validateFirebaseMergeDataArg","errorPrefix$1","validatePriority","validateEventType","validateKey","argumentName","validatePathString","validateRootPathString","validateWritablePath","validateUrl","parsedUrl","validateBoolean","bool","EventQueue","eventLists_","recursionDepth_","eventQueueQueueEvents","eventQueue","eventDataList","currList","getPath","eventQueueRaiseEventsAtPath","eventQueueRaiseQueuedEventsMatchingPredicate","eventPath","eventQueueRaiseEventsForChangedPath","changedPath","sentAll","eventList","eventListRaise","eventFn","getEventRunner","INTERRUPT_REASON","MAX_TRANSACTION_RETRIES","Repo","forceRestClient_","appCheckProvider_","dataUpdateCount","eventQueue_","nextWriteId_","interceptServerDataCallback_","transactionQueueTree_","persistentConnection_","repoStart","repo","appId","authOverride","isMerge","repoOnDataUpdate","repoOnConnectStatus","connectStatus","repoOnServerInfoUpdate","statsReporter_","infoData_","infoSyncTree_","infoEvents","repoUpdateInfo","serverSyncTree_","repoServerTime","offsetNode","offset","repoGenerateServerValues","taggedChildren","raw","taggedSnap","repoRerunTransactions","repoInterceptServerData","repoRunOnDisconnectEvents","repoGetNextWriteId","repoGetValue","cached","err","repoLog","repoSetWithPriority","newVal","newNodeUnresolved","success","clearEvents","repoCallOnCompleteCallback","repoAbortTransactions","repoUpdate","childrenToMerge","changedKey","changedValue","writeId_1","resolvedOnDisconnectTree","resolved","repoOnDisconnectCancel","repoOnDisconnectSet","repoOnDisconnectSetWithPriority","repoOnDisconnectUpdate","repoAddEventCallbackForQuery","repoRemoveEventCallbackForQuery","repoInterrupt","repoResume","repoStats","showDelta","longestName","reduce","previousValue","currentValue","paddedStat","repoStatsIncrementCounter","metric","repoStartTransaction","transactionUpdate","unwatcher","applyLocally","transaction","order","retryCount","abortReason","currentWriteId","currentInputSnapshot","currentOutputSnapshotRaw","currentOutputSnapshotResolved","currentState","repoGetLatestState","queueNode","nodeQueue","priorityForNode","currentNode","repoSendReadyTransactions","excludeSets","repoPruneCompletedTransactionsBelowNode","queue","repoBuildTransactionQueue","allRun","every","repoSendTransactionQueue","setsToIgnore","txn","latestState","snapToSend","latestHash","dataToSend","pathToSend","callbacks","rootMostTransactionNode","repoGetAncestorTransactionNode","repoRerunTransactionQueue","txnsToRerun","abortTransaction","newDataNode","hasExplicitPriority","oldWriteId","newNodeResolved","transactionNode","transactionQueue","repoAggregateTransactionQueuesForNode","to","repoAbortTransactionsOnNode","lastSent","decodePath","pathStringDecoded","piece","decodeURIComponent","decodeQuery","queryString","results","segment","kv","parseRepoInfo","dataURL","parseDatabaseURL","scheme","subdomain","port","colonInd","slashInd","questionMarkInd","hostWithoutPort","dotInd","DataEvent","snapshot","ref","getEventType","exportVal","CancelEvent","CallbackContext","snapshotCallback","cancelCallback","onValue","expDataSnapshot","previousChildName","onCancel","hasCancelCallback","userCallback","OnDisconnect$1","OnDisconnect","cancel","wrapCallback","setWithPriority","QueryImpl","_orderByCalled","ReferenceImpl","isEqual","sameRepo","samePath","sameQueryIdentifier","toJSON","validateNoPreviousOrderByCall","validateQueryEndpoints","startNode","endNode","tooManyArgsError","wrongArgTypeError","validateLimit","parentPath","DataSnapshot$1","DataSnapshot","_node","_index","childRef","exists","hasChildren","db","_checkNotDeleted","_root","refFromURL","parsedURL","thennablePushRef","pushRef","setPriority","ValueEventRegistration","callbackContext","ChildEventRegistration","eventToCheck","cancelCallbackOrListenOptions","onlyOnce","userCallback_1","onceCallback","dataSnapshot","container","onChildAdded","onChildChanged","onChildMoved","onChildRemoved","expCallback","QueryConstraint","QueryEndAtConstraint","_value","_apply","endAt","QueryEndBeforeConstraint","endBefore","QueryStartAtConstraint","startAt","QueryStartAfterConstraint","startAfter","QueryLimitToFirstConstraint","_limit","limitToFirst","limit","QueryLimitToLastConstraint","limitToLast","QueryOrderByChildConstraint","parsedPath","orderByChild","QueryOrderByKeyConstraint","orderByKey","QueryOrderByPriorityConstraint","orderByPriority","QueryOrderByValueConstraint","orderByValue","QueryEqualToValueConstraint","equalTo","queryConstraints","queryImpl","queryConstraints_1","queryConstraints_1_1","constraint","FIREBASE_DATABASE_EMULATOR_HOST_VAR","repos","useRestClient","repoManagerApplyEmulatorSettings","tokenProvider","repoManagerDatabaseFromApp","app","authProvider","dbUrl","databaseURL","projectId","isEmulator","dbEmulatorHost","authTokenProvider","repoManagerCreateRepo","Database$1","repoManagerDeleteRepo","appName","appRepos","repoManagerForceRestClient","forceRestClient","Database","_repoInternal","_instanceStarted","_rootInternal","_delete","apiName","connectDatabaseEmulator","mockUserToken","goOffline","goOnline","SERVER_TIMESTAMP","serverTimestamp","increment","TransactionResult$1","TransactionResult","committed","runTransaction","promiseComplete","_delegate","objectToMerge","newObjectToMerge","_database","getRef","Reference","Query","database","cancelCallbackOrContext","ret","getCancelAndContextArgs_","valueCallback","expSnapshot","once","failureCallbackOrContext","cancelOrContext","getKey","getParent","getRoot","transactionResult","expPromise","expRef","INTERNAL","useEmulator","ServerValue","TIMESTAMP","forceLongPolling","forceWebSockets","setSecurityDebugCallback","connection","statsIncrementCounter","interceptServerData","initStandalone","customAuthImpl","setComponent","instance","freeze","__proto__","DataConnection","simpleListen","echo","onEcho","RealTimeConnection","hijackHash","newHash","oldPut","ConnectionTarget","queryIdentifier","TEST_ACCESS","registerDatabase","registerComponent","instanceIdentifier","getProvider","setServiceProps","setMultipleInstances","registerVersion","module","exports"],"mappings":"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","file":"js/chunk-vendors~a4799ee8.285d8f3d.js","sourcesContent":["import firebase from '@firebase/app';\nimport { Provider, ComponentContainer, Component } from '@firebase/component';\nimport { stringify, jsonEval, contains, assert, isNodeSdk, base64, stringToByteArray, Sha1, deepCopy, base64Encode, isMobileCordova, stringLength, Deferred, safeGet, isAdmin, isValidFormat, isEmpty, isReactNative, assertionError, map, querystring, errorPrefix, getModularInstance, createMockUserToken, validateArgCount, validateCallback, validateContextObject } from '@firebase/util';\nimport { __spreadArray, __read, __values, __extends, __awaiter, __generator, __assign } from 'tslib';\nimport { Logger, LogLevel } from '@firebase/logger';\n\nvar name = \"@firebase/database\";\nvar version = \"0.11.0\";\n\n/**\r\n * @license\r\n * Copyright 2019 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/** The semver (www.semver.org) version of the SDK. */\r\nvar SDK_VERSION = '';\r\n// SDK_VERSION should be set before any database instance is created\r\nfunction setSDKVersion(version) {\r\n SDK_VERSION = version;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Wraps a DOM Storage object and:\r\n * - automatically encode objects as JSON strings before storing them to allow us to store arbitrary types.\r\n * - prefixes names with \"firebase:\" to avoid collisions with app data.\r\n *\r\n * We automatically (see storage.js) create two such wrappers, one for sessionStorage,\r\n * and one for localStorage.\r\n *\r\n */\r\nvar DOMStorageWrapper = /** @class */ (function () {\r\n /**\r\n * @param domStorage_ - The underlying storage object (e.g. localStorage or sessionStorage)\r\n */\r\n function DOMStorageWrapper(domStorage_) {\r\n this.domStorage_ = domStorage_;\r\n // Use a prefix to avoid collisions with other stuff saved by the app.\r\n this.prefix_ = 'firebase:';\r\n }\r\n /**\r\n * @param key - The key to save the value under\r\n * @param value - The value being stored, or null to remove the key.\r\n */\r\n DOMStorageWrapper.prototype.set = function (key, value) {\r\n if (value == null) {\r\n this.domStorage_.removeItem(this.prefixedName_(key));\r\n }\r\n else {\r\n this.domStorage_.setItem(this.prefixedName_(key), stringify(value));\r\n }\r\n };\r\n /**\r\n * @returns The value that was stored under this key, or null\r\n */\r\n DOMStorageWrapper.prototype.get = function (key) {\r\n var storedVal = this.domStorage_.getItem(this.prefixedName_(key));\r\n if (storedVal == null) {\r\n return null;\r\n }\r\n else {\r\n return jsonEval(storedVal);\r\n }\r\n };\r\n DOMStorageWrapper.prototype.remove = function (key) {\r\n this.domStorage_.removeItem(this.prefixedName_(key));\r\n };\r\n DOMStorageWrapper.prototype.prefixedName_ = function (name) {\r\n return this.prefix_ + name;\r\n };\r\n DOMStorageWrapper.prototype.toString = function () {\r\n return this.domStorage_.toString();\r\n };\r\n return DOMStorageWrapper;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * An in-memory storage implementation that matches the API of DOMStorageWrapper\r\n * (TODO: create interface for both to implement).\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache_ = {};\r\n this.isInMemoryStorage = true;\r\n }\r\n MemoryStorage.prototype.set = function (key, value) {\r\n if (value == null) {\r\n delete this.cache_[key];\r\n }\r\n else {\r\n this.cache_[key] = value;\r\n }\r\n };\r\n MemoryStorage.prototype.get = function (key) {\r\n if (contains(this.cache_, key)) {\r\n return this.cache_[key];\r\n }\r\n return null;\r\n };\r\n MemoryStorage.prototype.remove = function (key) {\r\n delete this.cache_[key];\r\n };\r\n return MemoryStorage;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Helper to create a DOMStorageWrapper or else fall back to MemoryStorage.\r\n * TODO: Once MemoryStorage and DOMStorageWrapper have a shared interface this method annotation should change\r\n * to reflect this type\r\n *\r\n * @param domStorageName - Name of the underlying storage object\r\n * (e.g. 'localStorage' or 'sessionStorage').\r\n * @returns Turning off type information until a common interface is defined.\r\n */\r\nvar createStoragefor = function (domStorageName) {\r\n try {\r\n // NOTE: just accessing \"localStorage\" or \"window['localStorage']\" may throw a security exception,\r\n // so it must be inside the try/catch.\r\n if (typeof window !== 'undefined' &&\r\n typeof window[domStorageName] !== 'undefined') {\r\n // Need to test cache. Just because it's here doesn't mean it works\r\n var domStorage = window[domStorageName];\r\n domStorage.setItem('firebase:sentinel', 'cache');\r\n domStorage.removeItem('firebase:sentinel');\r\n return new DOMStorageWrapper(domStorage);\r\n }\r\n }\r\n catch (e) { }\r\n // Failed to create wrapper. Just return in-memory storage.\r\n // TODO: log?\r\n return new MemoryStorage();\r\n};\r\n/** A storage object that lasts across sessions */\r\nvar PersistentStorage = createStoragefor('localStorage');\r\n/** A storage object that only lasts one session */\r\nvar SessionStorage = createStoragefor('sessionStorage');\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar logClient = new Logger('@firebase/database');\r\n/**\r\n * Returns a locally-unique ID (generated by just incrementing up from 0 each time its called).\r\n */\r\nvar LUIDGenerator = (function () {\r\n var id = 1;\r\n return function () {\r\n return id++;\r\n };\r\n})();\r\n/**\r\n * Sha1 hash of the input string\r\n * @param str - The string to hash\r\n * @returns {!string} The resulting hash\r\n */\r\nvar sha1 = function (str) {\r\n var utf8Bytes = stringToByteArray(str);\r\n var sha1 = new Sha1();\r\n sha1.update(utf8Bytes);\r\n var sha1Bytes = sha1.digest();\r\n return base64.encodeByteArray(sha1Bytes);\r\n};\r\nvar buildLogMessage_ = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = '';\r\n for (var i = 0; i < varArgs.length; i++) {\r\n var arg = varArgs[i];\r\n if (Array.isArray(arg) ||\r\n (arg &&\r\n typeof arg === 'object' &&\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n typeof arg.length === 'number')) {\r\n message += buildLogMessage_.apply(null, arg);\r\n }\r\n else if (typeof arg === 'object') {\r\n message += stringify(arg);\r\n }\r\n else {\r\n message += arg;\r\n }\r\n message += ' ';\r\n }\r\n return message;\r\n};\r\n/**\r\n * Use this for all debug messages in Firebase.\r\n */\r\nvar logger = null;\r\n/**\r\n * Flag to check for log availability on first log message\r\n */\r\nvar firstLog_ = true;\r\n/**\r\n * The implementation of Firebase.enableLogging (defined here to break dependencies)\r\n * @param logger_ - A flag to turn on logging, or a custom logger\r\n * @param persistent - Whether or not to persist logging settings across refreshes\r\n */\r\nvar enableLogging = function (logger_, persistent) {\r\n assert(!persistent || logger_ === true || logger_ === false, \"Can't turn on custom loggers persistently.\");\r\n if (logger_ === true) {\r\n logClient.logLevel = LogLevel.VERBOSE;\r\n logger = logClient.log.bind(logClient);\r\n if (persistent) {\r\n SessionStorage.set('logging_enabled', true);\r\n }\r\n }\r\n else if (typeof logger_ === 'function') {\r\n logger = logger_;\r\n }\r\n else {\r\n logger = null;\r\n SessionStorage.remove('logging_enabled');\r\n }\r\n};\r\nvar log = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n if (firstLog_ === true) {\r\n firstLog_ = false;\r\n if (logger === null && SessionStorage.get('logging_enabled') === true) {\r\n enableLogging(true);\r\n }\r\n }\r\n if (logger) {\r\n var message = buildLogMessage_.apply(null, varArgs);\r\n logger(message);\r\n }\r\n};\r\nvar logWrapper = function (prefix) {\r\n return function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n log.apply(void 0, __spreadArray([prefix], __read(varArgs)));\r\n };\r\n};\r\nvar error = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.error(message);\r\n};\r\nvar fatal = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = \"FIREBASE FATAL ERROR: \" + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.error(message);\r\n throw new Error(message);\r\n};\r\nvar warn = function () {\r\n var varArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n varArgs[_i] = arguments[_i];\r\n }\r\n var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, __spreadArray([], __read(varArgs)));\r\n logClient.warn(message);\r\n};\r\n/**\r\n * Logs a warning if the containing page uses https. Called when a call to new Firebase\r\n * does not use https.\r\n */\r\nvar warnIfPageIsSecure = function () {\r\n // Be very careful accessing browser globals. Who knows what may or may not exist.\r\n if (typeof window !== 'undefined' &&\r\n window.location &&\r\n window.location.protocol &&\r\n window.location.protocol.indexOf('https:') !== -1) {\r\n warn('Insecure Firebase access from a secure page. ' +\r\n 'Please use https in calls to new Firebase().');\r\n }\r\n};\r\n/**\r\n * Returns true if data is NaN, or +/- Infinity.\r\n */\r\nvar isInvalidJSONNumber = function (data) {\r\n return (typeof data === 'number' &&\r\n (data !== data || // NaN\r\n data === Number.POSITIVE_INFINITY ||\r\n data === Number.NEGATIVE_INFINITY));\r\n};\r\nvar executeWhenDOMReady = function (fn) {\r\n if (isNodeSdk() || document.readyState === 'complete') {\r\n fn();\r\n }\r\n else {\r\n // Modeled after jQuery. Try DOMContentLoaded and onreadystatechange (which\r\n // fire before onload), but fall back to onload.\r\n var called_1 = false;\r\n var wrappedFn_1 = function () {\r\n if (!document.body) {\r\n setTimeout(wrappedFn_1, Math.floor(10));\r\n return;\r\n }\r\n if (!called_1) {\r\n called_1 = true;\r\n fn();\r\n }\r\n };\r\n if (document.addEventListener) {\r\n document.addEventListener('DOMContentLoaded', wrappedFn_1, false);\r\n // fallback to onload.\r\n window.addEventListener('load', wrappedFn_1, false);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }\r\n else if (document.attachEvent) {\r\n // IE.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n document.attachEvent('onreadystatechange', function () {\r\n if (document.readyState === 'complete') {\r\n wrappedFn_1();\r\n }\r\n });\r\n // fallback to onload.\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n window.attachEvent('onload', wrappedFn_1);\r\n // jQuery has an extra hack for IE that we could employ (based on\r\n // http://javascript.nwbox.com/IEContentLoaded/) But it looks really old.\r\n // I'm hoping we don't need it.\r\n }\r\n }\r\n};\r\n/**\r\n * Minimum key name. Invalid for actual data, used as a marker to sort before any valid names\r\n */\r\nvar MIN_NAME = '[MIN_NAME]';\r\n/**\r\n * Maximum key name. Invalid for actual data, used as a marker to sort above any valid names\r\n */\r\nvar MAX_NAME = '[MAX_NAME]';\r\n/**\r\n * Compares valid Firebase key names, plus min and max name\r\n */\r\nvar nameCompare = function (a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a === MIN_NAME || b === MAX_NAME) {\r\n return -1;\r\n }\r\n else if (b === MIN_NAME || a === MAX_NAME) {\r\n return 1;\r\n }\r\n else {\r\n var aAsInt = tryParseInt(a), bAsInt = tryParseInt(b);\r\n if (aAsInt !== null) {\r\n if (bAsInt !== null) {\r\n return aAsInt - bAsInt === 0 ? a.length - b.length : aAsInt - bAsInt;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n else if (bAsInt !== null) {\r\n return 1;\r\n }\r\n else {\r\n return a < b ? -1 : 1;\r\n }\r\n }\r\n};\r\n/**\r\n * @returns {!number} comparison result.\r\n */\r\nvar stringCompare = function (a, b) {\r\n if (a === b) {\r\n return 0;\r\n }\r\n else if (a < b) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n};\r\nvar requireKey = function (key, obj) {\r\n if (obj && key in obj) {\r\n return obj[key];\r\n }\r\n else {\r\n throw new Error('Missing required key (' + key + ') in object: ' + stringify(obj));\r\n }\r\n};\r\nvar ObjectToUniqueKey = function (obj) {\r\n if (typeof obj !== 'object' || obj === null) {\r\n return stringify(obj);\r\n }\r\n var keys = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (var k in obj) {\r\n keys.push(k);\r\n }\r\n // Export as json, but with the keys sorted.\r\n keys.sort();\r\n var key = '{';\r\n for (var i = 0; i < keys.length; i++) {\r\n if (i !== 0) {\r\n key += ',';\r\n }\r\n key += stringify(keys[i]);\r\n key += ':';\r\n key += ObjectToUniqueKey(obj[keys[i]]);\r\n }\r\n key += '}';\r\n return key;\r\n};\r\n/**\r\n * Splits a string into a number of smaller segments of maximum size\r\n * @param str - The string\r\n * @param segsize - The maximum number of chars in the string.\r\n * @returns The string, split into appropriately-sized chunks\r\n */\r\nvar splitStringBySize = function (str, segsize) {\r\n var len = str.length;\r\n if (len <= segsize) {\r\n return [str];\r\n }\r\n var dataSegs = [];\r\n for (var c = 0; c < len; c += segsize) {\r\n if (c + segsize > len) {\r\n dataSegs.push(str.substring(c, len));\r\n }\r\n else {\r\n dataSegs.push(str.substring(c, c + segsize));\r\n }\r\n }\r\n return dataSegs;\r\n};\r\n/**\r\n * Apply a function to each (key, value) pair in an object or\r\n * apply a function to each (index, value) pair in an array\r\n * @param obj - The object or array to iterate over\r\n * @param fn - The function to apply\r\n */\r\nfunction each(obj, fn) {\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n fn(key, obj[key]);\r\n }\r\n }\r\n}\r\n/**\r\n * Borrowed from http://hg.secondlife.com/llsd/src/tip/js/typedarray.js (MIT License)\r\n * I made one modification at the end and removed the NaN / Infinity\r\n * handling (since it seemed broken [caused an overflow] and we don't need it). See MJL comments.\r\n * @param v - A double\r\n *\r\n */\r\nvar doubleToIEEE754String = function (v) {\r\n assert(!isInvalidJSONNumber(v), 'Invalid JSON number'); // MJL\r\n var ebits = 11, fbits = 52;\r\n var bias = (1 << (ebits - 1)) - 1;\r\n var s, e, f, ln, i;\r\n // Compute sign, exponent, fraction\r\n // Skip NaN / Infinity handling --MJL.\r\n if (v === 0) {\r\n e = 0;\r\n f = 0;\r\n s = 1 / v === -Infinity ? 1 : 0;\r\n }\r\n else {\r\n s = v < 0;\r\n v = Math.abs(v);\r\n if (v >= Math.pow(2, 1 - bias)) {\r\n // Normalized\r\n ln = Math.min(Math.floor(Math.log(v) / Math.LN2), bias);\r\n e = ln + bias;\r\n f = Math.round(v * Math.pow(2, fbits - ln) - Math.pow(2, fbits));\r\n }\r\n else {\r\n // Denormalized\r\n e = 0;\r\n f = Math.round(v / Math.pow(2, 1 - bias - fbits));\r\n }\r\n }\r\n // Pack sign, exponent, fraction\r\n var bits = [];\r\n for (i = fbits; i; i -= 1) {\r\n bits.push(f % 2 ? 1 : 0);\r\n f = Math.floor(f / 2);\r\n }\r\n for (i = ebits; i; i -= 1) {\r\n bits.push(e % 2 ? 1 : 0);\r\n e = Math.floor(e / 2);\r\n }\r\n bits.push(s ? 1 : 0);\r\n bits.reverse();\r\n var str = bits.join('');\r\n // Return the data as a hex string. --MJL\r\n var hexByteString = '';\r\n for (i = 0; i < 64; i += 8) {\r\n var hexByte = parseInt(str.substr(i, 8), 2).toString(16);\r\n if (hexByte.length === 1) {\r\n hexByte = '0' + hexByte;\r\n }\r\n hexByteString = hexByteString + hexByte;\r\n }\r\n return hexByteString.toLowerCase();\r\n};\r\n/**\r\n * Used to detect if we're in a Chrome content script (which executes in an\r\n * isolated environment where long-polling doesn't work).\r\n */\r\nvar isChromeExtensionContentScript = function () {\r\n return !!(typeof window === 'object' &&\r\n window['chrome'] &&\r\n window['chrome']['extension'] &&\r\n !/^chrome/.test(window.location.href));\r\n};\r\n/**\r\n * Used to detect if we're in a Windows 8 Store app.\r\n */\r\nvar isWindowsStoreApp = function () {\r\n // Check for the presence of a couple WinRT globals\r\n return typeof Windows === 'object' && typeof Windows.UI === 'object';\r\n};\r\n/**\r\n * Converts a server error code to a Javascript Error\r\n */\r\nfunction errorForServerCode(code, query) {\r\n var reason = 'Unknown Error';\r\n if (code === 'too_big') {\r\n reason =\r\n 'The data requested exceeds the maximum size ' +\r\n 'that can be accessed with a single request.';\r\n }\r\n else if (code === 'permission_denied') {\r\n reason = \"Client doesn't have permission to access the desired data.\";\r\n }\r\n else if (code === 'unavailable') {\r\n reason = 'The service is unavailable';\r\n }\r\n var error = new Error(code + ' at ' + query._path.toString() + ': ' + reason);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error.code = code.toUpperCase();\r\n return error;\r\n}\r\n/**\r\n * Used to test for integer-looking strings\r\n */\r\nvar INTEGER_REGEXP_ = new RegExp('^-?(0*)\\\\d{1,10}$');\r\n/**\r\n * For use in keys, the minimum possible 32-bit integer.\r\n */\r\nvar INTEGER_32_MIN = -2147483648;\r\n/**\r\n * For use in kyes, the maximum possible 32-bit integer.\r\n */\r\nvar INTEGER_32_MAX = 2147483647;\r\n/**\r\n * If the string contains a 32-bit integer, return it. Else return null.\r\n */\r\nvar tryParseInt = function (str) {\r\n if (INTEGER_REGEXP_.test(str)) {\r\n var intVal = Number(str);\r\n if (intVal >= INTEGER_32_MIN && intVal <= INTEGER_32_MAX) {\r\n return intVal;\r\n }\r\n }\r\n return null;\r\n};\r\n/**\r\n * Helper to run some code but catch any exceptions and re-throw them later.\r\n * Useful for preventing user callbacks from breaking internal code.\r\n *\r\n * Re-throwing the exception from a setTimeout is a little evil, but it's very\r\n * convenient (we don't have to try to figure out when is a safe point to\r\n * re-throw it), and the behavior seems reasonable:\r\n *\r\n * * If you aren't pausing on exceptions, you get an error in the console with\r\n * the correct stack trace.\r\n * * If you're pausing on all exceptions, the debugger will pause on your\r\n * exception and then again when we rethrow it.\r\n * * If you're only pausing on uncaught exceptions, the debugger will only pause\r\n * on us re-throwing it.\r\n *\r\n * @param fn - The code to guard.\r\n */\r\nvar exceptionGuard = function (fn) {\r\n try {\r\n fn();\r\n }\r\n catch (e) {\r\n // Re-throw exception when it's safe.\r\n setTimeout(function () {\r\n // It used to be that \"throw e\" would result in a good console error with\r\n // relevant context, but as of Chrome 39, you just get the firebase.js\r\n // file/line number where we re-throw it, which is useless. So we log\r\n // e.stack explicitly.\r\n var stack = e.stack || '';\r\n warn('Exception was thrown by user callback.', stack);\r\n throw e;\r\n }, Math.floor(0));\r\n }\r\n};\r\n/**\r\n * @returns {boolean} true if we think we're currently being crawled.\r\n */\r\nvar beingCrawled = function () {\r\n var userAgent = (typeof window === 'object' &&\r\n window['navigator'] &&\r\n window['navigator']['userAgent']) ||\r\n '';\r\n // For now we whitelist the most popular crawlers. We should refine this to be the set of crawlers we\r\n // believe to support JavaScript/AJAX rendering.\r\n // NOTE: Google Webmaster Tools doesn't really belong, but their \"This is how a visitor to your website\r\n // would have seen the page\" is flaky if we don't treat it as a crawler.\r\n return (userAgent.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i) >= 0);\r\n};\r\n/**\r\n * Same as setTimeout() except on Node.JS it will /not/ prevent the process from exiting.\r\n *\r\n * It is removed with clearTimeout() as normal.\r\n *\r\n * @param fn - Function to run.\r\n * @param time - Milliseconds to wait before running.\r\n * @returns The setTimeout() return value.\r\n */\r\nvar setTimeoutNonBlocking = function (fn, time) {\r\n var timeout = setTimeout(fn, time);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (typeof timeout === 'object' && timeout['unref']) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n timeout['unref']();\r\n }\r\n return timeout;\r\n};\n\n/**\r\n * @license\r\n * Copyright 2021 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Abstraction around AppCheck's token fetching capabilities.\r\n */\r\nvar AppCheckTokenProvider = /** @class */ (function () {\r\n function AppCheckTokenProvider(appName_, appCheckProvider) {\r\n var _this = this;\r\n this.appName_ = appName_;\r\n this.appCheckProvider = appCheckProvider;\r\n this.appCheck = appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.getImmediate({ optional: true });\r\n if (!this.appCheck) {\r\n appCheckProvider === null || appCheckProvider === void 0 ? void 0 : appCheckProvider.get().then(function (appCheck) { return (_this.appCheck = appCheck); });\r\n }\r\n }\r\n AppCheckTokenProvider.prototype.getToken = function (forceRefresh) {\r\n var _this = this;\r\n if (!this.appCheck) {\r\n return new Promise(function (resolve, reject) {\r\n // Support delayed initialization of FirebaseAppCheck. This allows our\r\n // customers to initialize the RTDB SDK before initializing Firebase\r\n // AppCheck and ensures that all requests are authenticated if a token\r\n // becomes available before the timoeout below expires.\r\n setTimeout(function () {\r\n if (_this.appCheck) {\r\n _this.getToken(forceRefresh).then(resolve, reject);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n }, 0);\r\n });\r\n }\r\n return this.appCheck.getToken(forceRefresh);\r\n };\r\n AppCheckTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n var _a;\r\n (_a = this.appCheckProvider) === null || _a === void 0 ? void 0 : _a.get().then(function (appCheck) { return appCheck.addTokenListener(listener); });\r\n };\r\n AppCheckTokenProvider.prototype.notifyForInvalidToken = function () {\r\n warn(\"Provided AppCheck credentials for the app named \\\"\" + this.appName_ + \"\\\" \" +\r\n 'are invalid. This usually indicates your app was not initialized correctly.');\r\n };\r\n return AppCheckTokenProvider;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Abstraction around FirebaseApp's token fetching capabilities.\r\n */\r\nvar FirebaseAuthTokenProvider = /** @class */ (function () {\r\n function FirebaseAuthTokenProvider(appName_, firebaseOptions_, authProvider_) {\r\n var _this = this;\r\n this.appName_ = appName_;\r\n this.firebaseOptions_ = firebaseOptions_;\r\n this.authProvider_ = authProvider_;\r\n this.auth_ = null;\r\n this.auth_ = authProvider_.getImmediate({ optional: true });\r\n if (!this.auth_) {\r\n authProvider_.onInit(function (auth) { return (_this.auth_ = auth); });\r\n }\r\n }\r\n FirebaseAuthTokenProvider.prototype.getToken = function (forceRefresh) {\r\n var _this = this;\r\n if (!this.auth_) {\r\n return new Promise(function (resolve, reject) {\r\n // Support delayed initialization of FirebaseAuth. This allows our\r\n // customers to initialize the RTDB SDK before initializing Firebase\r\n // Auth and ensures that all requests are authenticated if a token\r\n // becomes available before the timoeout below expires.\r\n setTimeout(function () {\r\n if (_this.auth_) {\r\n _this.getToken(forceRefresh).then(resolve, reject);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n }, 0);\r\n });\r\n }\r\n return this.auth_.getToken(forceRefresh).catch(function (error) {\r\n // TODO: Need to figure out all the cases this is raised and whether\r\n // this makes sense.\r\n if (error && error.code === 'auth/token-not-initialized') {\r\n log('Got auth/token-not-initialized error. Treating as null token.');\r\n return null;\r\n }\r\n else {\r\n return Promise.reject(error);\r\n }\r\n });\r\n };\r\n FirebaseAuthTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n // TODO: We might want to wrap the listener and call it with no args to\r\n // avoid a leaky abstraction, but that makes removing the listener harder.\r\n if (this.auth_) {\r\n this.auth_.addAuthTokenListener(listener);\r\n }\r\n else {\r\n this.authProvider_\r\n .get()\r\n .then(function (auth) { return auth.addAuthTokenListener(listener); });\r\n }\r\n };\r\n FirebaseAuthTokenProvider.prototype.removeTokenChangeListener = function (listener) {\r\n this.authProvider_\r\n .get()\r\n .then(function (auth) { return auth.removeAuthTokenListener(listener); });\r\n };\r\n FirebaseAuthTokenProvider.prototype.notifyForInvalidToken = function () {\r\n var errorMessage = 'Provided authentication credentials for the app named \"' +\r\n this.appName_ +\r\n '\" are invalid. This usually indicates your app was not ' +\r\n 'initialized correctly. ';\r\n if ('credential' in this.firebaseOptions_) {\r\n errorMessage +=\r\n 'Make sure the \"credential\" property provided to initializeApp() ' +\r\n 'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n 'project.';\r\n }\r\n else if ('serviceAccount' in this.firebaseOptions_) {\r\n errorMessage +=\r\n 'Make sure the \"serviceAccount\" property provided to initializeApp() ' +\r\n 'is authorized to access the specified \"databaseURL\" and is from the correct ' +\r\n 'project.';\r\n }\r\n else {\r\n errorMessage +=\r\n 'Make sure the \"apiKey\" and \"databaseURL\" properties provided to ' +\r\n 'initializeApp() match the values provided for your app at ' +\r\n 'https://console.firebase.google.com/.';\r\n }\r\n warn(errorMessage);\r\n };\r\n return FirebaseAuthTokenProvider;\r\n}());\r\n/* AuthTokenProvider that supplies a constant token. Used by Admin SDK or mockUserToken with emulators. */\r\nvar EmulatorTokenProvider = /** @class */ (function () {\r\n function EmulatorTokenProvider(accessToken) {\r\n this.accessToken = accessToken;\r\n }\r\n EmulatorTokenProvider.prototype.getToken = function (forceRefresh) {\r\n return Promise.resolve({\r\n accessToken: this.accessToken\r\n });\r\n };\r\n EmulatorTokenProvider.prototype.addTokenChangeListener = function (listener) {\r\n // Invoke the listener immediately to match the behavior in Firebase Auth\r\n // (see packages/auth/src/auth.js#L1807)\r\n listener(this.accessToken);\r\n };\r\n EmulatorTokenProvider.prototype.removeTokenChangeListener = function (listener) { };\r\n EmulatorTokenProvider.prototype.notifyForInvalidToken = function () { };\r\n /** A string that is treated as an admin access token by the RTDB emulator. Used by Admin SDK. */\r\n EmulatorTokenProvider.OWNER = 'owner';\r\n return EmulatorTokenProvider;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar PROTOCOL_VERSION = '5';\r\nvar VERSION_PARAM = 'v';\r\nvar TRANSPORT_SESSION_PARAM = 's';\r\nvar REFERER_PARAM = 'r';\r\nvar FORGE_REF = 'f';\r\n// Matches console.firebase.google.com, firebase-console-*.corp.google.com and\r\n// firebase.corp.google.com\r\nvar FORGE_DOMAIN_RE = /(console\\.firebase|firebase-console-\\w+\\.corp|firebase\\.corp)\\.google\\.com/;\r\nvar LAST_SESSION_PARAM = 'ls';\r\nvar APPLICATION_ID_PARAM = 'p';\r\nvar APP_CHECK_TOKEN_PARAM = 'ac';\r\nvar WEBSOCKET = 'websocket';\r\nvar LONG_POLLING = 'long_polling';\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A class that holds metadata about a Repo object\r\n */\r\nvar RepoInfo = /** @class */ (function () {\r\n /**\r\n * @param host - Hostname portion of the url for the repo\r\n * @param secure - Whether or not this repo is accessed over ssl\r\n * @param namespace - The namespace represented by the repo\r\n * @param webSocketOnly - Whether to prefer websockets over all other transports (used by Nest).\r\n * @param nodeAdmin - Whether this instance uses Admin SDK credentials\r\n * @param persistenceKey - Override the default session persistence storage key\r\n */\r\n function RepoInfo(host, secure, namespace, webSocketOnly, nodeAdmin, persistenceKey, includeNamespaceInQueryParams) {\r\n if (nodeAdmin === void 0) { nodeAdmin = false; }\r\n if (persistenceKey === void 0) { persistenceKey = ''; }\r\n if (includeNamespaceInQueryParams === void 0) { includeNamespaceInQueryParams = false; }\r\n this.secure = secure;\r\n this.namespace = namespace;\r\n this.webSocketOnly = webSocketOnly;\r\n this.nodeAdmin = nodeAdmin;\r\n this.persistenceKey = persistenceKey;\r\n this.includeNamespaceInQueryParams = includeNamespaceInQueryParams;\r\n this._host = host.toLowerCase();\r\n this._domain = this._host.substr(this._host.indexOf('.') + 1);\r\n this.internalHost =\r\n PersistentStorage.get('host:' + host) || this._host;\r\n }\r\n RepoInfo.prototype.isCacheableHost = function () {\r\n return this.internalHost.substr(0, 2) === 's-';\r\n };\r\n RepoInfo.prototype.isCustomHost = function () {\r\n return (this._domain !== 'firebaseio.com' &&\r\n this._domain !== 'firebaseio-demo.com');\r\n };\r\n Object.defineProperty(RepoInfo.prototype, \"host\", {\r\n get: function () {\r\n return this._host;\r\n },\r\n set: function (newHost) {\r\n if (newHost !== this.internalHost) {\r\n this.internalHost = newHost;\r\n if (this.isCacheableHost()) {\r\n PersistentStorage.set('host:' + this._host, this.internalHost);\r\n }\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n RepoInfo.prototype.toString = function () {\r\n var str = this.toURLString();\r\n if (this.persistenceKey) {\r\n str += '<' + this.persistenceKey + '>';\r\n }\r\n return str;\r\n };\r\n RepoInfo.prototype.toURLString = function () {\r\n var protocol = this.secure ? 'https://' : 'http://';\r\n var query = this.includeNamespaceInQueryParams\r\n ? \"?ns=\" + this.namespace\r\n : '';\r\n return \"\" + protocol + this.host + \"/\" + query;\r\n };\r\n return RepoInfo;\r\n}());\r\nfunction repoInfoNeedsQueryParam(repoInfo) {\r\n return (repoInfo.host !== repoInfo.internalHost ||\r\n repoInfo.isCustomHost() ||\r\n repoInfo.includeNamespaceInQueryParams);\r\n}\r\n/**\r\n * Returns the websocket URL for this repo\r\n * @param repoInfo - RepoInfo object\r\n * @param type - of connection\r\n * @param params - list\r\n * @returns The URL for this repo\r\n */\r\nfunction repoInfoConnectionURL(repoInfo, type, params) {\r\n assert(typeof type === 'string', 'typeof type must == string');\r\n assert(typeof params === 'object', 'typeof params must == object');\r\n var connURL;\r\n if (type === WEBSOCKET) {\r\n connURL =\r\n (repoInfo.secure ? 'wss://' : 'ws://') + repoInfo.internalHost + '/.ws?';\r\n }\r\n else if (type === LONG_POLLING) {\r\n connURL =\r\n (repoInfo.secure ? 'https://' : 'http://') +\r\n repoInfo.internalHost +\r\n '/.lp?';\r\n }\r\n else {\r\n throw new Error('Unknown connection type: ' + type);\r\n }\r\n if (repoInfoNeedsQueryParam(repoInfo)) {\r\n params['ns'] = repoInfo.namespace;\r\n }\r\n var pairs = [];\r\n each(params, function (key, value) {\r\n pairs.push(key + '=' + value);\r\n });\r\n return connURL + pairs.join('&');\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Tracks a collection of stats.\r\n */\r\nvar StatsCollection = /** @class */ (function () {\r\n function StatsCollection() {\r\n this.counters_ = {};\r\n }\r\n StatsCollection.prototype.incrementCounter = function (name, amount) {\r\n if (amount === void 0) { amount = 1; }\r\n if (!contains(this.counters_, name)) {\r\n this.counters_[name] = 0;\r\n }\r\n this.counters_[name] += amount;\r\n };\r\n StatsCollection.prototype.get = function () {\r\n return deepCopy(this.counters_);\r\n };\r\n return StatsCollection;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar collections = {};\r\nvar reporters = {};\r\nfunction statsManagerGetCollection(repoInfo) {\r\n var hashString = repoInfo.toString();\r\n if (!collections[hashString]) {\r\n collections[hashString] = new StatsCollection();\r\n }\r\n return collections[hashString];\r\n}\r\nfunction statsManagerGetOrCreateReporter(repoInfo, creatorFunction) {\r\n var hashString = repoInfo.toString();\r\n if (!reporters[hashString]) {\r\n reporters[hashString] = creatorFunction();\r\n }\r\n return reporters[hashString];\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This class ensures the packets from the server arrive in order\r\n * This class takes data from the server and ensures it gets passed into the callbacks in order.\r\n */\r\nvar PacketReceiver = /** @class */ (function () {\r\n /**\r\n * @param onMessage_\r\n */\r\n function PacketReceiver(onMessage_) {\r\n this.onMessage_ = onMessage_;\r\n this.pendingResponses = [];\r\n this.currentResponseNum = 0;\r\n this.closeAfterResponse = -1;\r\n this.onClose = null;\r\n }\r\n PacketReceiver.prototype.closeAfter = function (responseNum, callback) {\r\n this.closeAfterResponse = responseNum;\r\n this.onClose = callback;\r\n if (this.closeAfterResponse < this.currentResponseNum) {\r\n this.onClose();\r\n this.onClose = null;\r\n }\r\n };\r\n /**\r\n * Each message from the server comes with a response number, and an array of data. The responseNumber\r\n * allows us to ensure that we process them in the right order, since we can't be guaranteed that all\r\n * browsers will respond in the same order as the requests we sent\r\n */\r\n PacketReceiver.prototype.handleResponse = function (requestNum, data) {\r\n var _this = this;\r\n this.pendingResponses[requestNum] = data;\r\n var _loop_1 = function () {\r\n var toProcess = this_1.pendingResponses[this_1.currentResponseNum];\r\n delete this_1.pendingResponses[this_1.currentResponseNum];\r\n var _loop_2 = function (i) {\r\n if (toProcess[i]) {\r\n exceptionGuard(function () {\r\n _this.onMessage_(toProcess[i]);\r\n });\r\n }\r\n };\r\n for (var i = 0; i < toProcess.length; ++i) {\r\n _loop_2(i);\r\n }\r\n if (this_1.currentResponseNum === this_1.closeAfterResponse) {\r\n if (this_1.onClose) {\r\n this_1.onClose();\r\n this_1.onClose = null;\r\n }\r\n return \"break\";\r\n }\r\n this_1.currentResponseNum++;\r\n };\r\n var this_1 = this;\r\n while (this.pendingResponses[this.currentResponseNum]) {\r\n var state_1 = _loop_1();\r\n if (state_1 === \"break\")\r\n break;\r\n }\r\n };\r\n return PacketReceiver;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n// URL query parameters associated with longpolling\r\nvar FIREBASE_LONGPOLL_START_PARAM = 'start';\r\nvar FIREBASE_LONGPOLL_CLOSE_COMMAND = 'close';\r\nvar FIREBASE_LONGPOLL_COMMAND_CB_NAME = 'pLPCommand';\r\nvar FIREBASE_LONGPOLL_DATA_CB_NAME = 'pRTLPCB';\r\nvar FIREBASE_LONGPOLL_ID_PARAM = 'id';\r\nvar FIREBASE_LONGPOLL_PW_PARAM = 'pw';\r\nvar FIREBASE_LONGPOLL_SERIAL_PARAM = 'ser';\r\nvar FIREBASE_LONGPOLL_CALLBACK_ID_PARAM = 'cb';\r\nvar FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM = 'seg';\r\nvar FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET = 'ts';\r\nvar FIREBASE_LONGPOLL_DATA_PARAM = 'd';\r\nvar FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM = 'dframe';\r\n//Data size constants.\r\n//TODO: Perf: the maximum length actually differs from browser to browser.\r\n// We should check what browser we're on and set accordingly.\r\nvar MAX_URL_DATA_SIZE = 1870;\r\nvar SEG_HEADER_SIZE = 30; //ie: &seg=8299234&ts=982389123&d=\r\nvar MAX_PAYLOAD_SIZE = MAX_URL_DATA_SIZE - SEG_HEADER_SIZE;\r\n/**\r\n * Keepalive period\r\n * send a fresh request at minimum every 25 seconds. Opera has a maximum request\r\n * length of 30 seconds that we can't exceed.\r\n */\r\nvar KEEPALIVE_REQUEST_INTERVAL = 25000;\r\n/**\r\n * How long to wait before aborting a long-polling connection attempt.\r\n */\r\nvar LP_CONNECT_TIMEOUT = 30000;\r\n/**\r\n * This class manages a single long-polling connection.\r\n */\r\nvar BrowserPollConnection = /** @class */ (function () {\r\n /**\r\n * @param connId An identifier for this connection, used for logging\r\n * @param repoInfo The info for the endpoint to send data to.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The AppCheck token for this client.\r\n * @param authToken The AuthToken to use for this connection.\r\n * @param transportSessionId Optional transportSessionid if we are\r\n * reconnecting for an existing transport session\r\n * @param lastSessionId Optional lastSessionId if the PersistentConnection has\r\n * already created a connection previously\r\n */\r\n function BrowserPollConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\r\n var _this = this;\r\n this.connId = connId;\r\n this.repoInfo = repoInfo;\r\n this.applicationId = applicationId;\r\n this.appCheckToken = appCheckToken;\r\n this.authToken = authToken;\r\n this.transportSessionId = transportSessionId;\r\n this.lastSessionId = lastSessionId;\r\n this.bytesSent = 0;\r\n this.bytesReceived = 0;\r\n this.everConnected_ = false;\r\n this.log_ = logWrapper(connId);\r\n this.stats_ = statsManagerGetCollection(repoInfo);\r\n this.urlFn = function (params) {\r\n // Always add the token if we have one.\r\n if (_this.appCheckToken) {\r\n params[APP_CHECK_TOKEN_PARAM] = _this.appCheckToken;\r\n }\r\n return repoInfoConnectionURL(repoInfo, LONG_POLLING, params);\r\n };\r\n }\r\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\r\n BrowserPollConnection.prototype.open = function (onMessage, onDisconnect) {\r\n var _this = this;\r\n this.curSegmentNum = 0;\r\n this.onDisconnect_ = onDisconnect;\r\n this.myPacketOrderer = new PacketReceiver(onMessage);\r\n this.isClosed_ = false;\r\n this.connectTimeoutTimer_ = setTimeout(function () {\r\n _this.log_('Timed out trying to connect.');\r\n // Make sure we clear the host cache\r\n _this.onClosed_();\r\n _this.connectTimeoutTimer_ = null;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }, Math.floor(LP_CONNECT_TIMEOUT));\r\n // Ensure we delay the creation of the iframe until the DOM is loaded.\r\n executeWhenDOMReady(function () {\r\n if (_this.isClosed_) {\r\n return;\r\n }\r\n //Set up a callback that gets triggered once a connection is set up.\r\n _this.scriptTagHolder = new FirebaseIFrameScriptHolder(function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _a = __read(args, 5), command = _a[0], arg1 = _a[1], arg2 = _a[2]; _a[3]; _a[4];\r\n _this.incrementIncomingBytes_(args);\r\n if (!_this.scriptTagHolder) {\r\n return; // we closed the connection.\r\n }\r\n if (_this.connectTimeoutTimer_) {\r\n clearTimeout(_this.connectTimeoutTimer_);\r\n _this.connectTimeoutTimer_ = null;\r\n }\r\n _this.everConnected_ = true;\r\n if (command === FIREBASE_LONGPOLL_START_PARAM) {\r\n _this.id = arg1;\r\n _this.password = arg2;\r\n }\r\n else if (command === FIREBASE_LONGPOLL_CLOSE_COMMAND) {\r\n // Don't clear the host cache. We got a response from the server, so we know it's reachable\r\n if (arg1) {\r\n // We aren't expecting any more data (other than what the server's already in the process of sending us\r\n // through our already open polls), so don't send any more.\r\n _this.scriptTagHolder.sendNewPolls = false;\r\n // arg1 in this case is the last response number sent by the server. We should try to receive\r\n // all of the responses up to this one before closing\r\n _this.myPacketOrderer.closeAfter(arg1, function () {\r\n _this.onClosed_();\r\n });\r\n }\r\n else {\r\n _this.onClosed_();\r\n }\r\n }\r\n else {\r\n throw new Error('Unrecognized command received: ' + command);\r\n }\r\n }, function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _a = __read(args, 2), pN = _a[0], data = _a[1];\r\n _this.incrementIncomingBytes_(args);\r\n _this.myPacketOrderer.handleResponse(pN, data);\r\n }, function () {\r\n _this.onClosed_();\r\n }, _this.urlFn);\r\n //Send the initial request to connect. The serial number is simply to keep the browser from pulling previous results\r\n //from cache.\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_START_PARAM] = 't';\r\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = Math.floor(Math.random() * 100000000);\r\n if (_this.scriptTagHolder.uniqueCallbackIdentifier) {\r\n urlParams[FIREBASE_LONGPOLL_CALLBACK_ID_PARAM] = _this.scriptTagHolder.uniqueCallbackIdentifier;\r\n }\r\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n if (_this.transportSessionId) {\r\n urlParams[TRANSPORT_SESSION_PARAM] = _this.transportSessionId;\r\n }\r\n if (_this.lastSessionId) {\r\n urlParams[LAST_SESSION_PARAM] = _this.lastSessionId;\r\n }\r\n if (_this.applicationId) {\r\n urlParams[APPLICATION_ID_PARAM] = _this.applicationId;\r\n }\r\n if (_this.appCheckToken) {\r\n urlParams[APP_CHECK_TOKEN_PARAM] = _this.appCheckToken;\r\n }\r\n if (typeof location !== 'undefined' &&\r\n location.hostname &&\r\n FORGE_DOMAIN_RE.test(location.hostname)) {\r\n urlParams[REFERER_PARAM] = FORGE_REF;\r\n }\r\n var connectURL = _this.urlFn(urlParams);\r\n _this.log_('Connecting via long-poll to ' + connectURL);\r\n _this.scriptTagHolder.addTag(connectURL, function () {\r\n /* do nothing */\r\n });\r\n });\r\n };\r\n /**\r\n * Call this when a handshake has completed successfully and we want to consider the connection established\r\n */\r\n BrowserPollConnection.prototype.start = function () {\r\n this.scriptTagHolder.startLongPoll(this.id, this.password);\r\n this.addDisconnectPingFrame(this.id, this.password);\r\n };\r\n /**\r\n * Forces long polling to be considered as a potential transport\r\n */\r\n BrowserPollConnection.forceAllow = function () {\r\n BrowserPollConnection.forceAllow_ = true;\r\n };\r\n /**\r\n * Forces longpolling to not be considered as a potential transport\r\n */\r\n BrowserPollConnection.forceDisallow = function () {\r\n BrowserPollConnection.forceDisallow_ = true;\r\n };\r\n // Static method, use string literal so it can be accessed in a generic way\r\n BrowserPollConnection.isAvailable = function () {\r\n if (isNodeSdk()) {\r\n return false;\r\n }\r\n else if (BrowserPollConnection.forceAllow_) {\r\n return true;\r\n }\r\n else {\r\n // NOTE: In React-Native there's normally no 'document', but if you debug a React-Native app in\r\n // the Chrome debugger, 'document' is defined, but document.createElement is null (2015/06/08).\r\n return (!BrowserPollConnection.forceDisallow_ &&\r\n typeof document !== 'undefined' &&\r\n document.createElement != null &&\r\n !isChromeExtensionContentScript() &&\r\n !isWindowsStoreApp());\r\n }\r\n };\r\n /**\r\n * No-op for polling\r\n */\r\n BrowserPollConnection.prototype.markConnectionHealthy = function () { };\r\n /**\r\n * Stops polling and cleans up the iframe\r\n */\r\n BrowserPollConnection.prototype.shutdown_ = function () {\r\n this.isClosed_ = true;\r\n if (this.scriptTagHolder) {\r\n this.scriptTagHolder.close();\r\n this.scriptTagHolder = null;\r\n }\r\n //remove the disconnect frame, which will trigger an XHR call to the server to tell it we're leaving.\r\n if (this.myDisconnFrame) {\r\n document.body.removeChild(this.myDisconnFrame);\r\n this.myDisconnFrame = null;\r\n }\r\n if (this.connectTimeoutTimer_) {\r\n clearTimeout(this.connectTimeoutTimer_);\r\n this.connectTimeoutTimer_ = null;\r\n }\r\n };\r\n /**\r\n * Triggered when this transport is closed\r\n */\r\n BrowserPollConnection.prototype.onClosed_ = function () {\r\n if (!this.isClosed_) {\r\n this.log_('Longpoll is closing itself');\r\n this.shutdown_();\r\n if (this.onDisconnect_) {\r\n this.onDisconnect_(this.everConnected_);\r\n this.onDisconnect_ = null;\r\n }\r\n }\r\n };\r\n /**\r\n * External-facing close handler. RealTime has requested we shut down. Kill our connection and tell the server\r\n * that we've left.\r\n */\r\n BrowserPollConnection.prototype.close = function () {\r\n if (!this.isClosed_) {\r\n this.log_('Longpoll is being closed.');\r\n this.shutdown_();\r\n }\r\n };\r\n /**\r\n * Send the JSON object down to the server. It will need to be stringified, base64 encoded, and then\r\n * broken into chunks (since URLs have a small maximum length).\r\n * @param data - The JSON data to transmit.\r\n */\r\n BrowserPollConnection.prototype.send = function (data) {\r\n var dataStr = stringify(data);\r\n this.bytesSent += dataStr.length;\r\n this.stats_.incrementCounter('bytes_sent', dataStr.length);\r\n //first, lets get the base64-encoded data\r\n var base64data = base64Encode(dataStr);\r\n //We can only fit a certain amount in each URL, so we need to split this request\r\n //up into multiple pieces if it doesn't fit in one request.\r\n var dataSegs = splitStringBySize(base64data, MAX_PAYLOAD_SIZE);\r\n //Enqueue each segment for transmission. We assign each chunk a sequential ID and a total number\r\n //of segments so that we can reassemble the packet on the server.\r\n for (var i = 0; i < dataSegs.length; i++) {\r\n this.scriptTagHolder.enqueueSegment(this.curSegmentNum, dataSegs.length, dataSegs[i]);\r\n this.curSegmentNum++;\r\n }\r\n };\r\n /**\r\n * This is how we notify the server that we're leaving.\r\n * We aren't able to send requests with DHTML on a window close event, but we can\r\n * trigger XHR requests in some browsers (everything but Opera basically).\r\n */\r\n BrowserPollConnection.prototype.addDisconnectPingFrame = function (id, pw) {\r\n if (isNodeSdk()) {\r\n return;\r\n }\r\n this.myDisconnFrame = document.createElement('iframe');\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_DISCONN_FRAME_REQUEST_PARAM] = 't';\r\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = id;\r\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = pw;\r\n this.myDisconnFrame.src = this.urlFn(urlParams);\r\n this.myDisconnFrame.style.display = 'none';\r\n document.body.appendChild(this.myDisconnFrame);\r\n };\r\n /**\r\n * Used to track the bytes received by this client\r\n */\r\n BrowserPollConnection.prototype.incrementIncomingBytes_ = function (args) {\r\n // TODO: This is an annoying perf hit just to track the number of incoming bytes. Maybe it should be opt-in.\r\n var bytesReceived = stringify(args).length;\r\n this.bytesReceived += bytesReceived;\r\n this.stats_.incrementCounter('bytes_received', bytesReceived);\r\n };\r\n return BrowserPollConnection;\r\n}());\r\n/*********************************************************************************************\r\n * A wrapper around an iframe that is used as a long-polling script holder.\r\n *********************************************************************************************/\r\nvar FirebaseIFrameScriptHolder = /** @class */ (function () {\r\n /**\r\n * @param commandCB - The callback to be called when control commands are recevied from the server.\r\n * @param onMessageCB - The callback to be triggered when responses arrive from the server.\r\n * @param onDisconnect - The callback to be triggered when this tag holder is closed\r\n * @param urlFn - A function that provides the URL of the endpoint to send data to.\r\n */\r\n function FirebaseIFrameScriptHolder(commandCB, onMessageCB, onDisconnect, urlFn) {\r\n this.onDisconnect = onDisconnect;\r\n this.urlFn = urlFn;\r\n //We maintain a count of all of the outstanding requests, because if we have too many active at once it can cause\r\n //problems in some browsers.\r\n this.outstandingRequests = new Set();\r\n //A queue of the pending segments waiting for transmission to the server.\r\n this.pendingSegs = [];\r\n //A serial number. We use this for two things:\r\n // 1) A way to ensure the browser doesn't cache responses to polls\r\n // 2) A way to make the server aware when long-polls arrive in a different order than we started them. The\r\n // server needs to release both polls in this case or it will cause problems in Opera since Opera can only execute\r\n // JSONP code in the order it was added to the iframe.\r\n this.currentSerial = Math.floor(Math.random() * 100000000);\r\n // This gets set to false when we're \"closing down\" the connection (e.g. we're switching transports but there's still\r\n // incoming data from the server that we're waiting for).\r\n this.sendNewPolls = true;\r\n if (!isNodeSdk()) {\r\n //Each script holder registers a couple of uniquely named callbacks with the window. These are called from the\r\n //iframes where we put the long-polling script tags. We have two callbacks:\r\n // 1) Command Callback - Triggered for control issues, like starting a connection.\r\n // 2) Message Callback - Triggered when new data arrives.\r\n this.uniqueCallbackIdentifier = LUIDGenerator();\r\n window[FIREBASE_LONGPOLL_COMMAND_CB_NAME + this.uniqueCallbackIdentifier] = commandCB;\r\n window[FIREBASE_LONGPOLL_DATA_CB_NAME + this.uniqueCallbackIdentifier] = onMessageCB;\r\n //Create an iframe for us to add script tags to.\r\n this.myIFrame = FirebaseIFrameScriptHolder.createIFrame_();\r\n // Set the iframe's contents.\r\n var script = '';\r\n // if we set a javascript url, it's IE and we need to set the document domain. The javascript url is sufficient\r\n // for ie9, but ie8 needs to do it again in the document itself.\r\n if (this.myIFrame.src &&\r\n this.myIFrame.src.substr(0, 'javascript:'.length) === 'javascript:') {\r\n var currentDomain = document.domain;\r\n script = '';\r\n }\r\n var iframeContents = '
' + script + '';\r\n try {\r\n this.myIFrame.doc.open();\r\n this.myIFrame.doc.write(iframeContents);\r\n this.myIFrame.doc.close();\r\n }\r\n catch (e) {\r\n log('frame writing exception');\r\n if (e.stack) {\r\n log(e.stack);\r\n }\r\n log(e);\r\n }\r\n }\r\n else {\r\n this.commandCB = commandCB;\r\n this.onMessageCB = onMessageCB;\r\n }\r\n }\r\n /**\r\n * Each browser has its own funny way to handle iframes. Here we mush them all together into one object that I can\r\n * actually use.\r\n */\r\n FirebaseIFrameScriptHolder.createIFrame_ = function () {\r\n var iframe = document.createElement('iframe');\r\n iframe.style.display = 'none';\r\n // This is necessary in order to initialize the document inside the iframe\r\n if (document.body) {\r\n document.body.appendChild(iframe);\r\n try {\r\n // If document.domain has been modified in IE, this will throw an error, and we need to set the\r\n // domain of the iframe's document manually. We can do this via a javascript: url as the src attribute\r\n // Also note that we must do this *after* the iframe has been appended to the page. Otherwise it doesn't work.\r\n var a = iframe.contentWindow.document;\r\n if (!a) {\r\n // Apologies for the log-spam, I need to do something to keep closure from optimizing out the assignment above.\r\n log('No IE domain setting required');\r\n }\r\n }\r\n catch (e) {\r\n var domain = document.domain;\r\n iframe.src =\r\n \"javascript:void((function(){document.open();document.domain='\" +\r\n domain +\r\n \"';document.close();})())\";\r\n }\r\n }\r\n else {\r\n // LongPollConnection attempts to delay initialization until the document is ready, so hopefully this\r\n // never gets hit.\r\n throw 'Document body has not initialized. Wait to initialize Firebase until after the document is ready.';\r\n }\r\n // Get the document of the iframe in a browser-specific way.\r\n if (iframe.contentDocument) {\r\n iframe.doc = iframe.contentDocument; // Firefox, Opera, Safari\r\n }\r\n else if (iframe.contentWindow) {\r\n iframe.doc = iframe.contentWindow.document; // Internet Explorer\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n }\r\n else if (iframe.document) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n iframe.doc = iframe.document; //others?\r\n }\r\n return iframe;\r\n };\r\n /**\r\n * Cancel all outstanding queries and remove the frame.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.close = function () {\r\n var _this = this;\r\n //Mark this iframe as dead, so no new requests are sent.\r\n this.alive = false;\r\n if (this.myIFrame) {\r\n //We have to actually remove all of the html inside this iframe before removing it from the\r\n //window, or IE will continue loading and executing the script tags we've already added, which\r\n //can lead to some errors being thrown. Setting innerHTML seems to be the easiest way to do this.\r\n this.myIFrame.doc.body.innerHTML = '';\r\n setTimeout(function () {\r\n if (_this.myIFrame !== null) {\r\n document.body.removeChild(_this.myIFrame);\r\n _this.myIFrame = null;\r\n }\r\n }, Math.floor(0));\r\n }\r\n // Protect from being called recursively.\r\n var onDisconnect = this.onDisconnect;\r\n if (onDisconnect) {\r\n this.onDisconnect = null;\r\n onDisconnect();\r\n }\r\n };\r\n /**\r\n * Actually start the long-polling session by adding the first script tag(s) to the iframe.\r\n * @param id - The ID of this connection\r\n * @param pw - The password for this connection\r\n */\r\n FirebaseIFrameScriptHolder.prototype.startLongPoll = function (id, pw) {\r\n this.myID = id;\r\n this.myPW = pw;\r\n this.alive = true;\r\n //send the initial request. If there are requests queued, make sure that we transmit as many as we are currently able to.\r\n while (this.newRequest_()) { }\r\n };\r\n /**\r\n * This is called any time someone might want a script tag to be added. It adds a script tag when there aren't\r\n * too many outstanding requests and we are still alive.\r\n *\r\n * If there are outstanding packet segments to send, it sends one. If there aren't, it sends a long-poll anyways if\r\n * needed.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.newRequest_ = function () {\r\n // We keep one outstanding request open all the time to receive data, but if we need to send data\r\n // (pendingSegs.length > 0) then we create a new request to send the data. The server will automatically\r\n // close the old request.\r\n if (this.alive &&\r\n this.sendNewPolls &&\r\n this.outstandingRequests.size < (this.pendingSegs.length > 0 ? 2 : 1)) {\r\n //construct our url\r\n this.currentSerial++;\r\n var urlParams = {};\r\n urlParams[FIREBASE_LONGPOLL_ID_PARAM] = this.myID;\r\n urlParams[FIREBASE_LONGPOLL_PW_PARAM] = this.myPW;\r\n urlParams[FIREBASE_LONGPOLL_SERIAL_PARAM] = this.currentSerial;\r\n var theURL = this.urlFn(urlParams);\r\n //Now add as much data as we can.\r\n var curDataString = '';\r\n var i = 0;\r\n while (this.pendingSegs.length > 0) {\r\n //first, lets see if the next segment will fit.\r\n var nextSeg = this.pendingSegs[0];\r\n if (nextSeg.d.length +\r\n SEG_HEADER_SIZE +\r\n curDataString.length <=\r\n MAX_URL_DATA_SIZE) {\r\n //great, the segment will fit. Lets append it.\r\n var theSeg = this.pendingSegs.shift();\r\n curDataString =\r\n curDataString +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENT_NUM_PARAM +\r\n i +\r\n '=' +\r\n theSeg.seg +\r\n '&' +\r\n FIREBASE_LONGPOLL_SEGMENTS_IN_PACKET +\r\n i +\r\n '=' +\r\n theSeg.ts +\r\n '&' +\r\n FIREBASE_LONGPOLL_DATA_PARAM +\r\n i +\r\n '=' +\r\n theSeg.d;\r\n i++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n theURL = theURL + curDataString;\r\n this.addLongPollTag_(theURL, this.currentSerial);\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Queue a packet for transmission to the server.\r\n * @param segnum - A sequential id for this packet segment used for reassembly\r\n * @param totalsegs - The total number of segments in this packet\r\n * @param data - The data for this segment.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.enqueueSegment = function (segnum, totalsegs, data) {\r\n //add this to the queue of segments to send.\r\n this.pendingSegs.push({ seg: segnum, ts: totalsegs, d: data });\r\n //send the data immediately if there isn't already data being transmitted, unless\r\n //startLongPoll hasn't been called yet.\r\n if (this.alive) {\r\n this.newRequest_();\r\n }\r\n };\r\n /**\r\n * Add a script tag for a regular long-poll request.\r\n * @param url - The URL of the script tag.\r\n * @param serial - The serial number of the request.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addLongPollTag_ = function (url, serial) {\r\n var _this = this;\r\n //remember that we sent this request.\r\n this.outstandingRequests.add(serial);\r\n var doNewRequest = function () {\r\n _this.outstandingRequests.delete(serial);\r\n _this.newRequest_();\r\n };\r\n // If this request doesn't return on its own accord (by the server sending us some data), we'll\r\n // create a new one after the KEEPALIVE interval to make sure we always keep a fresh request open.\r\n var keepaliveTimeout = setTimeout(doNewRequest, Math.floor(KEEPALIVE_REQUEST_INTERVAL));\r\n var readyStateCB = function () {\r\n // Request completed. Cancel the keepalive.\r\n clearTimeout(keepaliveTimeout);\r\n // Trigger a new request so we can continue receiving data.\r\n doNewRequest();\r\n };\r\n this.addTag(url, readyStateCB);\r\n };\r\n /**\r\n * Add an arbitrary script tag to the iframe.\r\n * @param url - The URL for the script tag source.\r\n * @param loadCB - A callback to be triggered once the script has loaded.\r\n */\r\n FirebaseIFrameScriptHolder.prototype.addTag = function (url, loadCB) {\r\n var _this = this;\r\n if (isNodeSdk()) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.doNodeLongPoll(url, loadCB);\r\n }\r\n else {\r\n setTimeout(function () {\r\n try {\r\n // if we're already closed, don't add this poll\r\n if (!_this.sendNewPolls) {\r\n return;\r\n }\r\n var newScript_1 = _this.myIFrame.doc.createElement('script');\r\n newScript_1.type = 'text/javascript';\r\n newScript_1.async = true;\r\n newScript_1.src = url;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var rstate = newScript_1.readyState;\r\n if (!rstate || rstate === 'loaded' || rstate === 'complete') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newScript_1.onload = newScript_1.onreadystatechange = null;\r\n if (newScript_1.parentNode) {\r\n newScript_1.parentNode.removeChild(newScript_1);\r\n }\r\n loadCB();\r\n }\r\n };\r\n newScript_1.onerror = function () {\r\n log('Long-poll script failed to load: ' + url);\r\n _this.sendNewPolls = false;\r\n _this.close();\r\n };\r\n _this.myIFrame.doc.body.appendChild(newScript_1);\r\n }\r\n catch (e) {\r\n // TODO: we should make this error visible somehow\r\n }\r\n }, Math.floor(1));\r\n }\r\n };\r\n return FirebaseIFrameScriptHolder;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar WEBSOCKET_MAX_FRAME_SIZE = 16384;\r\nvar WEBSOCKET_KEEPALIVE_INTERVAL = 45000;\r\nvar WebSocketImpl = null;\r\nif (typeof MozWebSocket !== 'undefined') {\r\n WebSocketImpl = MozWebSocket;\r\n}\r\nelse if (typeof WebSocket !== 'undefined') {\r\n WebSocketImpl = WebSocket;\r\n}\r\n/**\r\n * Create a new websocket connection with the given callbacks.\r\n */\r\nvar WebSocketConnection = /** @class */ (function () {\r\n /**\r\n * @param connId identifier for this transport\r\n * @param repoInfo The info for the websocket endpoint.\r\n * @param applicationId The Firebase App ID for this project.\r\n * @param appCheckToken The App Check Token for this client.\r\n * @param authToken The Auth Token for this client.\r\n * @param transportSessionId Optional transportSessionId if this is connecting\r\n * to an existing transport session\r\n * @param lastSessionId Optional lastSessionId if there was a previous\r\n * connection\r\n */\r\n function WebSocketConnection(connId, repoInfo, applicationId, appCheckToken, authToken, transportSessionId, lastSessionId) {\r\n this.connId = connId;\r\n this.applicationId = applicationId;\r\n this.appCheckToken = appCheckToken;\r\n this.authToken = authToken;\r\n this.keepaliveTimer = null;\r\n this.frames = null;\r\n this.totalFrames = 0;\r\n this.bytesSent = 0;\r\n this.bytesReceived = 0;\r\n this.log_ = logWrapper(this.connId);\r\n this.stats_ = statsManagerGetCollection(repoInfo);\r\n this.connURL = WebSocketConnection.connectionURL_(repoInfo, transportSessionId, lastSessionId, appCheckToken);\r\n this.nodeAdmin = repoInfo.nodeAdmin;\r\n }\r\n /**\r\n * @param repoInfo - The info for the websocket endpoint.\r\n * @param transportSessionId - Optional transportSessionId if this is connecting to an existing transport\r\n * session\r\n * @param lastSessionId - Optional lastSessionId if there was a previous connection\r\n * @returns connection url\r\n */\r\n WebSocketConnection.connectionURL_ = function (repoInfo, transportSessionId, lastSessionId, appCheckToken) {\r\n var urlParams = {};\r\n urlParams[VERSION_PARAM] = PROTOCOL_VERSION;\r\n if (!isNodeSdk() &&\r\n typeof location !== 'undefined' &&\r\n location.hostname &&\r\n FORGE_DOMAIN_RE.test(location.hostname)) {\r\n urlParams[REFERER_PARAM] = FORGE_REF;\r\n }\r\n if (transportSessionId) {\r\n urlParams[TRANSPORT_SESSION_PARAM] = transportSessionId;\r\n }\r\n if (lastSessionId) {\r\n urlParams[LAST_SESSION_PARAM] = lastSessionId;\r\n }\r\n if (appCheckToken) {\r\n urlParams[APP_CHECK_TOKEN_PARAM] = appCheckToken;\r\n }\r\n return repoInfoConnectionURL(repoInfo, WEBSOCKET, urlParams);\r\n };\r\n /**\r\n * @param onMessage - Callback when messages arrive\r\n * @param onDisconnect - Callback with connection lost.\r\n */\r\n WebSocketConnection.prototype.open = function (onMessage, onDisconnect) {\r\n var _this = this;\r\n this.onDisconnect = onDisconnect;\r\n this.onMessage = onMessage;\r\n this.log_('Websocket connecting to ' + this.connURL);\r\n this.everConnected_ = false;\r\n // Assume failure until proven otherwise.\r\n PersistentStorage.set('previous_websocket_failure', true);\r\n try {\r\n if (isNodeSdk()) {\r\n var device = this.nodeAdmin ? 'AdminNode' : 'Node';\r\n // UA Format: Firebase/Note: This method must be called before performing any other operation.\r\n *\r\n * @param db - The instance to modify.\r\n * @param host - The emulator host (ex: localhost)\r\n * @param port - The emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\nfunction connectDatabaseEmulator(db, host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('useEmulator');\r\n if (db._instanceStarted) {\r\n fatal('Cannot call useEmulator() after instance has already been initialized.');\r\n }\r\n var repo = db._repoInternal;\r\n var tokenProvider = undefined;\r\n if (repo.repoInfo_.nodeAdmin) {\r\n if (options.mockUserToken) {\r\n fatal('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the \"firebase\" package instead of \"firebase-admin\".');\r\n }\r\n tokenProvider = new EmulatorTokenProvider(EmulatorTokenProvider.OWNER);\r\n }\r\n else if (options.mockUserToken) {\r\n var token = typeof options.mockUserToken === 'string'\r\n ? options.mockUserToken\r\n : createMockUserToken(options.mockUserToken, db.app.options.projectId);\r\n tokenProvider = new EmulatorTokenProvider(token);\r\n }\r\n // Modify the repo to apply emulator settings\r\n repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider);\r\n}\r\n/**\r\n * Disconnects from the server (all Database operations will be completed\r\n * offline).\r\n *\r\n * The client automatically maintains a persistent connection to the Database\r\n * server, which will remain active indefinitely and reconnect when\r\n * disconnected. However, the `goOffline()` and `goOnline()` methods may be used\r\n * to control the client connection in cases where a persistent connection is\r\n * undesirable.\r\n *\r\n * While offline, the client will no longer receive data updates from the\r\n * Database. However, all Database operations performed locally will continue to\r\n * immediately fire events, allowing your application to continue behaving\r\n * normally. Additionally, each operation performed locally will automatically\r\n * be queued and retried upon reconnection to the Database server.\r\n *\r\n * To reconnect to the Database and begin receiving remote events, see\r\n * `goOnline()`.\r\n *\r\n * @param db - The instance to disconnect.\r\n */\r\nfunction goOffline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOffline');\r\n repoInterrupt(db._repo);\r\n}\r\n/**\r\n * Reconnects to the server and synchronizes the offline Database state\r\n * with the server state.\r\n *\r\n * This method should be used after disabling the active connection with\r\n * `goOffline()`. Once reconnected, the client will transmit the proper data\r\n * and fire the appropriate events so that your client \"catches up\"\r\n * automatically.\r\n *\r\n * @param db - The instance to reconnect.\r\n */\r\nfunction goOnline(db) {\r\n db = getModularInstance(db);\r\n db._checkNotDeleted('goOnline');\r\n repoResume(db._repo);\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar SERVER_TIMESTAMP = {\r\n '.sv': 'timestamp'\r\n};\r\n/**\r\n * Returns a placeholder value for auto-populating the current timestamp (time\r\n * since the Unix epoch, in milliseconds) as determined by the Firebase\r\n * servers.\r\n */\r\nfunction serverTimestamp() {\r\n return SERVER_TIMESTAMP;\r\n}\r\n/**\r\n * Returns a placeholder value that can be used to atomically increment the\r\n * current database value by the provided delta.\r\n *\r\n * @param delta - the amount to modify the current value atomically.\r\n * @returns A placeholder value for modifying data atomically server-side.\r\n */\r\nfunction increment(delta) {\r\n return {\r\n '.sv': {\r\n 'increment': delta\r\n }\r\n };\r\n}\n\n/**\r\n * @license\r\n * Copyright 2020 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\nvar TransactionResult$1 = /** @class */ (function () {\r\n /** @hideconstructor */\r\n function TransactionResult(\r\n /** Whether the transaction was successfully committed. */\r\n committed, \r\n /** The resulting data snapshot. */\r\n snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n /** Returns a JSON-serializable representation of this object. */\r\n TransactionResult.prototype.toJSON = function () {\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\r\n/**\r\n * Atomically modifies the data at this location.\r\n *\r\n * Atomically modify the data at this location. Unlike a normal `set()`, which\r\n * just overwrites the data regardless of its previous value, `transaction()` is\r\n * used to modify the existing value to a new value, ensuring there are no\r\n * conflicts with other clients writing to the same location at the same time.\r\n *\r\n * To accomplish this, you pass `runTransaction()` an update function which is\r\n * used to transform the current value into a new value. If another client\r\n * writes to the location before your new value is successfully written, your\r\n * update function will be called again with the new current value, and the\r\n * write will be retried. This will happen repeatedly until your write succeeds\r\n * without conflict or you abort the transaction by not returning a value from\r\n * your update function.\r\n *\r\n * Note: Modifying data with `set()` will cancel any pending transactions at\r\n * that location, so extreme care should be taken if mixing `set()` and\r\n * `transaction()` to update the same data.\r\n *\r\n * Note: When using transactions with Security and Firebase Rules in place, be\r\n * aware that a client needs `.read` access in addition to `.write` access in\r\n * order to perform a transaction. This is because the client-side nature of\r\n * transactions requires the client to read the data in order to transactionally\r\n * update it.\r\n *\r\n * @param ref - The location to atomically modify.\r\n * @param transactionUpdate - A developer-supplied function which will be passed\r\n * the current data stored at this location (as a JavaScript object). The\r\n * function should return the new value it would like written (as a JavaScript\r\n * object). If `undefined` is returned (i.e. you return with no arguments) the\r\n * transaction will be aborted and the data at this location will not be\r\n * modified.\r\n * @param options - An options object to configure transactions.\r\n * @returns A Promise that can optionally be used instead of the onComplete\r\n * callback to handle success and failure.\r\n */\r\nfunction runTransaction(ref, \r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntransactionUpdate, options) {\r\n var _a;\r\n ref = getModularInstance(ref);\r\n validateWritablePath('Reference.transaction', ref._path);\r\n if (ref.key === '.length' || ref.key === '.keys') {\r\n throw ('Reference.transaction failed: ' + ref.key + ' is a read-only object.');\r\n }\r\n var applyLocally = (_a = options === null || options === void 0 ? void 0 : options.applyLocally) !== null && _a !== void 0 ? _a : true;\r\n var deferred = new Deferred();\r\n var promiseComplete = function (error, committed, node) {\r\n var dataSnapshot = null;\r\n if (error) {\r\n deferred.reject(error);\r\n }\r\n else {\r\n dataSnapshot = new DataSnapshot$1(node, new ReferenceImpl(ref._repo, ref._path), PRIORITY_INDEX);\r\n deferred.resolve(new TransactionResult$1(committed, dataSnapshot));\r\n }\r\n };\r\n // Add a watch to make sure we get server updates.\r\n var unwatcher = onValue(ref, function () { });\r\n repoStartTransaction(ref._repo, ref._path, transactionUpdate, promiseComplete, unwatcher, applyLocally);\r\n return deferred.promise;\r\n}\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar OnDisconnect = /** @class */ (function () {\r\n function OnDisconnect(_delegate) {\r\n this._delegate = _delegate;\r\n }\r\n OnDisconnect.prototype.cancel = function (onComplete) {\r\n validateArgCount('OnDisconnect.cancel', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.cancel', 'onComplete', onComplete, true);\r\n var result = this._delegate.cancel();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.remove = function (onComplete) {\r\n validateArgCount('OnDisconnect.remove', 0, 1, arguments.length);\r\n validateCallback('OnDisconnect.remove', 'onComplete', onComplete, true);\r\n var result = this._delegate.remove();\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.set = function (value, onComplete) {\r\n validateArgCount('OnDisconnect.set', 1, 2, arguments.length);\r\n validateCallback('OnDisconnect.set', 'onComplete', onComplete, true);\r\n var result = this._delegate.set(value);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.setWithPriority = function (value, priority, onComplete) {\r\n validateArgCount('OnDisconnect.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('OnDisconnect.setWithPriority', 'onComplete', onComplete, true);\r\n var result = this._delegate.setWithPriority(value, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n OnDisconnect.prototype.update = function (objectToMerge, onComplete) {\r\n validateArgCount('OnDisconnect.update', 1, 2, arguments.length);\r\n if (Array.isArray(objectToMerge)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < objectToMerge.length; ++i) {\r\n newObjectToMerge['' + i] = objectToMerge[i];\r\n }\r\n objectToMerge = newObjectToMerge;\r\n warn('Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the ' +\r\n 'existing data, or an Object with integer keys if you really do want to only update some of the children.');\r\n }\r\n validateCallback('OnDisconnect.update', 'onComplete', onComplete, true);\r\n var result = this._delegate.update(objectToMerge);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n return OnDisconnect;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar TransactionResult = /** @class */ (function () {\r\n /**\r\n * A type for the resolve value of Firebase.transaction.\r\n */\r\n function TransactionResult(committed, snapshot) {\r\n this.committed = committed;\r\n this.snapshot = snapshot;\r\n }\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n TransactionResult.prototype.toJSON = function () {\r\n validateArgCount('TransactionResult.toJSON', 0, 1, arguments.length);\r\n return { committed: this.committed, snapshot: this.snapshot.toJSON() };\r\n };\r\n return TransactionResult;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Class representing a firebase data snapshot. It wraps a SnapshotNode and\r\n * surfaces the public methods (val, forEach, etc.) we want to expose.\r\n */\r\nvar DataSnapshot = /** @class */ (function () {\r\n function DataSnapshot(_database, _delegate) {\r\n this._database = _database;\r\n this._delegate = _delegate;\r\n }\r\n /**\r\n * Retrieves the snapshot contents as JSON. Returns null if the snapshot is\r\n * empty.\r\n *\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.val = function () {\r\n validateArgCount('DataSnapshot.val', 0, 0, arguments.length);\r\n return this._delegate.val();\r\n };\r\n /**\r\n * Returns the snapshot contents as JSON, including priorities of node. Suitable for exporting\r\n * the entire node contents.\r\n * @returns JSON representation of the DataSnapshot contents, or null if empty.\r\n */\r\n DataSnapshot.prototype.exportVal = function () {\r\n validateArgCount('DataSnapshot.exportVal', 0, 0, arguments.length);\r\n return this._delegate.exportVal();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users\r\n DataSnapshot.prototype.toJSON = function () {\r\n // Optional spacer argument is unnecessary because we're depending on recursion rather than stringifying the content\r\n validateArgCount('DataSnapshot.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Returns whether the snapshot contains a non-null value.\r\n *\r\n * @returns Whether the snapshot contains a non-null value, or is empty.\r\n */\r\n DataSnapshot.prototype.exists = function () {\r\n validateArgCount('DataSnapshot.exists', 0, 0, arguments.length);\r\n return this._delegate.exists();\r\n };\r\n /**\r\n * Returns a DataSnapshot of the specified child node's contents.\r\n *\r\n * @param path - Path to a child.\r\n * @returns DataSnapshot for child node.\r\n */\r\n DataSnapshot.prototype.child = function (path) {\r\n validateArgCount('DataSnapshot.child', 0, 1, arguments.length);\r\n // Ensure the childPath is a string (can be a number)\r\n path = String(path);\r\n validatePathString('DataSnapshot.child', 'path', path, false);\r\n return new DataSnapshot(this._database, this._delegate.child(path));\r\n };\r\n /**\r\n * Returns whether the snapshot contains a child at the specified path.\r\n *\r\n * @param path - Path to a child.\r\n * @returns Whether the child exists.\r\n */\r\n DataSnapshot.prototype.hasChild = function (path) {\r\n validateArgCount('DataSnapshot.hasChild', 1, 1, arguments.length);\r\n validatePathString('DataSnapshot.hasChild', 'path', path, false);\r\n return this._delegate.hasChild(path);\r\n };\r\n /**\r\n * Returns the priority of the object, or null if no priority was set.\r\n *\r\n * @returns The priority.\r\n */\r\n DataSnapshot.prototype.getPriority = function () {\r\n validateArgCount('DataSnapshot.getPriority', 0, 0, arguments.length);\r\n return this._delegate.priority;\r\n };\r\n /**\r\n * Iterates through child nodes and calls the specified action for each one.\r\n *\r\n * @param action - Callback function to be called\r\n * for each child.\r\n * @returns True if forEach was canceled by action returning true for\r\n * one of the child nodes.\r\n */\r\n DataSnapshot.prototype.forEach = function (action) {\r\n var _this = this;\r\n validateArgCount('DataSnapshot.forEach', 1, 1, arguments.length);\r\n validateCallback('DataSnapshot.forEach', 'action', action, false);\r\n return this._delegate.forEach(function (expDataSnapshot) {\r\n return action(new DataSnapshot(_this._database, expDataSnapshot));\r\n });\r\n };\r\n /**\r\n * Returns whether this DataSnapshot has children.\r\n * @returns True if the DataSnapshot contains 1 or more child nodes.\r\n */\r\n DataSnapshot.prototype.hasChildren = function () {\r\n validateArgCount('DataSnapshot.hasChildren', 0, 0, arguments.length);\r\n return this._delegate.hasChildren();\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"key\", {\r\n get: function () {\r\n return this._delegate.key;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns the number of children for this DataSnapshot.\r\n * @returns The number of children that this DataSnapshot contains.\r\n */\r\n DataSnapshot.prototype.numChildren = function () {\r\n validateArgCount('DataSnapshot.numChildren', 0, 0, arguments.length);\r\n return this._delegate.size;\r\n };\r\n /**\r\n * @returns The Firebase reference for the location this snapshot's data came\r\n * from.\r\n */\r\n DataSnapshot.prototype.getRef = function () {\r\n validateArgCount('DataSnapshot.ref', 0, 0, arguments.length);\r\n return new Reference(this._database, this._delegate.ref);\r\n };\r\n Object.defineProperty(DataSnapshot.prototype, \"ref\", {\r\n get: function () {\r\n return this.getRef();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return DataSnapshot;\r\n}());\r\n/**\r\n * A Query represents a filter to be applied to a firebase location. This object purely represents the\r\n * query expression (and exposes our public API to build the query). The actual query logic is in ViewBase.js.\r\n *\r\n * Since every Firebase reference is a query, Firebase inherits from this object.\r\n */\r\nvar Query = /** @class */ (function () {\r\n function Query(database, _delegate) {\r\n this.database = database;\r\n this._delegate = _delegate;\r\n }\r\n Query.prototype.on = function (eventType, callback, cancelCallbackOrContext, context) {\r\n var _this = this;\r\n var _a;\r\n validateArgCount('Query.on', 2, 4, arguments.length);\r\n validateCallback('Query.on', 'callback', callback, false);\r\n var ret = Query.getCancelAndContextArgs_('Query.on', cancelCallbackOrContext, context);\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n callback.call(ret.context, new DataSnapshot(_this.database, expSnapshot), previousChildName);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = (_a = ret.cancel) === null || _a === void 0 ? void 0 : _a.bind(ret.context);\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback);\r\n return callback;\r\n default:\r\n throw new Error(errorPrefix('Query.on', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n };\r\n Query.prototype.off = function (eventType, callback, context) {\r\n validateArgCount('Query.off', 0, 3, arguments.length);\r\n validateEventType('Query.off', eventType, true);\r\n validateCallback('Query.off', 'callback', callback, true);\r\n validateContextObject('Query.off', 'context', context, true);\r\n if (callback) {\r\n var valueCallback = function () { };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = context;\r\n off(this._delegate, eventType, valueCallback);\r\n }\r\n else {\r\n off(this._delegate, eventType);\r\n }\r\n };\r\n /**\r\n * Get the server-value for this query, or return a cached value if not connected.\r\n */\r\n Query.prototype.get = function () {\r\n var _this = this;\r\n return get(this._delegate).then(function (expSnapshot) {\r\n return new DataSnapshot(_this.database, expSnapshot);\r\n });\r\n };\r\n /**\r\n * Attaches a listener, waits for the first event, and then removes the listener\r\n */\r\n Query.prototype.once = function (eventType, callback, failureCallbackOrContext, context) {\r\n var _this = this;\r\n validateArgCount('Query.once', 1, 4, arguments.length);\r\n validateCallback('Query.once', 'callback', callback, true);\r\n var ret = Query.getCancelAndContextArgs_('Query.once', failureCallbackOrContext, context);\r\n var deferred = new Deferred();\r\n var valueCallback = function (expSnapshot, previousChildName) {\r\n var result = new DataSnapshot(_this.database, expSnapshot);\r\n if (callback) {\r\n callback.call(ret.context, result, previousChildName);\r\n }\r\n deferred.resolve(result);\r\n };\r\n valueCallback.userCallback = callback;\r\n valueCallback.context = ret.context;\r\n var cancelCallback = function (error) {\r\n if (ret.cancel) {\r\n ret.cancel.call(ret.context, error);\r\n }\r\n deferred.reject(error);\r\n };\r\n switch (eventType) {\r\n case 'value':\r\n onValue(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_added':\r\n onChildAdded(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_removed':\r\n onChildRemoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_changed':\r\n onChildChanged(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n case 'child_moved':\r\n onChildMoved(this._delegate, valueCallback, cancelCallback, {\r\n onlyOnce: true\r\n });\r\n break;\r\n default:\r\n throw new Error(errorPrefix('Query.once', 'eventType') +\r\n 'must be a valid event type = \"value\", \"child_added\", \"child_removed\", ' +\r\n '\"child_changed\", or \"child_moved\".');\r\n }\r\n return deferred.promise;\r\n };\r\n /**\r\n * Set a limit and anchor it to the start of the window.\r\n */\r\n Query.prototype.limitToFirst = function (limit) {\r\n validateArgCount('Query.limitToFirst', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToFirst(limit)));\r\n };\r\n /**\r\n * Set a limit and anchor it to the end of the window.\r\n */\r\n Query.prototype.limitToLast = function (limit) {\r\n validateArgCount('Query.limitToLast', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, limitToLast(limit)));\r\n };\r\n /**\r\n * Given a child path, return a new query ordered by the specified grandchild path.\r\n */\r\n Query.prototype.orderByChild = function (path) {\r\n validateArgCount('Query.orderByChild', 1, 1, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByChild(path)));\r\n };\r\n /**\r\n * Return a new query ordered by the KeyIndex\r\n */\r\n Query.prototype.orderByKey = function () {\r\n validateArgCount('Query.orderByKey', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByKey()));\r\n };\r\n /**\r\n * Return a new query ordered by the PriorityIndex\r\n */\r\n Query.prototype.orderByPriority = function () {\r\n validateArgCount('Query.orderByPriority', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByPriority()));\r\n };\r\n /**\r\n * Return a new query ordered by the ValueIndex\r\n */\r\n Query.prototype.orderByValue = function () {\r\n validateArgCount('Query.orderByValue', 0, 0, arguments.length);\r\n return new Query(this.database, query(this._delegate, orderByValue()));\r\n };\r\n Query.prototype.startAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAt(value, name)));\r\n };\r\n Query.prototype.startAfter = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.startAfter', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, startAfter(value, name)));\r\n };\r\n Query.prototype.endAt = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endAt', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endAt(value, name)));\r\n };\r\n Query.prototype.endBefore = function (value, name) {\r\n if (value === void 0) { value = null; }\r\n validateArgCount('Query.endBefore', 0, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, endBefore(value, name)));\r\n };\r\n /**\r\n * Load the selection of children with exactly the specified value, and, optionally,\r\n * the specified name.\r\n */\r\n Query.prototype.equalTo = function (value, name) {\r\n validateArgCount('Query.equalTo', 1, 2, arguments.length);\r\n return new Query(this.database, query(this._delegate, equalTo(value, name)));\r\n };\r\n /**\r\n * @returns URL for this location.\r\n */\r\n Query.prototype.toString = function () {\r\n validateArgCount('Query.toString', 0, 0, arguments.length);\r\n return this._delegate.toString();\r\n };\r\n // Do not create public documentation. This is intended to make JSON serialization work but is otherwise unnecessary\r\n // for end-users.\r\n Query.prototype.toJSON = function () {\r\n // An optional spacer argument is unnecessary for a string.\r\n validateArgCount('Query.toJSON', 0, 1, arguments.length);\r\n return this._delegate.toJSON();\r\n };\r\n /**\r\n * Return true if this query and the provided query are equivalent; otherwise, return false.\r\n */\r\n Query.prototype.isEqual = function (other) {\r\n validateArgCount('Query.isEqual', 1, 1, arguments.length);\r\n if (!(other instanceof Query)) {\r\n var error = 'Query.isEqual failed: First argument must be an instance of firebase.database.Query.';\r\n throw new Error(error);\r\n }\r\n return this._delegate.isEqual(other._delegate);\r\n };\r\n /**\r\n * Helper used by .on and .once to extract the context and or cancel arguments.\r\n * @param fnName - The function name (on or once)\r\n *\r\n */\r\n Query.getCancelAndContextArgs_ = function (fnName, cancelOrContext, context) {\r\n var ret = { cancel: undefined, context: undefined };\r\n if (cancelOrContext && context) {\r\n ret.cancel = cancelOrContext;\r\n validateCallback(fnName, 'cancel', ret.cancel, true);\r\n ret.context = context;\r\n validateContextObject(fnName, 'context', ret.context, true);\r\n }\r\n else if (cancelOrContext) {\r\n // we have either a cancel callback or a context.\r\n if (typeof cancelOrContext === 'object' && cancelOrContext !== null) {\r\n // it's a context!\r\n ret.context = cancelOrContext;\r\n }\r\n else if (typeof cancelOrContext === 'function') {\r\n ret.cancel = cancelOrContext;\r\n }\r\n else {\r\n throw new Error(errorPrefix(fnName, 'cancelOrContext') +\r\n ' must either be a cancel callback or a context object.');\r\n }\r\n }\r\n return ret;\r\n };\r\n Object.defineProperty(Query.prototype, \"ref\", {\r\n get: function () {\r\n return new Reference(this.database, new ReferenceImpl(this._delegate._repo, this._delegate._path));\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Query;\r\n}());\r\nvar Reference = /** @class */ (function (_super) {\r\n __extends(Reference, _super);\r\n /**\r\n * Call options:\r\n * new Reference(Repo, Path) or\r\n * new Reference(url: string, string|RepoManager)\r\n *\r\n * Externally - this is the firebase.database.Reference type.\r\n */\r\n function Reference(database, _delegate) {\r\n var _this = _super.call(this, database, new QueryImpl(_delegate._repo, _delegate._path, new QueryParams(), false)) || this;\r\n _this.database = database;\r\n _this._delegate = _delegate;\r\n return _this;\r\n }\r\n /** @returns {?string} */\r\n Reference.prototype.getKey = function () {\r\n validateArgCount('Reference.key', 0, 0, arguments.length);\r\n return this._delegate.key;\r\n };\r\n Reference.prototype.child = function (pathString) {\r\n validateArgCount('Reference.child', 1, 1, arguments.length);\r\n if (typeof pathString === 'number') {\r\n pathString = String(pathString);\r\n }\r\n return new Reference(this.database, child(this._delegate, pathString));\r\n };\r\n /** @returns {?Reference} */\r\n Reference.prototype.getParent = function () {\r\n validateArgCount('Reference.parent', 0, 0, arguments.length);\r\n var parent = this._delegate.parent;\r\n return parent ? new Reference(this.database, parent) : null;\r\n };\r\n /** @returns {!Reference} */\r\n Reference.prototype.getRoot = function () {\r\n validateArgCount('Reference.root', 0, 0, arguments.length);\r\n return new Reference(this.database, this._delegate.root);\r\n };\r\n Reference.prototype.set = function (newVal, onComplete) {\r\n validateArgCount('Reference.set', 1, 2, arguments.length);\r\n validateCallback('Reference.set', 'onComplete', onComplete, true);\r\n var result = set(this._delegate, newVal);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.update = function (values, onComplete) {\r\n validateArgCount('Reference.update', 1, 2, arguments.length);\r\n if (Array.isArray(values)) {\r\n var newObjectToMerge = {};\r\n for (var i = 0; i < values.length; ++i) {\r\n newObjectToMerge['' + i] = values[i];\r\n }\r\n values = newObjectToMerge;\r\n warn('Passing an Array to Firebase.update() is deprecated. ' +\r\n 'Use set() if you want to overwrite the existing data, or ' +\r\n 'an Object with integer keys if you really do want to ' +\r\n 'only update some of the children.');\r\n }\r\n validateWritablePath('Reference.update', this._delegate._path);\r\n validateCallback('Reference.update', 'onComplete', onComplete, true);\r\n var result = update(this._delegate, values);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setWithPriority = function (newVal, newPriority, onComplete) {\r\n validateArgCount('Reference.setWithPriority', 2, 3, arguments.length);\r\n validateCallback('Reference.setWithPriority', 'onComplete', onComplete, true);\r\n var result = setWithPriority(this._delegate, newVal, newPriority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.remove = function (onComplete) {\r\n validateArgCount('Reference.remove', 0, 1, arguments.length);\r\n validateCallback('Reference.remove', 'onComplete', onComplete, true);\r\n var result = remove(this._delegate);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.transaction = function (transactionUpdate, onComplete, applyLocally) {\r\n var _this = this;\r\n validateArgCount('Reference.transaction', 1, 3, arguments.length);\r\n validateCallback('Reference.transaction', 'transactionUpdate', transactionUpdate, false);\r\n validateCallback('Reference.transaction', 'onComplete', onComplete, true);\r\n validateBoolean('Reference.transaction', 'applyLocally', applyLocally, true);\r\n var result = runTransaction(this._delegate, transactionUpdate, {\r\n applyLocally: applyLocally\r\n }).then(function (transactionResult) {\r\n return new TransactionResult(transactionResult.committed, new DataSnapshot(_this.database, transactionResult.snapshot));\r\n });\r\n if (onComplete) {\r\n result.then(function (transactionResult) {\r\n return onComplete(null, transactionResult.committed, transactionResult.snapshot);\r\n }, function (error) { return onComplete(error, false, null); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.setPriority = function (priority, onComplete) {\r\n validateArgCount('Reference.setPriority', 1, 2, arguments.length);\r\n validateCallback('Reference.setPriority', 'onComplete', onComplete, true);\r\n var result = setPriority(this._delegate, priority);\r\n if (onComplete) {\r\n result.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n return result;\r\n };\r\n Reference.prototype.push = function (value, onComplete) {\r\n var _this = this;\r\n validateArgCount('Reference.push', 0, 2, arguments.length);\r\n validateCallback('Reference.push', 'onComplete', onComplete, true);\r\n var expPromise = push(this._delegate, value);\r\n var promise = expPromise.then(function (expRef) { return new Reference(_this.database, expRef); });\r\n if (onComplete) {\r\n promise.then(function () { return onComplete(null); }, function (error) { return onComplete(error); });\r\n }\r\n var result = new Reference(this.database, expPromise);\r\n result.then = promise.then.bind(promise);\r\n result.catch = promise.catch.bind(promise, undefined);\r\n return result;\r\n };\r\n Reference.prototype.onDisconnect = function () {\r\n validateWritablePath('Reference.onDisconnect', this._delegate._path);\r\n return new OnDisconnect(new OnDisconnect$1(this._delegate._repo, this._delegate._path));\r\n };\r\n Object.defineProperty(Reference.prototype, \"key\", {\r\n get: function () {\r\n return this.getKey();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"parent\", {\r\n get: function () {\r\n return this.getParent();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Reference.prototype, \"root\", {\r\n get: function () {\r\n return this.getRoot();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return Reference;\r\n}(Query));\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * Class representing a firebase database.\r\n */\r\nvar Database = /** @class */ (function () {\r\n /**\r\n * The constructor should not be called by users of our public API.\r\n */\r\n function Database(_delegate, app) {\r\n var _this = this;\r\n this._delegate = _delegate;\r\n this.app = app;\r\n this.INTERNAL = {\r\n delete: function () { return _this._delegate._delete(); }\r\n };\r\n }\r\n /**\r\n * Modify this instance to communicate with the Realtime Database emulator.\r\n *\r\n *
Note: This method must be called before performing any other operation.\r\n *\r\n * @param host - the emulator host (ex: localhost)\r\n * @param port - the emulator port (ex: 8080)\r\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\r\n */\r\n Database.prototype.useEmulator = function (host, port, options) {\r\n if (options === void 0) { options = {}; }\r\n connectDatabaseEmulator(this._delegate, host, port, options);\r\n };\r\n Database.prototype.ref = function (path) {\r\n validateArgCount('database.ref', 0, 1, arguments.length);\r\n if (path instanceof Reference) {\r\n var childRef = refFromURL(this._delegate, path.toString());\r\n return new Reference(this, childRef);\r\n }\r\n else {\r\n var childRef = ref(this._delegate, path);\r\n return new Reference(this, childRef);\r\n }\r\n };\r\n /**\r\n * Returns a reference to the root or the path specified in url.\r\n * We throw a exception if the url is not in the same domain as the\r\n * current repo.\r\n * @returns Firebase reference.\r\n */\r\n Database.prototype.refFromURL = function (url) {\r\n var apiName = 'database.refFromURL';\r\n validateArgCount(apiName, 1, 1, arguments.length);\r\n var childRef = refFromURL(this._delegate, url);\r\n return new Reference(this, childRef);\r\n };\r\n // Make individual repo go offline.\r\n Database.prototype.goOffline = function () {\r\n validateArgCount('database.goOffline', 0, 0, arguments.length);\r\n return goOffline(this._delegate);\r\n };\r\n Database.prototype.goOnline = function () {\r\n validateArgCount('database.goOnline', 0, 0, arguments.length);\r\n return goOnline(this._delegate);\r\n };\r\n Database.ServerValue = {\r\n TIMESTAMP: serverTimestamp(),\r\n increment: function (delta) { return increment(delta); }\r\n };\r\n return Database;\r\n}());\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * INTERNAL methods for internal-use only (tests, etc.).\r\n *\r\n * Customers shouldn't use these or else should be aware that they could break at any time.\r\n */\r\nvar forceLongPolling = function () {\r\n WebSocketConnection.forceDisallow();\r\n BrowserPollConnection.forceAllow();\r\n};\r\nvar forceWebSockets = function () {\r\n BrowserPollConnection.forceDisallow();\r\n};\r\n/* Used by App Manager */\r\nvar isWebSocketsAvailable = function () {\r\n return WebSocketConnection['isAvailable']();\r\n};\r\nvar setSecurityDebugCallback = function (ref, callback) {\r\n var connection = ref._delegate._repo.persistentConnection_;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n connection.securityDebugCallback_ = callback;\r\n};\r\nvar stats = function (ref, showDelta) {\r\n repoStats(ref._delegate._repo, showDelta);\r\n};\r\nvar statsIncrementCounter = function (ref, metric) {\r\n repoStatsIncrementCounter(ref._delegate._repo, metric);\r\n};\r\nvar dataUpdateCount = function (ref) {\r\n return ref._delegate._repo.dataUpdateCount;\r\n};\r\nvar interceptServerData = function (ref, callback) {\r\n return repoInterceptServerData(ref._delegate._repo, callback);\r\n};\r\n/**\r\n * Used by console to create a database based on the app,\r\n * passed database URL and a custom auth implementation.\r\n *\r\n * @param app - A valid FirebaseApp-like object\r\n * @param url - A valid Firebase databaseURL\r\n * @param version - custom version e.g. firebase-admin version\r\n * @param customAuthImpl - custom auth implementation\r\n */\r\nfunction initStandalone(_a) {\r\n var app = _a.app, url = _a.url, version = _a.version, customAuthImpl = _a.customAuthImpl, namespace = _a.namespace, _b = _a.nodeAdmin, nodeAdmin = _b === void 0 ? false : _b;\r\n setSDKVersion(version);\r\n /**\r\n * ComponentContainer('database-standalone') is just a placeholder that doesn't perform\r\n * any actual function.\r\n */\r\n var authProvider = new Provider('auth-internal', new ComponentContainer('database-standalone'));\r\n authProvider.setComponent(new Component('auth-internal', function () { return customAuthImpl; }, \"PRIVATE\" /* PRIVATE */));\r\n return {\r\n instance: new Database(repoManagerDatabaseFromApp(app, authProvider, \r\n /* appCheckProvider= */ undefined, url, nodeAdmin), app),\r\n namespace: namespace\r\n };\r\n}\n\nvar INTERNAL = /*#__PURE__*/Object.freeze({\n __proto__: null,\n forceLongPolling: forceLongPolling,\n forceWebSockets: forceWebSockets,\n isWebSocketsAvailable: isWebSocketsAvailable,\n setSecurityDebugCallback: setSecurityDebugCallback,\n stats: stats,\n statsIncrementCounter: statsIncrementCounter,\n dataUpdateCount: dataUpdateCount,\n interceptServerData: interceptServerData,\n initStandalone: initStandalone\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar DataConnection = PersistentConnection;\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.simpleListen = function (pathString, onComplete) {\r\n this.sendRequest('q', { p: pathString }, onComplete);\r\n};\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nPersistentConnection.prototype.echo = function (data, onEcho) {\r\n this.sendRequest('echo', { d: data }, onEcho);\r\n};\r\n// RealTimeConnection properties that we use in tests.\r\nvar RealTimeConnection = Connection;\r\nvar hijackHash = function (newHash) {\r\n var oldPut = PersistentConnection.prototype.put;\r\n PersistentConnection.prototype.put = function (pathString, data, onComplete, hash) {\r\n if (hash !== undefined) {\r\n hash = newHash();\r\n }\r\n oldPut.call(this, pathString, data, onComplete, hash);\r\n };\r\n return function () {\r\n PersistentConnection.prototype.put = oldPut;\r\n };\r\n};\r\nvar ConnectionTarget = RepoInfo;\r\nvar queryIdentifier = function (query) {\r\n return query._delegate._queryIdentifier;\r\n};\r\n/**\r\n * Forces the RepoManager to create Repos that use ReadonlyRestClient instead of PersistentConnection.\r\n */\r\nvar forceRestClient = function (forceRestClient) {\r\n repoManagerForceRestClient(forceRestClient);\r\n};\n\nvar TEST_ACCESS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n DataConnection: DataConnection,\n RealTimeConnection: RealTimeConnection,\n hijackHash: hijackHash,\n ConnectionTarget: ConnectionTarget,\n queryIdentifier: queryIdentifier,\n forceRestClient: forceRestClient\n});\n\n/**\r\n * @license\r\n * Copyright 2017 Google LLC\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar ServerValue = Database.ServerValue;\r\nfunction registerDatabase(instance) {\r\n // set SDK_VERSION\r\n setSDKVersion(instance.SDK_VERSION);\r\n // Register the Database Service with the 'firebase' namespace.\r\n var namespace = instance.INTERNAL.registerComponent(new Component('database', function (container, _a) {\r\n var url = _a.instanceIdentifier;\r\n /* Dependencies */\r\n // getImmediate for FirebaseApp will always succeed\r\n var app = container.getProvider('app').getImmediate();\r\n var authProvider = container.getProvider('auth-internal');\r\n var appCheckProvider = container.getProvider('app-check-internal');\r\n return new Database(repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url), app);\r\n }, \"PUBLIC\" /* PUBLIC */)\r\n .setServiceProps(\r\n // firebase.database namespace properties\r\n {\r\n Reference: Reference,\r\n Query: Query,\r\n Database: Database,\r\n DataSnapshot: DataSnapshot,\r\n enableLogging: enableLogging,\r\n INTERNAL: INTERNAL,\r\n ServerValue: ServerValue,\r\n TEST_ACCESS: TEST_ACCESS\r\n })\r\n .setMultipleInstances(true));\r\n instance.registerVersion(name, version);\r\n if (isNodeSdk()) {\r\n module.exports = namespace;\r\n }\r\n}\r\nregisterDatabase(firebase);\n\nexport { DataSnapshot, Database, OnDisconnect, Query, Reference, ServerValue, enableLogging, registerDatabase };\n//# sourceMappingURL=index.esm.js.map\n"],"sourceRoot":""}