@angular/fire 18.0.1-canary.831ab69 → 18.0.1-canary.a4faa10
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/analytics/firebase.d.ts +2 -2
- package/auth/rxfire.d.ts +2 -2
- package/database/rxfire.d.ts +4 -4
- package/docs/install-and-setup.md +10 -5
- package/esm2022/analytics/firebase.mjs +3 -3
- package/esm2022/auth/rxfire.mjs +3 -3
- package/esm2022/compat/firestore/collection/changes.mjs +3 -3
- package/esm2022/database/rxfire.mjs +5 -5
- package/esm2022/firestore/lite/rxfire.mjs +5 -5
- package/esm2022/firestore/rxfire.mjs +8 -8
- package/esm2022/performance/rxfire.mjs +3 -3
- package/esm2022/remote-config/rxfire.mjs +6 -6
- package/esm2022/vertexai-preview/firebase.mjs +3 -3
- package/esm2022/zones.mjs +37 -57
- package/fesm2022/angular-fire-analytics.mjs +2 -2
- package/fesm2022/angular-fire-analytics.mjs.map +1 -1
- package/fesm2022/angular-fire-auth.mjs +2 -2
- package/fesm2022/angular-fire-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-firestore.mjs +2 -2
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-database.mjs +4 -4
- package/fesm2022/angular-fire-database.mjs.map +1 -1
- package/fesm2022/angular-fire-firestore-lite.mjs +4 -4
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -1
- package/fesm2022/angular-fire-firestore.mjs +7 -7
- package/fesm2022/angular-fire-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-performance.mjs +2 -2
- package/fesm2022/angular-fire-performance.mjs.map +1 -1
- package/fesm2022/angular-fire-remote-config.mjs +5 -5
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-vertexai-preview.mjs +2 -2
- package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -1
- package/fesm2022/angular-fire.mjs +35 -55
- package/fesm2022/angular-fire.mjs.map +1 -1
- package/firestore/lite/rxfire.d.ts +4 -4
- package/firestore/rxfire.d.ts +7 -7
- package/package.json +1 -1
- package/performance/rxfire.d.ts +2 -2
- package/publish.sh +1 -0
- package/remote-config/rxfire.d.ts +5 -5
- package/vertexai-preview/firebase.d.ts +2 -2
- package/zones.d.ts +3 -2
package/esm2022/zones.mjs
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
2
|
-
import { Injectable, NgZone } from '@angular/core';
|
|
2
|
+
import { ExperimentalPendingTasks, Injectable, NgZone } from '@angular/core';
|
|
3
3
|
import { Observable, asyncScheduler, queueScheduler } from 'rxjs';
|
|
4
4
|
import { observeOn, subscribeOn, tap } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
7
|
-
function noop() {
|
|
8
|
-
}
|
|
9
6
|
/**
|
|
10
7
|
* Schedules tasks so that they are invoked inside the Zone that is passed in the constructor.
|
|
11
8
|
*/
|
|
@@ -24,9 +21,14 @@ export class ɵZoneScheduler {
|
|
|
24
21
|
// Wrap the specified work function to make sure that if nested scheduling takes place the
|
|
25
22
|
// work is executed in the correct zone
|
|
26
23
|
const workInZone = function (state) {
|
|
27
|
-
targetZone
|
|
24
|
+
if (targetZone) {
|
|
25
|
+
targetZone.runGuarded(() => {
|
|
26
|
+
work.apply(this, [state]);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
28
30
|
work.apply(this, [state]);
|
|
29
|
-
}
|
|
31
|
+
}
|
|
30
32
|
};
|
|
31
33
|
// Scheduling itself needs to be run in zone to ensure setInterval calls for async scheduling are done
|
|
32
34
|
// inside the correct zone. This scheduler needs to schedule asynchronously always to ensure that
|
|
@@ -36,41 +38,32 @@ export class ɵZoneScheduler {
|
|
|
36
38
|
}
|
|
37
39
|
class BlockUntilFirstOperator {
|
|
38
40
|
zone;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
constructor(zone) {
|
|
41
|
+
pendingTasks;
|
|
42
|
+
constructor(zone, pendingTasks) {
|
|
42
43
|
this.zone = zone;
|
|
44
|
+
this.pendingTasks = pendingTasks;
|
|
43
45
|
}
|
|
44
46
|
call(subscriber, source) {
|
|
45
|
-
const
|
|
46
|
-
// @ts-ignore
|
|
47
|
-
this.task = this.zone.run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop));
|
|
48
|
-
return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
|
|
49
|
-
}
|
|
50
|
-
unscheduleTask() {
|
|
47
|
+
const taskDone = this.zone.run(() => this.pendingTasks.add());
|
|
51
48
|
// maybe this is a race condition, invoke in a timeout
|
|
52
49
|
// hold for 10ms while I try to figure out what is going on
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.task.invoke();
|
|
56
|
-
this.task = null;
|
|
57
|
-
}
|
|
58
|
-
}, 10);
|
|
50
|
+
const unscheduleTask = () => setTimeout(taskDone, 10);
|
|
51
|
+
return source.pipe(tap({ next: unscheduleTask, complete: unscheduleTask, error: unscheduleTask })).subscribe(subscriber).add(unscheduleTask);
|
|
59
52
|
}
|
|
60
53
|
}
|
|
61
54
|
export class ɵAngularFireSchedulers {
|
|
62
55
|
ngZone;
|
|
56
|
+
pendingTasks;
|
|
63
57
|
outsideAngular;
|
|
64
58
|
insideAngular;
|
|
65
|
-
constructor(ngZone) {
|
|
59
|
+
constructor(ngZone, pendingTasks) {
|
|
66
60
|
this.ngZone = ngZone;
|
|
67
|
-
|
|
68
|
-
this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(Zone.current));
|
|
69
|
-
|
|
70
|
-
this.insideAngular = ngZone.run(() => new ɵZoneScheduler(Zone.current, asyncScheduler));
|
|
61
|
+
this.pendingTasks = pendingTasks;
|
|
62
|
+
this.outsideAngular = ngZone.runOutsideAngular(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current));
|
|
63
|
+
this.insideAngular = ngZone.run(() => new ɵZoneScheduler(typeof Zone === 'undefined' ? undefined : Zone.current, asyncScheduler));
|
|
71
64
|
globalThis.ɵAngularFireScheduler ||= this;
|
|
72
65
|
}
|
|
73
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, deps: [{ token: i0.NgZone }, { token: i0.ExperimentalPendingTasks }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
74
67
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, providedIn: 'root' });
|
|
75
68
|
}
|
|
76
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: ɵAngularFireSchedulers, decorators: [{
|
|
@@ -78,7 +71,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
78
71
|
args: [{
|
|
79
72
|
providedIn: 'root',
|
|
80
73
|
}]
|
|
81
|
-
}], ctorParameters: () => [{ type: i0.NgZone }] });
|
|
74
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ExperimentalPendingTasks }] });
|
|
82
75
|
function getSchedulers() {
|
|
83
76
|
const schedulers = globalThis.ɵAngularFireScheduler;
|
|
84
77
|
if (!schedulers) {
|
|
@@ -110,7 +103,7 @@ export function keepUnstableUntilFirst(obs$) {
|
|
|
110
103
|
*/
|
|
111
104
|
export function ɵkeepUnstableUntilFirstFactory(schedulers) {
|
|
112
105
|
return function keepUnstableUntilFirst(obs$) {
|
|
113
|
-
obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone));
|
|
106
|
+
obs$ = obs$.lift(new BlockUntilFirstOperator(schedulers.ngZone, schedulers.pendingTasks));
|
|
114
107
|
return obs$.pipe(
|
|
115
108
|
// Run the subscribe body outside of Angular (e.g. calling Firebase SDK to add a listener to a change event)
|
|
116
109
|
subscribeOn(schedulers.outsideAngular),
|
|
@@ -121,39 +114,28 @@ export function ɵkeepUnstableUntilFirstFactory(schedulers) {
|
|
|
121
114
|
);
|
|
122
115
|
};
|
|
123
116
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
// function() is needed for the arguments object
|
|
129
|
-
return function () {
|
|
130
|
-
const _arguments = arguments;
|
|
131
|
-
if (macrotask) {
|
|
132
|
-
setTimeout(() => {
|
|
133
|
-
if (macrotask.state === 'scheduled') {
|
|
134
|
-
macrotask.invoke();
|
|
135
|
-
}
|
|
136
|
-
}, 10);
|
|
117
|
+
const zoneWrapFn = (it, taskDone) => {
|
|
118
|
+
return (...args) => {
|
|
119
|
+
if (taskDone) {
|
|
120
|
+
setTimeout(taskDone, 10);
|
|
137
121
|
}
|
|
138
|
-
return run(() => it.apply(
|
|
122
|
+
return run(() => it.apply(this, args));
|
|
139
123
|
};
|
|
140
124
|
};
|
|
141
125
|
export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
142
126
|
// function() is needed for the arguments object
|
|
143
127
|
return function () {
|
|
144
|
-
|
|
145
|
-
let macrotask;
|
|
128
|
+
let taskDone;
|
|
146
129
|
const _arguments = arguments;
|
|
147
|
-
// if this is a callback function, e.g, onSnapshot, we should create a
|
|
130
|
+
// if this is a callback function, e.g, onSnapshot, we should create a pending task and complete it
|
|
148
131
|
// only once one of the callback functions is tripped.
|
|
149
132
|
for (let i = 0; i < arguments.length; i++) {
|
|
150
133
|
if (typeof _arguments[i] === 'function') {
|
|
151
134
|
if (blockUntilFirst) {
|
|
152
|
-
|
|
153
|
-
macrotask ||= run(() => Zone.current.scheduleMacroTask('firebaseZoneBlock', noop, {}, noop, noop));
|
|
135
|
+
taskDone ||= run(() => getSchedulers().pendingTasks.add());
|
|
154
136
|
}
|
|
155
137
|
// TODO create a microtask to track callback functions
|
|
156
|
-
_arguments[i] = zoneWrapFn(_arguments[i],
|
|
138
|
+
_arguments[i] = zoneWrapFn(_arguments[i], taskDone);
|
|
157
139
|
}
|
|
158
140
|
}
|
|
159
141
|
const ret = runOutsideAngular(() => it.apply(this, _arguments));
|
|
@@ -171,17 +153,15 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
171
153
|
}
|
|
172
154
|
else if (ret instanceof Promise) {
|
|
173
155
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
174
|
-
return run(() => new Promise((resolve, reject) =>
|
|
156
|
+
return run(() => new Promise((resolve, reject) => {
|
|
157
|
+
ret.then((it) => run(() => resolve(it)), (reason) => run(() => reject(reason)));
|
|
158
|
+
}));
|
|
175
159
|
}
|
|
176
|
-
else if (typeof ret === 'function' &&
|
|
160
|
+
else if (typeof ret === 'function' && taskDone) {
|
|
177
161
|
// Handle unsubscribe
|
|
178
162
|
// function() is needed for the arguments object
|
|
179
163
|
return function () {
|
|
180
|
-
setTimeout(
|
|
181
|
-
if (macrotask && macrotask.state === 'scheduled') {
|
|
182
|
-
macrotask.invoke();
|
|
183
|
-
}
|
|
184
|
-
}, 10);
|
|
164
|
+
setTimeout(taskDone, 10);
|
|
185
165
|
return ret.apply(this, arguments);
|
|
186
166
|
};
|
|
187
167
|
}
|
|
@@ -191,4 +171,4 @@ export const ɵzoneWrap = (it, blockUntilFirst) => {
|
|
|
191
171
|
}
|
|
192
172
|
};
|
|
193
173
|
};
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxVQUFVLEVBT1YsY0FBYyxFQUNkLGNBQWMsRUFDZixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU3RCxnRUFBZ0U7QUFDaEUsU0FBUyxJQUFJO0FBQ2IsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDTDtJQUFtQjtJQUF2QyxZQUFvQixJQUFTLEVBQVUsV0FBZ0IsY0FBYztRQUFqRCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7SUFDckUsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUF1RCxFQUFFLEtBQWMsRUFBRSxLQUFXO1FBQzNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsMEZBQTBGO1FBQzFGLHVDQUF1QztRQUN2QyxNQUFNLFVBQVUsR0FBRyxVQUFxQyxLQUFVO1lBQ2hFLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixzR0FBc0c7UUFDdEcsaUdBQWlHO1FBQ2pHLCtHQUErRztRQUMvRyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxL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RTtvQkFDZCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO3dCQUNqRCxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3JCLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNQLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixvRkFBb0Y7WUFDcEYsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQVEsQ0FBQztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudCAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBPcGVyYXRvcixcbiAgU2NoZWR1bGVyQWN0aW9uLFxuICBTY2hlZHVsZXJMaWtlLFxuICBTdWJzY3JpYmVyLFxuICBTdWJzY3JpcHRpb24sXG4gIFRlYXJkb3duTG9naWMsXG4gIGFzeW5jU2NoZWR1bGVyLFxuICBxdWV1ZVNjaGVkdWxlclxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9ic2VydmVPbiwgc3Vic2NyaWJlT24sIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuZnVuY3Rpb24gbm9vcCgpIHtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZXMgdGFza3Mgc28gdGhhdCB0aGV5IGFyZSBpbnZva2VkIGluc2lkZSB0aGUgWm9uZSB0aGF0IGlzIHBhc3NlZCBpbiB0aGUgY29uc3RydWN0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyDJtVpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBhbnksIHByaXZhdGUgZGVsZWdhdGU6IGFueSA9IHF1ZXVlU2NoZWR1bGVyKSB7XG4gIH1cblxuICBub3coKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZWdhdGUubm93KCk7XG4gIH1cblxuICBzY2hlZHVsZSh3b3JrOiAodGhpczogU2NoZWR1bGVyQWN0aW9uPGFueT4sIHN0YXRlPzogYW55KSA9PiB2b2lkLCBkZWxheT86IG51bWJlciwgc3RhdGU/OiBhbnkpOiBTdWJzY3JpcHRpb24ge1xuICAgIGNvbnN0IHRhcmdldFpvbmUgPSB0aGlzLnpvbmU7XG4gICAgLy8gV3JhcCB0aGUgc3BlY2lmaWVkIHdvcmsgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgaWYgbmVzdGVkIHNjaGVkdWxpbmcgdGFrZXMgcGxhY2UgdGhlXG4gICAgLy8gd29yayBpcyBleGVjdXRlZCBpbiB0aGUgY29ycmVjdCB6b25lXG4gICAgY29uc3Qgd29ya0luWm9uZSA9IGZ1bmN0aW9uKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZTogYW55KSB7XG4gICAgICB0YXJnZXRab25lLnJ1bkd1YXJkZWQoKCkgPT4ge1xuICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICAvLyBAdHMtaWdub3JlXG4gIHByaXZhdGUgdGFzazogTWFjcm9UYXNrIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBhbnkpIHtcbiAgfVxuXG4gIGNhbGwoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPiwgc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogVGVhcmRvd25Mb2dpYyB7XG4gICAgY29uc3QgdW5zY2hlZHVsZVRhc2sgPSB0aGlzLnVuc2NoZWR1bGVUYXNrLmJpbmQodGhpcyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMudGFzayA9IHRoaXMuem9uZS5ydW4oKCkgPT4gWm9uZS5jdXJyZW50LnNjaGVkdWxlTWFjcm9UYXNrKCdmaXJlYmFzZVpvbmVCbG9jaycsIG5vb3AsIHt9LCBub29wLCBub29wKSk7XG5cbiAgICByZXR1cm4gc291cmNlLnBpcGUoXG4gICAgICB0YXAoeyBuZXh0OiB1bnNjaGVkdWxlVGFzaywgY29tcGxldGU6IHVuc2NoZWR1bGVUYXNrLCBlcnJvcjogdW5zY2hlZHVsZVRhc2sgfSlcbiAgICApLnN1YnNjcmliZShzdWJzY3JpYmVyKS5hZGQodW5zY2hlZHVsZVRhc2spO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnNjaGVkdWxlVGFzaygpIHtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudGFzayAhPSBudWxsICYmIHRoaXMudGFzay5zdGF0ZSA9PT0gJ3NjaGVkdWxlZCcpIHtcbiAgICAgICAgdGhpcy50YXNrLmludm9rZSgpO1xuICAgICAgICB0aGlzLnRhc2sgPSBudWxsO1xuICAgICAgfVxuICAgIH0sIDEwKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMge1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0c2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IGluc2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5vdXRzaWRlQW5ndWxhciA9IG5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFpvbmUuY3VycmVudCkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLmluc2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuKCgpID0+IG5ldyDJtVpvbmVTY2hlZHVsZXIoWm9uZS5jdXJyZW50LCBhc3luY1NjaGVkdWxlcikpO1xuICAgIGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciB8fD0gdGhpcztcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTY2hlZHVsZXJzKCkge1xuICBjb25zdCBzY2hlZHVsZXJzID0gZ2xvYmFsVGhpcy7JtUFuZ3VsYXJGaXJlU2NoZWR1bGVyIGFzIMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzfHVuZGVmaW5lZDtcbiAgaWYgKCFzY2hlZHVsZXJzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuYEVpdGhlciBBbmd1bGFyRmlyZU1vZHVsZSBoYXMgbm90IGJlZW4gcHJvdmlkZWQgaW4geW91ciBBcHBNb2R1bGUgKHRoaXMgY2FuIGJlIGRvbmUgbWFudWFsbHkgb3IgaW1wbGljdGx5IHVzaW5nXG5wcm92aWRlRmlyZWJhc2VBcHApIG9yIHlvdSdyZSBjYWxsaW5nIGFuIEFuZ3VsYXJGaXJlIG1ldGhvZCBvdXRzaWRlIG9mIGFuIE5nTW9kdWxlICh3aGljaCBpcyBub3Qgc3VwcG9ydGVkKS5gKTtcbiAgfVxuICByZXR1cm4gc2NoZWR1bGVycztcbn1cblxuZnVuY3Rpb24gcnVuT3V0c2lkZUFuZ3VsYXI8VD4oZm46ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICByZXR1cm4gZ2V0U2NoZWR1bGVycygpLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBmbigpKTtcbn1cblxuZnVuY3Rpb24gcnVuPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuKCgpID0+IGZuKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZU91dHNpZGVBbmd1bGFyPFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIG9icyQucGlwZShvYnNlcnZlT24oZ2V0U2NoZWR1bGVycygpLm91dHNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZlSW5zaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5pbnNpZGVBbmd1bGFyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZWVwVW5zdGFibGVVbnRpbEZpcnN0PFQ+KG9icyQ6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkoZ2V0U2NoZWR1bGVycygpKShvYnMkKTtcbn1cblxuLyoqXG4gKiBPcGVyYXRvciB0byBibG9jayB0aGUgem9uZSB1bnRpbCB0aGUgZmlyc3QgdmFsdWUgaGFzIGJlZW4gZW1pdHRlZCBvciB0aGUgb2JzZXJ2YWJsZVxuICogaGFzIGNvbXBsZXRlZC9lcnJvcmVkLiBUaGlzIGlzIHVzZWQgdG8gbWFrZSBzdXJlIHRoYXQgdW5pdmVyc2FsIHdhaXRzIHVudGlsIHRoZSBmaXJzdFxuICogdmFsdWUgZnJvbSBmaXJlYmFzZSBidXQgZG9lc24ndCBibG9jayB0aGUgem9uZSBmb3JldmVyIHNpbmNlIHRoZSBmaXJlYmFzZSBzdWJzY3JpcHRpb25cbiAqIGlzIHN0aWxsIGFsaXZlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gybVrZWVwVW5zdGFibGVVbnRpbEZpcnN0RmFjdG9yeShzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycykge1xuICByZXR1cm4gZnVuY3Rpb24ga2VlcFVuc3RhYmxlVW50aWxGaXJzdDxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgb2JzJCA9IG9icyQubGlmdChcbiAgICAgIG5ldyBCbG9ja1VudGlsRmlyc3RPcGVyYXRvcihzY2hlZHVsZXJzLm5nWm9uZSlcbiAgICApO1xuXG4gICAgcmV0dXJuIG9icyQucGlwZShcbiAgICAgIC8vIFJ1biB0aGUgc3Vic2NyaWJlIGJvZHkgb3V0c2lkZSBvZiBBbmd1bGFyIChlLmcuIGNhbGxpbmcgRmlyZWJhc2UgU0RLIHRvIGFkZCBhIGxpc3RlbmVyIHRvIGEgY2hhbmdlIGV2ZW50KVxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAvLyBSdW4gb3BlcmF0b3JzIGluc2lkZSB0aGUgYW5ndWxhciB6b25lIChlLmcuIHNpZGUgZWZmZWN0cyB2aWEgdGFwKCkpXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKVxuICAgICAgLy8gSU5WRVNUSUdBVEUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvcHVsbC8yMzE1XG4gICAgICAvLyBzaGFyZSgpXG4gICAgKTtcbiAgfTtcbn1cblxuLy8gQHRzLWlnbm9yZVxuY29uc3Qgem9uZVdyYXBGbiA9IChpdDogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnksIG1hY3JvdGFzazogTWFjcm9UYXNrfHVuZGVmaW5lZCkgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgY29uc3QgX3RoaXMgPSB0aGlzO1xuICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIGNvbnN0IF9hcmd1bWVudHMgPSBhcmd1bWVudHM7XG4gICAgaWYgKG1hY3JvdGFzaykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChtYWNyb3Rhc2suc3RhdGUgPT09ICdzY2hlZHVsZWQnKSB7XG4gICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICB9XG4gICAgICB9LCAxMCk7XG4gICAgfVxuICAgIHJldHVybiBydW4oKCkgPT4gaXQuYXBwbHkoX3RoaXMsIF9hcmd1bWVudHMpKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtXpvbmVXcmFwID0gPFQ9IHVua25vd24+KGl0OiBULCBibG9ja1VudGlsRmlyc3Q6IGJvb2xlYW4pOiBUID0+IHtcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG1hY3JvdGFzazogTWFjcm9UYXNrIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IF9hcmd1bWVudHMgPSBhcmd1bWVudHM7XG4gICAgLy8gaWYgdGhpcyBpcyBhIGNhbGxiYWNrIGZ1bmN0aW9uLCBlLmcsIG9uU25hcHNob3QsIHdlIHNob3VsZCBjcmVhdGUgYSBtaWNyb3Rhc2sgYW5kIGludm9rZSBpdFxuICAgIC8vIG9ubHkgb25jZSBvbmUgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucyBpcyB0cmlwcGVkLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHlwZW9mIF9hcmd1bWVudHNbaV0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBtYWNyb3Rhc2sgfHw9IHJ1bigoKSA9PiBab25lLmN1cnJlbnQuc2NoZWR1bGVNYWNyb1Rhc2soJ2ZpcmViYXNlWm9uZUJsb2NrJywgbm9vcCwge30sIG5vb3AsIG5vb3ApKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUT0RPIGNyZWF0ZSBhIG1pY3JvdGFzayB0byB0cmFjayBjYWxsYmFjayBmdW5jdGlvbnNcbiAgICAgICAgX2FyZ3VtZW50c1tpXSA9IHpvbmVXcmFwRm4oX2FyZ3VtZW50c1tpXSwgbWFjcm90YXNrKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmV0ID0gcnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKGl0IGFzIGFueSkuYXBwbHkodGhpcywgX2FyZ3VtZW50cykpO1xuICAgIGlmICghYmxvY2tVbnRpbEZpcnN0KSB7XG4gICAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICBjb25zdCBzY2hlZHVsZXJzID0gZ2V0U2NoZWR1bGVycygpO1xuICAgICAgICByZXR1cm4gcmV0LnBpcGUoXG4gICAgICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAgICAgb2JzZXJ2ZU9uKHNjaGVkdWxlcnMuaW5zaWRlQW5ndWxhciksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChyZXQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICByZXR1cm4gcmV0LnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCkgYXMgYW55O1xuICAgIH0gZWxzZSBpZiAocmV0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzXG4gICAgICByZXR1cm4gcnVuKCgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHJldC50aGVuKGl0ID0+IHJ1bigoKSA9PiByZXNvbHZlKGl0KSksIHJlYXNvbiA9PiBydW4oKCkgPT4gcmVqZWN0KHJlYXNvbikpKSkpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJyAmJiBtYWNyb3Rhc2spIHtcbiAgICAgIC8vIEhhbmRsZSB1bnN1YnNjcmliZVxuICAgICAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmIChtYWNyb3Rhc2sgJiYgbWFjcm90YXNrLnN0YXRlID09PSAnc2NoZWR1bGVkJykge1xuICAgICAgICAgICAgbWFjcm90YXNrLmludm9rZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgICAgICByZXR1cm4gcmV0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUT0RPIGhvdyBkbyB3ZSBoYW5kbGUgc3RvcmFnZSB1cGxvYWRzIGluIFpvbmU/IGFuZCBvdGhlciBzdHVmZiB3aXRoIGNhbmNlbCgpIGV0Yz9cbiAgICAgIHJldHVybiBydW4oKCkgPT4gcmV0KTtcbiAgICB9XG4gIH0gYXMgYW55O1xufTtcbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvem9uZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3RELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsVUFBVSxFQU9WLGNBQWMsRUFDZCxjQUFjLEVBQ2YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJN0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUNMO0lBQW1CO0lBQXZDLFlBQW9CLElBQVMsRUFBVSxXQUFnQixjQUFjO1FBQWpELFNBQUksR0FBSixJQUFJLENBQUs7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFzQjtJQUNyRSxDQUFDO0lBRUQsR0FBRztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQXVELEVBQUUsS0FBYyxFQUFFLEtBQVc7UUFDM0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3QiwwRkFBMEY7UUFDMUYsdUNBQXVDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLFVBQXFDLEtBQVU7WUFDaEUsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMs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aW50L2Jhbi10cy1jb21tZW50ICovXG5pbXBvcnQge1xuICBFeHBlcmltZW50YWxQZW5kaW5nVGFza3MsXG4gIEluamVjdGFibGUsXG4gIE5nWm9uZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIE9wZXJhdG9yLFxuICBTY2hlZHVsZXJBY3Rpb24sXG4gIFNjaGVkdWxlckxpa2UsXG4gIFN1YnNjcmliZXIsXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVhcmRvd25Mb2dpYyxcbiAgYXN5bmNTY2hlZHVsZXIsXG4gIHF1ZXVlU2NoZWR1bGVyXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgb2JzZXJ2ZU9uLCBzdWJzY3JpYmVPbiwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5kZWNsYXJlIGNvbnN0IFpvbmU6IHtjdXJyZW50OiB1bmtub3dufSB8IHVuZGVmaW5lZDsgXG5cbi8qKlxuICogU2NoZWR1bGVzIHRhc2tzIHNvIHRoYXQgdGhleSBhcmUgaW52b2tlZCBpbnNpZGUgdGhlIFpvbmUgdGhhdCBpcyBwYXNzZWQgaW4gdGhlIGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgY2xhc3MgybVab25lU2NoZWR1bGVyIGltcGxlbWVudHMgU2NoZWR1bGVyTGlrZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogYW55LCBwcml2YXRlIGRlbGVnYXRlOiBhbnkgPSBxdWV1ZVNjaGVkdWxlcikge1xuICB9XG5cbiAgbm93KCkge1xuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLm5vdygpO1xuICB9XG5cbiAgc2NoZWR1bGUod29yazogKHRoaXM6IFNjaGVkdWxlckFjdGlvbjxhbnk+LCBzdGF0ZT86IGFueSkgPT4gdm9pZCwgZGVsYXk/OiBudW1iZXIsIHN0YXRlPzogYW55KTogU3Vic2NyaXB0aW9uIHtcbiAgICBjb25zdCB0YXJnZXRab25lID0gdGhpcy56b25lO1xuICAgIC8vIFdyYXAgdGhlIHNwZWNpZmllZCB3b3JrIGZ1bmN0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IGlmIG5lc3RlZCBzY2hlZHVsaW5nIHRha2VzIHBsYWNlIHRoZVxuICAgIC8vIHdvcmsgaXMgZXhlY3V0ZWQgaW4gdGhlIGNvcnJlY3Qgem9uZVxuICAgIGNvbnN0IHdvcmtJblpvbmUgPSBmdW5jdGlvbih0aGlzOiBTY2hlZHVsZXJBY3Rpb248YW55Piwgc3RhdGU6IGFueSkge1xuICAgICAgaWYgKHRhcmdldFpvbmUpIHtcbiAgICAgICAgdGFyZ2V0Wm9uZS5ydW5HdWFyZGVkKCgpID0+IHtcbiAgICAgICAgICB3b3JrLmFwcGx5KHRoaXMsIFtzdGF0ZV0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdvcmsuYXBwbHkodGhpcywgW3N0YXRlXSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIFNjaGVkdWxpbmcgaXRzZWxmIG5lZWRzIHRvIGJlIHJ1biBpbiB6b25lIHRvIGVuc3VyZSBzZXRJbnRlcnZhbCBjYWxscyBmb3IgYXN5bmMgc2NoZWR1bGluZyBhcmUgZG9uZVxuICAgIC8vIGluc2lkZSB0aGUgY29ycmVjdCB6b25lLiBUaGlzIHNjaGVkdWxlciBuZWVkcyB0byBzY2hlZHVsZSBhc3luY2hyb25vdXNseSBhbHdheXMgdG8gZW5zdXJlIHRoYXRcbiAgICAvLyBmaXJlYmFzZSBlbWlzc2lvbnMgYXJlIG5ldmVyIHN5bmNocm9ub3VzLiBTcGVjaWZ5aW5nIGEgZGVsYXkgY2F1c2VzIGlzc3VlcyB3aXRoIHRoZSBxdWV1ZVNjaGVkdWxlciBkZWxlZ2F0ZS5cbiAgICByZXR1cm4gdGhpcy5kZWxlZ2F0ZS5zY2hlZHVsZSh3b3JrSW5ab25lLCBkZWxheSwgc3RhdGUpO1xuICB9XG59XG5cbmNsYXNzIEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yPFQ+IGltcGxlbWVudHMgT3BlcmF0b3I8VCwgVD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHpvbmU6IGFueSxcbiAgICBwcml2YXRlIHBlbmRpbmdUYXNrczogRXhwZXJpbWVudGFsUGVuZGluZ1Rhc2tzXG4gICkge31cblxuICBjYWxsKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4sIHNvdXJjZTogT2JzZXJ2YWJsZTxUPik6IFRlYXJkb3duTG9naWMge1xuICAgIGNvbnN0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gPSB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMucGVuZGluZ1Rhc2tzLmFkZCgpKTtcbiAgICAvLyBtYXliZSB0aGlzIGlzIGEgcmFjZSBjb25kaXRpb24sIGludm9rZSBpbiBhIHRpbWVvdXRcbiAgICAvLyBob2xkIGZvciAxMG1zIHdoaWxlIEkgdHJ5IHRvIGZpZ3VyZSBvdXQgd2hhdCBpcyBnb2luZyBvblxuICAgIGNvbnN0IHVuc2NoZWR1bGVUYXNrID0gKCkgPT4gc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgdGFwKHsgbmV4dDogdW5zY2hlZHVsZVRhc2ssIGNvbXBsZXRlOiB1bnNjaGVkdWxlVGFzaywgZXJyb3I6IHVuc2NoZWR1bGVUYXNrIH0pXG4gICAgKS5zdWJzY3JpYmUoc3Vic2NyaWJlcikuYWRkKHVuc2NoZWR1bGVUYXNrKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgybVBbmd1bGFyRmlyZVNjaGVkdWxlcnMge1xuICBwdWJsaWMgcmVhZG9ubHkgb3V0c2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcbiAgcHVibGljIHJlYWRvbmx5IGluc2lkZUFuZ3VsYXI6IMm1Wm9uZVNjaGVkdWxlcjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUsIHB1YmxpYyBwZW5kaW5nVGFza3M6IEV4cGVyaW1lbnRhbFBlbmRpbmdUYXNrcykge1xuICAgIHRoaXMub3V0c2lkZUFuZ3VsYXIgPSBuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKHR5cGVvZiBab25lID09PSAndW5kZWZpbmVkJyA/IHVuZGVmaW5lZCA6IFpvbmUuY3VycmVudClcbiAgICApO1xuICAgIHRoaXMuaW5zaWRlQW5ndWxhciA9IG5nWm9uZS5ydW4oXG4gICAgICAoKSA9PiBuZXcgybVab25lU2NoZWR1bGVyKFxuICAgICAgICB0eXBlb2YgWm9uZSA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBab25lLmN1cnJlbnQsXG4gICAgICAgIGFzeW5jU2NoZWR1bGVyXG4gICAgICApXG4gICAgKTtcbiAgICBnbG9iYWxUaGlzLsm1QW5ndWxhckZpcmVTY2hlZHVsZXIgfHw9IHRoaXM7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2NoZWR1bGVycygpIHtcbiAgY29uc3Qgc2NoZWR1bGVycyA9IGdsb2JhbFRoaXMuybVBbmd1bGFyRmlyZVNjaGVkdWxlciBhcyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVyc3x1bmRlZmluZWQ7XG4gIGlmICghc2NoZWR1bGVycykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbmBFaXRoZXIgQW5ndWxhckZpcmVNb2R1bGUgaGFzIG5vdCBiZWVuIHByb3ZpZGVkIGluIHlvdXIgQXBwTW9kdWxlICh0aGlzIGNhbiBiZSBkb25lIG1hbnVhbGx5IG9yIGltcGxpY3RseSB1c2luZ1xucHJvdmlkZUZpcmViYXNlQXBwKSBvciB5b3UncmUgY2FsbGluZyBhbiBBbmd1bGFyRmlyZSBtZXRob2Qgb3V0c2lkZSBvZiBhbiBOZ01vZHVsZSAod2hpY2ggaXMgbm90IHN1cHBvcnRlZCkuYCk7XG4gIH1cbiAgcmV0dXJuIHNjaGVkdWxlcnM7XG59XG5cbmZ1bmN0aW9uIHJ1bk91dHNpZGVBbmd1bGFyPFQ+KGZuOiAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgcmV0dXJuIGdldFNjaGVkdWxlcnMoKS5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZm4oKSk7XG59XG5cbmZ1bmN0aW9uIHJ1bjxUPihmbjogKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gIHJldHVybiBnZXRTY2hlZHVsZXJzKCkubmdab25lLnJ1bigoKSA9PiBmbigpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ic2VydmVPdXRzaWRlQW5ndWxhcjxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBvYnMkLnBpcGUob2JzZXJ2ZU9uKGdldFNjaGVkdWxlcnMoKS5vdXRzaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JzZXJ2ZUluc2lkZUFuZ3VsYXI8VD4ob2JzJDogT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4ge1xuICByZXR1cm4gb2JzJC5waXBlKG9ic2VydmVPbihnZXRTY2hlZHVsZXJzKCkuaW5zaWRlQW5ndWxhcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2VlcFVuc3RhYmxlVW50aWxGaXJzdDxUPihvYnMkOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiDJtWtlZXBVbnN0YWJsZVVudGlsRmlyc3RGYWN0b3J5KGdldFNjaGVkdWxlcnMoKSkob2JzJCk7XG59XG5cbi8qKlxuICogT3BlcmF0b3IgdG8gYmxvY2sgdGhlIHpvbmUgdW50aWwgdGhlIGZpcnN0IHZhbHVlIGhhcyBiZWVuIGVtaXR0ZWQgb3IgdGhlIG9ic2VydmFibGVcbiAqIGhhcyBjb21wbGV0ZWQvZXJyb3JlZC4gVGhpcyBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGF0IHVuaXZlcnNhbCB3YWl0cyB1bnRpbCB0aGUgZmlyc3RcbiAqIHZhbHVlIGZyb20gZmlyZWJhc2UgYnV0IGRvZXNuJ3QgYmxvY2sgdGhlIHpvbmUgZm9yZXZlciBzaW5jZSB0aGUgZmlyZWJhc2Ugc3Vic2NyaXB0aW9uXG4gKiBpcyBzdGlsbCBhbGl2ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1a2VlcFVuc3RhYmxlVW50aWxGaXJzdEZhY3RvcnkoXG4gIHNjaGVkdWxlcnM6IMm1QW5ndWxhckZpcmVTY2hlZHVsZXJzXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGtlZXBVbnN0YWJsZVVudGlsRmlyc3Q8VD4oXG4gICAgb2JzJDogT2JzZXJ2YWJsZTxUPlxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBvYnMkID0gb2JzJC5saWZ0KFxuICAgICAgbmV3IEJsb2NrVW50aWxGaXJzdE9wZXJhdG9yKHNjaGVkdWxlcnMubmdab25lLCBzY2hlZHVsZXJzLnBlbmRpbmdUYXNrcylcbiAgICApO1xuXG4gICAgcmV0dXJuIG9icyQucGlwZShcbiAgICAgIC8vIFJ1biB0aGUgc3Vic2NyaWJlIGJvZHkgb3V0c2lkZSBvZiBBbmd1bGFyIChlLmcuIGNhbGxpbmcgRmlyZWJhc2UgU0RLIHRvIGFkZCBhIGxpc3RlbmVyIHRvIGEgY2hhbmdlIGV2ZW50KVxuICAgICAgc3Vic2NyaWJlT24oc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhciksXG4gICAgICAvLyBSdW4gb3BlcmF0b3JzIGluc2lkZSB0aGUgYW5ndWxhciB6b25lIChlLmcuIHNpZGUgZWZmZWN0cyB2aWEgdGFwKCkpXG4gICAgICBvYnNlcnZlT24oc2NoZWR1bGVycy5pbnNpZGVBbmd1bGFyKVxuICAgICAgLy8gSU5WRVNUSUdBVEUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhcmZpcmUvcHVsbC8yMzE1XG4gICAgICAvLyBzaGFyZSgpXG4gICAgKTtcbiAgfTtcbn1cblxuY29uc3Qgem9uZVdyYXBGbiA9IChcbiAgaXQ6ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICB0YXNrRG9uZTogVm9pZEZ1bmN0aW9uIHwgdW5kZWZpbmVkXG4pID0+IHtcbiAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICh0YXNrRG9uZSkge1xuICAgICAgc2V0VGltZW91dCh0YXNrRG9uZSwgMTApO1xuICAgIH1cbiAgICByZXR1cm4gcnVuKCgpID0+IGl0LmFwcGx5KHRoaXMsIGFyZ3MpKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCDJtXpvbmVXcmFwID0gPFQ9IHVua25vd24+KGl0OiBULCBibG9ja1VudGlsRmlyc3Q6IGJvb2xlYW4pOiBUID0+IHtcbiAgLy8gZnVuY3Rpb24oKSBpcyBuZWVkZWQgZm9yIHRoZSBhcmd1bWVudHMgb2JqZWN0XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHRhc2tEb25lOiBWb2lkRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgX2FyZ3VtZW50cyA9IGFyZ3VtZW50cztcbiAgICAvLyBpZiB0aGlzIGlzIGEgY2FsbGJhY2sgZnVuY3Rpb24sIGUuZywgb25TbmFwc2hvdCwgd2Ugc2hvdWxkIGNyZWF0ZSBhIHBlbmRpbmcgdGFzayBhbmQgY29tcGxldGUgaXRcbiAgICAvLyBvbmx5IG9uY2Ugb25lIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgaXMgdHJpcHBlZC5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHR5cGVvZiBfYXJndW1lbnRzW2ldID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGlmIChibG9ja1VudGlsRmlyc3QpIHtcbiAgICAgICAgICB0YXNrRG9uZSB8fD0gcnVuKCgpID0+IGdldFNjaGVkdWxlcnMoKS5wZW5kaW5nVGFza3MuYWRkKCkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gY3JlYXRlIGEgbWljcm90YXNrIHRvIHRyYWNrIGNhbGxiYWNrIGZ1bmN0aW9uc1xuICAgICAgICBfYXJndW1lbnRzW2ldID0gem9uZVdyYXBGbihfYXJndW1lbnRzW2ldLCB0YXNrRG9uZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJldCA9IHJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IChpdCBhcyBhbnkpLmFwcGx5KHRoaXMsIF9hcmd1bWVudHMpKTtcbiAgICBpZiAoIWJsb2NrVW50aWxGaXJzdCkge1xuICAgICAgaWYgKHJldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgY29uc3Qgc2NoZWR1bGVycyA9IGdldFNjaGVkdWxlcnMoKTtcbiAgICAgICAgcmV0dXJuIHJldC5waXBlKFxuICAgICAgICAgIHN1YnNjcmliZU9uKHNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpLFxuICAgICAgICAgIG9ic2VydmVPbihzY2hlZHVsZXJzLmluc2lkZUFuZ3VsYXIpLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJ1bigoKSA9PiByZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgcmV0dXJuIHJldC5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpIGFzIGFueTtcbiAgICB9IGVsc2UgaWYgKHJldCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbWlzdXNlZC1wcm9taXNlc1xuICAgICAgcmV0dXJuIHJ1bihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICByZXQudGhlbihcbiAgICAgICAgICAgICAgKGl0KSA9PiBydW4oKCkgPT4gcmVzb2x2ZShpdCkpLFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiBydW4oKCkgPT4gcmVqZWN0KHJlYXNvbikpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHJldCA9PT0gJ2Z1bmN0aW9uJyAmJiB0YXNrRG9uZSkge1xuICAgICAgLy8gSGFuZGxlIHVuc3Vic2NyaWJlXG4gICAgICAvLyBmdW5jdGlvbigpIGlzIG5lZWRlZCBmb3IgdGhlIGFyZ3VtZW50cyBvYmplY3RcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldFRpbWVvdXQodGFza0RvbmUsIDEwKTtcbiAgICAgICAgcmV0dXJuIHJldC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETyBob3cgZG8gd2UgaGFuZGxlIHN0b3JhZ2UgdXBsb2FkcyBpbiBab25lPyBhbmQgb3RoZXIgc3R1ZmYgd2l0aCBjYW5jZWwoKSBldGM/XG4gICAgICByZXR1cm4gcnVuKCgpID0+IHJldCk7XG4gICAgfVxuICB9IGFzIGFueTtcbn07XG4iXX0=
|
|
@@ -5,7 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { Injectable, Optional, InjectionToken, APP_INITIALIZER, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
|
|
6
6
|
import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
|
|
7
7
|
import { registerVersion } from 'firebase/app';
|
|
8
|
-
import { isSupported as isSupported$1, getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1,
|
|
8
|
+
import { isSupported as isSupported$1, getAnalytics as getAnalytics$1, getGoogleAnalyticsClientId as getGoogleAnalyticsClientId$1, initializeAnalytics as initializeAnalytics$1, logEvent as logEvent$1, setAnalyticsCollectionEnabled as setAnalyticsCollectionEnabled$1, setConsent as setConsent$1, setCurrentScreen as setCurrentScreen$1, setDefaultEventParameters as setDefaultEventParameters$1, setUserId as setUserId$1, setUserProperties as setUserProperties$1, settings as settings$1 } from 'firebase/analytics';
|
|
9
9
|
export * from 'firebase/analytics';
|
|
10
10
|
import * as i2 from '@angular/platform-browser';
|
|
11
11
|
import * as i1$1 from '@angular/router';
|
|
@@ -51,9 +51,9 @@ const setAnalyticsCollectionEnabled = _zoneWrap(setAnalyticsCollectionEnabled$1,
|
|
|
51
51
|
const setConsent = _zoneWrap(setConsent$1, true);
|
|
52
52
|
const setCurrentScreen = _zoneWrap(setCurrentScreen$1, true);
|
|
53
53
|
const setDefaultEventParameters = _zoneWrap(setDefaultEventParameters$1, true);
|
|
54
|
-
const settings = _zoneWrap(settings$1, true);
|
|
55
54
|
const setUserId = _zoneWrap(setUserId$1, true);
|
|
56
55
|
const setUserProperties = _zoneWrap(setUserProperties$1, true);
|
|
56
|
+
const settings = _zoneWrap(settings$1, true);
|
|
57
57
|
|
|
58
58
|
class UserTrackingService {
|
|
59
59
|
initialized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-analytics.mjs","sources":["../../../src/analytics/analytics.ts","../../../src/analytics/is-analytics-supported-factory.ts","../../../src/analytics/overrides.ts","../../../src/analytics/firebase.ts","../../../src/analytics/user-tracking.service.ts","../../../src/analytics/screen-tracking.service.ts","../../../src/analytics/analytics.module.ts","../../../src/analytics/angular-fire-analytics.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Analytics extends FirebaseAnalytics {}\n\nexport class Analytics {\n constructor(analytics: FirebaseAnalytics) {\n return analytics;\n }\n}\n\nexport const ANALYTICS_PROVIDER_NAME = 'analytics';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AnalyticsInstances extends Array<FirebaseAnalytics> {}\n\nexport class AnalyticsInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME);\n }\n}\n\nexport const analyticInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME))),\n distinct(),\n);\n","import { ɵisSupportedError } from '@angular/fire';\nimport { isSupported } from 'firebase/analytics';\n\nconst isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';\nconst isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';\n\nglobalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported().then(it =>\n globalThis[isAnalyticsSupportedValueSymbol] = it\n).catch(() =>\n globalThis[isAnalyticsSupportedValueSymbol] = false\n);\nexport const isAnalyticsSupportedFactory = {\n async: () => globalThis[isAnalyticsSupportedPromiseSymbol],\n sync: () => {\n const ret = globalThis[isAnalyticsSupportedValueSymbol];\n if (ret === undefined) { throw new Error(ɵisSupportedError('Analytics')); }\n return ret;\n }\n};\n","import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\n\nexport const isSupported = isAnalyticsSupportedFactory.async;\n\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/analytics';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getAnalytics as _getAnalytics,\n getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId,\n initializeAnalytics as _initializeAnalytics,\n logEvent as _logEvent,\n setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled,\n setConsent as _setConsent,\n setCurrentScreen as _setCurrentScreen,\n setDefaultEventParameters as _setDefaultEventParameters,\n settings as _settings,\n setUserId as _setUserId,\n setUserProperties as _setUserProperties\n} from 'firebase/analytics';\n\nexport {\n isSupported\n} from './overrides';\n\nexport const getAnalytics = ɵzoneWrap(_getAnalytics, true);\nexport const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);\nexport const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);\nexport const logEvent = ɵzoneWrap(_logEvent, true);\nexport const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionEnabled, true);\nexport const setConsent = ɵzoneWrap(_setConsent, true);\nexport const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);\nexport const setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);\nexport const settings = ɵzoneWrap(_settings, true);\nexport const setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\n","import { Injectable, Injector, NgZone, OnDestroy } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Auth, authState } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Subscription } from 'rxjs';\nimport { Analytics } from './analytics';\nimport { isSupported, setUserId } from './firebase';\n\n@Injectable()\nexport class UserTrackingService implements OnDestroy {\n\n public readonly initialized: Promise<void>;\n private disposables: Subscription[] = [];\n\n constructor(\n auth: Auth,\n zone: NgZone,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'user-tracking');\n let resolveInitialized: () => void;\n this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (analytics) {\n this.disposables = [\n // TODO add credential tracking back in\n authState(auth).subscribe(user => {\n setUserId(analytics, user?.uid);\n resolveInitialized();\n }),\n ];\n } else {\n resolveInitialized();\n }\n });\n }\n\n ngOnDestroy() {\n this.disposables.forEach(it => it.unsubscribe());\n }\n}\n","import { ComponentFactoryResolver, Injectable, Injector, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Title } from '@angular/platform-browser';\nimport { ActivationEnd, Router, ɵEmptyOutletComponent } from '@angular/router';\nimport { registerVersion } from 'firebase/app';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from 'rxjs/operators';\nimport { Analytics } from './analytics';\nimport { isSupported, logEvent } from './firebase';\nimport { UserTrackingService } from './user-tracking.service';\n\nconst FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';\nconst FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';\nconst FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';\nconst FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';\nconst FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';\nconst FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';\nconst FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';\nconst OUTLET_KEY = 'outlet';\nconst PAGE_PATH_KEY = 'page_path';\nconst PAGE_TITLE_KEY = 'page_title';\nconst SCREEN_CLASS_KEY = 'screen_class';\nconst SCREEN_NAME_KEY = 'screen_name';\nconst SCREEN_VIEW_EVENT = 'screen_view';\nconst EVENT_ORIGIN_AUTO = 'auto';\nconst SCREEN_INSTANCE_DELIMITER = '#';\n\n// this is an INT64 in iOS/Android but use INT32 cause javascript\nlet nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;\n\nconst knownScreenInstanceIDs: Record<string, number> = {};\n\nconst getScreenInstanceID = (params: Record<string, any>) => {\n // unique the screen class against the outlet name\n const screenInstanceKey = [\n params[SCREEN_CLASS_KEY],\n params[OUTLET_KEY]\n ].join(SCREEN_INSTANCE_DELIMITER);\n // eslint-disable-next-line no-prototype-builtins\n if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {\n return knownScreenInstanceIDs[screenInstanceKey];\n } else {\n const ret = nextScreenInstanceID++;\n knownScreenInstanceIDs[screenInstanceKey] = ret;\n return ret;\n }\n};\n\nexport const ɵscreenViewEvent = (\n router: Router,\n title: Title|null,\n componentFactoryResolver: ComponentFactoryResolver,\n): Observable<{\n [SCREEN_NAME_KEY]: string,\n [PAGE_PATH_KEY]: string,\n [FIREBASE_EVENT_ORIGIN_KEY]: 'auto',\n [FIREBASE_SCREEN_NAME_KEY]: string,\n [OUTLET_KEY]: string,\n [PAGE_TITLE_KEY]?: string,\n [SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: number,\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: number,\n}> => {\n const activationEndEvents = router.events.pipe(filter<ActivationEnd>(e => e instanceof ActivationEnd));\n return activationEndEvents.pipe(\n switchMap<ActivationEnd, Observable<Record<string, any>|null>>(activationEnd => {\n // router parseUrl is having trouble with outlets when they're empty\n // e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty\n const urlTree = router.parseUrl(router.url.replace(/(?:\\().+(?:\\))/g, a => a.replace('://', ':///')));\n const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';\n const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);\n\n if (!actualSnapshot) {\n return of(null);\n }\n\n let actualDeep = actualSnapshot;\n while (actualDeep.firstChild) {\n actualDeep = actualDeep.firstChild;\n }\n const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';\n\n const params = {\n [SCREEN_NAME_KEY]: screenName,\n [PAGE_PATH_KEY]: `/${pagePath}`,\n [FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,\n [FIREBASE_SCREEN_NAME_KEY]: screenName,\n [OUTLET_KEY]: activationEnd.snapshot.outlet\n };\n if (title) {\n params[PAGE_TITLE_KEY] = title.getTitle();\n }\n\n let component = actualSnapshot.component;\n if (component) {\n if (component === ɵEmptyOutletComponent) {\n let deepSnapshot = activationEnd.snapshot;\n // TODO when might there be mutple children, different outlets? explore\n while (deepSnapshot.firstChild) {\n deepSnapshot = deepSnapshot.firstChild;\n }\n component = deepSnapshot.component;\n }\n } else {\n component = activationEnd.snapshot.component;\n }\n\n if (typeof component === 'string') {\n return of({ ...params, [SCREEN_CLASS_KEY]: component });\n } else if (component) {\n const componentFactory = componentFactoryResolver.resolveComponentFactory(component);\n return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });\n }\n // lazy loads cause extra activations, ignore\n return of(null);\n }),\n filter(it => !!it),\n map(params => ({\n [FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),\n ...params\n })),\n groupBy(it => it[OUTLET_KEY]),\n mergeMap(it => it.pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n startWith<any, any>(undefined),\n pairwise(),\n map(([prior, current]) =>\n prior ? {\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],\n ...current\n } : current\n ),\n ))\n );\n};\n\n@Injectable()\nexport class ScreenTrackingService implements OnDestroy {\n\n private disposable: Subscription | undefined;\n\n constructor(\n @Optional() router: Router,\n @Optional() title: Title,\n componentFactoryResolver: ComponentFactoryResolver,\n zone: NgZone,\n @Optional() userTrackingService: UserTrackingService,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'screen-tracking');\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (!router || !analytics) { return; }\n zone.runOutsideAngular(() => {\n this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(\n switchMap(async params => {\n if (userTrackingService) { await userTrackingService.initialized; }\n return logEvent(analytics, SCREEN_VIEW_EVENT, params);\n })\n ).subscribe();\n });\n });\n }\n\n ngOnDestroy() {\n if (this.disposable) {\n this.disposable.unsubscribe();\n }\n }\n\n}\n","import {\n APP_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { registerVersion } from 'firebase/app';\nimport { ANALYTICS_PROVIDER_NAME, Analytics, AnalyticsInstances } from './analytics';\nimport { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\nimport { ScreenTrackingService } from './screen-tracking.service';\nimport { UserTrackingService } from './user-tracking.service';\n\nexport const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken<Analytics[]>('angularfire2.analytics-instances');\n\nexport function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[]|undefined, defaultApp: FirebaseApp) {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const defaultAnalytics = ɵgetDefaultInstanceOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME, provided, defaultApp);\n return defaultAnalytics && new Analytics(defaultAnalytics);\n}\n\nexport function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics) {\n return (zone: NgZone, injector: Injector) => {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const analytics = zone.runOutsideAngular(() => fn(injector));\n return new Analytics(analytics);\n };\n}\n\nconst ANALYTICS_INSTANCES_PROVIDER = {\n provide: AnalyticsInstances,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n ]\n};\n\nconst DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {\n provide: Analytics,\n useFactory: defaultAnalyticsInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n }\n ]\n})\nexport class AnalyticsModule {\n constructor(\n @Optional() _screenTrackingService: ScreenTrackingService,\n @Optional() _userTrackingService: UserTrackingService,\n ) {\n registerVersion('angularfire', VERSION.full, 'analytics');\n }\n}\n\nexport function provideAnalytics(fn: (injector: Injector) => FirebaseAnalytics, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'analytics');\n\n return makeEnvironmentProviders([\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n },\n {\n provide: PROVIDED_ANALYTICS_INSTANCES,\n useFactory: analyticsInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","isSupported","ɵisSupportedError","ɵzoneWrap","_getAnalytics","_getGoogleAnalyticsClientId","_initializeAnalytics","_logEvent","_setAnalyticsCollectionEnabled","_setConsent","_setCurrentScreen","_setDefaultEventParameters","_settings","_setUserId","_setUserProperties","ɵEmptyOutletComponent","i1","i3.UserTrackingService","ɵgetDefaultInstanceOf","i1.ScreenTrackingService","i2.UserTrackingService","ɵAngularFireSchedulers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-analytics.mjs","sources":["../../../src/analytics/analytics.ts","../../../src/analytics/is-analytics-supported-factory.ts","../../../src/analytics/overrides.ts","../../../src/analytics/firebase.ts","../../../src/analytics/user-tracking.service.ts","../../../src/analytics/screen-tracking.service.ts","../../../src/analytics/analytics.module.ts","../../../src/analytics/angular-fire-analytics.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Analytics extends FirebaseAnalytics {}\n\nexport class Analytics {\n constructor(analytics: FirebaseAnalytics) {\n return analytics;\n }\n}\n\nexport const ANALYTICS_PROVIDER_NAME = 'analytics';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AnalyticsInstances extends Array<FirebaseAnalytics> {}\n\nexport class AnalyticsInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME);\n }\n}\n\nexport const analyticInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME))),\n distinct(),\n);\n","import { ɵisSupportedError } from '@angular/fire';\nimport { isSupported } from 'firebase/analytics';\n\nconst isAnalyticsSupportedValueSymbol = '__angularfire_symbol__analyticsIsSupportedValue';\nconst isAnalyticsSupportedPromiseSymbol = '__angularfire_symbol__analyticsIsSupported';\n\nglobalThis[isAnalyticsSupportedPromiseSymbol] ||= isSupported().then(it =>\n globalThis[isAnalyticsSupportedValueSymbol] = it\n).catch(() =>\n globalThis[isAnalyticsSupportedValueSymbol] = false\n);\nexport const isAnalyticsSupportedFactory = {\n async: () => globalThis[isAnalyticsSupportedPromiseSymbol],\n sync: () => {\n const ret = globalThis[isAnalyticsSupportedValueSymbol];\n if (ret === undefined) { throw new Error(ɵisSupportedError('Analytics')); }\n return ret;\n }\n};\n","import { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\n\nexport const isSupported = isAnalyticsSupportedFactory.async;\n\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/analytics';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n getAnalytics as _getAnalytics,\n getGoogleAnalyticsClientId as _getGoogleAnalyticsClientId,\n initializeAnalytics as _initializeAnalytics,\n logEvent as _logEvent,\n setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled,\n setConsent as _setConsent,\n setCurrentScreen as _setCurrentScreen,\n setDefaultEventParameters as _setDefaultEventParameters,\n setUserId as _setUserId,\n setUserProperties as _setUserProperties,\n settings as _settings\n} from 'firebase/analytics';\n\nexport {\n isSupported\n} from './overrides';\n\nexport const getAnalytics = ɵzoneWrap(_getAnalytics, true);\nexport const getGoogleAnalyticsClientId = ɵzoneWrap(_getGoogleAnalyticsClientId, true);\nexport const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);\nexport const logEvent = ɵzoneWrap(_logEvent, true);\nexport const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionEnabled, true);\nexport const setConsent = ɵzoneWrap(_setConsent, true);\nexport const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);\nexport const setDefaultEventParameters = ɵzoneWrap(_setDefaultEventParameters, true);\nexport const setUserId = ɵzoneWrap(_setUserId, true);\nexport const setUserProperties = ɵzoneWrap(_setUserProperties, true);\nexport const settings = ɵzoneWrap(_settings, true);\n","import { Injectable, Injector, NgZone, OnDestroy } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Auth, authState } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Subscription } from 'rxjs';\nimport { Analytics } from './analytics';\nimport { isSupported, setUserId } from './firebase';\n\n@Injectable()\nexport class UserTrackingService implements OnDestroy {\n\n public readonly initialized: Promise<void>;\n private disposables: Subscription[] = [];\n\n constructor(\n auth: Auth,\n zone: NgZone,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'user-tracking');\n let resolveInitialized: () => void;\n this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (analytics) {\n this.disposables = [\n // TODO add credential tracking back in\n authState(auth).subscribe(user => {\n setUserId(analytics, user?.uid);\n resolveInitialized();\n }),\n ];\n } else {\n resolveInitialized();\n }\n });\n }\n\n ngOnDestroy() {\n this.disposables.forEach(it => it.unsubscribe());\n }\n}\n","import { ComponentFactoryResolver, Injectable, Injector, NgZone, OnDestroy, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { Title } from '@angular/platform-browser';\nimport { ActivationEnd, Router, ɵEmptyOutletComponent } from '@angular/router';\nimport { registerVersion } from 'firebase/app';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, filter, groupBy, map, mergeMap, pairwise, startWith, switchMap } from 'rxjs/operators';\nimport { Analytics } from './analytics';\nimport { isSupported, logEvent } from './firebase';\nimport { UserTrackingService } from './user-tracking.service';\n\nconst FIREBASE_EVENT_ORIGIN_KEY = 'firebase_event_origin';\nconst FIREBASE_PREVIOUS_SCREEN_CLASS_KEY = 'firebase_previous_class';\nconst FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY = 'firebase_previous_id';\nconst FIREBASE_PREVIOUS_SCREEN_NAME_KEY = 'firebase_previous_screen';\nconst FIREBASE_SCREEN_CLASS_KEY = 'firebase_screen_class';\nconst FIREBASE_SCREEN_INSTANCE_ID_KEY = 'firebase_screen_id';\nconst FIREBASE_SCREEN_NAME_KEY = 'firebase_screen';\nconst OUTLET_KEY = 'outlet';\nconst PAGE_PATH_KEY = 'page_path';\nconst PAGE_TITLE_KEY = 'page_title';\nconst SCREEN_CLASS_KEY = 'screen_class';\nconst SCREEN_NAME_KEY = 'screen_name';\nconst SCREEN_VIEW_EVENT = 'screen_view';\nconst EVENT_ORIGIN_AUTO = 'auto';\nconst SCREEN_INSTANCE_DELIMITER = '#';\n\n// this is an INT64 in iOS/Android but use INT32 cause javascript\nlet nextScreenInstanceID = Math.floor(Math.random() * (2 ** 32 - 1)) - 2 ** 31;\n\nconst knownScreenInstanceIDs: Record<string, number> = {};\n\nconst getScreenInstanceID = (params: Record<string, any>) => {\n // unique the screen class against the outlet name\n const screenInstanceKey = [\n params[SCREEN_CLASS_KEY],\n params[OUTLET_KEY]\n ].join(SCREEN_INSTANCE_DELIMITER);\n // eslint-disable-next-line no-prototype-builtins\n if (knownScreenInstanceIDs.hasOwnProperty(screenInstanceKey)) {\n return knownScreenInstanceIDs[screenInstanceKey];\n } else {\n const ret = nextScreenInstanceID++;\n knownScreenInstanceIDs[screenInstanceKey] = ret;\n return ret;\n }\n};\n\nexport const ɵscreenViewEvent = (\n router: Router,\n title: Title|null,\n componentFactoryResolver: ComponentFactoryResolver,\n): Observable<{\n [SCREEN_NAME_KEY]: string,\n [PAGE_PATH_KEY]: string,\n [FIREBASE_EVENT_ORIGIN_KEY]: 'auto',\n [FIREBASE_SCREEN_NAME_KEY]: string,\n [OUTLET_KEY]: string,\n [PAGE_TITLE_KEY]?: string,\n [SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_CLASS_KEY]: string,\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: number,\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: string,\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: number,\n}> => {\n const activationEndEvents = router.events.pipe(filter<ActivationEnd>(e => e instanceof ActivationEnd));\n return activationEndEvents.pipe(\n switchMap<ActivationEnd, Observable<Record<string, any>|null>>(activationEnd => {\n // router parseUrl is having trouble with outlets when they're empty\n // e.g, /asdf/1(bob://sally:asdf), so put another slash in when empty\n const urlTree = router.parseUrl(router.url.replace(/(?:\\().+(?:\\))/g, a => a.replace('://', ':///')));\n const pagePath = urlTree.root.children[activationEnd.snapshot.outlet]?.toString() || '';\n const actualSnapshot = router.routerState.root.children.map(it => it).find(it => it.outlet === activationEnd.snapshot.outlet);\n\n if (!actualSnapshot) {\n return of(null);\n }\n\n let actualDeep = actualSnapshot;\n while (actualDeep.firstChild) {\n actualDeep = actualDeep.firstChild;\n }\n const screenName = actualDeep.pathFromRoot.map(s => s.routeConfig?.path).filter(it => it).join('/') || '/';\n\n const params = {\n [SCREEN_NAME_KEY]: screenName,\n [PAGE_PATH_KEY]: `/${pagePath}`,\n [FIREBASE_EVENT_ORIGIN_KEY]: EVENT_ORIGIN_AUTO,\n [FIREBASE_SCREEN_NAME_KEY]: screenName,\n [OUTLET_KEY]: activationEnd.snapshot.outlet\n };\n if (title) {\n params[PAGE_TITLE_KEY] = title.getTitle();\n }\n\n let component = actualSnapshot.component;\n if (component) {\n if (component === ɵEmptyOutletComponent) {\n let deepSnapshot = activationEnd.snapshot;\n // TODO when might there be mutple children, different outlets? explore\n while (deepSnapshot.firstChild) {\n deepSnapshot = deepSnapshot.firstChild;\n }\n component = deepSnapshot.component;\n }\n } else {\n component = activationEnd.snapshot.component;\n }\n\n if (typeof component === 'string') {\n return of({ ...params, [SCREEN_CLASS_KEY]: component });\n } else if (component) {\n const componentFactory = componentFactoryResolver.resolveComponentFactory(component);\n return of({ ...params, [SCREEN_CLASS_KEY]: componentFactory.selector });\n }\n // lazy loads cause extra activations, ignore\n return of(null);\n }),\n filter(it => !!it),\n map(params => ({\n [FIREBASE_SCREEN_CLASS_KEY]: params[SCREEN_CLASS_KEY],\n [FIREBASE_SCREEN_INSTANCE_ID_KEY]: getScreenInstanceID(params),\n ...params\n })),\n groupBy(it => it[OUTLET_KEY]),\n mergeMap(it => it.pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n startWith<any, any>(undefined),\n pairwise(),\n map(([prior, current]) =>\n prior ? {\n [FIREBASE_PREVIOUS_SCREEN_CLASS_KEY]: prior[SCREEN_CLASS_KEY],\n [FIREBASE_PREVIOUS_SCREEN_NAME_KEY]: prior[SCREEN_NAME_KEY],\n [FIREBASE_PREVIOUS_SCREEN_INSTANCE_ID_KEY]: prior[FIREBASE_SCREEN_INSTANCE_ID_KEY],\n ...current\n } : current\n ),\n ))\n );\n};\n\n@Injectable()\nexport class ScreenTrackingService implements OnDestroy {\n\n private disposable: Subscription | undefined;\n\n constructor(\n @Optional() router: Router,\n @Optional() title: Title,\n componentFactoryResolver: ComponentFactoryResolver,\n zone: NgZone,\n @Optional() userTrackingService: UserTrackingService,\n injector: Injector,\n ) {\n registerVersion('angularfire', VERSION.full, 'screen-tracking');\n // The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI\n // may not be done when services are initialized. Guard the functionality by first ensuring\n // that the (global) promise has resolved, then get Analytics from the injector.\n isSupported().then(() => {\n const analytics = injector.get(Analytics);\n if (!router || !analytics) { return; }\n zone.runOutsideAngular(() => {\n this.disposable = ɵscreenViewEvent(router, title, componentFactoryResolver).pipe(\n switchMap(async params => {\n if (userTrackingService) { await userTrackingService.initialized; }\n return logEvent(analytics, SCREEN_VIEW_EVENT, params);\n })\n ).subscribe();\n });\n });\n }\n\n ngOnDestroy() {\n if (this.disposable) {\n this.disposable.unsubscribe();\n }\n }\n\n}\n","import {\n APP_INITIALIZER,\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { Analytics as FirebaseAnalytics } from 'firebase/analytics';\nimport { registerVersion } from 'firebase/app';\nimport { ANALYTICS_PROVIDER_NAME, Analytics, AnalyticsInstances } from './analytics';\nimport { isAnalyticsSupportedFactory } from './is-analytics-supported-factory';\nimport { ScreenTrackingService } from './screen-tracking.service';\nimport { UserTrackingService } from './user-tracking.service';\n\nexport const PROVIDED_ANALYTICS_INSTANCES = new InjectionToken<Analytics[]>('angularfire2.analytics-instances');\n\nexport function defaultAnalyticsInstanceFactory(provided: FirebaseAnalytics[]|undefined, defaultApp: FirebaseApp) {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const defaultAnalytics = ɵgetDefaultInstanceOf<FirebaseAnalytics>(ANALYTICS_PROVIDER_NAME, provided, defaultApp);\n return defaultAnalytics && new Analytics(defaultAnalytics);\n}\n\nexport function analyticsInstanceFactory(fn: (injector: Injector) => FirebaseAnalytics) {\n return (zone: NgZone, injector: Injector) => {\n if (!isAnalyticsSupportedFactory.sync()) { return null; }\n const analytics = zone.runOutsideAngular(() => fn(injector));\n return new Analytics(analytics);\n };\n}\n\nconst ANALYTICS_INSTANCES_PROVIDER = {\n provide: AnalyticsInstances,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n ]\n};\n\nconst DEFAULT_ANALYTICS_INSTANCE_PROVIDER = {\n provide: Analytics,\n useFactory: defaultAnalyticsInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_ANALYTICS_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n }\n ]\n})\nexport class AnalyticsModule {\n constructor(\n @Optional() _screenTrackingService: ScreenTrackingService,\n @Optional() _userTrackingService: UserTrackingService,\n ) {\n registerVersion('angularfire', VERSION.full, 'analytics');\n }\n}\n\nexport function provideAnalytics(fn: (injector: Injector) => FirebaseAnalytics, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'analytics');\n\n return makeEnvironmentProviders([\n DEFAULT_ANALYTICS_INSTANCE_PROVIDER,\n ANALYTICS_INSTANCES_PROVIDER,\n {\n provide: APP_INITIALIZER,\n useValue: isAnalyticsSupportedFactory.async,\n multi: true,\n },\n {\n provide: PROVIDED_ANALYTICS_INSTANCES,\n useFactory: analyticsInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n },\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","isSupported","ɵisSupportedError","ɵzoneWrap","_getAnalytics","_getGoogleAnalyticsClientId","_initializeAnalytics","_logEvent","_setAnalyticsCollectionEnabled","_setConsent","_setCurrentScreen","_setDefaultEventParameters","_setUserId","_setUserProperties","_settings","ɵEmptyOutletComponent","i1","i3.UserTrackingService","ɵgetDefaultInstanceOf","i1.ScreenTrackingService","i2.UserTrackingService","ɵAngularFireSchedulers"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { InjectionToken, Optional, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
|
|
6
6
|
import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
|
|
7
7
|
import { registerVersion } from 'firebase/app';
|
|
8
|
-
import { authState as authState$1,
|
|
8
|
+
import { authState as authState$1, idToken as idToken$1, user as user$1 } from 'rxfire/auth';
|
|
9
9
|
import { applyActionCode as applyActionCode$1, beforeAuthStateChanged as beforeAuthStateChanged$1, checkActionCode as checkActionCode$1, confirmPasswordReset as confirmPasswordReset$1, connectAuthEmulator as connectAuthEmulator$1, createUserWithEmailAndPassword as createUserWithEmailAndPassword$1, deleteUser as deleteUser$1, fetchSignInMethodsForEmail as fetchSignInMethodsForEmail$1, getAdditionalUserInfo as getAdditionalUserInfo$1, getAuth as getAuth$1, getIdToken as getIdToken$1, getIdTokenResult as getIdTokenResult$1, getMultiFactorResolver as getMultiFactorResolver$1, getRedirectResult as getRedirectResult$1, initializeAuth as initializeAuth$1, initializeRecaptchaConfig as initializeRecaptchaConfig$1, isSignInWithEmailLink as isSignInWithEmailLink$1, linkWithCredential as linkWithCredential$1, linkWithPhoneNumber as linkWithPhoneNumber$1, linkWithPopup as linkWithPopup$1, linkWithRedirect as linkWithRedirect$1, multiFactor as multiFactor$1, onAuthStateChanged as onAuthStateChanged$1, onIdTokenChanged as onIdTokenChanged$1, parseActionCodeURL as parseActionCodeURL$1, reauthenticateWithCredential as reauthenticateWithCredential$1, reauthenticateWithPhoneNumber as reauthenticateWithPhoneNumber$1, reauthenticateWithPopup as reauthenticateWithPopup$1, reauthenticateWithRedirect as reauthenticateWithRedirect$1, reload as reload$1, revokeAccessToken as revokeAccessToken$1, sendEmailVerification as sendEmailVerification$1, sendPasswordResetEmail as sendPasswordResetEmail$1, sendSignInLinkToEmail as sendSignInLinkToEmail$1, setPersistence as setPersistence$1, signInAnonymously as signInAnonymously$1, signInWithCredential as signInWithCredential$1, signInWithCustomToken as signInWithCustomToken$1, signInWithEmailAndPassword as signInWithEmailAndPassword$1, signInWithEmailLink as signInWithEmailLink$1, signInWithPhoneNumber as signInWithPhoneNumber$1, signInWithPopup as signInWithPopup$1, signInWithRedirect as signInWithRedirect$1, signOut as signOut$1, unlink as unlink$1, updateCurrentUser as updateCurrentUser$1, updateEmail as updateEmail$1, updatePassword as updatePassword$1, updatePhoneNumber as updatePhoneNumber$1, updateProfile as updateProfile$1, useDeviceLanguage as useDeviceLanguage$1, validatePassword as validatePassword$1, verifyBeforeUpdateEmail as verifyBeforeUpdateEmail$1, verifyPasswordResetCode as verifyPasswordResetCode$1 } from 'firebase/auth';
|
|
10
10
|
export * from 'firebase/auth';
|
|
11
11
|
|
|
@@ -90,8 +90,8 @@ function provideAuth(fn, ...deps) {
|
|
|
90
90
|
|
|
91
91
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
92
92
|
const authState = _zoneWrap(authState$1, true);
|
|
93
|
-
const user = _zoneWrap(user$1, true);
|
|
94
93
|
const idToken = _zoneWrap(idToken$1, true);
|
|
94
|
+
const user = _zoneWrap(user$1, true);
|
|
95
95
|
|
|
96
96
|
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
97
97
|
const applyActionCode = _zoneWrap(applyActionCode$1, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n user as _user,\n idToken as _idToken\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const user = ɵzoneWrap(_user, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, true);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_user","_idToken","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-auth.mjs","sources":["../../../src/auth/auth.ts","../../../src/auth/auth.module.ts","../../../src/auth/rxfire.ts","../../../src/auth/firebase.ts","../../../src/auth/angular-fire-auth.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport const AUTH_PROVIDER_NAME = 'auth';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Auth extends FirebaseAuth {}\n\nexport class Auth {\n constructor(auth: FirebaseAuth) {\n return auth;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AuthInstances extends Array<FirebaseAuth> {}\n\nexport class AuthInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME);\n }\n}\n\nexport const authInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseAuth>(AUTH_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { Auth as FirebaseAuth } from 'firebase/auth';\nimport { AUTH_PROVIDER_NAME, Auth, AuthInstances } from './auth';\n\nexport const PROVIDED_AUTH_INSTANCES = new InjectionToken<Auth[]>('angularfire2.auth-instances');\n\nexport function defaultAuthInstanceFactory(provided: FirebaseAuth[]|undefined, defaultApp: FirebaseApp) {\n const defaultAuth = ɵgetDefaultInstanceOf<FirebaseAuth>(AUTH_PROVIDER_NAME, provided, defaultApp);\n return defaultAuth && new Auth(defaultAuth);\n}\n\nexport function authInstanceFactory(fn: (injector: Injector) => FirebaseAuth) {\n return (zone: NgZone, injector: Injector) => {\n const auth = zone.runOutsideAngular(() => fn(injector));\n return new Auth(auth);\n };\n}\n\nconst AUTH_INSTANCES_PROVIDER = {\n provide: AuthInstances,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n ]\n};\n\nconst DEFAULT_AUTH_INSTANCE_PROVIDER = {\n provide: Auth,\n useFactory: defaultAuthInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_AUTH_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n ]\n})\nexport class AuthModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth');\n }\n}\n\nexport function provideAuth(fn: (injector: Injector) => FirebaseAuth, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'auth');\n return makeEnvironmentProviders([\n DEFAULT_AUTH_INSTANCE_PROVIDER,\n AUTH_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_AUTH_INSTANCES,\n useFactory: authInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n authState as _authState,\n idToken as _idToken,\n user as _user\n} from 'rxfire/auth';\n\nexport const authState = ɵzoneWrap(_authState, true);\nexport const idToken = ɵzoneWrap(_idToken, true);\nexport const user = ɵzoneWrap(_user, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/auth';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n applyActionCode as _applyActionCode,\n beforeAuthStateChanged as _beforeAuthStateChanged,\n checkActionCode as _checkActionCode,\n confirmPasswordReset as _confirmPasswordReset,\n connectAuthEmulator as _connectAuthEmulator,\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n deleteUser as _deleteUser,\n fetchSignInMethodsForEmail as _fetchSignInMethodsForEmail,\n getAdditionalUserInfo as _getAdditionalUserInfo,\n getAuth as _getAuth,\n getIdToken as _getIdToken,\n getIdTokenResult as _getIdTokenResult,\n getMultiFactorResolver as _getMultiFactorResolver,\n getRedirectResult as _getRedirectResult,\n initializeAuth as _initializeAuth,\n initializeRecaptchaConfig as _initializeRecaptchaConfig,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n linkWithCredential as _linkWithCredential,\n linkWithPhoneNumber as _linkWithPhoneNumber,\n linkWithPopup as _linkWithPopup,\n linkWithRedirect as _linkWithRedirect,\n multiFactor as _multiFactor,\n onAuthStateChanged as _onAuthStateChanged,\n onIdTokenChanged as _onIdTokenChanged,\n parseActionCodeURL as _parseActionCodeURL,\n reauthenticateWithCredential as _reauthenticateWithCredential,\n reauthenticateWithPhoneNumber as _reauthenticateWithPhoneNumber,\n reauthenticateWithPopup as _reauthenticateWithPopup,\n reauthenticateWithRedirect as _reauthenticateWithRedirect,\n reload as _reload,\n revokeAccessToken as _revokeAccessToken,\n sendEmailVerification as _sendEmailVerification,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n setPersistence as _setPersistence,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n signInWithEmailAndPassword as _signInWithEmailAndPassword,\n signInWithEmailLink as _signInWithEmailLink,\n signInWithPhoneNumber as _signInWithPhoneNumber,\n signInWithPopup as _signInWithPopup,\n signInWithRedirect as _signInWithRedirect,\n signOut as _signOut,\n unlink as _unlink,\n updateCurrentUser as _updateCurrentUser,\n updateEmail as _updateEmail,\n updatePassword as _updatePassword,\n updatePhoneNumber as _updatePhoneNumber,\n updateProfile as _updateProfile,\n useDeviceLanguage as _useDeviceLanguage,\n validatePassword as _validatePassword,\n verifyBeforeUpdateEmail as _verifyBeforeUpdateEmail,\n verifyPasswordResetCode as _verifyPasswordResetCode\n} from 'firebase/auth';\n\nexport const applyActionCode = ɵzoneWrap(_applyActionCode, true);\nexport const beforeAuthStateChanged = ɵzoneWrap(_beforeAuthStateChanged, true);\nexport const checkActionCode = ɵzoneWrap(_checkActionCode, true);\nexport const confirmPasswordReset = ɵzoneWrap(_confirmPasswordReset, true);\nexport const connectAuthEmulator = ɵzoneWrap(_connectAuthEmulator, true);\nexport const createUserWithEmailAndPassword = ɵzoneWrap(_createUserWithEmailAndPassword, true);\nexport const deleteUser = ɵzoneWrap(_deleteUser, true);\nexport const fetchSignInMethodsForEmail = ɵzoneWrap(_fetchSignInMethodsForEmail, true);\nexport const getAdditionalUserInfo = ɵzoneWrap(_getAdditionalUserInfo, true);\nexport const getAuth = ɵzoneWrap(_getAuth, true);\nexport const getIdToken = ɵzoneWrap(_getIdToken, true);\nexport const getIdTokenResult = ɵzoneWrap(_getIdTokenResult, true);\nexport const getMultiFactorResolver = ɵzoneWrap(_getMultiFactorResolver, true);\nexport const getRedirectResult = ɵzoneWrap(_getRedirectResult, true);\nexport const initializeAuth = ɵzoneWrap(_initializeAuth, true);\nexport const initializeRecaptchaConfig = ɵzoneWrap(_initializeRecaptchaConfig, true);\nexport const isSignInWithEmailLink = ɵzoneWrap(_isSignInWithEmailLink, true);\nexport const linkWithCredential = ɵzoneWrap(_linkWithCredential, true);\nexport const linkWithPhoneNumber = ɵzoneWrap(_linkWithPhoneNumber, true);\nexport const linkWithPopup = ɵzoneWrap(_linkWithPopup, true);\nexport const linkWithRedirect = ɵzoneWrap(_linkWithRedirect, true);\nexport const multiFactor = ɵzoneWrap(_multiFactor, true);\nexport const onAuthStateChanged = ɵzoneWrap(_onAuthStateChanged, true);\nexport const onIdTokenChanged = ɵzoneWrap(_onIdTokenChanged, true);\nexport const parseActionCodeURL = ɵzoneWrap(_parseActionCodeURL, true);\nexport const reauthenticateWithCredential = ɵzoneWrap(_reauthenticateWithCredential, true);\nexport const reauthenticateWithPhoneNumber = ɵzoneWrap(_reauthenticateWithPhoneNumber, true);\nexport const reauthenticateWithPopup = ɵzoneWrap(_reauthenticateWithPopup, true);\nexport const reauthenticateWithRedirect = ɵzoneWrap(_reauthenticateWithRedirect, true);\nexport const reload = ɵzoneWrap(_reload, true);\nexport const revokeAccessToken = ɵzoneWrap(_revokeAccessToken, true);\nexport const sendEmailVerification = ɵzoneWrap(_sendEmailVerification, true);\nexport const sendPasswordResetEmail = ɵzoneWrap(_sendPasswordResetEmail, true);\nexport const sendSignInLinkToEmail = ɵzoneWrap(_sendSignInLinkToEmail, true);\nexport const setPersistence = ɵzoneWrap(_setPersistence, true);\nexport const signInAnonymously = ɵzoneWrap(_signInAnonymously, true);\nexport const signInWithCredential = ɵzoneWrap(_signInWithCredential, true);\nexport const signInWithCustomToken = ɵzoneWrap(_signInWithCustomToken, true);\nexport const signInWithEmailAndPassword = ɵzoneWrap(_signInWithEmailAndPassword, true);\nexport const signInWithEmailLink = ɵzoneWrap(_signInWithEmailLink, true);\nexport const signInWithPhoneNumber = ɵzoneWrap(_signInWithPhoneNumber, true);\nexport const signInWithPopup = ɵzoneWrap(_signInWithPopup, true);\nexport const signInWithRedirect = ɵzoneWrap(_signInWithRedirect, true);\nexport const signOut = ɵzoneWrap(_signOut, true);\nexport const unlink = ɵzoneWrap(_unlink, true);\nexport const updateCurrentUser = ɵzoneWrap(_updateCurrentUser, true);\nexport const updateEmail = ɵzoneWrap(_updateEmail, true);\nexport const updatePassword = ɵzoneWrap(_updatePassword, true);\nexport const updatePhoneNumber = ɵzoneWrap(_updatePhoneNumber, true);\nexport const updateProfile = ɵzoneWrap(_updateProfile, true);\nexport const useDeviceLanguage = ɵzoneWrap(_useDeviceLanguage, true);\nexport const validatePassword = ɵzoneWrap(_validatePassword, true);\nexport const verifyBeforeUpdateEmail = ɵzoneWrap(_verifyBeforeUpdateEmail, true);\nexport const verifyPasswordResetCode = ɵzoneWrap(_verifyPasswordResetCode, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_authState","_idToken","_user","_applyActionCode","_beforeAuthStateChanged","_checkActionCode","_confirmPasswordReset","_connectAuthEmulator","_createUserWithEmailAndPassword","_deleteUser","_fetchSignInMethodsForEmail","_getAdditionalUserInfo","_getAuth","_getIdToken","_getIdTokenResult","_getMultiFactorResolver","_getRedirectResult","_initializeAuth","_initializeRecaptchaConfig","_isSignInWithEmailLink","_linkWithCredential","_linkWithPhoneNumber","_linkWithPopup","_linkWithRedirect","_multiFactor","_onAuthStateChanged","_onIdTokenChanged","_parseActionCodeURL","_reauthenticateWithCredential","_reauthenticateWithPhoneNumber","_reauthenticateWithPopup","_reauthenticateWithRedirect","_reload","_revokeAccessToken","_sendEmailVerification","_sendPasswordResetEmail","_sendSignInLinkToEmail","_setPersistence","_signInAnonymously","_signInWithCredential","_signInWithCustomToken","_signInWithEmailAndPassword","_signInWithEmailLink","_signInWithPhoneNumber","_signInWithPopup","_signInWithRedirect","_signOut","_unlink","_updateCurrentUser","_updateEmail","_updatePassword","_updatePhoneNumber","_updateProfile","_useDeviceLanguage","_validatePassword","_verifyBeforeUpdateEmail","_verifyPasswordResetCode"],"mappings":"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"}
|
|
@@ -207,7 +207,7 @@ function sliceAndSplice(original, start, deleteCount, ...args) {
|
|
|
207
207
|
function combineChange(combined, change) {
|
|
208
208
|
switch (change.type) {
|
|
209
209
|
case 'added':
|
|
210
|
-
if (combined[change.newIndex]
|
|
210
|
+
if (combined[change.newIndex]?.doc.ref.isEqual(change.doc.ref)) {
|
|
211
211
|
// Not sure why the duplicates are getting fired
|
|
212
212
|
}
|
|
213
213
|
else {
|
|
@@ -230,7 +230,7 @@ function combineChange(combined, change) {
|
|
|
230
230
|
}
|
|
231
231
|
break;
|
|
232
232
|
case 'removed':
|
|
233
|
-
if (combined[change.oldIndex]
|
|
233
|
+
if (combined[change.oldIndex]?.doc.ref.isEqual(change.doc.ref)) {
|
|
234
234
|
return sliceAndSplice(combined, change.oldIndex, 1);
|
|
235
235
|
}
|
|
236
236
|
break;
|