@dereekb/dbx-firebase 11.1.7 → 12.0.0
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/esm2022/lib/analytics/analytics.user.events.providers.mjs +25 -0
- package/esm2022/lib/analytics/analytics.user.events.service.mjs +37 -0
- package/esm2022/lib/analytics/analytics.user.source.mjs +4 -4
- package/esm2022/lib/analytics/index.mjs +3 -2
- package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +6 -6
- package/esm2022/lib/auth/firebase.auth.module.mjs +11 -23
- package/esm2022/lib/auth/firebase.auth.providers.mjs +27 -0
- package/esm2022/lib/auth/index.mjs +2 -1
- package/esm2022/lib/auth/login/firebase.login.module.mjs +56 -201
- package/esm2022/lib/auth/login/firebase.login.providers.default.mjs +109 -0
- package/esm2022/lib/auth/login/firebase.login.providers.mjs +59 -0
- package/esm2022/lib/auth/login/index.mjs +2 -1
- package/esm2022/lib/auth/login/login.anonymous.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.apple.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.button.component.mjs +68 -49
- package/esm2022/lib/auth/login/login.component.mjs +21 -26
- package/esm2022/lib/auth/login/login.context.back.component.mjs +8 -5
- package/esm2022/lib/auth/login/login.context.directive.mjs +5 -4
- package/esm2022/lib/auth/login/login.email.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.email.content.component.mjs +29 -28
- package/esm2022/lib/auth/login/login.email.form.component.mjs +17 -26
- package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +11 -12
- package/esm2022/lib/auth/login/login.facebook.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.github.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.google.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.list.component.mjs +45 -56
- package/esm2022/lib/auth/login/login.microsoft.component.mjs +9 -6
- package/esm2022/lib/auth/login/login.service.mjs +10 -13
- package/esm2022/lib/auth/login/login.terms.component.mjs +10 -8
- package/esm2022/lib/auth/login/login.terms.mjs +6 -3
- package/esm2022/lib/auth/login/login.terms.simple.component.mjs +11 -9
- package/esm2022/lib/auth/login/login.twitter.component.mjs +9 -6
- package/esm2022/lib/auth/login/register.component.mjs +9 -7
- package/esm2022/lib/auth/login/register.email.component.mjs +11 -6
- package/esm2022/lib/auth/service/firebase.auth.rxjs.mjs +1 -1
- package/esm2022/lib/auth/service/firebase.auth.service.delegate.mjs +1 -1
- package/esm2022/lib/auth/service/firebase.auth.service.mjs +4 -4
- package/esm2022/lib/development/development.directive.mjs +78 -0
- package/esm2022/lib/development/development.module.mjs +32 -70
- package/esm2022/lib/development/development.popup.component.mjs +13 -15
- package/esm2022/lib/development/development.popup.content.component.mjs +28 -19
- package/esm2022/lib/development/development.popup.content.form.component.mjs +11 -12
- package/esm2022/lib/development/development.providers.mjs +47 -0
- package/esm2022/lib/development/development.scheduler.list.component.mjs +32 -23
- package/esm2022/lib/development/development.scheduler.service.mjs +5 -8
- package/esm2022/lib/development/development.scheduler.widget.component.mjs +13 -10
- package/esm2022/lib/development/development.service.mjs +9 -20
- package/esm2022/lib/development/development.widget.service.mjs +7 -10
- package/esm2022/lib/development/index.mjs +3 -2
- package/esm2022/lib/firebase/emulators.mjs +1 -1
- package/esm2022/lib/firebase/firebase.emulator.module.mjs +9 -25
- package/esm2022/lib/firebase/firebase.emulator.providers.mjs +33 -0
- package/esm2022/lib/firebase/firebase.emulator.service.mjs +5 -8
- package/esm2022/lib/firebase/firebase.module.mjs +11 -297
- package/esm2022/lib/firebase/firebase.options.environment.mjs +2 -0
- package/esm2022/lib/firebase/firebase.options.mjs +3 -0
- package/esm2022/lib/firebase/firebase.providers.mjs +149 -0
- package/esm2022/lib/firebase/index.mjs +5 -2
- package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +4 -4
- package/esm2022/lib/firestore/firebase.firestore.module.mjs +9 -50
- package/esm2022/lib/firestore/firebase.firestore.providers.mjs +67 -0
- package/esm2022/lib/firestore/index.mjs +2 -1
- package/esm2022/lib/function/firebase.function.module.mjs +8 -48
- package/esm2022/lib/function/firebase.function.providers.mjs +54 -0
- package/esm2022/lib/function/index.mjs +2 -1
- package/esm2022/lib/index.mjs +2 -1
- package/esm2022/lib/model/loader/collection.change.trigger.mjs +1 -1
- package/esm2022/lib/model/loader/collection.loader.instance.mjs +1 -1
- package/esm2022/lib/model/model.module.mjs +6 -6
- package/esm2022/lib/model/modules/model/history/index.mjs +7 -0
- package/esm2022/lib/model/modules/model/history/model.history.component.mjs +36 -0
- package/esm2022/lib/model/modules/model/history/model.history.module.mjs +26 -0
- package/esm2022/lib/model/modules/model/history/model.history.popover.button.component.mjs +40 -0
- package/esm2022/lib/model/modules/model/history/model.history.popover.component.mjs +36 -0
- package/esm2022/lib/model/modules/model/history/model.sourceselect.history.mjs +18 -0
- package/esm2022/lib/model/modules/model/history/model.tracker.service.mjs +58 -0
- package/esm2022/lib/model/modules/model/index.mjs +2 -7
- package/esm2022/lib/model/modules/model/model.types.list.component.mjs +33 -28
- package/esm2022/lib/model/modules/model/model.types.module.mjs +17 -12
- package/esm2022/lib/model/modules/model/model.types.providers.mjs +20 -0
- package/esm2022/lib/model/modules/model/model.types.service.mjs +9 -14
- package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +11 -13
- package/esm2022/lib/model/modules/store/model.store.module.mjs +6 -8
- package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +4 -4
- package/esm2022/lib/model/modules/store/store.collection.directive.mjs +5 -5
- package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +6 -6
- package/esm2022/lib/model/modules/store/store.collection.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.document.auth.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.document.crud.mjs +1 -1
- package/esm2022/lib/model/modules/store/store.document.directive.mjs +5 -5
- package/esm2022/lib/model/modules/store/store.document.mjs +6 -5
- package/esm2022/lib/model/modules/store/store.document.router.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.document.router.key.directive.mjs +4 -4
- package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.document.twoway.key.source.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +3 -3
- package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +4 -4
- package/esm2022/lib/model/modules/store/store.subcollection.mjs +6 -6
- package/esm2022/lib/model/modules/store/store.subcollection.rxjs.mjs +1 -1
- package/esm2022/lib/model/service/index.mjs +2 -1
- package/esm2022/lib/model/service/model.context.providers.mjs +32 -0
- package/esm2022/lib/model/service/model.context.service.mjs +1 -1
- package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +4 -4
- package/esm2022/lib/model/system/systemstate.collection.store.mjs +4 -4
- package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +5 -5
- package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +4 -4
- package/esm2022/lib/model/system/systemstate.document.store.mjs +4 -4
- package/esm2022/lib/module.mjs +4 -4
- package/esm2022/lib/modules/notification/component/index.mjs +2 -1
- package/esm2022/lib/modules/notification/component/notificationitem.content.component.mjs +11 -17
- package/esm2022/lib/modules/notification/component/notificationitem.list.component.mjs +30 -21
- package/esm2022/lib/modules/notification/component/notificationitem.view.component.mjs +28 -35
- package/esm2022/lib/modules/notification/component/notificationitem.view.default.component.mjs +8 -6
- package/esm2022/lib/modules/notification/component/notificationitem.view.directive.mjs +3 -3
- package/esm2022/lib/modules/notification/container/notification.item.store.popover.button.component.mjs +17 -21
- package/esm2022/lib/modules/notification/container/notification.item.store.popover.component.mjs +14 -26
- package/esm2022/lib/modules/notification/index.mjs +3 -1
- package/esm2022/lib/modules/notification/notification.module.mjs +33 -32
- package/esm2022/lib/modules/notification/notification.providers.mjs +47 -0
- package/esm2022/lib/modules/notification/service/notification.template.service.mjs +3 -3
- package/esm2022/lib/modules/notification/service/notificationitem.widget.service.mjs +5 -8
- package/esm2022/lib/modules/notification/store/index.mjs +6 -2
- package/esm2022/lib/modules/notification/store/notification.item.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationbox.collection.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationbox.collection.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationbox.document.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationbox.document.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationsummary.document.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationsummary.document.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationuser.collection.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationuser.collection.store.mjs +4 -4
- package/esm2022/lib/modules/notification/store/notificationuser.document.store.directive.mjs +7 -6
- package/esm2022/lib/modules/notification/store/notificationuser.document.store.mjs +4 -4
- package/esm2022/lib/pipe/key.pipe.mjs +7 -7
- package/esm2022/lib/pipe/pipe.module.mjs +4 -4
- package/esm2022/lib/providers.mjs +40 -0
- package/esm2022/lib/router/id.param.redirect.mjs +1 -1
- package/esm2022/lib/storage/firebase.storage.module.mjs +11 -34
- package/esm2022/lib/storage/firebase.storage.providers.mjs +43 -0
- package/esm2022/lib/storage/firebase.storage.service.mjs +3 -3
- package/esm2022/lib/storage/index.mjs +2 -1
- package/fesm2022/dereekb-dbx-firebase.mjs +1893 -1762
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/analytics/analytics.user.events.providers.d.ts +6 -0
- package/lib/analytics/{analytics.user.events.d.ts → analytics.user.events.service.d.ts} +5 -5
- package/lib/analytics/index.d.ts +2 -1
- package/lib/auth/firebase.auth.module.d.ts +6 -5
- package/lib/auth/firebase.auth.providers.d.ts +21 -0
- package/lib/auth/index.d.ts +1 -0
- package/lib/auth/login/_login.scss +3 -3
- package/lib/auth/login/firebase.login.module.d.ts +8 -21
- package/lib/auth/login/firebase.login.providers.d.ts +32 -0
- package/lib/auth/login/firebase.login.providers.default.d.ts +7 -0
- package/lib/auth/login/index.d.ts +1 -0
- package/lib/auth/login/login.anonymous.component.d.ts +2 -2
- package/lib/auth/login/login.apple.component.d.ts +2 -2
- package/lib/auth/login/login.button.component.d.ts +19 -14
- package/lib/auth/login/login.component.d.ts +6 -6
- package/lib/auth/login/login.context.back.component.d.ts +1 -1
- package/lib/auth/login/login.context.directive.d.ts +1 -1
- package/lib/auth/login/login.email.component.d.ts +1 -1
- package/lib/auth/login/login.email.content.component.d.ts +10 -9
- package/lib/auth/login/login.email.form.component.d.ts +5 -8
- package/lib/auth/login/login.email.recovery.form.component.d.ts +1 -1
- package/lib/auth/login/login.facebook.component.d.ts +2 -2
- package/lib/auth/login/login.github.component.d.ts +2 -2
- package/lib/auth/login/login.google.component.d.ts +2 -2
- package/lib/auth/login/login.list.component.d.ts +11 -17
- package/lib/auth/login/login.microsoft.component.d.ts +2 -2
- package/lib/auth/login/login.service.d.ts +3 -3
- package/lib/auth/login/login.terms.component.d.ts +1 -1
- package/lib/auth/login/login.terms.d.ts +17 -3
- package/lib/auth/login/login.terms.simple.component.d.ts +2 -3
- package/lib/auth/login/login.twitter.component.d.ts +2 -2
- package/lib/auth/login/register.component.d.ts +1 -1
- package/lib/auth/login/register.email.component.d.ts +1 -1
- package/lib/development/{development.popup.directive.d.ts → development.directive.d.ts} +2 -2
- package/lib/development/development.module.d.ts +2 -19
- package/lib/development/development.popup.component.d.ts +2 -2
- package/lib/development/development.popup.content.component.d.ts +10 -6
- package/lib/development/development.popup.content.form.component.d.ts +1 -1
- package/lib/development/development.providers.d.ts +32 -0
- package/lib/development/development.scheduler.list.component.d.ts +3 -3
- package/lib/development/development.scheduler.service.d.ts +4 -4
- package/lib/development/development.scheduler.widget.component.d.ts +1 -1
- package/lib/development/development.service.d.ts +2 -3
- package/lib/development/index.d.ts +2 -1
- package/lib/firebase/emulators.d.ts +21 -19
- package/lib/firebase/firebase.emulator.module.d.ts +2 -0
- package/lib/firebase/firebase.emulator.providers.d.ts +13 -0
- package/lib/firebase/firebase.module.d.ts +5 -51
- package/lib/firebase/{options.d.ts → firebase.options.d.ts} +11 -9
- package/lib/firebase/firebase.options.environment.d.ts +10 -0
- package/lib/firebase/firebase.providers.d.ts +51 -0
- package/lib/firebase/index.d.ts +4 -1
- package/lib/firestore/firebase.firestore.module.d.ts +4 -20
- package/lib/firestore/firebase.firestore.providers.d.ts +49 -0
- package/lib/firestore/index.d.ts +1 -0
- package/lib/function/firebase.function.module.d.ts +4 -20
- package/lib/function/firebase.function.providers.d.ts +43 -0
- package/lib/function/index.d.ts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/model/loader/document.loader.instance.d.ts +1 -1
- package/lib/model/model.module.d.ts +1 -1
- package/lib/model/modules/model/history/index.d.ts +6 -0
- package/lib/model/modules/model/history/model.history.component.d.ts +16 -0
- package/lib/model/modules/model/history/model.history.module.d.ts +16 -0
- package/lib/model/modules/model/{model.history.popover.button.component.d.ts → history/model.history.popover.button.component.d.ts} +7 -6
- package/lib/model/modules/model/{model.history.popover.component.d.ts → history/model.history.popover.component.d.ts} +18 -17
- package/lib/model/modules/model/{model.sourceselect.history.d.ts → history/model.sourceselect.history.d.ts} +5 -5
- package/lib/model/modules/model/{model.tracker.service.d.ts → history/model.tracker.service.d.ts} +6 -6
- package/lib/model/modules/model/index.d.ts +1 -6
- package/lib/model/modules/model/model.types.list.component.d.ts +12 -12
- package/lib/model/modules/model/model.types.module.d.ts +9 -3
- package/lib/model/modules/model/model.types.providers.d.ts +22 -0
- package/lib/model/modules/model/model.types.service.d.ts +6 -3
- package/lib/model/modules/model/model.types.view.directive.d.ts +5 -5
- package/lib/model/modules/store/model.store.module.d.ts +7 -9
- package/lib/model/modules/store/store.document.router.key.directive.d.ts +2 -1
- package/lib/model/service/index.d.ts +1 -0
- package/lib/model/service/model.context.providers.d.ts +18 -0
- package/lib/modules/notification/component/index.d.ts +1 -0
- package/lib/modules/notification/component/notificationitem.content.component.d.ts +4 -4
- package/lib/modules/notification/component/notificationitem.list.component.d.ts +3 -3
- package/lib/modules/notification/component/notificationitem.view.component.d.ts +4 -9
- package/lib/modules/notification/component/notificationitem.view.default.component.d.ts +1 -1
- package/lib/modules/notification/container/notification.item.store.popover.button.component.d.ts +4 -4
- package/lib/modules/notification/container/notification.item.store.popover.component.d.ts +7 -7
- package/lib/modules/notification/index.d.ts +2 -0
- package/lib/modules/notification/notification.module.d.ts +18 -10
- package/lib/modules/notification/notification.providers.d.ts +24 -0
- package/lib/modules/notification/store/index.d.ts +5 -1
- package/lib/modules/notification/store/notificationbox.collection.store.directive.d.ts +1 -1
- package/lib/modules/notification/store/notificationbox.document.store.directive.d.ts +1 -1
- package/lib/modules/notification/store/notificationsummary.collection.store.directive.d.ts +1 -1
- package/lib/modules/notification/store/notificationsummary.document.store.directive.d.ts +1 -1
- package/lib/modules/notification/store/notificationuser.collection.store.directive.d.ts +1 -1
- package/lib/modules/notification/store/notificationuser.document.store.directive.d.ts +1 -1
- package/lib/providers.d.ts +55 -0
- package/lib/storage/firebase.storage.module.d.ts +6 -9
- package/lib/storage/firebase.storage.providers.d.ts +31 -0
- package/lib/storage/index.d.ts +1 -0
- package/lib/style/_theming.scss +1 -1
- package/package.json +7 -8
- package/esm2022/lib/analytics/analytics.user.events.mjs +0 -40
- package/esm2022/lib/development/development.popup.directive.mjs +0 -77
- package/esm2022/lib/firebase/options.mjs +0 -3
- package/esm2022/lib/model/modules/model/model.history.component.mjs +0 -46
- package/esm2022/lib/model/modules/model/model.history.module.mjs +0 -23
- package/esm2022/lib/model/modules/model/model.history.popover.button.component.mjs +0 -44
- package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +0 -47
- package/esm2022/lib/model/modules/model/model.sourceselect.history.mjs +0 -18
- package/esm2022/lib/model/modules/model/model.tracker.service.mjs +0 -58
- package/lib/model/modules/model/model.history.component.d.ts +0 -19
- package/lib/model/modules/model/model.history.module.d.ts +0 -12
|
@@ -1,312 +1,26 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
4
|
-
import { FirebaseApp, provideFirebaseApp } from '@angular/fire/app';
|
|
5
|
-
import { provideStorage, getStorage, connectStorageEmulator } from '@angular/fire/storage';
|
|
6
|
-
import { provideFunctions, getFunctions, connectFunctionsEmulator } from '@angular/fire/functions';
|
|
7
|
-
import { provideFirestore, connectFirestoreEmulator, initializeFirestore, persistentLocalCache, persistentMultipleTabManager, persistentSingleTabManager } from '@angular/fire/firestore';
|
|
8
|
-
import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
9
|
-
import { provideAppCheck } from '@angular/fire/app-check';
|
|
10
|
-
import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
|
|
11
|
-
import { DBX_FIREBASE_OPTIONS_TOKEN } from './options';
|
|
12
|
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
13
|
-
import { enableAppCheckDebugTokenGeneration } from '../auth/appcheck';
|
|
14
|
-
import { DbxFirebaseAppCheckHttpInterceptor } from '../auth/appcheck/appcheck.interceptor';
|
|
2
|
+
import { provideDbxFirebaseApp } from './firebase.providers';
|
|
15
3
|
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/fire/firestore";
|
|
17
|
-
import * as i2 from "@angular/fire/app-check";
|
|
18
|
-
import * as i3 from "@angular/fire/auth";
|
|
19
|
-
import * as i4 from "@angular/fire/storage";
|
|
20
|
-
import * as i5 from "@angular/fire/functions";
|
|
21
|
-
import * as i6 from "@angular/fire/app";
|
|
22
|
-
/**
|
|
23
|
-
* Default firebase firestore provider module.
|
|
24
|
-
*/
|
|
25
|
-
export class DbxFirebaseDefaultFirestoreProviderModule {
|
|
26
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
27
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [i1.FirestoreModule] });
|
|
28
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [provideFirestore((injector) => {
|
|
29
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
30
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
31
|
-
const firestoreSettings = {};
|
|
32
|
-
const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
|
|
33
|
-
const { persistentCacheSettings } = firebaseOptions;
|
|
34
|
-
if (enableIndexedDbPersistence !== false) {
|
|
35
|
-
let tabManager;
|
|
36
|
-
if (enableMultiTabIndexedDbPersistence !== false) {
|
|
37
|
-
tabManager = persistentMultipleTabManager();
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
tabManager = persistentSingleTabManager(undefined);
|
|
41
|
-
}
|
|
42
|
-
firestoreSettings.localCache = persistentLocalCache({
|
|
43
|
-
tabManager,
|
|
44
|
-
...persistentCacheSettings
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
const firestore = initializeFirestore(firebaseApp, firestoreSettings);
|
|
48
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
49
|
-
if (emulators?.useEmulators && emulators?.firestore) {
|
|
50
|
-
connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
|
|
51
|
-
}
|
|
52
|
-
return firestore;
|
|
53
|
-
})] });
|
|
54
|
-
}
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, decorators: [{
|
|
56
|
-
type: NgModule,
|
|
57
|
-
args: [{
|
|
58
|
-
imports: [
|
|
59
|
-
provideFirestore((injector) => {
|
|
60
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
61
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
62
|
-
const firestoreSettings = {};
|
|
63
|
-
const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
|
|
64
|
-
const { persistentCacheSettings } = firebaseOptions;
|
|
65
|
-
if (enableIndexedDbPersistence !== false) {
|
|
66
|
-
let tabManager;
|
|
67
|
-
if (enableMultiTabIndexedDbPersistence !== false) {
|
|
68
|
-
tabManager = persistentMultipleTabManager();
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
tabManager = persistentSingleTabManager(undefined);
|
|
72
|
-
}
|
|
73
|
-
firestoreSettings.localCache = persistentLocalCache({
|
|
74
|
-
tabManager,
|
|
75
|
-
...persistentCacheSettings
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
const firestore = initializeFirestore(firebaseApp, firestoreSettings);
|
|
79
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
80
|
-
if (emulators?.useEmulators && emulators?.firestore) {
|
|
81
|
-
connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
|
|
82
|
-
}
|
|
83
|
-
return firestore;
|
|
84
|
-
})
|
|
85
|
-
]
|
|
86
|
-
}]
|
|
87
|
-
}] });
|
|
88
|
-
/**
|
|
89
|
-
* Default firebase app check provider module.
|
|
90
|
-
*
|
|
91
|
-
* Also configures the DbxFirebaseAppCheckHttpInterceptor with HTTP_INTERCEPTORS in order for appCheck to be appended to requests to the api.
|
|
92
|
-
*/
|
|
93
|
-
export class DbxFirebaseDefaultAppCheckProviderModule {
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
95
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, imports: [i2.AppCheckModule] });
|
|
96
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, providers: [
|
|
97
|
-
{
|
|
98
|
-
provide: HTTP_INTERCEPTORS,
|
|
99
|
-
useClass: DbxFirebaseAppCheckHttpInterceptor,
|
|
100
|
-
multi: true
|
|
101
|
-
}
|
|
102
|
-
], imports: [provideAppCheck((injector) => {
|
|
103
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
104
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
105
|
-
const appCheckOptions = firebaseOptions.appCheck;
|
|
106
|
-
const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
|
|
107
|
-
let appCheck;
|
|
108
|
-
if (appCheckOptions && !appCheckKnowinglyDisabled) {
|
|
109
|
-
// enable the debug tokens if not using emulators and allowDebugTokens is set true
|
|
110
|
-
if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
|
|
111
|
-
enableAppCheckDebugTokenGeneration(true);
|
|
112
|
-
}
|
|
113
|
-
// Only enabled outside of app-check environments. The emulators will not use appcheck.
|
|
114
|
-
appCheck = initializeAppCheck(firebaseApp, {
|
|
115
|
-
provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
|
|
116
|
-
isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
|
|
117
|
-
});
|
|
118
|
-
console.log('Enabled AppCheck.');
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
appCheck = undefined;
|
|
122
|
-
if (!appCheckKnowinglyDisabled) {
|
|
123
|
-
console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return appCheck;
|
|
127
|
-
})] });
|
|
128
|
-
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, decorators: [{
|
|
130
|
-
type: NgModule,
|
|
131
|
-
args: [{
|
|
132
|
-
imports: [
|
|
133
|
-
provideAppCheck((injector) => {
|
|
134
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
135
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
136
|
-
const appCheckOptions = firebaseOptions.appCheck;
|
|
137
|
-
const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
|
|
138
|
-
let appCheck;
|
|
139
|
-
if (appCheckOptions && !appCheckKnowinglyDisabled) {
|
|
140
|
-
// enable the debug tokens if not using emulators and allowDebugTokens is set true
|
|
141
|
-
if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
|
|
142
|
-
enableAppCheckDebugTokenGeneration(true);
|
|
143
|
-
}
|
|
144
|
-
// Only enabled outside of app-check environments. The emulators will not use appcheck.
|
|
145
|
-
appCheck = initializeAppCheck(firebaseApp, {
|
|
146
|
-
provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
|
|
147
|
-
isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
|
|
148
|
-
});
|
|
149
|
-
console.log('Enabled AppCheck.');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
appCheck = undefined;
|
|
153
|
-
if (!appCheckKnowinglyDisabled) {
|
|
154
|
-
console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return appCheck;
|
|
158
|
-
})
|
|
159
|
-
],
|
|
160
|
-
providers: [
|
|
161
|
-
{
|
|
162
|
-
provide: HTTP_INTERCEPTORS,
|
|
163
|
-
useClass: DbxFirebaseAppCheckHttpInterceptor,
|
|
164
|
-
multi: true
|
|
165
|
-
}
|
|
166
|
-
]
|
|
167
|
-
}]
|
|
168
|
-
}] });
|
|
169
|
-
/**
|
|
170
|
-
* Default firebase auth provider module.
|
|
171
|
-
*/
|
|
172
|
-
export class DbxFirebaseDefaultAuthProviderModule {
|
|
173
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
174
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [i3.AuthModule] });
|
|
175
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [provideAuth((injector) => {
|
|
176
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
177
|
-
const auth = getAuth(firebaseApp);
|
|
178
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
179
|
-
if (emulators?.useEmulators && emulators?.auth) {
|
|
180
|
-
connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
|
|
181
|
-
}
|
|
182
|
-
return auth;
|
|
183
|
-
})] });
|
|
184
|
-
}
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, decorators: [{
|
|
186
|
-
type: NgModule,
|
|
187
|
-
args: [{
|
|
188
|
-
imports: [
|
|
189
|
-
provideAuth((injector) => {
|
|
190
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
191
|
-
const auth = getAuth(firebaseApp);
|
|
192
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
193
|
-
if (emulators?.useEmulators && emulators?.auth) {
|
|
194
|
-
connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
|
|
195
|
-
}
|
|
196
|
-
return auth;
|
|
197
|
-
})
|
|
198
|
-
]
|
|
199
|
-
}]
|
|
200
|
-
}] });
|
|
201
|
-
/**
|
|
202
|
-
* Default firebase storage provider module.
|
|
203
|
-
*/
|
|
204
|
-
export class DbxFirebaseDefaultStorageProviderModule {
|
|
205
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
206
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [i4.StorageModule] });
|
|
207
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [provideStorage((injector) => {
|
|
208
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
209
|
-
const storage = getStorage(firebaseApp);
|
|
210
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
211
|
-
if (emulators?.useEmulators && emulators?.storage) {
|
|
212
|
-
connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
|
|
213
|
-
}
|
|
214
|
-
return storage;
|
|
215
|
-
})] });
|
|
216
|
-
}
|
|
217
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, decorators: [{
|
|
218
|
-
type: NgModule,
|
|
219
|
-
args: [{
|
|
220
|
-
imports: [
|
|
221
|
-
provideStorage((injector) => {
|
|
222
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
223
|
-
const storage = getStorage(firebaseApp);
|
|
224
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
225
|
-
if (emulators?.useEmulators && emulators?.storage) {
|
|
226
|
-
connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
|
|
227
|
-
}
|
|
228
|
-
return storage;
|
|
229
|
-
})
|
|
230
|
-
]
|
|
231
|
-
}]
|
|
232
|
-
}] });
|
|
233
|
-
/**
|
|
234
|
-
* Default firebase functions provider module.
|
|
235
|
-
*/
|
|
236
|
-
export class DbxFirebaseDefaultFunctionsProviderModule {
|
|
237
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
238
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [i5.FunctionsModule] });
|
|
239
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [provideFunctions((injector) => {
|
|
240
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
241
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
242
|
-
const { functionsRegionOrCustomDomain } = firebaseOptions;
|
|
243
|
-
const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
|
|
244
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
245
|
-
if (emulators?.useEmulators && emulators?.functions) {
|
|
246
|
-
connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
|
|
247
|
-
}
|
|
248
|
-
return functions;
|
|
249
|
-
})] });
|
|
250
|
-
}
|
|
251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, decorators: [{
|
|
252
|
-
type: NgModule,
|
|
253
|
-
args: [{
|
|
254
|
-
imports: [
|
|
255
|
-
provideFunctions((injector) => {
|
|
256
|
-
const firebaseApp = injector.get(FirebaseApp);
|
|
257
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
258
|
-
const { functionsRegionOrCustomDomain } = firebaseOptions;
|
|
259
|
-
const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
|
|
260
|
-
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
261
|
-
if (emulators?.useEmulators && emulators?.functions) {
|
|
262
|
-
connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
|
|
263
|
-
}
|
|
264
|
-
return functions;
|
|
265
|
-
})
|
|
266
|
-
]
|
|
267
|
-
}]
|
|
268
|
-
}] });
|
|
269
4
|
/**
|
|
270
5
|
* Default provider module.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated use provideDbxFirebaseApp() instead
|
|
271
8
|
*/
|
|
272
9
|
export class DbxFirebaseDefaultFirebaseProvidersModule {
|
|
273
|
-
static forRoot(
|
|
10
|
+
static forRoot(dbxFirebaseOptions) {
|
|
274
11
|
return {
|
|
275
12
|
ngModule: DbxFirebaseDefaultFirebaseProvidersModule,
|
|
276
|
-
providers: [
|
|
277
|
-
{
|
|
278
|
-
provide: DBX_FIREBASE_OPTIONS_TOKEN,
|
|
279
|
-
useValue: firebaseOptions
|
|
280
|
-
}
|
|
281
|
-
]
|
|
13
|
+
providers: [provideDbxFirebaseApp({ dbxFirebaseAppOptions: dbxFirebaseOptions })]
|
|
282
14
|
};
|
|
283
15
|
}
|
|
284
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
285
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
286
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
287
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
288
|
-
return initializeApp(firebaseOptions);
|
|
289
|
-
}),
|
|
290
|
-
DbxFirebaseDefaultAppCheckProviderModule,
|
|
291
|
-
DbxFirebaseDefaultFirestoreProviderModule,
|
|
292
|
-
DbxFirebaseDefaultAuthProviderModule,
|
|
293
|
-
DbxFirebaseDefaultStorageProviderModule,
|
|
294
|
-
DbxFirebaseDefaultFunctionsProviderModule] });
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule });
|
|
18
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule });
|
|
295
19
|
}
|
|
296
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, decorators: [{
|
|
297
21
|
type: NgModule,
|
|
298
22
|
args: [{
|
|
299
|
-
|
|
300
|
-
provideFirebaseApp((injector) => {
|
|
301
|
-
const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
|
|
302
|
-
return initializeApp(firebaseOptions);
|
|
303
|
-
}),
|
|
304
|
-
DbxFirebaseDefaultAppCheckProviderModule,
|
|
305
|
-
DbxFirebaseDefaultFirestoreProviderModule,
|
|
306
|
-
DbxFirebaseDefaultAuthProviderModule,
|
|
307
|
-
DbxFirebaseDefaultStorageProviderModule,
|
|
308
|
-
DbxFirebaseDefaultFunctionsProviderModule
|
|
309
|
-
]
|
|
23
|
+
providers: []
|
|
310
24
|
}]
|
|
311
25
|
}] });
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQXFCLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN00sT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxF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QUNMLFFBQVEsRUFBRSx5Q0FBeUM7WUFDbkQsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBWFUseUNBQXlDO3lHQUF6Qyx5Q0FBeUMsa0NBakZ6Qyx3Q0FBd0MsRUFoRHhDLHlDQUF5QyxFQW9FekMsb0NBQW9DLEVBb0JwQyx1Q0FBdUMsRUF1QnZDLHlDQUF5Qzt5R0FrQnpDLHlDQUF5QyxZQVhsRCxrQkFBa0IsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBcUIsMEJBQTBCLENBQUMsQ0FBQztnQkFDckYsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO1lBQ0Ysd0NBQXdDO1lBQ3hDLHlDQUF5QztZQUN6QyxvQ0FBb0M7WUFDcEMsdUNBQXVDO1lBQ3ZDLHlDQUF5Qzs7NEZBR2hDLHlDQUF5QztrQkFickQsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7NEJBQ3hDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQXFCLDBCQUEwQixDQUFDLENBQUM7NEJBQ3JGLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUN4QyxDQUFDLENBQUM7d0JBQ0Ysd0NBQXdDO3dCQUN4Qyx5Q0FBeUM7d0JBQ3pDLG9DQUFvQzt3QkFDcEMsdUNBQXVDO3dCQUN2Qyx5Q0FBeUM7cUJBQzFDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlYmFzZU9wdGlvbnMsIGluaXRpYWxpemVBcHAgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFwcENoZWNrLCBSZUNhcHRjaGFWM1Byb3ZpZGVyIH0gZnJvbSAnZmlyZWJhc2UvYXBwLWNoZWNrJztcbmltcG9ydCB7IEZpcmViYXNlQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBwcm92aWRlU3RvcmFnZSwgZ2V0U3RvcmFnZSwgY29ubmVjdFN0b3JhZ2VFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBwcm92aWRlRnVuY3Rpb25zLCBnZXRGdW5jdGlvbnMsIGNvbm5lY3RGdW5jdGlvbnNFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZnVuY3Rpb25zJztcbmltcG9ydCB7IHByb3ZpZGVGaXJlc3RvcmUsIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvciwgaW5pdGlhbGl6ZUZpcmVzdG9yZSwgcGVyc2lzdGVudExvY2FsQ2FjaGUsIHBlcnNpc3RlbnRNdWx0aXBsZVRhYk1hbmFnZXIsIEZpcmVzdG9yZVNldHRpbmdzLCBwZXJzaXN0ZW50U2luZ2xlVGFiTWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IHByb3ZpZGVBdXRoLCBnZXRBdXRoLCBjb25uZWN0QXV0aEVtdWxhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IEFwcENoZWNrLCBwcm92aWRlQXBwQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcC1jaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZyB9IGZyb20gJy4vZW11bGF0b3JzJztcbmltcG9ydCB7IERieEZpcmViYXNlT3B0aW9ucywgREJYX0ZJUkVCQVNFX09QVElPTlNfVE9LRU4gfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBlbmFibGVBcHBDaGVja0RlYnVnVG9rZW5HZW5lcmF0aW9uIH0gZnJvbSAnLi4vYXV0aC9hcHBjaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcENoZWNrSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnLi4vYXV0aC9hcHBjaGVjay9hcHBjaGVjay5pbnRlcmNlcHRvcic7XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBmaXJlc3RvcmUgcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG5cbiAgICAgIGNvbnN0IGZpcmVzdG9yZVNldHRpbmdzOiBGaXJlc3RvcmVTZXR0aW5ncyA9IHt9O1xuXG4gICAgICBjb25zdCB7IGVuYWJsZU11bHRpVGFiSW5kZXhlZERiUGVyc2lzdGVuY2UsIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlIH0gPSBmaXJlYmFzZU9wdGlvbnM7XG4gICAgICBjb25zdCB7IHBlcnNpc3RlbnRDYWNoZVNldHRpbmdzIH0gPSBmaXJlYmFzZU9wdGlvbnM7XG5cbiAgICAgIGlmIChlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHRhYk1hbmFnZXI7XG5cbiAgICAgICAgaWYgKGVuYWJsZU11bHRpVGFiSW5kZXhlZERiUGVyc2lzdGVuY2UgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGFiTWFuYWdlciA9IHBlcnNpc3RlbnRNdWx0aXBsZVRhYk1hbmFnZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWJNYW5hZ2VyID0gcGVyc2lzdGVudFNpbmdsZVRhYk1hbmFnZXIodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpcmVzdG9yZVNldHRpbmdzLmxvY2FsQ2FjaGUgPSBwZXJzaXN0ZW50TG9jYWxDYWNoZSh7XG4gICAgICAgICAgdGFiTWFuYWdlcixcbiAgICAgICAgICAuLi5wZXJzaXN0ZW50Q2FjaGVTZXR0aW5nc1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyZXN0b3JlID0gaW5pdGlhbGl6ZUZpcmVzdG9yZShmaXJlYmFzZUFwcCwgZmlyZXN0b3JlU2V0dGluZ3MpO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uZmlyZXN0b3JlKSB7XG4gICAgICAgIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvcihmaXJlc3RvcmUsIGVtdWxhdG9ycy5maXJlc3RvcmUuaG9zdCwgZW11bGF0b3JzLmZpcmVzdG9yZS5wb3J0LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaXJlc3RvcmU7XG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGaXJlc3RvcmVQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2UgYXBwIGNoZWNrIHByb3ZpZGVyIG1vZHVsZS5cbiAqXG4gKiBBbHNvIGNvbmZpZ3VyZXMgdGhlIERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3Igd2l0aCBIVFRQX0lOVEVSQ0VQVE9SUyBpbiBvcmRlciBmb3IgYXBwQ2hlY2sgdG8gYmUgYXBwZW5kZWQgdG8gcmVxdWVzdHMgdG8gdGhlIGFwaS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVBcHBDaGVjaygoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG4gICAgICBjb25zdCBhcHBDaGVja09wdGlvbnMgPSBmaXJlYmFzZU9wdGlvbnMuYXBwQ2hlY2s7XG4gICAgICBjb25zdCBhcHBDaGVja0tub3dpbmdseURpc2FibGVkID0gYXBwQ2hlY2tPcHRpb25zPy5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCBmaXJlYmFzZU9wdGlvbnMuZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgPT09IHRydWU7XG4gICAgICBsZXQgYXBwQ2hlY2s6IEFwcENoZWNrO1xuXG4gICAgICBpZiAoYXBwQ2hlY2tPcHRpb25zICYmICFhcHBDaGVja0tub3dpbmdseURpc2FibGVkKSB7XG4gICAgICAgIC8vIGVuYWJsZSB0aGUgZGVidWcgdG9rZW5zIGlmIG5vdCB1c2luZyBlbXVsYXRvcnMgYW5kIGFsbG93RGVidWdUb2tlbnMgaXMgc2V0IHRydWVcbiAgICAgICAgaWYgKGZpcmViYXNlT3B0aW9ucy5lbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAhPT0gdHJ1ZSAmJiBhcHBDaGVja09wdGlvbnMuYWxsb3dEZWJ1Z1Rva2Vucykge1xuICAgICAgICAgIGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IGVuYWJsZWQgb3V0c2lkZSBvZiBhcHAtY2hlY2sgZW52aXJvbm1lbnRzLiBUaGUgZW11bGF0b3JzIHdpbGwgbm90IHVzZSBhcHBjaGVjay5cbiAgICAgICAgYXBwQ2hlY2sgPSBpbml0aWFsaXplQXBwQ2hlY2soZmlyZWJhc2VBcHAsIHtcbiAgICAgICAgICBwcm92aWRlcjogbmV3IFJlQ2FwdGNoYVYzUHJvdmlkZXIoYXBwQ2hlY2tPcHRpb25zLnJlQ2FwdGNoYVYzKSxcbiAgICAgICAgICBpc1Rva2VuQXV0b1JlZnJlc2hFbmFibGVkOiBhcHBDaGVja09wdGlvbnMuaXNUb2tlbkF1dG9SZWZyZXNoRW5hYmxlZCA/PyB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdFbmFibGVkIEFwcENoZWNrLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXBwQ2hlY2sgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBcHBDaGVjaztcblxuICAgICAgICBpZiAoIWFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdkYngtZmlyZWJhc2U6IE5vIGFwcGNoZWNrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcHAsIGFuZCBub3Qgc3BlY2lmaWNhbGx5IGRpc2FibGVkIGluIGNvbmZpZyBlaXRoZXIuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFwcENoZWNrO1xuICAgIH0pXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRBcHBDaGVja1Byb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBhdXRoIHByb3ZpZGVyIG1vZHVsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVBdXRoKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKGZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihhdXRoLCBgaHR0cDovLyR7ZW11bGF0b3JzLmF1dGguaG9zdH06JHtlbXVsYXRvcnMuYXV0aC5wb3J0fWApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aDtcbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdEF1dGhQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2Ugc3RvcmFnZSBwcm92aWRlciBtb2R1bGUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBwcm92aWRlU3RvcmFnZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZShmaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBlbXVsYXRvcnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWc+KERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnLCB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgZW11bGF0b3JzPy5zdG9yYWdlKSB7XG4gICAgICAgIGNvbm5lY3RTdG9yYWdlRW11bGF0b3Ioc3RvcmFnZSwgZW11bGF0b3JzLnN0b3JhZ2UuaG9zdCwgZW11bGF0b3JzLnN0b3JhZ2UucG9ydCwge30pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdFN0b3JhZ2VQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2UgZnVuY3Rpb25zIHByb3ZpZGVyIG1vZHVsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVGdW5jdGlvbnMoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlT3B0aW9ucz4oREJYX0ZJUkVCQVNFX09QVElPTlNfVE9LRU4pO1xuICAgICAgY29uc3QgeyBmdW5jdGlvbnNSZWdpb25PckN1c3RvbURvbWFpbiB9ID0gZmlyZWJhc2VPcHRpb25zO1xuXG4gICAgICBjb25zdCBmdW5jdGlvbnMgPSBnZXRGdW5jdGlvbnMoZmlyZWJhc2VBcHAsIGZ1bmN0aW9uc1JlZ2lvbk9yQ3VzdG9tRG9tYWluKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmZ1bmN0aW9ucykge1xuICAgICAgICBjb25uZWN0RnVuY3Rpb25zRW11bGF0b3IoZnVuY3Rpb25zLCBlbXVsYXRvcnMuZnVuY3Rpb25zLmhvc3QsIGVtdWxhdG9ycy5mdW5jdGlvbnMucG9ydCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbnM7XG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGdW5jdGlvbnNQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmViYXNlQXBwKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlT3B0aW9ucyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZU9wdGlvbnM+KERCWF9GSVJFQkFTRV9PUFRJT05TX1RPS0VOKTtcbiAgICAgIHJldHVybiBpbml0aWFsaXplQXBwKGZpcmViYXNlT3B0aW9ucyk7XG4gICAgfSksXG4gICAgRGJ4RmlyZWJhc2VEZWZhdWx0QXBwQ2hlY2tQcm92aWRlck1vZHVsZSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRGaXJlc3RvcmVQcm92aWRlck1vZHVsZSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRBdXRoUHJvdmlkZXJNb2R1bGUsXG4gICAgRGJ4RmlyZWJhc2VEZWZhdWx0U3RvcmFnZVByb3ZpZGVyTW9kdWxlLFxuICAgIERieEZpcmViYXNlRGVmYXVsdEZ1bmN0aW9uc1Byb3ZpZGVyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChmaXJlYmFzZU9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERieEZpcmViYXNlRGVmYXVsdEZpcmViYXNlUHJvdmlkZXJzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogZmlyZWJhc2VPcHRpb25zXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUF5QztRQUN0RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlDQUF5QztZQUNuRCxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRixDQUFDO0lBQ0osQ0FBQzt3R0FOVSx5Q0FBeUM7eUdBQXpDLHlDQUF5Qzt5R0FBekMseUNBQXlDOzs0RkFBekMseUNBQXlDO2tCQUhyRCxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVEYnhGaXJlYmFzZUFwcCB9IGZyb20gJy4vZmlyZWJhc2UucHJvdmlkZXJzJztcbmltcG9ydCB7IERieEZpcmViYXNlQXBwT3B0aW9ucyB9IGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucyc7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciBtb2R1bGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlIHByb3ZpZGVEYnhGaXJlYmFzZUFwcCgpIGluc3RlYWRcbiAqL1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGRieEZpcmViYXNlT3B0aW9uczogRGJ4RmlyZWJhc2VBcHBPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtwcm92aWRlRGJ4RmlyZWJhc2VBcHAoeyBkYnhGaXJlYmFzZUFwcE9wdGlvbnM6IGRieEZpcmViYXNlT3B0aW9ucyB9KV1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uub3B0aW9ucy5lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLm9wdGlvbnMuZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVEYnhGaXJlYmFzZUxvZ2luQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC9sb2dpbi9maXJlYmFzZS5sb2dpbi5wcm92aWRlcnMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VBcHBPcHRpb25zIH0gZnJvbSAnLi9maXJlYmFzZS5vcHRpb25zJztcblxuLyoqXG4gKiBDb252ZW5pZW5jZSB0eXBlIHVzZWQgaW4gLmVudmlyb25tZW50LnRzIGZpbGVzIGZvciBidWlsZGluZyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUVudmlyb25tZW50T3B0aW9ucyA9IERieEZpcmViYXNlQXBwT3B0aW9ucyAmIFBpY2s8UHJvdmlkZURieEZpcmViYXNlTG9naW5Db25maWcsICdlbmFibGVkTG9naW5NZXRob2RzJz47XG5cbi8vIE1BUks6IENvbXBhdFxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGJ4RmlyZWJhc2VFbnZpcm9ubWVudE9wdGlvbnMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VPcHRpb25zID0gRGJ4RmlyZWJhc2VFbnZpcm9ubWVudE9wdGlvbnM7XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const DBX_FIREBASE_APP_OPTIONS_TOKEN = new InjectionToken('DbxFirebaseOptions');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uub3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcnNpc3RlbnRDYWNoZVNldHRpbmdzIH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJztcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcENoZWNrQ29uZmlnIH0gZnJvbSAnLi9hcHBjaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUVtdWxhdG9yc0NvbmZpZyB9IGZyb20gJy4vZW11bGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERCWF9GSVJFQkFTRV9BUFBfT1BUSU9OU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignRGJ4RmlyZWJhc2VPcHRpb25zJyk7XG5cbi8qKlxuICogRXh0ZW5kcyBGaXJlYmFzZU9wdGlvbnMgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSB1bmRlcmx5aW5nIGNsaWVudC1zaWRlIEZpcmViYXNlIHNlcnZpY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQXBwT3B0aW9ucyBleHRlbmRzIEZpcmViYXNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGVtdWxhdG9yczogRGJ4RmlyZWJhc2VFbXVsYXRvcnNDb25maWc7XG4gIC8qKlxuICAgKiBGaXJlYmFzZSBBcHBDaGVjayBoYW5kbGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgYXBwQ2hlY2s/OiBEYnhGaXJlYmFzZUFwcENoZWNrQ29uZmlnO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHRoZSBGdW5jdGlvbnMgaW5pdGlhbGl6YXRpb24gdG8gc2V0IHRoZSBkb21haW4gdG8gdXNlIHdoZW4gc2VuZGluZyByZXF1ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uc1JlZ2lvbk9yQ3VzdG9tRG9tYWluPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY2FsbCBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlKCkgZm9yIGZpcmVzdG9yZSBhdCBzZXR1cCB0aW1lLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNhbGwgZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UoKSBmb3IgZmlyZXN0b3JlIGF0IHNldHVwIHRpbWUuXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdCBpZiBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9uYWwgcGVyc2lzdGVudCBjYWNoZSBzZXR0aW5nIHRvIHBhc3MgdG8gdGhlIEZpcmVzdG9yZSBjYWNoZS5cbiAgICovXG4gIHJlYWRvbmx5IHBlcnNpc3RlbnRDYWNoZVNldHRpbmdzPzogT21pdDxQZXJzaXN0ZW50Q2FjaGVTZXR0aW5ncywgJ3RhYk1hbmFnZXInPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { initializeApp } from 'firebase/app';
|
|
3
|
+
import { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
|
|
4
|
+
import { FirebaseApp, provideFirebaseApp } from '@angular/fire/app';
|
|
5
|
+
import { provideStorage, getStorage, connectStorageEmulator } from '@angular/fire/storage';
|
|
6
|
+
import { provideFunctions, getFunctions, connectFunctionsEmulator } from '@angular/fire/functions';
|
|
7
|
+
import { provideFirestore, connectFirestoreEmulator, initializeFirestore, persistentLocalCache, persistentMultipleTabManager, persistentSingleTabManager } from '@angular/fire/firestore';
|
|
8
|
+
import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
|
|
9
|
+
import { provideAppCheck } from '@angular/fire/app-check';
|
|
10
|
+
import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
|
|
11
|
+
import { DBX_FIREBASE_APP_OPTIONS_TOKEN } from './firebase.options';
|
|
12
|
+
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
13
|
+
import { enableAppCheckDebugTokenGeneration } from '../auth/appcheck/appcheck';
|
|
14
|
+
import { DbxFirebaseAppCheckHttpInterceptor } from '../auth/appcheck/appcheck.interceptor';
|
|
15
|
+
import { pushArrayItemsIntoArray } from '@dereekb/util';
|
|
16
|
+
/**
|
|
17
|
+
* Provides EnvironmentProviders for all Firebase services.
|
|
18
|
+
*
|
|
19
|
+
* @param config
|
|
20
|
+
* @returns EnvironmentProviders
|
|
21
|
+
*/
|
|
22
|
+
export function provideDbxFirebaseApp(config) {
|
|
23
|
+
const { dbxFirebaseAppOptions: dbxFirebaseOptions } = config;
|
|
24
|
+
const providers = [
|
|
25
|
+
// options
|
|
26
|
+
makeEnvironmentProviders([
|
|
27
|
+
{
|
|
28
|
+
provide: DBX_FIREBASE_APP_OPTIONS_TOKEN,
|
|
29
|
+
useValue: dbxFirebaseOptions
|
|
30
|
+
}
|
|
31
|
+
]),
|
|
32
|
+
// app
|
|
33
|
+
provideFirebaseApp((injector) => {
|
|
34
|
+
const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
|
|
35
|
+
return initializeApp(firebaseOptions);
|
|
36
|
+
})
|
|
37
|
+
];
|
|
38
|
+
// firestore
|
|
39
|
+
if (config.provideFirestore !== false) {
|
|
40
|
+
const firestoreProvider = provideFirestore((injector) => {
|
|
41
|
+
const firebaseApp = injector.get(FirebaseApp);
|
|
42
|
+
const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
|
|
43
|
+
const firestoreSettings = {};
|
|
44
|
+
const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
|
|
45
|
+
const { persistentCacheSettings } = firebaseOptions;
|
|
46
|
+
if (enableIndexedDbPersistence !== false) {
|
|
47
|
+
let tabManager;
|
|
48
|
+
if (enableMultiTabIndexedDbPersistence !== false) {
|
|
49
|
+
tabManager = persistentMultipleTabManager();
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
tabManager = persistentSingleTabManager(undefined);
|
|
53
|
+
}
|
|
54
|
+
firestoreSettings.localCache = persistentLocalCache({
|
|
55
|
+
tabManager,
|
|
56
|
+
...persistentCacheSettings
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
const firestore = initializeFirestore(firebaseApp, firestoreSettings);
|
|
60
|
+
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
61
|
+
if (emulators?.useEmulators && emulators?.firestore) {
|
|
62
|
+
connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
|
|
63
|
+
}
|
|
64
|
+
return firestore;
|
|
65
|
+
});
|
|
66
|
+
providers.push(firestoreProvider);
|
|
67
|
+
}
|
|
68
|
+
// app check
|
|
69
|
+
if (config.provideAppCheck !== false) {
|
|
70
|
+
const appCheckProviders = [
|
|
71
|
+
provideAppCheck((injector) => {
|
|
72
|
+
const firebaseApp = injector.get(FirebaseApp);
|
|
73
|
+
const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
|
|
74
|
+
const appCheckOptions = firebaseOptions.appCheck;
|
|
75
|
+
const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
|
|
76
|
+
let appCheck;
|
|
77
|
+
if (appCheckOptions && !appCheckKnowinglyDisabled) {
|
|
78
|
+
// enable the debug tokens if not using emulators and allowDebugTokens is set true
|
|
79
|
+
if (!firebaseOptions.emulators?.useEmulators && appCheckOptions.allowDebugTokens) {
|
|
80
|
+
enableAppCheckDebugTokenGeneration(true);
|
|
81
|
+
}
|
|
82
|
+
// Only enabled outside of app-check environments. The emulators will not use appcheck.
|
|
83
|
+
appCheck = initializeAppCheck(firebaseApp, {
|
|
84
|
+
provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
|
|
85
|
+
isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
|
|
86
|
+
});
|
|
87
|
+
console.log('Enabled AppCheck.');
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
appCheck = undefined;
|
|
91
|
+
if (!appCheckKnowinglyDisabled) {
|
|
92
|
+
console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return appCheck;
|
|
96
|
+
}),
|
|
97
|
+
{
|
|
98
|
+
provide: HTTP_INTERCEPTORS,
|
|
99
|
+
useClass: DbxFirebaseAppCheckHttpInterceptor,
|
|
100
|
+
multi: true
|
|
101
|
+
}
|
|
102
|
+
];
|
|
103
|
+
pushArrayItemsIntoArray(providers, appCheckProviders);
|
|
104
|
+
}
|
|
105
|
+
// auth
|
|
106
|
+
if (config.provideAuth !== false) {
|
|
107
|
+
const authProvider = provideAuth((injector) => {
|
|
108
|
+
const firebaseApp = injector.get(FirebaseApp);
|
|
109
|
+
const auth = getAuth(firebaseApp);
|
|
110
|
+
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
111
|
+
if (emulators?.useEmulators && emulators?.auth) {
|
|
112
|
+
connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
|
|
113
|
+
}
|
|
114
|
+
return auth;
|
|
115
|
+
});
|
|
116
|
+
providers.push(authProvider);
|
|
117
|
+
}
|
|
118
|
+
// storage
|
|
119
|
+
if (config.provideStorage !== false) {
|
|
120
|
+
const storageProvider = provideStorage((injector) => {
|
|
121
|
+
const firebaseApp = injector.get(FirebaseApp);
|
|
122
|
+
const storage = getStorage(firebaseApp);
|
|
123
|
+
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
124
|
+
if (emulators?.useEmulators && emulators?.storage) {
|
|
125
|
+
connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
|
|
126
|
+
}
|
|
127
|
+
return storage;
|
|
128
|
+
});
|
|
129
|
+
providers.push(storageProvider);
|
|
130
|
+
}
|
|
131
|
+
// functions
|
|
132
|
+
if (config.provideFunctions !== false) {
|
|
133
|
+
const functionsProvider = provideFunctions((injector) => {
|
|
134
|
+
const firebaseApp = injector.get(FirebaseApp);
|
|
135
|
+
const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
|
|
136
|
+
const { functionsRegionOrCustomDomain } = firebaseOptions;
|
|
137
|
+
const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
|
|
138
|
+
const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
|
|
139
|
+
if (emulators?.useEmulators && emulators?.functions) {
|
|
140
|
+
connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
|
|
141
|
+
}
|
|
142
|
+
return functions;
|
|
143
|
+
});
|
|
144
|
+
providers.push(functionsProvider);
|
|
145
|
+
}
|
|
146
|
+
return makeEnvironmentProviders(providers);
|
|
147
|
+
}
|
|
148
|
+
// TODO: Providers now need to be initialized/registered in the bootstrap section as additional providers/config and not imported as modules this way
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFxQiwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdNLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQXlCLDhCQUE4QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0YsT0FBTyxFQUFTLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBNEMvRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFtQztJQUN2RSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFN0QsTUFBTSxTQUFTLEdBQXdDO1FBQ3JELFVBQVU7UUFDVix3QkFBd0IsQ0FBQztZQUN2QjtnQkFDRSxPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxRQUFRLEVBQUUsa0JBQWtCO2FBQzdCO1NBQ0YsQ0FBQztRQUVGLE1BQU07UUFDTixrQkFBa0IsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUN4QyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUF3Qiw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVGLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztLQUNILENBQUM7SUFFRixZQUFZO0lBQ1osSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUNoRSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQXdCLDhCQUE4QixDQUFDLENBQUM7WUFFNUYsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxDQUFDO1lBRWhELE1BQU0sRUFBRSxrQ0FBa0MsRUFBRSwwQkFBMEIsRUFBRSxHQUFHLGVBQWUsQ0FBQztZQUMzRixNQUFNLEVBQUUsdUJBQXVCLEVBQUUsR0FBRyxlQUFlLENBQUM7WUFFcEQsSUFBSSwwQkFBMEIsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxVQUFVLENBQUM7Z0JBRWYsSUFBSSxrQ0FBa0MsS0FBSyxLQUFLLEVBQUUsQ0FBQztvQkFDakQsVUFBVSxHQUFHLDRCQUE0QixFQUFFLENBQUM7Z0JBQzlDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixVQUFVLEdBQUcsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3JELENBQUM7Z0JBRUQsaUJBQWlCLENBQUMsVUFBVSxHQUFHLG9CQUFvQixDQUFDO29CQUNsRCxVQUFVO29CQUNWLEdBQUcsdUJBQXVCO2lCQUMzQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDdEUsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBbUMsZ0NBQWdDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFOUcsSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDcEQsd0JBQXdCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlGLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWTtJQUNaLElBQUksTUFBTSxDQUFDLGVBQWUsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNyQyxNQUFNLGlCQUFpQixHQUFHO1lBQ3hCLGVBQWUsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBd0IsOEJBQThCLENBQUMsQ0FBQztnQkFDNUYsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDakQsTUFBTSx5QkFBeUIsR0FBRyxlQUFlLEVBQUUsUUFBUSxLQUFLLElBQUksSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLFlBQVksS0FBSyxJQUFJLENBQUM7Z0JBRXpILElBQUksUUFBa0IsQ0FBQztnQkFFdkIsSUFBSSxlQUFlLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO29CQUNsRCxrRkFBa0Y7b0JBQ2xGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFlBQVksSUFBSSxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDakYsa0NBQWtDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzNDLENBQUM7b0JBRUQsdUZBQXVGO29CQUN2RixRQUFRLEdBQUcsa0JBQWtCLENBQUMsV0FBVyxFQUFFO3dCQUN6QyxRQUFRLEVBQUUsSUFBSSxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO3dCQUM5RCx5QkFBeUIsRUFBRSxlQUFlLENBQUMseUJBQXlCLElBQUksSUFBSTtxQkFDN0UsQ0FBQyxDQUFDO29CQUVILE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFFBQVEsR0FBRyxTQUFnQyxDQUFDO29CQUU1QyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQzt3QkFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO29CQUN4SCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQyxDQUFDO1lBQ0Y7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLENBQUM7UUFFRix1QkFBdUIsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTztJQUNQLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDdEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBbUMsZ0NBQWdDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFOUcsSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDL0MsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFVBQVUsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BGLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVTtJQUNWLElBQUksTUFBTSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxNQUFNLGVBQWUsR0FBRyxjQUFjLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDNUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBbUMsZ0NBQWdDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFOUcsSUFBSSxTQUFTLEVBQUUsWUFBWSxJQUFJLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDbEQsc0JBQXNCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVk7SUFDWixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBd0IsOEJBQThCLENBQUMsQ0FBQztZQUM1RixNQUFNLEVBQUUsNkJBQTZCLEVBQUUsR0FBRyxlQUFlLENBQUM7WUFFMUQsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBQzNFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQW1DLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTlHLElBQUksU0FBUyxFQUFFLFlBQVksSUFBSSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7Z0JBQ3BELHdCQUF3QixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFGLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQscUpBQXFKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbml0aWFsaXplQXBwIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IGluaXRpYWxpemVBcHBDaGVjaywgUmVDYXB0Y2hhVjNQcm92aWRlciB9IGZyb20gJ2ZpcmViYXNlL2FwcC1jaGVjayc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgcHJvdmlkZUZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnO1xuaW1wb3J0IHsgcHJvdmlkZVN0b3JhZ2UsIGdldFN0b3JhZ2UsIGNvbm5lY3RTdG9yYWdlRW11bGF0b3IgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgcHJvdmlkZUZ1bmN0aW9ucywgZ2V0RnVuY3Rpb25zLCBjb25uZWN0RnVuY3Rpb25zRW11bGF0b3IgfSBmcm9tICdAYW5ndWxhci9maXJlL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBwcm92aWRlRmlyZXN0b3JlLCBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IsIGluaXRpYWxpemVGaXJlc3RvcmUsIHBlcnNpc3RlbnRMb2NhbENhY2hlLCBwZXJzaXN0ZW50TXVsdGlwbGVUYWJNYW5hZ2VyLCBGaXJlc3RvcmVTZXR0aW5ncywgcGVyc2lzdGVudFNpbmdsZVRhYk1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBwcm92aWRlQXV0aCwgZ2V0QXV0aCwgY29ubmVjdEF1dGhFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQgeyBBcHBDaGVjaywgcHJvdmlkZUFwcENoZWNrIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAtY2hlY2snO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2VtdWxhdG9ycyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcE9wdGlvbnMsIERCWF9GSVJFQkFTRV9BUFBfT1BUSU9OU19UT0tFTiB9IGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucyc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24gfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrL2FwcGNoZWNrJztcbmltcG9ydCB7IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrL2FwcGNoZWNrLmludGVyY2VwdG9yJztcbmltcG9ydCB7IE1heWJlLCBwdXNoQXJyYXlJdGVtc0ludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHByb3ZpZGVEYnhGaXJlYmFzZUFwcCgpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVEYnhGaXJlYmFzZUFwcENvbmZpZyB7XG4gIC8qKlxuICAgKiBEYnhGaXJlYmFzZUFwcE9wdGlvbnMgZm9yIHRoZSBhcHAuXG4gICAqXG4gICAqIElzIGF1dG9tYXRpY2FsbHkgY29uZmlndXJlZCBhcyBhIHByb3ZpZGVyIGZvciB0aGUgREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VBcHBPcHRpb25zOiBEYnhGaXJlYmFzZUFwcE9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEZpcmVzdG9yZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlRmlyZXN0b3JlPzogTWF5YmU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEFwcCBDaGVjayBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlQXBwQ2hlY2s/OiBNYXliZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHByb3ZpZGUgQXV0aCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlQXV0aD86IE1heWJlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcHJvdmlkZSBTdG9yYWdlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVTdG9yYWdlPzogTWF5YmU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEZ1bmN0aW9ucyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlRnVuY3Rpb25zPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogUHJvdmlkZXMgRW52aXJvbm1lbnRQcm92aWRlcnMgZm9yIGFsbCBGaXJlYmFzZSBzZXJ2aWNlcy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQXBwKGNvbmZpZzogUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25zdCB7IGRieEZpcmViYXNlQXBwT3B0aW9uczogZGJ4RmlyZWJhc2VPcHRpb25zIH0gPSBjb25maWc7XG5cbiAgY29uc3QgcHJvdmlkZXJzOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSA9IFtcbiAgICAvLyBvcHRpb25zXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOLFxuICAgICAgICB1c2VWYWx1ZTogZGJ4RmlyZWJhc2VPcHRpb25zXG4gICAgICB9XG4gICAgXSksXG5cbiAgICAvLyBhcHBcbiAgICBwcm92aWRlRmlyZWJhc2VBcHAoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlQXBwT3B0aW9ucz4oREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOKTtcbiAgICAgIHJldHVybiBpbml0aWFsaXplQXBwKGZpcmViYXNlT3B0aW9ucyk7XG4gICAgfSlcbiAgXTtcblxuICAvLyBmaXJlc3RvcmVcbiAgaWYgKGNvbmZpZy5wcm92aWRlRmlyZXN0b3JlICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGZpcmVzdG9yZVByb3ZpZGVyID0gcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VBcHBPcHRpb25zPihEQlhfRklSRUJBU0VfQVBQX09QVElPTlNfVE9LRU4pO1xuXG4gICAgICBjb25zdCBmaXJlc3RvcmVTZXR0aW5nczogRmlyZXN0b3JlU2V0dGluZ3MgPSB7fTtcblxuICAgICAgY29uc3QgeyBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlLCBlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSB9ID0gZmlyZWJhc2VPcHRpb25zO1xuICAgICAgY29uc3QgeyBwZXJzaXN0ZW50Q2FjaGVTZXR0aW5ncyB9ID0gZmlyZWJhc2VPcHRpb25zO1xuXG4gICAgICBpZiAoZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UgIT09IGZhbHNlKSB7XG4gICAgICAgIGxldCB0YWJNYW5hZ2VyO1xuXG4gICAgICAgIGlmIChlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlICE9PSBmYWxzZSkge1xuICAgICAgICAgIHRhYk1hbmFnZXIgPSBwZXJzaXN0ZW50TXVsdGlwbGVUYWJNYW5hZ2VyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFiTWFuYWdlciA9IHBlcnNpc3RlbnRTaW5nbGVUYWJNYW5hZ2VyKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBmaXJlc3RvcmVTZXR0aW5ncy5sb2NhbENhY2hlID0gcGVyc2lzdGVudExvY2FsQ2FjaGUoe1xuICAgICAgICAgIHRhYk1hbmFnZXIsXG4gICAgICAgICAgLi4ucGVyc2lzdGVudENhY2hlU2V0dGluZ3NcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcmVzdG9yZSA9IGluaXRpYWxpemVGaXJlc3RvcmUoZmlyZWJhc2VBcHAsIGZpcmVzdG9yZVNldHRpbmdzKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoZmlyZXN0b3JlLCBlbXVsYXRvcnMuZmlyZXN0b3JlLmhvc3QsIGVtdWxhdG9ycy5maXJlc3RvcmUucG9ydCwge30pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlyZXN0b3JlO1xuICAgIH0pO1xuXG4gICAgcHJvdmlkZXJzLnB1c2goZmlyZXN0b3JlUHJvdmlkZXIpO1xuICB9XG5cbiAgLy8gYXBwIGNoZWNrXG4gIGlmIChjb25maWcucHJvdmlkZUFwcENoZWNrICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGFwcENoZWNrUHJvdmlkZXJzID0gW1xuICAgICAgcHJvdmlkZUFwcENoZWNrKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VBcHBPcHRpb25zPihEQlhfRklSRUJBU0VfQVBQX09QVElPTlNfVE9LRU4pO1xuICAgICAgICBjb25zdCBhcHBDaGVja09wdGlvbnMgPSBmaXJlYmFzZU9wdGlvbnMuYXBwQ2hlY2s7XG4gICAgICAgIGNvbnN0IGFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQgPSBhcHBDaGVja09wdGlvbnM/LmRpc2FibGVkID09PSB0cnVlIHx8IGZpcmViYXNlT3B0aW9ucy5lbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyA9PT0gdHJ1ZTtcblxuICAgICAgICBsZXQgYXBwQ2hlY2s6IEFwcENoZWNrO1xuXG4gICAgICAgIGlmIChhcHBDaGVja09wdGlvbnMgJiYgIWFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQpIHtcbiAgICAgICAgICAvLyBlbmFibGUgdGhlIGRlYnVnIHRva2VucyBpZiBub3QgdXNpbmcgZW11bGF0b3JzIGFuZCBhbGxvd0RlYnVnVG9rZW5zIGlzIHNldCB0cnVlXG4gICAgICAgICAgaWYgKCFmaXJlYmFzZU9wdGlvbnMuZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgYXBwQ2hlY2tPcHRpb25zLmFsbG93RGVidWdUb2tlbnMpIHtcbiAgICAgICAgICAgIGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24odHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT25seSBlbmFibGVkIG91dHNpZGUgb2YgYXBwLWNoZWNrIGVudmlyb25tZW50cy4gVGhlIGVtdWxhdG9ycyB3aWxsIG5vdCB1c2UgYXBwY2hlY2suXG4gICAgICAgICAgYXBwQ2hlY2sgPSBpbml0aWFsaXplQXBwQ2hlY2soZmlyZWJhc2VBcHAsIHtcbiAgICAgICAgICAgIHByb3ZpZGVyOiBuZXcgUmVDYXB0Y2hhVjNQcm92aWRlcihhcHBDaGVja09wdGlvbnMucmVDYXB0Y2hhVjMpLFxuICAgICAgICAgICAgaXNUb2tlbkF1dG9SZWZyZXNoRW5hYmxlZDogYXBwQ2hlY2tPcHRpb25zLmlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQgPz8gdHJ1ZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0VuYWJsZWQgQXBwQ2hlY2suJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXBwQ2hlY2sgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBcHBDaGVjaztcblxuICAgICAgICAgIGlmICghYXBwQ2hlY2tLbm93aW5nbHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZGJ4LWZpcmViYXNlOiBObyBhcHBjaGVjayBjb25maWd1cmF0aW9uIGZvciB0aGUgYXBwLCBhbmQgbm90IHNwZWNpZmljYWxseSBkaXNhYmxlZCBpbiBjb25maWcgZWl0aGVyLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcHBDaGVjaztcbiAgICAgIH0pLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlQ2xhc3M6IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IsXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgICB9XG4gICAgXTtcblxuICAgIHB1c2hBcnJheUl0ZW1zSW50b0FycmF5KHByb3ZpZGVycywgYXBwQ2hlY2tQcm92aWRlcnMpO1xuICB9XG5cbiAgLy8gYXV0aFxuICBpZiAoY29uZmlnLnByb3ZpZGVBdXRoICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGF1dGhQcm92aWRlciA9IHByb3ZpZGVBdXRoKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKGZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihhdXRoLCBgaHR0cDovLyR7ZW11bGF0b3JzLmF1dGguaG9zdH06JHtlbXVsYXRvcnMuYXV0aC5wb3J0fWApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aDtcbiAgICB9KTtcblxuICAgIHByb3ZpZGVycy5wdXNoKGF1dGhQcm92aWRlcik7XG4gIH1cblxuICAvLyBzdG9yYWdlXG4gIGlmIChjb25maWcucHJvdmlkZVN0b3JhZ2UgIT09IGZhbHNlKSB7XG4gICAgY29uc3Qgc3RvcmFnZVByb3ZpZGVyID0gcHJvdmlkZVN0b3JhZ2UoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoZmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKHN0b3JhZ2UsIGVtdWxhdG9ycy5zdG9yYWdlLmhvc3QsIGVtdWxhdG9ycy5zdG9yYWdlLnBvcnQsIHt9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0b3JhZ2U7XG4gICAgfSk7XG5cbiAgICBwcm92aWRlcnMucHVzaChzdG9yYWdlUHJvdmlkZXIpO1xuICB9XG5cbiAgLy8gZnVuY3Rpb25zXG4gIGlmIChjb25maWcucHJvdmlkZUZ1bmN0aW9ucyAhPT0gZmFsc2UpIHtcbiAgICBjb25zdCBmdW5jdGlvbnNQcm92aWRlciA9IHByb3ZpZGVGdW5jdGlvbnMoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlQXBwT3B0aW9ucz4oREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOKTtcbiAgICAgIGNvbnN0IHsgZnVuY3Rpb25zUmVnaW9uT3JDdXN0b21Eb21haW4gfSA9IGZpcmViYXNlT3B0aW9ucztcblxuICAgICAgY29uc3QgZnVuY3Rpb25zID0gZ2V0RnVuY3Rpb25zKGZpcmViYXNlQXBwLCBmdW5jdGlvbnNSZWdpb25PckN1c3RvbURvbWFpbik7XG4gICAgICBjb25zdCBlbXVsYXRvcnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWc+KERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnLCB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgZW11bGF0b3JzPy5mdW5jdGlvbnMpIHtcbiAgICAgICAgY29ubmVjdEZ1bmN0aW9uc0VtdWxhdG9yKGZ1bmN0aW9ucywgZW11bGF0b3JzLmZ1bmN0aW9ucy5ob3N0LCBlbXVsYXRvcnMuZnVuY3Rpb25zLnBvcnQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnVuY3Rpb25zO1xuICAgIH0pO1xuXG4gICAgcHJvdmlkZXJzLnB1c2goZnVuY3Rpb25zUHJvdmlkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuXG4vLyBUT0RPOiBQcm92aWRlcnMgbm93IG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQvcmVnaXN0ZXJlZCBpbiB0aGUgYm9vdHN0cmFwIHNlY3Rpb24gYXMgYWRkaXRpb25hbCBwcm92aWRlcnMvY29uZmlnIGFuZCBub3QgaW1wb3J0ZWQgYXMgbW9kdWxlcyB0aGlzIHdheVxuIl19
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export * from './appcheck';
|
|
2
2
|
export * from './emulators';
|
|
3
|
+
export * from './firebase.providers';
|
|
3
4
|
export * from './firebase.module';
|
|
4
5
|
export * from './firebase.emulator.module';
|
|
5
6
|
export * from './firebase.emulator.service';
|
|
6
|
-
export * from './
|
|
7
|
-
|
|
7
|
+
export * from './firebase.emulator.providers';
|
|
8
|
+
export * from './firebase.options';
|
|
9
|
+
export * from './firebase.options.environment';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBjaGVjayc7XG5leHBvcnQgKiBmcm9tICcuL2VtdWxhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLmVtdWxhdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLmVtdWxhdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucy5lbnZpcm9ubWVudCc7XG4iXX0=
|
|
@@ -6,13 +6,13 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
*/
|
|
7
7
|
export class DbxFirestoreContextService {
|
|
8
8
|
firestoreContext = inject(DBX_FIRESTORE_CONTEXT_TOKEN);
|
|
9
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
9
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, providedIn: 'root' });
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, decorators: [{
|
|
13
13
|
type: Injectable,
|
|
14
14
|
args: [{
|
|
15
15
|
providedIn: 'root'
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZmlyZXN0b3JlLmNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmVzdG9yZS9maXJlYmFzZS5maXJlc3RvcmUuY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRTs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFtQiwyQkFBMkIsQ0FBQyxDQUFDO3dHQUR2RSwwQkFBMEI7NEdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZXN0b3JlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREJYX0ZJUkVTVE9SRV9DT05URVhUX1RPS0VOIH0gZnJvbSAnLi9maXJlYmFzZS5maXJlc3RvcmUnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGFwcCdzIEZpcmVzdG9yZUNvbnRleHQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmVzdG9yZUNvbnRleHRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29udGV4dCA9IGluamVjdDxGaXJlc3RvcmVDb250ZXh0PihEQlhfRklSRVNUT1JFX0NPTlRFWFRfVE9LRU4pO1xufVxuIl19
|