@dereekb/dbx-firebase 9.19.2 → 9.19.4

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.
@@ -0,0 +1,50 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, map, of, switchMap, shareReplay, combineLatest } from 'rxjs';
3
+ import { DbxFirebaseAuthService } from '../auth/service/firebase.auth.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../auth/service/firebase.auth.service";
6
+ export function readDbxAnalyticsUserPropertiesFromAuthUserInfo(user) {
7
+ const properties = {
8
+ name: user.displayName ?? '',
9
+ email: user.email ?? ''
10
+ };
11
+ return properties;
12
+ }
13
+ export const DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY = (authUserInfo) => of(readDbxAnalyticsUserPropertiesFromAuthUserInfo(authUserInfo));
14
+ /**
15
+ * DbxAnalyticsUserSource implementation that uses the DbxFirebaseAuthService.
16
+ */
17
+ export class DbxFirebaseAnalyticsUserSource {
18
+ constructor(dbxFirebaseAuthService) {
19
+ this.dbxFirebaseAuthService = dbxFirebaseAuthService;
20
+ this._userPropertiesFactory = new BehaviorSubject(DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY);
21
+ this.analyticsUser$ = combineLatest([this._userPropertiesFactory, this.dbxFirebaseAuthService.currentAuthUserInfo$]).pipe(switchMap(([userPropertiesFactory, x]) => {
22
+ let analyticsUser;
23
+ if (x != null) {
24
+ analyticsUser = userPropertiesFactory(x).pipe(map((properties) => ({
25
+ user: x.uid,
26
+ properties
27
+ })));
28
+ }
29
+ else {
30
+ analyticsUser = of(null);
31
+ }
32
+ return analyticsUser;
33
+ }), shareReplay(1));
34
+ }
35
+ get userPropertiesFactory() {
36
+ return this._userPropertiesFactory.value;
37
+ }
38
+ set userPropertiesFactory(userPropertiesFactory) {
39
+ this._userPropertiesFactory.next(userPropertiesFactory);
40
+ }
41
+ }
42
+ DbxFirebaseAnalyticsUserSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, deps: [{ token: i1.DbxFirebaseAuthService }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ DbxFirebaseAnalyticsUserSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root'
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i1.DbxFirebaseAuthService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnVzZXIuc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvYW5hbHl0aWNzL2FuYWx5dGljcy51c2VyLnNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBSS9FLE1BQU0sVUFBVSw4Q0FBOEMsQ0FBQyxJQUFrQjtJQUMvRSxNQUFNLFVBQVUsR0FBK0I7UUFDN0MsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTtRQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO0tBQ3hCLENBQUM7SUFFRixPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0RBQXNELEdBQThDLENBQUMsWUFBMEIsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDhDQUE4QyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFFbE47O0dBRUc7QUFJSCxNQUFNLE9BQU8sOEJBQThCO0lBdUJ6QyxZQUFxQixzQkFBOEM7UUFBOUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXRCM0QsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQTRDLHNEQUFzRCxDQUFDLENBQUM7UUFFL0ksbUJBQWMsR0FBd0MsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoSyxTQUFTLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxhQUFrRCxDQUFDO1lBRXZELElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDYixhQUFhLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ25CLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRztvQkFDWCxVQUFVO2lCQUNYLENBQUMsQ0FBQyxDQUNKLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxhQUFhLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1lBRUQsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFb0UsQ0FBQztJQUV2RSxJQUFJLHFCQUFxQjtRQUN2QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQWdFO1FBQ3hGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs0SEEvQlUsOEJBQThCO2dJQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTs0RkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4QW5hbHl0aWNzVXNlciwgRGJ4QW5hbHl0aWNzVXNlclByb3BlcnRpZXMsIERieEFuYWx5dGljc1VzZXJTb3VyY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtYW5hbHl0aWNzJztcbmltcG9ydCB7IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dCwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFVzZXJJbmZvIH0gZnJvbSAnLi4vYXV0aC9hdXRoJztcbmltcG9ydCB7IERieEZpcmViYXNlQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL3NlcnZpY2UvZmlyZWJhc2UuYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyUHJvcGVydGllc0ZhY3RvcnkgPSBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8T2JzZXJ2YWJsZTxEYnhBbmFseXRpY3NVc2VyUHJvcGVydGllcz4sIEF1dGhVc2VySW5mbz47XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRGJ4QW5hbHl0aWNzVXNlclByb3BlcnRpZXNGcm9tQXV0aFVzZXJJbmZvKHVzZXI6IEF1dGhVc2VySW5mbyk6IERieEFuYWx5dGljc1VzZXJQcm9wZXJ0aWVzIHtcbiAgY29uc3QgcHJvcGVydGllczogRGJ4QW5hbHl0aWNzVXNlclByb3BlcnRpZXMgPSB7XG4gICAgbmFtZTogdXNlci5kaXNwbGF5TmFtZSA/PyAnJyxcbiAgICBlbWFpbDogdXNlci5lbWFpbCA/PyAnJ1xuICB9O1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfRklSRUJBU0VfQU5BTFlUSUNTX1VTRVJfUFJPUEVSVElFU19GQUNUT1JZOiBEYnhGaXJlYmFzZUFuYWx5dGljc1VzZXJQcm9wZXJ0aWVzRmFjdG9yeSA9IChhdXRoVXNlckluZm86IEF1dGhVc2VySW5mbykgPT4gb2YocmVhZERieEFuYWx5dGljc1VzZXJQcm9wZXJ0aWVzRnJvbUF1dGhVc2VySW5mbyhhdXRoVXNlckluZm8pKTtcblxuLyoqXG4gKiBEYnhBbmFseXRpY3NVc2VyU291cmNlIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUgRGJ4RmlyZWJhc2VBdXRoU2VydmljZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyU291cmNlIGltcGxlbWVudHMgRGJ4QW5hbHl0aWNzVXNlclNvdXJjZSB7XG4gIHByaXZhdGUgX3VzZXJQcm9wZXJ0aWVzRmFjdG9yeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyUHJvcGVydGllc0ZhY3Rvcnk+KERFRkFVTFRfREJYX0ZJUkVCQVNFX0FOQUxZVElDU19VU0VSX1BST1BFUlRJRVNfRkFDVE9SWSk7XG5cbiAgcmVhZG9ubHkgYW5hbHl0aWNzVXNlciQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4QW5hbHl0aWNzVXNlcj4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5fdXNlclByb3BlcnRpZXNGYWN0b3J5LCB0aGlzLmRieEZpcmViYXNlQXV0aFNlcnZpY2UuY3VycmVudEF1dGhVc2VySW5mbyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW3VzZXJQcm9wZXJ0aWVzRmFjdG9yeSwgeF0pID0+IHtcbiAgICAgIGxldCBhbmFseXRpY3NVc2VyOiBPYnNlcnZhYmxlPE1heWJlPERieEFuYWx5dGljc1VzZXI+PjtcblxuICAgICAgaWYgKHggIT0gbnVsbCkge1xuICAgICAgICBhbmFseXRpY3NVc2VyID0gdXNlclByb3BlcnRpZXNGYWN0b3J5KHgpLnBpcGUoXG4gICAgICAgICAgbWFwKChwcm9wZXJ0aWVzKSA9PiAoe1xuICAgICAgICAgICAgdXNlcjogeC51aWQsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzXG4gICAgICAgICAgfSkpXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhbmFseXRpY3NVc2VyID0gb2YobnVsbCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhbmFseXRpY3NVc2VyO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGJ4RmlyZWJhc2VBdXRoU2VydmljZTogRGJ4RmlyZWJhc2VBdXRoU2VydmljZSkge31cblxuICBnZXQgdXNlclByb3BlcnRpZXNGYWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLl91c2VyUHJvcGVydGllc0ZhY3RvcnkudmFsdWU7XG4gIH1cblxuICBzZXQgdXNlclByb3BlcnRpZXNGYWN0b3J5KHVzZXJQcm9wZXJ0aWVzRmFjdG9yeTogRGJ4RmlyZWJhc2VBbmFseXRpY3NVc2VyUHJvcGVydGllc0ZhY3RvcnkpIHtcbiAgICB0aGlzLl91c2VyUHJvcGVydGllc0ZhY3RvcnkubmV4dCh1c2VyUHJvcGVydGllc0ZhY3RvcnkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './analytics.user.source';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hbmFseXRpY3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzLnVzZXIuc291cmNlJztcbiJdfQ==
@@ -2,7 +2,7 @@ import { DbxAuthService } from '@dereekb/dbx-core';
2
2
  import { tap, switchMap, BehaviorSubject, interval, combineLatest, map, exhaustMap, distinctUntilChanged, shareReplay } from 'rxjs';
3
3
  import { PromiseUtility } from '@dereekb/util';
4
4
  import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
5
- import { lazyFrom, SubscriptionObject, switchMapWhileTrue, tapLog } from '@dereekb/rxjs';
5
+ import { lazyFrom, SubscriptionObject, switchMapWhileTrue } from '@dereekb/rxjs';
6
6
  import { FirebaseDevelopmentFunctions, ScheduledFunctionDevelopmentFunctionTypeEnum } from '@dereekb/firebase';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@dereekb/dbx-core";
@@ -42,7 +42,8 @@ export class DbxFirebaseDevelopmentSchedulerService {
42
42
  }
43
43
  init() {
44
44
  this._sub.subscription = this.running$
45
- .pipe(tapLog('DbxFirebaseDevelopmentSchedulerService enabled state:'), switchMapWhileTrue(() => {
45
+ .pipe(switchMapWhileTrue(() => {
46
+ console.log('DbxFirebaseDevelopmentSchedulerService enabled.');
46
47
  return combineLatest([this._timerInterval, this.schedulerList$]).pipe(switchMap(([timerInterval, schedulerList]) => {
47
48
  const executionOrder = schedulerList.map((x) => x.name);
48
49
  return interval(timerInterval).pipe(exhaustMap(() => {
@@ -87,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
87
88
  type: Inject,
88
89
  args: [DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN]
89
90
  }] }, { type: i1.DbxAuthService }, { type: i2.FirebaseDevelopmentFunctions }]; } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5zY2hlZHVsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEosT0FBTyxFQUE2QixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsNEJBQTRCLEVBQWlILDRDQUE0QyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFOU47O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvREFBb0QsR0FBRyxJQUFJLGNBQWMsQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBRXhJOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNDQUFzQztJQTRCakQsWUFBOEYsYUFBc0IsRUFBVyxjQUE4QixFQUFXLDRCQUEwRDtRQUFwSSxrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUFXLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFXLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7UUEzQjFOLFNBQUksR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDaEMsYUFB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aUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN2QixPQUFPLEtBQUssQ0FBQztvQkFDZixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDZCxJQUFJLE9BQU8sRUFBRTt3QkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7d0JBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN6QjtnQkFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELG9CQUFvQixDQUFDLFFBQWdCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGlCQUFpQixDQUFDO1lBQ3pELEdBQUcsRUFBRSxRQUFRO1lBQ2IsSUFBSSxFQUFFLDRDQUE0QyxDQUFDLEdBQUc7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxhQUFxQjtRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDOztvSUExRVUsc0NBQXNDLGtCQTRCakIsb0RBQW9EO3dJQTVCekUsc0NBQXNDLGNBRnJDLE1BQU07NEZBRVAsc0NBQXNDO2tCQUhsRCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBNkJjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0RBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGJ4QXV0aFNlcnZpY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBpbnRlcnZhbCwgY29tYmluZUxhdGVzdCwgbWFwLCBleGhhdXN0TWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluaXRpYWxpemVkLCBNaWxsaXNlY29uZHMsIFByb21pc2VVdGlsaXR5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbGF6eUZyb20sIFN1YnNjcmlwdGlvbk9iamVjdCwgc3dpdGNoTWFwV2hpbGVUcnVlLCB0YXBMb2cgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IEZpcmViYXNlRGV2ZWxvcG1lbnRGdW5jdGlvbnMsIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdEVudHJ5LCBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RSZXN1bHQsIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGdW5jdGlvblR5cGVFbnVtIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuXG4vKipcbiAqIFdoZXRoZXIgb3Igbm90IHRoZSBzY2hlZHVsZXIgc2hvdWxkIGJlIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZJUkVCQVNFX0RFVkVMT1BNRU5UX1NDSEVEVUxFUl9FTkFCTEVEX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuKCdEZWZhdWx0RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlckVuYWJsZWQnKTtcblxuLyoqXG4gKiBTZXJ2aWNlIHVzZWQgZm9yIGhpdHRpbmcgdGhlIHNjaGVkdWxlciBpbiB0aGUgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdXNpbmcgdGhlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlIGltcGxlbWVudHMgSW5pdGlhbGl6ZWQge1xuICBwcml2YXRlIF9zdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG4gIHByaXZhdGUgX2VuYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3N0YXJ0RW5hYmxlZCAhPT0gZmFsc2UpO1xuICBwcml2YXRlIF90aW1lckludGVydmFsID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNaWxsaXNlY29uZHM+KDYwICogMTAwMCk7XG4gIHByaXZhdGUgX2Vycm9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgZW5hYmxlZCQgPSB0aGlzLl9lbmFibGVkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBydW5uaW5nJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2VuYWJsZWQsIHRoaXMuZGJ4QXV0aFNlcnZpY2UuYXV0aFVzZXJTdGF0ZSQucGlwZShtYXAoKHgpID0+IHggPT09ICd1c2VyJykpXSkucGlwZShcbiAgICBtYXAoKFtlbmFibGVkLCB1c2VyUmVhZHldKSA9PiBlbmFibGVkICYmIHVzZXJSZWFkeSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICByZWFkb25seSB0aW1lckludGVydmFsJCA9IHRoaXMuX3RpbWVySW50ZXJ2YWwuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IGVycm9yJCA9IHRoaXMuX2Vycm9yLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyTGlzdCQ6IE9ic2VydmFibGU8U2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0RW50cnlbXT4gPSBsYXp5RnJvbSgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9uc1xuICAgICAgLnNjaGVkdWxlZEZ1bmN0aW9uKHsgdHlwZTogU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZ1bmN0aW9uVHlwZUVudW0uTElTVCB9KVxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICBjb25zdCBsaXN0ID0gcmVzdWx0IGFzIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdFJlc3VsdDtcbiAgICAgICAgcmV0dXJuIGxpc3QubGlzdDtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHJldHJpZXZlIGRldmVsb3BtZW50IHNjaGVkdWxlIGxpc3QgZnJvbSBzZXJ2ZXIuJywgZSk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChERUZBVUxUX0ZJUkVCQVNFX0RFVkVMT1BNRU5UX1NDSEVEVUxFUl9FTkFCTEVEX1RPS0VOKSBwcml2YXRlIF9zdGFydEVuYWJsZWQ6IGJvb2xlYW4sIHJlYWRvbmx5IGRieEF1dGhTZXJ2aWNlOiBEYnhBdXRoU2VydmljZSwgcmVhZG9ubHkgZmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9uczogRmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9ucykge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnJ1bm5pbmckXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwTG9nKCdEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZSBlbmFibGVkIHN0YXRlOicpLFxuICAgICAgICBzd2l0Y2hNYXBXaGlsZVRydWUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLl90aW1lckludGVydmFsLCB0aGlzLnNjaGVkdWxlckxpc3QkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3RpbWVySW50ZXJ2YWwsIHNjaGVkdWxlckxpc3RdKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGlvbk9yZGVyOiBzdHJpbmdbXSA9IHNjaGVkdWxlckxpc3QubWFwKCh4KSA9PiB4Lm5hbWUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBpbnRlcnZhbCh0aW1lckludGVydmFsKS5waXBlKFxuICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1J1bm5pbmcgc2NoZWR1bGVkIHRhc2tzIGluIG9yZGVyLi4uICcsIGV4ZWN1dGlvbk9yZGVyKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2VVdGlsaXR5LnJ1blRhc2tzRm9yVmFsdWVzKGV4ZWN1dGlvbk9yZGVyLCAodGFza05hbWUpID0+IHRoaXMucnVuU2NoZWR1bGVkRnVuY3Rpb24odGFza05hbWUpLCB7IHNlcXVlbnRpYWw6IHRydWUsIHJldHJpZXNBbGxvd2VkOiAwLCByZXRyeVdhaXQ6IDAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCBydW5uaW5nIHNjaGVkdWxlZCB0YXNrOiAnLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnJvci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU3VjY2Vzc2Z1bGx5IGZpbmlzaGVkIHJ1bm5pbmcgYWxsIHNjaGVkdWxlZCB0YXNrcy4nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyb3IubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHJ1blNjaGVkdWxlZEZ1bmN0aW9uKHRhc2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5maXJlYmFzZURldmVsb3BtZW50RnVuY3Rpb25zLnNjaGVkdWxlZEZ1bmN0aW9uKHtcbiAgICAgIHJ1bjogdGFza05hbWUsXG4gICAgICB0eXBlOiBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RnVuY3Rpb25UeXBlRW51bS5SVU5cbiAgICB9KTtcbiAgfVxuXG4gIHNldFRpbWVyKHRpbWVySW50ZXJ2YWw6IG51bWJlcikge1xuICAgIHRoaXMuX3RpbWVySW50ZXJ2YWwubmV4dCh0aW1lckludGVydmFsKTtcbiAgfVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuc2NoZWR1bGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5zY2hlZHVsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFjLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEosT0FBTyxFQUE2QixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBaUgsNENBQTRDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUU5Tjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9EQUFvRCxHQUFHLElBQUksY0FBYyxDQUFDLCtDQUErQyxDQUFDLENBQUM7QUFFeEk7O0dBRUc7QUFJSCxNQUFNLE9BQU8sc0NBQXNDO0lBNEJqRCxZQUE4RixhQUFzQixFQUFXLGNBQThCLEVBQVcsNEJBQTBEO1FBQXBJLGtCQUFhLEdBQWIsYUFBYSxDQUFTO1FBQVcsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVcsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQTNCMU4sU0FBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNoQyxhQUFRLEdBQUcsSUFB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Q0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3ZCLE9BQU8sS0FBSyxDQUFDO29CQUNmLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUNkLElBQUksT0FBTyxFQUFFO3dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0RBQW9ELENBQUMsQ0FBQzt3QkFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3pCO2dCQUNILENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsaUJBQWlCLENBQUM7WUFDekQsR0FBRyxFQUFFLFFBQVE7WUFDYixJQUFJLEVBQUUsNENBQTRDLENBQUMsR0FBRztTQUN2RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLGFBQXFCO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O29JQTFFVSxzQ0FBc0Msa0JBNEJqQixvREFBb0Q7d0lBNUJ6RSxzQ0FBc0MsY0FGckMsTUFBTTs0RkFFUCxzQ0FBc0M7a0JBSGxELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2QmMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvREFBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYnhBdXRoU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHRhcCwgc3dpdGNoTWFwLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGludGVydmFsLCBjb21iaW5lTGF0ZXN0LCBtYXAsIGV4aGF1c3RNYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWQsIE1pbGxpc2Vjb25kcywgUHJvbWlzZVV0aWxpdHkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsYXp5RnJvbSwgU3Vic2NyaXB0aW9uT2JqZWN0LCBzd2l0Y2hNYXBXaGlsZVRydWUsIHRhcExvZyB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRmlyZWJhc2VEZXZlbG9wbWVudEZ1bmN0aW9ucywgU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0RW50cnksIFNjaGVkdWxlZEZ1bmN0aW9uRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uTGlzdFJlc3VsdCwgU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZ1bmN0aW9uVHlwZUVudW0gfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5cbi8qKlxuICogV2hldGhlciBvciBub3QgdGhlIHNjaGVkdWxlciBzaG91bGQgYmUgZW5hYmxlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklSRUJBU0VfREVWRUxPUE1FTlRfU0NIRURVTEVSX0VOQUJMRURfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RlZmF1bHREYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyRW5hYmxlZCcpO1xuXG4vKipcbiAqIFNlcnZpY2UgdXNlZCBmb3IgaGl0dGluZyB0aGUgc2NoZWR1bGVyIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCB1c2luZyB0aGVcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UgaW1wbGVtZW50cyBJbml0aWFsaXplZCB7XG4gIHByaXZhdGUgX3N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcbiAgcHJpdmF0ZSBfZW5hYmxlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fc3RhcnRFbmFibGVkICE9PSBmYWxzZSk7XG4gIHByaXZhdGUgX3RpbWVySW50ZXJ2YWwgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1pbGxpc2Vjb25kcz4oNjAgKiAxMDAwKTtcbiAgcHJpdmF0ZSBfZXJyb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBlbmFibGVkJCA9IHRoaXMuX2VuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XG4gIHJlYWRvbmx5IHJ1bm5pbmckID0gY29tYmluZUxhdGVzdChbdGhpcy5fZW5hYmxlZCwgdGhpcy5kYnhBdXRoU2VydmljZS5hdXRoVXNlclN0YXRlJC5waXBlKG1hcCgoeCkgPT4geCA9PT0gJ3VzZXInKSldKS5waXBlKFxuICAgIG1hcCgoW2VuYWJsZWQsIHVzZXJSZWFkeV0pID0+IGVuYWJsZWQgJiYgdXNlclJlYWR5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG4gIHJlYWRvbmx5IHRpbWVySW50ZXJ2YWwkID0gdGhpcy5fdGltZXJJbnRlcnZhbC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgZXJyb3IkID0gdGhpcy5fZXJyb3IucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBzY2hlZHVsZXJMaXN0JDogT2JzZXJ2YWJsZTxTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvbkxpc3RFbnRyeVtdPiA9IGxhenlGcm9tKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5maXJlYmFzZURldmVsb3BtZW50RnVuY3Rpb25zXG4gICAgICAuc2NoZWR1bGVkRnVuY3Rpb24oeyB0eXBlOiBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RnVuY3Rpb25UeXBlRW51bS5MSVNUIH0pXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSByZXN1bHQgYXMgU2NoZWR1bGVkRnVuY3Rpb25EZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25MaXN0UmVzdWx0O1xuICAgICAgICByZXR1cm4gbGlzdC5saXN0O1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gcmV0cmlldmUgZGV2ZWxvcG1lbnQgc2NoZWR1bGUgbGlzdCBmcm9tIHNlcnZlci4nLCBlKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KERFRkFVTFRfRklSRUJBU0VfREVWRUxPUE1FTlRfU0NIRURVTEVSX0VOQUJMRURfVE9LRU4pIHByaXZhdGUgX3N0YXJ0RW5hYmxlZDogYm9vbGVhbiwgcmVhZG9ubHkgZGJ4QXV0aFNlcnZpY2U6IERieEF1dGhTZXJ2aWNlLCByZWFkb25seSBmaXJlYmFzZURldmVsb3BtZW50RnVuY3Rpb25zOiBGaXJlYmFzZURldmVsb3BtZW50RnVuY3Rpb25zKSB7fVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMucnVubmluZyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXBXaGlsZVRydWUoKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdEYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZSBlbmFibGVkLicpO1xuICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLl90aW1lckludGVydmFsLCB0aGlzLnNjaGVkdWxlckxpc3QkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3RpbWVySW50ZXJ2YWwsIHNjaGVkdWxlckxpc3RdKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGV4ZWN1dGlvbk9yZGVyOiBzdHJpbmdbXSA9IHNjaGVkdWxlckxpc3QubWFwKCh4KSA9PiB4Lm5hbWUpO1xuXG4gICAgICAgICAgICAgIHJldHVybiBpbnRlcnZhbCh0aW1lckludGVydmFsKS5waXBlKFxuICAgICAgICAgICAgICAgIGV4aGF1c3RNYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1J1bm5pbmcgc2NoZWR1bGVkIHRhc2tzIGluIG9yZGVyLi4uICcsIGV4ZWN1dGlvbk9yZGVyKTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2VVdGlsaXR5LnJ1blRhc2tzRm9yVmFsdWVzKGV4ZWN1dGlvbk9yZGVyLCAodGFza05hbWUpID0+IHRoaXMucnVuU2NoZWR1bGVkRnVuY3Rpb24odGFza05hbWUpLCB7IHNlcXVlbnRpYWw6IHRydWUsIHJldHJpZXNBbGxvd2VkOiAwLCByZXRyeVdhaXQ6IDAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZhaWxlZCBydW5uaW5nIHNjaGVkdWxlZCB0YXNrOiAnLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lcnJvci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU3VjY2Vzc2Z1bGx5IGZpbmlzaGVkIHJ1bm5pbmcgYWxsIHNjaGVkdWxlZCB0YXNrcy4nKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXJyb3IubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHJ1blNjaGVkdWxlZEZ1bmN0aW9uKHRhc2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5maXJlYmFzZURldmVsb3BtZW50RnVuY3Rpb25zLnNjaGVkdWxlZEZ1bmN0aW9uKHtcbiAgICAgIHJ1bjogdGFza05hbWUsXG4gICAgICB0eXBlOiBTY2hlZHVsZWRGdW5jdGlvbkRldmVsb3BtZW50RnVuY3Rpb25UeXBlRW51bS5SVU5cbiAgICB9KTtcbiAgfVxuXG4gIHNldFRpbWVyKHRpbWVySW50ZXJ2YWw6IG51bWJlcikge1xuICAgIHRoaXMuX3RpbWVySW50ZXJ2YWwubmV4dCh0aW1lckludGVydmFsKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,4 @@
1
+ export * from './analytics';
1
2
  export * from './auth';
2
3
  export * from './development';
3
4
  export * from './firebase';
@@ -7,4 +8,4 @@ export * from './model';
7
8
  export * from './router';
8
9
  export * from './storage';
9
10
  export * from './module';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RldmVsb3BtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2RldmVsb3BtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZSc7XG4iXX0=
@@ -1,9 +1,16 @@
1
- import { urlWithoutParameters, AUTH_ADMIN_ROLE, cachedGetter, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, PromiseUtility, forEachKeyValue, readableError, isMaybeSo, firstValue } from '@dereekb/util';
2
1
  import * as i0 from '@angular/core';
3
- import { InjectionToken, Injectable, Inject, Optional, Component, Input, Directive, EventEmitter, Output, NgModule, Injector, ViewChild, HostListener, forwardRef, Host } from '@angular/core';
2
+ import { Injectable, Optional, InjectionToken, Inject, Component, Input, Directive, EventEmitter, Output, NgModule, Injector, ViewChild, HostListener, forwardRef, Host } from '@angular/core';
3
+ import { switchMap, of, shareReplay, map, distinctUntilChanged, catchError, firstValueFrom, BehaviorSubject, combineLatest, from, first, tap, interval, exhaustMap, filter, take, startWith, EMPTY, Subject, throttleTime, NEVER } from 'rxjs';
4
+ import { __awaiter } from 'tslib';
5
+ import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, switchMapWhileTrue, loadingStateFromObs, tapLog, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs, useAsObservable, successResult, beginLoading, errorResult, cleanup, mapLoadingState } from '@dereekb/rxjs';
6
+ import * as i2$2 from '@dereekb/dbx-core';
7
+ import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractIfDirective, AbstractSubscriptionDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
8
+ import * as i1 from '@angular/fire/auth';
9
+ import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
10
+ import { AUTH_ADMIN_ROLE, cachedGetter, urlWithoutParameters, addToSet, removeFromSet, filterMaybeValues, mapIterable, asArray, excludeValuesFromArray, containsStringAnyCase, addToSetCopy, iterableToArray, PromiseUtility, forEachKeyValue, readableError, isMaybeSo, firstValue } from '@dereekb/util';
11
+ import { sendPasswordResetEmail } from 'firebase/auth';
4
12
  import { getToken, initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
5
- import { switchMap, from, first, map, of, shareReplay, distinctUntilChanged, catchError, firstValueFrom, BehaviorSubject, combineLatest, tap, interval, exhaustMap, filter, take, startWith, EMPTY, Subject, throttleTime, NEVER } from 'rxjs';
6
- import * as i1 from '@angular/fire/app-check';
13
+ import * as i1$1 from '@angular/fire/app-check';
7
14
  import { provideAppCheck } from '@angular/fire/app-check';
8
15
  import * as i3 from '@angular/material/button';
9
16
  import { MatButtonModule } from '@angular/material/button';
@@ -11,15 +18,8 @@ import * as i2$1 from '@angular/material/icon';
11
18
  import { MatIconModule } from '@angular/material/icon';
12
19
  import * as i2 from '@angular/common';
13
20
  import { CommonModule } from '@angular/common';
14
- import * as i2$2 from '@dereekb/dbx-core';
15
- import { loggedInObsFromIsLoggedIn, loggedOutObsFromIsLoggedIn, authUserIdentifier, DbxInjectionContext, AbstractForwardDbxInjectionContextDirective, DBX_INJECTION_COMPONENT_DATA, DbxInjectionComponentModule, DbxAuthService, AbstractIfDirective, AbstractSubscriptionDirective, DbxRouteParamReaderInstance, DbxRouteParamDefaultRedirectInstance, LockSetComponentStore } from '@dereekb/dbx-core';
16
21
  import * as i1$2 from '@dereekb/dbx-web';
17
22
  import { DbxRouterAnchorModule, DbxReadableErrorModule, DbxActionModule, DbxButtonModule, AbstractDbxSelectionListWrapperDirective, provideDbxListViewWrapper, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, provideDbxListView, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, AbstractDbxValueListViewItemComponent, DBX_VALUE_LIST_VIEW_ITEM, TwoColumnsContextStore, AbstractPopupDirective, DbxWidgetModule, DbxTextModule, DbxBlockLayoutModule, DbxTwoColumnLayoutModule, DbxPopupInteractionModule, DbxListLayoutModule } from '@dereekb/dbx-web';
18
- import { __awaiter } from 'tslib';
19
- import { asObservable, timeoutStartWith, filterMaybe, isNot, SubscriptionObject, lazyFrom, tapLog, switchMapWhileTrue, loadingStateFromObs, cleanupDestroyable, accumulatorFlattenPageListLoadingState, useFirst, pageLoadingStateFromObs, useAsObservable, successResult, beginLoading, errorResult, cleanup, mapLoadingState } from '@dereekb/rxjs';
20
- import * as i1$1 from '@angular/fire/auth';
21
- import { authState, idToken, GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider, GithubAuthProvider, signInWithPopup, createUserWithEmailAndPassword, signInWithEmailAndPassword, signInAnonymously, provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
22
- import { sendPasswordResetEmail } from 'firebase/auth';
23
23
  import * as i1$4 from '@dereekb/firebase';
24
24
  import { firebaseAuthErrorToReadableError, ScheduledFunctionDevelopmentFunctionTypeEnum, clientFirebaseFirestoreContextFactory, SystemStateFirestoreCollections, FIREBASE_DEVELOPMENT_FUNCTIONS_MAP_KEY, FirebaseDevelopmentFunctions, iterationQueryDocChangeWatcher, firebaseQuerySnapshotAccumulator, firebaseQueryItemAccumulator, firestoreModelKeysFromDocuments, firestoreModelIdsFromDocuments, documentReferencesFromDocuments, getDocumentSnapshots, getDataFromDocumentSnapshots, latestSnapshotsFromDocuments, dataFromDocumentSnapshots, loadDocumentsForKeys, loadDocumentsForDocumentReferences, loadDocumentsForIds, FirestoreAccessorStreamMode, firestoreModelIdsFromKey, firestoreModelKeyPartPairs, firestoreModelKeyPairObject, documentDataWithIdAndKey, clientFirebaseStorageContextFactory } from '@dereekb/firebase';
25
25
  import * as i1$3 from '@dereekb/dbx-form';
@@ -37,94 +37,6 @@ import { provideFirestore, getFirestore, connectFirestoreEmulator, enableIndexed
37
37
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
38
38
  import * as i2$3 from '@angular/material/snack-bar';
39
39
 
40
- /**
41
- * Enables debug token generation for AppCheck by setting FIREBASE_APPCHECK_DEBUG_TOKEN in the browser's self/window.
42
- *
43
- * https://firebase.google.com/docs/app-check/web/debug-provider
44
- *
45
- * @param enable
46
- */
47
- function enableAppCheckDebugTokenGeneration(enable = true) {
48
- self.FIREBASE_APPCHECK_DEBUG_TOKEN = enable;
49
- }
50
-
51
- const DBX_FIREBASE_OPTIONS_TOKEN = new InjectionToken('DbxFirebaseOptions');
52
-
53
- /**
54
- * HTTP Interceptor that sets the X-Firebase-AppCheck for any requests to the routes configured in DbxFirebaseOptions.
55
- */
56
- class DbxFirebaseAppCheckHttpInterceptor {
57
- constructor(dbxFirebaseOptions, appCheck) {
58
- var _a, _b;
59
- this.dbxFirebaseOptions = dbxFirebaseOptions;
60
- this.appCheck = appCheck;
61
- let routes = [];
62
- if (appCheck != null) {
63
- routes = ((_b = (_a = this.dbxFirebaseOptions.appCheck) === null || _a === void 0 ? void 0 : _a.appCheckRoutes) !== null && _b !== void 0 ? _b : ['/api/*']).map((route) => {
64
- const wildcardIndex = route.indexOf('*');
65
- const isWildcard = wildcardIndex === route.length - 1;
66
- const match = isWildcard ? route.substring(0, wildcardIndex) : route;
67
- return {
68
- isWildcard,
69
- match
70
- };
71
- });
72
- }
73
- this._appCheckRoutes = routes;
74
- this._isEnabled = routes.length > 0;
75
- }
76
- intercept(req, next) {
77
- let obs;
78
- if (this._isEnabled) {
79
- obs = this.matchesAnyRoute(req.url).pipe(switchMap((isMatch) => {
80
- let nextEvent;
81
- if (isMatch) {
82
- nextEvent = from(getToken(this.appCheck).then((appCheckTokenResponse) => {
83
- const token = appCheckTokenResponse.token;
84
- let nextRequest = req;
85
- if (token) {
86
- nextRequest = req.clone({
87
- headers: req.headers.set('X-Firebase-AppCheck', token)
88
- });
89
- }
90
- return nextRequest;
91
- })).pipe(switchMap((nextRequest) => next.handle(nextRequest)));
92
- }
93
- else {
94
- nextEvent = next.handle(req);
95
- }
96
- return nextEvent;
97
- }));
98
- }
99
- else {
100
- obs = next.handle(req);
101
- }
102
- return obs;
103
- }
104
- matchesAnyRoute(inputUrl) {
105
- const url = urlWithoutParameters(inputUrl);
106
- function isEnabledRouteMatch(enabledRoute) {
107
- if (enabledRoute.isWildcard) {
108
- return url.startsWith(enabledRoute.match);
109
- }
110
- else {
111
- return url === enabledRoute.match;
112
- }
113
- }
114
- return from(this._appCheckRoutes).pipe(first((route) => isEnabledRouteMatch(route), false), map((x) => Boolean(x)));
115
- }
116
- }
117
- DbxFirebaseAppCheckHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, deps: [{ token: DBX_FIREBASE_OPTIONS_TOKEN }, { token: i1.AppCheck }], target: i0.ɵɵFactoryTarget.Injectable });
118
- DbxFirebaseAppCheckHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor });
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, decorators: [{
120
- type: Injectable
121
- }], ctorParameters: function () {
122
- return [{ type: undefined, decorators: [{
123
- type: Inject,
124
- args: [DBX_FIREBASE_OPTIONS_TOKEN]
125
- }] }, { type: i1.AppCheck }];
126
- } });
127
-
128
40
  function authUserInfoFromAuthUser(user) {
129
41
  return {
130
42
  displayName: user === null || user === void 0 ? void 0 : user.displayName,
@@ -323,12 +235,12 @@ class DbxFirebaseAuthService {
323
235
  return this.firebaseAuth.signOut();
324
236
  }
325
237
  }
326
- DbxFirebaseAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService, deps: [{ token: i1$1.Auth }, { token: DbxFirebaseAuthServiceDelegate, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
238
+ DbxFirebaseAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService, deps: [{ token: i1.Auth }, { token: DbxFirebaseAuthServiceDelegate, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
327
239
  DbxFirebaseAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService });
328
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAuthService, decorators: [{
329
241
  type: Injectable
330
242
  }], ctorParameters: function () {
331
- return [{ type: i1$1.Auth }, { type: DbxFirebaseAuthServiceDelegate, decorators: [{
243
+ return [{ type: i1.Auth }, { type: DbxFirebaseAuthServiceDelegate, decorators: [{
332
244
  type: Optional
333
245
  }] }];
334
246
  } });
@@ -361,6 +273,140 @@ class DbxFirebaseAuthContextInfo {
361
273
  }
362
274
  }
363
275
 
276
+ function readDbxAnalyticsUserPropertiesFromAuthUserInfo(user) {
277
+ var _a, _b;
278
+ const properties = {
279
+ name: (_a = user.displayName) !== null && _a !== void 0 ? _a : '',
280
+ email: (_b = user.email) !== null && _b !== void 0 ? _b : ''
281
+ };
282
+ return properties;
283
+ }
284
+ const DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY = (authUserInfo) => of(readDbxAnalyticsUserPropertiesFromAuthUserInfo(authUserInfo));
285
+ /**
286
+ * DbxAnalyticsUserSource implementation that uses the DbxFirebaseAuthService.
287
+ */
288
+ class DbxFirebaseAnalyticsUserSource {
289
+ constructor(dbxFirebaseAuthService) {
290
+ this.dbxFirebaseAuthService = dbxFirebaseAuthService;
291
+ this._userPropertiesFactory = new BehaviorSubject(DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY);
292
+ this.analyticsUser$ = combineLatest([this._userPropertiesFactory, this.dbxFirebaseAuthService.currentAuthUserInfo$]).pipe(switchMap(([userPropertiesFactory, x]) => {
293
+ let analyticsUser;
294
+ if (x != null) {
295
+ analyticsUser = userPropertiesFactory(x).pipe(map((properties) => ({
296
+ user: x.uid,
297
+ properties
298
+ })));
299
+ }
300
+ else {
301
+ analyticsUser = of(null);
302
+ }
303
+ return analyticsUser;
304
+ }), shareReplay(1));
305
+ }
306
+ get userPropertiesFactory() {
307
+ return this._userPropertiesFactory.value;
308
+ }
309
+ set userPropertiesFactory(userPropertiesFactory) {
310
+ this._userPropertiesFactory.next(userPropertiesFactory);
311
+ }
312
+ }
313
+ DbxFirebaseAnalyticsUserSource.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, deps: [{ token: DbxFirebaseAuthService }], target: i0.ɵɵFactoryTarget.Injectable });
314
+ DbxFirebaseAnalyticsUserSource.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, providedIn: 'root' });
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAnalyticsUserSource, decorators: [{
316
+ type: Injectable,
317
+ args: [{
318
+ providedIn: 'root'
319
+ }]
320
+ }], ctorParameters: function () { return [{ type: DbxFirebaseAuthService }]; } });
321
+
322
+ /**
323
+ * Enables debug token generation for AppCheck by setting FIREBASE_APPCHECK_DEBUG_TOKEN in the browser's self/window.
324
+ *
325
+ * https://firebase.google.com/docs/app-check/web/debug-provider
326
+ *
327
+ * @param enable
328
+ */
329
+ function enableAppCheckDebugTokenGeneration(enable = true) {
330
+ self.FIREBASE_APPCHECK_DEBUG_TOKEN = enable;
331
+ }
332
+
333
+ const DBX_FIREBASE_OPTIONS_TOKEN = new InjectionToken('DbxFirebaseOptions');
334
+
335
+ /**
336
+ * HTTP Interceptor that sets the X-Firebase-AppCheck for any requests to the routes configured in DbxFirebaseOptions.
337
+ */
338
+ class DbxFirebaseAppCheckHttpInterceptor {
339
+ constructor(dbxFirebaseOptions, appCheck) {
340
+ var _a, _b;
341
+ this.dbxFirebaseOptions = dbxFirebaseOptions;
342
+ this.appCheck = appCheck;
343
+ let routes = [];
344
+ if (appCheck != null) {
345
+ routes = ((_b = (_a = this.dbxFirebaseOptions.appCheck) === null || _a === void 0 ? void 0 : _a.appCheckRoutes) !== null && _b !== void 0 ? _b : ['/api/*']).map((route) => {
346
+ const wildcardIndex = route.indexOf('*');
347
+ const isWildcard = wildcardIndex === route.length - 1;
348
+ const match = isWildcard ? route.substring(0, wildcardIndex) : route;
349
+ return {
350
+ isWildcard,
351
+ match
352
+ };
353
+ });
354
+ }
355
+ this._appCheckRoutes = routes;
356
+ this._isEnabled = routes.length > 0;
357
+ }
358
+ intercept(req, next) {
359
+ let obs;
360
+ if (this._isEnabled) {
361
+ obs = this.matchesAnyRoute(req.url).pipe(switchMap((isMatch) => {
362
+ let nextEvent;
363
+ if (isMatch) {
364
+ nextEvent = from(getToken(this.appCheck).then((appCheckTokenResponse) => {
365
+ const token = appCheckTokenResponse.token;
366
+ let nextRequest = req;
367
+ if (token) {
368
+ nextRequest = req.clone({
369
+ headers: req.headers.set('X-Firebase-AppCheck', token)
370
+ });
371
+ }
372
+ return nextRequest;
373
+ })).pipe(switchMap((nextRequest) => next.handle(nextRequest)));
374
+ }
375
+ else {
376
+ nextEvent = next.handle(req);
377
+ }
378
+ return nextEvent;
379
+ }));
380
+ }
381
+ else {
382
+ obs = next.handle(req);
383
+ }
384
+ return obs;
385
+ }
386
+ matchesAnyRoute(inputUrl) {
387
+ const url = urlWithoutParameters(inputUrl);
388
+ function isEnabledRouteMatch(enabledRoute) {
389
+ if (enabledRoute.isWildcard) {
390
+ return url.startsWith(enabledRoute.match);
391
+ }
392
+ else {
393
+ return url === enabledRoute.match;
394
+ }
395
+ }
396
+ return from(this._appCheckRoutes).pipe(first((route) => isEnabledRouteMatch(route), false), map((x) => Boolean(x)));
397
+ }
398
+ }
399
+ DbxFirebaseAppCheckHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, deps: [{ token: DBX_FIREBASE_OPTIONS_TOKEN }, { token: i1$1.AppCheck }], target: i0.ɵɵFactoryTarget.Injectable });
400
+ DbxFirebaseAppCheckHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor });
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseAppCheckHttpInterceptor, decorators: [{
402
+ type: Injectable
403
+ }], ctorParameters: function () {
404
+ return [{ type: undefined, decorators: [{
405
+ type: Inject,
406
+ args: [DBX_FIREBASE_OPTIONS_TOKEN]
407
+ }] }, { type: i1$1.AppCheck }];
408
+ } });
409
+
364
410
  class DbxFirebaseLoginTermsConfig {
365
411
  }
366
412
 
@@ -1573,7 +1619,8 @@ class DbxFirebaseDevelopmentSchedulerService {
1573
1619
  }
1574
1620
  init() {
1575
1621
  this._sub.subscription = this.running$
1576
- .pipe(tapLog('DbxFirebaseDevelopmentSchedulerService enabled state:'), switchMapWhileTrue(() => {
1622
+ .pipe(switchMapWhileTrue(() => {
1623
+ console.log('DbxFirebaseDevelopmentSchedulerService enabled.');
1577
1624
  return combineLatest([this._timerInterval, this.schedulerList$]).pipe(switchMap(([timerInterval, schedulerList]) => {
1578
1625
  const executionOrder = schedulerList.map((x) => x.name);
1579
1626
  return interval(timerInterval).pipe(exhaustMap(() => {
@@ -1773,7 +1820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
1773
1820
  class DbxFirebaseDefaultAppCheckProviderModule {
1774
1821
  }
1775
1822
  DbxFirebaseDefaultAppCheckProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1776
- DbxFirebaseDefaultAppCheckProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, imports: [i1.AppCheckModule] });
1823
+ DbxFirebaseDefaultAppCheckProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, imports: [i1$1.AppCheckModule] });
1777
1824
  DbxFirebaseDefaultAppCheckProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, providers: [
1778
1825
  {
1779
1826
  provide: HTTP_INTERCEPTORS,
@@ -1854,7 +1901,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
1854
1901
  class DbxFirebaseDefaultAuthProviderModule {
1855
1902
  }
1856
1903
  DbxFirebaseDefaultAuthProviderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1857
- DbxFirebaseDefaultAuthProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [i1$1.AuthModule] });
1904
+ DbxFirebaseDefaultAuthProviderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [i1.AuthModule] });
1858
1905
  DbxFirebaseDefaultAuthProviderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [provideAuth((injector) => {
1859
1906
  const firebaseApp = injector.get(FirebaseApp);
1860
1907
  const auth = getAuth(firebaseApp);
@@ -3835,5 +3882,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
3835
3882
  * Generated bundle index. Do not edit.
3836
3883
  */
3837
3884
 
3838
- export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideSystemStateFirestoreCollections, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
3885
+ export { AbstractConfiguredDbxFirebaseLoginButtonDirective, AbstractDbxFirebaseCollectionStore, AbstractDbxFirebaseCollectionWithParentStore, AbstractDbxFirebaseDocumentStore, AbstractDbxFirebaseDocumentWithParentStore, AbstractSingleItemDbxFirebaseDocument, AbstractSystemStateDocumentStoreAccessor, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_ID_PARAM_KEY, DBX_FIREBASE_ID_ROUTER_PARAM_DEFAULT_USE_PARAM_VALUE, DBX_FIREBASE_MODEL_DOES_NOT_EXIST_ERROR, DBX_FIREBASE_OPTIONS_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_CONFIG_TOKEN, DBX_FIREBASE_STORAGE_CONTEXT_TOKEN, DBX_FIRESTORE_CONTEXT_TOKEN, DEFAULT_CONFIGURED_DBX_FIREBASE_LOGIN_BUTTON_TEMPLATE, DEFAULT_DBX_FIREBASE_ANALYTICS_USER_PROPERTIES_FACTORY, DEFAULT_DBX_FIREBASE_AUTH_SERVICE_DELEGATE, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG, DEFAULT_FIREBASE_AUTH_LOGIN_PASSWORD_CONFIG_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_PROVIDERS_TOKEN, DEFAULT_FIREBASE_AUTH_LOGIN_TERMS_COMPONENT_CLASS_TOKEN, DEFAULT_FIREBASE_COLLECTION_CHANGE_TRIGGER_FUNCTION, DEFAULT_FIREBASE_DEVELOPMENT_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_POPUP_KEY, DEFAULT_FIREBASE_DEVELOPMENT_SCHEDULER_ENABLED_TOKEN, DEFAULT_FIREBASE_DEVELOPMENT_WIDGET_PROVIDERS_TOKEN, DEFAULT_FIREBASE_LOGIN_METHOD_CATEGORY, DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY, DbxFirebaseAnalyticsUserSource, DbxFirebaseAppCheckHttpInterceptor, DbxFirebaseAuthContextInfo, DbxFirebaseAuthLoginService, DbxFirebaseAuthModule, DbxFirebaseAuthService, DbxFirebaseAuthServiceDelegate, DbxFirebaseCollectionChangeDirective, DbxFirebaseCollectionChangeTriggerInstance, DbxFirebaseCollectionChangeWatcherInstance, DbxFirebaseCollectionHasChangeDirective, DbxFirebaseCollectionListDirective, DbxFirebaseCollectionLoaderInstance, DbxFirebaseCollectionStoreDirective, DbxFirebaseCollectionWithParentStoreDirective, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultFirebaseProvidersModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultFunctionsProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDevelopmentDirective, DbxFirebaseDevelopmentModule, DbxFirebaseDevelopmentModuleRootConfig, DbxFirebaseDevelopmentPopupComponent, DbxFirebaseDevelopmentPopupContentComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxFirebaseDevelopmentSchedulerListComponent, DbxFirebaseDevelopmentSchedulerListViewComponent, DbxFirebaseDevelopmentSchedulerListViewItemComponent, DbxFirebaseDevelopmentSchedulerService, DbxFirebaseDevelopmentSchedulerWidgetComponent, DbxFirebaseDevelopmentService, DbxFirebaseDevelopmentWidgetService, DbxFirebaseDocumentAuthIdDirective, DbxFirebaseDocumentLoaderInstance, DbxFirebaseDocumentStoreDirective, DbxFirebaseDocumentStoreRouteIdDirective, DbxFirebaseEmailFormComponent, DbxFirebaseEmailRecoveryFormComponent, DbxFirebaseEmulatorModule, DbxFirebaseEmulatorService, DbxFirebaseFirestoreCollectionModule, DbxFirebaseFunctionsModule, DbxFirebaseIdRouteParamRedirectInstance, DbxFirebaseInContextFirebaseModelServiceInstance, DbxFirebaseLoginAnonymousComponent, DbxFirebaseLoginAppleComponent, DbxFirebaseLoginButtonComponent, DbxFirebaseLoginButtonContainerComponent, DbxFirebaseLoginComponent, DbxFirebaseLoginContext, DbxFirebaseLoginContextBackButtonComponent, DbxFirebaseLoginContextDirective, DbxFirebaseLoginEmailComponent, DbxFirebaseLoginEmailContentComponent, DbxFirebaseLoginFacebookComponent, DbxFirebaseLoginGitHubComponent, DbxFirebaseLoginGoogleComponent, DbxFirebaseLoginListComponent, DbxFirebaseLoginMicrosoftComponent, DbxFirebaseLoginModule, DbxFirebaseLoginModuleRootConfig, DbxFirebaseLoginTermsComponent, DbxFirebaseLoginTermsSimpleComponent, DbxFirebaseLoginTwitterComponent, DbxFirebaseModelModule, DbxFirebaseModelStoreModule, DbxFirebaseModule, DbxFirebaseParsedEmulatorsConfig, DbxFirebaseRegisterComponent, DbxFirebaseRegisterEmailComponent, DbxFirebaseStorageModule, DbxFirebaseStorageService, DbxFirebaseSystemStateCollectionStoreDirective, DbxFirebaseSystemStateDocumentStoreDirective, DbxFirestoreContextService, DbxLimitedFirebaseDocumentLoaderInstance, OAUTH_FIREBASE_LOGIN_METHOD_CATEGORY, SystemStateCollectionStore, SystemStateDocumentStore, authRolesObsWithClaimsService, authUserInfoFromAuthUser, authUserStateFromFirebaseAuthServiceFunction, dbxFirebaseCollectionChangeTrigger, dbxFirebaseCollectionChangeTriggerForStore, dbxFirebaseCollectionChangeTriggerForWatcher, dbxFirebaseCollectionChangeWatcher, dbxFirebaseCollectionLoaderInstance, dbxFirebaseCollectionLoaderInstanceWithCollection, dbxFirebaseDocumentLoaderInstance, dbxFirebaseDocumentLoaderInstanceWithAccessor, dbxFirebaseIdRouteParamRedirect, dbxFirebaseStorageModuleContextConfigFactory, dbxLimitedFirebaseDocumentLoaderInstance, dbxLimitedFirebaseDocumentLoaderInstanceWithAccessor, defaultDbxFirebaseAuthServiceDelegateWithClaimsService, defaultFirebaseAuthLoginProvidersFactory, developmentFirebaseServerSchedulerWidgetEntry, enableAppCheckDebugTokenGeneration, firebaseAuthTokenFromUser, firebaseDocumentStoreCreateFunction, firebaseDocumentStoreCrudFunction, firebaseDocumentStoreDeleteFunction, firebaseDocumentStoreReadFunction, firebaseDocumentStoreUpdateFunction, modelDoesNotExistError, provideDbxFirebaseCollectionStoreDirective, provideDbxFirebaseCollectionWithParentStoreDirective, provideDbxFirebaseDocumentStoreDirective, provideSystemStateFirestoreCollections, readDbxAnalyticsUserPropertiesFromAuthUserInfo, readValueFromIdToken, setParentStoreEffect, stateFromTokenForLoggedInUserFunction };
3839
3886
  //# sourceMappingURL=dereekb-dbx-firebase.mjs.map