@thefittingroom/sdk 0.0.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.dev +14 -0
- package/.env.example +12 -0
- package/.env.prod +14 -0
- package/dist/esm/api/fetcher.d.ts +9 -0
- package/dist/esm/api/requests.d.ts +155 -0
- package/dist/esm/api/responses.d.ts +119 -0
- package/dist/esm/api/shop.d.ts +22 -0
- package/dist/esm/api/utils.d.ts +1 -0
- package/dist/esm/firebase/firebase-error.d.ts +2 -0
- package/dist/esm/firebase/firebase-user.d.ts +18 -0
- package/dist/esm/firebase/firebase.d.ts +15 -0
- package/dist/esm/helpers/async.d.ts +1 -0
- package/dist/esm/helpers/errors.d.ts +28 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +23011 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.min.js +3169 -0
- package/dist/esm/index.min.js.map +1 -0
- package/dist/esm/types/index.d.ts +48 -0
- package/package.json +75 -0
|
@@ -0,0 +1,3169 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* thefittingroom v0.0.1-alpha.9 (2023-07-17T20:26:11.306Z)
|
|
3
|
+
* Copyright 2022-present, TheFittingRoom, Inc. All rights reserved.
|
|
4
|
+
*/
|
|
5
|
+
var t=Object.freeze({__proto__:null}),e=Object.freeze({__proto__:null});
|
|
6
|
+
/**
|
|
7
|
+
* @license
|
|
8
|
+
* Copyright 2017 Google LLC
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* @license
|
|
24
|
+
* Copyright 2017 Google LLC
|
|
25
|
+
*
|
|
26
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
27
|
+
* you may not use this file except in compliance with the License.
|
|
28
|
+
* You may obtain a copy of the License at
|
|
29
|
+
*
|
|
30
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
31
|
+
*
|
|
32
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
33
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
34
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
35
|
+
* See the License for the specific language governing permissions and
|
|
36
|
+
* limitations under the License.
|
|
37
|
+
*/
|
|
38
|
+
const n=function(t){const e=[];let n=0;for(let r=0;r<t.length;r++){let s=t.charCodeAt(r);s<128?e[n++]=s:s<2048?(e[n++]=s>>6|192,e[n++]=63&s|128):55296==(64512&s)&&r+1<t.length&&56320==(64512&t.charCodeAt(r+1))?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++r)),e[n++]=s>>18|240,e[n++]=s>>12&63|128,e[n++]=s>>6&63|128,e[n++]=63&s|128):(e[n++]=s>>12|224,e[n++]=s>>6&63|128,e[n++]=63&s|128)}return e},r={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[];for(let e=0;e<t.length;e+=3){const s=t[e],i=e+1<t.length,o=i?t[e+1]:0,a=e+2<t.length,c=a?t[e+2]:0,u=s>>2,h=(3&s)<<4|o>>4;let l=(15&o)<<2|c>>6,d=63&c;a||(d=64,i||(l=64)),r.push(n[u],n[h],n[l],n[d])}return r.join("")},encodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(n(t),e)},decodeString(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){const e=[];let n=0,r=0;for(;n<t.length;){const s=t[n++];if(s<128)e[r++]=String.fromCharCode(s);else if(s>191&&s<224){const i=t[n++];e[r++]=String.fromCharCode((31&s)<<6|63&i)}else if(s>239&&s<365){const i=((7&s)<<18|(63&t[n++])<<12|(63&t[n++])<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(i>>10)),e[r++]=String.fromCharCode(56320+(1023&i))}else{const i=t[n++],o=t[n++];e[r++]=String.fromCharCode((15&s)<<12|(63&i)<<6|63&o)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray(t,e){this.init_();const n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[];for(let e=0;e<t.length;){const s=n[t.charAt(e++)],i=e<t.length?n[t.charAt(e)]:0;++e;const o=e<t.length?n[t.charAt(e)]:64;++e;const a=e<t.length?n[t.charAt(e)]:64;if(++e,null==s||null==i||null==o||null==a)throw Error();const c=s<<2|i>>4;if(r.push(c),64!==o){const t=i<<4&240|o>>2;if(r.push(t),64!==a){const t=o<<6&192|a;r.push(t)}}}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let t=0;t<this.ENCODED_VALS.length;t++)this.byteToCharMap_[t]=this.ENCODED_VALS.charAt(t),this.charToByteMap_[this.byteToCharMap_[t]]=t,this.byteToCharMapWebSafe_[t]=this.ENCODED_VALS_WEBSAFE.charAt(t),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[t]]=t,t>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},s=function(t){return function(t){const e=n(t);return r.encodeByteArray(e,!0)}(t).replace(/\./g,"")},i=function(t){try{return r.decodeString(t,!0)}catch(t){console.error("base64Decode failed: ",t)}return null};
|
|
39
|
+
/**
|
|
40
|
+
* @license
|
|
41
|
+
* Copyright 2017 Google LLC
|
|
42
|
+
*
|
|
43
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
44
|
+
* you may not use this file except in compliance with the License.
|
|
45
|
+
* You may obtain a copy of the License at
|
|
46
|
+
*
|
|
47
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
48
|
+
*
|
|
49
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
50
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
51
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
52
|
+
* See the License for the specific language governing permissions and
|
|
53
|
+
* limitations under the License.
|
|
54
|
+
*/
|
|
55
|
+
function o(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}
|
|
56
|
+
/**
|
|
57
|
+
* @license
|
|
58
|
+
* Copyright 2022 Google LLC
|
|
59
|
+
*
|
|
60
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
61
|
+
* you may not use this file except in compliance with the License.
|
|
62
|
+
* You may obtain a copy of the License at
|
|
63
|
+
*
|
|
64
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
65
|
+
*
|
|
66
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
67
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
68
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
69
|
+
* See the License for the specific language governing permissions and
|
|
70
|
+
* limitations under the License.
|
|
71
|
+
*/
|
|
72
|
+
const a=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,c=()=>{try{return a()||(()=>{if("undefined"==typeof process||void 0===process.env)return;const t=process.env.__FIREBASE_DEFAULTS__;return t?JSON.parse(t):void 0})()||(()=>{if("undefined"==typeof document)return;let t;try{t=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const e=t&&i(t[1]);return e&&JSON.parse(e)})()}catch(t){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${t}`)}},u=t=>{var e,n;return null===(n=null===(e=c())||void 0===e?void 0:e.emulatorHosts)||void 0===n?void 0:n[t]},h=t=>{var e;return null===(e=c())||void 0===e?void 0:e[`_${t}`]};
|
|
73
|
+
/**
|
|
74
|
+
* @license
|
|
75
|
+
* Copyright 2017 Google LLC
|
|
76
|
+
*
|
|
77
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
78
|
+
* you may not use this file except in compliance with the License.
|
|
79
|
+
* You may obtain a copy of the License at
|
|
80
|
+
*
|
|
81
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
82
|
+
*
|
|
83
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
84
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
85
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
86
|
+
* See the License for the specific language governing permissions and
|
|
87
|
+
* limitations under the License.
|
|
88
|
+
*/
|
|
89
|
+
class l{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}wrapCallback(t){return(e,n)=>{e?this.reject(e):this.resolve(n),"function"==typeof t&&(this.promise.catch((()=>{})),1===t.length?t(e):t(e,n))}}}
|
|
90
|
+
/**
|
|
91
|
+
* @license
|
|
92
|
+
* Copyright 2021 Google LLC
|
|
93
|
+
*
|
|
94
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
95
|
+
* you may not use this file except in compliance with the License.
|
|
96
|
+
* You may obtain a copy of the License at
|
|
97
|
+
*
|
|
98
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
99
|
+
*
|
|
100
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
101
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
102
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
103
|
+
* See the License for the specific language governing permissions and
|
|
104
|
+
* limitations under the License.
|
|
105
|
+
*/class d extends Error{constructor(t,e,n){super(e),this.code=t,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,d.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,f.prototype.create)}}class f{constructor(t,e,n){this.service=t,this.serviceName=e,this.errors=n}create(t,...e){const n=e[0]||{},r=`${this.service}/${t}`,s=this.errors[t],i=s?function(t,e){return t.replace(p,((t,n)=>{const r=e[n];return null!=r?String(r):`<${n}?>`}))}(s,n):"Error",o=`${this.serviceName}: ${i} (${r}).`;return new d(r,o,n)}}const p=/\{\$([^}]+)}/g;function g(t,e){if(t===e)return!0;const n=Object.keys(t),r=Object.keys(e);for(const s of n){if(!r.includes(s))return!1;const n=t[s],i=e[s];if(m(n)&&m(i)){if(!g(n,i))return!1}else if(n!==i)return!1}for(const t of r)if(!n.includes(t))return!1;return!0}function m(t){return null!==t&&"object"==typeof t}
|
|
106
|
+
/**
|
|
107
|
+
* @license
|
|
108
|
+
* Copyright 2017 Google LLC
|
|
109
|
+
*
|
|
110
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
111
|
+
* you may not use this file except in compliance with the License.
|
|
112
|
+
* You may obtain a copy of the License at
|
|
113
|
+
*
|
|
114
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
115
|
+
*
|
|
116
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
117
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
118
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
119
|
+
* See the License for the specific language governing permissions and
|
|
120
|
+
* limitations under the License.
|
|
121
|
+
*/function y(t){const e=[];for(const[n,r]of Object.entries(t))Array.isArray(r)?r.forEach((t=>{e.push(encodeURIComponent(n)+"="+encodeURIComponent(t))})):e.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return e.length?"&"+e.join("&"):""}function v(t){const e={};return t.replace(/^\?/,"").split("&").forEach((t=>{if(t){const[n,r]=t.split("=");e[decodeURIComponent(n)]=decodeURIComponent(r)}})),e}function w(t){const e=t.indexOf("?");if(!e)return"";const n=t.indexOf("#",e);return t.substring(e,n>0?n:void 0)}class I{constructor(t,e){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then((()=>{t(this)})).catch((t=>{this.error(t)}))}next(t){this.forEachObserver((e=>{e.next(t)}))}error(t){this.forEachObserver((e=>{e.error(t)})),this.close(t)}complete(){this.forEachObserver((t=>{t.complete()})),this.close()}subscribe(t,e,n){let r;if(void 0===t&&void 0===e&&void 0===n)throw new Error("Missing Observer.");r=function(t,e){if("object"!=typeof t||null===t)return!1;for(const n of e)if(n in t&&"function"==typeof t[n])return!0;return!1}(t,["next","error","complete"])?t:{next:t,error:e,complete:n},void 0===r.next&&(r.next=b),void 0===r.error&&(r.error=b),void 0===r.complete&&(r.complete=b);const s=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(t){}})),this.observers.push(r),s}unsubscribeOne(t){void 0!==this.observers&&void 0!==this.observers[t]&&(delete this.observers[t],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(t){if(!this.finalized)for(let e=0;e<this.observers.length;e++)this.sendOne(e,t)}sendOne(t,e){this.task.then((()=>{if(void 0!==this.observers&&void 0!==this.observers[t])try{e(this.observers[t])}catch(t){"undefined"!=typeof console&&console.error&&console.error(t)}}))}close(t){this.finalized||(this.finalized=!0,void 0!==t&&(this.finalError=t),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function b(){}
|
|
122
|
+
/**
|
|
123
|
+
* @license
|
|
124
|
+
* Copyright 2021 Google LLC
|
|
125
|
+
*
|
|
126
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
127
|
+
* you may not use this file except in compliance with the License.
|
|
128
|
+
* You may obtain a copy of the License at
|
|
129
|
+
*
|
|
130
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
131
|
+
*
|
|
132
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
133
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
134
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
135
|
+
* See the License for the specific language governing permissions and
|
|
136
|
+
* limitations under the License.
|
|
137
|
+
*/function E(t){return t&&t._delegate?t._delegate:t}class _{constructor(t,e,n){this.name=t,this.instanceFactory=e,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(t){return this.instantiationMode=t,this}setMultipleInstances(t){return this.multipleInstances=t,this}setServiceProps(t){return this.serviceProps=t,this}setInstanceCreatedCallback(t){return this.onInstanceCreated=t,this}}
|
|
138
|
+
/**
|
|
139
|
+
* @license
|
|
140
|
+
* Copyright 2019 Google LLC
|
|
141
|
+
*
|
|
142
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
143
|
+
* you may not use this file except in compliance with the License.
|
|
144
|
+
* You may obtain a copy of the License at
|
|
145
|
+
*
|
|
146
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
147
|
+
*
|
|
148
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
149
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
150
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
151
|
+
* See the License for the specific language governing permissions and
|
|
152
|
+
* limitations under the License.
|
|
153
|
+
*/const T="[DEFAULT]";
|
|
154
|
+
/**
|
|
155
|
+
* @license
|
|
156
|
+
* Copyright 2019 Google LLC
|
|
157
|
+
*
|
|
158
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
159
|
+
* you may not use this file except in compliance with the License.
|
|
160
|
+
* You may obtain a copy of the License at
|
|
161
|
+
*
|
|
162
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
163
|
+
*
|
|
164
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
165
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
166
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
167
|
+
* See the License for the specific language governing permissions and
|
|
168
|
+
* limitations under the License.
|
|
169
|
+
*/class S{constructor(t,e){this.name=t,this.container=e,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(t){const e=this.normalizeInstanceIdentifier(t);if(!this.instancesDeferred.has(e)){const t=new l;if(this.instancesDeferred.set(e,t),this.isInitialized(e)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:e});n&&t.resolve(n)}catch(t){}}return this.instancesDeferred.get(e).promise}getImmediate(t){var e;const n=this.normalizeInstanceIdentifier(null==t?void 0:t.identifier),r=null!==(e=null==t?void 0:t.optional)&&void 0!==e&&e;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(r)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(t){if(r)return null;throw t}}getComponent(){return this.component}setComponent(t){if(t.name!==this.name)throw Error(`Mismatching Component ${t.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=t,this.shouldAutoInitialize()){if(function(t){return"EAGER"===t.instantiationMode}
|
|
170
|
+
/**
|
|
171
|
+
* @license
|
|
172
|
+
* Copyright 2019 Google LLC
|
|
173
|
+
*
|
|
174
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
175
|
+
* you may not use this file except in compliance with the License.
|
|
176
|
+
* You may obtain a copy of the License at
|
|
177
|
+
*
|
|
178
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
179
|
+
*
|
|
180
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
181
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
182
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
183
|
+
* See the License for the specific language governing permissions and
|
|
184
|
+
* limitations under the License.
|
|
185
|
+
*/(t))try{this.getOrInitializeService({instanceIdentifier:T})}catch(t){}for(const[t,e]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(t);try{const t=this.getOrInitializeService({instanceIdentifier:n});e.resolve(t)}catch(t){}}}}clearInstance(t=T){this.instancesDeferred.delete(t),this.instancesOptions.delete(t),this.instances.delete(t)}async delete(){const t=Array.from(this.instances.values());await Promise.all([...t.filter((t=>"INTERNAL"in t)).map((t=>t.INTERNAL.delete())),...t.filter((t=>"_delete"in t)).map((t=>t._delete()))])}isComponentSet(){return null!=this.component}isInitialized(t=T){return this.instances.has(t)}getOptions(t=T){return this.instancesOptions.get(t)||{}}initialize(t={}){const{options:e={}}=t,n=this.normalizeInstanceIdentifier(t.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const r=this.getOrInitializeService({instanceIdentifier:n,options:e});for(const[t,e]of this.instancesDeferred.entries()){n===this.normalizeInstanceIdentifier(t)&&e.resolve(r)}return r}onInit(t,e){var n;const r=this.normalizeInstanceIdentifier(e),s=null!==(n=this.onInitCallbacks.get(r))&&void 0!==n?n:new Set;s.add(t),this.onInitCallbacks.set(r,s);const i=this.instances.get(r);return i&&t(i,r),()=>{s.delete(t)}}invokeOnInitCallbacks(t,e){const n=this.onInitCallbacks.get(e);if(n)for(const r of n)try{r(t,e)}catch(t){}}getOrInitializeService({instanceIdentifier:t,options:e={}}){let n=this.instances.get(t);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=t,r===T?void 0:r),options:e}),this.instances.set(t,n),this.instancesOptions.set(t,e),this.invokeOnInitCallbacks(n,t),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,t,n)}catch(t){}var r;return n||null}normalizeInstanceIdentifier(t=T){return this.component?this.component.multipleInstances?t:T:t}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class A{constructor(t){this.name=t,this.providers=new Map}addComponent(t){const e=this.getProvider(t.name);if(e.isComponentSet())throw new Error(`Component ${t.name} has already been registered with ${this.name}`);e.setComponent(t)}addOrOverwriteComponent(t){this.getProvider(t.name).isComponentSet()&&this.providers.delete(t.name),this.addComponent(t)}getProvider(t){if(this.providers.has(t))return this.providers.get(t);const e=new S(t,this);return this.providers.set(t,e),e}getProviders(){return Array.from(this.providers.values())}}
|
|
186
|
+
/**
|
|
187
|
+
* @license
|
|
188
|
+
* Copyright 2017 Google LLC
|
|
189
|
+
*
|
|
190
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
191
|
+
* you may not use this file except in compliance with the License.
|
|
192
|
+
* You may obtain a copy of the License at
|
|
193
|
+
*
|
|
194
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
195
|
+
*
|
|
196
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
197
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
198
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
199
|
+
* See the License for the specific language governing permissions and
|
|
200
|
+
* limitations under the License.
|
|
201
|
+
*/var C;!function(t){t[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT"}(C||(C={}));const k={debug:C.DEBUG,verbose:C.VERBOSE,info:C.INFO,warn:C.WARN,error:C.ERROR,silent:C.SILENT},N=C.INFO,D={[C.DEBUG]:"log",[C.VERBOSE]:"log",[C.INFO]:"info",[C.WARN]:"warn",[C.ERROR]:"error"},R=(t,e,...n)=>{if(e<t.logLevel)return;const r=(new Date).toISOString(),s=D[e];if(!s)throw new Error(`Attempted to log a message with an invalid logType (value: ${e})`);console[s](`[${r}] ${t.name}:`,...n)};class O{constructor(t){this.name=t,this._logLevel=N,this._logHandler=R,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(t){if(!(t in C))throw new TypeError(`Invalid value "${t}" assigned to \`logLevel\``);this._logLevel=t}setLogLevel(t){this._logLevel="string"==typeof t?k[t]:t}get logHandler(){return this._logHandler}set logHandler(t){if("function"!=typeof t)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=t}get userLogHandler(){return this._userLogHandler}set userLogHandler(t){this._userLogHandler=t}debug(...t){this._userLogHandler&&this._userLogHandler(this,C.DEBUG,...t),this._logHandler(this,C.DEBUG,...t)}log(...t){this._userLogHandler&&this._userLogHandler(this,C.VERBOSE,...t),this._logHandler(this,C.VERBOSE,...t)}info(...t){this._userLogHandler&&this._userLogHandler(this,C.INFO,...t),this._logHandler(this,C.INFO,...t)}warn(...t){this._userLogHandler&&this._userLogHandler(this,C.WARN,...t),this._logHandler(this,C.WARN,...t)}error(...t){this._userLogHandler&&this._userLogHandler(this,C.ERROR,...t),this._logHandler(this,C.ERROR,...t)}}let L,P;const M=new WeakMap,x=new WeakMap,U=new WeakMap,F=new WeakMap,V=new WeakMap;let q={get(t,e,n){if(t instanceof IDBTransaction){if("done"===e)return x.get(t);if("objectStoreNames"===e)return t.objectStoreNames||U.get(t);if("store"===e)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return z(t[e])},set:(t,e,n)=>(t[e]=n,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function j(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(P||(P=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply($(this),e),z(M.get(this))}:function(...e){return z(t.apply($(this),e))}:function(e,...n){const r=t.call($(this),e,...n);return U.set(r,e.sort?e.sort():[e]),z(r)}}function B(t){return"function"==typeof t?j(t):(t instanceof IDBTransaction&&function(t){if(x.has(t))return;const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("complete",s),t.removeEventListener("error",i),t.removeEventListener("abort",i)},s=()=>{e(),r()},i=()=>{n(t.error||new DOMException("AbortError","AbortError")),r()};t.addEventListener("complete",s),t.addEventListener("error",i),t.addEventListener("abort",i)}));x.set(t,e)}(t),e=t,(L||(L=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((t=>e instanceof t))?new Proxy(t,q):t);var e}function z(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,n)=>{const r=()=>{t.removeEventListener("success",s),t.removeEventListener("error",i)},s=()=>{e(z(t.result)),r()},i=()=>{n(t.error),r()};t.addEventListener("success",s),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&M.set(e,t)})).catch((()=>{})),V.set(e,t),e}(t);if(F.has(t))return F.get(t);const e=B(t);return e!==t&&(F.set(t,e),V.set(e,t)),e}const $=t=>V.get(t);const K=["get","getKey","getAll","getAllKeys","count"],H=["put","add","delete","clear"],G=new Map;function W(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(G.get(e))return G.get(e);const n=e.replace(/FromIndex$/,""),r=e!==n,s=H.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!s&&!K.includes(n))return;const i=async function(t,...e){const i=this.transaction(t,s?"readwrite":"readonly");let o=i.store;return r&&(o=o.index(e.shift())),(await Promise.all([o[n](...e),s&&i.done]))[0]};return G.set(e,i),i}q=(t=>({...t,get:(e,n,r)=>W(e,n)||t.get(e,n,r),has:(e,n)=>!!W(e,n)||t.has(e,n)}))(q);
|
|
202
|
+
/**
|
|
203
|
+
* @license
|
|
204
|
+
* Copyright 2019 Google LLC
|
|
205
|
+
*
|
|
206
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
207
|
+
* you may not use this file except in compliance with the License.
|
|
208
|
+
* You may obtain a copy of the License at
|
|
209
|
+
*
|
|
210
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
211
|
+
*
|
|
212
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
213
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
214
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
215
|
+
* See the License for the specific language governing permissions and
|
|
216
|
+
* limitations under the License.
|
|
217
|
+
*/
|
|
218
|
+
class Q{constructor(t){this.container=t}getPlatformInfoString(){return this.container.getProviders().map((t=>{if(function(t){const e=t.getComponent();return"VERSION"===(null==e?void 0:e.type)}(t)){const e=t.getImmediate();return`${e.library}/${e.version}`}return null})).filter((t=>t)).join(" ")}}const J="@firebase/app",X="0.9.0",Y=new O("@firebase/app"),Z="[DEFAULT]",tt={[J]:"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","fire-js":"fire-js",firebase:"fire-js-all"},et=new Map,nt=new Map;function rt(t,e){try{t.container.addComponent(e)}catch(n){Y.debug(`Component ${e.name} failed to register with FirebaseApp ${t.name}`,n)}}function st(t){const e=t.name;if(nt.has(e))return Y.debug(`There were multiple attempts to register component ${e}.`),!1;nt.set(e,t);for(const e of et.values())rt(e,t);return!0}function it(t,e){const n=t.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),t.container.getProvider(e)}
|
|
219
|
+
/**
|
|
220
|
+
* @license
|
|
221
|
+
* Copyright 2019 Google LLC
|
|
222
|
+
*
|
|
223
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
224
|
+
* you may not use this file except in compliance with the License.
|
|
225
|
+
* You may obtain a copy of the License at
|
|
226
|
+
*
|
|
227
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
228
|
+
*
|
|
229
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
230
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
231
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
232
|
+
* See the License for the specific language governing permissions and
|
|
233
|
+
* limitations under the License.
|
|
234
|
+
*/const ot=new f("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","bad-app-name":"Illegal App name: '{$appName}","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}."});
|
|
235
|
+
/**
|
|
236
|
+
* @license
|
|
237
|
+
* Copyright 2019 Google LLC
|
|
238
|
+
*
|
|
239
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
240
|
+
* you may not use this file except in compliance with the License.
|
|
241
|
+
* You may obtain a copy of the License at
|
|
242
|
+
*
|
|
243
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
244
|
+
*
|
|
245
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
246
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
247
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
248
|
+
* See the License for the specific language governing permissions and
|
|
249
|
+
* limitations under the License.
|
|
250
|
+
*/
|
|
251
|
+
class at{constructor(t,e,n){this._isDeleted=!1,this._options=Object.assign({},t),this._config=Object.assign({},e),this._name=e.name,this._automaticDataCollectionEnabled=e.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new _("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(t){this.checkDestroyed(),this._automaticDataCollectionEnabled=t}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(t){this._isDeleted=t}checkDestroyed(){if(this.isDeleted)throw ot.create("app-deleted",{appName:this._name})}}
|
|
252
|
+
/**
|
|
253
|
+
* @license
|
|
254
|
+
* Copyright 2019 Google LLC
|
|
255
|
+
*
|
|
256
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
257
|
+
* you may not use this file except in compliance with the License.
|
|
258
|
+
* You may obtain a copy of the License at
|
|
259
|
+
*
|
|
260
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
261
|
+
*
|
|
262
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
263
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
264
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
265
|
+
* See the License for the specific language governing permissions and
|
|
266
|
+
* limitations under the License.
|
|
267
|
+
*/const ct="9.15.0";function ut(t,e={}){let n=t;if("object"!=typeof e){e={name:e}}const r=Object.assign({name:Z,automaticDataCollectionEnabled:!1},e),s=r.name;if("string"!=typeof s||!s)throw ot.create("bad-app-name",{appName:String(s)});if(n||(n=(()=>{var t;return null===(t=c())||void 0===t?void 0:t.config})()),!n)throw ot.create("no-options");const i=et.get(s);if(i){if(g(n,i.options)&&g(r,i.config))return i;throw ot.create("duplicate-app",{appName:s})}const o=new A(s);for(const t of nt.values())o.addComponent(t);const a=new at(n,r,o);return et.set(s,a),a}function ht(t=Z){const e=et.get(t);if(!e&&t===Z)return ut();if(!e)throw ot.create("no-app",{appName:t});return e}function lt(t,e,n){var r;let s=null!==(r=tt[t])&&void 0!==r?r:t;n&&(s+=`-${n}`);const i=s.match(/\s|\//),o=e.match(/\s|\//);if(i||o){const t=[`Unable to register library "${s}" with version "${e}":`];return i&&t.push(`library name "${s}" contains illegal characters (whitespace or "/")`),i&&o&&t.push("and"),o&&t.push(`version name "${e}" contains illegal characters (whitespace or "/")`),void Y.warn(t.join(" "))}st(new _(`${s}-version`,(()=>({library:s,version:e})),"VERSION"))}
|
|
268
|
+
/**
|
|
269
|
+
* @license
|
|
270
|
+
* Copyright 2021 Google LLC
|
|
271
|
+
*
|
|
272
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
273
|
+
* you may not use this file except in compliance with the License.
|
|
274
|
+
* You may obtain a copy of the License at
|
|
275
|
+
*
|
|
276
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
277
|
+
*
|
|
278
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
279
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
280
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
281
|
+
* See the License for the specific language governing permissions and
|
|
282
|
+
* limitations under the License.
|
|
283
|
+
*/const dt="firebase-heartbeat-store";let ft=null;function pt(){return ft||(ft=function(t,e,{blocked:n,upgrade:r,blocking:s,terminated:i}={}){const o=indexedDB.open(t,e),a=z(o);return r&&o.addEventListener("upgradeneeded",(t=>{r(z(o.result),t.oldVersion,t.newVersion,z(o.transaction))})),n&&o.addEventListener("blocked",(()=>n())),a.then((t=>{i&&t.addEventListener("close",(()=>i())),s&&t.addEventListener("versionchange",(()=>s()))})).catch((()=>{})),a}("firebase-heartbeat-database",1,{upgrade:(t,e)=>{if(0===e)t.createObjectStore(dt)}}).catch((t=>{throw ot.create("idb-open",{originalErrorMessage:t.message})}))),ft}async function gt(t,e){try{const n=(await pt()).transaction(dt,"readwrite"),r=n.objectStore(dt);return await r.put(e,mt(t)),n.done}catch(t){if(t instanceof d)Y.warn(t.message);else{const e=ot.create("idb-set",{originalErrorMessage:null==t?void 0:t.message});Y.warn(e.message)}}}function mt(t){return`${t.name}!${t.options.appId}`}
|
|
284
|
+
/**
|
|
285
|
+
* @license
|
|
286
|
+
* Copyright 2021 Google LLC
|
|
287
|
+
*
|
|
288
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
289
|
+
* you may not use this file except in compliance with the License.
|
|
290
|
+
* You may obtain a copy of the License at
|
|
291
|
+
*
|
|
292
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
293
|
+
*
|
|
294
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
295
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
296
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
297
|
+
* See the License for the specific language governing permissions and
|
|
298
|
+
* limitations under the License.
|
|
299
|
+
*/class yt{constructor(t){this.container=t,this._heartbeatsCache=null;const e=this.container.getProvider("app").getImmediate();this._storage=new wt(e),this._heartbeatsCachePromise=this._storage.read().then((t=>(this._heartbeatsCache=t,t)))}async triggerHeartbeat(){const t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),e=vt();if(null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise),this._heartbeatsCache.lastSentHeartbeatDate!==e&&!this._heartbeatsCache.heartbeats.some((t=>t.date===e)))return this._heartbeatsCache.heartbeats.push({date:e,agent:t}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((t=>{const e=new Date(t.date).valueOf();return Date.now()-e<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}async getHeartbeatsHeader(){if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return"";const t=vt(),{heartbeatsToSend:e,unsentEntries:n}=function(t,e=1024){const n=[];let r=t.slice();for(const s of t){const t=n.find((t=>t.agent===s.agent));if(t){if(t.dates.push(s.date),It(n)>e){t.dates.pop();break}}else if(n.push({agent:s.agent,dates:[s.date]}),It(n)>e){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),r=s(JSON.stringify({version:2,heartbeats:e}));return this._heartbeatsCache.lastSentHeartbeatDate=t,n.length>0?(this._heartbeatsCache.heartbeats=n,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}}function vt(){return(new Date).toISOString().substring(0,10)}class wt{constructor(t){this.app=t,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(t){return!1}}()&&new Promise(((t,e)=>{try{let n=!0;const r="validate-browser-context-for-indexeddb-analytics-module",s=self.indexedDB.open(r);s.onsuccess=()=>{s.result.close(),n||self.indexedDB.deleteDatabase(r),t(!0)},s.onupgradeneeded=()=>{n=!1},s.onerror=()=>{var t;e((null===(t=s.error)||void 0===t?void 0:t.message)||"")}}catch(t){e(t)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){return await async function(t){try{return(await pt()).transaction(dt).objectStore(dt).get(mt(t))}catch(t){if(t instanceof d)Y.warn(t.message);else{const e=ot.create("idb-get",{originalErrorMessage:null==t?void 0:t.message});Y.warn(e.message)}}}(this.app)||{heartbeats:[]}}return{heartbeats:[]}}async overwrite(t){var e;if(await this._canUseIndexedDBPromise){const n=await this.read();return gt(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:n.lastSentHeartbeatDate,heartbeats:t.heartbeats})}}async add(t){var e;if(await this._canUseIndexedDBPromise){const n=await this.read();return gt(this.app,{lastSentHeartbeatDate:null!==(e=t.lastSentHeartbeatDate)&&void 0!==e?e:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...t.heartbeats]})}}}function It(t){return s(JSON.stringify({version:2,heartbeats:t})).length}
|
|
300
|
+
/**
|
|
301
|
+
* @license
|
|
302
|
+
* Copyright 2019 Google LLC
|
|
303
|
+
*
|
|
304
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
305
|
+
* you may not use this file except in compliance with the License.
|
|
306
|
+
* You may obtain a copy of the License at
|
|
307
|
+
*
|
|
308
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
309
|
+
*
|
|
310
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
311
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
312
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
313
|
+
* See the License for the specific language governing permissions and
|
|
314
|
+
* limitations under the License.
|
|
315
|
+
*/var bt;bt="",st(new _("platform-logger",(t=>new Q(t)),"PRIVATE")),st(new _("heartbeat",(t=>new yt(t)),"PRIVATE")),lt(J,X,bt),lt(J,X,"esm2017"),lt("fire-js","");var Et=function(t,e){return Et=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},Et(t,e)};function _t(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Tt(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,s,i=n.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(r=i.next()).done;)o.push(r.value)}catch(t){s={error:t}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return o}var St,At="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ct=Ct||{},kt=At||self;function Nt(){}function Dt(t){var e=typeof t;return"array"==(e="object"!=e?e:t?Array.isArray(t)?"array":e:"null")||"object"==e&&"number"==typeof t.length}function Rt(t){var e=typeof t;return"object"==e&&null!=t||"function"==e}var Ot="closure_uid_"+(1e9*Math.random()>>>0),Lt=0;function Pt(t,e,n){return t.call.apply(t.bind,arguments)}function Mt(t,e,n){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var n=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(n,r),t.apply(e,n)}}return function(){return t.apply(e,arguments)}}function xt(t,e,n){return(xt=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?Pt:Mt).apply(null,arguments)}function Ut(t,e){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function Ft(t,e){function n(){}n.prototype=e.prototype,t.X=e.prototype,t.prototype=new n,t.prototype.constructor=t,t.Wb=function(t,n,r){for(var s=Array(arguments.length-2),i=2;i<arguments.length;i++)s[i-2]=arguments[i];return e.prototype[n].apply(t,s)}}function Vt(){this.s=this.s,this.o=this.o}Vt.prototype.s=!1,Vt.prototype.na=function(){var t;!this.s&&(this.s=!0,this.M(),0)&&(t=this,Object.prototype.hasOwnProperty.call(t,Ot)&&t[Ot]||(t[Ot]=++Lt))},Vt.prototype.M=function(){if(this.o)for(;this.o.length;)this.o.shift()()};var qt=Array.prototype.indexOf?function(t,e){return Array.prototype.indexOf.call(t,e,void 0)}:function(t,e){if("string"==typeof t)return"string"!=typeof e||1!=e.length?-1:t.indexOf(e,0);for(var n=0;n<t.length;n++)if(n in t&&t[n]===e)return n;return-1};function jt(t){var e=t.length;if(0<e){for(var n=Array(e),r=0;r<e;r++)n[r]=t[r];return n}return[]}function Bt(t,e){for(var n=1;n<arguments.length;n++){var r=arguments[n];if(Dt(r)){var s=t.length||0,i=r.length||0;t.length=s+i;for(var o=0;o<i;o++)t[s+o]=r[o]}else t.push(r)}}function zt(t,e){this.type=t,this.g=this.target=e,this.defaultPrevented=!1}zt.prototype.h=function(){this.defaultPrevented=!0};var $t=function(){if(!kt.addEventListener||!Object.defineProperty)return!1;var t=!1,e=Object.defineProperty({},"passive",{get:function(){t=!0}});try{kt.addEventListener("test",Nt,e),kt.removeEventListener("test",Nt,e)}catch(t){}return t}();function Kt(t){return/^[\s\xa0]*$/.test(t)}var Ht=String.prototype.trim?function(t){return t.trim()}:function(t){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(t)[1]};function Gt(t,e){return t<e?-1:t>e?1:0}function Wt(){var t=kt.navigator;return t&&(t=t.userAgent)?t:""}function Qt(t){return-1!=Wt().indexOf(t)}function Jt(t){return Jt[" "](t),t}Jt[" "]=Nt;var Xt,Yt,Zt=Qt("Opera"),te=Qt("Trident")||Qt("MSIE"),ee=Qt("Edge"),ne=ee||te,re=Qt("Gecko")&&!(-1!=Wt().toLowerCase().indexOf("webkit")&&!Qt("Edge"))&&!(Qt("Trident")||Qt("MSIE"))&&!Qt("Edge"),se=-1!=Wt().toLowerCase().indexOf("webkit")&&!Qt("Edge");function ie(){var t=kt.document;return t?t.documentMode:void 0}t:{var oe="",ae=(Yt=Wt(),re?/rv:([^\);]+)(\)|;)/.exec(Yt):ee?/Edge\/([\d\.]+)/.exec(Yt):te?/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(Yt):se?/WebKit\/(\S+)/.exec(Yt):Zt?/(?:Version)[ \/]?(\S+)/.exec(Yt):void 0);if(ae&&(oe=ae?ae[1]:""),te){var ce=ie();if(null!=ce&&ce>parseFloat(oe)){Xt=String(ce);break t}}Xt=oe}var ue,he={};function le(){return function(t){var e=he;return Object.prototype.hasOwnProperty.call(e,9)?e[9]:e[9]=t(9)}((function(){for(var t=0,e=Ht(String(Xt)).split("."),n=Ht("9").split("."),r=Math.max(e.length,n.length),s=0;0==t&&s<r;s++){var i=e[s]||"",o=n[s]||"";do{if(i=/(\d*)(\D*)(.*)/.exec(i)||["","","",""],o=/(\d*)(\D*)(.*)/.exec(o)||["","","",""],0==i[0].length&&0==o[0].length)break;t=Gt(0==i[1].length?0:parseInt(i[1],10),0==o[1].length?0:parseInt(o[1],10))||Gt(0==i[2].length,0==o[2].length)||Gt(i[2],o[2]),i=i[3],o=o[3]}while(0==t)}return 0<=t}))}if(kt.document&&te){var de=ie();ue=de||(parseInt(Xt,10)||void 0)}else ue=void 0;var fe=ue;function pe(t,e){if(zt.call(this,t?t.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,t){var n=this.type=t.type,r=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:null;if(this.target=t.target||t.srcElement,this.g=e,e=t.relatedTarget){if(re){t:{try{Jt(e.nodeName);var s=!0;break t}catch(t){}s=!1}s||(e=null)}}else"mouseover"==n?e=t.fromElement:"mouseout"==n&&(e=t.toElement);this.relatedTarget=e,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.screenY||0):(this.clientX=void 0!==t.clientX?t.clientX:t.pageX,this.clientY=void 0!==t.clientY?t.clientY:t.pageY,this.screenX=t.screenX||0,this.screenY=t.screenY||0),this.button=t.button,this.key=t.key||"",this.ctrlKey=t.ctrlKey,this.altKey=t.altKey,this.shiftKey=t.shiftKey,this.metaKey=t.metaKey,this.pointerId=t.pointerId||0,this.pointerType="string"==typeof t.pointerType?t.pointerType:ge[t.pointerType]||"",this.state=t.state,this.i=t,t.defaultPrevented&&pe.X.h.call(this)}}Ft(pe,zt);var ge={2:"touch",3:"pen",4:"mouse"};pe.prototype.h=function(){pe.X.h.call(this);var t=this.i;t.preventDefault?t.preventDefault():t.returnValue=!1};var me="closure_listenable_"+(1e6*Math.random()|0),ye=0;function ve(t,e,n,r,s){this.listener=t,this.proxy=null,this.src=e,this.type=n,this.capture=!!r,this.ha=s,this.key=++ye,this.ba=this.ea=!1}function we(t){t.ba=!0,t.listener=null,t.proxy=null,t.src=null,t.ha=null}function Ie(t,e,n){for(var r in t)e.call(n,t[r],r,t)}function be(t){var e={};for(var n in t)e[n]=t[n];return e}var Ee="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function _e(t,e){for(var n,r,s=1;s<arguments.length;s++){for(n in r=arguments[s])t[n]=r[n];for(var i=0;i<Ee.length;i++)n=Ee[i],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}function Te(t){this.src=t,this.g={},this.h=0}function Se(t,e){var n=e.type;if(n in t.g){var r,s=t.g[n],i=qt(s,e);(r=0<=i)&&Array.prototype.splice.call(s,i,1),r&&(we(e),0==t.g[n].length&&(delete t.g[n],t.h--))}}function Ae(t,e,n,r){for(var s=0;s<t.length;++s){var i=t[s];if(!i.ba&&i.listener==e&&i.capture==!!n&&i.ha==r)return s}return-1}Te.prototype.add=function(t,e,n,r,s){var i=t.toString();(t=this.g[i])||(t=this.g[i]=[],this.h++);var o=Ae(t,e,r,s);return-1<o?(e=t[o],n||(e.ea=!1)):((e=new ve(e,this.src,i,!!r,s)).ea=n,t.push(e)),e};var Ce="closure_lm_"+(1e6*Math.random()|0),ke={};function Ne(t,e,n,r,s){if(r&&r.once)return Re(t,e,n,r,s);if(Array.isArray(e)){for(var i=0;i<e.length;i++)Ne(t,e[i],n,r,s);return null}return n=Fe(n),t&&t[me]?t.N(e,n,Rt(r)?!!r.capture:!!r,s):De(t,e,n,!1,r,s)}function De(t,e,n,r,s,i){if(!e)throw Error("Invalid event type");var o=Rt(s)?!!s.capture:!!s,a=xe(t);if(a||(t[Ce]=a=new Te(t)),(n=a.add(e,n,r,o,i)).proxy)return n;if(r=function(){function t(n){return e.call(t.src,t.listener,n)}var e=Me;return t}(),n.proxy=r,r.src=t,r.listener=n,t.addEventListener)$t||(s=o),void 0===s&&(s=!1),t.addEventListener(e.toString(),r,s);else if(t.attachEvent)t.attachEvent(Pe(e.toString()),r);else{if(!t.addListener||!t.removeListener)throw Error("addEventListener and attachEvent are unavailable.");t.addListener(r)}return n}function Re(t,e,n,r,s){if(Array.isArray(e)){for(var i=0;i<e.length;i++)Re(t,e[i],n,r,s);return null}return n=Fe(n),t&&t[me]?t.O(e,n,Rt(r)?!!r.capture:!!r,s):De(t,e,n,!0,r,s)}function Oe(t,e,n,r,s){if(Array.isArray(e))for(var i=0;i<e.length;i++)Oe(t,e[i],n,r,s);else r=Rt(r)?!!r.capture:!!r,n=Fe(n),t&&t[me]?(t=t.i,(e=String(e).toString())in t.g&&(-1<(n=Ae(i=t.g[e],n,r,s))&&(we(i[n]),Array.prototype.splice.call(i,n,1),0==i.length&&(delete t.g[e],t.h--)))):t&&(t=xe(t))&&(e=t.g[e.toString()],t=-1,e&&(t=Ae(e,n,r,s)),(n=-1<t?e[t]:null)&&Le(n))}function Le(t){if("number"!=typeof t&&t&&!t.ba){var e=t.src;if(e&&e[me])Se(e.i,t);else{var n=t.type,r=t.proxy;e.removeEventListener?e.removeEventListener(n,r,t.capture):e.detachEvent?e.detachEvent(Pe(n),r):e.addListener&&e.removeListener&&e.removeListener(r),(n=xe(e))?(Se(n,t),0==n.h&&(n.src=null,e[Ce]=null)):we(t)}}}function Pe(t){return t in ke?ke[t]:ke[t]="on"+t}function Me(t,e){if(t.ba)t=!0;else{e=new pe(e,this);var n=t.listener,r=t.ha||t.src;t.ea&&Le(t),t=n.call(r,e)}return t}function xe(t){return(t=t[Ce])instanceof Te?t:null}var Ue="__closure_events_fn_"+(1e9*Math.random()>>>0);function Fe(t){return"function"==typeof t?t:(t[Ue]||(t[Ue]=function(e){return t.handleEvent(e)}),t[Ue])}function Ve(){Vt.call(this),this.i=new Te(this),this.P=this,this.I=null}function qe(t,e){var n,r=t.I;if(r)for(n=[];r;r=r.I)n.push(r);if(t=t.P,r=e.type||e,"string"==typeof e)e=new zt(e,t);else if(e instanceof zt)e.target=e.target||t;else{var s=e;_e(e=new zt(r,t),s)}if(s=!0,n)for(var i=n.length-1;0<=i;i--){var o=e.g=n[i];s=je(o,r,!0,e)&&s}if(s=je(o=e.g=t,r,!0,e)&&s,s=je(o,r,!1,e)&&s,n)for(i=0;i<n.length;i++)s=je(o=e.g=n[i],r,!1,e)&&s}function je(t,e,n,r){if(!(e=t.i.g[String(e)]))return!0;e=e.concat();for(var s=!0,i=0;i<e.length;++i){var o=e[i];if(o&&!o.ba&&o.capture==n){var a=o.listener,c=o.ha||o.src;o.ea&&Se(t.i,o),s=!1!==a.call(c,r)&&s}}return s&&!r.defaultPrevented}Ft(Ve,Vt),Ve.prototype[me]=!0,Ve.prototype.removeEventListener=function(t,e,n,r){Oe(this,t,e,n,r)},Ve.prototype.M=function(){if(Ve.X.M.call(this),this.i){var t,e=this.i;for(t in e.g){for(var n=e.g[t],r=0;r<n.length;r++)we(n[r]);delete e.g[t],e.h--}}this.I=null},Ve.prototype.N=function(t,e,n,r){return this.i.add(String(t),e,!1,n,r)},Ve.prototype.O=function(t,e,n,r){return this.i.add(String(t),e,!0,n,r)};var Be=kt.JSON.stringify;function ze(){var t=Xe,e=null;return t.g&&(e=t.g,t.g=t.g.next,t.g||(t.h=null),e.next=null),e}var $e,Ke=function(){function t(){this.h=this.g=null}return t.prototype.add=function(t,e){var n=He.get();n.set(t,e),this.h?this.h.next=n:this.g=n,this.h=n},t}(),He=new(function(){function t(t,e){this.i=t,this.j=e,this.h=0,this.g=null}return t.prototype.get=function(){var t;return 0<this.h?(this.h--,t=this.g,this.g=t.next,t.next=null):t=this.i(),t},t}())((function(){return new Ge}),(function(t){return t.reset()})),Ge=function(){function t(){this.next=this.g=this.h=null}return t.prototype.set=function(t,e){this.h=t,this.g=e,this.next=null},t.prototype.reset=function(){this.next=this.g=this.h=null},t}();function We(t){kt.setTimeout((function(){throw t}),0)}function Qe(t,e){$e||function(){var t=kt.Promise.resolve(void 0);$e=function(){t.then(Ye)}}(),Je||($e(),Je=!0),Xe.add(t,e)}var Je=!1,Xe=new Ke;function Ye(){for(var t;t=ze();){try{t.h.call(t.g)}catch(t){We(t)}var e=He;e.j(t),100>e.h&&(e.h++,t.next=e.g,e.g=t)}Je=!1}function Ze(t,e){Ve.call(this),this.h=t||1,this.g=e||kt,this.j=xt(this.lb,this),this.l=Date.now()}function tn(t){t.ca=!1,t.R&&(t.g.clearTimeout(t.R),t.R=null)}function en(t,e,n){if("function"==typeof t)n&&(t=xt(t,n));else{if(!t||"function"!=typeof t.handleEvent)throw Error("Invalid listener argument");t=xt(t.handleEvent,t)}return 2147483647<Number(e)?-1:kt.setTimeout(t,e||0)}function nn(t){t.g=en((function(){t.g=null,t.i&&(t.i=!1,nn(t))}),t.j);var e=t.h;t.h=null,t.m.apply(null,e)}Ft(Ze,Ve),(St=Ze.prototype).ca=!1,St.R=null,St.lb=function(){if(this.ca){var t=Date.now()-this.l;0<t&&t<.8*this.h?this.R=this.g.setTimeout(this.j,this.h-t):(this.R&&(this.g.clearTimeout(this.R),this.R=null),qe(this,"tick"),this.ca&&(tn(this),this.start()))}},St.start=function(){this.ca=!0,this.R||(this.R=this.g.setTimeout(this.j,this.h),this.l=Date.now())},St.M=function(){Ze.X.M.call(this),tn(this),delete this.g};var rn=function(t){function e(e,n){var r=t.call(this)||this;return r.m=e,r.j=n,r.h=null,r.i=!1,r.g=null,r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}Et(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}(e,t),e.prototype.l=function(t){this.h=arguments,this.g?this.i=!0:nn(this)},e.prototype.M=function(){t.prototype.M.call(this),this.g&&(kt.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)},e}(Vt);function sn(t){Vt.call(this),this.h=t,this.g={}}Ft(sn,Vt);var on=[];function an(t,e,n,r){Array.isArray(n)||(n&&(on[0]=n.toString()),n=on);for(var s=0;s<n.length;s++){var i=Ne(e,n[s],r||t.handleEvent,!1,t.h||t);if(!i)break;t.g[i.key]=i}}function cn(t){Ie(t.g,(function(t,e){this.g.hasOwnProperty(e)&&Le(t)}),t),t.g={}}function un(){this.g=!0}function hn(t,e,n,r){t.info((function(){return"XMLHTTP TEXT ("+e+"): "+function(t,e){if(!t.g)return e;if(!e)return null;try{var n=JSON.parse(e);if(n)for(t=0;t<n.length;t++)if(Array.isArray(n[t])){var r=n[t];if(!(2>r.length)){var s=r[1];if(Array.isArray(s)&&!(1>s.length)){var i=s[0];if("noop"!=i&&"stop"!=i&&"close"!=i)for(var o=1;o<s.length;o++)s[o]=""}}}return Be(n)}catch(t){return e}}(t,n)+(r?" "+r:"")}))}sn.prototype.M=function(){sn.X.M.call(this),cn(this)},sn.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")},un.prototype.Aa=function(){this.g=!1},un.prototype.info=function(){};var ln={},dn=null;function fn(){return dn=dn||new Ve}function pn(t){zt.call(this,ln.Pa,t)}function gn(t){var e=fn();qe(e,new pn(e))}function mn(t,e){zt.call(this,ln.STAT_EVENT,t),this.stat=e}function yn(t){var e=fn();qe(e,new mn(e,t))}function vn(t,e){zt.call(this,ln.Qa,t),this.size=e}function wn(t,e){if("function"!=typeof t)throw Error("Fn must not be null and must be a function");return kt.setTimeout((function(){t()}),e)}ln.Pa="serverreachability",Ft(pn,zt),ln.STAT_EVENT="statevent",Ft(mn,zt),ln.Qa="timingevent",Ft(vn,zt);var In={NO_ERROR:0,mb:1,zb:2,yb:3,tb:4,xb:5,Ab:6,Ma:7,TIMEOUT:8,Db:9},bn={rb:"complete",Nb:"success",Na:"error",Ma:"abort",Fb:"ready",Gb:"readystatechange",TIMEOUT:"timeout",Bb:"incrementaldata",Eb:"progress",ub:"downloadprogress",Vb:"uploadprogress"};function En(){}function _n(t){return t.h||(t.h=t.i())}function Tn(){}En.prototype.h=null;var Sn,An={OPEN:"a",qb:"b",Na:"c",Cb:"d"};function Cn(){zt.call(this,"d")}function kn(){zt.call(this,"c")}function Nn(){}function Dn(t,e,n,r){this.l=t,this.j=e,this.m=n,this.U=r||1,this.S=new sn(this),this.O=On,t=ne?125:void 0,this.T=new Ze(t),this.H=null,this.i=!1,this.s=this.A=this.v=this.K=this.F=this.V=this.B=null,this.D=[],this.g=null,this.C=0,this.o=this.u=null,this.Y=-1,this.I=!1,this.N=0,this.L=null,this.$=this.J=this.Z=this.P=!1,this.h=new Rn}function Rn(){this.i=null,this.g="",this.h=!1}Ft(Cn,zt),Ft(kn,zt),Ft(Nn,En),Nn.prototype.g=function(){return new XMLHttpRequest},Nn.prototype.i=function(){return{}},Sn=new Nn;var On=45e3,Ln={},Pn={};function Mn(t,e,n){t.K=1,t.v=tr(Qn(e)),t.s=n,t.P=!0,xn(t,null)}function xn(t,e){t.F=Date.now(),qn(t),t.A=Qn(t.v);var n=t.A,r=t.U;Array.isArray(r)||(r=[String(r)]),fr(n.i,"t",r),t.C=0,n=t.l.H,t.h=new Rn,t.g=fs(t.l,n?e:null,!t.s),0<t.N&&(t.L=new rn(xt(t.La,t,t.g),t.N)),an(t.S,t.g,"readystatechange",t.ib),e=t.H?be(t.H):{},t.s?(t.u||(t.u="POST"),e["Content-Type"]="application/x-www-form-urlencoded",t.g.da(t.A,t.u,t.s,e)):(t.u="GET",t.g.da(t.A,t.u,null,e)),gn(),function(t,e,n,r,s,i){t.info((function(){if(t.g)if(i)for(var o="",a=i.split("&"),c=0;c<a.length;c++){var u=a[c].split("=");if(1<u.length){var h=u[0];u=u[1];var l=h.split("_");o=2<=l.length&&"type"==l[1]?o+(h+"=")+u+"&":o+(h+"=redacted&")}}else o=null;else o=i;return"XMLHTTP REQ ("+r+") [attempt "+s+"]: "+e+"\n"+n+"\n"+o}))}(t.j,t.u,t.A,t.m,t.U,t.s)}function Un(t){return!!t.g&&("GET"==t.u&&2!=t.K&&t.l.Da)}function Fn(t,e,n){for(var r,s=!0;!t.I&&t.C<n.length;){if((r=Vn(t,n))==Pn){4==e&&(t.o=4,yn(14),s=!1),hn(t.j,t.m,null,"[Incomplete Response]");break}if(r==Ln){t.o=4,yn(15),hn(t.j,t.m,n,"[Invalid Chunk]"),s=!1;break}hn(t.j,t.m,r,null),Kn(t,r)}Un(t)&&r!=Pn&&r!=Ln&&(t.h.g="",t.C=0),4!=e||0!=n.length||t.h.h||(t.o=1,yn(16),s=!1),t.i=t.i&&s,s?0<n.length&&!t.$&&(t.$=!0,(e=t.l).g==t&&e.$&&!e.K&&(e.j.info("Great, no buffering proxy detected. Bytes received: "+n.length),is(e),e.K=!0,yn(11))):(hn(t.j,t.m,n,"[Invalid Chunked Response]"),$n(t),zn(t))}function Vn(t,e){var n=t.C,r=e.indexOf("\n",n);return-1==r?Pn:(n=Number(e.substring(n,r)),isNaN(n)?Ln:(r+=1)+n>e.length?Pn:(e=e.substr(r,n),t.C=r+n,e))}function qn(t){t.V=Date.now()+t.O,jn(t,t.O)}function jn(t,e){if(null!=t.B)throw Error("WatchDog timer not null");t.B=wn(xt(t.gb,t),e)}function Bn(t){t.B&&(kt.clearTimeout(t.B),t.B=null)}function zn(t){0==t.l.G||t.I||cs(t.l,t)}function $n(t){Bn(t);var e=t.L;e&&"function"==typeof e.na&&e.na(),t.L=null,tn(t.T),cn(t.S),t.g&&(e=t.g,t.g=null,e.abort(),e.na())}function Kn(t,e){try{var n=t.l;if(0!=n.G&&(n.g==t||Ir(n.h,t)))if(!t.J&&Ir(n.h,t)&&3==n.G){try{var r=n.Fa.g.parse(e)}catch(i){r=null}if(Array.isArray(r)&&3==r.length){var s=r;if(0==s[0]){t:if(!n.u){if(n.g){if(!(n.g.F+3e3<t.F))break t;as(n),Xr(n)}ss(n),yn(18)}}else n.Ba=s[1],0<n.Ba-n.T&&37500>s[2]&&n.L&&0==n.A&&!n.v&&(n.v=wn(xt(n.cb,n),6e3));if(1>=wr(n.h)&&n.ja){try{n.ja()}catch(i){}n.ja=void 0}}else hs(n,11)}else if((t.J||n.g==t)&&as(n),!Kt(e))for(s=n.Fa.g.parse(e),e=0;e<s.length;e++){var i=s[e];if(n.T=i[0],i=i[1],2==n.G)if("c"==i[0]){n.I=i[1],n.ka=i[2];var o=i[3];null!=o&&(n.ma=o,n.j.info("VER="+n.ma));var a=i[4];null!=a&&(n.Ca=a,n.j.info("SVER="+n.Ca));var c=i[5];null!=c&&"number"==typeof c&&0<c&&(r=1.5*c,n.J=r,n.j.info("backChannelRequestTimeoutMs_="+r)),r=n;var u=t.g;if(u){var h=u.g?u.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(h){var l=r.h;l.g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(l.j=l.l,l.g=new Set,l.h&&(br(l,l.h),l.h=null))}if(r.D){var d=u.g?u.g.getResponseHeader("X-HTTP-Session-Id"):null;d&&(r.za=d,Zn(r.F,r.D,d))}}n.G=3,n.l&&n.l.xa(),n.$&&(n.P=Date.now()-t.F,n.j.info("Handshake RTT: "+n.P+"ms"));var f=t;if((r=n).sa=ds(r,r.H?r.ka:null,r.V),f.J){Er(r.h,f);var p=f,g=r.J;g&&p.setTimeout(g),p.B&&(Bn(p),qn(p)),r.g=f}else rs(r);0<n.i.length&&Zr(n)}else"stop"!=i[0]&&"close"!=i[0]||hs(n,7);else 3==n.G&&("stop"==i[0]||"close"==i[0]?"stop"==i[0]?hs(n,7):Jr(n):"noop"!=i[0]&&n.l&&n.l.wa(i),n.A=0)}gn()}catch(i){}}function Hn(t,e){if(t.forEach&&"function"==typeof t.forEach)t.forEach(e,void 0);else if(Dt(t)||"string"==typeof t)Array.prototype.forEach.call(t,e,void 0);else for(var n=function(t){if(t.oa&&"function"==typeof t.oa)return t.oa();if(!t.W||"function"!=typeof t.W){if("undefined"!=typeof Map&&t instanceof Map)return Array.from(t.keys());if(!("undefined"!=typeof Set&&t instanceof Set)){if(Dt(t)||"string"==typeof t){var e=[];t=t.length;for(var n=0;n<t;n++)e.push(n);return e}for(var r in e=[],n=0,t)e[n++]=r;return e}}}(t),r=function(t){if(t.W&&"function"==typeof t.W)return t.W();if("undefined"!=typeof Map&&t instanceof Map||"undefined"!=typeof Set&&t instanceof Set)return Array.from(t.values());if("string"==typeof t)return t.split("");if(Dt(t)){for(var e=[],n=t.length,r=0;r<n;r++)e.push(t[r]);return e}for(r in e=[],n=0,t)e[n++]=t[r];return e}(t),s=r.length,i=0;i<s;i++)e.call(void 0,r[i],n&&n[i],t)}(St=Dn.prototype).setTimeout=function(t){this.O=t},St.ib=function(t){t=t.target;var e=this.L;e&&3==$r(t)?e.l():this.La(t)},St.La=function(t){try{if(t==this.g)t:{var e=$r(this.g),n=this.g.Ea();this.g.aa();if(!(3>e)&&(3!=e||ne||this.g&&(this.h.h||this.g.fa()||Kr(this.g)))){this.I||4!=e||7==n||gn(),Bn(this);var r=this.g.aa();this.Y=r;e:if(Un(this)){var s=Kr(this.g);t="";var i=s.length,o=4==$r(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){$n(this),zn(this);var a="";break e}this.h.i=new kt.TextDecoder}for(n=0;n<i;n++)this.h.h=!0,t+=this.h.i.decode(s[n],{stream:o&&n==i-1});s.splice(0,i),this.h.g+=t,this.C=0,a=this.h.g}else a=this.g.fa();if(this.i=200==r,function(t,e,n,r,s,i,o){t.info((function(){return"XMLHTTP RESP ("+r+") [ attempt "+s+"]: "+e+"\n"+n+"\n"+i+" "+o}))}(this.j,this.u,this.A,this.m,this.U,e,r),this.i){if(this.Z&&!this.J){e:{if(this.g){var c,u=this.g;if((c=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!Kt(c)){var h=c;break e}}h=null}if(!(r=h)){this.i=!1,this.o=3,yn(12),$n(this),zn(this);break t}hn(this.j,this.m,r,"Initial handshake response via X-HTTP-Initial-Response"),this.J=!0,Kn(this,r)}this.P?(Fn(this,e,a),ne&&this.i&&3==e&&(an(this.S,this.T,"tick",this.hb),this.T.start())):(hn(this.j,this.m,a,null),Kn(this,a)),4==e&&$n(this),this.i&&!this.I&&(4==e?cs(this.l,this):(this.i=!1,qn(this)))}else 400==r&&0<a.indexOf("Unknown SID")?(this.o=3,yn(12)):(this.o=0,yn(13)),$n(this),zn(this)}}}catch(e){}},St.hb=function(){if(this.g){var t=$r(this.g),e=this.g.fa();this.C<e.length&&(Bn(this),Fn(this,t,e),this.i&&4!=t&&qn(this))}},St.cancel=function(){this.I=!0,$n(this)},St.gb=function(){this.B=null;var t=Date.now();0<=t-this.V?(function(t,e){t.info((function(){return"TIMEOUT: "+e}))}(this.j,this.A),2!=this.K&&(gn(),yn(17)),$n(this),this.o=2,zn(this)):jn(this,this.V-t)};var Gn=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function Wn(t,e){if(this.g=this.s=this.j="",this.m=null,this.o=this.l="",this.h=!1,t instanceof Wn){this.h=void 0!==e?e:t.h,Jn(this,t.j),this.s=t.s,this.g=t.g,Xn(this,t.m),this.l=t.l,e=t.i;var n=new ur;n.i=e.i,e.g&&(n.g=new Map(e.g),n.h=e.h),Yn(this,n),this.o=t.o}else t&&(n=String(t).match(Gn))?(this.h=!!e,Jn(this,n[1]||"",!0),this.s=er(n[2]||""),this.g=er(n[3]||"",!0),Xn(this,n[4]),this.l=er(n[5]||"",!0),Yn(this,n[6]||"",!0),this.o=er(n[7]||"")):(this.h=!!e,this.i=new ur(null,this.h))}function Qn(t){return new Wn(t)}function Jn(t,e,n){t.j=n?er(e,!0):e,t.j&&(t.j=t.j.replace(/:$/,""))}function Xn(t,e){if(e){if(e=Number(e),isNaN(e)||0>e)throw Error("Bad port number "+e);t.m=e}else t.m=null}function Yn(t,e,n){e instanceof ur?(t.i=e,function(t,e){e&&!t.j&&(hr(t),t.i=null,t.g.forEach((function(t,e){var n=e.toLowerCase();e!=n&&(lr(this,e),fr(this,n,t))}),t)),t.j=e}(t.i,t.h)):(n||(e=nr(e,ar)),t.i=new ur(e,t.h))}function Zn(t,e,n){t.i.set(e,n)}function tr(t){return Zn(t,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),t}function er(t,e){return t?e?decodeURI(t.replace(/%25/g,"%2525")):decodeURIComponent(t):""}function nr(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,rr),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function rr(t){return"%"+((t=t.charCodeAt(0))>>4&15).toString(16)+(15&t).toString(16)}Wn.prototype.toString=function(){var t=[],e=this.j;e&&t.push(nr(e,sr,!0),":");var n=this.g;return(n||"file"==e)&&(t.push("//"),(e=this.s)&&t.push(nr(e,sr,!0),"@"),t.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&t.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&t.push("/"),t.push(nr(n,"/"==n.charAt(0)?or:ir,!0))),(n=this.i.toString())&&t.push("?",n),(n=this.o)&&t.push("#",nr(n,cr)),t.join("")};var sr=/[#\/\?@]/g,ir=/[#\?:]/g,or=/[#\?]/g,ar=/[#\?@]/g,cr=/#/g;function ur(t,e){this.h=this.g=null,this.i=t||null,this.j=!!e}function hr(t){t.g||(t.g=new Map,t.h=0,t.i&&function(t,e){if(t){t=t.split("&");for(var n=0;n<t.length;n++){var r=t[n].indexOf("="),s=null;if(0<=r){var i=t[n].substring(0,r);s=t[n].substring(r+1)}else i=t[n];e(i,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(t.i,(function(e,n){t.add(decodeURIComponent(e.replace(/\+/g," ")),n)})))}function lr(t,e){hr(t),e=pr(t,e),t.g.has(e)&&(t.i=null,t.h-=t.g.get(e).length,t.g.delete(e))}function dr(t,e){return hr(t),e=pr(t,e),t.g.has(e)}function fr(t,e,n){lr(t,e),0<n.length&&(t.i=null,t.g.set(pr(t,e),jt(n)),t.h+=n.length)}function pr(t,e){return e=String(e),t.j&&(e=e.toLowerCase()),e}(St=ur.prototype).add=function(t,e){hr(this),this.i=null,t=pr(this,t);var n=this.g.get(t);return n||this.g.set(t,n=[]),n.push(e),this.h+=1,this},St.forEach=function(t,e){hr(this),this.g.forEach((function(n,r){n.forEach((function(n){t.call(e,n,r,this)}),this)}),this)},St.oa=function(){hr(this);for(var t=Array.from(this.g.values()),e=Array.from(this.g.keys()),n=[],r=0;r<e.length;r++)for(var s=t[r],i=0;i<s.length;i++)n.push(e[r]);return n},St.W=function(t){hr(this);var e=[];if("string"==typeof t)dr(this,t)&&(e=e.concat(this.g.get(pr(this,t))));else{t=Array.from(this.g.values());for(var n=0;n<t.length;n++)e=e.concat(t[n])}return e},St.set=function(t,e){return hr(this),this.i=null,dr(this,t=pr(this,t))&&(this.h-=this.g.get(t).length),this.g.set(t,[e]),this.h+=1,this},St.get=function(t,e){return t&&0<(t=this.W(t)).length?String(t[0]):e},St.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var t=[],e=Array.from(this.g.keys()),n=0;n<e.length;n++){var r=e[n],s=encodeURIComponent(String(r)),i=this.W(r);for(r=0;r<i.length;r++){var o=s;""!==i[r]&&(o+="="+encodeURIComponent(String(i[r]))),t.push(o)}}return this.i=t.join("&")};var gr=function(t,e){this.h=t,this.g=e};function mr(t){this.l=t||yr,kt.PerformanceNavigationTiming?t=0<(t=kt.performance.getEntriesByType("navigation")).length&&("hq"==t[0].nextHopProtocol||"h2"==t[0].nextHopProtocol):t=!!(kt.g&&kt.g.Ga&&kt.g.Ga()&&kt.g.Ga().$b),this.j=t?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}var yr=10;function vr(t){return!!t.h||!!t.g&&t.g.size>=t.j}function wr(t){return t.h?1:t.g?t.g.size:0}function Ir(t,e){return t.h?t.h==e:!!t.g&&t.g.has(e)}function br(t,e){t.g?t.g.add(e):t.h=e}function Er(t,e){t.h&&t.h==e?t.h=null:t.g&&t.g.has(e)&&t.g.delete(e)}function _r(t){var e,n;if(null!=t.h)return t.i.concat(t.h.D);if(null!=t.g&&0!==t.g.size){var r=t.i;try{for(var s=_t(t.g.values()),i=s.next();!i.done;i=s.next()){var o=i.value;r=r.concat(o.D)}}catch(t){e={error:t}}finally{try{i&&!i.done&&(n=s.return)&&n.call(s)}finally{if(e)throw e.error}}return r}return jt(t.i)}function Tr(){}function Sr(){this.g=new Tr}function Ar(t,e,n){var r=n||"";try{Hn(t,(function(t,n){var s=t;Rt(t)&&(s=Be(t)),e.push(r+n+"="+encodeURIComponent(s))}))}catch(t){throw e.push(r+"type="+encodeURIComponent("_badmap")),t}}function Cr(t,e,n,r,s){try{e.onload=null,e.onerror=null,e.onabort=null,e.ontimeout=null,s(r)}catch(t){}}function kr(t){this.l=t.ac||null,this.j=t.jb||!1}function Nr(t,e){Ve.call(this),this.D=t,this.u=e,this.m=void 0,this.readyState=Dr,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.v=new Headers,this.h=null,this.C="GET",this.B="",this.g=!1,this.A=this.j=this.l=null}mr.prototype.cancel=function(){var t,e;if(this.i=_r(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){try{for(var n=_t(this.g.values()),r=n.next();!r.done;r=n.next()){r.value.cancel()}}catch(e){t={error:e}}finally{try{r&&!r.done&&(e=n.return)&&e.call(n)}finally{if(t)throw t.error}}this.g.clear()}},Tr.prototype.stringify=function(t){return kt.JSON.stringify(t,void 0)},Tr.prototype.parse=function(t){return kt.JSON.parse(t,void 0)},Ft(kr,En),kr.prototype.g=function(){return new Nr(this.l,this.j)},kr.prototype.i=function(t){return function(){return t}}({}),Ft(Nr,Ve);var Dr=0;function Rr(t){t.j.read().then(t.Ta.bind(t)).catch(t.ga.bind(t))}function Or(t){t.readyState=4,t.l=null,t.j=null,t.A=null,Lr(t)}function Lr(t){t.onreadystatechange&&t.onreadystatechange.call(t)}(St=Nr.prototype).open=function(t,e){if(this.readyState!=Dr)throw this.abort(),Error("Error reopening a connection");this.C=t,this.B=e,this.readyState=1,Lr(this)},St.send=function(t){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var e={headers:this.v,method:this.C,credentials:this.m,cache:void 0};t&&(e.body=t),(this.D||kt).fetch(new Request(this.B,e)).then(this.Wa.bind(this),this.ga.bind(this))},St.abort=function(){this.response=this.responseText="",this.v=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch((function(){})),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Or(this)),this.readyState=Dr},St.Wa=function(t){if(this.g&&(this.l=t,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=t.headers,this.readyState=2,Lr(this)),this.g&&(this.readyState=3,Lr(this),this.g)))if("arraybuffer"===this.responseType)t.arrayBuffer().then(this.Ua.bind(this),this.ga.bind(this));else if(void 0!==kt.ReadableStream&&"body"in t){if(this.j=t.body.getReader(),this.u){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.A=new TextDecoder;Rr(this)}else t.text().then(this.Va.bind(this),this.ga.bind(this))},St.Ta=function(t){if(this.g){if(this.u&&t.value)this.response.push(t.value);else if(!this.u){var e=t.value?t.value:new Uint8Array(0);(e=this.A.decode(e,{stream:!t.done}))&&(this.response=this.responseText+=e)}t.done?Or(this):Lr(this),3==this.readyState&&Rr(this)}},St.Va=function(t){this.g&&(this.response=this.responseText=t,Or(this))},St.Ua=function(t){this.g&&(this.response=t,Or(this))},St.ga=function(){this.g&&Or(this)},St.setRequestHeader=function(t,e){this.v.append(t,e)},St.getResponseHeader=function(t){return this.h&&this.h.get(t.toLowerCase())||""},St.getAllResponseHeaders=function(){if(!this.h)return"";for(var t=[],e=this.h.entries(),n=e.next();!n.done;)n=n.value,t.push(n[0]+": "+n[1]),n=e.next();return t.join("\r\n")},Object.defineProperty(Nr.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(t){this.m=t?"include":"same-origin"}});var Pr=kt.JSON.parse;function Mr(t){Ve.call(this),this.headers=new Map,this.u=t||null,this.h=!1,this.C=this.g=null,this.H="",this.m=0,this.j="",this.l=this.F=this.v=this.D=!1,this.B=0,this.A=null,this.J=xr,this.K=this.L=!1}Ft(Mr,Ve);var xr="",Ur=/^https?$/i,Fr=["POST","PUT"];function Vr(t,e){t.h=!1,t.g&&(t.l=!0,t.g.abort(),t.l=!1),t.j=e,t.m=5,qr(t),Br(t)}function qr(t){t.D||(t.D=!0,qe(t,"complete"),qe(t,"error"))}function jr(t){if(t.h&&void 0!==Ct&&(!t.C[1]||4!=$r(t)||2!=t.aa()))if(t.v&&4==$r(t))en(t.Ha,0,t);else if(qe(t,"readystatechange"),4==$r(t)){t.h=!1;try{var e,n=t.aa();t:switch(n){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var r=!0;break t;default:r=!1}if(!(e=r)){var s;if(s=0===n){var i=String(t.H).match(Gn)[1]||null;if(!i&&kt.self&&kt.self.location){var o=kt.self.location.protocol;i=o.substr(0,o.length-1)}s=!Ur.test(i?i.toLowerCase():"")}e=s}if(e)qe(t,"complete"),qe(t,"success");else{t.m=6;try{var a=2<$r(t)?t.g.statusText:""}catch(t){a=""}t.j=a+" ["+t.aa()+"]",qr(t)}}finally{Br(t)}}}function Br(t,e){if(t.g){zr(t);var n=t.g,r=t.C[0]?Nt:null;t.g=null,t.C=null,e||qe(t,"ready");try{n.onreadystatechange=r}catch(t){}}}function zr(t){t.g&&t.K&&(t.g.ontimeout=null),t.A&&(kt.clearTimeout(t.A),t.A=null)}function $r(t){return t.g?t.g.readyState:0}function Kr(t){try{if(!t.g)return null;if("response"in t.g)return t.g.response;switch(t.J){case xr:case"text":return t.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in t.g)return t.g.mozResponseArrayBuffer}return null}catch(t){return null}}function Hr(t){var e="";return Ie(t,(function(t,n){e+=n,e+=":",e+=t,e+="\r\n"})),e}function Gr(t,e,n){t:{for(r in n){var r=!1;break t}r=!0}r||(n=Hr(n),"string"==typeof t?null!=n&&encodeURIComponent(String(n)):Zn(t,e,n))}function Wr(t,e,n){return n&&n.internalChannelParams&&n.internalChannelParams[t]||e}function Qr(t){this.Ca=0,this.i=[],this.j=new un,this.ka=this.sa=this.F=this.V=this.g=this.za=this.D=this.ia=this.o=this.S=this.s=null,this.ab=this.U=0,this.Za=Wr("failFast",!1,t),this.L=this.v=this.u=this.m=this.l=null,this.Y=!0,this.pa=this.Ba=this.T=-1,this.Z=this.A=this.C=0,this.Xa=Wr("baseRetryDelayMs",5e3,t),this.bb=Wr("retryDelaySeedMs",1e4,t),this.$a=Wr("forwardChannelMaxRetries",2,t),this.ta=Wr("forwardChannelRequestTimeoutMs",2e4,t),this.ra=t&&t.xmlHttpFactory||void 0,this.Da=t&&t.Zb||!1,this.J=void 0,this.H=t&&t.supportsCrossDomainXhr||!1,this.I="",this.h=new mr(t&&t.concurrentRequestLimit),this.Fa=new Sr,this.O=t&&t.fastHandshake||!1,this.N=t&&t.encodeInitMessageHeaders||!1,this.O&&this.N&&(this.N=!1),this.Ya=t&&t.Xb||!1,t&&t.Aa&&this.j.Aa(),t&&t.forceLongPolling&&(this.Y=!1),this.$=!this.O&&this.Y&&t&&t.detectBufferingProxy||!1,this.ja=void 0,this.P=0,this.K=!1,this.la=this.B=null}function Jr(t){if(Yr(t),3==t.G){var e=t.U++,n=Qn(t.F);Zn(n,"SID",t.I),Zn(n,"RID",e),Zn(n,"TYPE","terminate"),es(t,n),(e=new Dn(t,t.j,e,void 0)).K=2,e.v=tr(Qn(n)),n=!1,kt.navigator&&kt.navigator.sendBeacon&&(n=kt.navigator.sendBeacon(e.v.toString(),"")),!n&&kt.Image&&((new Image).src=e.v,n=!0),n||(e.g=fs(e.l,null),e.g.da(e.v)),e.F=Date.now(),qn(e)}ls(t)}function Xr(t){t.g&&(is(t),t.g.cancel(),t.g=null)}function Yr(t){Xr(t),t.u&&(kt.clearTimeout(t.u),t.u=null),as(t),t.h.cancel(),t.m&&("number"==typeof t.m&&kt.clearTimeout(t.m),t.m=null)}function Zr(t){vr(t.h)||t.m||(t.m=!0,Qe(t.Ja,t),t.C=0)}function ts(t,e){var n;n=e?e.m:t.U++;var r=Qn(t.F);Zn(r,"SID",t.I),Zn(r,"RID",n),Zn(r,"AID",t.T),es(t,r),t.o&&t.s&&Gr(r,t.o,t.s),n=new Dn(t,t.j,n,t.C+1),null===t.o&&(n.H=t.s),e&&(t.i=e.D.concat(t.i)),e=ns(t,n,1e3),n.setTimeout(Math.round(.5*t.ta)+Math.round(.5*t.ta*Math.random())),br(t.h,n),Mn(n,r,e)}function es(t,e){t.ia&&Ie(t.ia,(function(t,n){Zn(e,n,t)})),t.l&&Hn({},(function(t,n){Zn(e,n,t)}))}function ns(t,e,n){n=Math.min(t.i.length,n);var r=t.l?xt(t.l.Ra,t.l,t):null;t:for(var s=t.i,i=-1;;){var o=["count="+n];-1==i?0<n?(i=s[0].h,o.push("ofs="+i)):i=0:o.push("ofs="+i);for(var a=!0,c=0;c<n;c++){var u=s[c].h,h=s[c].g;if(0>(u-=i))i=Math.max(0,s[c].h-100),a=!1;else try{Ar(h,o,"req"+u+"_")}catch(t){r&&r(h)}}if(a){r=o.join("&");break t}}return t=t.i.splice(0,n),e.D=t,r}function rs(t){t.g||t.u||(t.Z=1,Qe(t.Ia,t),t.A=0)}function ss(t){return!(t.g||t.u||3<=t.A)&&(t.Z++,t.u=wn(xt(t.Ia,t),us(t,t.A)),t.A++,!0)}function is(t){null!=t.B&&(kt.clearTimeout(t.B),t.B=null)}function os(t){t.g=new Dn(t,t.j,"rpc",t.Z),null===t.o&&(t.g.H=t.s),t.g.N=0;var e=Qn(t.sa);Zn(e,"RID","rpc"),Zn(e,"SID",t.I),Zn(e,"CI",t.L?"0":"1"),Zn(e,"AID",t.T),Zn(e,"TYPE","xmlhttp"),es(t,e),t.o&&t.s&&Gr(e,t.o,t.s),t.J&&t.g.setTimeout(t.J);var n=t.g;t=t.ka,n.K=1,n.v=tr(Qn(e)),n.s=null,n.P=!0,xn(n,t)}function as(t){null!=t.v&&(kt.clearTimeout(t.v),t.v=null)}function cs(t,e){var n=null;if(t.g==e){as(t),is(t),t.g=null;var r=2}else{if(!Ir(t.h,e))return;n=e.D,Er(t.h,e),r=1}if(0!=t.G)if(t.pa=e.Y,e.i)if(1==r){n=e.s?e.s.length:0,e=Date.now()-e.F;var s=t.C;qe(r=fn(),new vn(r,n)),Zr(t)}else rs(t);else if(3==(s=e.o)||0==s&&0<t.pa||!(1==r&&function(t,e){return!(wr(t.h)>=t.h.j-(t.m?1:0)||(t.m?(t.i=e.D.concat(t.i),0):1==t.G||2==t.G||t.C>=(t.Za?0:t.$a)||(t.m=wn(xt(t.Ja,t,e),us(t,t.C)),t.C++,0)))}(t,e)||2==r&&ss(t)))switch(n&&0<n.length&&(e=t.h,e.i=e.i.concat(n)),s){case 1:hs(t,5);break;case 4:hs(t,10);break;case 3:hs(t,6);break;default:hs(t,2)}}function us(t,e){var n=t.Xa+Math.floor(Math.random()*t.bb);return t.l||(n*=2),n*e}function hs(t,e){if(t.j.info("Error code "+e),2==e){var n=null;t.l&&(n=null);var r=xt(t.kb,t);n||(n=new Wn("//www.google.com/images/cleardot.gif"),kt.location&&"http"==kt.location.protocol||Jn(n,"https"),tr(n)),function(t,e){var n=new un;if(kt.Image){var r=new Image;r.onload=Ut(Cr,n,r,"TestLoadImage: loaded",!0,e),r.onerror=Ut(Cr,n,r,"TestLoadImage: error",!1,e),r.onabort=Ut(Cr,n,r,"TestLoadImage: abort",!1,e),r.ontimeout=Ut(Cr,n,r,"TestLoadImage: timeout",!1,e),kt.setTimeout((function(){r.ontimeout&&r.ontimeout()}),1e4),r.src=t}else e(!1)}(n.toString(),r)}else yn(2);t.G=0,t.l&&t.l.va(e),ls(t),Yr(t)}function ls(t){if(t.G=0,t.la=[],t.l){var e=_r(t.h);0==e.length&&0==t.i.length||(Bt(t.la,e),Bt(t.la,t.i),t.h.i.length=0,jt(t.i),t.i.length=0),t.l.ua()}}function ds(t,e,n){var r=n instanceof Wn?Qn(n):new Wn(n,void 0);if(""!=r.g)e&&(r.g=e+"."+r.g),Xn(r,r.m);else{var s=kt.location;r=s.protocol,e=e?e+"."+s.hostname:s.hostname,s=+s.port;var i=new Wn(null,void 0);r&&Jn(i,r),e&&(i.g=e),s&&Xn(i,s),n&&(i.l=n),r=i}return n=t.D,e=t.za,n&&e&&Zn(r,n,e),Zn(r,"VER",t.ma),es(t,r),r}function fs(t,e,n){if(e&&!t.H)throw Error("Can't create secondary domain capable XhrIo object.");return(e=n&&t.Da&&!t.ra?new Mr(new kr({jb:!0})):new Mr(t.ra)).Ka(t.H),e}function ps(){}function gs(){if(te&&!(10<=Number(fe)))throw Error("Environmental error: no available transport.")}function ms(t,e){Ve.call(this),this.g=new Qr(e),this.l=t,this.h=e&&e.messageUrlParams||null,t=e&&e.messageHeaders||null,e&&e.clientProtocolHeaderRequired&&(t?t["X-Client-Protocol"]="webchannel":t={"X-Client-Protocol":"webchannel"}),this.g.s=t,t=e&&e.initMessageHeaders||null,e&&e.messageContentType&&(t?t["X-WebChannel-Content-Type"]=e.messageContentType:t={"X-WebChannel-Content-Type":e.messageContentType}),e&&e.ya&&(t?t["X-WebChannel-Client-Profile"]=e.ya:t={"X-WebChannel-Client-Profile":e.ya}),this.g.S=t,(t=e&&e.Yb)&&!Kt(t)&&(this.g.o=t),this.A=e&&e.supportsCrossDomainXhr||!1,this.v=e&&e.sendRawJson||!1,(e=e&&e.httpSessionIdParam)&&!Kt(e)&&(this.g.D=e,null!==(t=this.h)&&e in t&&(e in(t=this.h)&&delete t[e])),this.j=new ws(this)}function ys(t){Cn.call(this);var e=t.__sm__;if(e){t:{for(var n in e){t=n;break t}t=void 0}(this.i=t)&&(t=this.i,e=null!==e&&t in e?e[t]:void 0),this.data=e}else this.data=t}function vs(){kn.call(this),this.status=1}function ws(t){this.g=t}(St=Mr.prototype).Ka=function(t){this.L=t},St.da=function(t,e,n,r){var s,i,o,a;if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.H+"; newUri="+t);e=e?e.toUpperCase():"GET",this.H=t,this.j="",this.m=0,this.D=!1,this.h=!0,this.g=this.u?this.u.g():Sn.g(),this.C=this.u?_n(this.u):_n(Sn),this.g.onreadystatechange=xt(this.Ha,this);try{this.F=!0,this.g.open(e,String(t),!0),this.F=!1}catch(l){return void Vr(this,l)}if(t=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var c in r)n.set(c,r[c]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));try{for(var u=_t(r.keys()),h=u.next();!h.done;h=u.next()){var l=h.value;n.set(l,r.get(l))}}catch(t){s={error:t}}finally{try{h&&!h.done&&(i=u.return)&&i.call(u)}finally{if(s)throw s.error}}}r=Array.from(n.keys()).find((function(t){return"content-type"==t.toLowerCase()})),c=kt.FormData&&t instanceof kt.FormData,!(0<=qt(Fr,e))||r||c||n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");try{for(var d=_t(n),f=d.next();!f.done;f=d.next()){var p=Tt(f.value,2),g=(l=p[0],p[1]);this.g.setRequestHeader(l,g)}}catch(t){o={error:t}}finally{try{f&&!f.done&&(a=d.return)&&a.call(d)}finally{if(o)throw o.error}}this.J&&(this.g.responseType=this.J),"withCredentials"in this.g&&this.g.withCredentials!==this.L&&(this.g.withCredentials=this.L);try{zr(this),0<this.B&&((this.K=function(t){return te&&le()&&"number"==typeof t.timeout&&void 0!==t.ontimeout}(this.g))?(this.g.timeout=this.B,this.g.ontimeout=xt(this.qa,this)):this.A=en(this.qa,this.B,this)),this.v=!0,this.g.send(t),this.v=!1}catch(l){Vr(this,l)}},St.qa=function(){void 0!==Ct&&this.g&&(this.j="Timed out after "+this.B+"ms, aborting",this.m=8,qe(this,"timeout"),this.abort(8))},St.abort=function(t){this.g&&this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1,this.m=t||7,qe(this,"complete"),qe(this,"abort"),Br(this))},St.M=function(){this.g&&(this.h&&(this.h=!1,this.l=!0,this.g.abort(),this.l=!1),Br(this,!0)),Mr.X.M.call(this)},St.Ha=function(){this.s||(this.F||this.v||this.l?jr(this):this.fb())},St.fb=function(){jr(this)},St.aa=function(){try{return 2<$r(this)?this.g.status:-1}catch(t){return-1}},St.fa=function(){try{return this.g?this.g.responseText:""}catch(t){return""}},St.Sa=function(t){if(this.g){var e=this.g.responseText;return t&&0==e.indexOf(t)&&(e=e.substring(t.length)),Pr(e)}},St.Ea=function(){return this.m},St.Oa=function(){return"string"==typeof this.j?this.j:String(this.j)},(St=Qr.prototype).ma=8,St.G=1,St.Ja=function(t){if(this.m)if(this.m=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var e=new Dn(this,this.j,t,void 0),n=this.s;if(this.S&&(n?_e(n=be(n),this.S):n=this.S),null!==this.o||this.N||(e.H=n,n=null),this.O)t:{for(var r=0,s=0;s<this.i.length;s++){var i=this.i[s];if(void 0===(i="__data__"in i.g&&"string"==typeof(i=i.g.__data__)?i.length:void 0))break;if(4096<(r+=i)){r=s;break t}if(4096===r||s===this.i.length-1){r=s+1;break t}}r=1e3}else r=1e3;r=ns(this,e,r),Zn(s=Qn(this.F),"RID",t),Zn(s,"CVER",22),this.D&&Zn(s,"X-HTTP-Session-Id",this.D),es(this,s),n&&(this.N?r="headers="+encodeURIComponent(String(Hr(n)))+"&"+r:this.o&&Gr(s,this.o,n)),br(this.h,e),this.Ya&&Zn(s,"TYPE","init"),this.O?(Zn(s,"$req",r),Zn(s,"SID","null"),e.Z=!0,Mn(e,s,null)):Mn(e,s,r),this.G=2}}else 3==this.G&&(t?ts(this,t):0==this.i.length||vr(this.h)||ts(this))},St.Ia=function(){if(this.u=null,os(this),this.$&&!(this.K||null==this.g||0>=this.P)){var t=2*this.P;this.j.info("BP detection timer enabled: "+t),this.B=wn(xt(this.eb,this),t)}},St.eb=function(){this.B&&(this.B=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.L=!1,this.K=!0,yn(10),Xr(this),os(this))},St.cb=function(){null!=this.v&&(this.v=null,Xr(this),ss(this),yn(19))},St.kb=function(t){t?(this.j.info("Successfully pinged google.com"),yn(2)):(this.j.info("Failed to ping google.com"),yn(1))},(St=ps.prototype).xa=function(){},St.wa=function(){},St.va=function(){},St.ua=function(){},St.Ra=function(){},gs.prototype.g=function(t,e){return new ms(t,e)},Ft(ms,Ve),ms.prototype.m=function(){this.g.l=this.j,this.A&&(this.g.H=!0);var t=this.g,e=this.l,n=this.h||void 0;yn(0),t.V=e,t.ia=n||{},t.L=t.Y,t.F=ds(t,null,t.V),Zr(t)},ms.prototype.close=function(){Jr(this.g)},ms.prototype.u=function(t){var e=this.g;if("string"==typeof t){var n={};n.__data__=t,t=n}else this.v&&((n={}).__data__=Be(t),t=n);e.i.push(new gr(e.ab++,t)),3==e.G&&Zr(e)},ms.prototype.M=function(){this.g.l=null,delete this.j,Jr(this.g),delete this.g,ms.X.M.call(this)},Ft(ys,Cn),Ft(vs,kn),Ft(ws,ps),ws.prototype.xa=function(){qe(this.g,"a")},ws.prototype.wa=function(t){qe(this.g,new ys(t))},ws.prototype.va=function(t){qe(this.g,new vs)},ws.prototype.ua=function(){qe(this.g,"b")},gs.prototype.createWebChannel=gs.prototype.g,ms.prototype.send=ms.prototype.u,ms.prototype.open=ms.prototype.m,ms.prototype.close=ms.prototype.close,In.NO_ERROR=0,In.TIMEOUT=8,In.HTTP_ERROR=6,bn.COMPLETE="complete",Tn.EventType=An,An.OPEN="a",An.CLOSE="b",An.ERROR="c",An.MESSAGE="d",Ve.prototype.listen=Ve.prototype.N,Mr.prototype.listenOnce=Mr.prototype.O,Mr.prototype.getLastError=Mr.prototype.Oa,Mr.prototype.getLastErrorCode=Mr.prototype.Ea,Mr.prototype.getStatus=Mr.prototype.aa,Mr.prototype.getResponseJson=Mr.prototype.Sa,Mr.prototype.getResponseText=Mr.prototype.fa,Mr.prototype.send=Mr.prototype.da,Mr.prototype.setWithCredentials=Mr.prototype.Ka;var Is=In,bs=bn,Es=ln,_s=10,Ts=11,Ss=kr,As=Tn,Cs=Mr;const ks="@firebase/firestore";
|
|
316
|
+
/**
|
|
317
|
+
* @license
|
|
318
|
+
* Copyright 2017 Google LLC
|
|
319
|
+
*
|
|
320
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
321
|
+
* you may not use this file except in compliance with the License.
|
|
322
|
+
* You may obtain a copy of the License at
|
|
323
|
+
*
|
|
324
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
325
|
+
*
|
|
326
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
327
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
328
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
329
|
+
* See the License for the specific language governing permissions and
|
|
330
|
+
* limitations under the License.
|
|
331
|
+
*/class Ns{constructor(t){this.uid=t}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(t){return t.uid===this.uid}}Ns.UNAUTHENTICATED=new Ns(null),Ns.GOOGLE_CREDENTIALS=new Ns("google-credentials-uid"),Ns.FIRST_PARTY=new Ns("first-party-uid"),Ns.MOCK_USER=new Ns("mock-user");
|
|
332
|
+
/**
|
|
333
|
+
* @license
|
|
334
|
+
* Copyright 2017 Google LLC
|
|
335
|
+
*
|
|
336
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
337
|
+
* you may not use this file except in compliance with the License.
|
|
338
|
+
* You may obtain a copy of the License at
|
|
339
|
+
*
|
|
340
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
341
|
+
*
|
|
342
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
343
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
344
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
345
|
+
* See the License for the specific language governing permissions and
|
|
346
|
+
* limitations under the License.
|
|
347
|
+
*/
|
|
348
|
+
let Ds="9.15.0";
|
|
349
|
+
/**
|
|
350
|
+
* @license
|
|
351
|
+
* Copyright 2017 Google LLC
|
|
352
|
+
*
|
|
353
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
354
|
+
* you may not use this file except in compliance with the License.
|
|
355
|
+
* You may obtain a copy of the License at
|
|
356
|
+
*
|
|
357
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
358
|
+
*
|
|
359
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
360
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
361
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
362
|
+
* See the License for the specific language governing permissions and
|
|
363
|
+
* limitations under the License.
|
|
364
|
+
*/const Rs=new O("@firebase/firestore");function Os(){return Rs.logLevel}function Ls(t,...e){if(Rs.logLevel<=C.DEBUG){const n=e.map(xs);Rs.debug(`Firestore (${Ds}): ${t}`,...n)}}function Ps(t,...e){if(Rs.logLevel<=C.ERROR){const n=e.map(xs);Rs.error(`Firestore (${Ds}): ${t}`,...n)}}function Ms(t,...e){if(Rs.logLevel<=C.WARN){const n=e.map(xs);Rs.warn(`Firestore (${Ds}): ${t}`,...n)}}function xs(t){if("string"==typeof t)return t;try{return e=t,JSON.stringify(e)}catch(e){return t}
|
|
365
|
+
/**
|
|
366
|
+
* @license
|
|
367
|
+
* Copyright 2020 Google LLC
|
|
368
|
+
*
|
|
369
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
370
|
+
* you may not use this file except in compliance with the License.
|
|
371
|
+
* You may obtain a copy of the License at
|
|
372
|
+
*
|
|
373
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
374
|
+
*
|
|
375
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
376
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
377
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
378
|
+
* See the License for the specific language governing permissions and
|
|
379
|
+
* limitations under the License.
|
|
380
|
+
*/var e}
|
|
381
|
+
/**
|
|
382
|
+
* @license
|
|
383
|
+
* Copyright 2017 Google LLC
|
|
384
|
+
*
|
|
385
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
386
|
+
* you may not use this file except in compliance with the License.
|
|
387
|
+
* You may obtain a copy of the License at
|
|
388
|
+
*
|
|
389
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
390
|
+
*
|
|
391
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
392
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
393
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
394
|
+
* See the License for the specific language governing permissions and
|
|
395
|
+
* limitations under the License.
|
|
396
|
+
*/function Us(t="Unexpected state"){const e=`FIRESTORE (${Ds}) INTERNAL ASSERTION FAILED: `+t;throw Ps(e),new Error(e)}function Fs(t,e){t||Us()}function Vs(t,e){return t}
|
|
397
|
+
/**
|
|
398
|
+
* @license
|
|
399
|
+
* Copyright 2017 Google LLC
|
|
400
|
+
*
|
|
401
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
402
|
+
* you may not use this file except in compliance with the License.
|
|
403
|
+
* You may obtain a copy of the License at
|
|
404
|
+
*
|
|
405
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
406
|
+
*
|
|
407
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
408
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
409
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
410
|
+
* See the License for the specific language governing permissions and
|
|
411
|
+
* limitations under the License.
|
|
412
|
+
*/const qs={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class js extends d{constructor(t,e){super(t,e),this.code=t,this.message=e,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}
|
|
413
|
+
/**
|
|
414
|
+
* @license
|
|
415
|
+
* Copyright 2017 Google LLC
|
|
416
|
+
*
|
|
417
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
418
|
+
* you may not use this file except in compliance with the License.
|
|
419
|
+
* You may obtain a copy of the License at
|
|
420
|
+
*
|
|
421
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
422
|
+
*
|
|
423
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
424
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
425
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
426
|
+
* See the License for the specific language governing permissions and
|
|
427
|
+
* limitations under the License.
|
|
428
|
+
*/class Bs{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}
|
|
429
|
+
/**
|
|
430
|
+
* @license
|
|
431
|
+
* Copyright 2017 Google LLC
|
|
432
|
+
*
|
|
433
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
434
|
+
* you may not use this file except in compliance with the License.
|
|
435
|
+
* You may obtain a copy of the License at
|
|
436
|
+
*
|
|
437
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
438
|
+
*
|
|
439
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
440
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
441
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
442
|
+
* See the License for the specific language governing permissions and
|
|
443
|
+
* limitations under the License.
|
|
444
|
+
*/class zs{constructor(t,e){this.user=e,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${t}`)}}class $s{getToken(){return Promise.resolve(null)}invalidateToken(){}start(t,e){t.enqueueRetryable((()=>e(Ns.UNAUTHENTICATED)))}shutdown(){}}class Ks{constructor(t){this.token=t,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(t,e){this.changeListener=e,t.enqueueRetryable((()=>e(this.token.user)))}shutdown(){this.changeListener=null}}class Hs{constructor(t){this.t=t,this.currentUser=Ns.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,e){let n=this.i;const r=t=>this.i!==n?(n=this.i,e(t)):Promise.resolve();let s=new Bs;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Bs,t.enqueueRetryable((()=>r(this.currentUser)))};const i=()=>{const e=s;t.enqueueRetryable((async()=>{await e.promise,await r(this.currentUser)}))},o=t=>{Ls("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=t,this.auth.addAuthTokenListener(this.o),i()};this.t.onInit((t=>o(t))),setTimeout((()=>{if(!this.auth){const t=this.t.getImmediate({optional:!0});t?o(t):(Ls("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Bs)}}),0),i()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then((e=>this.i!==t?(Ls("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(Fs("string"==typeof e.accessToken),new zs(e.accessToken,this.currentUser)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.auth.removeAuthTokenListener(this.o)}u(){const t=this.auth&&this.auth.getUid();return Fs(null===t||"string"==typeof t),new Ns(t)}}class Gs{constructor(t,e,n,r){this.h=t,this.l=e,this.m=n,this.g=r,this.type="FirstParty",this.user=Ns.FIRST_PARTY,this.p=new Map}I(){return this.g?this.g():(Fs(!("object"!=typeof this.h||null===this.h||!this.h.auth||!this.h.auth.getAuthHeaderValueForFirstParty)),this.h.auth.getAuthHeaderValueForFirstParty([]))}get headers(){this.p.set("X-Goog-AuthUser",this.l);const t=this.I();return t&&this.p.set("Authorization",t),this.m&&this.p.set("X-Goog-Iam-Authorization-Token",this.m),this.p}}class Ws{constructor(t,e,n,r){this.h=t,this.l=e,this.m=n,this.g=r}getToken(){return Promise.resolve(new Gs(this.h,this.l,this.m,this.g))}start(t,e){t.enqueueRetryable((()=>e(Ns.FIRST_PARTY)))}shutdown(){}invalidateToken(){}}class Qs{constructor(t){this.value=t,this.type="AppCheck",this.headers=new Map,t&&t.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class Js{constructor(t){this.T=t,this.forceRefresh=!1,this.appCheck=null,this.A=null}start(t,e){const n=t=>{null!=t.error&&Ls("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${t.error.message}`);const n=t.token!==this.A;return this.A=t.token,Ls("FirebaseAppCheckTokenProvider",`Received ${n?"new":"existing"} token.`),n?e(t.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable((()=>n(e)))};const r=t=>{Ls("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=t,this.appCheck.addTokenListener(this.o)};this.T.onInit((t=>r(t))),setTimeout((()=>{if(!this.appCheck){const t=this.T.getImmediate({optional:!0});t?r(t):Ls("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}}),0)}getToken(){const t=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(t).then((t=>t?(Fs("string"==typeof t.token),this.A=t.token,new Qs(t.token)):null)):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.appCheck.removeTokenListener(this.o)}}
|
|
445
|
+
/**
|
|
446
|
+
* @license
|
|
447
|
+
* Copyright 2020 Google LLC
|
|
448
|
+
*
|
|
449
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
450
|
+
* you may not use this file except in compliance with the License.
|
|
451
|
+
* You may obtain a copy of the License at
|
|
452
|
+
*
|
|
453
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
454
|
+
*
|
|
455
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
456
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
457
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
458
|
+
* See the License for the specific language governing permissions and
|
|
459
|
+
* limitations under the License.
|
|
460
|
+
*/function Xs(t){const e="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(e&&"function"==typeof e.getRandomValues)e.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n}
|
|
461
|
+
/**
|
|
462
|
+
* @license
|
|
463
|
+
* Copyright 2017 Google LLC
|
|
464
|
+
*
|
|
465
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
466
|
+
* you may not use this file except in compliance with the License.
|
|
467
|
+
* You may obtain a copy of the License at
|
|
468
|
+
*
|
|
469
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
470
|
+
*
|
|
471
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
472
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
473
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
474
|
+
* See the License for the specific language governing permissions and
|
|
475
|
+
* limitations under the License.
|
|
476
|
+
*/class Ys{static R(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",e=Math.floor(256/t.length)*t.length;let n="";for(;n.length<20;){const r=Xs(40);for(let s=0;s<r.length;++s)n.length<20&&r[s]<e&&(n+=t.charAt(r[s]%t.length))}return n}}function Zs(t,e){return t<e?-1:t>e?1:0}function ti(t,e,n){return t.length===e.length&&t.every(((t,r)=>n(t,e[r])))}
|
|
477
|
+
/**
|
|
478
|
+
* @license
|
|
479
|
+
* Copyright 2017 Google LLC
|
|
480
|
+
*
|
|
481
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
482
|
+
* you may not use this file except in compliance with the License.
|
|
483
|
+
* You may obtain a copy of the License at
|
|
484
|
+
*
|
|
485
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
486
|
+
*
|
|
487
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
488
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
489
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
490
|
+
* See the License for the specific language governing permissions and
|
|
491
|
+
* limitations under the License.
|
|
492
|
+
*/class ei{constructor(t,e){if(this.seconds=t,this.nanoseconds=e,e<0)throw new js(qs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(e>=1e9)throw new js(qs.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+e);if(t<-62135596800)throw new js(qs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t);if(t>=253402300800)throw new js(qs.INVALID_ARGUMENT,"Timestamp seconds out of range: "+t)}static now(){return ei.fromMillis(Date.now())}static fromDate(t){return ei.fromMillis(t.getTime())}static fromMillis(t){const e=Math.floor(t/1e3),n=Math.floor(1e6*(t-1e3*e));return new ei(e,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(t){return this.seconds===t.seconds?Zs(this.nanoseconds,t.nanoseconds):Zs(this.seconds,t.seconds)}isEqual(t){return t.seconds===this.seconds&&t.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const t=this.seconds- -62135596800;return String(t).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}
|
|
493
|
+
/**
|
|
494
|
+
* @license
|
|
495
|
+
* Copyright 2017 Google LLC
|
|
496
|
+
*
|
|
497
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
498
|
+
* you may not use this file except in compliance with the License.
|
|
499
|
+
* You may obtain a copy of the License at
|
|
500
|
+
*
|
|
501
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
502
|
+
*
|
|
503
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
504
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
505
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
506
|
+
* See the License for the specific language governing permissions and
|
|
507
|
+
* limitations under the License.
|
|
508
|
+
*/class ni{constructor(t){this.timestamp=t}static fromTimestamp(t){return new ni(t)}static min(){return new ni(new ei(0,0))}static max(){return new ni(new ei(253402300799,999999999))}compareTo(t){return this.timestamp._compareTo(t.timestamp)}isEqual(t){return this.timestamp.isEqual(t.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}
|
|
509
|
+
/**
|
|
510
|
+
* @license
|
|
511
|
+
* Copyright 2017 Google LLC
|
|
512
|
+
*
|
|
513
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
514
|
+
* you may not use this file except in compliance with the License.
|
|
515
|
+
* You may obtain a copy of the License at
|
|
516
|
+
*
|
|
517
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
518
|
+
*
|
|
519
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
520
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
521
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
522
|
+
* See the License for the specific language governing permissions and
|
|
523
|
+
* limitations under the License.
|
|
524
|
+
*/class ri{constructor(t,e,n){void 0===e?e=0:e>t.length&&Us(),void 0===n?n=t.length-e:n>t.length-e&&Us(),this.segments=t,this.offset=e,this.len=n}get length(){return this.len}isEqual(t){return 0===ri.comparator(this,t)}child(t){const e=this.segments.slice(this.offset,this.limit());return t instanceof ri?t.forEach((t=>{e.push(t)})):e.push(t),this.construct(e)}limit(){return this.offset+this.length}popFirst(t){return t=void 0===t?1:t,this.construct(this.segments,this.offset+t,this.length-t)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(t){return this.segments[this.offset+t]}isEmpty(){return 0===this.length}isPrefixOf(t){if(t.length<this.length)return!1;for(let e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0}isImmediateParentOf(t){if(this.length+1!==t.length)return!1;for(let e=0;e<this.length;e++)if(this.get(e)!==t.get(e))return!1;return!0}forEach(t){for(let e=this.offset,n=this.limit();e<n;e++)t(this.segments[e])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,e){const n=Math.min(t.length,e.length);for(let r=0;r<n;r++){const n=t.get(r),s=e.get(r);if(n<s)return-1;if(n>s)return 1}return t.length<e.length?-1:t.length>e.length?1:0}}class si extends ri{construct(t,e,n){return new si(t,e,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}static fromString(...t){const e=[];for(const n of t){if(n.indexOf("//")>=0)throw new js(qs.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);e.push(...n.split("/").filter((t=>t.length>0)))}return new si(e)}static emptyPath(){return new si([])}}const ii=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class oi extends ri{construct(t,e,n){return new oi(t,e,n)}static isValidIdentifier(t){return ii.test(t)}canonicalString(){return this.toArray().map((t=>(t=t.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),oi.isValidIdentifier(t)||(t="`"+t+"`"),t))).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new oi(["__name__"])}static fromServerFormat(t){const e=[];let n="",r=0;const s=()=>{if(0===n.length)throw new js(qs.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(n),n=""};let i=!1;for(;r<t.length;){const e=t[r];if("\\"===e){if(r+1===t.length)throw new js(qs.INVALID_ARGUMENT,"Path has trailing escape character: "+t);const e=t[r+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new js(qs.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);n+=e,r+=2}else"`"===e?(i=!i,r++):"."!==e||i?(n+=e,r++):(s(),r++)}if(s(),i)throw new js(qs.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new oi(e)}static emptyPath(){return new oi([])}}
|
|
525
|
+
/**
|
|
526
|
+
* @license
|
|
527
|
+
* Copyright 2017 Google LLC
|
|
528
|
+
*
|
|
529
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
530
|
+
* you may not use this file except in compliance with the License.
|
|
531
|
+
* You may obtain a copy of the License at
|
|
532
|
+
*
|
|
533
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
534
|
+
*
|
|
535
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
536
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
537
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
538
|
+
* See the License for the specific language governing permissions and
|
|
539
|
+
* limitations under the License.
|
|
540
|
+
*/class ai{constructor(t){this.path=t}static fromPath(t){return new ai(si.fromString(t))}static fromName(t){return new ai(si.fromString(t).popFirst(5))}static empty(){return new ai(si.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(t){return this.path.length>=2&&this.path.get(this.path.length-2)===t}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(t){return null!==t&&0===si.comparator(this.path,t.path)}toString(){return this.path.toString()}static comparator(t,e){return si.comparator(t.path,e.path)}static isDocumentKey(t){return t.length%2==0}static fromSegments(t){return new ai(new si(t.slice()))}}function ci(t){return new ui(t.readTime,t.key,-1)}class ui{constructor(t,e,n){this.readTime=t,this.documentKey=e,this.largestBatchId=n}static min(){return new ui(ni.min(),ai.empty(),-1)}static max(){return new ui(ni.max(),ai.empty(),-1)}}function hi(t,e){let n=t.readTime.compareTo(e.readTime);return 0!==n?n:(n=ai.comparator(t.documentKey,e.documentKey),0!==n?n:Zs(t.largestBatchId,e.largestBatchId))}
|
|
541
|
+
/**
|
|
542
|
+
* @license
|
|
543
|
+
* Copyright 2020 Google LLC
|
|
544
|
+
*
|
|
545
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
546
|
+
* you may not use this file except in compliance with the License.
|
|
547
|
+
* You may obtain a copy of the License at
|
|
548
|
+
*
|
|
549
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
550
|
+
*
|
|
551
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
552
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
553
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
554
|
+
* See the License for the specific language governing permissions and
|
|
555
|
+
* limitations under the License.
|
|
556
|
+
*/class li{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(t){this.onCommittedListeners.push(t)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach((t=>t()))}}
|
|
557
|
+
/**
|
|
558
|
+
* @license
|
|
559
|
+
* Copyright 2017 Google LLC
|
|
560
|
+
*
|
|
561
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
562
|
+
* you may not use this file except in compliance with the License.
|
|
563
|
+
* You may obtain a copy of the License at
|
|
564
|
+
*
|
|
565
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
566
|
+
*
|
|
567
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
568
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
569
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
570
|
+
* See the License for the specific language governing permissions and
|
|
571
|
+
* limitations under the License.
|
|
572
|
+
*/async function di(t){if(t.code!==qs.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==t.message)throw t;Ls("LocalStore","Unexpectedly lost primary lease")}
|
|
573
|
+
/**
|
|
574
|
+
* @license
|
|
575
|
+
* Copyright 2017 Google LLC
|
|
576
|
+
*
|
|
577
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
578
|
+
* you may not use this file except in compliance with the License.
|
|
579
|
+
* You may obtain a copy of the License at
|
|
580
|
+
*
|
|
581
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
582
|
+
*
|
|
583
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
584
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
585
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
586
|
+
* See the License for the specific language governing permissions and
|
|
587
|
+
* limitations under the License.
|
|
588
|
+
*/class fi{constructor(t){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,t((t=>{this.isDone=!0,this.result=t,this.nextCallback&&this.nextCallback(t)}),(t=>{this.isDone=!0,this.error=t,this.catchCallback&&this.catchCallback(t)}))}catch(t){return this.next(void 0,t)}next(t,e){return this.callbackAttached&&Us(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(e,this.error):this.wrapSuccess(t,this.result):new fi(((n,r)=>{this.nextCallback=e=>{this.wrapSuccess(t,e).next(n,r)},this.catchCallback=t=>{this.wrapFailure(e,t).next(n,r)}}))}toPromise(){return new Promise(((t,e)=>{this.next(t,e)}))}wrapUserFunction(t){try{const e=t();return e instanceof fi?e:fi.resolve(e)}catch(t){return fi.reject(t)}}wrapSuccess(t,e){return t?this.wrapUserFunction((()=>t(e))):fi.resolve(e)}wrapFailure(t,e){return t?this.wrapUserFunction((()=>t(e))):fi.reject(e)}static resolve(t){return new fi(((e,n)=>{e(t)}))}static reject(t){return new fi(((e,n)=>{n(t)}))}static waitFor(t){return new fi(((e,n)=>{let r=0,s=0,i=!1;t.forEach((t=>{++r,t.next((()=>{++s,i&&s===r&&e()}),(t=>n(t)))})),i=!0,s===r&&e()}))}static or(t){let e=fi.resolve(!1);for(const n of t)e=e.next((t=>t?fi.resolve(t):n()));return e}static forEach(t,e){const n=[];return t.forEach(((t,r)=>{n.push(e.call(this,t,r))})),this.waitFor(n)}static mapArray(t,e){return new fi(((n,r)=>{const s=t.length,i=new Array(s);let o=0;for(let a=0;a<s;a++){const c=a;e(t[c]).next((t=>{i[c]=t,++o,o===s&&n(i)}),(t=>r(t)))}}))}static doWhile(t,e){return new fi(((n,r)=>{const s=()=>{!0===t()?e().next((()=>{s()}),r):n()};s()}))}}function pi(t){return"IndexedDbTransactionError"===t.name}
|
|
589
|
+
/**
|
|
590
|
+
* @license
|
|
591
|
+
* Copyright 2018 Google LLC
|
|
592
|
+
*
|
|
593
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
594
|
+
* you may not use this file except in compliance with the License.
|
|
595
|
+
* You may obtain a copy of the License at
|
|
596
|
+
*
|
|
597
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
598
|
+
*
|
|
599
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
600
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
601
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
602
|
+
* See the License for the specific language governing permissions and
|
|
603
|
+
* limitations under the License.
|
|
604
|
+
*/class gi{constructor(t,e){this.previousValue=t,e&&(e.sequenceNumberHandler=t=>this.ut(t),this.ct=t=>e.writeSequenceNumber(t))}ut(t){return this.previousValue=Math.max(t,this.previousValue),this.previousValue}next(){const t=++this.previousValue;return this.ct&&this.ct(t),t}}gi.at=-1;
|
|
605
|
+
/**
|
|
606
|
+
* @license
|
|
607
|
+
* Copyright 2017 Google LLC
|
|
608
|
+
*
|
|
609
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
610
|
+
* you may not use this file except in compliance with the License.
|
|
611
|
+
* You may obtain a copy of the License at
|
|
612
|
+
*
|
|
613
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
614
|
+
*
|
|
615
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
616
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
617
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
618
|
+
* See the License for the specific language governing permissions and
|
|
619
|
+
* limitations under the License.
|
|
620
|
+
*/
|
|
621
|
+
class mi{constructor(t,e,n,r,s,i,o,a){this.databaseId=t,this.appId=e,this.persistenceKey=n,this.host=r,this.ssl=s,this.forceLongPolling=i,this.autoDetectLongPolling=o,this.useFetchStreams=a}}class yi{constructor(t,e){this.projectId=t,this.database=e||"(default)"}static empty(){return new yi("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(t){return t instanceof yi&&t.projectId===this.projectId&&t.database===this.database}}
|
|
622
|
+
/**
|
|
623
|
+
* @license
|
|
624
|
+
* Copyright 2017 Google LLC
|
|
625
|
+
*
|
|
626
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
627
|
+
* you may not use this file except in compliance with the License.
|
|
628
|
+
* You may obtain a copy of the License at
|
|
629
|
+
*
|
|
630
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
631
|
+
*
|
|
632
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
633
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
634
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
635
|
+
* See the License for the specific language governing permissions and
|
|
636
|
+
* limitations under the License.
|
|
637
|
+
*/function vi(t){let e=0;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e++;return e}function wi(t,e){for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])}function Ii(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}
|
|
638
|
+
/**
|
|
639
|
+
* @license
|
|
640
|
+
* Copyright 2017 Google LLC
|
|
641
|
+
*
|
|
642
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
643
|
+
* you may not use this file except in compliance with the License.
|
|
644
|
+
* You may obtain a copy of the License at
|
|
645
|
+
*
|
|
646
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
647
|
+
*
|
|
648
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
649
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
650
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
651
|
+
* See the License for the specific language governing permissions and
|
|
652
|
+
* limitations under the License.
|
|
653
|
+
*/function bi(t){return null==t}function Ei(t){return 0===t&&1/t==-1/0}
|
|
654
|
+
/**
|
|
655
|
+
* @license
|
|
656
|
+
* Copyright 2020 Google LLC
|
|
657
|
+
*
|
|
658
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
659
|
+
* you may not use this file except in compliance with the License.
|
|
660
|
+
* You may obtain a copy of the License at
|
|
661
|
+
*
|
|
662
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
663
|
+
*
|
|
664
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
665
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
666
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
667
|
+
* See the License for the specific language governing permissions and
|
|
668
|
+
* limitations under the License.
|
|
669
|
+
*/
|
|
670
|
+
class _i{constructor(t){this.binaryString=t}static fromBase64String(t){const e=atob(t);return new _i(e)}static fromUint8Array(t){const e=function(t){let e="";for(let n=0;n<t.length;++n)e+=String.fromCharCode(t[n]);return e}(t);return new _i(e)}[Symbol.iterator](){let t=0;return{next:()=>t<this.binaryString.length?{value:this.binaryString.charCodeAt(t++),done:!1}:{value:void 0,done:!0}}}toBase64(){return t=this.binaryString,btoa(t);var t}toUint8Array(){return function(t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}
|
|
671
|
+
/**
|
|
672
|
+
* @license
|
|
673
|
+
* Copyright 2020 Google LLC
|
|
674
|
+
*
|
|
675
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
676
|
+
* you may not use this file except in compliance with the License.
|
|
677
|
+
* You may obtain a copy of the License at
|
|
678
|
+
*
|
|
679
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
680
|
+
*
|
|
681
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
682
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
683
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
684
|
+
* See the License for the specific language governing permissions and
|
|
685
|
+
* limitations under the License.
|
|
686
|
+
*/(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(t){return Zs(this.binaryString,t.binaryString)}isEqual(t){return this.binaryString===t.binaryString}}_i.EMPTY_BYTE_STRING=new _i("");const Ti=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Si(t){if(Fs(!!t),"string"==typeof t){let e=0;const n=Ti.exec(t);if(Fs(!!n),n[1]){let t=n[1];t=(t+"000000000").substr(0,9),e=Number(t)}const r=new Date(t);return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}return{seconds:Ai(t.seconds),nanos:Ai(t.nanos)}}function Ai(t){return"number"==typeof t?t:"string"==typeof t?Number(t):0}function Ci(t){return"string"==typeof t?_i.fromBase64String(t):_i.fromUint8Array(t)}
|
|
687
|
+
/**
|
|
688
|
+
* @license
|
|
689
|
+
* Copyright 2020 Google LLC
|
|
690
|
+
*
|
|
691
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
692
|
+
* you may not use this file except in compliance with the License.
|
|
693
|
+
* You may obtain a copy of the License at
|
|
694
|
+
*
|
|
695
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
696
|
+
*
|
|
697
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
698
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
699
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
700
|
+
* See the License for the specific language governing permissions and
|
|
701
|
+
* limitations under the License.
|
|
702
|
+
*/function ki(t){var e,n;return"server_timestamp"===(null===(n=((null===(e=null==t?void 0:t.mapValue)||void 0===e?void 0:e.fields)||{}).__type__)||void 0===n?void 0:n.stringValue)}function Ni(t){const e=t.mapValue.fields.__previous_value__;return ki(e)?Ni(e):e}function Di(t){const e=Si(t.mapValue.fields.__local_write_time__.timestampValue);return new ei(e.seconds,e.nanos)}
|
|
703
|
+
/**
|
|
704
|
+
* @license
|
|
705
|
+
* Copyright 2020 Google LLC
|
|
706
|
+
*
|
|
707
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
708
|
+
* you may not use this file except in compliance with the License.
|
|
709
|
+
* You may obtain a copy of the License at
|
|
710
|
+
*
|
|
711
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
712
|
+
*
|
|
713
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
714
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
715
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
716
|
+
* See the License for the specific language governing permissions and
|
|
717
|
+
* limitations under the License.
|
|
718
|
+
*/const Ri={fields:{__type__:{stringValue:"__max__"}}};function Oi(t){return"nullValue"in t?0:"booleanValue"in t?1:"integerValue"in t||"doubleValue"in t?2:"timestampValue"in t?3:"stringValue"in t?5:"bytesValue"in t?6:"referenceValue"in t?7:"geoPointValue"in t?8:"arrayValue"in t?9:"mapValue"in t?ki(t)?4:function(t){return"__max__"===(((t.mapValue||{}).fields||{}).__type__||{}).stringValue}
|
|
719
|
+
/**
|
|
720
|
+
* @license
|
|
721
|
+
* Copyright 2022 Google LLC
|
|
722
|
+
*
|
|
723
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
724
|
+
* you may not use this file except in compliance with the License.
|
|
725
|
+
* You may obtain a copy of the License at
|
|
726
|
+
*
|
|
727
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
728
|
+
*
|
|
729
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
730
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
731
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
732
|
+
* See the License for the specific language governing permissions and
|
|
733
|
+
* limitations under the License.
|
|
734
|
+
*/(t)?9007199254740991:10:Us()}function Li(t,e){if(t===e)return!0;const n=Oi(t);if(n!==Oi(e))return!1;switch(n){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===e.booleanValue;case 4:return Di(t).isEqual(Di(e));case 3:return function(t,e){if("string"==typeof t.timestampValue&&"string"==typeof e.timestampValue&&t.timestampValue.length===e.timestampValue.length)return t.timestampValue===e.timestampValue;const n=Si(t.timestampValue),r=Si(e.timestampValue);return n.seconds===r.seconds&&n.nanos===r.nanos}(t,e);case 5:return t.stringValue===e.stringValue;case 6:return function(t,e){return Ci(t.bytesValue).isEqual(Ci(e.bytesValue))}(t,e);case 7:return t.referenceValue===e.referenceValue;case 8:return function(t,e){return Ai(t.geoPointValue.latitude)===Ai(e.geoPointValue.latitude)&&Ai(t.geoPointValue.longitude)===Ai(e.geoPointValue.longitude)}(t,e);case 2:return function(t,e){if("integerValue"in t&&"integerValue"in e)return Ai(t.integerValue)===Ai(e.integerValue);if("doubleValue"in t&&"doubleValue"in e){const n=Ai(t.doubleValue),r=Ai(e.doubleValue);return n===r?Ei(n)===Ei(r):isNaN(n)&&isNaN(r)}return!1}(t,e);case 9:return ti(t.arrayValue.values||[],e.arrayValue.values||[],Li);case 10:return function(t,e){const n=t.mapValue.fields||{},r=e.mapValue.fields||{};if(vi(n)!==vi(r))return!1;for(const t in n)if(n.hasOwnProperty(t)&&(void 0===r[t]||!Li(n[t],r[t])))return!1;return!0}(t,e);default:return Us()}}function Pi(t,e){return void 0!==(t.values||[]).find((t=>Li(t,e)))}function Mi(t,e){if(t===e)return 0;const n=Oi(t),r=Oi(e);if(n!==r)return Zs(n,r);switch(n){case 0:case 9007199254740991:return 0;case 1:return Zs(t.booleanValue,e.booleanValue);case 2:return function(t,e){const n=Ai(t.integerValue||t.doubleValue),r=Ai(e.integerValue||e.doubleValue);return n<r?-1:n>r?1:n===r?0:isNaN(n)?isNaN(r)?0:-1:1}(t,e);case 3:return xi(t.timestampValue,e.timestampValue);case 4:return xi(Di(t),Di(e));case 5:return Zs(t.stringValue,e.stringValue);case 6:return function(t,e){const n=Ci(t),r=Ci(e);return n.compareTo(r)}(t.bytesValue,e.bytesValue);case 7:return function(t,e){const n=t.split("/"),r=e.split("/");for(let t=0;t<n.length&&t<r.length;t++){const e=Zs(n[t],r[t]);if(0!==e)return e}return Zs(n.length,r.length)}(t.referenceValue,e.referenceValue);case 8:return function(t,e){const n=Zs(Ai(t.latitude),Ai(e.latitude));return 0!==n?n:Zs(Ai(t.longitude),Ai(e.longitude))}(t.geoPointValue,e.geoPointValue);case 9:return function(t,e){const n=t.values||[],r=e.values||[];for(let t=0;t<n.length&&t<r.length;++t){const e=Mi(n[t],r[t]);if(e)return e}return Zs(n.length,r.length)}(t.arrayValue,e.arrayValue);case 10:return function(t,e){if(t===Ri&&e===Ri)return 0;if(t===Ri)return 1;if(e===Ri)return-1;const n=t.fields||{},r=Object.keys(n),s=e.fields||{},i=Object.keys(s);r.sort(),i.sort();for(let t=0;t<r.length&&t<i.length;++t){const e=Zs(r[t],i[t]);if(0!==e)return e;const o=Mi(n[r[t]],s[i[t]]);if(0!==o)return o}return Zs(r.length,i.length)}(t.mapValue,e.mapValue);default:throw Us()}}function xi(t,e){if("string"==typeof t&&"string"==typeof e&&t.length===e.length)return Zs(t,e);const n=Si(t),r=Si(e),s=Zs(n.seconds,r.seconds);return 0!==s?s:Zs(n.nanos,r.nanos)}function Ui(t){return Fi(t)}function Fi(t){return"nullValue"in t?"null":"booleanValue"in t?""+t.booleanValue:"integerValue"in t?""+t.integerValue:"doubleValue"in t?""+t.doubleValue:"timestampValue"in t?function(t){const e=Si(t);return`time(${e.seconds},${e.nanos})`}(t.timestampValue):"stringValue"in t?t.stringValue:"bytesValue"in t?Ci(t.bytesValue).toBase64():"referenceValue"in t?(n=t.referenceValue,ai.fromName(n).toString()):"geoPointValue"in t?`geo(${(e=t.geoPointValue).latitude},${e.longitude})`:"arrayValue"in t?function(t){let e="[",n=!0;for(const r of t.values||[])n?n=!1:e+=",",e+=Fi(r);return e+"]"}(t.arrayValue):"mapValue"in t?function(t){const e=Object.keys(t.fields||{}).sort();let n="{",r=!0;for(const s of e)r?r=!1:n+=",",n+=`${s}:${Fi(t.fields[s])}`;return n+"}"}(t.mapValue):Us();var e,n}function Vi(t,e){return{referenceValue:`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`}}function qi(t){return!!t&&"integerValue"in t}function ji(t){return!!t&&"arrayValue"in t}function Bi(t){return!!t&&"nullValue"in t}function zi(t){return!!t&&"doubleValue"in t&&isNaN(Number(t.doubleValue))}function $i(t){return!!t&&"mapValue"in t}function Ki(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const e={mapValue:{fields:{}}};return wi(t.mapValue.fields,((t,n)=>e.mapValue.fields[t]=Ki(n))),e}if(t.arrayValue){const e={arrayValue:{values:[]}};for(let n=0;n<(t.arrayValue.values||[]).length;++n)e.arrayValue.values[n]=Ki(t.arrayValue.values[n]);return e}return Object.assign({},t)}class Hi{constructor(t,e){this.position=t,this.inclusive=e}}function Gi(t,e,n){let r=0;for(let s=0;s<t.position.length;s++){const i=e[s],o=t.position[s];if(r=i.field.isKeyField()?ai.comparator(ai.fromName(o.referenceValue),n.key):Mi(o,n.data.field(i.field)),"desc"===i.dir&&(r*=-1),0!==r)break}return r}function Wi(t,e){if(null===t)return null===e;if(null===e)return!1;if(t.inclusive!==e.inclusive||t.position.length!==e.position.length)return!1;for(let n=0;n<t.position.length;n++)if(!Li(t.position[n],e.position[n]))return!1;return!0}
|
|
735
|
+
/**
|
|
736
|
+
* @license
|
|
737
|
+
* Copyright 2022 Google LLC
|
|
738
|
+
*
|
|
739
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
740
|
+
* you may not use this file except in compliance with the License.
|
|
741
|
+
* You may obtain a copy of the License at
|
|
742
|
+
*
|
|
743
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
744
|
+
*
|
|
745
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
746
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
747
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
748
|
+
* See the License for the specific language governing permissions and
|
|
749
|
+
* limitations under the License.
|
|
750
|
+
*/class Qi{}class Ji extends Qi{constructor(t,e,n){super(),this.field=t,this.op=e,this.value=n}static create(t,e,n){return t.isKeyField()?"in"===e||"not-in"===e?this.createKeyFieldInFilter(t,e,n):new ro(t,e,n):"array-contains"===e?new ao(t,n):"in"===e?new co(t,n):"not-in"===e?new uo(t,n):"array-contains-any"===e?new ho(t,n):new Ji(t,e,n)}static createKeyFieldInFilter(t,e,n){return"in"===e?new so(t,n):new io(t,n)}matches(t){const e=t.data.field(this.field);return"!="===this.op?null!==e&&this.matchesComparison(Mi(e,this.value)):null!==e&&Oi(this.value)===Oi(e)&&this.matchesComparison(Mi(e,this.value))}matchesComparison(t){switch(this.op){case"<":return t<0;case"<=":return t<=0;case"==":return 0===t;case"!=":return 0!==t;case">":return t>0;case">=":return t>=0;default:return Us()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}getFirstInequalityField(){return this.isInequality()?this.field:null}}class Xi extends Qi{constructor(t,e){super(),this.filters=t,this.op=e,this.ht=null}static create(t,e){return new Xi(t,e)}matches(t){return Yi(this)?void 0===this.filters.find((e=>!e.matches(t))):void 0!==this.filters.find((e=>e.matches(t)))}getFlattenedFilters(){return null!==this.ht||(this.ht=this.filters.reduce(((t,e)=>t.concat(e.getFlattenedFilters())),[])),this.ht}getFilters(){return Object.assign([],this.filters)}getFirstInequalityField(){const t=this.lt((t=>t.isInequality()));return null!==t?t.field:null}lt(t){for(const e of this.getFlattenedFilters())if(t(e))return e;return null}}function Yi(t){return"and"===t.op}function Zi(t){return function(t){for(const e of t.filters)if(e instanceof Xi)return!1;return!0}(t)&&Yi(t)}function to(t){if(t instanceof Ji)return t.field.canonicalString()+t.op.toString()+Ui(t.value);{const e=t.filters.map((t=>to(t))).join(",");return`${t.op}(${e})`}}function eo(t,e){return t instanceof Ji?function(t,e){return e instanceof Ji&&t.op===e.op&&t.field.isEqual(e.field)&&Li(t.value,e.value)}(t,e):t instanceof Xi?function(t,e){return e instanceof Xi&&t.op===e.op&&t.filters.length===e.filters.length&&t.filters.reduce(((t,n,r)=>t&&eo(n,e.filters[r])),!0)}(t,e):void Us()}function no(t){return t instanceof Ji?function(t){return`${t.field.canonicalString()} ${t.op} ${Ui(t.value)}`}(t):t instanceof Xi?function(t){return t.op.toString()+" {"+t.getFilters().map(no).join(" ,")+"}"}(t):"Filter"}class ro extends Ji{constructor(t,e,n){super(t,e,n),this.key=ai.fromName(n.referenceValue)}matches(t){const e=ai.comparator(t.key,this.key);return this.matchesComparison(e)}}class so extends Ji{constructor(t,e){super(t,"in",e),this.keys=oo("in",e)}matches(t){return this.keys.some((e=>e.isEqual(t.key)))}}class io extends Ji{constructor(t,e){super(t,"not-in",e),this.keys=oo("not-in",e)}matches(t){return!this.keys.some((e=>e.isEqual(t.key)))}}function oo(t,e){var n;return((null===(n=e.arrayValue)||void 0===n?void 0:n.values)||[]).map((t=>ai.fromName(t.referenceValue)))}class ao extends Ji{constructor(t,e){super(t,"array-contains",e)}matches(t){const e=t.data.field(this.field);return ji(e)&&Pi(e.arrayValue,this.value)}}class co extends Ji{constructor(t,e){super(t,"in",e)}matches(t){const e=t.data.field(this.field);return null!==e&&Pi(this.value.arrayValue,e)}}class uo extends Ji{constructor(t,e){super(t,"not-in",e)}matches(t){if(Pi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const e=t.data.field(this.field);return null!==e&&!Pi(this.value.arrayValue,e)}}class ho extends Ji{constructor(t,e){super(t,"array-contains-any",e)}matches(t){const e=t.data.field(this.field);return!(!ji(e)||!e.arrayValue.values)&&e.arrayValue.values.some((t=>Pi(this.value.arrayValue,t)))}}
|
|
751
|
+
/**
|
|
752
|
+
* @license
|
|
753
|
+
* Copyright 2022 Google LLC
|
|
754
|
+
*
|
|
755
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
756
|
+
* you may not use this file except in compliance with the License.
|
|
757
|
+
* You may obtain a copy of the License at
|
|
758
|
+
*
|
|
759
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
760
|
+
*
|
|
761
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
762
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
763
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
764
|
+
* See the License for the specific language governing permissions and
|
|
765
|
+
* limitations under the License.
|
|
766
|
+
*/class lo{constructor(t,e="asc"){this.field=t,this.dir=e}}function fo(t,e){return t.dir===e.dir&&t.field.isEqual(e.field)}
|
|
767
|
+
/**
|
|
768
|
+
* @license
|
|
769
|
+
* Copyright 2017 Google LLC
|
|
770
|
+
*
|
|
771
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
772
|
+
* you may not use this file except in compliance with the License.
|
|
773
|
+
* You may obtain a copy of the License at
|
|
774
|
+
*
|
|
775
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
776
|
+
*
|
|
777
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
778
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
779
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
780
|
+
* See the License for the specific language governing permissions and
|
|
781
|
+
* limitations under the License.
|
|
782
|
+
*/class po{constructor(t,e){this.comparator=t,this.root=e||mo.EMPTY}insert(t,e){return new po(this.comparator,this.root.insert(t,e,this.comparator).copy(null,null,mo.BLACK,null,null))}remove(t){return new po(this.comparator,this.root.remove(t,this.comparator).copy(null,null,mo.BLACK,null,null))}get(t){let e=this.root;for(;!e.isEmpty();){const n=this.comparator(t,e.key);if(0===n)return e.value;n<0?e=e.left:n>0&&(e=e.right)}return null}indexOf(t){let e=0,n=this.root;for(;!n.isEmpty();){const r=this.comparator(t,n.key);if(0===r)return e+n.left.size;r<0?n=n.left:(e+=n.left.size+1,n=n.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(t){return this.root.inorderTraversal(t)}forEach(t){this.inorderTraversal(((e,n)=>(t(e,n),!1)))}toString(){const t=[];return this.inorderTraversal(((e,n)=>(t.push(`${e}:${n}`),!1))),`{${t.join(", ")}}`}reverseTraversal(t){return this.root.reverseTraversal(t)}getIterator(){return new go(this.root,null,this.comparator,!1)}getIteratorFrom(t){return new go(this.root,t,this.comparator,!1)}getReverseIterator(){return new go(this.root,null,this.comparator,!0)}getReverseIteratorFrom(t){return new go(this.root,t,this.comparator,!0)}}class go{constructor(t,e,n,r){this.isReverse=r,this.nodeStack=[];let s=1;for(;!t.isEmpty();)if(s=e?n(t.key,e):1,e&&r&&(s*=-1),s<0)t=this.isReverse?t.left:t.right;else{if(0===s){this.nodeStack.push(t);break}this.nodeStack.push(t),t=this.isReverse?t.right:t.left}}getNext(){let t=this.nodeStack.pop();const e={key:t.key,value:t.value};if(this.isReverse)for(t=t.left;!t.isEmpty();)this.nodeStack.push(t),t=t.right;else for(t=t.right;!t.isEmpty();)this.nodeStack.push(t),t=t.left;return e}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const t=this.nodeStack[this.nodeStack.length-1];return{key:t.key,value:t.value}}}class mo{constructor(t,e,n,r,s){this.key=t,this.value=e,this.color=null!=n?n:mo.RED,this.left=null!=r?r:mo.EMPTY,this.right=null!=s?s:mo.EMPTY,this.size=this.left.size+1+this.right.size}copy(t,e,n,r,s){return new mo(null!=t?t:this.key,null!=e?e:this.value,null!=n?n:this.color,null!=r?r:this.left,null!=s?s:this.right)}isEmpty(){return!1}inorderTraversal(t){return this.left.inorderTraversal(t)||t(this.key,this.value)||this.right.inorderTraversal(t)}reverseTraversal(t){return this.right.reverseTraversal(t)||t(this.key,this.value)||this.left.reverseTraversal(t)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(t,e,n){let r=this;const s=n(t,r.key);return r=s<0?r.copy(null,null,null,r.left.insert(t,e,n),null):0===s?r.copy(null,e,null,null,null):r.copy(null,null,null,null,r.right.insert(t,e,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return mo.EMPTY;let t=this;return t.left.isRed()||t.left.left.isRed()||(t=t.moveRedLeft()),t=t.copy(null,null,null,t.left.removeMin(),null),t.fixUp()}remove(t,e){let n,r=this;if(e(t,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(t,e),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===e(t,r.key)){if(r.right.isEmpty())return mo.EMPTY;n=r.right.min(),r=r.copy(n.key,n.value,null,null,r.right.removeMin())}r=r.copy(null,null,null,null,r.right.remove(t,e))}return r.fixUp()}isRed(){return this.color}fixUp(){let t=this;return t.right.isRed()&&!t.left.isRed()&&(t=t.rotateLeft()),t.left.isRed()&&t.left.left.isRed()&&(t=t.rotateRight()),t.left.isRed()&&t.right.isRed()&&(t=t.colorFlip()),t}moveRedLeft(){let t=this.colorFlip();return t.right.left.isRed()&&(t=t.copy(null,null,null,null,t.right.rotateRight()),t=t.rotateLeft(),t=t.colorFlip()),t}moveRedRight(){let t=this.colorFlip();return t.left.left.isRed()&&(t=t.rotateRight(),t=t.colorFlip()),t}rotateLeft(){const t=this.copy(null,null,mo.RED,null,this.right.left);return this.right.copy(null,null,this.color,t,null)}rotateRight(){const t=this.copy(null,null,mo.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,t)}colorFlip(){const t=this.left.copy(null,null,!this.left.color,null,null),e=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,t,e)}checkMaxDepth(){const t=this.check();return Math.pow(2,t)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw Us();if(this.right.isRed())throw Us();const t=this.left.check();if(t!==this.right.check())throw Us();return t+(this.isRed()?0:1)}}mo.EMPTY=null,mo.RED=!0,mo.BLACK=!1,mo.EMPTY=new class{constructor(){this.size=0}get key(){throw Us()}get value(){throw Us()}get color(){throw Us()}get left(){throw Us()}get right(){throw Us()}copy(t,e,n,r,s){return this}insert(t,e,n){return new mo(t,e)}remove(t,e){return this}isEmpty(){return!0}inorderTraversal(t){return!1}reverseTraversal(t){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};
|
|
783
|
+
/**
|
|
784
|
+
* @license
|
|
785
|
+
* Copyright 2017 Google LLC
|
|
786
|
+
*
|
|
787
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
788
|
+
* you may not use this file except in compliance with the License.
|
|
789
|
+
* You may obtain a copy of the License at
|
|
790
|
+
*
|
|
791
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
792
|
+
*
|
|
793
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
794
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
795
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
796
|
+
* See the License for the specific language governing permissions and
|
|
797
|
+
* limitations under the License.
|
|
798
|
+
*/
|
|
799
|
+
class yo{constructor(t){this.comparator=t,this.data=new po(this.comparator)}has(t){return null!==this.data.get(t)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(t){return this.data.indexOf(t)}forEach(t){this.data.inorderTraversal(((e,n)=>(t(e),!1)))}forEachInRange(t,e){const n=this.data.getIteratorFrom(t[0]);for(;n.hasNext();){const r=n.getNext();if(this.comparator(r.key,t[1])>=0)return;e(r.key)}}forEachWhile(t,e){let n;for(n=void 0!==e?this.data.getIteratorFrom(e):this.data.getIterator();n.hasNext();)if(!t(n.getNext().key))return}firstAfterOrEqual(t){const e=this.data.getIteratorFrom(t);return e.hasNext()?e.getNext().key:null}getIterator(){return new vo(this.data.getIterator())}getIteratorFrom(t){return new vo(this.data.getIteratorFrom(t))}add(t){return this.copy(this.data.remove(t).insert(t,!0))}delete(t){return this.has(t)?this.copy(this.data.remove(t)):this}isEmpty(){return this.data.isEmpty()}unionWith(t){let e=this;return e.size<t.size&&(e=t,t=this),t.forEach((t=>{e=e.add(t)})),e}isEqual(t){if(!(t instanceof yo))return!1;if(this.size!==t.size)return!1;const e=this.data.getIterator(),n=t.data.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(0!==this.comparator(t,r))return!1}return!0}toArray(){const t=[];return this.forEach((e=>{t.push(e)})),t}toString(){const t=[];return this.forEach((e=>t.push(e))),"SortedSet("+t.toString()+")"}copy(t){const e=new yo(this.comparator);return e.data=t,e}}class vo{constructor(t){this.iter=t}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}
|
|
800
|
+
/**
|
|
801
|
+
* @license
|
|
802
|
+
* Copyright 2020 Google LLC
|
|
803
|
+
*
|
|
804
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
805
|
+
* you may not use this file except in compliance with the License.
|
|
806
|
+
* You may obtain a copy of the License at
|
|
807
|
+
*
|
|
808
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
809
|
+
*
|
|
810
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
811
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
812
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
813
|
+
* See the License for the specific language governing permissions and
|
|
814
|
+
* limitations under the License.
|
|
815
|
+
*/class wo{constructor(t){this.fields=t,t.sort(oi.comparator)}static empty(){return new wo([])}unionWith(t){let e=new yo(oi.comparator);for(const t of this.fields)e=e.add(t);for(const n of t)e=e.add(n);return new wo(e.toArray())}covers(t){for(const e of this.fields)if(e.isPrefixOf(t))return!0;return!1}isEqual(t){return ti(this.fields,t.fields,((t,e)=>t.isEqual(e)))}}
|
|
816
|
+
/**
|
|
817
|
+
* @license
|
|
818
|
+
* Copyright 2017 Google LLC
|
|
819
|
+
*
|
|
820
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
821
|
+
* you may not use this file except in compliance with the License.
|
|
822
|
+
* You may obtain a copy of the License at
|
|
823
|
+
*
|
|
824
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
825
|
+
*
|
|
826
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
827
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
828
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
829
|
+
* See the License for the specific language governing permissions and
|
|
830
|
+
* limitations under the License.
|
|
831
|
+
*/class Io{constructor(t){this.value=t}static empty(){return new Io({mapValue:{}})}field(t){if(t.isEmpty())return this.value;{let e=this.value;for(let n=0;n<t.length-1;++n)if(e=(e.mapValue.fields||{})[t.get(n)],!$i(e))return null;return e=(e.mapValue.fields||{})[t.lastSegment()],e||null}}set(t,e){this.getFieldsMap(t.popLast())[t.lastSegment()]=Ki(e)}setAll(t){let e=oi.emptyPath(),n={},r=[];t.forEach(((t,s)=>{if(!e.isImmediateParentOf(s)){const t=this.getFieldsMap(e);this.applyChanges(t,n,r),n={},r=[],e=s.popLast()}t?n[s.lastSegment()]=Ki(t):r.push(s.lastSegment())}));const s=this.getFieldsMap(e);this.applyChanges(s,n,r)}delete(t){const e=this.field(t.popLast());$i(e)&&e.mapValue.fields&&delete e.mapValue.fields[t.lastSegment()]}isEqual(t){return Li(this.value,t.value)}getFieldsMap(t){let e=this.value;e.mapValue.fields||(e.mapValue={fields:{}});for(let n=0;n<t.length;++n){let r=e.mapValue.fields[t.get(n)];$i(r)&&r.mapValue.fields||(r={mapValue:{fields:{}}},e.mapValue.fields[t.get(n)]=r),e=r}return e.mapValue.fields}applyChanges(t,e,n){wi(e,((e,n)=>t[e]=n));for(const e of n)delete t[e]}clone(){return new Io(Ki(this.value))}}
|
|
832
|
+
/**
|
|
833
|
+
* @license
|
|
834
|
+
* Copyright 2017 Google LLC
|
|
835
|
+
*
|
|
836
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
837
|
+
* you may not use this file except in compliance with the License.
|
|
838
|
+
* You may obtain a copy of the License at
|
|
839
|
+
*
|
|
840
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
841
|
+
*
|
|
842
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
843
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
844
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
845
|
+
* See the License for the specific language governing permissions and
|
|
846
|
+
* limitations under the License.
|
|
847
|
+
*/class bo{constructor(t,e,n,r,s,i,o){this.key=t,this.documentType=e,this.version=n,this.readTime=r,this.createTime=s,this.data=i,this.documentState=o}static newInvalidDocument(t){return new bo(t,0,ni.min(),ni.min(),ni.min(),Io.empty(),0)}static newFoundDocument(t,e,n,r){return new bo(t,1,e,ni.min(),n,r,0)}static newNoDocument(t,e){return new bo(t,2,e,ni.min(),ni.min(),Io.empty(),0)}static newUnknownDocument(t,e){return new bo(t,3,e,ni.min(),ni.min(),Io.empty(),2)}convertToFoundDocument(t,e){return!this.createTime.isEqual(ni.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=t),this.version=t,this.documentType=1,this.data=e,this.documentState=0,this}convertToNoDocument(t){return this.version=t,this.documentType=2,this.data=Io.empty(),this.documentState=0,this}convertToUnknownDocument(t){return this.version=t,this.documentType=3,this.data=Io.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=ni.min(),this}setReadTime(t){return this.readTime=t,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(t){return t instanceof bo&&this.key.isEqual(t.key)&&this.version.isEqual(t.version)&&this.documentType===t.documentType&&this.documentState===t.documentState&&this.data.isEqual(t.data)}mutableCopy(){return new bo(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}
|
|
848
|
+
/**
|
|
849
|
+
* @license
|
|
850
|
+
* Copyright 2019 Google LLC
|
|
851
|
+
*
|
|
852
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
853
|
+
* you may not use this file except in compliance with the License.
|
|
854
|
+
* You may obtain a copy of the License at
|
|
855
|
+
*
|
|
856
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
857
|
+
*
|
|
858
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
859
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
860
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
861
|
+
* See the License for the specific language governing permissions and
|
|
862
|
+
* limitations under the License.
|
|
863
|
+
*/class Eo{constructor(t,e=null,n=[],r=[],s=null,i=null,o=null){this.path=t,this.collectionGroup=e,this.orderBy=n,this.filters=r,this.limit=s,this.startAt=i,this.endAt=o,this.ft=null}}function _o(t,e=null,n=[],r=[],s=null,i=null,o=null){return new Eo(t,e,n,r,s,i,o)}function To(t){const e=Vs(t);if(null===e.ft){let t=e.path.canonicalString();null!==e.collectionGroup&&(t+="|cg:"+e.collectionGroup),t+="|f:",t+=e.filters.map((t=>to(t))).join(","),t+="|ob:",t+=e.orderBy.map((t=>function(t){return t.field.canonicalString()+t.dir}(t))).join(","),bi(e.limit)||(t+="|l:",t+=e.limit),e.startAt&&(t+="|lb:",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map((t=>Ui(t))).join(",")),e.endAt&&(t+="|ub:",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map((t=>Ui(t))).join(",")),e.ft=t}return e.ft}function So(t,e){if(t.limit!==e.limit)return!1;if(t.orderBy.length!==e.orderBy.length)return!1;for(let n=0;n<t.orderBy.length;n++)if(!fo(t.orderBy[n],e.orderBy[n]))return!1;if(t.filters.length!==e.filters.length)return!1;for(let n=0;n<t.filters.length;n++)if(!eo(t.filters[n],e.filters[n]))return!1;return t.collectionGroup===e.collectionGroup&&!!t.path.isEqual(e.path)&&!!Wi(t.startAt,e.startAt)&&Wi(t.endAt,e.endAt)}function Ao(t){return ai.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}
|
|
864
|
+
/**
|
|
865
|
+
* @license
|
|
866
|
+
* Copyright 2017 Google LLC
|
|
867
|
+
*
|
|
868
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
869
|
+
* you may not use this file except in compliance with the License.
|
|
870
|
+
* You may obtain a copy of the License at
|
|
871
|
+
*
|
|
872
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
873
|
+
*
|
|
874
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
875
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
876
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
877
|
+
* See the License for the specific language governing permissions and
|
|
878
|
+
* limitations under the License.
|
|
879
|
+
*/class Co{constructor(t,e=null,n=[],r=[],s=null,i="F",o=null,a=null){this.path=t,this.collectionGroup=e,this.explicitOrderBy=n,this.filters=r,this.limit=s,this.limitType=i,this.startAt=o,this.endAt=a,this.dt=null,this._t=null,this.startAt,this.endAt}}function ko(t){return new Co(t)}function No(t){return 0===t.filters.length&&null===t.limit&&null==t.startAt&&null==t.endAt&&(0===t.explicitOrderBy.length||1===t.explicitOrderBy.length&&t.explicitOrderBy[0].field.isKeyField())}function Do(t){return t.explicitOrderBy.length>0?t.explicitOrderBy[0].field:null}function Ro(t){for(const e of t.filters){const t=e.getFirstInequalityField();if(null!==t)return t}return null}function Oo(t){return null!==t.collectionGroup}function Lo(t){const e=Vs(t);if(null===e.dt){e.dt=[];const t=Ro(e),n=Do(e);if(null!==t&&null===n)t.isKeyField()||e.dt.push(new lo(t)),e.dt.push(new lo(oi.keyField(),"asc"));else{let t=!1;for(const n of e.explicitOrderBy)e.dt.push(n),n.field.isKeyField()&&(t=!0);if(!t){const t=e.explicitOrderBy.length>0?e.explicitOrderBy[e.explicitOrderBy.length-1].dir:"asc";e.dt.push(new lo(oi.keyField(),t))}}}return e.dt}function Po(t){const e=Vs(t);if(!e._t)if("F"===e.limitType)e._t=_o(e.path,e.collectionGroup,Lo(e),e.filters,e.limit,e.startAt,e.endAt);else{const t=[];for(const n of Lo(e)){const e="desc"===n.dir?"asc":"desc";t.push(new lo(n.field,e))}const n=e.endAt?new Hi(e.endAt.position,e.endAt.inclusive):null,r=e.startAt?new Hi(e.startAt.position,e.startAt.inclusive):null;e._t=_o(e.path,e.collectionGroup,t,e.filters,e.limit,n,r)}return e._t}function Mo(t,e){e.getFirstInequalityField(),Ro(t);const n=t.filters.concat([e]);return new Co(t.path,t.collectionGroup,t.explicitOrderBy.slice(),n,t.limit,t.limitType,t.startAt,t.endAt)}function xo(t,e,n){return new Co(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),e,n,t.startAt,t.endAt)}function Uo(t,e){return So(Po(t),Po(e))&&t.limitType===e.limitType}function Fo(t){return`${To(Po(t))}|lt:${t.limitType}`}function Vo(t){return`Query(target=${function(t){let e=t.path.canonicalString();return null!==t.collectionGroup&&(e+=" collectionGroup="+t.collectionGroup),t.filters.length>0&&(e+=`, filters: [${t.filters.map((t=>no(t))).join(", ")}]`),bi(t.limit)||(e+=", limit: "+t.limit),t.orderBy.length>0&&(e+=`, orderBy: [${t.orderBy.map((t=>function(t){return`${t.field.canonicalString()} (${t.dir})`}(t))).join(", ")}]`),t.startAt&&(e+=", startAt: ",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map((t=>Ui(t))).join(",")),t.endAt&&(e+=", endAt: ",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map((t=>Ui(t))).join(",")),`Target(${e})`}(Po(t))}; limitType=${t.limitType})`}function qo(t,e){return e.isFoundDocument()&&function(t,e){const n=e.key.path;return null!==t.collectionGroup?e.key.hasCollectionId(t.collectionGroup)&&t.path.isPrefixOf(n):ai.isDocumentKey(t.path)?t.path.isEqual(n):t.path.isImmediateParentOf(n)}(t,e)&&function(t,e){for(const n of Lo(t))if(!n.field.isKeyField()&&null===e.data.field(n.field))return!1;return!0}(t,e)&&function(t,e){for(const n of t.filters)if(!n.matches(e))return!1;return!0}(t,e)&&function(t,e){return!(t.startAt&&!function(t,e,n){const r=Gi(t,e,n);return t.inclusive?r<=0:r<0}(t.startAt,Lo(t),e))&&!(t.endAt&&!function(t,e,n){const r=Gi(t,e,n);return t.inclusive?r>=0:r>0}(t.endAt,Lo(t),e))}(t,e)}function jo(t){return(e,n)=>{let r=!1;for(const s of Lo(t)){const t=Bo(s,e,n);if(0!==t)return t;r=r||s.field.isKeyField()}return 0}}function Bo(t,e,n){const r=t.field.isKeyField()?ai.comparator(e.key,n.key):function(t,e,n){const r=e.data.field(t),s=n.data.field(t);return null!==r&&null!==s?Mi(r,s):Us()}(t.field,e,n);switch(t.dir){case"asc":return r;case"desc":return-1*r;default:return Us()}}
|
|
880
|
+
/**
|
|
881
|
+
* @license
|
|
882
|
+
* Copyright 2020 Google LLC
|
|
883
|
+
*
|
|
884
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
885
|
+
* you may not use this file except in compliance with the License.
|
|
886
|
+
* You may obtain a copy of the License at
|
|
887
|
+
*
|
|
888
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
889
|
+
*
|
|
890
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
891
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
892
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
893
|
+
* See the License for the specific language governing permissions and
|
|
894
|
+
* limitations under the License.
|
|
895
|
+
*/function zo(t,e){if(t.wt){if(isNaN(e))return{doubleValue:"NaN"};if(e===1/0)return{doubleValue:"Infinity"};if(e===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Ei(e)?"-0":e}}function $o(t){return{integerValue:""+t}}function Ko(t,e){return function(t){return"number"==typeof t&&Number.isInteger(t)&&!Ei(t)&&t<=Number.MAX_SAFE_INTEGER&&t>=Number.MIN_SAFE_INTEGER}(e)?$o(e):zo(t,e)}
|
|
896
|
+
/**
|
|
897
|
+
* @license
|
|
898
|
+
* Copyright 2018 Google LLC
|
|
899
|
+
*
|
|
900
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
901
|
+
* you may not use this file except in compliance with the License.
|
|
902
|
+
* You may obtain a copy of the License at
|
|
903
|
+
*
|
|
904
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
905
|
+
*
|
|
906
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
907
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
908
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
909
|
+
* See the License for the specific language governing permissions and
|
|
910
|
+
* limitations under the License.
|
|
911
|
+
*/class Ho{constructor(){this._=void 0}}function Go(t,e,n){return t instanceof Qo?function(t,e){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:t.seconds,nanos:t.nanoseconds}}}};return e&&(n.fields.__previous_value__=e),{mapValue:n}}(n,e):t instanceof Jo?Xo(t,e):t instanceof Yo?Zo(t,e):function(t,e){const n=function(t,e){return t instanceof ta?qi(n=e)||function(t){return!!t&&"doubleValue"in t}(n)?e:{integerValue:0}:null;var n}(t,e),r=ea(n)+ea(t.gt);return qi(n)&&qi(t.gt)?$o(r):zo(t.yt,r)}(t,e)}function Wo(t,e,n){return t instanceof Jo?Xo(t,e):t instanceof Yo?Zo(t,e):n}class Qo extends Ho{}class Jo extends Ho{constructor(t){super(),this.elements=t}}function Xo(t,e){const n=na(e);for(const e of t.elements)n.some((t=>Li(t,e)))||n.push(e);return{arrayValue:{values:n}}}class Yo extends Ho{constructor(t){super(),this.elements=t}}function Zo(t,e){let n=na(e);for(const e of t.elements)n=n.filter((t=>!Li(t,e)));return{arrayValue:{values:n}}}class ta extends Ho{constructor(t,e){super(),this.yt=t,this.gt=e}}function ea(t){return Ai(t.integerValue||t.doubleValue)}function na(t){return ji(t)&&t.arrayValue.values?t.arrayValue.values.slice():[]}class ra{constructor(t,e){this.updateTime=t,this.exists=e}static none(){return new ra}static exists(t){return new ra(void 0,t)}static updateTime(t){return new ra(t)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(t){return this.exists===t.exists&&(this.updateTime?!!t.updateTime&&this.updateTime.isEqual(t.updateTime):!t.updateTime)}}function sa(t,e){return void 0!==t.updateTime?e.isFoundDocument()&&e.version.isEqual(t.updateTime):void 0===t.exists||t.exists===e.isFoundDocument()}class ia{}function oa(t,e){if(!t.hasLocalMutations||e&&0===e.fields.length)return null;if(null===e)return t.isNoDocument()?new ga(t.key,ra.none()):new ha(t.key,t.data,ra.none());{const n=t.data,r=Io.empty();let s=new yo(oi.comparator);for(let t of e.fields)if(!s.has(t)){let e=n.field(t);null===e&&t.length>1&&(t=t.popLast(),e=n.field(t)),null===e?r.delete(t):r.set(t,e),s=s.add(t)}return new la(t.key,r,new wo(s.toArray()),ra.none())}}function aa(t,e,n){t instanceof ha?function(t,e,n){const r=t.value.clone(),s=fa(t.fieldTransforms,e,n.transformResults);r.setAll(s),e.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(t,e,n):t instanceof la?function(t,e,n){if(!sa(t.precondition,e))return void e.convertToUnknownDocument(n.version);const r=fa(t.fieldTransforms,e,n.transformResults),s=e.data;s.setAll(da(t)),s.setAll(r),e.convertToFoundDocument(n.version,s).setHasCommittedMutations()}(t,e,n):function(t,e,n){e.convertToNoDocument(n.version).setHasCommittedMutations()}(0,e,n)}function ca(t,e,n,r){return t instanceof ha?function(t,e,n,r){if(!sa(t.precondition,e))return n;const s=t.value.clone(),i=pa(t.fieldTransforms,r,e);return s.setAll(i),e.convertToFoundDocument(e.version,s).setHasLocalMutations(),null}(t,e,n,r):t instanceof la?function(t,e,n,r){if(!sa(t.precondition,e))return n;const s=pa(t.fieldTransforms,r,e),i=e.data;return i.setAll(da(t)),i.setAll(s),e.convertToFoundDocument(e.version,i).setHasLocalMutations(),null===n?null:n.unionWith(t.fieldMask.fields).unionWith(t.fieldTransforms.map((t=>t.field)))}(t,e,n,r):function(t,e,n){return sa(t.precondition,e)?(e.convertToNoDocument(e.version).setHasLocalMutations(),null):n}(t,e,n)}function ua(t,e){return t.type===e.type&&!!t.key.isEqual(e.key)&&!!t.precondition.isEqual(e.precondition)&&!!function(t,e){return void 0===t&&void 0===e||!(!t||!e)&&ti(t,e,((t,e)=>function(t,e){return t.field.isEqual(e.field)&&function(t,e){return t instanceof Jo&&e instanceof Jo||t instanceof Yo&&e instanceof Yo?ti(t.elements,e.elements,Li):t instanceof ta&&e instanceof ta?Li(t.gt,e.gt):t instanceof Qo&&e instanceof Qo}(t.transform,e.transform)}(t,e)))}(t.fieldTransforms,e.fieldTransforms)&&(0===t.type?t.value.isEqual(e.value):1!==t.type||t.data.isEqual(e.data)&&t.fieldMask.isEqual(e.fieldMask))}class ha extends ia{constructor(t,e,n,r=[]){super(),this.key=t,this.value=e,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class la extends ia{constructor(t,e,n,r,s=[]){super(),this.key=t,this.data=e,this.fieldMask=n,this.precondition=r,this.fieldTransforms=s,this.type=1}getFieldMask(){return this.fieldMask}}function da(t){const e=new Map;return t.fieldMask.fields.forEach((n=>{if(!n.isEmpty()){const r=t.data.field(n);e.set(n,r)}})),e}function fa(t,e,n){const r=new Map;Fs(t.length===n.length);for(let s=0;s<n.length;s++){const i=t[s],o=i.transform,a=e.data.field(i.field);r.set(i.field,Wo(o,a,n[s]))}return r}function pa(t,e,n){const r=new Map;for(const s of t){const t=s.transform,i=n.data.field(s.field);r.set(s.field,Go(t,i,e))}return r}class ga extends ia{constructor(t,e){super(),this.key=t,this.precondition=e,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}
|
|
912
|
+
/**
|
|
913
|
+
* @license
|
|
914
|
+
* Copyright 2017 Google LLC
|
|
915
|
+
*
|
|
916
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
917
|
+
* you may not use this file except in compliance with the License.
|
|
918
|
+
* You may obtain a copy of the License at
|
|
919
|
+
*
|
|
920
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
921
|
+
*
|
|
922
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
923
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
924
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
925
|
+
* See the License for the specific language governing permissions and
|
|
926
|
+
* limitations under the License.
|
|
927
|
+
*/class ma{constructor(t){this.count=t}}
|
|
928
|
+
/**
|
|
929
|
+
* @license
|
|
930
|
+
* Copyright 2017 Google LLC
|
|
931
|
+
*
|
|
932
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
933
|
+
* you may not use this file except in compliance with the License.
|
|
934
|
+
* You may obtain a copy of the License at
|
|
935
|
+
*
|
|
936
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
937
|
+
*
|
|
938
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
939
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
940
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
941
|
+
* See the License for the specific language governing permissions and
|
|
942
|
+
* limitations under the License.
|
|
943
|
+
*/var ya,va;function wa(t){if(void 0===t)return Ps("GRPC error has no .code"),qs.UNKNOWN;switch(t){case ya.OK:return qs.OK;case ya.CANCELLED:return qs.CANCELLED;case ya.UNKNOWN:return qs.UNKNOWN;case ya.DEADLINE_EXCEEDED:return qs.DEADLINE_EXCEEDED;case ya.RESOURCE_EXHAUSTED:return qs.RESOURCE_EXHAUSTED;case ya.INTERNAL:return qs.INTERNAL;case ya.UNAVAILABLE:return qs.UNAVAILABLE;case ya.UNAUTHENTICATED:return qs.UNAUTHENTICATED;case ya.INVALID_ARGUMENT:return qs.INVALID_ARGUMENT;case ya.NOT_FOUND:return qs.NOT_FOUND;case ya.ALREADY_EXISTS:return qs.ALREADY_EXISTS;case ya.PERMISSION_DENIED:return qs.PERMISSION_DENIED;case ya.FAILED_PRECONDITION:return qs.FAILED_PRECONDITION;case ya.ABORTED:return qs.ABORTED;case ya.OUT_OF_RANGE:return qs.OUT_OF_RANGE;case ya.UNIMPLEMENTED:return qs.UNIMPLEMENTED;case ya.DATA_LOSS:return qs.DATA_LOSS;default:return Us()}}(va=ya||(ya={}))[va.OK=0]="OK",va[va.CANCELLED=1]="CANCELLED",va[va.UNKNOWN=2]="UNKNOWN",va[va.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",va[va.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",va[va.NOT_FOUND=5]="NOT_FOUND",va[va.ALREADY_EXISTS=6]="ALREADY_EXISTS",va[va.PERMISSION_DENIED=7]="PERMISSION_DENIED",va[va.UNAUTHENTICATED=16]="UNAUTHENTICATED",va[va.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",va[va.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",va[va.ABORTED=10]="ABORTED",va[va.OUT_OF_RANGE=11]="OUT_OF_RANGE",va[va.UNIMPLEMENTED=12]="UNIMPLEMENTED",va[va.INTERNAL=13]="INTERNAL",va[va.UNAVAILABLE=14]="UNAVAILABLE",va[va.DATA_LOSS=15]="DATA_LOSS";
|
|
944
|
+
/**
|
|
945
|
+
* @license
|
|
946
|
+
* Copyright 2017 Google LLC
|
|
947
|
+
*
|
|
948
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
949
|
+
* you may not use this file except in compliance with the License.
|
|
950
|
+
* You may obtain a copy of the License at
|
|
951
|
+
*
|
|
952
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
953
|
+
*
|
|
954
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
955
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
956
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
957
|
+
* See the License for the specific language governing permissions and
|
|
958
|
+
* limitations under the License.
|
|
959
|
+
*/
|
|
960
|
+
class Ia{constructor(t,e){this.mapKeyFn=t,this.equalsFn=e,this.inner={},this.innerSize=0}get(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0!==n)for(const[e,r]of n)if(this.equalsFn(e,t))return r}has(t){return void 0!==this.get(t)}set(t,e){const n=this.mapKeyFn(t),r=this.inner[n];if(void 0===r)return this.inner[n]=[[t,e]],void this.innerSize++;for(let n=0;n<r.length;n++)if(this.equalsFn(r[n][0],t))return void(r[n]=[t,e]);r.push([t,e]),this.innerSize++}delete(t){const e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)return!1;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],t))return 1===n.length?delete this.inner[e]:n.splice(r,1),this.innerSize--,!0;return!1}forEach(t){wi(this.inner,((e,n)=>{for(const[e,r]of n)t(e,r)}))}isEmpty(){return Ii(this.inner)}size(){return this.innerSize}}
|
|
961
|
+
/**
|
|
962
|
+
* @license
|
|
963
|
+
* Copyright 2017 Google LLC
|
|
964
|
+
*
|
|
965
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
966
|
+
* you may not use this file except in compliance with the License.
|
|
967
|
+
* You may obtain a copy of the License at
|
|
968
|
+
*
|
|
969
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
970
|
+
*
|
|
971
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
972
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
973
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
974
|
+
* See the License for the specific language governing permissions and
|
|
975
|
+
* limitations under the License.
|
|
976
|
+
*/const ba=new po(ai.comparator);function Ea(){return ba}const _a=new po(ai.comparator);function Ta(...t){let e=_a;for(const n of t)e=e.insert(n.key,n);return e}function Sa(t){let e=_a;return t.forEach(((t,n)=>e=e.insert(t,n.overlayedDocument))),e}function Aa(){return ka()}function Ca(){return ka()}function ka(){return new Ia((t=>t.toString()),((t,e)=>t.isEqual(e)))}new po(ai.comparator);const Na=new yo(ai.comparator);function Da(...t){let e=Na;for(const n of t)e=e.add(n);return e}const Ra=new yo(Zs);function Oa(){return Ra}
|
|
977
|
+
/**
|
|
978
|
+
* @license
|
|
979
|
+
* Copyright 2017 Google LLC
|
|
980
|
+
*
|
|
981
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
982
|
+
* you may not use this file except in compliance with the License.
|
|
983
|
+
* You may obtain a copy of the License at
|
|
984
|
+
*
|
|
985
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
986
|
+
*
|
|
987
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
988
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
989
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
990
|
+
* See the License for the specific language governing permissions and
|
|
991
|
+
* limitations under the License.
|
|
992
|
+
*/class La{constructor(t,e,n,r,s){this.snapshotVersion=t,this.targetChanges=e,this.targetMismatches=n,this.documentUpdates=r,this.resolvedLimboDocuments=s}static createSynthesizedRemoteEventForCurrentChange(t,e,n){const r=new Map;return r.set(t,Pa.createSynthesizedTargetChangeForCurrentChange(t,e,n)),new La(ni.min(),r,Oa(),Ea(),Da())}}class Pa{constructor(t,e,n,r,s){this.resumeToken=t,this.current=e,this.addedDocuments=n,this.modifiedDocuments=r,this.removedDocuments=s}static createSynthesizedTargetChangeForCurrentChange(t,e,n){return new Pa(n,e,Da(),Da(),Da())}}
|
|
993
|
+
/**
|
|
994
|
+
* @license
|
|
995
|
+
* Copyright 2017 Google LLC
|
|
996
|
+
*
|
|
997
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
998
|
+
* you may not use this file except in compliance with the License.
|
|
999
|
+
* You may obtain a copy of the License at
|
|
1000
|
+
*
|
|
1001
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1002
|
+
*
|
|
1003
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1004
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1005
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1006
|
+
* See the License for the specific language governing permissions and
|
|
1007
|
+
* limitations under the License.
|
|
1008
|
+
*/class Ma{constructor(t,e,n,r){this.It=t,this.removedTargetIds=e,this.key=n,this.Tt=r}}class xa{constructor(t,e){this.targetId=t,this.Et=e}}class Ua{constructor(t,e,n=_i.EMPTY_BYTE_STRING,r=null){this.state=t,this.targetIds=e,this.resumeToken=n,this.cause=r}}class Fa{constructor(){this.At=0,this.Rt=ja(),this.bt=_i.EMPTY_BYTE_STRING,this.Pt=!1,this.vt=!0}get current(){return this.Pt}get resumeToken(){return this.bt}get Vt(){return 0!==this.At}get St(){return this.vt}Dt(t){t.approximateByteSize()>0&&(this.vt=!0,this.bt=t)}Ct(){let t=Da(),e=Da(),n=Da();return this.Rt.forEach(((r,s)=>{switch(s){case 0:t=t.add(r);break;case 2:e=e.add(r);break;case 1:n=n.add(r);break;default:Us()}})),new Pa(this.bt,this.Pt,t,e,n)}xt(){this.vt=!1,this.Rt=ja()}Nt(t,e){this.vt=!0,this.Rt=this.Rt.insert(t,e)}kt(t){this.vt=!0,this.Rt=this.Rt.remove(t)}Ot(){this.At+=1}Mt(){this.At-=1}Ft(){this.vt=!0,this.Pt=!0}}class Va{constructor(t){this.$t=t,this.Bt=new Map,this.Lt=Ea(),this.qt=qa(),this.Ut=new yo(Zs)}Kt(t){for(const e of t.It)t.Tt&&t.Tt.isFoundDocument()?this.Gt(e,t.Tt):this.Qt(e,t.key,t.Tt);for(const e of t.removedTargetIds)this.Qt(e,t.key,t.Tt)}jt(t){this.forEachTarget(t,(e=>{const n=this.Wt(e);switch(t.state){case 0:this.zt(e)&&n.Dt(t.resumeToken);break;case 1:n.Mt(),n.Vt||n.xt(),n.Dt(t.resumeToken);break;case 2:n.Mt(),n.Vt||this.removeTarget(e);break;case 3:this.zt(e)&&(n.Ft(),n.Dt(t.resumeToken));break;case 4:this.zt(e)&&(this.Ht(e),n.Dt(t.resumeToken));break;default:Us()}}))}forEachTarget(t,e){t.targetIds.length>0?t.targetIds.forEach(e):this.Bt.forEach(((t,n)=>{this.zt(n)&&e(n)}))}Jt(t){const e=t.targetId,n=t.Et.count,r=this.Yt(e);if(r){const t=r.target;if(Ao(t))if(0===n){const n=new ai(t.path);this.Qt(e,n,bo.newNoDocument(n,ni.min()))}else Fs(1===n);else this.Xt(e)!==n&&(this.Ht(e),this.Ut=this.Ut.add(e))}}Zt(t){const e=new Map;this.Bt.forEach(((n,r)=>{const s=this.Yt(r);if(s){if(n.current&&Ao(s.target)){const e=new ai(s.target.path);null!==this.Lt.get(e)||this.te(r,e)||this.Qt(r,e,bo.newNoDocument(e,t))}n.St&&(e.set(r,n.Ct()),n.xt())}}));let n=Da();this.qt.forEach(((t,e)=>{let r=!0;e.forEachWhile((t=>{const e=this.Yt(t);return!e||2===e.purpose||(r=!1,!1)})),r&&(n=n.add(t))})),this.Lt.forEach(((e,n)=>n.setReadTime(t)));const r=new La(t,e,this.Ut,this.Lt,n);return this.Lt=Ea(),this.qt=qa(),this.Ut=new yo(Zs),r}Gt(t,e){if(!this.zt(t))return;const n=this.te(t,e.key)?2:0;this.Wt(t).Nt(e.key,n),this.Lt=this.Lt.insert(e.key,e),this.qt=this.qt.insert(e.key,this.ee(e.key).add(t))}Qt(t,e,n){if(!this.zt(t))return;const r=this.Wt(t);this.te(t,e)?r.Nt(e,1):r.kt(e),this.qt=this.qt.insert(e,this.ee(e).delete(t)),n&&(this.Lt=this.Lt.insert(e,n))}removeTarget(t){this.Bt.delete(t)}Xt(t){const e=this.Wt(t).Ct();return this.$t.getRemoteKeysForTarget(t).size+e.addedDocuments.size-e.removedDocuments.size}Ot(t){this.Wt(t).Ot()}Wt(t){let e=this.Bt.get(t);return e||(e=new Fa,this.Bt.set(t,e)),e}ee(t){let e=this.qt.get(t);return e||(e=new yo(Zs),this.qt=this.qt.insert(t,e)),e}zt(t){const e=null!==this.Yt(t);return e||Ls("WatchChangeAggregator","Detected inactive target",t),e}Yt(t){const e=this.Bt.get(t);return e&&e.Vt?null:this.$t.ne(t)}Ht(t){this.Bt.set(t,new Fa),this.$t.getRemoteKeysForTarget(t).forEach((e=>{this.Qt(t,e,null)}))}te(t,e){return this.$t.getRemoteKeysForTarget(t).has(e)}}function qa(){return new po(ai.comparator)}function ja(){return new po(ai.comparator)}
|
|
1009
|
+
/**
|
|
1010
|
+
* @license
|
|
1011
|
+
* Copyright 2017 Google LLC
|
|
1012
|
+
*
|
|
1013
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1014
|
+
* you may not use this file except in compliance with the License.
|
|
1015
|
+
* You may obtain a copy of the License at
|
|
1016
|
+
*
|
|
1017
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1018
|
+
*
|
|
1019
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1020
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1021
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1022
|
+
* See the License for the specific language governing permissions and
|
|
1023
|
+
* limitations under the License.
|
|
1024
|
+
*/const Ba={asc:"ASCENDING",desc:"DESCENDING"},za={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},$a={and:"AND",or:"OR"};class Ka{constructor(t,e){this.databaseId=t,this.wt=e}}function Ha(t,e){return t.wt?`${new Date(1e3*e.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+e.nanoseconds).slice(-9)}Z`:{seconds:""+e.seconds,nanos:e.nanoseconds}}function Ga(t,e){return t.wt?e.toBase64():e.toUint8Array()}function Wa(t){return Fs(!!t),ni.fromTimestamp(function(t){const e=Si(t);return new ei(e.seconds,e.nanos)}(t))}function Qa(t,e){return function(t){return new si(["projects",t.projectId,"databases",t.database])}(t).child("documents").child(e).canonicalString()}function Ja(t){const e=si.fromString(t);return Fs(lc(e)),e}function Xa(t,e){const n=Ja(e);if(n.get(1)!==t.databaseId.projectId)throw new js(qs.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+t.databaseId.projectId);if(n.get(3)!==t.databaseId.database)throw new js(qs.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+t.databaseId.database);return new ai(tc(n))}function Ya(t,e){return Qa(t.databaseId,e)}function Za(t){return new si(["projects",t.databaseId.projectId,"databases",t.databaseId.database]).canonicalString()}function tc(t){return Fs(t.length>4&&"documents"===t.get(4)),t.popFirst(5)}function ec(t,e){return{documents:[Ya(t,e.path)]}}function nc(t,e){const n={structuredQuery:{}},r=e.path;null!==e.collectionGroup?(n.parent=Ya(t,r),n.structuredQuery.from=[{collectionId:e.collectionGroup,allDescendants:!0}]):(n.parent=Ya(t,r.popLast()),n.structuredQuery.from=[{collectionId:r.lastSegment()}]);const s=function(t){if(0!==t.length)return hc(Xi.create(t,"and"))}(e.filters);s&&(n.structuredQuery.where=s);const i=function(t){if(0!==t.length)return t.map((t=>function(t){return{field:cc(t.field),direction:ic(t.dir)}}(t)))}(e.orderBy);i&&(n.structuredQuery.orderBy=i);const o=function(t,e){return t.wt||bi(e)?e:{value:e}}(t,e.limit);var a;return null!==o&&(n.structuredQuery.limit=o),e.startAt&&(n.structuredQuery.startAt={before:(a=e.startAt).inclusive,values:a.position}),e.endAt&&(n.structuredQuery.endAt=function(t){return{before:!t.inclusive,values:t.position}}(e.endAt)),n}function rc(t){let e=function(t){const e=Ja(t);return 4===e.length?si.emptyPath():tc(e)}(t.parent);const n=t.structuredQuery,r=n.from?n.from.length:0;let s=null;if(r>0){Fs(1===r);const t=n.from[0];t.allDescendants?s=t.collectionId:e=e.child(t.collectionId)}let i=[];n.where&&(i=function(t){const e=sc(t);return e instanceof Xi&&Zi(e)?e.getFilters():[e]}(n.where));let o=[];n.orderBy&&(o=n.orderBy.map((t=>function(t){return new lo(uc(t.field),function(t){switch(t){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(t.direction))}(t))));let a=null;n.limit&&(a=function(t){let e;return e="object"==typeof t?t.value:t,bi(e)?null:e}(n.limit));let c=null;n.startAt&&(c=function(t){const e=!!t.before,n=t.values||[];return new Hi(n,e)}(n.startAt));let u=null;return n.endAt&&(u=function(t){const e=!t.before,n=t.values||[];return new Hi(n,e)}(n.endAt)),function(t,e,n,r,s,i,o,a){return new Co(t,e,n,r,s,i,o,a)}(e,s,o,i,a,"F",c,u)}function sc(t){return void 0!==t.unaryFilter?function(t){switch(t.unaryFilter.op){case"IS_NAN":const e=uc(t.unaryFilter.field);return Ji.create(e,"==",{doubleValue:NaN});case"IS_NULL":const n=uc(t.unaryFilter.field);return Ji.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=uc(t.unaryFilter.field);return Ji.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const s=uc(t.unaryFilter.field);return Ji.create(s,"!=",{nullValue:"NULL_VALUE"});default:return Us()}}(t):void 0!==t.fieldFilter?function(t){return Ji.create(uc(t.fieldFilter.field),function(t){switch(t){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return Us()}}(t.fieldFilter.op),t.fieldFilter.value)}(t):void 0!==t.compositeFilter?function(t){return Xi.create(t.compositeFilter.filters.map((t=>sc(t))),function(t){switch(t){case"AND":return"and";case"OR":return"or";default:return Us()}}(t.compositeFilter.op))}(t):Us()}function ic(t){return Ba[t]}function oc(t){return za[t]}function ac(t){return $a[t]}function cc(t){return{fieldPath:t.canonicalString()}}function uc(t){return oi.fromServerFormat(t.fieldPath)}function hc(t){return t instanceof Ji?function(t){if("=="===t.op){if(zi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NAN"}};if(Bi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NULL"}}}else if("!="===t.op){if(zi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NOT_NAN"}};if(Bi(t.value))return{unaryFilter:{field:cc(t.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:cc(t.field),op:oc(t.op),value:t.value}}}(t):t instanceof Xi?function(t){const e=t.getFilters().map((t=>hc(t)));return 1===e.length?e[0]:{compositeFilter:{op:ac(t.op),filters:e}}}(t):Us()}function lc(t){return t.length>=4&&"projects"===t.get(0)&&"databases"===t.get(2)}
|
|
1025
|
+
/**
|
|
1026
|
+
* @license
|
|
1027
|
+
* Copyright 2017 Google LLC
|
|
1028
|
+
*
|
|
1029
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1030
|
+
* you may not use this file except in compliance with the License.
|
|
1031
|
+
* You may obtain a copy of the License at
|
|
1032
|
+
*
|
|
1033
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1034
|
+
*
|
|
1035
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1036
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1037
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1038
|
+
* See the License for the specific language governing permissions and
|
|
1039
|
+
* limitations under the License.
|
|
1040
|
+
*/class dc{constructor(t,e,n,r){this.batchId=t,this.localWriteTime=e,this.baseMutations=n,this.mutations=r}applyToRemoteDocument(t,e){const n=e.mutationResults;for(let e=0;e<this.mutations.length;e++){const r=this.mutations[e];r.key.isEqual(t.key)&&aa(r,t,n[e])}}applyToLocalView(t,e){for(const n of this.baseMutations)n.key.isEqual(t.key)&&(e=ca(n,t,e,this.localWriteTime));for(const n of this.mutations)n.key.isEqual(t.key)&&(e=ca(n,t,e,this.localWriteTime));return e}applyToLocalDocumentSet(t,e){const n=Ca();return this.mutations.forEach((r=>{const s=t.get(r.key),i=s.overlayedDocument;let o=this.applyToLocalView(i,s.mutatedFields);o=e.has(r.key)?null:o;const a=oa(i,o);null!==a&&n.set(r.key,a),i.isValidDocument()||i.convertToNoDocument(ni.min())})),n}keys(){return this.mutations.reduce(((t,e)=>t.add(e.key)),Da())}isEqual(t){return this.batchId===t.batchId&&ti(this.mutations,t.mutations,((t,e)=>ua(t,e)))&&ti(this.baseMutations,t.baseMutations,((t,e)=>ua(t,e)))}}
|
|
1041
|
+
/**
|
|
1042
|
+
* @license
|
|
1043
|
+
* Copyright 2022 Google LLC
|
|
1044
|
+
*
|
|
1045
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1046
|
+
* you may not use this file except in compliance with the License.
|
|
1047
|
+
* You may obtain a copy of the License at
|
|
1048
|
+
*
|
|
1049
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1050
|
+
*
|
|
1051
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1052
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1053
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1054
|
+
* See the License for the specific language governing permissions and
|
|
1055
|
+
* limitations under the License.
|
|
1056
|
+
*/class fc{constructor(t,e){this.largestBatchId=t,this.mutation=e}getKey(){return this.mutation.key}isEqual(t){return null!==t&&this.mutation===t.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}
|
|
1057
|
+
/**
|
|
1058
|
+
* @license
|
|
1059
|
+
* Copyright 2017 Google LLC
|
|
1060
|
+
*
|
|
1061
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1062
|
+
* you may not use this file except in compliance with the License.
|
|
1063
|
+
* You may obtain a copy of the License at
|
|
1064
|
+
*
|
|
1065
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1066
|
+
*
|
|
1067
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1068
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1069
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1070
|
+
* See the License for the specific language governing permissions and
|
|
1071
|
+
* limitations under the License.
|
|
1072
|
+
*/class pc{constructor(t,e,n,r,s=ni.min(),i=ni.min(),o=_i.EMPTY_BYTE_STRING){this.target=t,this.targetId=e,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=s,this.lastLimboFreeSnapshotVersion=i,this.resumeToken=o}withSequenceNumber(t){return new pc(this.target,this.targetId,this.purpose,t,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken)}withResumeToken(t,e){return new pc(this.target,this.targetId,this.purpose,this.sequenceNumber,e,this.lastLimboFreeSnapshotVersion,t)}withLastLimboFreeSnapshotVersion(t){return new pc(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,t,this.resumeToken)}}
|
|
1073
|
+
/**
|
|
1074
|
+
* @license
|
|
1075
|
+
* Copyright 2017 Google LLC
|
|
1076
|
+
*
|
|
1077
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1078
|
+
* you may not use this file except in compliance with the License.
|
|
1079
|
+
* You may obtain a copy of the License at
|
|
1080
|
+
*
|
|
1081
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1082
|
+
*
|
|
1083
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1084
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1085
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1086
|
+
* See the License for the specific language governing permissions and
|
|
1087
|
+
* limitations under the License.
|
|
1088
|
+
*/class gc{constructor(t){this.ie=t}}function mc(t){const e=rc({parent:t.parent,structuredQuery:t.structuredQuery});return"LAST"===t.limitType?xo(e,e.limit,"L"):e}
|
|
1089
|
+
/**
|
|
1090
|
+
* @license
|
|
1091
|
+
* Copyright 2019 Google LLC
|
|
1092
|
+
*
|
|
1093
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1094
|
+
* you may not use this file except in compliance with the License.
|
|
1095
|
+
* You may obtain a copy of the License at
|
|
1096
|
+
*
|
|
1097
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1098
|
+
*
|
|
1099
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1100
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1101
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1102
|
+
* See the License for the specific language governing permissions and
|
|
1103
|
+
* limitations under the License.
|
|
1104
|
+
*/class yc{constructor(){this.Je=new vc}addToCollectionParentIndex(t,e){return this.Je.add(e),fi.resolve()}getCollectionParents(t,e){return fi.resolve(this.Je.getEntries(e))}addFieldIndex(t,e){return fi.resolve()}deleteFieldIndex(t,e){return fi.resolve()}getDocumentsMatchingTarget(t,e){return fi.resolve(null)}getIndexType(t,e){return fi.resolve(0)}getFieldIndexes(t,e){return fi.resolve([])}getNextCollectionGroupToUpdate(t){return fi.resolve(null)}getMinOffset(t,e){return fi.resolve(ui.min())}getMinOffsetFromCollectionGroup(t,e){return fi.resolve(ui.min())}updateCollectionGroup(t,e,n){return fi.resolve()}updateIndexEntries(t,e){return fi.resolve()}}class vc{constructor(){this.index={}}add(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e]||new yo(si.comparator),s=!r.has(n);return this.index[e]=r.add(n),s}has(t){const e=t.lastSegment(),n=t.popLast(),r=this.index[e];return r&&r.has(n)}getEntries(t){return(this.index[t]||new yo(si.comparator)).toArray()}}
|
|
1105
|
+
/**
|
|
1106
|
+
* @license
|
|
1107
|
+
* Copyright 2017 Google LLC
|
|
1108
|
+
*
|
|
1109
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1110
|
+
* you may not use this file except in compliance with the License.
|
|
1111
|
+
* You may obtain a copy of the License at
|
|
1112
|
+
*
|
|
1113
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1114
|
+
*
|
|
1115
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1116
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1117
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1118
|
+
* See the License for the specific language governing permissions and
|
|
1119
|
+
* limitations under the License.
|
|
1120
|
+
*/class wc{constructor(t){this.bn=t}next(){return this.bn+=2,this.bn}static Pn(){return new wc(0)}static vn(){return new wc(-1)}}
|
|
1121
|
+
/**
|
|
1122
|
+
* @license
|
|
1123
|
+
* Copyright 2017 Google LLC
|
|
1124
|
+
*
|
|
1125
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1126
|
+
* you may not use this file except in compliance with the License.
|
|
1127
|
+
* You may obtain a copy of the License at
|
|
1128
|
+
*
|
|
1129
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1130
|
+
*
|
|
1131
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1132
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1133
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1134
|
+
* See the License for the specific language governing permissions and
|
|
1135
|
+
* limitations under the License.
|
|
1136
|
+
*/class Ic{constructor(){this.changes=new Ia((t=>t.toString()),((t,e)=>t.isEqual(e))),this.changesApplied=!1}addEntry(t){this.assertNotApplied(),this.changes.set(t.key,t)}removeEntry(t,e){this.assertNotApplied(),this.changes.set(t,bo.newInvalidDocument(t).setReadTime(e))}getEntry(t,e){this.assertNotApplied();const n=this.changes.get(e);return void 0!==n?fi.resolve(n):this.getFromCache(t,e)}getEntries(t,e){return this.getAllFromCache(t,e)}apply(t){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(t)}assertNotApplied(){}}
|
|
1137
|
+
/**
|
|
1138
|
+
* @license
|
|
1139
|
+
* Copyright 2017 Google LLC
|
|
1140
|
+
*
|
|
1141
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1142
|
+
* you may not use this file except in compliance with the License.
|
|
1143
|
+
* You may obtain a copy of the License at
|
|
1144
|
+
*
|
|
1145
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1146
|
+
*
|
|
1147
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1148
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1149
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1150
|
+
* See the License for the specific language governing permissions and
|
|
1151
|
+
* limitations under the License.
|
|
1152
|
+
*/
|
|
1153
|
+
/**
|
|
1154
|
+
* @license
|
|
1155
|
+
* Copyright 2022 Google LLC
|
|
1156
|
+
*
|
|
1157
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1158
|
+
* you may not use this file except in compliance with the License.
|
|
1159
|
+
* You may obtain a copy of the License at
|
|
1160
|
+
*
|
|
1161
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1162
|
+
*
|
|
1163
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1164
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1165
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1166
|
+
* See the License for the specific language governing permissions and
|
|
1167
|
+
* limitations under the License.
|
|
1168
|
+
*/class bc{constructor(t,e){this.overlayedDocument=t,this.mutatedFields=e}}
|
|
1169
|
+
/**
|
|
1170
|
+
* @license
|
|
1171
|
+
* Copyright 2017 Google LLC
|
|
1172
|
+
*
|
|
1173
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1174
|
+
* you may not use this file except in compliance with the License.
|
|
1175
|
+
* You may obtain a copy of the License at
|
|
1176
|
+
*
|
|
1177
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1178
|
+
*
|
|
1179
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1180
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1181
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1182
|
+
* See the License for the specific language governing permissions and
|
|
1183
|
+
* limitations under the License.
|
|
1184
|
+
*/class Ec{constructor(t,e,n,r){this.remoteDocumentCache=t,this.mutationQueue=e,this.documentOverlayCache=n,this.indexManager=r}getDocument(t,e){let n=null;return this.documentOverlayCache.getOverlay(t,e).next((r=>(n=r,this.remoteDocumentCache.getEntry(t,e)))).next((t=>(null!==n&&ca(n.mutation,t,wo.empty(),ei.now()),t)))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.getLocalViewOfDocuments(t,e,Da()).next((()=>e))))}getLocalViewOfDocuments(t,e,n=Da()){const r=Aa();return this.populateOverlays(t,r,e).next((()=>this.computeViews(t,e,r,n).next((t=>{let e=Ta();return t.forEach(((t,n)=>{e=e.insert(t,n.overlayedDocument)})),e}))))}getOverlayedDocuments(t,e){const n=Aa();return this.populateOverlays(t,n,e).next((()=>this.computeViews(t,e,n,Da())))}populateOverlays(t,e,n){const r=[];return n.forEach((t=>{e.has(t)||r.push(t)})),this.documentOverlayCache.getOverlays(t,r).next((t=>{t.forEach(((t,n)=>{e.set(t,n)}))}))}computeViews(t,e,n,r){let s=Ea();const i=ka(),o=ka();return e.forEach(((t,e)=>{const o=n.get(e.key);r.has(e.key)&&(void 0===o||o.mutation instanceof la)?s=s.insert(e.key,e):void 0!==o&&(i.set(e.key,o.mutation.getFieldMask()),ca(o.mutation,e,o.mutation.getFieldMask(),ei.now()))})),this.recalculateAndSaveOverlays(t,s).next((t=>(t.forEach(((t,e)=>i.set(t,e))),e.forEach(((t,e)=>{var n;return o.set(t,new bc(e,null!==(n=i.get(t))&&void 0!==n?n:null))})),o)))}recalculateAndSaveOverlays(t,e){const n=ka();let r=new po(((t,e)=>t-e)),s=Da();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(t,e).next((t=>{for(const s of t)s.keys().forEach((t=>{const i=e.get(t);if(null===i)return;let o=n.get(t)||wo.empty();o=s.applyToLocalView(i,o),n.set(t,o);const a=(r.get(s.batchId)||Da()).add(t);r=r.insert(s.batchId,a)}))})).next((()=>{const i=[],o=r.getReverseIterator();for(;o.hasNext();){const r=o.getNext(),a=r.key,c=r.value,u=Ca();c.forEach((t=>{if(!s.has(t)){const r=oa(e.get(t),n.get(t));null!==r&&u.set(t,r),s=s.add(t)}})),i.push(this.documentOverlayCache.saveOverlays(t,a,u))}return fi.waitFor(i)})).next((()=>n))}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next((e=>this.recalculateAndSaveOverlays(t,e)))}getDocumentsMatchingQuery(t,e,n){return function(t){return ai.isDocumentKey(t.path)&&null===t.collectionGroup&&0===t.filters.length}(e)?this.getDocumentsMatchingDocumentQuery(t,e.path):Oo(e)?this.getDocumentsMatchingCollectionGroupQuery(t,e,n):this.getDocumentsMatchingCollectionQuery(t,e,n)}getNextDocuments(t,e,n,r){return this.remoteDocumentCache.getAllFromCollectionGroup(t,e,n,r).next((s=>{const i=r-s.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(t,e,n.largestBatchId,r-s.size):fi.resolve(Aa());let o=-1,a=s;return i.next((e=>fi.forEach(e,((e,n)=>(o<n.largestBatchId&&(o=n.largestBatchId),s.get(e)?fi.resolve():this.remoteDocumentCache.getEntry(t,e).next((t=>{a=a.insert(e,t)}))))).next((()=>this.populateOverlays(t,e,s))).next((()=>this.computeViews(t,a,e,Da()))).next((t=>({batchId:o,changes:Sa(t)})))))}))}getDocumentsMatchingDocumentQuery(t,e){return this.getDocument(t,new ai(e)).next((t=>{let e=Ta();return t.isFoundDocument()&&(e=e.insert(t.key,t)),e}))}getDocumentsMatchingCollectionGroupQuery(t,e,n){const r=e.collectionGroup;let s=Ta();return this.indexManager.getCollectionParents(t,r).next((i=>fi.forEach(i,(i=>{const o=function(t,e){return new Co(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt)}(e,i.child(r));return this.getDocumentsMatchingCollectionQuery(t,o,n).next((t=>{t.forEach(((t,e)=>{s=s.insert(t,e)}))}))})).next((()=>s))))}getDocumentsMatchingCollectionQuery(t,e,n){let r;return this.remoteDocumentCache.getAllFromCollection(t,e.path,n).next((s=>(r=s,this.documentOverlayCache.getOverlaysForCollection(t,e.path,n.largestBatchId)))).next((t=>{t.forEach(((t,e)=>{const n=e.getKey();null===r.get(n)&&(r=r.insert(n,bo.newInvalidDocument(n)))}));let n=Ta();return r.forEach(((r,s)=>{const i=t.get(r);void 0!==i&&ca(i.mutation,s,wo.empty(),ei.now()),qo(e,s)&&(n=n.insert(r,s))})),n}))}}
|
|
1185
|
+
/**
|
|
1186
|
+
* @license
|
|
1187
|
+
* Copyright 2020 Google LLC
|
|
1188
|
+
*
|
|
1189
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1190
|
+
* you may not use this file except in compliance with the License.
|
|
1191
|
+
* You may obtain a copy of the License at
|
|
1192
|
+
*
|
|
1193
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1194
|
+
*
|
|
1195
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1196
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1197
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1198
|
+
* See the License for the specific language governing permissions and
|
|
1199
|
+
* limitations under the License.
|
|
1200
|
+
*/class _c{constructor(t){this.yt=t,this.Zn=new Map,this.ts=new Map}getBundleMetadata(t,e){return fi.resolve(this.Zn.get(e))}saveBundleMetadata(t,e){var n;return this.Zn.set(e.id,{id:(n=e).id,version:n.version,createTime:Wa(n.createTime)}),fi.resolve()}getNamedQuery(t,e){return fi.resolve(this.ts.get(e))}saveNamedQuery(t,e){return this.ts.set(e.name,function(t){return{name:t.name,query:mc(t.bundledQuery),readTime:Wa(t.readTime)}}(e)),fi.resolve()}}
|
|
1201
|
+
/**
|
|
1202
|
+
* @license
|
|
1203
|
+
* Copyright 2022 Google LLC
|
|
1204
|
+
*
|
|
1205
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1206
|
+
* you may not use this file except in compliance with the License.
|
|
1207
|
+
* You may obtain a copy of the License at
|
|
1208
|
+
*
|
|
1209
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1210
|
+
*
|
|
1211
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1212
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1213
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1214
|
+
* See the License for the specific language governing permissions and
|
|
1215
|
+
* limitations under the License.
|
|
1216
|
+
*/class Tc{constructor(){this.overlays=new po(ai.comparator),this.es=new Map}getOverlay(t,e){return fi.resolve(this.overlays.get(e))}getOverlays(t,e){const n=Aa();return fi.forEach(e,(e=>this.getOverlay(t,e).next((t=>{null!==t&&n.set(e,t)})))).next((()=>n))}saveOverlays(t,e,n){return n.forEach(((n,r)=>{this.oe(t,e,r)})),fi.resolve()}removeOverlaysForBatchId(t,e,n){const r=this.es.get(n);return void 0!==r&&(r.forEach((t=>this.overlays=this.overlays.remove(t))),this.es.delete(n)),fi.resolve()}getOverlaysForCollection(t,e,n){const r=Aa(),s=e.length+1,i=new ai(e.child("")),o=this.overlays.getIteratorFrom(i);for(;o.hasNext();){const t=o.getNext().value,i=t.getKey();if(!e.isPrefixOf(i.path))break;i.path.length===s&&t.largestBatchId>n&&r.set(t.getKey(),t)}return fi.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let s=new po(((t,e)=>t-e));const i=this.overlays.getIterator();for(;i.hasNext();){const t=i.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=s.get(t.largestBatchId);null===e&&(e=Aa(),s=s.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const o=Aa(),a=s.getIterator();for(;a.hasNext()&&(a.getNext().value.forEach(((t,e)=>o.set(t,e))),!(o.size()>=r)););return fi.resolve(o)}oe(t,e,n){const r=this.overlays.get(n.key);if(null!==r){const t=this.es.get(r.largestBatchId).delete(n.key);this.es.set(r.largestBatchId,t)}this.overlays=this.overlays.insert(n.key,new fc(e,n));let s=this.es.get(e);void 0===s&&(s=Da(),this.es.set(e,s)),this.es.set(e,s.add(n.key))}}
|
|
1217
|
+
/**
|
|
1218
|
+
* @license
|
|
1219
|
+
* Copyright 2017 Google LLC
|
|
1220
|
+
*
|
|
1221
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1222
|
+
* you may not use this file except in compliance with the License.
|
|
1223
|
+
* You may obtain a copy of the License at
|
|
1224
|
+
*
|
|
1225
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1226
|
+
*
|
|
1227
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1228
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1229
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1230
|
+
* See the License for the specific language governing permissions and
|
|
1231
|
+
* limitations under the License.
|
|
1232
|
+
*/class Sc{constructor(){this.ns=new yo(Ac.ss),this.rs=new yo(Ac.os)}isEmpty(){return this.ns.isEmpty()}addReference(t,e){const n=new Ac(t,e);this.ns=this.ns.add(n),this.rs=this.rs.add(n)}us(t,e){t.forEach((t=>this.addReference(t,e)))}removeReference(t,e){this.cs(new Ac(t,e))}hs(t,e){t.forEach((t=>this.removeReference(t,e)))}ls(t){const e=new ai(new si([])),n=new Ac(e,t),r=new Ac(e,t+1),s=[];return this.rs.forEachInRange([n,r],(t=>{this.cs(t),s.push(t.key)})),s}fs(){this.ns.forEach((t=>this.cs(t)))}cs(t){this.ns=this.ns.delete(t),this.rs=this.rs.delete(t)}ds(t){const e=new ai(new si([])),n=new Ac(e,t),r=new Ac(e,t+1);let s=Da();return this.rs.forEachInRange([n,r],(t=>{s=s.add(t.key)})),s}containsKey(t){const e=new Ac(t,0),n=this.ns.firstAfterOrEqual(e);return null!==n&&t.isEqual(n.key)}}class Ac{constructor(t,e){this.key=t,this._s=e}static ss(t,e){return ai.comparator(t.key,e.key)||Zs(t._s,e._s)}static os(t,e){return Zs(t._s,e._s)||ai.comparator(t.key,e.key)}}
|
|
1233
|
+
/**
|
|
1234
|
+
* @license
|
|
1235
|
+
* Copyright 2017 Google LLC
|
|
1236
|
+
*
|
|
1237
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1238
|
+
* you may not use this file except in compliance with the License.
|
|
1239
|
+
* You may obtain a copy of the License at
|
|
1240
|
+
*
|
|
1241
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1242
|
+
*
|
|
1243
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1244
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1245
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1246
|
+
* See the License for the specific language governing permissions and
|
|
1247
|
+
* limitations under the License.
|
|
1248
|
+
*/class Cc{constructor(t,e){this.indexManager=t,this.referenceDelegate=e,this.mutationQueue=[],this.ws=1,this.gs=new yo(Ac.ss)}checkEmpty(t){return fi.resolve(0===this.mutationQueue.length)}addMutationBatch(t,e,n,r){const s=this.ws;this.ws++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const i=new dc(s,e,n,r);this.mutationQueue.push(i);for(const e of r)this.gs=this.gs.add(new Ac(e.key,s)),this.indexManager.addToCollectionParentIndex(t,e.key.path.popLast());return fi.resolve(i)}lookupMutationBatch(t,e){return fi.resolve(this.ys(e))}getNextMutationBatchAfterBatchId(t,e){const n=e+1,r=this.ps(n),s=r<0?0:r;return fi.resolve(this.mutationQueue.length>s?this.mutationQueue[s]:null)}getHighestUnacknowledgedBatchId(){return fi.resolve(0===this.mutationQueue.length?-1:this.ws-1)}getAllMutationBatches(t){return fi.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(t,e){const n=new Ac(e,0),r=new Ac(e,Number.POSITIVE_INFINITY),s=[];return this.gs.forEachInRange([n,r],(t=>{const e=this.ys(t._s);s.push(e)})),fi.resolve(s)}getAllMutationBatchesAffectingDocumentKeys(t,e){let n=new yo(Zs);return e.forEach((t=>{const e=new Ac(t,0),r=new Ac(t,Number.POSITIVE_INFINITY);this.gs.forEachInRange([e,r],(t=>{n=n.add(t._s)}))})),fi.resolve(this.Is(n))}getAllMutationBatchesAffectingQuery(t,e){const n=e.path,r=n.length+1;let s=n;ai.isDocumentKey(s)||(s=s.child(""));const i=new Ac(new ai(s),0);let o=new yo(Zs);return this.gs.forEachWhile((t=>{const e=t.key.path;return!!n.isPrefixOf(e)&&(e.length===r&&(o=o.add(t._s)),!0)}),i),fi.resolve(this.Is(o))}Is(t){const e=[];return t.forEach((t=>{const n=this.ys(t);null!==n&&e.push(n)})),e}removeMutationBatch(t,e){Fs(0===this.Ts(e.batchId,"removed")),this.mutationQueue.shift();let n=this.gs;return fi.forEach(e.mutations,(r=>{const s=new Ac(r.key,e.batchId);return n=n.delete(s),this.referenceDelegate.markPotentiallyOrphaned(t,r.key)})).next((()=>{this.gs=n}))}An(t){}containsKey(t,e){const n=new Ac(e,0),r=this.gs.firstAfterOrEqual(n);return fi.resolve(e.isEqual(r&&r.key))}performConsistencyCheck(t){return this.mutationQueue.length,fi.resolve()}Ts(t,e){return this.ps(t)}ps(t){return 0===this.mutationQueue.length?0:t-this.mutationQueue[0].batchId}ys(t){const e=this.ps(t);return e<0||e>=this.mutationQueue.length?null:this.mutationQueue[e]}}
|
|
1249
|
+
/**
|
|
1250
|
+
* @license
|
|
1251
|
+
* Copyright 2017 Google LLC
|
|
1252
|
+
*
|
|
1253
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1254
|
+
* you may not use this file except in compliance with the License.
|
|
1255
|
+
* You may obtain a copy of the License at
|
|
1256
|
+
*
|
|
1257
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1258
|
+
*
|
|
1259
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1260
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1261
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1262
|
+
* See the License for the specific language governing permissions and
|
|
1263
|
+
* limitations under the License.
|
|
1264
|
+
*/class kc{constructor(t){this.Es=t,this.docs=new po(ai.comparator),this.size=0}setIndexManager(t){this.indexManager=t}addEntry(t,e){const n=e.key,r=this.docs.get(n),s=r?r.size:0,i=this.Es(e);return this.docs=this.docs.insert(n,{document:e.mutableCopy(),size:i}),this.size+=i-s,this.indexManager.addToCollectionParentIndex(t,n.path.popLast())}removeEntry(t){const e=this.docs.get(t);e&&(this.docs=this.docs.remove(t),this.size-=e.size)}getEntry(t,e){const n=this.docs.get(e);return fi.resolve(n?n.document.mutableCopy():bo.newInvalidDocument(e))}getEntries(t,e){let n=Ea();return e.forEach((t=>{const e=this.docs.get(t);n=n.insert(t,e?e.document.mutableCopy():bo.newInvalidDocument(t))})),fi.resolve(n)}getAllFromCollection(t,e,n){let r=Ea();const s=new ai(e.child("")),i=this.docs.getIteratorFrom(s);for(;i.hasNext();){const{key:t,value:{document:s}}=i.getNext();if(!e.isPrefixOf(t.path))break;t.path.length>e.length+1||hi(ci(s),n)<=0||(r=r.insert(s.key,s.mutableCopy()))}return fi.resolve(r)}getAllFromCollectionGroup(t,e,n,r){Us()}As(t,e){return fi.forEach(this.docs,(t=>e(t)))}newChangeBuffer(t){return new Nc(this)}getSize(t){return fi.resolve(this.size)}}class Nc extends Ic{constructor(t){super(),this.Yn=t}applyChanges(t){const e=[];return this.changes.forEach(((n,r)=>{r.isValidDocument()?e.push(this.Yn.addEntry(t,r)):this.Yn.removeEntry(n)})),fi.waitFor(e)}getFromCache(t,e){return this.Yn.getEntry(t,e)}getAllFromCache(t,e){return this.Yn.getEntries(t,e)}}
|
|
1265
|
+
/**
|
|
1266
|
+
* @license
|
|
1267
|
+
* Copyright 2017 Google LLC
|
|
1268
|
+
*
|
|
1269
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1270
|
+
* you may not use this file except in compliance with the License.
|
|
1271
|
+
* You may obtain a copy of the License at
|
|
1272
|
+
*
|
|
1273
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1274
|
+
*
|
|
1275
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1276
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1277
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1278
|
+
* See the License for the specific language governing permissions and
|
|
1279
|
+
* limitations under the License.
|
|
1280
|
+
*/class Dc{constructor(t){this.persistence=t,this.Rs=new Ia((t=>To(t)),So),this.lastRemoteSnapshotVersion=ni.min(),this.highestTargetId=0,this.bs=0,this.Ps=new Sc,this.targetCount=0,this.vs=wc.Pn()}forEachTarget(t,e){return this.Rs.forEach(((t,n)=>e(n))),fi.resolve()}getLastRemoteSnapshotVersion(t){return fi.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(t){return fi.resolve(this.bs)}allocateTargetId(t){return this.highestTargetId=this.vs.next(),fi.resolve(this.highestTargetId)}setTargetsMetadata(t,e,n){return n&&(this.lastRemoteSnapshotVersion=n),e>this.bs&&(this.bs=e),fi.resolve()}Dn(t){this.Rs.set(t.target,t);const e=t.targetId;e>this.highestTargetId&&(this.vs=new wc(e),this.highestTargetId=e),t.sequenceNumber>this.bs&&(this.bs=t.sequenceNumber)}addTargetData(t,e){return this.Dn(e),this.targetCount+=1,fi.resolve()}updateTargetData(t,e){return this.Dn(e),fi.resolve()}removeTargetData(t,e){return this.Rs.delete(e.target),this.Ps.ls(e.targetId),this.targetCount-=1,fi.resolve()}removeTargets(t,e,n){let r=0;const s=[];return this.Rs.forEach(((i,o)=>{o.sequenceNumber<=e&&null===n.get(o.targetId)&&(this.Rs.delete(i),s.push(this.removeMatchingKeysForTargetId(t,o.targetId)),r++)})),fi.waitFor(s).next((()=>r))}getTargetCount(t){return fi.resolve(this.targetCount)}getTargetData(t,e){const n=this.Rs.get(e)||null;return fi.resolve(n)}addMatchingKeys(t,e,n){return this.Ps.us(e,n),fi.resolve()}removeMatchingKeys(t,e,n){this.Ps.hs(e,n);const r=this.persistence.referenceDelegate,s=[];return r&&e.forEach((e=>{s.push(r.markPotentiallyOrphaned(t,e))})),fi.waitFor(s)}removeMatchingKeysForTargetId(t,e){return this.Ps.ls(e),fi.resolve()}getMatchingKeysForTargetId(t,e){const n=this.Ps.ds(e);return fi.resolve(n)}containsKey(t,e){return fi.resolve(this.Ps.containsKey(e))}}
|
|
1281
|
+
/**
|
|
1282
|
+
* @license
|
|
1283
|
+
* Copyright 2017 Google LLC
|
|
1284
|
+
*
|
|
1285
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1286
|
+
* you may not use this file except in compliance with the License.
|
|
1287
|
+
* You may obtain a copy of the License at
|
|
1288
|
+
*
|
|
1289
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1290
|
+
*
|
|
1291
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1292
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1293
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1294
|
+
* See the License for the specific language governing permissions and
|
|
1295
|
+
* limitations under the License.
|
|
1296
|
+
*/class Rc{constructor(t,e){this.Vs={},this.overlays={},this.Ss=new gi(0),this.Ds=!1,this.Ds=!0,this.referenceDelegate=t(this),this.Cs=new Dc(this),this.indexManager=new yc,this.remoteDocumentCache=function(t){return new kc(t)}((t=>this.referenceDelegate.xs(t))),this.yt=new gc(e),this.Ns=new _c(this.yt)}start(){return Promise.resolve()}shutdown(){return this.Ds=!1,Promise.resolve()}get started(){return this.Ds}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(t){return this.indexManager}getDocumentOverlayCache(t){let e=this.overlays[t.toKey()];return e||(e=new Tc,this.overlays[t.toKey()]=e),e}getMutationQueue(t,e){let n=this.Vs[t.toKey()];return n||(n=new Cc(e,this.referenceDelegate),this.Vs[t.toKey()]=n),n}getTargetCache(){return this.Cs}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Ns}runTransaction(t,e,n){Ls("MemoryPersistence","Starting transaction:",t);const r=new Oc(this.Ss.next());return this.referenceDelegate.ks(),n(r).next((t=>this.referenceDelegate.Os(r).next((()=>t)))).toPromise().then((t=>(r.raiseOnCommittedEvent(),t)))}Ms(t,e){return fi.or(Object.values(this.Vs).map((n=>()=>n.containsKey(t,e))))}}class Oc extends li{constructor(t){super(),this.currentSequenceNumber=t}}class Lc{constructor(t){this.persistence=t,this.Fs=new Sc,this.$s=null}static Bs(t){return new Lc(t)}get Ls(){if(this.$s)return this.$s;throw Us()}addReference(t,e,n){return this.Fs.addReference(n,e),this.Ls.delete(n.toString()),fi.resolve()}removeReference(t,e,n){return this.Fs.removeReference(n,e),this.Ls.add(n.toString()),fi.resolve()}markPotentiallyOrphaned(t,e){return this.Ls.add(e.toString()),fi.resolve()}removeTarget(t,e){this.Fs.ls(e.targetId).forEach((t=>this.Ls.add(t.toString())));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(t,e.targetId).next((t=>{t.forEach((t=>this.Ls.add(t.toString())))})).next((()=>n.removeTargetData(t,e)))}ks(){this.$s=new Set}Os(t){const e=this.persistence.getRemoteDocumentCache().newChangeBuffer();return fi.forEach(this.Ls,(n=>{const r=ai.fromPath(n);return this.qs(t,r).next((t=>{t||e.removeEntry(r,ni.min())}))})).next((()=>(this.$s=null,e.apply(t))))}updateLimboDocument(t,e){return this.qs(t,e).next((t=>{t?this.Ls.delete(e.toString()):this.Ls.add(e.toString())}))}xs(t){return 0}qs(t,e){return fi.or([()=>fi.resolve(this.Fs.containsKey(e)),()=>this.persistence.getTargetCache().containsKey(t,e),()=>this.persistence.Ms(t,e)])}}
|
|
1297
|
+
/**
|
|
1298
|
+
* @license
|
|
1299
|
+
* Copyright 2017 Google LLC
|
|
1300
|
+
*
|
|
1301
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1302
|
+
* you may not use this file except in compliance with the License.
|
|
1303
|
+
* You may obtain a copy of the License at
|
|
1304
|
+
*
|
|
1305
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1306
|
+
*
|
|
1307
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1308
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1309
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1310
|
+
* See the License for the specific language governing permissions and
|
|
1311
|
+
* limitations under the License.
|
|
1312
|
+
*/class Pc{constructor(t,e,n,r){this.targetId=t,this.fromCache=e,this.Si=n,this.Di=r}static Ci(t,e){let n=Da(),r=Da();for(const t of e.docChanges)switch(t.type){case 0:n=n.add(t.doc.key);break;case 1:r=r.add(t.doc.key)}return new Pc(t,e.fromCache,n,r)}}
|
|
1313
|
+
/**
|
|
1314
|
+
* @license
|
|
1315
|
+
* Copyright 2019 Google LLC
|
|
1316
|
+
*
|
|
1317
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1318
|
+
* you may not use this file except in compliance with the License.
|
|
1319
|
+
* You may obtain a copy of the License at
|
|
1320
|
+
*
|
|
1321
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1322
|
+
*
|
|
1323
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1324
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1325
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1326
|
+
* See the License for the specific language governing permissions and
|
|
1327
|
+
* limitations under the License.
|
|
1328
|
+
*/class Mc{constructor(){this.xi=!1}initialize(t,e){this.Ni=t,this.indexManager=e,this.xi=!0}getDocumentsMatchingQuery(t,e,n,r){return this.ki(t,e).next((s=>s||this.Oi(t,e,r,n))).next((n=>n||this.Mi(t,e)))}ki(t,e){if(No(e))return fi.resolve(null);let n=Po(e);return this.indexManager.getIndexType(t,n).next((r=>0===r?null:(null!==e.limit&&1===r&&(e=xo(e,null,"F"),n=Po(e)),this.indexManager.getDocumentsMatchingTarget(t,n).next((r=>{const s=Da(...r);return this.Ni.getDocuments(t,s).next((r=>this.indexManager.getMinOffset(t,n).next((n=>{const i=this.Fi(e,r);return this.$i(e,i,s,n.readTime)?this.ki(t,xo(e,null,"F")):this.Bi(t,i,e,n)}))))})))))}Oi(t,e,n,r){return No(e)||r.isEqual(ni.min())?this.Mi(t,e):this.Ni.getDocuments(t,n).next((s=>{const i=this.Fi(e,s);return this.$i(e,i,n,r)?this.Mi(t,e):(Os()<=C.DEBUG&&Ls("QueryEngine","Re-using previous result from %s to execute query: %s",r.toString(),Vo(e)),this.Bi(t,i,e,function(t,e){const n=t.toTimestamp().seconds,r=t.toTimestamp().nanoseconds+1,s=ni.fromTimestamp(1e9===r?new ei(n+1,0):new ei(n,r));return new ui(s,ai.empty(),e)}(r,-1)))}))}Fi(t,e){let n=new yo(jo(t));return e.forEach(((e,r)=>{qo(t,r)&&(n=n.add(r))})),n}$i(t,e,n,r){if(null===t.limit)return!1;if(n.size!==e.size)return!0;const s="F"===t.limitType?e.last():e.first();return!!s&&(s.hasPendingWrites||s.version.compareTo(r)>0)}Mi(t,e){return Os()<=C.DEBUG&&Ls("QueryEngine","Using full collection scan to execute query:",Vo(e)),this.Ni.getDocumentsMatchingQuery(t,e,ui.min())}Bi(t,e,n,r){return this.Ni.getDocumentsMatchingQuery(t,n,r).next((t=>(e.forEach((e=>{t=t.insert(e.key,e)})),t)))}}
|
|
1329
|
+
/**
|
|
1330
|
+
* @license
|
|
1331
|
+
* Copyright 2020 Google LLC
|
|
1332
|
+
*
|
|
1333
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1334
|
+
* you may not use this file except in compliance with the License.
|
|
1335
|
+
* You may obtain a copy of the License at
|
|
1336
|
+
*
|
|
1337
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1338
|
+
*
|
|
1339
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1340
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1341
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1342
|
+
* See the License for the specific language governing permissions and
|
|
1343
|
+
* limitations under the License.
|
|
1344
|
+
*/class xc{constructor(t,e,n,r){this.persistence=t,this.Li=e,this.yt=r,this.qi=new po(Zs),this.Ui=new Ia((t=>To(t)),So),this.Ki=new Map,this.Gi=t.getRemoteDocumentCache(),this.Cs=t.getTargetCache(),this.Ns=t.getBundleCache(),this.Qi(n)}Qi(t){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(t),this.indexManager=this.persistence.getIndexManager(t),this.mutationQueue=this.persistence.getMutationQueue(t,this.indexManager),this.localDocuments=new Ec(this.Gi,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.Gi.setIndexManager(this.indexManager),this.Li.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",(e=>t.collect(e,this.qi)))}}async function Uc(t,e){const n=Vs(t);return await n.persistence.runTransaction("Handle user change","readonly",(t=>{let r;return n.mutationQueue.getAllMutationBatches(t).next((s=>(r=s,n.Qi(e),n.mutationQueue.getAllMutationBatches(t)))).next((e=>{const s=[],i=[];let o=Da();for(const t of r){s.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}for(const t of e){i.push(t.batchId);for(const e of t.mutations)o=o.add(e.key)}return n.localDocuments.getDocuments(t,o).next((t=>({ji:t,removedBatchIds:s,addedBatchIds:i})))}))}))}function Fc(t){const e=Vs(t);return e.persistence.runTransaction("Get last remote snapshot version","readonly",(t=>e.Cs.getLastRemoteSnapshotVersion(t)))}function Vc(t,e){const n=Vs(t),r=e.snapshotVersion;let s=n.qi;return n.persistence.runTransaction("Apply remote event","readwrite-primary",(t=>{const i=n.Gi.newChangeBuffer({trackRemovals:!0});s=n.qi;const o=[];e.targetChanges.forEach(((i,a)=>{const c=s.get(a);if(!c)return;o.push(n.Cs.removeMatchingKeys(t,i.removedDocuments,a).next((()=>n.Cs.addMatchingKeys(t,i.addedDocuments,a))));let u=c.withSequenceNumber(t.currentSequenceNumber);e.targetMismatches.has(a)?u=u.withResumeToken(_i.EMPTY_BYTE_STRING,ni.min()).withLastLimboFreeSnapshotVersion(ni.min()):i.resumeToken.approximateByteSize()>0&&(u=u.withResumeToken(i.resumeToken,r)),s=s.insert(a,u),function(t,e,n){return 0===t.resumeToken.approximateByteSize()||(e.snapshotVersion.toMicroseconds()-t.snapshotVersion.toMicroseconds()>=3e8||n.addedDocuments.size+n.modifiedDocuments.size+n.removedDocuments.size>0)}(c,u,i)&&o.push(n.Cs.updateTargetData(t,u))}));let a=Ea(),c=Da();if(e.documentUpdates.forEach((r=>{e.resolvedLimboDocuments.has(r)&&o.push(n.persistence.referenceDelegate.updateLimboDocument(t,r))})),o.push(function(t,e,n){let r=Da(),s=Da();return n.forEach((t=>r=r.add(t))),e.getEntries(t,r).next((t=>{let r=Ea();return n.forEach(((n,i)=>{const o=t.get(n);i.isFoundDocument()!==o.isFoundDocument()&&(s=s.add(n)),i.isNoDocument()&&i.version.isEqual(ni.min())?(e.removeEntry(n,i.readTime),r=r.insert(n,i)):!o.isValidDocument()||i.version.compareTo(o.version)>0||0===i.version.compareTo(o.version)&&o.hasPendingWrites?(e.addEntry(i),r=r.insert(n,i)):Ls("LocalStore","Ignoring outdated watch update for ",n,". Current version:",o.version," Watch version:",i.version)})),{Wi:r,zi:s}}))}(t,i,e.documentUpdates).next((t=>{a=t.Wi,c=t.zi}))),!r.isEqual(ni.min())){const e=n.Cs.getLastRemoteSnapshotVersion(t).next((e=>n.Cs.setTargetsMetadata(t,t.currentSequenceNumber,r)));o.push(e)}return fi.waitFor(o).next((()=>i.apply(t))).next((()=>n.localDocuments.getLocalViewOfDocuments(t,a,c))).next((()=>a))})).then((t=>(n.qi=s,t)))}async function qc(t,e,n){const r=Vs(t),s=r.qi.get(e),i=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",i,(t=>r.persistence.referenceDelegate.removeTarget(t,s)))}catch(t){if(!pi(t))throw t;Ls("LocalStore",`Failed to update sequence numbers for target ${e}: ${t}`)}r.qi=r.qi.remove(e),r.Ui.delete(s.target)}function jc(t,e,n){const r=Vs(t);let s=ni.min(),i=Da();return r.persistence.runTransaction("Execute query","readonly",(t=>function(t,e,n){const r=Vs(t),s=r.Ui.get(n);return void 0!==s?fi.resolve(r.qi.get(s)):r.Cs.getTargetData(e,n)}(r,t,Po(e)).next((e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,r.Cs.getMatchingKeysForTargetId(t,e.targetId).next((t=>{i=t}))})).next((()=>r.Li.getDocumentsMatchingQuery(t,e,n?s:ni.min(),n?i:Da()))).next((t=>(function(t,e,n){let r=t.Ki.get(e)||ni.min();n.forEach(((t,e)=>{e.readTime.compareTo(r)>0&&(r=e.readTime)})),t.Ki.set(e,r)}(r,function(t){return t.collectionGroup||(t.path.length%2==1?t.path.lastSegment():t.path.get(t.path.length-2))}(e),t),{documents:t,Hi:i})))))}class Bc{constructor(){this.activeTargetIds=Oa()}er(t){this.activeTargetIds=this.activeTargetIds.add(t)}nr(t){this.activeTargetIds=this.activeTargetIds.delete(t)}tr(){const t={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(t)}}class zc{constructor(){this.Lr=new Bc,this.qr={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(t){}updateMutationState(t,e,n){}addLocalQueryTarget(t){return this.Lr.er(t),this.qr[t]||"not-current"}updateQueryState(t,e,n){this.qr[t]=e}removeLocalQueryTarget(t){this.Lr.nr(t)}isLocalQueryTarget(t){return this.Lr.activeTargetIds.has(t)}clearQueryState(t){delete this.qr[t]}getAllActiveQueryTargets(){return this.Lr.activeTargetIds}isActiveQueryTarget(t){return this.Lr.activeTargetIds.has(t)}start(){return this.Lr=new Bc,Promise.resolve()}handleUserChange(t,e,n){}setOnlineState(t){}shutdown(){}writeSequenceNumber(t){}notifyBundleLoaded(t){}}
|
|
1345
|
+
/**
|
|
1346
|
+
* @license
|
|
1347
|
+
* Copyright 2019 Google LLC
|
|
1348
|
+
*
|
|
1349
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1350
|
+
* you may not use this file except in compliance with the License.
|
|
1351
|
+
* You may obtain a copy of the License at
|
|
1352
|
+
*
|
|
1353
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1354
|
+
*
|
|
1355
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1356
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1357
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1358
|
+
* See the License for the specific language governing permissions and
|
|
1359
|
+
* limitations under the License.
|
|
1360
|
+
*/class $c{Ur(t){}shutdown(){}}
|
|
1361
|
+
/**
|
|
1362
|
+
* @license
|
|
1363
|
+
* Copyright 2019 Google LLC
|
|
1364
|
+
*
|
|
1365
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1366
|
+
* you may not use this file except in compliance with the License.
|
|
1367
|
+
* You may obtain a copy of the License at
|
|
1368
|
+
*
|
|
1369
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1370
|
+
*
|
|
1371
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1372
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1373
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1374
|
+
* See the License for the specific language governing permissions and
|
|
1375
|
+
* limitations under the License.
|
|
1376
|
+
*/class Kc{constructor(){this.Kr=()=>this.Gr(),this.Qr=()=>this.jr(),this.Wr=[],this.zr()}Ur(t){this.Wr.push(t)}shutdown(){window.removeEventListener("online",this.Kr),window.removeEventListener("offline",this.Qr)}zr(){window.addEventListener("online",this.Kr),window.addEventListener("offline",this.Qr)}Gr(){Ls("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const t of this.Wr)t(0)}jr(){Ls("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const t of this.Wr)t(1)}static C(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}
|
|
1377
|
+
/**
|
|
1378
|
+
* @license
|
|
1379
|
+
* Copyright 2020 Google LLC
|
|
1380
|
+
*
|
|
1381
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1382
|
+
* you may not use this file except in compliance with the License.
|
|
1383
|
+
* You may obtain a copy of the License at
|
|
1384
|
+
*
|
|
1385
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1386
|
+
*
|
|
1387
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1388
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1389
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1390
|
+
* See the License for the specific language governing permissions and
|
|
1391
|
+
* limitations under the License.
|
|
1392
|
+
*/const Hc={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};
|
|
1393
|
+
/**
|
|
1394
|
+
* @license
|
|
1395
|
+
* Copyright 2017 Google LLC
|
|
1396
|
+
*
|
|
1397
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1398
|
+
* you may not use this file except in compliance with the License.
|
|
1399
|
+
* You may obtain a copy of the License at
|
|
1400
|
+
*
|
|
1401
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1402
|
+
*
|
|
1403
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1404
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1405
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1406
|
+
* See the License for the specific language governing permissions and
|
|
1407
|
+
* limitations under the License.
|
|
1408
|
+
*/class Gc{constructor(t){this.Hr=t.Hr,this.Jr=t.Jr}Yr(t){this.Xr=t}Zr(t){this.eo=t}onMessage(t){this.no=t}close(){this.Jr()}send(t){this.Hr(t)}so(){this.Xr()}io(t){this.eo(t)}ro(t){this.no(t)}}
|
|
1409
|
+
/**
|
|
1410
|
+
* @license
|
|
1411
|
+
* Copyright 2017 Google LLC
|
|
1412
|
+
*
|
|
1413
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1414
|
+
* you may not use this file except in compliance with the License.
|
|
1415
|
+
* You may obtain a copy of the License at
|
|
1416
|
+
*
|
|
1417
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1418
|
+
*
|
|
1419
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1420
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1421
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1422
|
+
* See the License for the specific language governing permissions and
|
|
1423
|
+
* limitations under the License.
|
|
1424
|
+
*/class Wc extends class{constructor(t){this.databaseInfo=t,this.databaseId=t.databaseId;const e=t.ssl?"https":"http";this.oo=e+"://"+t.host,this.uo="projects/"+this.databaseId.projectId+"/databases/"+this.databaseId.database+"/documents"}get co(){return!1}ao(t,e,n,r,s){const i=this.ho(t,e);Ls("RestConnection","Sending: ",i,n);const o={};return this.lo(o,r,s),this.fo(t,i,o,n).then((t=>(Ls("RestConnection","Received: ",t),t)),(e=>{throw Ms("RestConnection",`${t} failed with error: `,e,"url: ",i,"request:",n),e}))}_o(t,e,n,r,s,i){return this.ao(t,e,n,r,s)}lo(t,e,n){t["X-Goog-Api-Client"]="gl-js/ fire/"+Ds,t["Content-Type"]="text/plain",this.databaseInfo.appId&&(t["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach(((e,n)=>t[n]=e)),n&&n.headers.forEach(((e,n)=>t[n]=e))}ho(t,e){const n=Hc[t];return`${this.oo}/v1/${e}:${n}`}}{constructor(t){super(t),this.forceLongPolling=t.forceLongPolling,this.autoDetectLongPolling=t.autoDetectLongPolling,this.useFetchStreams=t.useFetchStreams}fo(t,e,n,r){return new Promise(((s,i)=>{const o=new Cs;o.setWithCredentials(!0),o.listenOnce(bs.COMPLETE,(()=>{try{switch(o.getLastErrorCode()){case Is.NO_ERROR:const e=o.getResponseJson();Ls("Connection","XHR received:",JSON.stringify(e)),s(e);break;case Is.TIMEOUT:Ls("Connection",'RPC "'+t+'" timed out'),i(new js(qs.DEADLINE_EXCEEDED,"Request time out"));break;case Is.HTTP_ERROR:const n=o.getStatus();if(Ls("Connection",'RPC "'+t+'" failed with status:',n,"response text:",o.getResponseText()),n>0){let t=o.getResponseJson();Array.isArray(t)&&(t=t[0]);const e=null==t?void 0:t.error;if(e&&e.status&&e.message){const t=function(t){const e=t.toLowerCase().replace(/_/g,"-");return Object.values(qs).indexOf(e)>=0?e:qs.UNKNOWN}(e.status);i(new js(t,e.message))}else i(new js(qs.UNKNOWN,"Server responded with status "+o.getStatus()))}else i(new js(qs.UNAVAILABLE,"Connection failed."));break;default:Us()}}finally{Ls("Connection",'RPC "'+t+'" completed.')}}));const a=JSON.stringify(r);o.send(e,"POST",a,n,15)}))}wo(t,e,n){const r=[this.oo,"/","google.firestore.v1.Firestore","/",t,"/channel"],s=new gs,i=fn(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling};this.useFetchStreams&&(o.xmlHttpFactory=new Ss({})),this.lo(o.initMessageHeaders,e,n),o.encodeInitMessageHeaders=!0;const a=r.join("");Ls("Connection","Creating WebChannel: "+a,o);const c=s.createWebChannel(a,o);let u=!1,h=!1;const l=new Gc({Hr:t=>{h?Ls("Connection","Not sending because WebChannel is closed:",t):(u||(Ls("Connection","Opening WebChannel transport."),c.open(),u=!0),Ls("Connection","WebChannel sending:",t),c.send(t))},Jr:()=>c.close()}),d=(t,e,n)=>{t.listen(e,(t=>{try{n(t)}catch(t){setTimeout((()=>{throw t}),0)}}))};return d(c,As.EventType.OPEN,(()=>{h||Ls("Connection","WebChannel transport opened.")})),d(c,As.EventType.CLOSE,(()=>{h||(h=!0,Ls("Connection","WebChannel transport closed"),l.io())})),d(c,As.EventType.ERROR,(t=>{h||(h=!0,Ms("Connection","WebChannel transport errored:",t),l.io(new js(qs.UNAVAILABLE,"The operation could not be completed")))})),d(c,As.EventType.MESSAGE,(t=>{var e;if(!h){const n=t.data[0];Fs(!!n);const r=n,s=r.error||(null===(e=r[0])||void 0===e?void 0:e.error);if(s){Ls("Connection","WebChannel received error:",s);const t=s.status;let e=function(t){const e=ya[t];if(void 0!==e)return wa(e)}(t),n=s.message;void 0===e&&(e=qs.INTERNAL,n="Unknown error status: "+t+" with message "+s.message),h=!0,l.io(new js(e,n)),c.close()}else Ls("Connection","WebChannel received:",n),l.ro(n)}})),d(i,Es.STAT_EVENT,(t=>{t.stat===_s?Ls("Connection","Detected buffering proxy"):t.stat===Ts&&Ls("Connection","Detected no buffering proxy")})),setTimeout((()=>{l.so()}),0),l}}function Qc(){return"undefined"!=typeof document?document:null}
|
|
1425
|
+
/**
|
|
1426
|
+
* @license
|
|
1427
|
+
* Copyright 2020 Google LLC
|
|
1428
|
+
*
|
|
1429
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1430
|
+
* you may not use this file except in compliance with the License.
|
|
1431
|
+
* You may obtain a copy of the License at
|
|
1432
|
+
*
|
|
1433
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1434
|
+
*
|
|
1435
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1436
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1437
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1438
|
+
* See the License for the specific language governing permissions and
|
|
1439
|
+
* limitations under the License.
|
|
1440
|
+
*/function Jc(t){return new Ka(t,!0)}class Xc{constructor(t,e,n=1e3,r=1.5,s=6e4){this.Hs=t,this.timerId=e,this.mo=n,this.yo=r,this.po=s,this.Io=0,this.To=null,this.Eo=Date.now(),this.reset()}reset(){this.Io=0}Ao(){this.Io=this.po}Ro(t){this.cancel();const e=Math.floor(this.Io+this.bo()),n=Math.max(0,Date.now()-this.Eo),r=Math.max(0,e-n);r>0&&Ls("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Io} ms, delay with jitter: ${e} ms, last attempt: ${n} ms ago)`),this.To=this.Hs.enqueueAfterDelay(this.timerId,r,(()=>(this.Eo=Date.now(),t()))),this.Io*=this.yo,this.Io<this.mo&&(this.Io=this.mo),this.Io>this.po&&(this.Io=this.po)}Po(){null!==this.To&&(this.To.skipDelay(),this.To=null)}cancel(){null!==this.To&&(this.To.cancel(),this.To=null)}bo(){return(Math.random()-.5)*this.Io}}
|
|
1441
|
+
/**
|
|
1442
|
+
* @license
|
|
1443
|
+
* Copyright 2017 Google LLC
|
|
1444
|
+
*
|
|
1445
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1446
|
+
* you may not use this file except in compliance with the License.
|
|
1447
|
+
* You may obtain a copy of the License at
|
|
1448
|
+
*
|
|
1449
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1450
|
+
*
|
|
1451
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1452
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1453
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1454
|
+
* See the License for the specific language governing permissions and
|
|
1455
|
+
* limitations under the License.
|
|
1456
|
+
*/class Yc{constructor(t,e,n,r,s,i,o,a){this.Hs=t,this.vo=n,this.Vo=r,this.connection=s,this.authCredentialsProvider=i,this.appCheckCredentialsProvider=o,this.listener=a,this.state=0,this.So=0,this.Do=null,this.Co=null,this.stream=null,this.xo=new Xc(t,e)}No(){return 1===this.state||5===this.state||this.ko()}ko(){return 2===this.state||3===this.state}start(){4!==this.state?this.auth():this.Oo()}async stop(){this.No()&&await this.close(0)}Mo(){this.state=0,this.xo.reset()}Fo(){this.ko()&&null===this.Do&&(this.Do=this.Hs.enqueueAfterDelay(this.vo,6e4,(()=>this.$o())))}Bo(t){this.Lo(),this.stream.send(t)}async $o(){if(this.ko())return this.close(0)}Lo(){this.Do&&(this.Do.cancel(),this.Do=null)}qo(){this.Co&&(this.Co.cancel(),this.Co=null)}async close(t,e){this.Lo(),this.qo(),this.xo.cancel(),this.So++,4!==t?this.xo.reset():e&&e.code===qs.RESOURCE_EXHAUSTED?(Ps(e.toString()),Ps("Using maximum backoff delay to prevent overloading the backend."),this.xo.Ao()):e&&e.code===qs.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.Uo(),this.stream.close(),this.stream=null),this.state=t,await this.listener.Zr(e)}Uo(){}auth(){this.state=1;const t=this.Ko(this.So),e=this.So;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then((([t,n])=>{this.So===e&&this.Go(t,n)}),(e=>{t((()=>{const t=new js(qs.UNKNOWN,"Fetching auth token failed: "+e.message);return this.Qo(t)}))}))}Go(t,e){const n=this.Ko(this.So);this.stream=this.jo(t,e),this.stream.Yr((()=>{n((()=>(this.state=2,this.Co=this.Hs.enqueueAfterDelay(this.Vo,1e4,(()=>(this.ko()&&(this.state=3),Promise.resolve()))),this.listener.Yr())))})),this.stream.Zr((t=>{n((()=>this.Qo(t)))})),this.stream.onMessage((t=>{n((()=>this.onMessage(t)))}))}Oo(){this.state=5,this.xo.Ro((async()=>{this.state=0,this.start()}))}Qo(t){return Ls("PersistentStream",`close with error: ${t}`),this.stream=null,this.close(4,t)}Ko(t){return e=>{this.Hs.enqueueAndForget((()=>this.So===t?e():(Ls("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve())))}}}class Zc extends Yc{constructor(t,e,n,r,s,i){super(t,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",e,n,r,i),this.yt=s}jo(t,e){return this.connection.wo("Listen",t,e)}onMessage(t){this.xo.reset();const e=function(t,e){let n;if("targetChange"in e){e.targetChange;const r=function(t){return"NO_CHANGE"===t?0:"ADD"===t?1:"REMOVE"===t?2:"CURRENT"===t?3:"RESET"===t?4:Us()}(e.targetChange.targetChangeType||"NO_CHANGE"),s=e.targetChange.targetIds||[],i=function(t,e){return t.wt?(Fs(void 0===e||"string"==typeof e),_i.fromBase64String(e||"")):(Fs(void 0===e||e instanceof Uint8Array),_i.fromUint8Array(e||new Uint8Array))}(t,e.targetChange.resumeToken),o=e.targetChange.cause,a=o&&function(t){const e=void 0===t.code?qs.UNKNOWN:wa(t.code);return new js(e,t.message||"")}(o);n=new Ua(r,s,i,a||null)}else if("documentChange"in e){e.documentChange;const r=e.documentChange;r.document,r.document.name,r.document.updateTime;const s=Xa(t,r.document.name),i=Wa(r.document.updateTime),o=r.document.createTime?Wa(r.document.createTime):ni.min(),a=new Io({mapValue:{fields:r.document.fields}}),c=bo.newFoundDocument(s,i,o,a),u=r.targetIds||[],h=r.removedTargetIds||[];n=new Ma(u,h,c.key,c)}else if("documentDelete"in e){e.documentDelete;const r=e.documentDelete;r.document;const s=Xa(t,r.document),i=r.readTime?Wa(r.readTime):ni.min(),o=bo.newNoDocument(s,i),a=r.removedTargetIds||[];n=new Ma([],a,o.key,o)}else if("documentRemove"in e){e.documentRemove;const r=e.documentRemove;r.document;const s=Xa(t,r.document),i=r.removedTargetIds||[];n=new Ma([],i,s,null)}else{if(!("filter"in e))return Us();{e.filter;const t=e.filter;t.targetId;const r=t.count||0,s=new ma(r),i=t.targetId;n=new xa(i,s)}}return n}(this.yt,t),n=function(t){if(!("targetChange"in t))return ni.min();const e=t.targetChange;return e.targetIds&&e.targetIds.length?ni.min():e.readTime?Wa(e.readTime):ni.min()}(t);return this.listener.Wo(e,n)}zo(t){const e={};e.database=Za(this.yt),e.addTarget=function(t,e){let n;const r=e.target;return n=Ao(r)?{documents:ec(t,r)}:{query:nc(t,r)},n.targetId=e.targetId,e.resumeToken.approximateByteSize()>0?n.resumeToken=Ga(t,e.resumeToken):e.snapshotVersion.compareTo(ni.min())>0&&(n.readTime=Ha(t,e.snapshotVersion.toTimestamp())),n}(this.yt,t);const n=function(t,e){const n=function(t,e){switch(e){case 0:return null;case 1:return"existence-filter-mismatch";case 2:return"limbo-document";default:return Us()}}(0,e.purpose);return null==n?null:{"goog-listen-tags":n}}(this.yt,t);n&&(e.labels=n),this.Bo(e)}Ho(t){const e={};e.database=Za(this.yt),e.removeTarget=t,this.Bo(e)}}
|
|
1457
|
+
/**
|
|
1458
|
+
* @license
|
|
1459
|
+
* Copyright 2017 Google LLC
|
|
1460
|
+
*
|
|
1461
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1462
|
+
* you may not use this file except in compliance with the License.
|
|
1463
|
+
* You may obtain a copy of the License at
|
|
1464
|
+
*
|
|
1465
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1466
|
+
*
|
|
1467
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1468
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1469
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1470
|
+
* See the License for the specific language governing permissions and
|
|
1471
|
+
* limitations under the License.
|
|
1472
|
+
*/class tu extends class{}{constructor(t,e,n,r){super(),this.authCredentials=t,this.appCheckCredentials=e,this.connection=n,this.yt=r,this.nu=!1}su(){if(this.nu)throw new js(qs.FAILED_PRECONDITION,"The client has already been terminated.")}ao(t,e,n){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([r,s])=>this.connection.ao(t,e,n,r,s))).catch((t=>{throw"FirebaseError"===t.name?(t.code===qs.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new js(qs.UNKNOWN,t.toString())}))}_o(t,e,n,r){return this.su(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then((([s,i])=>this.connection._o(t,e,n,s,i,r))).catch((t=>{throw"FirebaseError"===t.name?(t.code===qs.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),t):new js(qs.UNKNOWN,t.toString())}))}terminate(){this.nu=!0}}class eu{constructor(t,e){this.asyncQueue=t,this.onlineStateHandler=e,this.state="Unknown",this.iu=0,this.ru=null,this.ou=!0}uu(){0===this.iu&&(this.cu("Unknown"),this.ru=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,(()=>(this.ru=null,this.au("Backend didn't respond within 10 seconds."),this.cu("Offline"),Promise.resolve()))))}hu(t){"Online"===this.state?this.cu("Unknown"):(this.iu++,this.iu>=1&&(this.lu(),this.au(`Connection failed 1 times. Most recent error: ${t.toString()}`),this.cu("Offline")))}set(t){this.lu(),this.iu=0,"Online"===t&&(this.ou=!1),this.cu(t)}cu(t){t!==this.state&&(this.state=t,this.onlineStateHandler(t))}au(t){const e=`Could not reach Cloud Firestore backend. ${t}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.ou?(Ps(e),this.ou=!1):Ls("OnlineStateTracker",e)}lu(){null!==this.ru&&(this.ru.cancel(),this.ru=null)}}
|
|
1473
|
+
/**
|
|
1474
|
+
* @license
|
|
1475
|
+
* Copyright 2017 Google LLC
|
|
1476
|
+
*
|
|
1477
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1478
|
+
* you may not use this file except in compliance with the License.
|
|
1479
|
+
* You may obtain a copy of the License at
|
|
1480
|
+
*
|
|
1481
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1482
|
+
*
|
|
1483
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1484
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1485
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1486
|
+
* See the License for the specific language governing permissions and
|
|
1487
|
+
* limitations under the License.
|
|
1488
|
+
*/class nu{constructor(t,e,n,r,s){this.localStore=t,this.datastore=e,this.asyncQueue=n,this.remoteSyncer={},this.fu=[],this.du=new Map,this._u=new Set,this.wu=[],this.mu=s,this.mu.Ur((t=>{n.enqueueAndForget((async()=>{lu(this)&&(Ls("RemoteStore","Restarting streams for network reachability change."),await async function(t){const e=Vs(t);e._u.add(4),await su(e),e.gu.set("Unknown"),e._u.delete(4),await ru(e)}(this))}))})),this.gu=new eu(n,r)}}async function ru(t){if(lu(t))for(const e of t.wu)await e(!0)}async function su(t){for(const e of t.wu)await e(!1)}function iu(t,e){const n=Vs(t);n.du.has(e.targetId)||(n.du.set(e.targetId,e),hu(n)?uu(n):vu(n).ko()&&au(n,e))}function ou(t,e){const n=Vs(t),r=vu(n);n.du.delete(e),r.ko()&&cu(n,e),0===n.du.size&&(r.ko()?r.Fo():lu(n)&&n.gu.set("Unknown"))}function au(t,e){t.yu.Ot(e.targetId),vu(t).zo(e)}function cu(t,e){t.yu.Ot(e),vu(t).Ho(e)}function uu(t){t.yu=new Va({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),ne:e=>t.du.get(e)||null}),vu(t).start(),t.gu.uu()}function hu(t){return lu(t)&&!vu(t).No()&&t.du.size>0}function lu(t){return 0===Vs(t)._u.size}function du(t){t.yu=void 0}async function fu(t){t.du.forEach(((e,n)=>{au(t,e)}))}async function pu(t,e){du(t),hu(t)?(t.gu.hu(e),uu(t)):t.gu.set("Unknown")}async function gu(t,e,n){if(t.gu.set("Online"),e instanceof Ua&&2===e.state&&e.cause)try{await async function(t,e){const n=e.cause;for(const r of e.targetIds)t.du.has(r)&&(await t.remoteSyncer.rejectListen(r,n),t.du.delete(r),t.yu.removeTarget(r))}(t,e)}catch(n){Ls("RemoteStore","Failed to remove targets %s: %s ",e.targetIds.join(","),n),await mu(t,n)}else if(e instanceof Ma?t.yu.Kt(e):e instanceof xa?t.yu.Jt(e):t.yu.jt(e),!n.isEqual(ni.min()))try{const e=await Fc(t.localStore);n.compareTo(e)>=0&&await function(t,e){const n=t.yu.Zt(e);return n.targetChanges.forEach(((n,r)=>{if(n.resumeToken.approximateByteSize()>0){const s=t.du.get(r);s&&t.du.set(r,s.withResumeToken(n.resumeToken,e))}})),n.targetMismatches.forEach((e=>{const n=t.du.get(e);if(!n)return;t.du.set(e,n.withResumeToken(_i.EMPTY_BYTE_STRING,n.snapshotVersion)),cu(t,e);const r=new pc(n.target,e,1,n.sequenceNumber);au(t,r)})),t.remoteSyncer.applyRemoteEvent(n)}(t,n)}catch(e){Ls("RemoteStore","Failed to raise snapshot:",e),await mu(t,e)}}async function mu(t,e,n){if(!pi(e))throw e;t._u.add(1),await su(t),t.gu.set("Offline"),n||(n=()=>Fc(t.localStore)),t.asyncQueue.enqueueRetryable((async()=>{Ls("RemoteStore","Retrying IndexedDB access"),await n(),t._u.delete(1),await ru(t)}))}async function yu(t,e){const n=Vs(t);n.asyncQueue.verifyOperationInProgress(),Ls("RemoteStore","RemoteStore received new credentials");const r=lu(n);n._u.add(3),await su(n),r&&n.gu.set("Unknown"),await n.remoteSyncer.handleCredentialChange(e),n._u.delete(3),await ru(n)}function vu(t){return t.pu||(t.pu=function(t,e,n){const r=Vs(t);return r.su(),new Zc(e,r.connection,r.authCredentials,r.appCheckCredentials,r.yt,n)
|
|
1489
|
+
/**
|
|
1490
|
+
* @license
|
|
1491
|
+
* Copyright 2018 Google LLC
|
|
1492
|
+
*
|
|
1493
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1494
|
+
* you may not use this file except in compliance with the License.
|
|
1495
|
+
* You may obtain a copy of the License at
|
|
1496
|
+
*
|
|
1497
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1498
|
+
*
|
|
1499
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1500
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1501
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1502
|
+
* See the License for the specific language governing permissions and
|
|
1503
|
+
* limitations under the License.
|
|
1504
|
+
*/}(t.datastore,t.asyncQueue,{Yr:fu.bind(null,t),Zr:pu.bind(null,t),Wo:gu.bind(null,t)}),t.wu.push((async e=>{e?(t.pu.Mo(),hu(t)?uu(t):t.gu.set("Unknown")):(await t.pu.stop(),du(t))}))),t.pu
|
|
1505
|
+
/**
|
|
1506
|
+
* @license
|
|
1507
|
+
* Copyright 2017 Google LLC
|
|
1508
|
+
*
|
|
1509
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1510
|
+
* you may not use this file except in compliance with the License.
|
|
1511
|
+
* You may obtain a copy of the License at
|
|
1512
|
+
*
|
|
1513
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1514
|
+
*
|
|
1515
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1516
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1517
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1518
|
+
* See the License for the specific language governing permissions and
|
|
1519
|
+
* limitations under the License.
|
|
1520
|
+
*/}class wu{constructor(t,e,n,r,s){this.asyncQueue=t,this.timerId=e,this.targetTimeMs=n,this.op=r,this.removalCallback=s,this.deferred=new Bs,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch((t=>{}))}static createAndSchedule(t,e,n,r,s){const i=Date.now()+n,o=new wu(t,e,i,r,s);return o.start(n),o}start(t){this.timerHandle=setTimeout((()=>this.handleDelayElapsed()),t)}skipDelay(){return this.handleDelayElapsed()}cancel(t){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new js(qs.CANCELLED,"Operation cancelled"+(t?": "+t:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget((()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then((t=>this.deferred.resolve(t)))):Promise.resolve()))}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Iu(t,e){if(Ps("AsyncQueue",`${e}: ${t}`),pi(t))return new js(qs.UNAVAILABLE,`${e}: ${t}`);throw t}
|
|
1521
|
+
/**
|
|
1522
|
+
* @license
|
|
1523
|
+
* Copyright 2017 Google LLC
|
|
1524
|
+
*
|
|
1525
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1526
|
+
* you may not use this file except in compliance with the License.
|
|
1527
|
+
* You may obtain a copy of the License at
|
|
1528
|
+
*
|
|
1529
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1530
|
+
*
|
|
1531
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1532
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1533
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1534
|
+
* See the License for the specific language governing permissions and
|
|
1535
|
+
* limitations under the License.
|
|
1536
|
+
*/class bu{constructor(t){this.comparator=t?(e,n)=>t(e,n)||ai.comparator(e.key,n.key):(t,e)=>ai.comparator(t.key,e.key),this.keyedMap=Ta(),this.sortedSet=new po(this.comparator)}static emptySet(t){return new bu(t.comparator)}has(t){return null!=this.keyedMap.get(t)}get(t){return this.keyedMap.get(t)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(t){const e=this.keyedMap.get(t);return e?this.sortedSet.indexOf(e):-1}get size(){return this.sortedSet.size}forEach(t){this.sortedSet.inorderTraversal(((e,n)=>(t(e),!1)))}add(t){const e=this.delete(t.key);return e.copy(e.keyedMap.insert(t.key,t),e.sortedSet.insert(t,null))}delete(t){const e=this.get(t);return e?this.copy(this.keyedMap.remove(t),this.sortedSet.remove(e)):this}isEqual(t){if(!(t instanceof bu))return!1;if(this.size!==t.size)return!1;const e=this.sortedSet.getIterator(),n=t.sortedSet.getIterator();for(;e.hasNext();){const t=e.getNext().key,r=n.getNext().key;if(!t.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach((e=>{t.push(e.toString())})),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(t,e){const n=new bu;return n.comparator=this.comparator,n.keyedMap=t,n.sortedSet=e,n}}
|
|
1537
|
+
/**
|
|
1538
|
+
* @license
|
|
1539
|
+
* Copyright 2017 Google LLC
|
|
1540
|
+
*
|
|
1541
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1542
|
+
* you may not use this file except in compliance with the License.
|
|
1543
|
+
* You may obtain a copy of the License at
|
|
1544
|
+
*
|
|
1545
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1546
|
+
*
|
|
1547
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1548
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1549
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1550
|
+
* See the License for the specific language governing permissions and
|
|
1551
|
+
* limitations under the License.
|
|
1552
|
+
*/class Eu{constructor(){this.Tu=new po(ai.comparator)}track(t){const e=t.doc.key,n=this.Tu.get(e);n?0!==t.type&&3===n.type?this.Tu=this.Tu.insert(e,t):3===t.type&&1!==n.type?this.Tu=this.Tu.insert(e,{type:n.type,doc:t.doc}):2===t.type&&2===n.type?this.Tu=this.Tu.insert(e,{type:2,doc:t.doc}):2===t.type&&0===n.type?this.Tu=this.Tu.insert(e,{type:0,doc:t.doc}):1===t.type&&0===n.type?this.Tu=this.Tu.remove(e):1===t.type&&2===n.type?this.Tu=this.Tu.insert(e,{type:1,doc:n.doc}):0===t.type&&1===n.type?this.Tu=this.Tu.insert(e,{type:2,doc:t.doc}):Us():this.Tu=this.Tu.insert(e,t)}Eu(){const t=[];return this.Tu.inorderTraversal(((e,n)=>{t.push(n)})),t}}class _u{constructor(t,e,n,r,s,i,o,a,c){this.query=t,this.docs=e,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=s,this.fromCache=i,this.syncStateChanged=o,this.excludesMetadataChanges=a,this.hasCachedResults=c}static fromInitialDocuments(t,e,n,r,s){const i=[];return e.forEach((t=>{i.push({type:0,doc:t})})),new _u(t,e,bu.emptySet(e),i,n,r,!0,!1,s)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(t){if(!(this.fromCache===t.fromCache&&this.hasCachedResults===t.hasCachedResults&&this.syncStateChanged===t.syncStateChanged&&this.mutatedKeys.isEqual(t.mutatedKeys)&&Uo(this.query,t.query)&&this.docs.isEqual(t.docs)&&this.oldDocs.isEqual(t.oldDocs)))return!1;const e=this.docChanges,n=t.docChanges;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(e[t].type!==n[t].type||!e[t].doc.isEqual(n[t].doc))return!1;return!0}}
|
|
1553
|
+
/**
|
|
1554
|
+
* @license
|
|
1555
|
+
* Copyright 2017 Google LLC
|
|
1556
|
+
*
|
|
1557
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1558
|
+
* you may not use this file except in compliance with the License.
|
|
1559
|
+
* You may obtain a copy of the License at
|
|
1560
|
+
*
|
|
1561
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1562
|
+
*
|
|
1563
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1564
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1565
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1566
|
+
* See the License for the specific language governing permissions and
|
|
1567
|
+
* limitations under the License.
|
|
1568
|
+
*/class Tu{constructor(){this.Au=void 0,this.listeners=[]}}class Su{constructor(){this.queries=new Ia((t=>Fo(t)),Uo),this.onlineState="Unknown",this.Ru=new Set}}async function Au(t,e){const n=Vs(t),r=e.query;let s=!1,i=n.queries.get(r);if(i||(s=!0,i=new Tu),s)try{i.Au=await n.onListen(r)}catch(t){const n=Iu(t,`Initialization of query '${Vo(e.query)}' failed`);return void e.onError(n)}n.queries.set(r,i),i.listeners.push(e),e.bu(n.onlineState),i.Au&&e.Pu(i.Au)&&Du(n)}async function Cu(t,e){const n=Vs(t),r=e.query;let s=!1;const i=n.queries.get(r);if(i){const t=i.listeners.indexOf(e);t>=0&&(i.listeners.splice(t,1),s=0===i.listeners.length)}if(s)return n.queries.delete(r),n.onUnlisten(r)}function ku(t,e){const n=Vs(t);let r=!1;for(const t of e){const e=t.query,s=n.queries.get(e);if(s){for(const e of s.listeners)e.Pu(t)&&(r=!0);s.Au=t}}r&&Du(n)}function Nu(t,e,n){const r=Vs(t),s=r.queries.get(e);if(s)for(const t of s.listeners)t.onError(n);r.queries.delete(e)}function Du(t){t.Ru.forEach((t=>{t.next()}))}class Ru{constructor(t,e,n){this.query=t,this.vu=e,this.Vu=!1,this.Su=null,this.onlineState="Unknown",this.options=n||{}}Pu(t){if(!this.options.includeMetadataChanges){const e=[];for(const n of t.docChanges)3!==n.type&&e.push(n);t=new _u(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.Vu?this.Du(t)&&(this.vu.next(t),e=!0):this.Cu(t,this.onlineState)&&(this.xu(t),e=!0),this.Su=t,e}onError(t){this.vu.error(t)}bu(t){this.onlineState=t;let e=!1;return this.Su&&!this.Vu&&this.Cu(this.Su,t)&&(this.xu(this.Su),e=!0),e}Cu(t,e){if(!t.fromCache)return!0;const n="Offline"!==e;return(!this.options.Nu||!n)&&(!t.docs.isEmpty()||t.hasCachedResults||"Offline"===e)}Du(t){if(t.docChanges.length>0)return!0;const e=this.Su&&this.Su.hasPendingWrites!==t.hasPendingWrites;return!(!t.syncStateChanged&&!e)&&!0===this.options.includeMetadataChanges}xu(t){t=_u.fromInitialDocuments(t.query,t.docs,t.mutatedKeys,t.fromCache,t.hasCachedResults),this.Vu=!0,this.vu.next(t)}}
|
|
1569
|
+
/**
|
|
1570
|
+
* @license
|
|
1571
|
+
* Copyright 2017 Google LLC
|
|
1572
|
+
*
|
|
1573
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1574
|
+
* you may not use this file except in compliance with the License.
|
|
1575
|
+
* You may obtain a copy of the License at
|
|
1576
|
+
*
|
|
1577
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1578
|
+
*
|
|
1579
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1580
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1581
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1582
|
+
* See the License for the specific language governing permissions and
|
|
1583
|
+
* limitations under the License.
|
|
1584
|
+
*/class Ou{constructor(t){this.key=t}}class Lu{constructor(t){this.key=t}}class Pu{constructor(t,e){this.query=t,this.qu=e,this.Uu=null,this.hasCachedResults=!1,this.current=!1,this.Ku=Da(),this.mutatedKeys=Da(),this.Gu=jo(t),this.Qu=new bu(this.Gu)}get ju(){return this.qu}Wu(t,e){const n=e?e.zu:new Eu,r=e?e.Qu:this.Qu;let s=e?e.mutatedKeys:this.mutatedKeys,i=r,o=!1;const a="F"===this.query.limitType&&r.size===this.query.limit?r.last():null,c="L"===this.query.limitType&&r.size===this.query.limit?r.first():null;if(t.inorderTraversal(((t,e)=>{const u=r.get(t),h=qo(this.query,e)?e:null,l=!!u&&this.mutatedKeys.has(u.key),d=!!h&&(h.hasLocalMutations||this.mutatedKeys.has(h.key)&&h.hasCommittedMutations);let f=!1;u&&h?u.data.isEqual(h.data)?l!==d&&(n.track({type:3,doc:h}),f=!0):this.Hu(u,h)||(n.track({type:2,doc:h}),f=!0,(a&&this.Gu(h,a)>0||c&&this.Gu(h,c)<0)&&(o=!0)):!u&&h?(n.track({type:0,doc:h}),f=!0):u&&!h&&(n.track({type:1,doc:u}),f=!0,(a||c)&&(o=!0)),f&&(h?(i=i.add(h),s=d?s.add(t):s.delete(t)):(i=i.delete(t),s=s.delete(t)))})),null!==this.query.limit)for(;i.size>this.query.limit;){const t="F"===this.query.limitType?i.last():i.first();i=i.delete(t.key),s=s.delete(t.key),n.track({type:1,doc:t})}return{Qu:i,zu:n,$i:o,mutatedKeys:s}}Hu(t,e){return t.hasLocalMutations&&e.hasCommittedMutations&&!e.hasLocalMutations}applyChanges(t,e,n){const r=this.Qu;this.Qu=t.Qu,this.mutatedKeys=t.mutatedKeys;const s=t.zu.Eu();s.sort(((t,e)=>function(t,e){const n=t=>{switch(t){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return Us()}};return n(t)-n(e)}
|
|
1585
|
+
/**
|
|
1586
|
+
* @license
|
|
1587
|
+
* Copyright 2020 Google LLC
|
|
1588
|
+
*
|
|
1589
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1590
|
+
* you may not use this file except in compliance with the License.
|
|
1591
|
+
* You may obtain a copy of the License at
|
|
1592
|
+
*
|
|
1593
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1594
|
+
*
|
|
1595
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1596
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1597
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1598
|
+
* See the License for the specific language governing permissions and
|
|
1599
|
+
* limitations under the License.
|
|
1600
|
+
*/(t.type,e.type)||this.Gu(t.doc,e.doc))),this.Ju(n);const i=e?this.Yu():[],o=0===this.Ku.size&&this.current?1:0,a=o!==this.Uu;return this.Uu=o,0!==s.length||a?{snapshot:new _u(this.query,t.Qu,r,s,t.mutatedKeys,0===o,a,!1,!!n&&n.resumeToken.approximateByteSize()>0),Xu:i}:{Xu:i}}bu(t){return this.current&&"Offline"===t?(this.current=!1,this.applyChanges({Qu:this.Qu,zu:new Eu,mutatedKeys:this.mutatedKeys,$i:!1},!1)):{Xu:[]}}Zu(t){return!this.qu.has(t)&&!!this.Qu.has(t)&&!this.Qu.get(t).hasLocalMutations}Ju(t){t&&(t.addedDocuments.forEach((t=>this.qu=this.qu.add(t))),t.modifiedDocuments.forEach((t=>{})),t.removedDocuments.forEach((t=>this.qu=this.qu.delete(t))),this.current=t.current)}Yu(){if(!this.current)return[];const t=this.Ku;this.Ku=Da(),this.Qu.forEach((t=>{this.Zu(t.key)&&(this.Ku=this.Ku.add(t.key))}));const e=[];return t.forEach((t=>{this.Ku.has(t)||e.push(new Lu(t))})),this.Ku.forEach((n=>{t.has(n)||e.push(new Ou(n))})),e}tc(t){this.qu=t.Hi,this.Ku=Da();const e=this.Wu(t.documents);return this.applyChanges(e,!0)}ec(){return _u.fromInitialDocuments(this.query,this.Qu,this.mutatedKeys,0===this.Uu,this.hasCachedResults)}}class Mu{constructor(t,e,n){this.query=t,this.targetId=e,this.view=n}}class xu{constructor(t){this.key=t,this.nc=!1}}class Uu{constructor(t,e,n,r,s,i){this.localStore=t,this.remoteStore=e,this.eventManager=n,this.sharedClientState=r,this.currentUser=s,this.maxConcurrentLimboResolutions=i,this.sc={},this.ic=new Ia((t=>Fo(t)),Uo),this.rc=new Map,this.oc=new Set,this.uc=new po(ai.comparator),this.cc=new Map,this.ac=new Sc,this.hc={},this.lc=new Map,this.fc=wc.vn(),this.onlineState="Unknown",this.dc=void 0}get isPrimaryClient(){return!0===this.dc}}async function Fu(t,e){const n=function(t){const e=Vs(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=qu.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=Ju.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Bu.bind(null,e),e.sc.Wo=ku.bind(null,e.eventManager),e.sc.wc=Nu.bind(null,e.eventManager),e}(t);let r,s;const i=n.ic.get(e);if(i)r=i.targetId,n.sharedClientState.addLocalQueryTarget(r),s=i.view.ec();else{const t=await function(t,e){const n=Vs(t);return n.persistence.runTransaction("Allocate target","readwrite",(t=>{let r;return n.Cs.getTargetData(t,e).next((s=>s?(r=s,fi.resolve(r)):n.Cs.allocateTargetId(t).next((s=>(r=new pc(e,s,0,t.currentSequenceNumber),n.Cs.addTargetData(t,r).next((()=>r)))))))})).then((t=>{const r=n.qi.get(t.targetId);return(null===r||t.snapshotVersion.compareTo(r.snapshotVersion)>0)&&(n.qi=n.qi.insert(t.targetId,t),n.Ui.set(e,t.targetId)),t}))}(n.localStore,Po(e));n.isPrimaryClient&&iu(n.remoteStore,t);const i=n.sharedClientState.addLocalQueryTarget(t.targetId);r=t.targetId,s=await async function(t,e,n,r,s){t._c=(e,n,r)=>async function(t,e,n,r){let s=e.view.Wu(n);s.$i&&(s=await jc(t.localStore,e.query,!1).then((({documents:t})=>e.view.Wu(t,s))));const i=r&&r.targetChanges.get(e.targetId),o=e.view.applyChanges(s,t.isPrimaryClient,i);return Ku(t,e.targetId,o.Xu),o.snapshot}(t,e,n,r);const i=await jc(t.localStore,e,!0),o=new Pu(e,i.Hi),a=o.Wu(i.documents),c=Pa.createSynthesizedTargetChangeForCurrentChange(n,r&&"Offline"!==t.onlineState,s),u=o.applyChanges(a,t.isPrimaryClient,c);Ku(t,n,u.Xu);const h=new Mu(e,n,o);return t.ic.set(e,h),t.rc.has(n)?t.rc.get(n).push(e):t.rc.set(n,[e]),u.snapshot}(n,e,r,"current"===i,t.resumeToken)}return s}async function Vu(t,e){const n=Vs(t),r=n.ic.get(e),s=n.rc.get(r.targetId);if(s.length>1)return n.rc.set(r.targetId,s.filter((t=>!Uo(t,e)))),void n.ic.delete(e);n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(r.targetId),n.sharedClientState.isActiveQueryTarget(r.targetId)||await qc(n.localStore,r.targetId,!1).then((()=>{n.sharedClientState.clearQueryState(r.targetId),ou(n.remoteStore,r.targetId),zu(n,r.targetId)})).catch(di)):(zu(n,r.targetId),await qc(n.localStore,r.targetId,!0))}async function qu(t,e){const n=Vs(t);try{const t=await Vc(n.localStore,e);e.targetChanges.forEach(((t,e)=>{const r=n.cc.get(e);r&&(Fs(t.addedDocuments.size+t.modifiedDocuments.size+t.removedDocuments.size<=1),t.addedDocuments.size>0?r.nc=!0:t.modifiedDocuments.size>0?Fs(r.nc):t.removedDocuments.size>0&&(Fs(r.nc),r.nc=!1))})),await Wu(n,t,e)}catch(t){await di(t)}}function ju(t,e,n){const r=Vs(t);if(r.isPrimaryClient&&0===n||!r.isPrimaryClient&&1===n){const t=[];r.ic.forEach(((n,r)=>{const s=r.view.bu(e);s.snapshot&&t.push(s.snapshot)})),function(t,e){const n=Vs(t);n.onlineState=e;let r=!1;n.queries.forEach(((t,n)=>{for(const t of n.listeners)t.bu(e)&&(r=!0)})),r&&Du(n)}(r.eventManager,e),t.length&&r.sc.Wo(t),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}async function Bu(t,e,n){const r=Vs(t);r.sharedClientState.updateQueryState(e,"rejected",n);const s=r.cc.get(e),i=s&&s.key;if(i){let t=new po(ai.comparator);t=t.insert(i,bo.newNoDocument(i,ni.min()));const n=Da().add(i),s=new La(ni.min(),new Map,new yo(Zs),t,n);await qu(r,s),r.uc=r.uc.remove(i),r.cc.delete(e),Gu(r)}else await qc(r.localStore,e,!1).then((()=>zu(r,e,n))).catch(di)}function zu(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.rc.get(e))t.ic.delete(r),n&&t.sc.wc(r,n);t.rc.delete(e),t.isPrimaryClient&&t.ac.ls(e).forEach((e=>{t.ac.containsKey(e)||$u(t,e)}))}function $u(t,e){t.oc.delete(e.path.canonicalString());const n=t.uc.get(e);null!==n&&(ou(t.remoteStore,n),t.uc=t.uc.remove(e),t.cc.delete(n),Gu(t))}function Ku(t,e,n){for(const r of n)r instanceof Ou?(t.ac.addReference(r.key,e),Hu(t,r)):r instanceof Lu?(Ls("SyncEngine","Document no longer in limbo: "+r.key),t.ac.removeReference(r.key,e),t.ac.containsKey(r.key)||$u(t,r.key)):Us()}function Hu(t,e){const n=e.key,r=n.path.canonicalString();t.uc.get(n)||t.oc.has(r)||(Ls("SyncEngine","New document in limbo: "+n),t.oc.add(r),Gu(t))}function Gu(t){for(;t.oc.size>0&&t.uc.size<t.maxConcurrentLimboResolutions;){const e=t.oc.values().next().value;t.oc.delete(e);const n=new ai(si.fromString(e)),r=t.fc.next();t.cc.set(r,new xu(n)),t.uc=t.uc.insert(n,r),iu(t.remoteStore,new pc(Po(ko(n.path)),r,2,gi.at))}}async function Wu(t,e,n){const r=Vs(t),s=[],i=[],o=[];r.ic.isEmpty()||(r.ic.forEach(((t,a)=>{o.push(r._c(a,e,n).then((t=>{if((t||n)&&r.isPrimaryClient&&r.sharedClientState.updateQueryState(a.targetId,(null==t?void 0:t.fromCache)?"not-current":"current"),t){s.push(t);const e=Pc.Ci(a.targetId,t);i.push(e)}})))})),await Promise.all(o),r.sc.Wo(s),await async function(t,e){const n=Vs(t);try{await n.persistence.runTransaction("notifyLocalViewChanges","readwrite",(t=>fi.forEach(e,(e=>fi.forEach(e.Si,(r=>n.persistence.referenceDelegate.addReference(t,e.targetId,r))).next((()=>fi.forEach(e.Di,(r=>n.persistence.referenceDelegate.removeReference(t,e.targetId,r)))))))))}catch(t){if(!pi(t))throw t;Ls("LocalStore","Failed to update sequence numbers: "+t)}for(const t of e){const e=t.targetId;if(!t.fromCache){const t=n.qi.get(e),r=t.snapshotVersion,s=t.withLastLimboFreeSnapshotVersion(r);n.qi=n.qi.insert(e,s)}}}(r.localStore,i))}async function Qu(t,e){const n=Vs(t);if(!n.currentUser.isEqual(e)){Ls("SyncEngine","User change. New user:",e.toKey());const t=await Uc(n.localStore,e);n.currentUser=e,function(t,e){t.lc.forEach((t=>{t.forEach((t=>{t.reject(new js(qs.CANCELLED,"'waitForPendingWrites' promise is rejected due to a user change."))}))})),t.lc.clear()}(n),n.sharedClientState.handleUserChange(e,t.removedBatchIds,t.addedBatchIds),await Wu(n,t.ji)}}function Ju(t,e){const n=Vs(t),r=n.cc.get(e);if(r&&r.nc)return Da().add(r.key);{let t=Da();const r=n.rc.get(e);if(!r)return t;for(const e of r){const r=n.ic.get(e);t=t.unionWith(r.view.ju)}return t}}class Xu{constructor(){this.synchronizeTabs=!1}async initialize(t){this.yt=Jc(t.databaseInfo.databaseId),this.sharedClientState=this.gc(t),this.persistence=this.yc(t),await this.persistence.start(),this.localStore=this.Ic(t),this.gcScheduler=this.Tc(t,this.localStore),this.indexBackfillerScheduler=this.Ec(t,this.localStore)}Tc(t,e){return null}Ec(t,e){return null}Ic(t){return function(t,e,n,r){return new xc(t,e,n,r)}(this.persistence,new Mc,t.initialUser,this.yt)}yc(t){return new Rc(Lc.Bs,this.yt)}gc(t){return new zc}async terminate(){this.gcScheduler&&this.gcScheduler.stop(),await this.sharedClientState.shutdown(),await this.persistence.shutdown()}}class Yu{async initialize(t,e){this.localStore||(this.localStore=t.localStore,this.sharedClientState=t.sharedClientState,this.datastore=this.createDatastore(e),this.remoteStore=this.createRemoteStore(e),this.eventManager=this.createEventManager(e),this.syncEngine=this.createSyncEngine(e,!t.synchronizeTabs),this.sharedClientState.onlineStateHandler=t=>ju(this.syncEngine,t,1),this.remoteStore.remoteSyncer.handleCredentialChange=Qu.bind(null,this.syncEngine),await async function(t,e){const n=Vs(t);e?(n._u.delete(2),await ru(n)):e||(n._u.add(2),await su(n),n.gu.set("Unknown"))}(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(t){return new Su}createDatastore(t){const e=Jc(t.databaseInfo.databaseId),n=(r=t.databaseInfo,new Wc(r));var r;return function(t,e,n,r){return new tu(t,e,n,r)}(t.authCredentials,t.appCheckCredentials,n,e)}createRemoteStore(t){return e=this.localStore,n=this.datastore,r=t.asyncQueue,s=t=>ju(this.syncEngine,t,0),i=Kc.C()?new Kc:new $c,new nu(e,n,r,s,i);var e,n,r,s,i}createSyncEngine(t,e){return function(t,e,n,r,s,i,o){const a=new Uu(t,e,n,r,s,i);return o&&(a.dc=!0),a}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,t.initialUser,t.maxConcurrentLimboResolutions,e)}terminate(){return async function(t){const e=Vs(t);Ls("RemoteStore","RemoteStore shutting down."),e._u.add(5),await su(e),e.mu.shutdown(),e.gu.set("Unknown")}(this.remoteStore)}}
|
|
1601
|
+
/**
|
|
1602
|
+
* @license
|
|
1603
|
+
* Copyright 2017 Google LLC
|
|
1604
|
+
*
|
|
1605
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1606
|
+
* you may not use this file except in compliance with the License.
|
|
1607
|
+
* You may obtain a copy of the License at
|
|
1608
|
+
*
|
|
1609
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1610
|
+
*
|
|
1611
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1612
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1613
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1614
|
+
* See the License for the specific language governing permissions and
|
|
1615
|
+
* limitations under the License.
|
|
1616
|
+
*/function Zu(t,e,n){if(!n)throw new js(qs.INVALID_ARGUMENT,`Function ${t}() cannot be called with an empty ${e}.`)}function th(t){if(!ai.isDocumentKey(t))throw new js(qs.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${t} has ${t.length}.`)}function eh(t){if(ai.isDocumentKey(t))throw new js(qs.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${t} has ${t.length}.`)}function nh(t){if(void 0===t)return"undefined";if(null===t)return"null";if("string"==typeof t)return t.length>20&&(t=`${t.substring(0,20)}...`),JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return""+t;if("object"==typeof t){if(t instanceof Array)return"an array";{const e=function(t){return t.constructor?t.constructor.name:null}(t);return e?`a custom ${e} object`:"an object"}}return"function"==typeof t?"a function":Us()}function rh(t,e){if("_delegate"in t&&(t=t._delegate),!(t instanceof e)){if(e.name===t.constructor.name)throw new js(qs.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const n=nh(t);throw new js(qs.INVALID_ARGUMENT,`Expected type '${e.name}', but it was: ${n}`)}}return t}
|
|
1617
|
+
/**
|
|
1618
|
+
* @license
|
|
1619
|
+
* Copyright 2020 Google LLC
|
|
1620
|
+
*
|
|
1621
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1622
|
+
* you may not use this file except in compliance with the License.
|
|
1623
|
+
* You may obtain a copy of the License at
|
|
1624
|
+
*
|
|
1625
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1626
|
+
*
|
|
1627
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1628
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1629
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1630
|
+
* See the License for the specific language governing permissions and
|
|
1631
|
+
* limitations under the License.
|
|
1632
|
+
*/const sh=new Map;class ih{constructor(t){var e;if(void 0===t.host){if(void 0!==t.ssl)throw new js(qs.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=t.host,this.ssl=null===(e=t.ssl)||void 0===e||e;if(this.credentials=t.credentials,this.ignoreUndefinedProperties=!!t.ignoreUndefinedProperties,void 0===t.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==t.cacheSizeBytes&&t.cacheSizeBytes<1048576)throw new js(qs.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=t.cacheSizeBytes}this.experimentalForceLongPolling=!!t.experimentalForceLongPolling,this.experimentalAutoDetectLongPolling=!!t.experimentalAutoDetectLongPolling,this.useFetchStreams=!!t.useFetchStreams,function(t,e,n,r){if(!0===e&&!0===r)throw new js(qs.INVALID_ARGUMENT,`${t} and ${n} cannot be used together.`)}("experimentalForceLongPolling",t.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",t.experimentalAutoDetectLongPolling)}isEqual(t){return this.host===t.host&&this.ssl===t.ssl&&this.credentials===t.credentials&&this.cacheSizeBytes===t.cacheSizeBytes&&this.experimentalForceLongPolling===t.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===t.experimentalAutoDetectLongPolling&&this.ignoreUndefinedProperties===t.ignoreUndefinedProperties&&this.useFetchStreams===t.useFetchStreams}}
|
|
1633
|
+
/**
|
|
1634
|
+
* @license
|
|
1635
|
+
* Copyright 2020 Google LLC
|
|
1636
|
+
*
|
|
1637
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1638
|
+
* you may not use this file except in compliance with the License.
|
|
1639
|
+
* You may obtain a copy of the License at
|
|
1640
|
+
*
|
|
1641
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1642
|
+
*
|
|
1643
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1644
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1645
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1646
|
+
* See the License for the specific language governing permissions and
|
|
1647
|
+
* limitations under the License.
|
|
1648
|
+
*/class oh{constructor(t,e,n,r){this._authCredentials=t,this._appCheckCredentials=e,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ih({}),this._settingsFrozen=!1}get app(){if(!this._app)throw new js(qs.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return void 0!==this._terminateTask}_setSettings(t){if(this._settingsFrozen)throw new js(qs.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new ih(t),void 0!==t.credentials&&(this._authCredentials=function(t){if(!t)return new $s;switch(t.type){case"gapi":const e=t.client;return new Ws(e,t.sessionIndex||"0",t.iamToken||null,t.authTokenFactory||null);case"provider":return t.client;default:throw new js(qs.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(t.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return this._terminateTask||(this._terminateTask=this._terminate()),this._terminateTask}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(t){const e=sh.get(t);e&&(Ls("ComponentProvider","Removing Datastore"),sh.delete(t),e.terminate())}(this),Promise.resolve()}}function ah(t,e,n,r={}){var i;const o=(t=rh(t,oh))._getSettings();if("firestore.googleapis.com"!==o.host&&o.host!==e&&Ms("Host has been set in both settings() and useEmulator(), emulator host will be used"),t._setSettings(Object.assign(Object.assign({},o),{host:`${e}:${n}`,ssl:!1})),r.mockUserToken){let e,n;if("string"==typeof r.mockUserToken)e=r.mockUserToken,n=Ns.MOCK_USER;else{e=function(t,e){if(t.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=e||"demo-project",r=t.iat||0,i=t.sub||t.user_id;if(!i)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const o=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},t);return[s(JSON.stringify({alg:"none",type:"JWT"})),s(JSON.stringify(o)),""].join(".")}
|
|
1649
|
+
/**
|
|
1650
|
+
* @license
|
|
1651
|
+
* Copyright 2017 Google LLC
|
|
1652
|
+
*
|
|
1653
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1654
|
+
* you may not use this file except in compliance with the License.
|
|
1655
|
+
* You may obtain a copy of the License at
|
|
1656
|
+
*
|
|
1657
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1658
|
+
*
|
|
1659
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1660
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1661
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1662
|
+
* See the License for the specific language governing permissions and
|
|
1663
|
+
* limitations under the License.
|
|
1664
|
+
*/(r.mockUserToken,null===(i=t._app)||void 0===i?void 0:i.options.projectId);const o=r.mockUserToken.sub||r.mockUserToken.user_id;if(!o)throw new js(qs.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");n=new Ns(o)}t._authCredentials=new Ks(new zs(e,n))}}
|
|
1665
|
+
/**
|
|
1666
|
+
* @license
|
|
1667
|
+
* Copyright 2020 Google LLC
|
|
1668
|
+
*
|
|
1669
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1670
|
+
* you may not use this file except in compliance with the License.
|
|
1671
|
+
* You may obtain a copy of the License at
|
|
1672
|
+
*
|
|
1673
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1674
|
+
*
|
|
1675
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1676
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1677
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1678
|
+
* See the License for the specific language governing permissions and
|
|
1679
|
+
* limitations under the License.
|
|
1680
|
+
*/class ch{constructor(t,e,n){this.converter=e,this._key=n,this.type="document",this.firestore=t}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new hh(this.firestore,this.converter,this._key.path.popLast())}withConverter(t){return new ch(this.firestore,t,this._key)}}class uh{constructor(t,e,n){this.converter=e,this._query=n,this.type="query",this.firestore=t}withConverter(t){return new uh(this.firestore,t,this._query)}}class hh extends uh{constructor(t,e,n){super(t,e,ko(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const t=this._path.popLast();return t.isEmpty()?null:new ch(this.firestore,null,new ai(t))}withConverter(t){return new hh(this.firestore,t,this._path)}}function lh(t,e,...n){if(t=E(t),Zu("collection","path",e),t instanceof oh){const r=si.fromString(e,...n);return eh(r),new hh(t,null,r)}{if(!(t instanceof ch||t instanceof hh))throw new js(qs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(si.fromString(e,...n));return eh(r),new hh(t.firestore,null,r)}}
|
|
1681
|
+
/**
|
|
1682
|
+
* @license
|
|
1683
|
+
* Copyright 2020 Google LLC
|
|
1684
|
+
*
|
|
1685
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1686
|
+
* you may not use this file except in compliance with the License.
|
|
1687
|
+
* You may obtain a copy of the License at
|
|
1688
|
+
*
|
|
1689
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1690
|
+
*
|
|
1691
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1692
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1693
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1694
|
+
* See the License for the specific language governing permissions and
|
|
1695
|
+
* limitations under the License.
|
|
1696
|
+
*/
|
|
1697
|
+
/**
|
|
1698
|
+
* @license
|
|
1699
|
+
* Copyright 2017 Google LLC
|
|
1700
|
+
*
|
|
1701
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1702
|
+
* you may not use this file except in compliance with the License.
|
|
1703
|
+
* You may obtain a copy of the License at
|
|
1704
|
+
*
|
|
1705
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1706
|
+
*
|
|
1707
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1708
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1709
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1710
|
+
* See the License for the specific language governing permissions and
|
|
1711
|
+
* limitations under the License.
|
|
1712
|
+
*/
|
|
1713
|
+
class dh{constructor(t){this.observer=t,this.muted=!1}next(t){this.observer.next&&this.Rc(this.observer.next,t)}error(t){this.observer.error?this.Rc(this.observer.error,t):Ps("Uncaught Error in snapshot listener:",t.toString())}bc(){this.muted=!0}Rc(t,e){this.muted||setTimeout((()=>{this.muted||t(e)}),0)}}
|
|
1714
|
+
/**
|
|
1715
|
+
* @license
|
|
1716
|
+
* Copyright 2017 Google LLC
|
|
1717
|
+
*
|
|
1718
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1719
|
+
* you may not use this file except in compliance with the License.
|
|
1720
|
+
* You may obtain a copy of the License at
|
|
1721
|
+
*
|
|
1722
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1723
|
+
*
|
|
1724
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1725
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1726
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1727
|
+
* See the License for the specific language governing permissions and
|
|
1728
|
+
* limitations under the License.
|
|
1729
|
+
*/class fh{constructor(t,e,n,r){this.authCredentials=t,this.appCheckCredentials=e,this.asyncQueue=n,this.databaseInfo=r,this.user=Ns.UNAUTHENTICATED,this.clientId=Ys.R(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this.authCredentials.start(n,(async t=>{Ls("FirestoreClient","Received user=",t.uid),await this.authCredentialListener(t),this.user=t})),this.appCheckCredentials.start(n,(t=>(Ls("FirestoreClient","Received new app check token=",t),this.appCheckCredentialListener(t,this.user))))}async getConfiguration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(t){this.authCredentialListener=t}setAppCheckTokenChangeListener(t){this.appCheckCredentialListener=t}verifyNotTerminated(){if(this.asyncQueue.isShuttingDown)throw new js(qs.FAILED_PRECONDITION,"The client has already been terminated.")}terminate(){this.asyncQueue.enterRestrictedMode();const t=new Bs;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted((async()=>{try{this.onlineComponents&&await this.onlineComponents.terminate(),this.offlineComponents&&await this.offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),t.resolve()}catch(e){const n=Iu(e,"Failed to shutdown persistence");t.reject(n)}})),t.promise}}async function ph(t,e){t.asyncQueue.verifyOperationInProgress();const n=await async function(t){return t.offlineComponents||(Ls("FirestoreClient","Using default OfflineComponentProvider"),await async function(t,e){t.asyncQueue.verifyOperationInProgress(),Ls("FirestoreClient","Initializing OfflineComponentProvider");const n=await t.getConfiguration();await e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener((async t=>{r.isEqual(t)||(await Uc(e.localStore,t),r=t)})),e.persistence.setDatabaseDeletedListener((()=>t.terminate())),t.offlineComponents=e}(t,new Xu)),t.offlineComponents}(t);Ls("FirestoreClient","Initializing OnlineComponentProvider");const r=await t.getConfiguration();await e.initialize(n,r),t.setCredentialChangeListener((t=>yu(e.remoteStore,t))),t.setAppCheckTokenChangeListener(((t,n)=>yu(e.remoteStore,n))),t.onlineComponents=e}async function gh(t){const e=await async function(t){return t.onlineComponents||(Ls("FirestoreClient","Using default OnlineComponentProvider"),await ph(t,new Yu)),t.onlineComponents}(t),n=e.eventManager;return n.onListen=Fu.bind(null,e.syncEngine),n.onUnlisten=Vu.bind(null,e.syncEngine),n}class mh{constructor(){this.Bc=Promise.resolve(),this.Lc=[],this.qc=!1,this.Uc=[],this.Kc=null,this.Gc=!1,this.Qc=!1,this.jc=[],this.xo=new Xc(this,"async_queue_retry"),this.Wc=()=>{const t=Qc();t&&Ls("AsyncQueue","Visibility state changed to "+t.visibilityState),this.xo.Po()};const t=Qc();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Wc)}get isShuttingDown(){return this.qc}enqueueAndForget(t){this.enqueue(t)}enqueueAndForgetEvenWhileRestricted(t){this.zc(),this.Hc(t)}enterRestrictedMode(t){if(!this.qc){this.qc=!0,this.Qc=t||!1;const e=Qc();e&&"function"==typeof e.removeEventListener&&e.removeEventListener("visibilitychange",this.Wc)}}enqueue(t){if(this.zc(),this.qc)return new Promise((()=>{}));const e=new Bs;return this.Hc((()=>this.qc&&this.Qc?Promise.resolve():(t().then(e.resolve,e.reject),e.promise))).then((()=>e.promise))}enqueueRetryable(t){this.enqueueAndForget((()=>(this.Lc.push(t),this.Jc())))}async Jc(){if(0!==this.Lc.length){try{await this.Lc[0](),this.Lc.shift(),this.xo.reset()}catch(t){if(!pi(t))throw t;Ls("AsyncQueue","Operation failed with retryable error: "+t)}this.Lc.length>0&&this.xo.Ro((()=>this.Jc()))}}Hc(t){const e=this.Bc.then((()=>(this.Gc=!0,t().catch((t=>{this.Kc=t,this.Gc=!1;const e=function(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+"\n"+t.stack),e}
|
|
1730
|
+
/**
|
|
1731
|
+
* @license
|
|
1732
|
+
* Copyright 2017 Google LLC
|
|
1733
|
+
*
|
|
1734
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1735
|
+
* you may not use this file except in compliance with the License.
|
|
1736
|
+
* You may obtain a copy of the License at
|
|
1737
|
+
*
|
|
1738
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1739
|
+
*
|
|
1740
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1741
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1742
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1743
|
+
* See the License for the specific language governing permissions and
|
|
1744
|
+
* limitations under the License.
|
|
1745
|
+
*/(t);throw Ps("INTERNAL UNHANDLED ERROR: ",e),t})).then((t=>(this.Gc=!1,t))))));return this.Bc=e,e}enqueueAfterDelay(t,e,n){this.zc(),this.jc.indexOf(t)>-1&&(e=0);const r=wu.createAndSchedule(this,t,e,n,(t=>this.Yc(t)));return this.Uc.push(r),r}zc(){this.Kc&&Us()}verifyOperationInProgress(){}async Xc(){let t;do{t=this.Bc,await t}while(t!==this.Bc)}Zc(t){for(const e of this.Uc)if(e.timerId===t)return!0;return!1}ta(t){return this.Xc().then((()=>{this.Uc.sort(((t,e)=>t.targetTimeMs-e.targetTimeMs));for(const e of this.Uc)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Xc()}))}ea(t){this.jc.push(t)}Yc(t){const e=this.Uc.indexOf(t);this.Uc.splice(e,1)}}function yh(t){return function(t,e){if("object"!=typeof t||null===t)return!1;const n=t;for(const t of["next","error","complete"])if(t in n&&"function"==typeof n[t])return!0;return!1}
|
|
1746
|
+
/**
|
|
1747
|
+
* @license
|
|
1748
|
+
* Copyright 2020 Google LLC
|
|
1749
|
+
*
|
|
1750
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1751
|
+
* you may not use this file except in compliance with the License.
|
|
1752
|
+
* You may obtain a copy of the License at
|
|
1753
|
+
*
|
|
1754
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1755
|
+
*
|
|
1756
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1757
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1758
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1759
|
+
* See the License for the specific language governing permissions and
|
|
1760
|
+
* limitations under the License.
|
|
1761
|
+
*/(t)}class vh extends oh{constructor(t,e,n,r){super(t,e,n,r),this.type="firestore",this._queue=new mh,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}_terminate(){return this._firestoreClient||bh(this),this._firestoreClient.terminate()}}function wh(t,e){const n="string"==typeof t?t:e||"(default)",r=it("object"==typeof t?t:ht(),"firestore").getImmediate({identifier:n});if(!r._initialized){const t=(t=>{const e=u(t);if(!e)return;const n=e.lastIndexOf(":");if(n<=0||n+1===e.length)throw new Error(`Invalid host ${e} with no separate hostname and port!`);const r=parseInt(e.substring(n+1),10);return"["===e[0]?[e.substring(1,n-1),r]:[e.substring(0,n),r]})("firestore");t&&ah(r,...t)}return r}function Ih(t){return t._firestoreClient||bh(t),t._firestoreClient.verifyNotTerminated(),t._firestoreClient}function bh(t){var e;const n=t._freezeSettings(),r=function(t,e,n,r){return new mi(t,e,n,r.host,r.ssl,r.experimentalForceLongPolling,r.experimentalAutoDetectLongPolling,r.useFetchStreams)}
|
|
1762
|
+
/**
|
|
1763
|
+
* @license
|
|
1764
|
+
* Copyright 2020 Google LLC
|
|
1765
|
+
*
|
|
1766
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1767
|
+
* you may not use this file except in compliance with the License.
|
|
1768
|
+
* You may obtain a copy of the License at
|
|
1769
|
+
*
|
|
1770
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1771
|
+
*
|
|
1772
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1773
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1774
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1775
|
+
* See the License for the specific language governing permissions and
|
|
1776
|
+
* limitations under the License.
|
|
1777
|
+
*/(t._databaseId,(null===(e=t._app)||void 0===e?void 0:e.options.appId)||"",t._persistenceKey,n);t._firestoreClient=new fh(t._authCredentials,t._appCheckCredentials,t._queue,r)}
|
|
1778
|
+
/**
|
|
1779
|
+
* @license
|
|
1780
|
+
* Copyright 2020 Google LLC
|
|
1781
|
+
*
|
|
1782
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1783
|
+
* you may not use this file except in compliance with the License.
|
|
1784
|
+
* You may obtain a copy of the License at
|
|
1785
|
+
*
|
|
1786
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1787
|
+
*
|
|
1788
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1789
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1790
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1791
|
+
* See the License for the specific language governing permissions and
|
|
1792
|
+
* limitations under the License.
|
|
1793
|
+
*/
|
|
1794
|
+
/**
|
|
1795
|
+
* @license
|
|
1796
|
+
* Copyright 2020 Google LLC
|
|
1797
|
+
*
|
|
1798
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1799
|
+
* you may not use this file except in compliance with the License.
|
|
1800
|
+
* You may obtain a copy of the License at
|
|
1801
|
+
*
|
|
1802
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1803
|
+
*
|
|
1804
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1805
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1806
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1807
|
+
* See the License for the specific language governing permissions and
|
|
1808
|
+
* limitations under the License.
|
|
1809
|
+
*/class Eh{constructor(t){this._byteString=t}static fromBase64String(t){try{return new Eh(_i.fromBase64String(t))}catch(t){throw new js(qs.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+t)}}static fromUint8Array(t){return new Eh(_i.fromUint8Array(t))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(t){return this._byteString.isEqual(t._byteString)}}
|
|
1810
|
+
/**
|
|
1811
|
+
* @license
|
|
1812
|
+
* Copyright 2020 Google LLC
|
|
1813
|
+
*
|
|
1814
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1815
|
+
* you may not use this file except in compliance with the License.
|
|
1816
|
+
* You may obtain a copy of the License at
|
|
1817
|
+
*
|
|
1818
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1819
|
+
*
|
|
1820
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1821
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1822
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1823
|
+
* See the License for the specific language governing permissions and
|
|
1824
|
+
* limitations under the License.
|
|
1825
|
+
*/class _h{constructor(...t){for(let e=0;e<t.length;++e)if(0===t[e].length)throw new js(qs.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new oi(t)}isEqual(t){return this._internalPath.isEqual(t._internalPath)}}
|
|
1826
|
+
/**
|
|
1827
|
+
* @license
|
|
1828
|
+
* Copyright 2020 Google LLC
|
|
1829
|
+
*
|
|
1830
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1831
|
+
* you may not use this file except in compliance with the License.
|
|
1832
|
+
* You may obtain a copy of the License at
|
|
1833
|
+
*
|
|
1834
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1835
|
+
*
|
|
1836
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1837
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1838
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1839
|
+
* See the License for the specific language governing permissions and
|
|
1840
|
+
* limitations under the License.
|
|
1841
|
+
*/
|
|
1842
|
+
class Th{constructor(t){this._methodName=t}}
|
|
1843
|
+
/**
|
|
1844
|
+
* @license
|
|
1845
|
+
* Copyright 2017 Google LLC
|
|
1846
|
+
*
|
|
1847
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1848
|
+
* you may not use this file except in compliance with the License.
|
|
1849
|
+
* You may obtain a copy of the License at
|
|
1850
|
+
*
|
|
1851
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1852
|
+
*
|
|
1853
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1854
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1855
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1856
|
+
* See the License for the specific language governing permissions and
|
|
1857
|
+
* limitations under the License.
|
|
1858
|
+
*/class Sh{constructor(t,e){if(!isFinite(t)||t<-90||t>90)throw new js(qs.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+t);if(!isFinite(e)||e<-180||e>180)throw new js(qs.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+e);this._lat=t,this._long=e}get latitude(){return this._lat}get longitude(){return this._long}isEqual(t){return this._lat===t._lat&&this._long===t._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(t){return Zs(this._lat,t._lat)||Zs(this._long,t._long)}}
|
|
1859
|
+
/**
|
|
1860
|
+
* @license
|
|
1861
|
+
* Copyright 2017 Google LLC
|
|
1862
|
+
*
|
|
1863
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1864
|
+
* you may not use this file except in compliance with the License.
|
|
1865
|
+
* You may obtain a copy of the License at
|
|
1866
|
+
*
|
|
1867
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1868
|
+
*
|
|
1869
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1870
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1871
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1872
|
+
* See the License for the specific language governing permissions and
|
|
1873
|
+
* limitations under the License.
|
|
1874
|
+
*/const Ah=/^__.*__$/;function Ch(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw Us()}}class kh{constructor(t,e,n,r,s,i){this.settings=t,this.databaseId=e,this.yt=n,this.ignoreUndefinedProperties=r,void 0===s&&this.na(),this.fieldTransforms=s||[],this.fieldMask=i||[]}get path(){return this.settings.path}get sa(){return this.settings.sa}ia(t){return new kh(Object.assign(Object.assign({},this.settings),t),this.databaseId,this.yt,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}ra(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.ia({path:n,oa:!1});return r.ua(t),r}ca(t){var e;const n=null===(e=this.path)||void 0===e?void 0:e.child(t),r=this.ia({path:n,oa:!1});return r.na(),r}aa(t){return this.ia({path:void 0,oa:!0})}ha(t){return Lh(t,this.settings.methodName,this.settings.la||!1,this.path,this.settings.fa)}contains(t){return void 0!==this.fieldMask.find((e=>t.isPrefixOf(e)))||void 0!==this.fieldTransforms.find((e=>t.isPrefixOf(e.field)))}na(){if(this.path)for(let t=0;t<this.path.length;t++)this.ua(this.path.get(t))}ua(t){if(0===t.length)throw this.ha("Document fields must not be empty");if(Ch(this.sa)&&Ah.test(t))throw this.ha('Document fields cannot begin and end with "__"')}}class Nh{constructor(t,e,n){this.databaseId=t,this.ignoreUndefinedProperties=e,this.yt=n||Jc(t)}da(t,e,n,r=!1){return new kh({sa:t,methodName:e,fa:n,path:oi.emptyPath(),oa:!1,la:r},this.databaseId,this.yt,this.ignoreUndefinedProperties)}}function Dh(t,e){if(Rh(t=E(t)))return function(t,e,n){if(!Rh(n)||!function(t){return"object"==typeof t&&null!==t&&(Object.getPrototypeOf(t)===Object.prototype||null===Object.getPrototypeOf(t))}(n)){const r=nh(n);throw"an object"===r?e.ha(t+" a custom object"):e.ha(t+" "+r)}}("Unsupported field value:",e,t),function(t,e){const n={};return Ii(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):wi(t,((t,r)=>{const s=Dh(r,e.ra(t));null!=s&&(n[t]=s)})),{mapValue:{fields:n}}}(t,e);if(t instanceof Th)return function(t,e){if(!Ch(e.sa))throw e.ha(`${t._methodName}() can only be used with update() and set()`);if(!e.path)throw e.ha(`${t._methodName}() is not currently supported inside arrays`);const n=t._toFieldTransform(e);n&&e.fieldTransforms.push(n)}(t,e),null;if(void 0===t&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.oa&&4!==e.sa)throw e.ha("Nested arrays are not supported");return function(t,e){const n=[];let r=0;for(const s of t){let t=Dh(s,e.aa(r));null==t&&(t={nullValue:"NULL_VALUE"}),n.push(t),r++}return{arrayValue:{values:n}}}(t,e)}return function(t,e){if(null===(t=E(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ko(e.yt,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date){const n=ei.fromDate(t);return{timestampValue:Ha(e.yt,n)}}if(t instanceof ei){const n=new ei(t.seconds,1e3*Math.floor(t.nanoseconds/1e3));return{timestampValue:Ha(e.yt,n)}}if(t instanceof Sh)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Eh)return{bytesValue:Ga(e.yt,t._byteString)};if(t instanceof ch){const n=e.databaseId,r=t.firestore._databaseId;if(!r.isEqual(n))throw e.ha(`Document reference is for database ${r.projectId}/${r.database} but should be for database ${n.projectId}/${n.database}`);return{referenceValue:Qa(t.firestore._databaseId||e.databaseId,t._key.path)}}throw e.ha(`Unsupported field value: ${nh(t)}`)}(t,e)}function Rh(t){return!("object"!=typeof t||null===t||t instanceof Array||t instanceof Date||t instanceof ei||t instanceof Sh||t instanceof Eh||t instanceof ch||t instanceof Th)}const Oh=new RegExp("[~\\*/\\[\\]]");function Lh(t,e,n,r,s){const i=r&&!r.isEmpty(),o=void 0!==s;let a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(i||o)&&(c+=" (found",i&&(c+=` in field ${r}`),o&&(c+=` in document ${s}`),c+=")"),new js(qs.INVALID_ARGUMENT,a+t+c)
|
|
1875
|
+
/**
|
|
1876
|
+
* @license
|
|
1877
|
+
* Copyright 2020 Google LLC
|
|
1878
|
+
*
|
|
1879
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1880
|
+
* you may not use this file except in compliance with the License.
|
|
1881
|
+
* You may obtain a copy of the License at
|
|
1882
|
+
*
|
|
1883
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1884
|
+
*
|
|
1885
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1886
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1887
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1888
|
+
* See the License for the specific language governing permissions and
|
|
1889
|
+
* limitations under the License.
|
|
1890
|
+
*/}class Ph{constructor(t,e,n,r,s){this._firestore=t,this._userDataWriter=e,this._key=n,this._document=r,this._converter=s}get id(){return this._key.path.lastSegment()}get ref(){return new ch(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const t=new Mh(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(t)}return this._userDataWriter.convertValue(this._document.data.value)}}get(t){if(this._document){const e=this._document.data.field(xh("DocumentSnapshot.get",t));if(null!==e)return this._userDataWriter.convertValue(e)}}}class Mh extends Ph{data(){return super.data()}}function xh(t,e){return"string"==typeof e?function(t,e,n){if(e.search(Oh)>=0)throw Lh(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new _h(...e.split("."))._internalPath}catch(r){throw Lh(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}(t,e):e instanceof _h?e._internalPath:e._delegate._internalPath}
|
|
1891
|
+
/**
|
|
1892
|
+
* @license
|
|
1893
|
+
* Copyright 2020 Google LLC
|
|
1894
|
+
*
|
|
1895
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1896
|
+
* you may not use this file except in compliance with the License.
|
|
1897
|
+
* You may obtain a copy of the License at
|
|
1898
|
+
*
|
|
1899
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1900
|
+
*
|
|
1901
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1902
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1903
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1904
|
+
* See the License for the specific language governing permissions and
|
|
1905
|
+
* limitations under the License.
|
|
1906
|
+
*/function Uh(t){if("L"===t.limitType&&0===t.explicitOrderBy.length)throw new js(qs.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class Fh{}class Vh extends Fh{}function qh(t,e,...n){let r=[];e instanceof Fh&&r.push(e),r=r.concat(n),function(t){const e=t.filter((t=>t instanceof zh)).length,n=t.filter((t=>t instanceof jh)).length;if(e>1||e>0&&n>0)throw new js(qs.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}
|
|
1907
|
+
/**
|
|
1908
|
+
* @license
|
|
1909
|
+
* Copyright 2020 Google LLC
|
|
1910
|
+
*
|
|
1911
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1912
|
+
* you may not use this file except in compliance with the License.
|
|
1913
|
+
* You may obtain a copy of the License at
|
|
1914
|
+
*
|
|
1915
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1916
|
+
*
|
|
1917
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1918
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1919
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1920
|
+
* See the License for the specific language governing permissions and
|
|
1921
|
+
* limitations under the License.
|
|
1922
|
+
*/(r);for(const e of r)t=e._apply(t);return t}class jh extends Vh{constructor(t,e,n){super(),this._field=t,this._op=e,this._value=n,this.type="where"}static _create(t,e,n){return new jh(t,e,n)}_apply(t){const e=this._parse(t);return Hh(t._query,e),new uh(t.firestore,t.converter,Mo(t._query,e))}_parse(t){const e=function(t){const e=t._freezeSettings(),n=Jc(t._databaseId);return new Nh(t._databaseId,!!e.ignoreUndefinedProperties,n)}(t.firestore),n=function(t,e,n,r,s,i,o){let a;if(s.isKeyField()){if("array-contains"===i||"array-contains-any"===i)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. You can't perform '${i}' queries on documentId().`);if("in"===i||"not-in"===i){Kh(o,i);const e=[];for(const n of o)e.push($h(r,t,n));a={arrayValue:{values:e}}}else a=$h(r,t,o)}else"in"!==i&&"not-in"!==i&&"array-contains-any"!==i||Kh(o,i),a=function(t,e,n,r=!1){return Dh(n,t.da(r?4:3,e))}(n,"where",o,"in"===i||"not-in"===i);return Ji.create(s,i,a)}(t._query,0,e,t.firestore._databaseId,this._field,this._op,this._value);return n}}function Bh(t,e,n){const r=e,s=xh("where",t);return jh._create(s,r,n)}class zh extends Fh{constructor(t,e){super(),this.type=t,this._queryConstraints=e}static _create(t,e){return new zh(t,e)}_parse(t){const e=this._queryConstraints.map((e=>e._parse(t))).filter((t=>t.getFilters().length>0));return 1===e.length?e[0]:Xi.create(e,this._getOperator())}_apply(t){const e=this._parse(t);return 0===e.getFilters().length?t:(function(t,e){let n=t;const r=e.getFlattenedFilters();for(const t of r)Hh(n,t),n=Mo(n,t)}(t._query,e),new uh(t.firestore,t.converter,Mo(t._query,e)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}function $h(t,e,n){if("string"==typeof(n=E(n))){if(""===n)throw new js(qs.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!Oo(e)&&-1!==n.indexOf("/"))throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);const r=e.path.child(si.fromString(n));if(!ai.isDocumentKey(r))throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Vi(t,new ai(r))}if(n instanceof ch)return Vi(t,n._key);throw new js(qs.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${nh(n)}.`)}function Kh(t,e){if(!Array.isArray(t)||0===t.length)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`);if(t.length>10)throw new js(qs.INVALID_ARGUMENT,`Invalid Query. '${e.toString()}' filters support a maximum of 10 elements in the value array.`)}function Hh(t,e){if(e.isInequality()){const n=Ro(t),r=e.field;if(null!==n&&!n.isEqual(r))throw new js(qs.INVALID_ARGUMENT,`Invalid query. All where filters with an inequality (<, <=, !=, not-in, >, or >=) must be on the same field. But you have inequality filters on '${n.toString()}' and '${r.toString()}'`);const s=Do(t);null!==s&&function(t,e,n){if(!n.isEqual(e))throw new js(qs.INVALID_ARGUMENT,`Invalid query. You have a where filter with an inequality (<, <=, !=, not-in, >, or >=) on field '${e.toString()}' and so you must also use '${e.toString()}' as your first argument to orderBy(), but your first orderBy() is on field '${n.toString()}' instead.`)}(0,r,s)}const n=function(t,e){for(const n of t)for(const t of n.getFlattenedFilters())if(e.indexOf(t.op)>=0)return t.op;return null}(t.filters,function(t){switch(t){case"!=":return["!=","not-in"];case"array-contains":return["array-contains","array-contains-any","not-in"];case"in":return["array-contains-any","in","not-in"];case"array-contains-any":return["array-contains","array-contains-any","in","not-in"];case"not-in":return["array-contains","array-contains-any","in","not-in","!="];default:return[]}}(e.op));if(null!==n)throw n===e.op?new js(qs.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new js(qs.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}class Gh{convertValue(t,e="none"){switch(Oi(t)){case 0:return null;case 1:return t.booleanValue;case 2:return Ai(t.integerValue||t.doubleValue);case 3:return this.convertTimestamp(t.timestampValue);case 4:return this.convertServerTimestamp(t,e);case 5:return t.stringValue;case 6:return this.convertBytes(Ci(t.bytesValue));case 7:return this.convertReference(t.referenceValue);case 8:return this.convertGeoPoint(t.geoPointValue);case 9:return this.convertArray(t.arrayValue,e);case 10:return this.convertObject(t.mapValue,e);default:throw Us()}}convertObject(t,e){const n={};return wi(t.fields,((t,r)=>{n[t]=this.convertValue(r,e)})),n}convertGeoPoint(t){return new Sh(Ai(t.latitude),Ai(t.longitude))}convertArray(t,e){return(t.values||[]).map((t=>this.convertValue(t,e)))}convertServerTimestamp(t,e){switch(e){case"previous":const n=Ni(t);return null==n?null:this.convertValue(n,e);case"estimate":return this.convertTimestamp(Di(t));default:return null}}convertTimestamp(t){const e=Si(t);return new ei(e.seconds,e.nanos)}convertDocumentKey(t,e){const n=si.fromString(t);Fs(lc(n));const r=new yi(n.get(1),n.get(3)),s=new ai(n.popFirst(5));return r.isEqual(e)||Ps(`Document ${s} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${e.projectId}/${e.database}) instead.`),s}}
|
|
1923
|
+
/**
|
|
1924
|
+
* @license
|
|
1925
|
+
* Copyright 2020 Google LLC
|
|
1926
|
+
*
|
|
1927
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1928
|
+
* you may not use this file except in compliance with the License.
|
|
1929
|
+
* You may obtain a copy of the License at
|
|
1930
|
+
*
|
|
1931
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1932
|
+
*
|
|
1933
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1934
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1935
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1936
|
+
* See the License for the specific language governing permissions and
|
|
1937
|
+
* limitations under the License.
|
|
1938
|
+
*/class Wh{constructor(t,e){this.hasPendingWrites=t,this.fromCache=e}isEqual(t){return this.hasPendingWrites===t.hasPendingWrites&&this.fromCache===t.fromCache}}class Qh extends Ph{constructor(t,e,n,r,s,i){super(t,e,n,r,i),this._firestore=t,this._firestoreImpl=t,this.metadata=s}exists(){return super.exists()}data(t={}){if(this._document){if(this._converter){const e=new Jh(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(e,t)}return this._userDataWriter.convertValue(this._document.data.value,t.serverTimestamps)}}get(t,e={}){if(this._document){const n=this._document.data.field(xh("DocumentSnapshot.get",t));if(null!==n)return this._userDataWriter.convertValue(n,e.serverTimestamps)}}}class Jh extends Qh{data(t={}){return super.data(t)}}class Xh{constructor(t,e,n,r){this._firestore=t,this._userDataWriter=e,this._snapshot=r,this.metadata=new Wh(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach((e=>t.push(e))),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,e){this._snapshot.docs.forEach((n=>{t.call(e,new Jh(this._firestore,this._userDataWriter,n.key,n,new Wh(this._snapshot.mutatedKeys.has(n.key),this._snapshot.fromCache),this.query.converter))}))}docChanges(t={}){const e=!!t.includeMetadataChanges;if(e&&this._snapshot.excludesMetadataChanges)throw new js(qs.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===e||(this._cachedChanges=function(t,e){if(t._snapshot.oldDocs.isEmpty()){let e=0;return t._snapshot.docChanges.map((n=>{const r=new Jh(t._firestore,t._userDataWriter,n.doc.key,n.doc,new Wh(t._snapshot.mutatedKeys.has(n.doc.key),t._snapshot.fromCache),t.query.converter);return n.doc,{type:"added",doc:r,oldIndex:-1,newIndex:e++}}))}{let n=t._snapshot.oldDocs;return t._snapshot.docChanges.filter((t=>e||3!==t.type)).map((e=>{const r=new Jh(t._firestore,t._userDataWriter,e.doc.key,e.doc,new Wh(t._snapshot.mutatedKeys.has(e.doc.key),t._snapshot.fromCache),t.query.converter);let s=-1,i=-1;return 0!==e.type&&(s=n.indexOf(e.doc.key),n=n.delete(e.doc.key)),1!==e.type&&(n=n.add(e.doc),i=n.indexOf(e.doc.key)),{type:Yh(e.type),doc:r,oldIndex:s,newIndex:i}}))}}(this,e),this._cachedChangesIncludeMetadataChanges=e),this._cachedChanges}}function Yh(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return Us()}}
|
|
1939
|
+
/**
|
|
1940
|
+
* @license
|
|
1941
|
+
* Copyright 2020 Google LLC
|
|
1942
|
+
*
|
|
1943
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1944
|
+
* you may not use this file except in compliance with the License.
|
|
1945
|
+
* You may obtain a copy of the License at
|
|
1946
|
+
*
|
|
1947
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1948
|
+
*
|
|
1949
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1950
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1951
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1952
|
+
* See the License for the specific language governing permissions and
|
|
1953
|
+
* limitations under the License.
|
|
1954
|
+
*/function Zh(t){t=rh(t,ch);const e=rh(t.firestore,vh);return function(t,e,n={}){const r=new Bs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new dh({next:i=>{e.enqueueAndForget((()=>Cu(t,o)));const a=i.docs.has(n);!a&&i.fromCache?s.reject(new js(qs.UNAVAILABLE,"Failed to get document because the client is offline.")):a&&i.fromCache&&r&&"server"===r.source?s.reject(new js(qs.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):s.resolve(i)},error:t=>s.reject(t)}),o=new Ru(ko(n.path),i,{includeMetadataChanges:!0,Nu:!0});return Au(t,o)}(await gh(t),t.asyncQueue,e,n,r))),r.promise}(Ih(e),t._key).then((n=>nl(e,t,n)))}class tl extends Gh{constructor(t){super(),this.firestore=t}convertBytes(t){return new Eh(t)}convertReference(t){const e=this.convertDocumentKey(t,this.firestore._databaseId);return new ch(this.firestore,null,e)}}function el(t){t=rh(t,uh);const e=rh(t.firestore,vh),n=Ih(e),r=new tl(e);return Uh(t._query),function(t,e,n={}){const r=new Bs;return t.asyncQueue.enqueueAndForget((async()=>function(t,e,n,r,s){const i=new dh({next:n=>{e.enqueueAndForget((()=>Cu(t,o))),n.fromCache&&"server"===r.source?s.reject(new js(qs.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):s.resolve(n)},error:t=>s.reject(t)}),o=new Ru(n,i,{includeMetadataChanges:!0,Nu:!0});return Au(t,o)}(await gh(t),t.asyncQueue,e,n,r))),r.promise}(n,t._query).then((n=>new Xh(e,r,t,n)))}function nl(t,e,n){const r=n.docs.get(e._key),s=new tl(t);return new Qh(t,s,e._key,r,new Wh(n.hasPendingWrites,n.fromCache),e.converter)}!function(t,e=!0){Ds=ct,st(new _("firestore",((t,{instanceIdentifier:n,options:r})=>{const s=t.getProvider("app").getImmediate(),i=new vh(new Hs(t.getProvider("auth-internal")),new Js(t.getProvider("app-check-internal")),function(t,e){if(!Object.prototype.hasOwnProperty.apply(t.options,["projectId"]))throw new js(qs.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new yi(t.options.projectId,e)}(s,n),s);return r=Object.assign({useFetchStreams:e},r),i._setSettings(r),i}),"PUBLIC").setMultipleInstances(!0)),lt(ks,"3.8.0",t),lt(ks,"3.8.0","esm2017")}();function rl(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(r=Object.getOwnPropertySymbols(t);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(t,r[s])&&(n[r[s]]=t[r[s]])}return n}function sl(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}
|
|
1955
|
+
/**
|
|
1956
|
+
* @license
|
|
1957
|
+
* Copyright 2020 Google LLC
|
|
1958
|
+
*
|
|
1959
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1960
|
+
* you may not use this file except in compliance with the License.
|
|
1961
|
+
* You may obtain a copy of the License at
|
|
1962
|
+
*
|
|
1963
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1964
|
+
*
|
|
1965
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1966
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1967
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1968
|
+
* See the License for the specific language governing permissions and
|
|
1969
|
+
* limitations under the License.
|
|
1970
|
+
*/
|
|
1971
|
+
lt("firebase","9.15.0","app");const il=sl,ol=new f("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),al="auth/user-disabled",cl=new O("@firebase/auth");function ul(t,...e){cl.logLevel<=C.ERROR&&cl.error(`Auth (${ct}): ${t}`,...e)}
|
|
1972
|
+
/**
|
|
1973
|
+
* @license
|
|
1974
|
+
* Copyright 2020 Google LLC
|
|
1975
|
+
*
|
|
1976
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1977
|
+
* you may not use this file except in compliance with the License.
|
|
1978
|
+
* You may obtain a copy of the License at
|
|
1979
|
+
*
|
|
1980
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1981
|
+
*
|
|
1982
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1983
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1984
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1985
|
+
* See the License for the specific language governing permissions and
|
|
1986
|
+
* limitations under the License.
|
|
1987
|
+
*/function hl(t,...e){throw dl(t,...e)}function ll(t,...e){return dl(t,...e)}function dl(t,...e){if("string"!=typeof t){const n=e[0],r=[...e.slice(1)];return r[0]&&(r[0].appName=t.name),t._errorFactory.create(n,...r)}return ol.create(t,...e)}function fl(t,e,...n){if(!t)throw dl(e,...n)}function pl(t){const e="INTERNAL ASSERTION FAILED: "+t;throw ul(e),new Error(e)}function gl(t,e){t||pl(e)}
|
|
1988
|
+
/**
|
|
1989
|
+
* @license
|
|
1990
|
+
* Copyright 2020 Google LLC
|
|
1991
|
+
*
|
|
1992
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1993
|
+
* you may not use this file except in compliance with the License.
|
|
1994
|
+
* You may obtain a copy of the License at
|
|
1995
|
+
*
|
|
1996
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1997
|
+
*
|
|
1998
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1999
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2000
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2001
|
+
* See the License for the specific language governing permissions and
|
|
2002
|
+
* limitations under the License.
|
|
2003
|
+
*/const ml=new Map;function yl(t){gl(t instanceof Function,"Expected a class definition");let e=ml.get(t);return e?(gl(e instanceof t,"Instance stored in cache mismatched with class"),e):(e=new t,ml.set(t,e),e)}
|
|
2004
|
+
/**
|
|
2005
|
+
* @license
|
|
2006
|
+
* Copyright 2020 Google LLC
|
|
2007
|
+
*
|
|
2008
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2009
|
+
* you may not use this file except in compliance with the License.
|
|
2010
|
+
* You may obtain a copy of the License at
|
|
2011
|
+
*
|
|
2012
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2013
|
+
*
|
|
2014
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2015
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2016
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2017
|
+
* See the License for the specific language governing permissions and
|
|
2018
|
+
* limitations under the License.
|
|
2019
|
+
*/
|
|
2020
|
+
/**
|
|
2021
|
+
* @license
|
|
2022
|
+
* Copyright 2020 Google LLC
|
|
2023
|
+
*
|
|
2024
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2025
|
+
* you may not use this file except in compliance with the License.
|
|
2026
|
+
* You may obtain a copy of the License at
|
|
2027
|
+
*
|
|
2028
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2029
|
+
*
|
|
2030
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2031
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2032
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2033
|
+
* See the License for the specific language governing permissions and
|
|
2034
|
+
* limitations under the License.
|
|
2035
|
+
*/
|
|
2036
|
+
function vl(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.href)||""}function wl(){var t;return"undefined"!=typeof self&&(null===(t=self.location)||void 0===t?void 0:t.protocol)||null}
|
|
2037
|
+
/**
|
|
2038
|
+
* @license
|
|
2039
|
+
* Copyright 2020 Google LLC
|
|
2040
|
+
*
|
|
2041
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2042
|
+
* you may not use this file except in compliance with the License.
|
|
2043
|
+
* You may obtain a copy of the License at
|
|
2044
|
+
*
|
|
2045
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2046
|
+
*
|
|
2047
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2048
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2049
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2050
|
+
* See the License for the specific language governing permissions and
|
|
2051
|
+
* limitations under the License.
|
|
2052
|
+
*/function Il(){return"undefined"==typeof navigator||!navigator||!("onLine"in navigator)||"boolean"!=typeof navigator.onLine||"http:"!==wl()&&"https:"!==wl()&&!function(){const t="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof t&&void 0!==t.id}()&&!("connection"in navigator)||navigator.onLine}
|
|
2053
|
+
/**
|
|
2054
|
+
* @license
|
|
2055
|
+
* Copyright 2020 Google LLC
|
|
2056
|
+
*
|
|
2057
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2058
|
+
* you may not use this file except in compliance with the License.
|
|
2059
|
+
* You may obtain a copy of the License at
|
|
2060
|
+
*
|
|
2061
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2062
|
+
*
|
|
2063
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2064
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2065
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2066
|
+
* See the License for the specific language governing permissions and
|
|
2067
|
+
* limitations under the License.
|
|
2068
|
+
*/
|
|
2069
|
+
class bl{constructor(t,e){this.shortDelay=t,this.longDelay=e,gl(e>t,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(o())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return Il()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}
|
|
2070
|
+
/**
|
|
2071
|
+
* @license
|
|
2072
|
+
* Copyright 2020 Google LLC
|
|
2073
|
+
*
|
|
2074
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2075
|
+
* you may not use this file except in compliance with the License.
|
|
2076
|
+
* You may obtain a copy of the License at
|
|
2077
|
+
*
|
|
2078
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2079
|
+
*
|
|
2080
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2081
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2082
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2083
|
+
* See the License for the specific language governing permissions and
|
|
2084
|
+
* limitations under the License.
|
|
2085
|
+
*/function El(t,e){gl(t.emulator,"Emulator should always be set here");const{url:n}=t.emulator;return e?`${n}${e.startsWith("/")?e.slice(1):e}`:n}
|
|
2086
|
+
/**
|
|
2087
|
+
* @license
|
|
2088
|
+
* Copyright 2020 Google LLC
|
|
2089
|
+
*
|
|
2090
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2091
|
+
* you may not use this file except in compliance with the License.
|
|
2092
|
+
* You may obtain a copy of the License at
|
|
2093
|
+
*
|
|
2094
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2095
|
+
*
|
|
2096
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2097
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2098
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2099
|
+
* See the License for the specific language governing permissions and
|
|
2100
|
+
* limitations under the License.
|
|
2101
|
+
*/class _l{static initialize(t,e,n){this.fetchImpl=t,e&&(this.headersImpl=e),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:void pl("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:void pl("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:void pl("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}
|
|
2102
|
+
/**
|
|
2103
|
+
* @license
|
|
2104
|
+
* Copyright 2020 Google LLC
|
|
2105
|
+
*
|
|
2106
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2107
|
+
* you may not use this file except in compliance with the License.
|
|
2108
|
+
* You may obtain a copy of the License at
|
|
2109
|
+
*
|
|
2110
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2111
|
+
*
|
|
2112
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2113
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2114
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2115
|
+
* See the License for the specific language governing permissions and
|
|
2116
|
+
* limitations under the License.
|
|
2117
|
+
*/const Tl={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"internal-error",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error"},Sl=new bl(3e4,6e4);
|
|
2118
|
+
/**
|
|
2119
|
+
* @license
|
|
2120
|
+
* Copyright 2020 Google LLC
|
|
2121
|
+
*
|
|
2122
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2123
|
+
* you may not use this file except in compliance with the License.
|
|
2124
|
+
* You may obtain a copy of the License at
|
|
2125
|
+
*
|
|
2126
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2127
|
+
*
|
|
2128
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2129
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2130
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2131
|
+
* See the License for the specific language governing permissions and
|
|
2132
|
+
* limitations under the License.
|
|
2133
|
+
*/function Al(t,e){return t.tenantId&&!e.tenantId?Object.assign(Object.assign({},e),{tenantId:t.tenantId}):e}async function Cl(t,e,n,r,s={}){return kl(t,s,(async()=>{let s={},i={};r&&("GET"===e?i=r:s={body:JSON.stringify(r)});const o=y(Object.assign({key:t.config.apiKey},i)).slice(1),a=await t._getAdditionalHeaders();return a["Content-Type"]="application/json",t.languageCode&&(a["X-Firebase-Locale"]=t.languageCode),_l.fetch()(Dl(t,t.config.apiHost,n,o),Object.assign({method:e,headers:a,referrerPolicy:"no-referrer"},s))}))}async function kl(t,e,n){t._canInitEmulator=!1;const r=Object.assign(Object.assign({},Tl),e);try{const e=new Rl(t),s=await Promise.race([n(),e.promise]);e.clearNetworkTimeout();const i=await s.json();if("needConfirmation"in i)throw Ol(t,"account-exists-with-different-credential",i);if(s.ok&&!("errorMessage"in i))return i;{const e=s.ok?i.errorMessage:i.error.message,[n,o]=e.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw Ol(t,"credential-already-in-use",i);if("EMAIL_EXISTS"===n)throw Ol(t,"email-already-in-use",i);if("USER_DISABLED"===n)throw Ol(t,"user-disabled",i);const a=r[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(o)throw function(t,e,n){const r=Object.assign(Object.assign({},il()),{[e]:n});return new f("auth","Firebase",r).create(e,{appName:t.name})}(t,a,o);hl(t,a)}}catch(e){if(e instanceof d)throw e;hl(t,"network-request-failed")}}async function Nl(t,e,n,r,s={}){const i=await Cl(t,e,n,r,s);return"mfaPendingCredential"in i&&hl(t,"multi-factor-auth-required",{_serverResponse:i}),i}function Dl(t,e,n,r){const s=`${e}${n}?${r}`;return t.config.emulator?El(t.config,s):`${t.config.apiScheme}://${s}`}class Rl{constructor(t){this.auth=t,this.timer=null,this.promise=new Promise(((t,e)=>{this.timer=setTimeout((()=>e(ll(this.auth,"network-request-failed"))),Sl.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Ol(t,e,n){const r={appName:t.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const s=ll(t,e,r);return s.customData._tokenResponse=n,s}
|
|
2134
|
+
/**
|
|
2135
|
+
* @license
|
|
2136
|
+
* Copyright 2020 Google LLC
|
|
2137
|
+
*
|
|
2138
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2139
|
+
* you may not use this file except in compliance with the License.
|
|
2140
|
+
* You may obtain a copy of the License at
|
|
2141
|
+
*
|
|
2142
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2143
|
+
*
|
|
2144
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2145
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2146
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2147
|
+
* See the License for the specific language governing permissions and
|
|
2148
|
+
* limitations under the License.
|
|
2149
|
+
*/
|
|
2150
|
+
/**
|
|
2151
|
+
* @license
|
|
2152
|
+
* Copyright 2020 Google LLC
|
|
2153
|
+
*
|
|
2154
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2155
|
+
* you may not use this file except in compliance with the License.
|
|
2156
|
+
* You may obtain a copy of the License at
|
|
2157
|
+
*
|
|
2158
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2159
|
+
*
|
|
2160
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2161
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2162
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2163
|
+
* See the License for the specific language governing permissions and
|
|
2164
|
+
* limitations under the License.
|
|
2165
|
+
*/
|
|
2166
|
+
function Ll(t){if(t)try{const e=new Date(Number(t));if(!isNaN(e.getTime()))return e.toUTCString()}catch(t){}}function Pl(t){return 1e3*Number(t)}function Ml(t){const[e,n,r]=t.split(".");if(void 0===e||void 0===n||void 0===r)return ul("JWT malformed, contained fewer than 3 sections"),null;try{const t=i(n);return t?JSON.parse(t):(ul("Failed to decode base64 JWT payload"),null)}catch(t){return ul("Caught error parsing JWT payload as JSON",null==t?void 0:t.toString()),null}}
|
|
2167
|
+
/**
|
|
2168
|
+
* @license
|
|
2169
|
+
* Copyright 2020 Google LLC
|
|
2170
|
+
*
|
|
2171
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2172
|
+
* you may not use this file except in compliance with the License.
|
|
2173
|
+
* You may obtain a copy of the License at
|
|
2174
|
+
*
|
|
2175
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2176
|
+
*
|
|
2177
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2178
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2179
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2180
|
+
* See the License for the specific language governing permissions and
|
|
2181
|
+
* limitations under the License.
|
|
2182
|
+
*/
|
|
2183
|
+
async function xl(t,e,n=!1){if(n)return e;try{return await e}catch(e){throw e instanceof d&&function({code:t}){return"auth/user-disabled"===t||"auth/user-token-expired"===t}
|
|
2184
|
+
/**
|
|
2185
|
+
* @license
|
|
2186
|
+
* Copyright 2020 Google LLC
|
|
2187
|
+
*
|
|
2188
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2189
|
+
* you may not use this file except in compliance with the License.
|
|
2190
|
+
* You may obtain a copy of the License at
|
|
2191
|
+
*
|
|
2192
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2193
|
+
*
|
|
2194
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2195
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2196
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2197
|
+
* See the License for the specific language governing permissions and
|
|
2198
|
+
* limitations under the License.
|
|
2199
|
+
*/(e)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class Ul{constructor(t){this.user=t,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(t){var e;if(t){const t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}{this.errorBackoff=3e4;const t=(null!==(e=this.user.stsTokenManager.expirationTime)&&void 0!==e?e:0)-Date.now()-3e5;return Math.max(0,t)}}schedule(t=!1){if(!this.isRunning)return;const e=this.getInterval(t);this.timerId=setTimeout((async()=>{await this.iteration()}),e)}async iteration(){try{await this.user.getIdToken(!0)}catch(t){return void("auth/network-request-failed"===(null==t?void 0:t.code)&&this.schedule(!0))}this.schedule()}}
|
|
2200
|
+
/**
|
|
2201
|
+
* @license
|
|
2202
|
+
* Copyright 2020 Google LLC
|
|
2203
|
+
*
|
|
2204
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2205
|
+
* you may not use this file except in compliance with the License.
|
|
2206
|
+
* You may obtain a copy of the License at
|
|
2207
|
+
*
|
|
2208
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2209
|
+
*
|
|
2210
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2211
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2212
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2213
|
+
* See the License for the specific language governing permissions and
|
|
2214
|
+
* limitations under the License.
|
|
2215
|
+
*/class Fl{constructor(t,e){this.createdAt=t,this.lastLoginAt=e,this._initializeTime()}_initializeTime(){this.lastSignInTime=Ll(this.lastLoginAt),this.creationTime=Ll(this.createdAt)}_copy(t){this.createdAt=t.createdAt,this.lastLoginAt=t.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}
|
|
2216
|
+
/**
|
|
2217
|
+
* @license
|
|
2218
|
+
* Copyright 2019 Google LLC
|
|
2219
|
+
*
|
|
2220
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2221
|
+
* you may not use this file except in compliance with the License.
|
|
2222
|
+
* You may obtain a copy of the License at
|
|
2223
|
+
*
|
|
2224
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2225
|
+
*
|
|
2226
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2227
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2228
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2229
|
+
* See the License for the specific language governing permissions and
|
|
2230
|
+
* limitations under the License.
|
|
2231
|
+
*/async function Vl(t){var e;const n=t.auth,r=await t.getIdToken(),s=await xl(t,async function(t,e){return Cl(t,"POST","/v1/accounts:lookup",e)}(n,{idToken:r}));fl(null==s?void 0:s.users.length,n,"internal-error");const i=s.users[0];t._notifyReloadListener(i);const o=(null===(e=i.providerUserInfo)||void 0===e?void 0:e.length)?i.providerUserInfo.map((t=>{var{providerId:e}=t,n=rl(t,["providerId"]);return{providerId:e,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}})):[];const a=(c=t.providerData,u=o,[...c.filter((t=>!u.some((e=>e.providerId===t.providerId)))),...u]);var c,u;const h=t.isAnonymous,l=!(t.email&&i.passwordHash||(null==a?void 0:a.length)),d=!!h&&l,f={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:a,metadata:new Fl(i.createdAt,i.lastLoginAt),isAnonymous:d};Object.assign(t,f)}
|
|
2232
|
+
/**
|
|
2233
|
+
* @license
|
|
2234
|
+
* Copyright 2020 Google LLC
|
|
2235
|
+
*
|
|
2236
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2237
|
+
* you may not use this file except in compliance with the License.
|
|
2238
|
+
* You may obtain a copy of the License at
|
|
2239
|
+
*
|
|
2240
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2241
|
+
*
|
|
2242
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2243
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2244
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2245
|
+
* See the License for the specific language governing permissions and
|
|
2246
|
+
* limitations under the License.
|
|
2247
|
+
*/
|
|
2248
|
+
class ql{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(t){fl(t.idToken,"internal-error"),fl(void 0!==t.idToken,"internal-error"),fl(void 0!==t.refreshToken,"internal-error");const e="expiresIn"in t&&void 0!==t.expiresIn?Number(t.expiresIn):function(t){const e=Ml(t);return fl(e,"internal-error"),fl(void 0!==e.exp,"internal-error"),fl(void 0!==e.iat,"internal-error"),Number(e.exp)-Number(e.iat)}(t.idToken);this.updateTokensAndExpiration(t.idToken,t.refreshToken,e)}async getToken(t,e=!1){return fl(!this.accessToken||this.refreshToken,t,"user-token-expired"),e||!this.accessToken||this.isExpired?this.refreshToken?(await this.refresh(t,this.refreshToken),this.accessToken):null:this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(t,e){const{accessToken:n,refreshToken:r,expiresIn:s}=await
|
|
2249
|
+
/**
|
|
2250
|
+
* @license
|
|
2251
|
+
* Copyright 2020 Google LLC
|
|
2252
|
+
*
|
|
2253
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2254
|
+
* you may not use this file except in compliance with the License.
|
|
2255
|
+
* You may obtain a copy of the License at
|
|
2256
|
+
*
|
|
2257
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2258
|
+
*
|
|
2259
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2260
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2261
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2262
|
+
* See the License for the specific language governing permissions and
|
|
2263
|
+
* limitations under the License.
|
|
2264
|
+
*/
|
|
2265
|
+
async function(t,e){const n=await kl(t,{},(async()=>{const n=y({grant_type:"refresh_token",refresh_token:e}).slice(1),{tokenApiHost:r,apiKey:s}=t.config,i=Dl(t,r,"/v1/token",`key=${s}`),o=await t._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",_l.fetch()(i,{method:"POST",headers:o,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(t,e);this.updateTokensAndExpiration(n,r,Number(s))}updateTokensAndExpiration(t,e,n){this.refreshToken=e||null,this.accessToken=t||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(t,e){const{refreshToken:n,accessToken:r,expirationTime:s}=e,i=new ql;return n&&(fl("string"==typeof n,"internal-error",{appName:t}),i.refreshToken=n),r&&(fl("string"==typeof r,"internal-error",{appName:t}),i.accessToken=r),s&&(fl("number"==typeof s,"internal-error",{appName:t}),i.expirationTime=s),i}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(t){this.accessToken=t.accessToken,this.refreshToken=t.refreshToken,this.expirationTime=t.expirationTime}_clone(){return Object.assign(new ql,this.toJSON())}_performRefresh(){return pl("not implemented")}}
|
|
2266
|
+
/**
|
|
2267
|
+
* @license
|
|
2268
|
+
* Copyright 2020 Google LLC
|
|
2269
|
+
*
|
|
2270
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2271
|
+
* you may not use this file except in compliance with the License.
|
|
2272
|
+
* You may obtain a copy of the License at
|
|
2273
|
+
*
|
|
2274
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2275
|
+
*
|
|
2276
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2277
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2278
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2279
|
+
* See the License for the specific language governing permissions and
|
|
2280
|
+
* limitations under the License.
|
|
2281
|
+
*/function jl(t,e){fl("string"==typeof t||void 0===t,"internal-error",{appName:e})}class Bl{constructor(t){var{uid:e,auth:n,stsTokenManager:r}=t,s=rl(t,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ul(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=s.displayName||null,this.email=s.email||null,this.emailVerified=s.emailVerified||!1,this.phoneNumber=s.phoneNumber||null,this.photoURL=s.photoURL||null,this.isAnonymous=s.isAnonymous||!1,this.tenantId=s.tenantId||null,this.providerData=s.providerData?[...s.providerData]:[],this.metadata=new Fl(s.createdAt||void 0,s.lastLoginAt||void 0)}async getIdToken(t){const e=await xl(this,this.stsTokenManager.getToken(this.auth,t));return fl(e,this.auth,"internal-error"),this.accessToken!==e&&(this.accessToken=e,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),e}getIdTokenResult(t){return async function(t,e=!1){const n=E(t),r=await n.getIdToken(e),s=Ml(r);fl(s&&s.exp&&s.auth_time&&s.iat,n.auth,"internal-error");const i="object"==typeof s.firebase?s.firebase:void 0,o=null==i?void 0:i.sign_in_provider;return{claims:s,token:r,authTime:Ll(Pl(s.auth_time)),issuedAtTime:Ll(Pl(s.iat)),expirationTime:Ll(Pl(s.exp)),signInProvider:o||null,signInSecondFactor:(null==i?void 0:i.sign_in_second_factor)||null}}(this,t)}reload(){return async function(t){const e=E(t);await Vl(e),await e.auth._persistUserIfCurrent(e),e.auth._notifyListenersIfCurrent(e)}(this)}_assign(t){this!==t&&(fl(this.uid===t.uid,this.auth,"internal-error"),this.displayName=t.displayName,this.photoURL=t.photoURL,this.email=t.email,this.emailVerified=t.emailVerified,this.phoneNumber=t.phoneNumber,this.isAnonymous=t.isAnonymous,this.tenantId=t.tenantId,this.providerData=t.providerData.map((t=>Object.assign({},t))),this.metadata._copy(t.metadata),this.stsTokenManager._assign(t.stsTokenManager))}_clone(t){return new Bl(Object.assign(Object.assign({},this),{auth:t,stsTokenManager:this.stsTokenManager._clone()}))}_onReload(t){fl(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=t,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(t){this.reloadListener?this.reloadListener(t):this.reloadUserInfo=t}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(t,e=!1){let n=!1;t.idToken&&t.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(t),n=!0),e&&await Vl(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){const t=await this.getIdToken();return await xl(this,async function(t,e){return Cl(t,"POST","/v1/accounts:delete",e)}(this.auth,{idToken:t})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map((t=>Object.assign({},t))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(t,e){var n,r,s,i,o,a,c,u;const h=null!==(n=e.displayName)&&void 0!==n?n:void 0,l=null!==(r=e.email)&&void 0!==r?r:void 0,d=null!==(s=e.phoneNumber)&&void 0!==s?s:void 0,f=null!==(i=e.photoURL)&&void 0!==i?i:void 0,p=null!==(o=e.tenantId)&&void 0!==o?o:void 0,g=null!==(a=e._redirectEventId)&&void 0!==a?a:void 0,m=null!==(c=e.createdAt)&&void 0!==c?c:void 0,y=null!==(u=e.lastLoginAt)&&void 0!==u?u:void 0,{uid:v,emailVerified:w,isAnonymous:I,providerData:b,stsTokenManager:E}=e;fl(v&&E,t,"internal-error");const _=ql.fromJSON(this.name,E);fl("string"==typeof v,t,"internal-error"),jl(h,t.name),jl(l,t.name),fl("boolean"==typeof w,t,"internal-error"),fl("boolean"==typeof I,t,"internal-error"),jl(d,t.name),jl(f,t.name),jl(p,t.name),jl(g,t.name),jl(m,t.name),jl(y,t.name);const T=new Bl({uid:v,auth:t,email:l,emailVerified:w,displayName:h,isAnonymous:I,photoURL:f,phoneNumber:d,tenantId:p,stsTokenManager:_,createdAt:m,lastLoginAt:y});return b&&Array.isArray(b)&&(T.providerData=b.map((t=>Object.assign({},t)))),g&&(T._redirectEventId=g),T}static async _fromIdTokenResponse(t,e,n=!1){const r=new ql;r.updateFromServerResponse(e);const s=new Bl({uid:e.localId,auth:t,stsTokenManager:r,isAnonymous:n});return await Vl(s),s}}
|
|
2282
|
+
/**
|
|
2283
|
+
* @license
|
|
2284
|
+
* Copyright 2019 Google LLC
|
|
2285
|
+
*
|
|
2286
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2287
|
+
* you may not use this file except in compliance with the License.
|
|
2288
|
+
* You may obtain a copy of the License at
|
|
2289
|
+
*
|
|
2290
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2291
|
+
*
|
|
2292
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2293
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2294
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2295
|
+
* See the License for the specific language governing permissions and
|
|
2296
|
+
* limitations under the License.
|
|
2297
|
+
*/class zl{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(t,e){this.storage[t]=e}async _get(t){const e=this.storage[t];return void 0===e?null:e}async _remove(t){delete this.storage[t]}_addListener(t,e){}_removeListener(t,e){}}zl.type="NONE";const $l=zl;
|
|
2298
|
+
/**
|
|
2299
|
+
* @license
|
|
2300
|
+
* Copyright 2019 Google LLC
|
|
2301
|
+
*
|
|
2302
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2303
|
+
* you may not use this file except in compliance with the License.
|
|
2304
|
+
* You may obtain a copy of the License at
|
|
2305
|
+
*
|
|
2306
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2307
|
+
*
|
|
2308
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2309
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2310
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2311
|
+
* See the License for the specific language governing permissions and
|
|
2312
|
+
* limitations under the License.
|
|
2313
|
+
*/function Kl(t,e,n){return`firebase:${t}:${e}:${n}`}class Hl{constructor(t,e,n){this.persistence=t,this.auth=e,this.userKey=n;const{config:r,name:s}=this.auth;this.fullUserKey=Kl(this.userKey,r.apiKey,s),this.fullPersistenceKey=Kl("persistence",r.apiKey,s),this.boundEventHandler=e._onStorageEvent.bind(e),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(t){return this.persistence._set(this.fullUserKey,t.toJSON())}async getCurrentUser(){const t=await this.persistence._get(this.fullUserKey);return t?Bl._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(t){if(this.persistence===t)return;const e=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=t,e?this.setCurrentUser(e):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,n="authUser"){if(!e.length)return new Hl(yl($l),t,n);const r=(await Promise.all(e.map((async t=>{if(await t._isAvailable())return t})))).filter((t=>t));let s=r[0]||yl($l);const i=Kl(n,t.config.apiKey,t.name);let o=null;for(const n of e)try{const e=await n._get(i);if(e){const r=Bl._fromJSON(t,e);n!==s&&(o=r),s=n;break}}catch(t){}const a=r.filter((t=>t._shouldAllowMigration));return s._shouldAllowMigration&&a.length?(s=a[0],o&&await s._set(i,o.toJSON()),await Promise.all(e.map((async t=>{if(t!==s)try{await t._remove(i)}catch(t){}}))),new Hl(s,t,n)):new Hl(s,t,n)}}
|
|
2314
|
+
/**
|
|
2315
|
+
* @license
|
|
2316
|
+
* Copyright 2020 Google LLC
|
|
2317
|
+
*
|
|
2318
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2319
|
+
* you may not use this file except in compliance with the License.
|
|
2320
|
+
* You may obtain a copy of the License at
|
|
2321
|
+
*
|
|
2322
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2323
|
+
*
|
|
2324
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2325
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2326
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2327
|
+
* See the License for the specific language governing permissions and
|
|
2328
|
+
* limitations under the License.
|
|
2329
|
+
*/function Gl(t){const e=t.toLowerCase();if(e.includes("opera/")||e.includes("opr/")||e.includes("opios/"))return"Opera";if(Xl(e))return"IEMobile";if(e.includes("msie")||e.includes("trident/"))return"IE";if(e.includes("edge/"))return"Edge";if(Wl(e))return"Firefox";if(e.includes("silk/"))return"Silk";if(Zl(e))return"Blackberry";if(td(e))return"Webos";if(Ql(e))return"Safari";if((e.includes("chrome/")||Jl(e))&&!e.includes("edge/"))return"Chrome";if(Yl(e))return"Android";{const e=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=t.match(e);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function Wl(t=o()){return/firefox\//i.test(t)}function Ql(t=o()){const e=t.toLowerCase();return e.includes("safari/")&&!e.includes("chrome/")&&!e.includes("crios/")&&!e.includes("android")}function Jl(t=o()){return/crios\//i.test(t)}function Xl(t=o()){return/iemobile/i.test(t)}function Yl(t=o()){return/android/i.test(t)}function Zl(t=o()){return/blackberry/i.test(t)}function td(t=o()){return/webos/i.test(t)}function ed(t=o()){return/iphone|ipad|ipod/i.test(t)||/macintosh/i.test(t)&&/mobile/i.test(t)}function nd(){return function(){const t=o();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0}()&&10===document.documentMode}function rd(t=o()){return ed(t)||Yl(t)||td(t)||Zl(t)||/windows phone/i.test(t)||Xl(t)}
|
|
2330
|
+
/**
|
|
2331
|
+
* @license
|
|
2332
|
+
* Copyright 2020 Google LLC
|
|
2333
|
+
*
|
|
2334
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2335
|
+
* you may not use this file except in compliance with the License.
|
|
2336
|
+
* You may obtain a copy of the License at
|
|
2337
|
+
*
|
|
2338
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2339
|
+
*
|
|
2340
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2341
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2342
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2343
|
+
* See the License for the specific language governing permissions and
|
|
2344
|
+
* limitations under the License.
|
|
2345
|
+
*/
|
|
2346
|
+
function sd(t,e=[]){let n;switch(t){case"Browser":n=Gl(o());break;case"Worker":n=`${Gl(o())}-${t}`;break;default:n=t}const r=e.length?e.join(","):"FirebaseCore-web";return`${n}/JsCore/${ct}/${r}`}
|
|
2347
|
+
/**
|
|
2348
|
+
* @license
|
|
2349
|
+
* Copyright 2022 Google LLC
|
|
2350
|
+
*
|
|
2351
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2352
|
+
* you may not use this file except in compliance with the License.
|
|
2353
|
+
* You may obtain a copy of the License at
|
|
2354
|
+
*
|
|
2355
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2356
|
+
*
|
|
2357
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2358
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2359
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2360
|
+
* See the License for the specific language governing permissions and
|
|
2361
|
+
* limitations under the License.
|
|
2362
|
+
*/class id{constructor(t){this.auth=t,this.queue=[]}pushCallback(t,e){const n=e=>new Promise(((n,r)=>{try{n(t(e))}catch(t){r(t)}}));n.onAbort=e,this.queue.push(n);const r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(t){if(this.auth.currentUser===t)return;const e=[];try{for(const n of this.queue)await n(t),n.onAbort&&e.push(n.onAbort)}catch(t){e.reverse();for(const t of e)try{t()}catch(t){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==t?void 0:t.message})}}}
|
|
2363
|
+
/**
|
|
2364
|
+
* @license
|
|
2365
|
+
* Copyright 2020 Google LLC
|
|
2366
|
+
*
|
|
2367
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2368
|
+
* you may not use this file except in compliance with the License.
|
|
2369
|
+
* You may obtain a copy of the License at
|
|
2370
|
+
*
|
|
2371
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2372
|
+
*
|
|
2373
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2374
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2375
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2376
|
+
* See the License for the specific language governing permissions and
|
|
2377
|
+
* limitations under the License.
|
|
2378
|
+
*/class od{constructor(t,e,n){this.app=t,this.heartbeatServiceProvider=e,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new cd(this),this.idTokenSubscription=new cd(this),this.beforeStateQueue=new id(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=ol,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=t.name,this.clientVersion=n.sdkClientVersion}_initializeWithPersistence(t,e){return e&&(this._popupRedirectResolver=yl(e)),this._initializationPromise=this.queue((async()=>{var n,r;if(!this._deleted&&(this.persistenceManager=await Hl.create(this,t),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(t){}await this.initializeCurrentUser(e),this.lastNotifiedUid=(null===(r=this.currentUser)||void 0===r?void 0:r.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const t=await this.assertedPersistence.getCurrentUser();return this.currentUser||t?this.currentUser&&t&&this.currentUser.uid===t.uid?(this._currentUser._assign(t),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(t,!0):void 0}async initializeCurrentUser(t){var e;const n=await this.assertedPersistence.getCurrentUser();let r=n,s=!1;if(t&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(e=this.redirectUser)||void 0===e?void 0:e._redirectEventId,i=null==r?void 0:r._redirectEventId,o=await this.tryRedirectSignIn(t);n&&n!==i||!(null==o?void 0:o.user)||(r=o.user,s=!0)}if(!r)return this.directlySetCurrentUser(null);if(!r._redirectEventId){if(s)try{await this.beforeStateQueue.runMiddleware(r)}catch(t){r=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(t)))}return r?this.reloadAndSetCurrentUserOrClear(r):this.directlySetCurrentUser(null)}return fl(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===r._redirectEventId?this.directlySetCurrentUser(r):this.reloadAndSetCurrentUserOrClear(r)}async tryRedirectSignIn(t){let e=null;try{e=await this._popupRedirectResolver._completeRedirectFn(this,t,!0)}catch(t){await this._setRedirectUser(null)}return e}async reloadAndSetCurrentUserOrClear(t){try{await Vl(t)}catch(t){if("auth/network-request-failed"!==(null==t?void 0:t.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(t)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const t=navigator;return t.languages&&t.languages[0]||t.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(t){const e=t?E(t):null;return e&&fl(e.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(e&&e._clone(this))}async _updateCurrentUser(t,e=!1){if(!this._deleted)return t&&fl(this.tenantId===t.tenantId,this,"tenant-id-mismatch"),e||await this.beforeStateQueue.runMiddleware(t),this.queue((async()=>{await this.directlySetCurrentUser(t),this.notifyAuthListeners()}))}async signOut(){return await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0)}setPersistence(t){return this.queue((async()=>{await this.assertedPersistence.setPersistence(yl(t))}))}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(t){this._errorFactory=new f("auth","Firebase",t())}onAuthStateChanged(t,e,n){return this.registerStateListener(this.authStateSubscription,t,e,n)}beforeAuthStateChanged(t,e){return this.beforeStateQueue.pushCallback(t,e)}onIdTokenChanged(t,e,n){return this.registerStateListener(this.idTokenSubscription,t,e,n)}toJSON(){var t;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(t=this._currentUser)||void 0===t?void 0:t.toJSON()}}async _setRedirectUser(t,e){const n=await this.getOrInitRedirectPersistenceManager(e);return null===t?n.removeCurrentUser():n.setCurrentUser(t)}async getOrInitRedirectPersistenceManager(t){if(!this.redirectPersistenceManager){const e=t&&yl(t)||this._popupRedirectResolver;fl(e,this,"argument-error"),this.redirectPersistenceManager=await Hl.create(this,[yl(e._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(t){var e,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(e=this._currentUser)||void 0===e?void 0:e._redirectEventId)===t?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId)===t?this.redirectUser:null}async _persistUserIfCurrent(t){if(t===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(t)))}_notifyListenersIfCurrent(t){t===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var t,e;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(e=null===(t=this.currentUser)||void 0===t?void 0:t.uid)&&void 0!==e?e:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,e,n,r){if(this._deleted)return()=>{};const s="function"==typeof e?e:e.next.bind(e),i=this._isInitialized?Promise.resolve():this._initializationPromise;return fl(i,this,"internal-error"),i.then((()=>s(this.currentUser))),"function"==typeof e?t.addObserver(e,n,r):t.addObserver(e)}async directlySetCurrentUser(t){this.currentUser&&this.currentUser!==t&&this._currentUser._stopProactiveRefresh(),t&&this.isProactiveRefreshEnabled&&t._startProactiveRefresh(),this.currentUser=t,t?await this.assertedPersistence.setCurrentUser(t):await this.assertedPersistence.removeCurrentUser()}queue(t){return this.operations=this.operations.then(t,t),this.operations}get assertedPersistence(){return fl(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(t){t&&!this.frameworks.includes(t)&&(this.frameworks.push(t),this.frameworks.sort(),this.clientVersion=sd(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var t;const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());return n&&(e["X-Firebase-Client"]=n),e}}function ad(t){return E(t)}class cd{constructor(t){this.auth=t,this.observer=null,this.addObserver=function(t,e){const n=new I(t,e);return n.subscribe.bind(n)}((t=>this.observer=t))}get next(){return fl(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}function ud(t,e,n){const r=ad(t);fl(r._canInitEmulator,r,"emulator-config-failed"),fl(/^https?:\/\//.test(e),r,"invalid-emulator-scheme");const s=!!(null==n?void 0:n.disableWarnings),i=hd(e),{host:o,port:a}=function(t){const e=hd(t),n=/(\/\/)?([^?#/]+)/.exec(t.substr(e.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",s=/^(\[[^\]]+\])(:|$)/.exec(r);if(s){const t=s[1];return{host:t,port:ld(r.substr(t.length+1))}}{const[t,e]=r.split(":");return{host:t,port:ld(e)}}}(e),c=null===a?"":`:${a}`;r.config.emulator={url:`${i}//${o}${c}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:o,port:a,protocol:i.replace(":",""),options:Object.freeze({disableWarnings:s})}),s||function(){function t(){const t=document.createElement("p"),e=t.style;t.innerText="Running in emulator mode. Do not use with production credentials.",e.position="fixed",e.width="100%",e.backgroundColor="#ffffff",e.border=".1em solid #000000",e.color="#b50000",e.bottom="0px",e.left="0px",e.margin="0px",e.zIndex="10000",e.textAlign="center",t.classList.add("firebase-emulator-warning"),document.body.appendChild(t)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",t):t())}
|
|
2379
|
+
/**
|
|
2380
|
+
* @license
|
|
2381
|
+
* Copyright 2020 Google LLC
|
|
2382
|
+
*
|
|
2383
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2384
|
+
* you may not use this file except in compliance with the License.
|
|
2385
|
+
* You may obtain a copy of the License at
|
|
2386
|
+
*
|
|
2387
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2388
|
+
*
|
|
2389
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2390
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2391
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2392
|
+
* See the License for the specific language governing permissions and
|
|
2393
|
+
* limitations under the License.
|
|
2394
|
+
*/()}function hd(t){const e=t.indexOf(":");return e<0?"":t.substr(0,e+1)}function ld(t){if(!t)return null;const e=Number(t);return isNaN(e)?null:e}class dd{constructor(t,e){this.providerId=t,this.signInMethod=e}toJSON(){return pl("not implemented")}_getIdTokenResponse(t){return pl("not implemented")}_linkToIdToken(t,e){return pl("not implemented")}_getReauthenticationResolver(t){return pl("not implemented")}}
|
|
2395
|
+
/**
|
|
2396
|
+
* @license
|
|
2397
|
+
* Copyright 2020 Google LLC
|
|
2398
|
+
*
|
|
2399
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2400
|
+
* you may not use this file except in compliance with the License.
|
|
2401
|
+
* You may obtain a copy of the License at
|
|
2402
|
+
*
|
|
2403
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2404
|
+
*
|
|
2405
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2406
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2407
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2408
|
+
* See the License for the specific language governing permissions and
|
|
2409
|
+
* limitations under the License.
|
|
2410
|
+
*/async function fd(t,e){return async function(t,e){return Cl(t,"POST","/v1/accounts:sendOobCode",Al(t,e))}(t,e)}
|
|
2411
|
+
/**
|
|
2412
|
+
* @license
|
|
2413
|
+
* Copyright 2020 Google LLC
|
|
2414
|
+
*
|
|
2415
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2416
|
+
* you may not use this file except in compliance with the License.
|
|
2417
|
+
* You may obtain a copy of the License at
|
|
2418
|
+
*
|
|
2419
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2420
|
+
*
|
|
2421
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2422
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2423
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2424
|
+
* See the License for the specific language governing permissions and
|
|
2425
|
+
* limitations under the License.
|
|
2426
|
+
*/
|
|
2427
|
+
/**
|
|
2428
|
+
* @license
|
|
2429
|
+
* Copyright 2020 Google LLC
|
|
2430
|
+
*
|
|
2431
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2432
|
+
* you may not use this file except in compliance with the License.
|
|
2433
|
+
* You may obtain a copy of the License at
|
|
2434
|
+
*
|
|
2435
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2436
|
+
*
|
|
2437
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2438
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2439
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2440
|
+
* See the License for the specific language governing permissions and
|
|
2441
|
+
* limitations under the License.
|
|
2442
|
+
*/
|
|
2443
|
+
class pd extends dd{constructor(t,e,n,r=null){super("password",n),this._email=t,this._password=e,this._tenantId=r}static _fromEmailAndPassword(t,e){return new pd(t,e,"password")}static _fromEmailAndCode(t,e,n=null){return new pd(t,e,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(t){const e="string"==typeof t?JSON.parse(t):t;if((null==e?void 0:e.email)&&(null==e?void 0:e.password)){if("password"===e.signInMethod)return this._fromEmailAndPassword(e.email,e.password);if("emailLink"===e.signInMethod)return this._fromEmailAndCode(e.email,e.password,e.tenantId)}return null}async _getIdTokenResponse(t){switch(this.signInMethod){case"password":
|
|
2444
|
+
/**
|
|
2445
|
+
* @license
|
|
2446
|
+
* Copyright 2020 Google LLC
|
|
2447
|
+
*
|
|
2448
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2449
|
+
* you may not use this file except in compliance with the License.
|
|
2450
|
+
* You may obtain a copy of the License at
|
|
2451
|
+
*
|
|
2452
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2453
|
+
*
|
|
2454
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2455
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2456
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2457
|
+
* See the License for the specific language governing permissions and
|
|
2458
|
+
* limitations under the License.
|
|
2459
|
+
*/
|
|
2460
|
+
return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithPassword",Al(t,e))}(t,{returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithEmailLink",Al(t,e))}(t,{email:this._email,oobCode:this._password});default:hl(t,"internal-error")}}async _linkToIdToken(t,e){switch(this.signInMethod){case"password":return async function(t,e){return Cl(t,"POST","/v1/accounts:update",e)}(t,{idToken:e,returnSecureToken:!0,email:this._email,password:this._password});case"emailLink":return async function(t,e){return Nl(t,"POST","/v1/accounts:signInWithEmailLink",Al(t,e))}(t,{idToken:e,email:this._email,oobCode:this._password});default:hl(t,"internal-error")}}_getReauthenticationResolver(t){return this._getIdTokenResponse(t)}}
|
|
2461
|
+
/**
|
|
2462
|
+
* @license
|
|
2463
|
+
* Copyright 2020 Google LLC
|
|
2464
|
+
*
|
|
2465
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2466
|
+
* you may not use this file except in compliance with the License.
|
|
2467
|
+
* You may obtain a copy of the License at
|
|
2468
|
+
*
|
|
2469
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2470
|
+
*
|
|
2471
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2472
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2473
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2474
|
+
* See the License for the specific language governing permissions and
|
|
2475
|
+
* limitations under the License.
|
|
2476
|
+
*/async function gd(t,e){return Nl(t,"POST","/v1/accounts:signInWithIdp",Al(t,e))}
|
|
2477
|
+
/**
|
|
2478
|
+
* @license
|
|
2479
|
+
* Copyright 2020 Google LLC
|
|
2480
|
+
*
|
|
2481
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2482
|
+
* you may not use this file except in compliance with the License.
|
|
2483
|
+
* You may obtain a copy of the License at
|
|
2484
|
+
*
|
|
2485
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2486
|
+
*
|
|
2487
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2488
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2489
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2490
|
+
* See the License for the specific language governing permissions and
|
|
2491
|
+
* limitations under the License.
|
|
2492
|
+
*/class md extends dd{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(t){const e=new md(t.providerId,t.signInMethod);return t.idToken||t.accessToken?(t.idToken&&(e.idToken=t.idToken),t.accessToken&&(e.accessToken=t.accessToken),t.nonce&&!t.pendingToken&&(e.nonce=t.nonce),t.pendingToken&&(e.pendingToken=t.pendingToken)):t.oauthToken&&t.oauthTokenSecret?(e.accessToken=t.oauthToken,e.secret=t.oauthTokenSecret):hl("argument-error"),e}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(t){const e="string"==typeof t?JSON.parse(t):t,{providerId:n,signInMethod:r}=e,s=rl(e,["providerId","signInMethod"]);if(!n||!r)return null;const i=new md(n,r);return i.idToken=s.idToken||void 0,i.accessToken=s.accessToken||void 0,i.secret=s.secret,i.nonce=s.nonce,i.pendingToken=s.pendingToken||null,i}_getIdTokenResponse(t){return gd(t,this.buildRequest())}_linkToIdToken(t,e){const n=this.buildRequest();return n.idToken=e,gd(t,n)}_getReauthenticationResolver(t){const e=this.buildRequest();return e.autoCreate=!1,gd(t,e)}buildRequest(){const t={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)t.pendingToken=this.pendingToken;else{const e={};this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=y(e)}return t}}
|
|
2493
|
+
/**
|
|
2494
|
+
* @license
|
|
2495
|
+
* Copyright 2020 Google LLC
|
|
2496
|
+
*
|
|
2497
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2498
|
+
* you may not use this file except in compliance with the License.
|
|
2499
|
+
* You may obtain a copy of the License at
|
|
2500
|
+
*
|
|
2501
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2502
|
+
*
|
|
2503
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2504
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2505
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2506
|
+
* See the License for the specific language governing permissions and
|
|
2507
|
+
* limitations under the License.
|
|
2508
|
+
*/class yd{constructor(t){var e,n,r,s,i,o;const a=v(w(t)),c=null!==(e=a.apiKey)&&void 0!==e?e:null,u=null!==(n=a.oobCode)&&void 0!==n?n:null,h=function(t){switch(t){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(r=a.mode)&&void 0!==r?r:null);fl(c&&u&&h,"argument-error"),this.apiKey=c,this.operation=h,this.code=u,this.continueUrl=null!==(s=a.continueUrl)&&void 0!==s?s:null,this.languageCode=null!==(i=a.languageCode)&&void 0!==i?i:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(t){const e=function(t){const e=v(w(t)).link,n=e?v(w(e)).deep_link_id:null,r=v(w(t)).deep_link_id;return(r?v(w(r)).link:null)||r||n||e||t}(t);try{return new yd(e)}catch(t){return null}}}
|
|
2509
|
+
/**
|
|
2510
|
+
* @license
|
|
2511
|
+
* Copyright 2020 Google LLC
|
|
2512
|
+
*
|
|
2513
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2514
|
+
* you may not use this file except in compliance with the License.
|
|
2515
|
+
* You may obtain a copy of the License at
|
|
2516
|
+
*
|
|
2517
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2518
|
+
*
|
|
2519
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2520
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2521
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2522
|
+
* See the License for the specific language governing permissions and
|
|
2523
|
+
* limitations under the License.
|
|
2524
|
+
*/class vd{constructor(){this.providerId=vd.PROVIDER_ID}static credential(t,e){return pd._fromEmailAndPassword(t,e)}static credentialWithLink(t,e){const n=yd.parseLink(e);return fl(n,"argument-error"),pd._fromEmailAndCode(t,n.code,n.tenantId)}}vd.PROVIDER_ID="password",vd.EMAIL_PASSWORD_SIGN_IN_METHOD="password",vd.EMAIL_LINK_SIGN_IN_METHOD="emailLink";
|
|
2525
|
+
/**
|
|
2526
|
+
* @license
|
|
2527
|
+
* Copyright 2020 Google LLC
|
|
2528
|
+
*
|
|
2529
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2530
|
+
* you may not use this file except in compliance with the License.
|
|
2531
|
+
* You may obtain a copy of the License at
|
|
2532
|
+
*
|
|
2533
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2534
|
+
*
|
|
2535
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2536
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2537
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2538
|
+
* See the License for the specific language governing permissions and
|
|
2539
|
+
* limitations under the License.
|
|
2540
|
+
*/
|
|
2541
|
+
class wd{constructor(t){this.providerId=t,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(t){this.defaultLanguageCode=t}setCustomParameters(t){return this.customParameters=t,this}getCustomParameters(){return this.customParameters}}
|
|
2542
|
+
/**
|
|
2543
|
+
* @license
|
|
2544
|
+
* Copyright 2019 Google LLC
|
|
2545
|
+
*
|
|
2546
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2547
|
+
* you may not use this file except in compliance with the License.
|
|
2548
|
+
* You may obtain a copy of the License at
|
|
2549
|
+
*
|
|
2550
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2551
|
+
*
|
|
2552
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2553
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2554
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2555
|
+
* See the License for the specific language governing permissions and
|
|
2556
|
+
* limitations under the License.
|
|
2557
|
+
*/class Id extends wd{constructor(){super(...arguments),this.scopes=[]}addScope(t){return this.scopes.includes(t)||this.scopes.push(t),this}getScopes(){return[...this.scopes]}}
|
|
2558
|
+
/**
|
|
2559
|
+
* @license
|
|
2560
|
+
* Copyright 2020 Google LLC
|
|
2561
|
+
*
|
|
2562
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2563
|
+
* you may not use this file except in compliance with the License.
|
|
2564
|
+
* You may obtain a copy of the License at
|
|
2565
|
+
*
|
|
2566
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2567
|
+
*
|
|
2568
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2569
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2570
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2571
|
+
* See the License for the specific language governing permissions and
|
|
2572
|
+
* limitations under the License.
|
|
2573
|
+
*/class bd extends Id{constructor(){super("facebook.com")}static credential(t){return md._fromParams({providerId:bd.PROVIDER_ID,signInMethod:bd.FACEBOOK_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return bd.credentialFromTaggedObject(t)}static credentialFromError(t){return bd.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return bd.credential(t.oauthAccessToken)}catch(t){return null}}}bd.FACEBOOK_SIGN_IN_METHOD="facebook.com",bd.PROVIDER_ID="facebook.com";
|
|
2574
|
+
/**
|
|
2575
|
+
* @license
|
|
2576
|
+
* Copyright 2020 Google LLC
|
|
2577
|
+
*
|
|
2578
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2579
|
+
* you may not use this file except in compliance with the License.
|
|
2580
|
+
* You may obtain a copy of the License at
|
|
2581
|
+
*
|
|
2582
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2583
|
+
*
|
|
2584
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2585
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2586
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2587
|
+
* See the License for the specific language governing permissions and
|
|
2588
|
+
* limitations under the License.
|
|
2589
|
+
*/
|
|
2590
|
+
class Ed extends Id{constructor(){super("google.com"),this.addScope("profile")}static credential(t,e){return md._fromParams({providerId:Ed.PROVIDER_ID,signInMethod:Ed.GOOGLE_SIGN_IN_METHOD,idToken:t,accessToken:e})}static credentialFromResult(t){return Ed.credentialFromTaggedObject(t)}static credentialFromError(t){return Ed.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthIdToken:e,oauthAccessToken:n}=t;if(!e&&!n)return null;try{return Ed.credential(e,n)}catch(t){return null}}}Ed.GOOGLE_SIGN_IN_METHOD="google.com",Ed.PROVIDER_ID="google.com";
|
|
2591
|
+
/**
|
|
2592
|
+
* @license
|
|
2593
|
+
* Copyright 2020 Google LLC
|
|
2594
|
+
*
|
|
2595
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2596
|
+
* you may not use this file except in compliance with the License.
|
|
2597
|
+
* You may obtain a copy of the License at
|
|
2598
|
+
*
|
|
2599
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2600
|
+
*
|
|
2601
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2602
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2603
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2604
|
+
* See the License for the specific language governing permissions and
|
|
2605
|
+
* limitations under the License.
|
|
2606
|
+
*/
|
|
2607
|
+
class _d extends Id{constructor(){super("github.com")}static credential(t){return md._fromParams({providerId:_d.PROVIDER_ID,signInMethod:_d.GITHUB_SIGN_IN_METHOD,accessToken:t})}static credentialFromResult(t){return _d.credentialFromTaggedObject(t)}static credentialFromError(t){return _d.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t||!("oauthAccessToken"in t))return null;if(!t.oauthAccessToken)return null;try{return _d.credential(t.oauthAccessToken)}catch(t){return null}}}_d.GITHUB_SIGN_IN_METHOD="github.com",_d.PROVIDER_ID="github.com";
|
|
2608
|
+
/**
|
|
2609
|
+
* @license
|
|
2610
|
+
* Copyright 2020 Google LLC
|
|
2611
|
+
*
|
|
2612
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2613
|
+
* you may not use this file except in compliance with the License.
|
|
2614
|
+
* You may obtain a copy of the License at
|
|
2615
|
+
*
|
|
2616
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2617
|
+
*
|
|
2618
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2619
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2620
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2621
|
+
* See the License for the specific language governing permissions and
|
|
2622
|
+
* limitations under the License.
|
|
2623
|
+
*/
|
|
2624
|
+
class Td extends Id{constructor(){super("twitter.com")}static credential(t,e){return md._fromParams({providerId:Td.PROVIDER_ID,signInMethod:Td.TWITTER_SIGN_IN_METHOD,oauthToken:t,oauthTokenSecret:e})}static credentialFromResult(t){return Td.credentialFromTaggedObject(t)}static credentialFromError(t){return Td.credentialFromTaggedObject(t.customData||{})}static credentialFromTaggedObject({_tokenResponse:t}){if(!t)return null;const{oauthAccessToken:e,oauthTokenSecret:n}=t;if(!e||!n)return null;try{return Td.credential(e,n)}catch(t){return null}}}Td.TWITTER_SIGN_IN_METHOD="twitter.com",Td.PROVIDER_ID="twitter.com";
|
|
2625
|
+
/**
|
|
2626
|
+
* @license
|
|
2627
|
+
* Copyright 2020 Google LLC
|
|
2628
|
+
*
|
|
2629
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2630
|
+
* you may not use this file except in compliance with the License.
|
|
2631
|
+
* You may obtain a copy of the License at
|
|
2632
|
+
*
|
|
2633
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2634
|
+
*
|
|
2635
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2636
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2637
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2638
|
+
* See the License for the specific language governing permissions and
|
|
2639
|
+
* limitations under the License.
|
|
2640
|
+
*/
|
|
2641
|
+
class Sd{constructor(t){this.user=t.user,this.providerId=t.providerId,this._tokenResponse=t._tokenResponse,this.operationType=t.operationType}static async _fromIdTokenResponse(t,e,n,r=!1){const s=await Bl._fromIdTokenResponse(t,n,r),i=Ad(n);return new Sd({user:s,providerId:i,_tokenResponse:n,operationType:e})}static async _forOperation(t,e,n){await t._updateTokensIfNecessary(n,!0);const r=Ad(n);return new Sd({user:t,providerId:r,_tokenResponse:n,operationType:e})}}function Ad(t){return t.providerId?t.providerId:"phoneNumber"in t?"phone":null}
|
|
2642
|
+
/**
|
|
2643
|
+
* @license
|
|
2644
|
+
* Copyright 2020 Google LLC
|
|
2645
|
+
*
|
|
2646
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2647
|
+
* you may not use this file except in compliance with the License.
|
|
2648
|
+
* You may obtain a copy of the License at
|
|
2649
|
+
*
|
|
2650
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2651
|
+
*
|
|
2652
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2653
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2654
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2655
|
+
* See the License for the specific language governing permissions and
|
|
2656
|
+
* limitations under the License.
|
|
2657
|
+
*/class Cd extends d{constructor(t,e,n,r){var s;super(e.code,e.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,Cd.prototype),this.customData={appName:t.name,tenantId:null!==(s=t.tenantId)&&void 0!==s?s:void 0,_serverResponse:e.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(t,e,n,r){return new Cd(t,e,n,r)}}function kd(t,e,n,r){return("reauthenticate"===e?n._getReauthenticationResolver(t):n._getIdTokenResponse(t)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw Cd._fromErrorAndOperation(t,n,e,r);throw n}))}
|
|
2658
|
+
/**
|
|
2659
|
+
* @license
|
|
2660
|
+
* Copyright 2020 Google LLC
|
|
2661
|
+
*
|
|
2662
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2663
|
+
* you may not use this file except in compliance with the License.
|
|
2664
|
+
* You may obtain a copy of the License at
|
|
2665
|
+
*
|
|
2666
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2667
|
+
*
|
|
2668
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2669
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2670
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2671
|
+
* See the License for the specific language governing permissions and
|
|
2672
|
+
* limitations under the License.
|
|
2673
|
+
*/
|
|
2674
|
+
async function Nd(t,e,n=!1){const r="signIn",s=await kd(t,r,e),i=await Sd._fromIdTokenResponse(t,r,s);return n||await t._updateCurrentUser(i.user),i}
|
|
2675
|
+
/**
|
|
2676
|
+
* @license
|
|
2677
|
+
* Copyright 2020 Google LLC
|
|
2678
|
+
*
|
|
2679
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2680
|
+
* you may not use this file except in compliance with the License.
|
|
2681
|
+
* You may obtain a copy of the License at
|
|
2682
|
+
*
|
|
2683
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2684
|
+
*
|
|
2685
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2686
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2687
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2688
|
+
* See the License for the specific language governing permissions and
|
|
2689
|
+
* limitations under the License.
|
|
2690
|
+
*/
|
|
2691
|
+
async function Dd(t,e,n){const r=E(t),s={requestType:"PASSWORD_RESET",email:e};n&&
|
|
2692
|
+
/**
|
|
2693
|
+
* @license
|
|
2694
|
+
* Copyright 2020 Google LLC
|
|
2695
|
+
*
|
|
2696
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2697
|
+
* you may not use this file except in compliance with the License.
|
|
2698
|
+
* You may obtain a copy of the License at
|
|
2699
|
+
*
|
|
2700
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2701
|
+
*
|
|
2702
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2703
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2704
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2705
|
+
* See the License for the specific language governing permissions and
|
|
2706
|
+
* limitations under the License.
|
|
2707
|
+
*/
|
|
2708
|
+
function(t,e,n){var r;fl((null===(r=n.url)||void 0===r?void 0:r.length)>0,t,"invalid-continue-uri"),fl(void 0===n.dynamicLinkDomain||n.dynamicLinkDomain.length>0,t,"invalid-dynamic-link-domain"),e.continueUrl=n.url,e.dynamicLinkDomain=n.dynamicLinkDomain,e.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(fl(n.iOS.bundleId.length>0,t,"missing-ios-bundle-id"),e.iOSBundleId=n.iOS.bundleId),n.android&&(fl(n.android.packageName.length>0,t,"missing-android-pkg-name"),e.androidInstallApp=n.android.installApp,e.androidMinimumVersionCode=n.android.minimumVersion,e.androidPackageName=n.android.packageName)}(r,s,n),await fd(r,s)}async function Rd(t,e,n){await async function(t,e){return Cl(t,"POST","/v1/accounts:resetPassword",Al(t,e))}(E(t),{oobCode:e,newPassword:n})}function Od(t,e,n){return async function(t,e){return Nd(ad(t),e)}(E(t),vd.credential(e,n))}const Ld="__sak";
|
|
2709
|
+
/**
|
|
2710
|
+
* @license
|
|
2711
|
+
* Copyright 2019 Google LLC
|
|
2712
|
+
*
|
|
2713
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2714
|
+
* you may not use this file except in compliance with the License.
|
|
2715
|
+
* You may obtain a copy of the License at
|
|
2716
|
+
*
|
|
2717
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2718
|
+
*
|
|
2719
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2720
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2721
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2722
|
+
* See the License for the specific language governing permissions and
|
|
2723
|
+
* limitations under the License.
|
|
2724
|
+
*/class Pd{constructor(t,e){this.storageRetriever=t,this.type=e}_isAvailable(){try{return this.storage?(this.storage.setItem(Ld,"1"),this.storage.removeItem(Ld),Promise.resolve(!0)):Promise.resolve(!1)}catch(t){return Promise.resolve(!1)}}_set(t,e){return this.storage.setItem(t,JSON.stringify(e)),Promise.resolve()}_get(t){const e=this.storage.getItem(t);return Promise.resolve(e?JSON.parse(e):null)}_remove(t){return this.storage.removeItem(t),Promise.resolve()}get storage(){return this.storageRetriever()}}
|
|
2725
|
+
/**
|
|
2726
|
+
* @license
|
|
2727
|
+
* Copyright 2020 Google LLC
|
|
2728
|
+
*
|
|
2729
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2730
|
+
* you may not use this file except in compliance with the License.
|
|
2731
|
+
* You may obtain a copy of the License at
|
|
2732
|
+
*
|
|
2733
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2734
|
+
*
|
|
2735
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2736
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2737
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2738
|
+
* See the License for the specific language governing permissions and
|
|
2739
|
+
* limitations under the License.
|
|
2740
|
+
*/class Md extends Pd{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(t,e)=>this.onStorageEvent(t,e),this.listeners={},this.localCache={},this.pollTimer=null,this.safariLocalStorageNotSynced=function(){const t=o();return Ql(t)||ed(t)}()&&function(){try{return!(!window||window===window.top)}catch(t){return!1}}(),this.fallbackToPolling=rd(),this._shouldAllowMigration=!0}forAllChangedKeys(t){for(const e of Object.keys(this.listeners)){const n=this.storage.getItem(e),r=this.localCache[e];n!==r&&t(e,r,n)}}onStorageEvent(t,e=!1){if(!t.key)return void this.forAllChangedKeys(((t,e,n)=>{this.notifyListeners(t,n)}));const n=t.key;if(e?this.detachListener():this.stopPolling(),this.safariLocalStorageNotSynced){const r=this.storage.getItem(n);if(t.newValue!==r)null!==t.newValue?this.storage.setItem(n,t.newValue):this.storage.removeItem(n);else if(this.localCache[n]===t.newValue&&!e)return}const r=()=>{const t=this.storage.getItem(n);(e||this.localCache[n]!==t)&&this.notifyListeners(n,t)},s=this.storage.getItem(n);nd()&&s!==t.newValue&&t.newValue!==t.oldValue?setTimeout(r,10):r()}notifyListeners(t,e){this.localCache[t]=e;const n=this.listeners[t];if(n)for(const t of Array.from(n))t(e?JSON.parse(e):e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((t,e,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:t,oldValue:e,newValue:n}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(t,e){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[t]||(this.listeners[t]=new Set,this.localCache[t]=this.storage.getItem(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(t,e){await super._set(t,e),this.localCache[t]=JSON.stringify(e)}async _get(t){const e=await super._get(t);return this.localCache[t]=JSON.stringify(e),e}async _remove(t){await super._remove(t),delete this.localCache[t]}}Md.type="LOCAL";const xd=Md;
|
|
2741
|
+
/**
|
|
2742
|
+
* @license
|
|
2743
|
+
* Copyright 2020 Google LLC
|
|
2744
|
+
*
|
|
2745
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2746
|
+
* you may not use this file except in compliance with the License.
|
|
2747
|
+
* You may obtain a copy of the License at
|
|
2748
|
+
*
|
|
2749
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2750
|
+
*
|
|
2751
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2752
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2753
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2754
|
+
* See the License for the specific language governing permissions and
|
|
2755
|
+
* limitations under the License.
|
|
2756
|
+
*/class Ud extends Pd{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(t,e){}_removeListener(t,e){}}Ud.type="SESSION";const Fd=Ud;
|
|
2757
|
+
/**
|
|
2758
|
+
* @license
|
|
2759
|
+
* Copyright 2019 Google LLC
|
|
2760
|
+
*
|
|
2761
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2762
|
+
* you may not use this file except in compliance with the License.
|
|
2763
|
+
* You may obtain a copy of the License at
|
|
2764
|
+
*
|
|
2765
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2766
|
+
*
|
|
2767
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2768
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2769
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2770
|
+
* See the License for the specific language governing permissions and
|
|
2771
|
+
* limitations under the License.
|
|
2772
|
+
*/
|
|
2773
|
+
/**
|
|
2774
|
+
* @license
|
|
2775
|
+
* Copyright 2019 Google LLC
|
|
2776
|
+
*
|
|
2777
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2778
|
+
* you may not use this file except in compliance with the License.
|
|
2779
|
+
* You may obtain a copy of the License at
|
|
2780
|
+
*
|
|
2781
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2782
|
+
*
|
|
2783
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2784
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2785
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2786
|
+
* See the License for the specific language governing permissions and
|
|
2787
|
+
* limitations under the License.
|
|
2788
|
+
*/
|
|
2789
|
+
class Vd{constructor(t){this.eventTarget=t,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){const e=this.receivers.find((e=>e.isListeningto(t)));if(e)return e;const n=new Vd(t);return this.receivers.push(n),n}isListeningto(t){return this.eventTarget===t}async handleEvent(t){const e=t,{eventId:n,eventType:r,data:s}=e.data,i=this.handlersMap[r];if(!(null==i?void 0:i.size))return;e.ports[0].postMessage({status:"ack",eventId:n,eventType:r});const o=Array.from(i).map((async t=>t(e.origin,s))),a=await function(t){return Promise.all(t.map((async t=>{try{return{fulfilled:!0,value:await t}}catch(t){return{fulfilled:!1,reason:t}}})))}(o);e.ports[0].postMessage({status:"done",eventId:n,eventType:r,response:a})}_subscribe(t,e){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[t]||(this.handlersMap[t]=new Set),this.handlersMap[t].add(e)}_unsubscribe(t,e){this.handlersMap[t]&&e&&this.handlersMap[t].delete(e),e&&0!==this.handlersMap[t].size||delete this.handlersMap[t],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}
|
|
2790
|
+
/**
|
|
2791
|
+
* @license
|
|
2792
|
+
* Copyright 2020 Google LLC
|
|
2793
|
+
*
|
|
2794
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2795
|
+
* you may not use this file except in compliance with the License.
|
|
2796
|
+
* You may obtain a copy of the License at
|
|
2797
|
+
*
|
|
2798
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2799
|
+
*
|
|
2800
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2801
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2802
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2803
|
+
* See the License for the specific language governing permissions and
|
|
2804
|
+
* limitations under the License.
|
|
2805
|
+
*/
|
|
2806
|
+
function qd(t="",e=10){let n="";for(let t=0;t<e;t++)n+=Math.floor(10*Math.random());return t+n}
|
|
2807
|
+
/**
|
|
2808
|
+
* @license
|
|
2809
|
+
* Copyright 2019 Google LLC
|
|
2810
|
+
*
|
|
2811
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2812
|
+
* you may not use this file except in compliance with the License.
|
|
2813
|
+
* You may obtain a copy of the License at
|
|
2814
|
+
*
|
|
2815
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2816
|
+
*
|
|
2817
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2818
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2819
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2820
|
+
* See the License for the specific language governing permissions and
|
|
2821
|
+
* limitations under the License.
|
|
2822
|
+
*/Vd.receivers=[];class jd{constructor(t){this.target=t,this.handlers=new Set}removeMessageHandler(t){t.messageChannel&&(t.messageChannel.port1.removeEventListener("message",t.onMessage),t.messageChannel.port1.close()),this.handlers.delete(t)}async _send(t,e,n=50){const r="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!r)throw new Error("connection_unavailable");let s,i;return new Promise(((o,a)=>{const c=qd("",20);r.port1.start();const u=setTimeout((()=>{a(new Error("unsupported_event"))}),n);i={messageChannel:r,onMessage(t){const e=t;if(e.data.eventId===c)switch(e.data.status){case"ack":clearTimeout(u),s=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(s),o(e.data.response);break;default:clearTimeout(u),clearTimeout(s),a(new Error("invalid_response"))}}},this.handlers.add(i),r.port1.addEventListener("message",i.onMessage),this.target.postMessage({eventType:t,eventId:c,data:e},[r.port2])})).finally((()=>{i&&this.removeMessageHandler(i)}))}}
|
|
2823
|
+
/**
|
|
2824
|
+
* @license
|
|
2825
|
+
* Copyright 2020 Google LLC
|
|
2826
|
+
*
|
|
2827
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2828
|
+
* you may not use this file except in compliance with the License.
|
|
2829
|
+
* You may obtain a copy of the License at
|
|
2830
|
+
*
|
|
2831
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2832
|
+
*
|
|
2833
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2834
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2835
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2836
|
+
* See the License for the specific language governing permissions and
|
|
2837
|
+
* limitations under the License.
|
|
2838
|
+
*/function Bd(){return window}
|
|
2839
|
+
/**
|
|
2840
|
+
* @license
|
|
2841
|
+
* Copyright 2020 Google LLC.
|
|
2842
|
+
*
|
|
2843
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2844
|
+
* you may not use this file except in compliance with the License.
|
|
2845
|
+
* You may obtain a copy of the License at
|
|
2846
|
+
*
|
|
2847
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2848
|
+
*
|
|
2849
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2850
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2851
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2852
|
+
* See the License for the specific language governing permissions and
|
|
2853
|
+
* limitations under the License.
|
|
2854
|
+
*/
|
|
2855
|
+
function zd(){return void 0!==Bd().WorkerGlobalScope&&"function"==typeof Bd().importScripts}
|
|
2856
|
+
/**
|
|
2857
|
+
* @license
|
|
2858
|
+
* Copyright 2019 Google LLC
|
|
2859
|
+
*
|
|
2860
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2861
|
+
* you may not use this file except in compliance with the License.
|
|
2862
|
+
* You may obtain a copy of the License at
|
|
2863
|
+
*
|
|
2864
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2865
|
+
*
|
|
2866
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2867
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2868
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2869
|
+
* See the License for the specific language governing permissions and
|
|
2870
|
+
* limitations under the License.
|
|
2871
|
+
*/
|
|
2872
|
+
const $d="firebaseLocalStorageDb",Kd="firebaseLocalStorage",Hd="fbase_key";class Gd{constructor(t){this.request=t}toPromise(){return new Promise(((t,e)=>{this.request.addEventListener("success",(()=>{t(this.request.result)})),this.request.addEventListener("error",(()=>{e(this.request.error)}))}))}}function Wd(t,e){return t.transaction([Kd],e?"readwrite":"readonly").objectStore(Kd)}function Qd(){const t=indexedDB.open($d,1);return new Promise(((e,n)=>{t.addEventListener("error",(()=>{n(t.error)})),t.addEventListener("upgradeneeded",(()=>{const e=t.result;try{e.createObjectStore(Kd,{keyPath:Hd})}catch(t){n(t)}})),t.addEventListener("success",(async()=>{const n=t.result;n.objectStoreNames.contains(Kd)?e(n):(n.close(),await function(){const t=indexedDB.deleteDatabase($d);return new Gd(t).toPromise()}(),e(await Qd()))}))}))}async function Jd(t,e,n){const r=Wd(t,!0).put({[Hd]:e,value:n});return new Gd(r).toPromise()}function Xd(t,e){const n=Wd(t,!0).delete(e);return new Gd(n).toPromise()}class Yd{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await Qd()),this.db}async _withRetries(t){let e=0;for(;;)try{const e=await this._openDb();return await t(e)}catch(t){if(e++>3)throw t;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return zd()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Vd._getInstance(zd()?self:null),this.receiver._subscribe("keyChanged",(async(t,e)=>({keyProcessed:(await this._poll()).includes(e.key)}))),this.receiver._subscribe("ping",(async(t,e)=>["keyChanged"]))}async initializeSender(){var t,e;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(t){return null}}(),!this.activeServiceWorker)return;this.sender=new jd(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(t=n[0])||void 0===t?void 0:t.fulfilled)&&(null===(e=n[0])||void 0===e?void 0:e.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(t){if(this.sender&&this.activeServiceWorker&&function(){var t;return(null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null}()===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:t},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const t=await Qd();return await Jd(t,Ld,"1"),await Xd(t,Ld),!0}catch(t){}return!1}async _withPendingWrite(t){this.pendingWrites++;try{await t()}finally{this.pendingWrites--}}async _set(t,e){return this._withPendingWrite((async()=>(await this._withRetries((n=>Jd(n,t,e))),this.localCache[t]=e,this.notifyServiceWorker(t))))}async _get(t){const e=await this._withRetries((e=>async function(t,e){const n=Wd(t,!1).get(e),r=await new Gd(n).toPromise();return void 0===r?null:r.value}(e,t)));return this.localCache[t]=e,e}async _remove(t){return this._withPendingWrite((async()=>(await this._withRetries((e=>Xd(e,t))),delete this.localCache[t],this.notifyServiceWorker(t))))}async _poll(){const t=await this._withRetries((t=>{const e=Wd(t,!1).getAll();return new Gd(e).toPromise()}));if(!t)return[];if(0!==this.pendingWrites)return[];const e=[],n=new Set;for(const{fbase_key:r,value:s}of t)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(s)&&(this.notifyListeners(r,s),e.push(r));for(const t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),e.push(t));return e}notifyListeners(t,e){this.localCache[t]=e;const n=this.listeners[t];if(n)for(const t of Array.from(n))t(e)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(t,e){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[t]||(this.listeners[t]=new Set,this._get(t)),this.listeners[t].add(e)}_removeListener(t,e){this.listeners[t]&&(this.listeners[t].delete(e),0===this.listeners[t].size&&delete this.listeners[t]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Yd.type="LOCAL";const Zd=Yd;
|
|
2873
|
+
/**
|
|
2874
|
+
* @license
|
|
2875
|
+
* Copyright 2020 Google LLC
|
|
2876
|
+
*
|
|
2877
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2878
|
+
* you may not use this file except in compliance with the License.
|
|
2879
|
+
* You may obtain a copy of the License at
|
|
2880
|
+
*
|
|
2881
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2882
|
+
*
|
|
2883
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2884
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2885
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2886
|
+
* See the License for the specific language governing permissions and
|
|
2887
|
+
* limitations under the License.
|
|
2888
|
+
*/function tf(t){return new Promise(((e,n)=>{const r=document.createElement("script");r.setAttribute("src",t),r.onload=e,r.onerror=t=>{const e=ll("internal-error");e.customData=t,n(e)},r.type="text/javascript",r.charset="UTF-8",function(){var t,e;return null!==(e=null===(t=document.getElementsByTagName("head"))||void 0===t?void 0:t[0])&&void 0!==e?e:document}().appendChild(r)}))}new bl(3e4,6e4);
|
|
2889
|
+
/**
|
|
2890
|
+
* @license
|
|
2891
|
+
* Copyright 2019 Google LLC
|
|
2892
|
+
*
|
|
2893
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2894
|
+
* you may not use this file except in compliance with the License.
|
|
2895
|
+
* You may obtain a copy of the License at
|
|
2896
|
+
*
|
|
2897
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2898
|
+
*
|
|
2899
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2900
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2901
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2902
|
+
* See the License for the specific language governing permissions and
|
|
2903
|
+
* limitations under the License.
|
|
2904
|
+
*/
|
|
2905
|
+
class ef extends dd{constructor(t){super("custom","custom"),this.params=t}_getIdTokenResponse(t){return gd(t,this._buildIdpRequest())}_linkToIdToken(t,e){return gd(t,this._buildIdpRequest(e))}_getReauthenticationResolver(t){return gd(t,this._buildIdpRequest())}_buildIdpRequest(t){const e={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return t&&(e.idToken=t),e}}function nf(t){return Nd(t.auth,new ef(t),t.bypassAuthState)}function rf(t){const{auth:e,user:n}=t;return fl(n,e,"internal-error"),
|
|
2906
|
+
/**
|
|
2907
|
+
* @license
|
|
2908
|
+
* Copyright 2019 Google LLC
|
|
2909
|
+
*
|
|
2910
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2911
|
+
* you may not use this file except in compliance with the License.
|
|
2912
|
+
* You may obtain a copy of the License at
|
|
2913
|
+
*
|
|
2914
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2915
|
+
*
|
|
2916
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2917
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2918
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2919
|
+
* See the License for the specific language governing permissions and
|
|
2920
|
+
* limitations under the License.
|
|
2921
|
+
*/
|
|
2922
|
+
async function(t,e,n=!1){const{auth:r}=t,s="reauthenticate";try{const i=await xl(t,kd(r,s,e,t),n);fl(i.idToken,r,"internal-error");const o=Ml(i.idToken);fl(o,r,"internal-error");const{sub:a}=o;return fl(t.uid===a,r,"user-mismatch"),Sd._forOperation(t,s,i)}catch(t){throw"auth/user-not-found"===(null==t?void 0:t.code)&&hl(r,"user-mismatch"),t}}(n,new ef(t),t.bypassAuthState)}async function sf(t){const{auth:e,user:n}=t;return fl(n,e,"internal-error"),async function(t,e,n=!1){const r=await xl(t,e._linkToIdToken(t.auth,await t.getIdToken()),n);return Sd._forOperation(t,"link",r)}(n,new ef(t),t.bypassAuthState)}
|
|
2923
|
+
/**
|
|
2924
|
+
* @license
|
|
2925
|
+
* Copyright 2020 Google LLC
|
|
2926
|
+
*
|
|
2927
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2928
|
+
* you may not use this file except in compliance with the License.
|
|
2929
|
+
* You may obtain a copy of the License at
|
|
2930
|
+
*
|
|
2931
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2932
|
+
*
|
|
2933
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2934
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2935
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2936
|
+
* See the License for the specific language governing permissions and
|
|
2937
|
+
* limitations under the License.
|
|
2938
|
+
*/class of{constructor(t,e,n,r,s=!1){this.auth=t,this.resolver=n,this.user=r,this.bypassAuthState=s,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(e)?e:[e]}execute(){return new Promise((async(t,e)=>{this.pendingPromise={resolve:t,reject:e};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(t){this.reject(t)}}))}async onAuthEvent(t){const{urlResponse:e,sessionId:n,postBody:r,tenantId:s,error:i,type:o}=t;if(i)return void this.reject(i);const a={auth:this.auth,requestUri:e,sessionId:n,tenantId:s||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(t){this.reject(t)}}onError(t){this.reject(t)}getIdpTask(t){switch(t){case"signInViaPopup":case"signInViaRedirect":return nf;case"linkViaPopup":case"linkViaRedirect":return sf;case"reauthViaPopup":case"reauthViaRedirect":return rf;default:hl(this.auth,"internal-error")}}resolve(t){gl(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(t),this.unregisterAndCleanUp()}reject(t){gl(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(t),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}
|
|
2939
|
+
/**
|
|
2940
|
+
* @license
|
|
2941
|
+
* Copyright 2020 Google LLC
|
|
2942
|
+
*
|
|
2943
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2944
|
+
* you may not use this file except in compliance with the License.
|
|
2945
|
+
* You may obtain a copy of the License at
|
|
2946
|
+
*
|
|
2947
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2948
|
+
*
|
|
2949
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2950
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2951
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2952
|
+
* See the License for the specific language governing permissions and
|
|
2953
|
+
* limitations under the License.
|
|
2954
|
+
*/const af=new bl(2e3,1e4);class cf extends of{constructor(t,e,n,r,s){super(t,e,r,s),this.provider=n,this.authWindow=null,this.pollId=null,cf.currentPopupAction&&cf.currentPopupAction.cancel(),cf.currentPopupAction=this}async executeNotNull(){const t=await this.execute();return fl(t,this.auth,"internal-error"),t}async onExecution(){gl(1===this.filter.length,"Popup operations only handle one event");const t=qd();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],t),this.authWindow.associatedEvent=t,this.resolver._originValidation(this.auth).catch((t=>{this.reject(t)})),this.resolver._isIframeWebStorageSupported(this.auth,(t=>{t||this.reject(ll(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var t;return(null===(t=this.authWindow)||void 0===t?void 0:t.associatedEvent)||null}cancel(){this.reject(ll(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,cf.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e,n;(null===(n=null===(e=this.authWindow)||void 0===e?void 0:e.window)||void 0===n?void 0:n.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(ll(this.auth,"popup-closed-by-user"))}),2e3):this.pollId=window.setTimeout(t,af.get())};t()}}cf.currentPopupAction=null;
|
|
2955
|
+
/**
|
|
2956
|
+
* @license
|
|
2957
|
+
* Copyright 2020 Google LLC
|
|
2958
|
+
*
|
|
2959
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2960
|
+
* you may not use this file except in compliance with the License.
|
|
2961
|
+
* You may obtain a copy of the License at
|
|
2962
|
+
*
|
|
2963
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2964
|
+
*
|
|
2965
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2966
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2967
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2968
|
+
* See the License for the specific language governing permissions and
|
|
2969
|
+
* limitations under the License.
|
|
2970
|
+
*/
|
|
2971
|
+
const uf="pendingRedirect",hf=new Map;class lf extends of{constructor(t,e,n=!1){super(t,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],e,void 0,n),this.eventId=null}async execute(){let t=hf.get(this.auth._key());if(!t){try{const e=await async function(t,e){const n=function(t){return Kl(uf,t.config.apiKey,t.name)}(e),r=function(t){return yl(t._redirectPersistence)}(t);if(!await r._isAvailable())return!1;const s="true"===await r._get(n);return await r._remove(n),s}(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}hf.set(this.auth._key(),t)}return this.bypassAuthState||hf.set(this.auth._key(),(()=>Promise.resolve(null))),t()}async onAuthEvent(t){if("signInViaRedirect"===t.type)return super.onAuthEvent(t);if("unknown"!==t.type){if(t.eventId){const e=await this.auth._redirectUserForId(t.eventId);if(e)return this.user=e,super.onAuthEvent(t);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}function df(t,e){hf.set(t._key(),e)}async function ff(t,e,n=!1){const r=ad(t),s=
|
|
2972
|
+
/**
|
|
2973
|
+
* @license
|
|
2974
|
+
* Copyright 2021 Google LLC
|
|
2975
|
+
*
|
|
2976
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2977
|
+
* you may not use this file except in compliance with the License.
|
|
2978
|
+
* You may obtain a copy of the License at
|
|
2979
|
+
*
|
|
2980
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2981
|
+
*
|
|
2982
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2983
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2984
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2985
|
+
* See the License for the specific language governing permissions and
|
|
2986
|
+
* limitations under the License.
|
|
2987
|
+
*/
|
|
2988
|
+
function(t,e){return e?yl(e):(fl(t._popupRedirectResolver,t,"argument-error"),t._popupRedirectResolver)}(r,e),i=new lf(r,s,n),o=await i.execute();return o&&!n&&(delete o.user._redirectEventId,await r._persistUserIfCurrent(o.user),await r._setRedirectUser(null,e)),o}
|
|
2989
|
+
/**
|
|
2990
|
+
* @license
|
|
2991
|
+
* Copyright 2020 Google LLC
|
|
2992
|
+
*
|
|
2993
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2994
|
+
* you may not use this file except in compliance with the License.
|
|
2995
|
+
* You may obtain a copy of the License at
|
|
2996
|
+
*
|
|
2997
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2998
|
+
*
|
|
2999
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3000
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3001
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3002
|
+
* See the License for the specific language governing permissions and
|
|
3003
|
+
* limitations under the License.
|
|
3004
|
+
*/class pf{constructor(t){this.auth=t,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(t){this.consumers.add(t),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,t)&&(this.sendToConsumer(this.queuedRedirectEvent,t),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(t){this.consumers.delete(t)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let e=!1;return this.consumers.forEach((n=>{this.isEventForConsumer(t,n)&&(e=!0,this.sendToConsumer(t,n),this.saveEventToCache(t))})),this.hasHandledPotentialRedirect||!function(t){switch(t.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return mf(t);default:return!1}}
|
|
3005
|
+
/**
|
|
3006
|
+
* @license
|
|
3007
|
+
* Copyright 2020 Google LLC
|
|
3008
|
+
*
|
|
3009
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3010
|
+
* you may not use this file except in compliance with the License.
|
|
3011
|
+
* You may obtain a copy of the License at
|
|
3012
|
+
*
|
|
3013
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3014
|
+
*
|
|
3015
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3016
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3017
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3018
|
+
* See the License for the specific language governing permissions and
|
|
3019
|
+
* limitations under the License.
|
|
3020
|
+
*/(t)||(this.hasHandledPotentialRedirect=!0,e||(this.queuedRedirectEvent=t,e=!0)),e}sendToConsumer(t,e){var n;if(t.error&&!mf(t)){const r=(null===(n=t.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";e.onError(ll(this.auth,r))}else e.onAuthEvent(t)}isEventForConsumer(t,e){const n=null===e.eventId||!!t.eventId&&t.eventId===e.eventId;return e.filter.includes(t.type)&&n}hasEventBeenHandled(t){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(gf(t))}saveEventToCache(t){this.cachedEventUids.add(gf(t)),this.lastProcessedEventTime=Date.now()}}function gf(t){return[t.type,t.eventId,t.sessionId,t.tenantId].filter((t=>t)).join("-")}function mf({type:t,error:e}){return"unknown"===t&&"auth/no-auth-event"===(null==e?void 0:e.code)}
|
|
3021
|
+
/**
|
|
3022
|
+
* @license
|
|
3023
|
+
* Copyright 2020 Google LLC
|
|
3024
|
+
*
|
|
3025
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3026
|
+
* you may not use this file except in compliance with the License.
|
|
3027
|
+
* You may obtain a copy of the License at
|
|
3028
|
+
*
|
|
3029
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3030
|
+
*
|
|
3031
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3032
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3033
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3034
|
+
* See the License for the specific language governing permissions and
|
|
3035
|
+
* limitations under the License.
|
|
3036
|
+
*/
|
|
3037
|
+
const yf=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,vf=/^https?/;async function wf(t){if(t.config.emulator)return;const{authorizedDomains:e}=await async function(t,e={}){return Cl(t,"GET","/v1/projects",e)}(t);for(const t of e)try{if(If(t))return}catch(t){}hl(t,"unauthorized-domain")}function If(t){const e=vl(),{protocol:n,hostname:r}=new URL(e);if(t.startsWith("chrome-extension://")){const s=new URL(t);return""===s.hostname&&""===r?"chrome-extension:"===n&&t.replace("chrome-extension://","")===e.replace("chrome-extension://",""):"chrome-extension:"===n&&s.hostname===r}if(!vf.test(n))return!1;if(yf.test(t))return r===t;const s=t.replace(/\./g,"\\.");return new RegExp("^(.+\\."+s+"|"+s+")$","i").test(r)}
|
|
3038
|
+
/**
|
|
3039
|
+
* @license
|
|
3040
|
+
* Copyright 2020 Google LLC.
|
|
3041
|
+
*
|
|
3042
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3043
|
+
* you may not use this file except in compliance with the License.
|
|
3044
|
+
* You may obtain a copy of the License at
|
|
3045
|
+
*
|
|
3046
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3047
|
+
*
|
|
3048
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3049
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3050
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3051
|
+
* See the License for the specific language governing permissions and
|
|
3052
|
+
* limitations under the License.
|
|
3053
|
+
*/const bf=new bl(3e4,6e4);function Ef(){const t=Bd().___jsl;if(null==t?void 0:t.H)for(const e of Object.keys(t.H))if(t.H[e].r=t.H[e].r||[],t.H[e].L=t.H[e].L||[],t.H[e].r=[...t.H[e].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function _f(t){return new Promise(((e,n)=>{var r,s,i;function o(){Ef(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Ef(),n(ll(t,"network-request-failed"))},timeout:bf.get()})}if(null===(s=null===(r=Bd().gapi)||void 0===r?void 0:r.iframes)||void 0===s?void 0:s.Iframe)e(gapi.iframes.getContext());else{if(!(null===(i=Bd().gapi)||void 0===i?void 0:i.load)){const e=`__${"iframefcb"}${Math.floor(1e6*Math.random())}`;return Bd()[e]=()=>{gapi.load?o():n(ll(t,"network-request-failed"))},tf(`https://apis.google.com/js/api.js?onload=${e}`).catch((t=>n(t)))}o()}})).catch((t=>{throw Tf=null,t}))}let Tf=null;
|
|
3054
|
+
/**
|
|
3055
|
+
* @license
|
|
3056
|
+
* Copyright 2020 Google LLC.
|
|
3057
|
+
*
|
|
3058
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3059
|
+
* you may not use this file except in compliance with the License.
|
|
3060
|
+
* You may obtain a copy of the License at
|
|
3061
|
+
*
|
|
3062
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3063
|
+
*
|
|
3064
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3065
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3066
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3067
|
+
* See the License for the specific language governing permissions and
|
|
3068
|
+
* limitations under the License.
|
|
3069
|
+
*/
|
|
3070
|
+
const Sf=new bl(5e3,15e3),Af={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Cf=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function kf(t){const e=t.config;fl(e.authDomain,t,"auth-domain-config-required");const n=e.emulator?El(e,"emulator/auth/iframe"):`https://${t.config.authDomain}/__/auth/iframe`,r={apiKey:e.apiKey,appName:t.name,v:ct},s=Cf.get(t.config.apiHost);s&&(r.eid=s);const i=t._getFrameworks();return i.length&&(r.fw=i.join(",")),`${n}?${y(r).slice(1)}`}async function Nf(t){const e=await function(t){return Tf=Tf||_f(t),Tf}(t),n=Bd().gapi;return fl(n,t,"internal-error"),e.open({where:document.body,url:kf(t),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Af,dontclear:!0},(e=>new Promise((async(n,r)=>{await e.restyle({setHideOnLeave:!1});const s=ll(t,"network-request-failed"),i=Bd().setTimeout((()=>{r(s)}),Sf.get());function o(){Bd().clearTimeout(i),n(e)}e.ping(o).then(o,(()=>{r(s)}))}))))}
|
|
3071
|
+
/**
|
|
3072
|
+
* @license
|
|
3073
|
+
* Copyright 2020 Google LLC.
|
|
3074
|
+
*
|
|
3075
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3076
|
+
* you may not use this file except in compliance with the License.
|
|
3077
|
+
* You may obtain a copy of the License at
|
|
3078
|
+
*
|
|
3079
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3080
|
+
*
|
|
3081
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3082
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3083
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3084
|
+
* See the License for the specific language governing permissions and
|
|
3085
|
+
* limitations under the License.
|
|
3086
|
+
*/const Df={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Rf{constructor(t){this.window=t,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(t){}}}function Of(t,e,n,r=500,s=600){const i=Math.max((window.screen.availHeight-s)/2,0).toString(),a=Math.max((window.screen.availWidth-r)/2,0).toString();let c="";const u=Object.assign(Object.assign({},Df),{width:r.toString(),height:s.toString(),top:i,left:a}),h=o().toLowerCase();n&&(c=Jl(h)?"_blank":n),Wl(h)&&(e=e||"http://localhost",u.scrollbars="yes");const l=Object.entries(u).reduce(((t,[e,n])=>`${t}${e}=${n},`),"");if(function(t=o()){var e;return ed(t)&&!!(null===(e=window.navigator)||void 0===e?void 0:e.standalone)}(h)&&"_self"!==c)return function(t,e){const n=document.createElement("a");n.href=t,n.target=e;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}
|
|
3087
|
+
/**
|
|
3088
|
+
* @license
|
|
3089
|
+
* Copyright 2021 Google LLC
|
|
3090
|
+
*
|
|
3091
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3092
|
+
* you may not use this file except in compliance with the License.
|
|
3093
|
+
* You may obtain a copy of the License at
|
|
3094
|
+
*
|
|
3095
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3096
|
+
*
|
|
3097
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3098
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3099
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3100
|
+
* See the License for the specific language governing permissions and
|
|
3101
|
+
* limitations under the License.
|
|
3102
|
+
*/(e||"",c),new Rf(null);const d=window.open(e||"",c,l);fl(d,t,"popup-blocked");try{d.focus()}catch(t){}return new Rf(d)}const Lf="__/auth/handler",Pf="emulator/auth/handler";function Mf(t,e,n,r,s,i){fl(t.config.authDomain,t,"auth-domain-config-required"),fl(t.config.apiKey,t,"invalid-api-key");const o={apiKey:t.config.apiKey,appName:t.name,authType:n,redirectUrl:r,v:ct,eventId:s};if(e instanceof wd){e.setDefaultLanguage(t.languageCode),o.providerId=e.providerId||"",function(t){for(const e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}(e.getCustomParameters())||(o.customParameters=JSON.stringify(e.getCustomParameters()));for(const[t,e]of Object.entries(i||{}))o[t]=e}if(e instanceof Id){const t=e.getScopes().filter((t=>""!==t));t.length>0&&(o.scopes=t.join(","))}t.tenantId&&(o.tid=t.tenantId);const a=o;for(const t of Object.keys(a))void 0===a[t]&&delete a[t];return`${function({config:t}){if(!t.emulator)return`https://${t.authDomain}/${Lf}`;return El(t,Pf)}
|
|
3103
|
+
/**
|
|
3104
|
+
* @license
|
|
3105
|
+
* Copyright 2020 Google LLC
|
|
3106
|
+
*
|
|
3107
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3108
|
+
* you may not use this file except in compliance with the License.
|
|
3109
|
+
* You may obtain a copy of the License at
|
|
3110
|
+
*
|
|
3111
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3112
|
+
*
|
|
3113
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3114
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3115
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3116
|
+
* See the License for the specific language governing permissions and
|
|
3117
|
+
* limitations under the License.
|
|
3118
|
+
*/(t)}?${y(a).slice(1)}`}const xf="webStorageSupport";const Uf=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Fd,this._completeRedirectFn=ff,this._overrideRedirectResult=df}async _openPopup(t,e,n,r){var s;gl(null===(s=this.eventManagers[t._key()])||void 0===s?void 0:s.manager,"_initialize() not called before _openPopup()");return Of(t,Mf(t,e,n,vl(),r),qd())}async _openRedirect(t,e,n,r){var s;return await this._originValidation(t),s=Mf(t,e,n,vl(),r),Bd().location.href=s,new Promise((()=>{}))}_initialize(t){const e=t._key();if(this.eventManagers[e]){const{manager:t,promise:n}=this.eventManagers[e];return t?Promise.resolve(t):(gl(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(t);return this.eventManagers[e]={promise:n},n.catch((()=>{delete this.eventManagers[e]})),n}async initAndGetManager(t){const e=await Nf(t),n=new pf(t);return e.register("authEvent",(e=>{fl(null==e?void 0:e.authEvent,t,"invalid-auth-event");return{status:n.onEvent(e.authEvent)?"ACK":"ERROR"}}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:n},this.iframes[t._key()]=e,n}_isIframeWebStorageSupported(t,e){this.iframes[t._key()].send(xf,{type:xf},(n=>{var r;const s=null===(r=null==n?void 0:n[0])||void 0===r?void 0:r[xf];void 0!==s&&e(!!s),hl(t,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(t){const e=t._key();return this.originValidationPromises[e]||(this.originValidationPromises[e]=wf(t)),this.originValidationPromises[e]}get _shouldInitProactively(){return rd()||Ql()||ed()}};var Ff="@firebase/auth",Vf="0.21.0";
|
|
3119
|
+
/**
|
|
3120
|
+
* @license
|
|
3121
|
+
* Copyright 2020 Google LLC
|
|
3122
|
+
*
|
|
3123
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3124
|
+
* you may not use this file except in compliance with the License.
|
|
3125
|
+
* You may obtain a copy of the License at
|
|
3126
|
+
*
|
|
3127
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3128
|
+
*
|
|
3129
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3130
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3131
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3132
|
+
* See the License for the specific language governing permissions and
|
|
3133
|
+
* limitations under the License.
|
|
3134
|
+
*/
|
|
3135
|
+
class qf{constructor(t){this.auth=t,this.internalListeners=new Map}getUid(){var t;return this.assertAuthConfigured(),(null===(t=this.auth.currentUser)||void 0===t?void 0:t.uid)||null}async getToken(t){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(t)}}addAuthTokenListener(t){if(this.assertAuthConfigured(),this.internalListeners.has(t))return;const e=this.auth.onIdTokenChanged((e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}));this.internalListeners.set(t,e),this.updateProactiveRefresh()}removeAuthTokenListener(t){this.assertAuthConfigured();const e=this.internalListeners.get(t);e&&(this.internalListeners.delete(t),e(),this.updateProactiveRefresh())}assertAuthConfigured(){fl(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}
|
|
3136
|
+
/**
|
|
3137
|
+
* @license
|
|
3138
|
+
* Copyright 2020 Google LLC
|
|
3139
|
+
*
|
|
3140
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3141
|
+
* you may not use this file except in compliance with the License.
|
|
3142
|
+
* You may obtain a copy of the License at
|
|
3143
|
+
*
|
|
3144
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3145
|
+
*
|
|
3146
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3147
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3148
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3149
|
+
* See the License for the specific language governing permissions and
|
|
3150
|
+
* limitations under the License.
|
|
3151
|
+
*/
|
|
3152
|
+
/**
|
|
3153
|
+
* @license
|
|
3154
|
+
* Copyright 2021 Google LLC
|
|
3155
|
+
*
|
|
3156
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3157
|
+
* you may not use this file except in compliance with the License.
|
|
3158
|
+
* You may obtain a copy of the License at
|
|
3159
|
+
*
|
|
3160
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3161
|
+
*
|
|
3162
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3163
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3164
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3165
|
+
* See the License for the specific language governing permissions and
|
|
3166
|
+
* limitations under the License.
|
|
3167
|
+
*/
|
|
3168
|
+
const jf=h("authIdTokenMaxAge")||300;let Bf=null;function zf(t=ht()){const e=it(t,"auth");if(e.isInitialized())return e.getImmediate();const n=function(t,e){const n=it(t,"auth");if(n.isInitialized()){const t=n.getImmediate();if(g(n.getOptions(),null!=e?e:{}))return t;hl(t,"already-initialized")}return n.initialize({options:e})}(t,{popupRedirectResolver:Uf,persistence:[Zd,xd,Fd]}),r=h("authTokenSyncURL");if(r){const t=(s=r,async t=>{const e=t&&await t.getIdTokenResult(),n=e&&((new Date).getTime()-Date.parse(e.issuedAtTime))/1e3;if(n&&n>jf)return;const r=null==e?void 0:e.token;Bf!==r&&(Bf=r,await fetch(s,{method:r?"POST":"DELETE",headers:r?{Authorization:`Bearer ${r}`}:{}}))});!function(t,e,n){E(t).beforeAuthStateChanged(e,n)}(n,t,(()=>t(n.currentUser))),function(t,e,n,r){E(t).onIdTokenChanged(e,n,r)}(n,(e=>t(e)))}var s;const i=u("auth");return i&&ud(n,`http://${i}`),n}var $f;$f="Browser",st(new _("auth",((t,{options:e})=>{const n=t.getProvider("app").getImmediate(),r=t.getProvider("heartbeat"),{apiKey:s,authDomain:i}=n.options;return((t,n)=>{fl(s&&!s.includes(":"),"invalid-api-key",{appName:t.name}),fl(!(null==i?void 0:i.includes(":")),"argument-error",{appName:t.name});const r={apiKey:s,authDomain:i,clientPlatform:$f,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:sd($f)},o=new od(t,n,r);return function(t,e){const n=(null==e?void 0:e.persistence)||[],r=(Array.isArray(n)?n:[n]).map(yl);(null==e?void 0:e.errorMap)&&t._updateErrorMap(e.errorMap),t._initializeWithPersistence(r,null==e?void 0:e.popupRedirectResolver)}(o,e),o})(n,r)}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((t,e,n)=>{t.getProvider("auth-internal").initialize()}))),st(new _("auth-internal",(t=>(t=>new qf(t))(ad(t.getProvider("auth").getImmediate()))),"PRIVATE").setInstantiationMode("EXPLICIT")),lt(Ff,Vf,function(t){switch(t){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";default:return}}($f)),lt(Ff,Vf,"esm2017");class Kf extends Error{constructor(){super("no frames found"),this.name="NoFramesFoundError"}}class Hf extends Error{constructor(){super("request timeout"),this.name="RequestTimeoutError"}}class Gf extends Error{constructor(){super("user not logged in"),this.name="UserNotLoggedInError"}}class Wf extends Error{constructor(){super("no colorway size assets found"),this.name="NoColorwaySizeAssetsFoundError"}}class Qf extends Error{constructor(){super("no styles found"),this.name="NoStylesFoundError"}}class Jf extends Error{constructor(t,e){super("recommended available sizes error"),this.name="RecommendedAvailableSizesError",this.recommended_size=t,this.available_sizes=e}}var Xf=Object.freeze({__proto__:null,NoFramesFoundError:Kf,RequestTimeoutError:Hf,UserNotLoggedInError:Gf,NoColorwaySizeAssetsFoundError:Wf,NoStylesFoundError:Qf,RecommendedAvailableSizesError:Jf});class Yf{constructor(t,e){this.firestore=t,this.auth=zf(e),this.auth.setPersistence(xd)}get id(){var t;return null===(t=this.user)||void 0===t?void 0:t.uid}onInit(){return new Promise((t=>{this.auth.onAuthStateChanged((e=>{if(this.setUser(e),e)return t();throw new Gf}))}))}setUser(t){this.user=t}async getToken(){var t;if(!(null===(t=this.user)||void 0===t?void 0:t.uid))throw new Gf;return await this.user.getIdToken()}async getUserProfile(){var t;if(!(null===(t=this.user)||void 0===t?void 0:t.uid))throw new Gf;const e=await Zh(function(t,e,...n){if(t=E(t),1===arguments.length&&(e=Ys.R()),Zu("doc","path",e),t instanceof oh){const r=si.fromString(e,...n);return th(r),new ch(t,null,new ai(r))}{if(!(t instanceof ch||t instanceof hh))throw new js(qs.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const r=t._path.child(si.fromString(e,...n));return th(r),new ch(t.firestore,t instanceof hh?t.converter:null,new ai(r))}}(this.firestore,"users",this.id));return e.data()}async login(t,e){this.auth.currentUser&&await this.auth.signOut();const n=await Od(this.auth,t,e);this.setUser(n.user)}async logout(){await this.auth.signOut(),this.setUser(null)}async sendPasswordResetEmail(t){await Dd(this.auth,t)}async confirmPasswordReset(t,e){await Rd(this.auth,t,e)}}class Zf{constructor(){this.promisefyOnSnapshot=t=>{let e;const n=new Promise((n=>e=function(t,...e){var n,r,s;t=E(t);let i={includeMetadataChanges:!1},o=0;"object"!=typeof e[o]||yh(e[o])||(i=e[o],o++);const a={includeMetadataChanges:i.includeMetadataChanges};if(yh(e[o])){const t=e[o];e[o]=null===(n=t.next)||void 0===n?void 0:n.bind(t),e[o+1]=null===(r=t.error)||void 0===r?void 0:r.bind(t),e[o+2]=null===(s=t.complete)||void 0===s?void 0:s.bind(t)}let c,u,h;if(t instanceof ch)u=rh(t.firestore,vh),h=ko(t._key.path),c={next:n=>{e[o]&&e[o](nl(u,t,n))},error:e[o+1],complete:e[o+2]};else{const n=rh(t,uh);u=rh(n.firestore,vh),h=n._query;const r=new tl(u);c={next:t=>{e[o]&&e[o](new Xh(u,r,n,t))},error:e[o+1],complete:e[o+2]},Uh(t._query)}return function(t,e,n,r){const s=new dh(r),i=new Ru(e,s,n);return t.asyncQueue.enqueueAndForget((async()=>Au(await gh(t),i))),()=>{s.bc(),t.asyncQueue.enqueueAndForget((async()=>Cu(await gh(t),i)))}}(Ih(u),h,a,c)}(t,(t=>n(t)))));return{promise:n,unsubscribe:()=>e()}},this.firestore=wh(Zf.App),this.user=new Yf(this.firestore,Zf.App)}onInit(){return this.user.onInit()}query(t,e){const n=qh(lh(this.firestore,t),e);return this.promisefyOnSnapshot(n)}getDocs(t,e){return el(qh(lh(this.firestore,t),...e))}}Zf.App=ut({apiKey:"AIzaSyDfjBWzpmzb-mhGN8VSURxzLg6nkzmKUD8",authDomain:"fittingroom-dev-5d248.firebaseapp.com",projectId:"fittingroom-dev-5d248",storageBucket:"fittingroom-dev-5d248.appspot.com",messagingSenderId:"2298664147",appId:"1:2298664147:web:340bda75cd5d25f3997026"});const tp=t=>{if(t.code===al)throw new Error("account has been disabled");throw new Error(t.message)};class ep{static async Fetch({user:t,endpointPath:e,method:n,body:r}){const s="https://tfr.dev.thefittingroom.xyz/v1"+e,i={method:n,headers:{"Content-Type":"application/json",Authorization:`Bearer ${await t.getToken()}`},credentials:"include"};r&&(i.body=JSON.stringify(r));const o=await fetch(s,i);if(o.ok)return o;if(500===o.status)throw new Error(o.statusText);const a=await o.json();return Promise.reject(a)}static Get(t,e){return this.Fetch({user:t,endpointPath:e,method:"GET",body:null})}static Post(t,e,n=null){return this.Fetch({user:t,endpointPath:e,method:"POST",body:n})}static Put(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"PUT",body:n})}static Patch(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"PATCH",body:n})}static Delete(t,e,n){return this.Fetch({user:t,endpointPath:e,method:"DELETE",body:n})}}class np{constructor(t,e){this.brandId=t,this.firebase=e}get user(){return this.firebase.user}get isLoggedIn(){return!this.firebase||Boolean(this.user.id)}async tryOn(t){if(!this.isLoggedIn)throw new Gf;try{return await this.getColorwaySizeAssetFrames(t)}catch(e){if(e instanceof Kf)throw new Kf;return this.requestThenGetColorwaySizeAssetFrames(t)}}async awaitAvatarCreated(){if(!this.isLoggedIn)throw new Gf;const{promise:t,unsubscribe:e}=this.firebase.query("users",Bh(new _h("__name__"),"==",this.user.id)),n=setTimeout((()=>{throw e(),new Hf}),np.AVATAR_TIMEOUT),r=await t;clearTimeout(n);return"CREATED"===r.docs[0].data().avatar_status}async getRecommendedSize(t){if(!this.isLoggedIn)throw new Gf;const e=await ep.Get(this.user,`/styles/${t}/recommendation`);return await e.json()}async getStyles(t,e){const n=[Bh("brand_id","==",this.brandId)];(null==t?void 0:t.length)>0&&n.push(Bh("id","in",t)),(null==e?void 0:e.length)>0&&n.push(Bh("brand_style_id","in",e));try{const t=await this.firebase.getDocs("styles",n),e=new Map;return t.forEach((t=>{const n=t.data();e.set(n.id,n)})),e}catch(t){return tp(t)}}awaitColorwaySizeAssetFrames(t){if(!this.isLoggedIn)throw new Gf;return this.getColorwaySizeAssetFrames(t)}async requestThenGetColorwaySizeAssetFrames(t){var e,n;const[r,s]=await(i=this.getColorwaySizeAssetFromSku(t),i.then((t=>[null,t])).catch((t=>[t])));var i;if(r)throw r;try{return await this.requestColorwaySizeAssetFrames(s.id),this.awaitColorwaySizeAssetFrames(t)}catch(r){if(!r.recommended_size_id)throw new Error(r);const t=r,i=(await this.getStyles([s.style_id],null)).get(s.style_id);if(!(null==i?void 0:i.sizes))throw new Qf;const o=(null===(e=i.sizes[t.recommended_size_id])||void 0===e?void 0:e.label)||(null===(n=i.sizes[t.recommended_size_id])||void 0===n?void 0:n.size),a=t.available_size_ids.filter((t=>{var e;return(null===(e=i.sizes[t])||void 0===e?void 0:e.size)!==o})).map((t=>{var e,n;return(null===(e=i.sizes[t])||void 0===e?void 0:e.label)||(null===(n=i.sizes[t])||void 0===n?void 0:n.size)}));throw new Jf(o,a)}}async getColorwaySizeAssetFromSku(t){const e=await this.getColorwaySizeAssets(null,[t]);if(!(null==e?void 0:e.size))throw new Wf;return Array.from(e.values())[0]}async getColorwaySizeAssets(t,e){const n=[Bh("brand_id","==",this.brandId)];t&&n.push(Bh("style_id","==",t)),(null==e?void 0:e.length)>0&&n.push(Bh("sku","in",e));try{const t=await this.firebase.getDocs("colorway_size_assets",n),e=new Map;return t.forEach((t=>{const n=t.data();e.set(n.id,n)})),e}catch(t){return tp(t)}}async requestColorwaySizeAssetFrames(t){if(!this.isLoggedIn)throw new Gf;await ep.Post(this.user,`/colorway-size-assets/${t}/frames`)}async getColorwaySizeAssetFrames(t){var e,n,r;const s=await this.user.getUserProfile(),i=(null===(r=null===(n=null===(e=null==s?void 0:s.vto)||void 0===e?void 0:e[this.brandId])||void 0===n?void 0:n[t])||void 0===r?void 0:r.frames)||[];if(!i.length)throw new Kf;if(!await(t=>{const e=new Image;return e.src=t,new Promise((t=>{e.onerror=()=>t(!1),e.onload=()=>t(!0)}))})(i[0]))throw new Kf;return i}}np.AVATAR_TIMEOUT=process.env.AVATAR_TIMEOUT?Number(process.env.AVATAR_TIMEOUT):1e4;const rp=t=>new np(t,new Zf);var sp;!function(t){t.NOT_CREATED="NOT_CREATED",t.CREATED="CREATED",t.PENDING="PENDING"}(sp||(sp={}));var ip=Object.freeze({__proto__:null,get AvatarState(){return sp}});export{Xf as Errors,rp as initShop,t as requests,e as responses,ip as types};
|
|
3169
|
+
//# sourceMappingURL=index.min.js.map
|