@angular/fire 20.0.1 → 21.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/package.json +2 -1
- package/analytics/package.json +2 -1
- package/app/package.json +2 -1
- package/app-check/package.json +2 -1
- package/auth/package.json +2 -1
- package/auth-guard/package.json +2 -1
- package/compat/analytics/package.json +2 -1
- package/compat/auth/package.json +2 -1
- package/compat/auth-guard/package.json +2 -1
- package/compat/database/package.json +2 -1
- package/compat/firestore/package.json +2 -1
- package/compat/functions/package.json +2 -1
- package/compat/messaging/package.json +2 -1
- package/compat/package.json +2 -1
- package/compat/performance/package.json +2 -1
- package/compat/remote-config/package.json +2 -1
- package/compat/storage/package.json +2 -1
- package/data-connect/package.json +2 -1
- package/database/package.json +2 -1
- package/fesm2022/angular-fire-ai.mjs +8 -7
- package/fesm2022/angular-fire-ai.mjs.map +1 -1
- package/fesm2022/angular-fire-analytics.mjs +10 -10
- package/fesm2022/angular-fire-analytics.mjs.map +1 -1
- package/fesm2022/angular-fire-app-check.mjs +4 -4
- package/fesm2022/angular-fire-app-check.mjs.map +1 -1
- package/fesm2022/angular-fire-app.mjs +5 -6
- package/fesm2022/angular-fire-app.mjs.map +1 -1
- package/fesm2022/angular-fire-auth-guard.mjs +7 -7
- package/fesm2022/angular-fire-auth-guard.mjs.map +1 -1
- package/fesm2022/angular-fire-auth.mjs +4 -4
- package/fesm2022/angular-fire-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-analytics.mjs +17 -21
- package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-auth-guard.mjs +7 -7
- package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-auth.mjs +9 -11
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-database.mjs +11 -13
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-firestore.mjs +12 -14
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-functions.mjs +7 -7
- package/fesm2022/angular-fire-compat-functions.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-messaging.mjs +9 -11
- package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-performance.mjs +13 -17
- package/fesm2022/angular-fire-compat-performance.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-remote-config.mjs +11 -16
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-compat-storage.mjs +16 -18
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
- package/fesm2022/angular-fire-compat.mjs +8 -9
- package/fesm2022/angular-fire-compat.mjs.map +1 -1
- package/fesm2022/angular-fire-data-connect.mjs +4 -4
- package/fesm2022/angular-fire-data-connect.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 +9 -6
- package/fesm2022/angular-fire-firestore.mjs.map +1 -1
- package/fesm2022/angular-fire-functions.mjs +4 -4
- package/fesm2022/angular-fire-functions.mjs.map +1 -1
- package/fesm2022/angular-fire-messaging.mjs +4 -4
- package/fesm2022/angular-fire-messaging.mjs.map +1 -1
- package/fesm2022/angular-fire-performance.mjs +5 -8
- package/fesm2022/angular-fire-performance.mjs.map +1 -1
- package/fesm2022/angular-fire-remote-config.mjs +7 -6
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
- package/fesm2022/angular-fire-storage.mjs +4 -4
- package/fesm2022/angular-fire-storage.mjs.map +1 -1
- package/fesm2022/angular-fire.mjs +4 -6
- package/fesm2022/angular-fire.mjs.map +1 -1
- package/firestore/lite/package.json +2 -1
- package/firestore/package.json +2 -1
- package/functions/package.json +2 -1
- package/messaging/package.json +2 -1
- package/package.json +61 -65
- package/performance/package.json +2 -1
- package/publish.sh +1 -1
- package/remote-config/package.json +2 -1
- package/schematics/add/index.js +1 -1
- package/schematics/deploy/actions.js +84 -93
- package/schematics/deploy/builder.js +212 -221
- package/schematics/setup/index.js +176 -185
- package/schematics/update/v7/index.js +1 -1
- package/storage/package.json +2 -1
- package/{ai/index.d.ts → types/angular-fire-ai.d.ts} +4 -3
- package/{app/index.d.ts → types/angular-fire-app.d.ts} +1 -1
- package/{compat/analytics/index.d.ts → types/angular-fire-compat-analytics.d.ts} +2 -2
- package/{compat/auth/index.d.ts → types/angular-fire-compat-auth.d.ts} +1 -1
- package/{compat/database/index.d.ts → types/angular-fire-compat-database.d.ts} +4 -5
- package/{compat/firestore/index.d.ts → types/angular-fire-compat-firestore.d.ts} +4 -10
- package/{compat/messaging/index.d.ts → types/angular-fire-compat-messaging.d.ts} +1 -1
- package/{compat/performance/index.d.ts → types/angular-fire-compat-performance.d.ts} +1 -1
- package/{compat/remote-config/index.d.ts → types/angular-fire-compat-remote-config.d.ts} +2 -2
- package/{compat/storage/index.d.ts → types/angular-fire-compat-storage.d.ts} +17 -17
- package/{compat/index.d.ts → types/angular-fire-compat.d.ts} +1 -1
- package/{firestore/index.d.ts → types/angular-fire-firestore.d.ts} +5 -2
- package/{remote-config/index.d.ts → types/angular-fire-remote-config.d.ts} +3 -2
- package/fesm2022/angular-fire-vertexai.mjs +0 -102
- package/fesm2022/angular-fire-vertexai.mjs.map +0 -1
- package/vertexai/index.d.ts +0 -33
- package/vertexai/package.json +0 -3
- /package/{analytics/index.d.ts → types/angular-fire-analytics.d.ts} +0 -0
- /package/{app-check/index.d.ts → types/angular-fire-app-check.d.ts} +0 -0
- /package/{auth-guard/index.d.ts → types/angular-fire-auth-guard.d.ts} +0 -0
- /package/{auth/index.d.ts → types/angular-fire-auth.d.ts} +0 -0
- /package/{compat/auth-guard/index.d.ts → types/angular-fire-compat-auth-guard.d.ts} +0 -0
- /package/{compat/functions/index.d.ts → types/angular-fire-compat-functions.d.ts} +0 -0
- /package/{data-connect/index.d.ts → types/angular-fire-data-connect.d.ts} +0 -0
- /package/{database/index.d.ts → types/angular-fire-database.d.ts} +0 -0
- /package/{firestore/lite/index.d.ts → types/angular-fire-firestore-lite.d.ts} +0 -0
- /package/{functions/index.d.ts → types/angular-fire-functions.d.ts} +0 -0
- /package/{messaging/index.d.ts → types/angular-fire-messaging.d.ts} +0 -0
- /package/{performance/index.d.ts → types/angular-fire-performance.d.ts} +0 -0
- /package/{storage/index.d.ts → types/angular-fire-storage.d.ts} +0 -0
- /package/{index.d.ts → types/angular-fire.d.ts} +0 -0
|
@@ -39,10 +39,10 @@ class AngularFireFunctions {
|
|
|
39
39
|
this.httpsCallable = (name, options) => (data) => from(functions).pipe(observeOn(schedulers.insideAngular), switchMap(functions => functions.httpsCallable(name, options)(data)), map(r => r.data));
|
|
40
40
|
return _lazySDKProxy(this, functions, zone);
|
|
41
41
|
}
|
|
42
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctions, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: REGION, optional: true }, { token: ORIGIN, optional: true }, { token: USE_EMULATOR, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
43
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctions, providedIn: 'any' });
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctions, decorators: [{
|
|
46
46
|
type: Injectable,
|
|
47
47
|
args: [{
|
|
48
48
|
providedIn: 'any'
|
|
@@ -79,11 +79,11 @@ class AngularFireFunctionsModule {
|
|
|
79
79
|
constructor() {
|
|
80
80
|
firebase.registerVersion('angularfire', VERSION.full, 'fn-compat');
|
|
81
81
|
}
|
|
82
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
83
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
84
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
82
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
83
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctionsModule });
|
|
84
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctionsModule, providers: [AngularFireFunctions] });
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireFunctionsModule, decorators: [{
|
|
87
87
|
type: NgModule,
|
|
88
88
|
args: [{
|
|
89
89
|
providers: [AngularFireFunctions]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-compat-functions.mjs","sources":["../../../src/compat/functions/base.ts","../../../src/compat/functions/functions.ts","../../../src/compat/functions/functions.module.ts","../../../src/compat/functions/angular-fire-compat-functions.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/functions, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n useEmulator: null,\n useFunctionsEmulator: null,\n httpsCallable: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { HttpsCallableOptions } from '@firebase/functions-types';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, from, of } from 'rxjs';\nimport { map, observeOn, shareReplay, switchMap } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const ORIGIN = new InjectionToken<string>('angularfire2.functions.origin');\nexport const REGION = new InjectionToken<string>('angularfire2.functions.region');\n\ntype UseEmulatorArguments = Parameters<firebase.functions.Functions['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.functions.use-emulator');\n\n// override httpsCallable for compatibility with 5.x\n
|
|
1
|
+
{"version":3,"file":"angular-fire-compat-functions.mjs","sources":["../../../src/compat/functions/base.ts","../../../src/compat/functions/functions.ts","../../../src/compat/functions/functions.module.ts","../../../src/compat/functions/angular-fire-compat-functions.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/functions, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n useEmulator: null,\n useFunctionsEmulator: null,\n httpsCallable: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { HttpsCallableOptions } from '@firebase/functions-types';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { Observable, from, of } from 'rxjs';\nimport { map, observeOn, shareReplay, switchMap } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const ORIGIN = new InjectionToken<string>('angularfire2.functions.origin');\nexport const REGION = new InjectionToken<string>('angularfire2.functions.region');\n\ntype UseEmulatorArguments = Parameters<firebase.functions.Functions['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.functions.use-emulator');\n\n// override httpsCallable for compatibility with 5.x\n \nexport interface AngularFireFunctions extends Omit<ɵPromiseProxy<firebase.functions.Functions>, 'httpsCallable'> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireFunctions {\n\n public readonly httpsCallable: <T = any, R = any>(name: string, options?: HttpsCallableOptions) => (data: T) => Observable<R>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(REGION) region: string | null,\n @Optional() @Inject(ORIGIN) origin: string | null,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // can't use the tuple here\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const useEmulator: UseEmulatorArguments | null = _useEmulator;\n\n const functions = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => import('firebase/compat/functions')),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵcacheInstance(`${app.name}.functions.${region || origin}`, 'AngularFireFunctions', app.name, () => {\n let functions: firebase.functions.Functions;\n if (region && origin) {\n throw new Error('REGION and ORIGIN can\\'t be used at the same time.');\n }\n functions = app.functions(region || origin || undefined);\n if (useEmulator) {\n functions.useEmulator(...useEmulator);\n }\n return functions;\n }, [region, origin, useEmulator])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n this.httpsCallable = <T = any, R = any>(name: string, options?: HttpsCallableOptions) =>\n (data: T) => from(functions).pipe(\n observeOn(schedulers.insideAngular),\n switchMap(functions => functions.httpsCallable(name, options)(data)),\n map(r => r.data as R)\n );\n\n return ɵlazySDKProxy(this, functions, zone);\n\n }\n\n}\n\nɵapplyMixins(AngularFireFunctions, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireFunctions } from './functions';\n\n@NgModule({\n providers: [ AngularFireFunctions ]\n})\nexport class AngularFireFunctionsModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'fn-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
@@ -26,9 +26,7 @@ class AngularFireMessaging {
|
|
|
26
26
|
messages;
|
|
27
27
|
requestToken;
|
|
28
28
|
deleteToken;
|
|
29
|
-
constructor(options, name,
|
|
30
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
31
|
-
platformId, zone, schedulers, vapidKey, _serviceWorker) {
|
|
29
|
+
constructor(options, name, platformId, zone, schedulers, vapidKey, _serviceWorker) {
|
|
32
30
|
const serviceWorker = _serviceWorker;
|
|
33
31
|
const messaging = of(undefined).pipe(subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), switchMap(isSupported), switchMap(supported => supported ? import('firebase/compat/messaging') : EMPTY), map(() => _firebaseAppFactory(options, zone, name)), switchMap(app => _cacheInstance(`${app.name}.messaging`, 'AngularFireMessaging', app.name, () => {
|
|
34
32
|
return of(app.messaging());
|
|
@@ -56,10 +54,10 @@ class AngularFireMessaging {
|
|
|
56
54
|
this.deleteToken = () => messaging.pipe(subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular), switchMap(messaging => messaging.deleteToken()), defaultIfEmpty(false));
|
|
57
55
|
return _lazySDKProxy(this, messaging, zone);
|
|
58
56
|
}
|
|
59
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
60
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessaging, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: VAPID_KEY, optional: true }, { token: SERVICE_WORKER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessaging, providedIn: 'any' });
|
|
61
59
|
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessaging, decorators: [{
|
|
63
61
|
type: Injectable,
|
|
64
62
|
args: [{
|
|
65
63
|
providedIn: 'any'
|
|
@@ -72,7 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
72
70
|
}, {
|
|
73
71
|
type: Inject,
|
|
74
72
|
args: [FIREBASE_APP_NAME]
|
|
75
|
-
}] }, { type:
|
|
73
|
+
}] }, { type: undefined, decorators: [{
|
|
76
74
|
type: Inject,
|
|
77
75
|
args: [PLATFORM_ID]
|
|
78
76
|
}] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }, { type: undefined, decorators: [{
|
|
@@ -92,11 +90,11 @@ class AngularFireMessagingModule {
|
|
|
92
90
|
constructor() {
|
|
93
91
|
firebase.registerVersion('angularfire', VERSION.full, 'fcm-compat');
|
|
94
92
|
}
|
|
95
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
96
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
97
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
93
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessagingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
94
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessagingModule });
|
|
95
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessagingModule, providers: [AngularFireMessaging] });
|
|
98
96
|
}
|
|
99
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireMessagingModule, decorators: [{
|
|
100
98
|
type: NgModule,
|
|
101
99
|
args: [{
|
|
102
100
|
providers: [AngularFireMessaging]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-compat-messaging.mjs","sources":["../../../src/compat/messaging/base.ts","../../../src/compat/messaging/messaging.ts","../../../src/compat/messaging/messaging.module.ts","../../../src/compat/messaging/angular-fire-compat-messaging.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/messaging, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n deleteToken: null,\n getToken: null,\n onMessage: null,\n onBackgroundMessage: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/messaging';\nimport { EMPTY, Observable, concat, of } from 'rxjs';\nimport { catchError, defaultIfEmpty, map, mergeMap, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const VAPID_KEY = new InjectionToken<string>('angularfire2.messaging.vapid-key');\nexport const SERVICE_WORKER = new InjectionToken<Promise<ServiceWorkerRegistration>>('angularfire2.messaging.service-worker-registeration');\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireMessaging extends Omit<ɵPromiseProxy<firebase.messaging.Messaging>, 'deleteToken' | 'getToken' | 'requestPermission'> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireMessaging {\n\n public readonly requestPermission: Observable<NotificationPermission>;\n public readonly getToken: Observable<string | null>;\n public readonly tokenChanges: Observable<string | null>;\n public readonly messages: Observable<firebase.messaging.MessagePayload>;\n public readonly requestToken: Observable<string | null>;\n public readonly deleteToken: (token: string) => Observable<boolean>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(VAPID_KEY) vapidKey: string|null,\n @Optional() @Inject(SERVICE_WORKER) _serviceWorker: any,\n ) {\n const serviceWorker: Promise<ServiceWorkerRegistration> | null = _serviceWorker;\n\n const messaging = of(undefined).pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(isSupported),\n switchMap(supported => supported ? import('firebase/compat/messaging') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n switchMap(app => ɵcacheInstance(`${app.name}.messaging`, 'AngularFireMessaging', app.name, () => {\n return of(app.messaging());\n }, [])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n\n this.requestPermission = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => Notification.requestPermission())\n );\n\n this.getToken = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(async messaging => {\n if (Notification.permission === 'granted') {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const serviceWorkerRegistration = serviceWorker ? await serviceWorker : null;\n return await messaging.getToken({ vapidKey, serviceWorkerRegistration });\n } else {\n return null;\n }\n })\n );\n\n const notificationPermission$ = new Observable<void>(emitter => {\n navigator.permissions.query({ name: 'notifications' }).then(notificationPerm => {\n notificationPerm.onchange = () => emitter.next();\n });\n });\n\n\n const tokenChange$ = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMapTo(notificationPermission$),\n switchMapTo(this.getToken)\n );\n\n this.tokenChanges = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => concat(this.getToken, tokenChange$))\n );\n\n\n this.messages = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(messaging => new Observable<firebase.messaging.MessagePayload>(emitter =>\n messaging.onMessage(emitter)\n )),\n );\n\n this.requestToken = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => this.requestPermission),\n catchError(() => of(null)),\n mergeMap(() => this.tokenChanges)\n );\n\n this.deleteToken = () => messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(messaging => messaging.deleteToken()),\n defaultIfEmpty(false)\n );\n\n return ɵlazySDKProxy(this, messaging, zone);\n }\n\n}\n\nɵapplyMixins(AngularFireMessaging, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireMessaging } from './messaging';\n\n@NgModule({\n providers: [ AngularFireMessaging ]\n})\nexport class AngularFireMessagingModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'fcm-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-compat-messaging.mjs","sources":["../../../src/compat/messaging/base.ts","../../../src/compat/messaging/messaging.ts","../../../src/compat/messaging/messaging.module.ts","../../../src/compat/messaging/angular-fire-compat-messaging.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/messaging, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n deleteToken: null,\n getToken: null,\n onMessage: null,\n onBackgroundMessage: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/messaging';\nimport { EMPTY, Observable, concat, of } from 'rxjs';\nimport { catchError, defaultIfEmpty, map, mergeMap, observeOn, shareReplay, subscribeOn, switchMap, switchMapTo } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const VAPID_KEY = new InjectionToken<string>('angularfire2.messaging.vapid-key');\nexport const SERVICE_WORKER = new InjectionToken<Promise<ServiceWorkerRegistration>>('angularfire2.messaging.service-worker-registeration');\n\n \nexport interface AngularFireMessaging extends Omit<ɵPromiseProxy<firebase.messaging.Messaging>, 'deleteToken' | 'getToken' | 'requestPermission'> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireMessaging {\n\n public readonly requestPermission: Observable<NotificationPermission>;\n public readonly getToken: Observable<string | null>;\n public readonly tokenChanges: Observable<string | null>;\n public readonly messages: Observable<firebase.messaging.MessagePayload>;\n public readonly requestToken: Observable<string | null>;\n public readonly deleteToken: (token: string) => Observable<boolean>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n\n @Inject(PLATFORM_ID) platformId: object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(VAPID_KEY) vapidKey: string|null,\n @Optional() @Inject(SERVICE_WORKER) _serviceWorker: any,\n ) {\n const serviceWorker: Promise<ServiceWorkerRegistration> | null = _serviceWorker;\n\n const messaging = of(undefined).pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(isSupported),\n switchMap(supported => supported ? import('firebase/compat/messaging') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n switchMap(app => ɵcacheInstance(`${app.name}.messaging`, 'AngularFireMessaging', app.name, () => {\n return of(app.messaging());\n }, [])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n\n this.requestPermission = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => Notification.requestPermission())\n );\n\n this.getToken = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(async messaging => {\n if (Notification.permission === 'granted') {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n const serviceWorkerRegistration = serviceWorker ? await serviceWorker : null;\n return await messaging.getToken({ vapidKey, serviceWorkerRegistration });\n } else {\n return null;\n }\n })\n );\n\n const notificationPermission$ = new Observable<void>(emitter => {\n navigator.permissions.query({ name: 'notifications' }).then(notificationPerm => {\n notificationPerm.onchange = () => emitter.next();\n });\n });\n\n\n const tokenChange$ = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMapTo(notificationPermission$),\n switchMapTo(this.getToken)\n );\n\n this.tokenChanges = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => concat(this.getToken, tokenChange$))\n );\n\n\n this.messages = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(messaging => new Observable<firebase.messaging.MessagePayload>(emitter =>\n messaging.onMessage(emitter)\n )),\n );\n\n this.requestToken = messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(() => this.requestPermission),\n catchError(() => of(null)),\n mergeMap(() => this.tokenChanges)\n );\n\n this.deleteToken = () => messaging.pipe(\n subscribeOn(schedulers.outsideAngular),\n observeOn(schedulers.insideAngular),\n switchMap(messaging => messaging.deleteToken()),\n defaultIfEmpty(false)\n );\n\n return ɵlazySDKProxy(this, messaging, zone);\n }\n\n}\n\nɵapplyMixins(AngularFireMessaging, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireMessaging } from './messaging';\n\n@NgModule({\n providers: [ AngularFireMessaging ]\n})\nexport class AngularFireMessagingModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'fcm-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
@@ -22,9 +22,7 @@ const DATA_COLLECTION_ENABLED = new InjectionToken('angularfire2.performance.dat
|
|
|
22
22
|
class AngularFirePerformance {
|
|
23
23
|
zone;
|
|
24
24
|
performance;
|
|
25
|
-
constructor(app, instrumentationEnabled, dataCollectionEnabled, zone,
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
27
|
-
platformId) {
|
|
25
|
+
constructor(app, instrumentationEnabled, dataCollectionEnabled, zone, platformId) {
|
|
28
26
|
this.zone = zone;
|
|
29
27
|
this.performance = of(undefined).pipe(switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/performance')) : EMPTY), map(() => _cacheInstance(`performance`, 'AngularFirePerformance', app.name, () => {
|
|
30
28
|
const performance = zone.runOutsideAngular(() => app.performance());
|
|
@@ -38,10 +36,10 @@ class AngularFirePerformance {
|
|
|
38
36
|
}, [instrumentationEnabled, dataCollectionEnabled])), shareReplay({ bufferSize: 1, refCount: false }));
|
|
39
37
|
return _lazySDKProxy(this, this.performance, zone);
|
|
40
38
|
}
|
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
42
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformance, deps: [{ token: i1.FirebaseApp }, { token: INSTRUMENTATION_ENABLED, optional: true }, { token: DATA_COLLECTION_ENABLED, optional: true }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformance, providedIn: 'any' });
|
|
43
41
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformance, decorators: [{
|
|
45
43
|
type: Injectable,
|
|
46
44
|
args: [{
|
|
47
45
|
providedIn: 'any'
|
|
@@ -56,12 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
56
54
|
}, {
|
|
57
55
|
type: Inject,
|
|
58
56
|
args: [DATA_COLLECTION_ENABLED]
|
|
59
|
-
}] }, { type: i0.NgZone }, { type:
|
|
57
|
+
}] }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
60
58
|
type: Inject,
|
|
61
59
|
args: [PLATFORM_ID]
|
|
62
60
|
}] }] });
|
|
63
61
|
const trace$ = (traceId) => {
|
|
64
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
65
62
|
if (typeof window !== 'undefined' && window.performance?.mark) {
|
|
66
63
|
const entries = window.performance.getEntriesByName(traceId, 'measure') || [];
|
|
67
64
|
const startMarkName = `_${traceId}Start[${entries.length}]`;
|
|
@@ -97,7 +94,7 @@ const traceWhile = (name, test, options) => (source$) => new Observable(subscrib
|
|
|
97
94
|
}
|
|
98
95
|
traceSubscription = undefined;
|
|
99
96
|
}
|
|
100
|
-
}, () => undefined, () => options
|
|
97
|
+
}, () => undefined, () => options?.orComplete && traceSubscription?.unsubscribe())).subscribe(subscriber);
|
|
101
98
|
});
|
|
102
99
|
const traceUntilComplete = (name) => (source$) => new Observable(subscriber => {
|
|
103
100
|
const traceSubscription = trace$(name).subscribe();
|
|
@@ -118,7 +115,6 @@ const IS_STABLE_END_MARK = '_isStableEnd';
|
|
|
118
115
|
class PerformanceMonitoringService {
|
|
119
116
|
disposable;
|
|
120
117
|
constructor(appRef) {
|
|
121
|
-
// eslint-disable-next-line @typescript-eslint/prefer-optional-chain
|
|
122
118
|
if (typeof window !== 'undefined' && window.performance?.mark) {
|
|
123
119
|
this.disposable = appRef.isStable.pipe(first(it => it), tap(() => {
|
|
124
120
|
window.performance.mark(IS_STABLE_END_MARK);
|
|
@@ -131,10 +127,10 @@ class PerformanceMonitoringService {
|
|
|
131
127
|
this.disposable.unsubscribe();
|
|
132
128
|
}
|
|
133
129
|
}
|
|
134
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
135
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
130
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PerformanceMonitoringService, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
131
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PerformanceMonitoringService });
|
|
136
132
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: PerformanceMonitoringService, decorators: [{
|
|
138
134
|
type: Injectable
|
|
139
135
|
}], ctorParameters: () => [{ type: i0.ApplicationRef }] });
|
|
140
136
|
|
|
@@ -144,11 +140,11 @@ class AngularFirePerformanceModule {
|
|
|
144
140
|
// call anything here to get perf loading
|
|
145
141
|
perf.dataCollectionEnabled.then(() => undefined);
|
|
146
142
|
}
|
|
147
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
148
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
149
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
143
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformanceModule, deps: [{ token: AngularFirePerformance }, { token: PerformanceMonitoringService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
144
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformanceModule });
|
|
145
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformanceModule, providers: [AngularFirePerformance] });
|
|
150
146
|
}
|
|
151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFirePerformanceModule, decorators: [{
|
|
152
148
|
type: NgModule,
|
|
153
149
|
args: [{
|
|
154
150
|
providers: [AngularFirePerformance]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-compat-performance.mjs","sources":["../../../src/compat/performance/base.ts","../../../src/compat/performance/performance.ts","../../../src/compat/performance/performance.service.ts","../../../src/compat/performance/performance.module.ts","../../../src/compat/performance/angular-fire-compat-performance.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/performance, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n trace: null,\n instrumentationEnabled: null,\n dataCollectionEnabled: null,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵcacheInstance, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FirebaseApp } from '@angular/fire/compat';\nimport firebase from 'firebase/compat/app';\nimport { EMPTY, Observable, Subscription, of } from 'rxjs';\nimport { map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const INSTRUMENTATION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.instrumentationEnabled');\nexport const DATA_COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.dataCollectionEnabled');\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFirePerformance extends ɵPromiseProxy<firebase.performance.Performance> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFirePerformance {\n\n private readonly performance: Observable<firebase.performance.Performance>;\n\n constructor(\n app: FirebaseApp,\n @Optional() @Inject(INSTRUMENTATION_ENABLED) instrumentationEnabled: boolean | null,\n @Optional() @Inject(DATA_COLLECTION_ENABLED) dataCollectionEnabled: boolean | null,\n private zone: NgZone,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object\n ) {\n\n this.performance = of(undefined).pipe(\n switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/performance')) : EMPTY),\n map(() => ɵcacheInstance(`performance`, 'AngularFirePerformance', app.name, () => {\n const performance = zone.runOutsideAngular(() => app.performance());\n if (instrumentationEnabled === false) {\n performance.instrumentationEnabled = false;\n }\n if (dataCollectionEnabled === false) {\n performance.dataCollectionEnabled = false;\n }\n return performance;\n }, [instrumentationEnabled, dataCollectionEnabled])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n return ɵlazySDKProxy(this, this.performance, zone);\n\n }\n\n}\n\nconst trace$ = (traceId: string) => {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (typeof window !== 'undefined' && window.performance?.mark) {\n const entries = window.performance.getEntriesByName(traceId, 'measure') || [];\n const startMarkName = `_${traceId}Start[${entries.length}]`;\n const endMarkName = `_${traceId}End[${entries.length}]`;\n return new Observable<void>(emitter => {\n window.performance.mark(startMarkName);\n emitter.next();\n return {\n unsubscribe: () => {\n window.performance.mark(endMarkName);\n window.performance.measure(traceId, startMarkName, endMarkName);\n }\n };\n });\n } else {\n return EMPTY;\n }\n};\n\nexport const traceUntil = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n a => test(a) && traceSubscription.unsubscribe(),\n () => undefined,\n () => options && options.orComplete && traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceWhile = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n let traceSubscription: Subscription | undefined;\n return source$.pipe(\n tap(\n a => {\n if (test(a)) {\n traceSubscription = traceSubscription || trace$(name).subscribe();\n } else {\n if (traceSubscription) {\n traceSubscription.unsubscribe();\n }\n\n traceSubscription = undefined;\n }\n },\n () => undefined,\n () => options && options.orComplete && traceSubscription && traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilComplete = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => undefined,\n () => undefined,\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilFirst = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => undefined,\n () => undefined )\n ).subscribe(subscriber);\n});\n\nexport const trace = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => undefined,\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nɵapplyMixins(AngularFirePerformance, [proxyPolyfillCompat]);\n","import { ApplicationRef, Injectable, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\n\nconst IS_STABLE_START_MARK = 'Zone';\nconst IS_STABLE_END_MARK = '_isStableEnd';\n\n@Injectable()\nexport class PerformanceMonitoringService implements OnDestroy {\n\n private disposable: Subscription|undefined;\n\n constructor(appRef: ApplicationRef) {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (typeof window !== 'undefined' && window.performance?.mark) {\n this.disposable = appRef.isStable.pipe(\n first(it => it),\n tap(() => {\n window.performance.mark(IS_STABLE_END_MARK);\n window.performance.measure('isStable', IS_STABLE_START_MARK, IS_STABLE_END_MARK);\n })\n ).subscribe();\n }\n }\n\n ngOnDestroy() {\n if (this.disposable) { this.disposable.unsubscribe(); }\n }\n\n}\n","import { NgModule, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFirePerformance } from './performance';\nimport { PerformanceMonitoringService } from './performance.service';\n\n@NgModule({\n providers: [ AngularFirePerformance ]\n})\nexport class AngularFirePerformanceModule {\n constructor(\n perf: AngularFirePerformance,\n @Optional() _: PerformanceMonitoringService\n ) {\n firebase.registerVersion('angularfire', VERSION.full, 'perf-compat');\n // call anything here to get perf loading\n perf.dataCollectionEnabled.then(() => undefined);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins","i1.AngularFirePerformance","i2.PerformanceMonitoringService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-compat-performance.mjs","sources":["../../../src/compat/performance/base.ts","../../../src/compat/performance/performance.ts","../../../src/compat/performance/performance.service.ts","../../../src/compat/performance/performance.module.ts","../../../src/compat/performance/angular-fire-compat-performance.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/performance, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n trace: null,\n instrumentationEnabled: null,\n dataCollectionEnabled: null,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵcacheInstance, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FirebaseApp } from '@angular/fire/compat';\nimport firebase from 'firebase/compat/app';\nimport { EMPTY, Observable, Subscription, of } from 'rxjs';\nimport { map, shareReplay, switchMap, tap } from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\n\nexport const INSTRUMENTATION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.instrumentationEnabled');\nexport const DATA_COLLECTION_ENABLED = new InjectionToken<boolean>('angularfire2.performance.dataCollectionEnabled');\n\n \nexport interface AngularFirePerformance extends ɵPromiseProxy<firebase.performance.Performance> {\n}\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFirePerformance {\n\n private readonly performance: Observable<firebase.performance.Performance>;\n\n constructor(\n app: FirebaseApp,\n @Optional() @Inject(INSTRUMENTATION_ENABLED) instrumentationEnabled: boolean | null,\n @Optional() @Inject(DATA_COLLECTION_ENABLED) dataCollectionEnabled: boolean | null,\n private zone: NgZone,\n\n @Inject(PLATFORM_ID) platformId: object\n ) {\n\n this.performance = of(undefined).pipe(\n switchMap(() => isPlatformBrowser(platformId) ? zone.runOutsideAngular(() => import('firebase/compat/performance')) : EMPTY),\n map(() => ɵcacheInstance(`performance`, 'AngularFirePerformance', app.name, () => {\n const performance = zone.runOutsideAngular(() => app.performance());\n if (instrumentationEnabled === false) {\n performance.instrumentationEnabled = false;\n }\n if (dataCollectionEnabled === false) {\n performance.dataCollectionEnabled = false;\n }\n return performance;\n }, [instrumentationEnabled, dataCollectionEnabled])),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n return ɵlazySDKProxy(this, this.performance, zone);\n\n }\n\n}\n\nconst trace$ = (traceId: string) => {\n \n if (typeof window !== 'undefined' && window.performance?.mark) {\n const entries = window.performance.getEntriesByName(traceId, 'measure') || [];\n const startMarkName = `_${traceId}Start[${entries.length}]`;\n const endMarkName = `_${traceId}End[${entries.length}]`;\n return new Observable<void>(emitter => {\n window.performance.mark(startMarkName);\n emitter.next();\n return {\n unsubscribe: () => {\n window.performance.mark(endMarkName);\n window.performance.measure(traceId, startMarkName, endMarkName);\n }\n };\n });\n } else {\n return EMPTY;\n }\n};\n\nexport const traceUntil = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n a => test(a) && traceSubscription.unsubscribe(),\n () => undefined,\n () => options && options.orComplete && traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceWhile = <T = any>(\n name: string,\n test: (a: T) => boolean,\n options?: { orComplete?: boolean }\n) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n let traceSubscription: Subscription | undefined;\n return source$.pipe(\n tap(\n a => {\n if (test(a)) {\n traceSubscription = traceSubscription || trace$(name).subscribe();\n } else {\n if (traceSubscription) {\n traceSubscription.unsubscribe();\n }\n\n traceSubscription = undefined;\n }\n },\n () => undefined,\n () => options?.orComplete && traceSubscription?.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilComplete = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => undefined,\n () => undefined,\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nexport const traceUntilFirst = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => undefined,\n () => undefined )\n ).subscribe(subscriber);\n});\n\nexport const trace = <T = any>(name: string) => (source$: Observable<T>) => new Observable<T>(subscriber => {\n const traceSubscription = trace$(name).subscribe();\n return source$.pipe(\n tap(\n () => traceSubscription.unsubscribe(),\n () => undefined,\n () => traceSubscription.unsubscribe()\n )\n ).subscribe(subscriber);\n});\n\nɵapplyMixins(AngularFirePerformance, [proxyPolyfillCompat]);\n","import { ApplicationRef, Injectable, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first, tap } from 'rxjs/operators';\n\nconst IS_STABLE_START_MARK = 'Zone';\nconst IS_STABLE_END_MARK = '_isStableEnd';\n\n@Injectable()\nexport class PerformanceMonitoringService implements OnDestroy {\n\n private disposable: Subscription|undefined;\n\n constructor(appRef: ApplicationRef) {\n \n if (typeof window !== 'undefined' && window.performance?.mark) {\n this.disposable = appRef.isStable.pipe(\n first(it => it),\n tap(() => {\n window.performance.mark(IS_STABLE_END_MARK);\n window.performance.measure('isStable', IS_STABLE_START_MARK, IS_STABLE_END_MARK);\n })\n ).subscribe();\n }\n }\n\n ngOnDestroy() {\n if (this.disposable) { this.disposable.unsubscribe(); }\n }\n\n}\n","import { NgModule, Optional } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFirePerformance } from './performance';\nimport { PerformanceMonitoringService } from './performance.service';\n\n@NgModule({\n providers: [ AngularFirePerformance ]\n})\nexport class AngularFirePerformanceModule {\n constructor(\n perf: AngularFirePerformance,\n @Optional() _: PerformanceMonitoringService\n ) {\n firebase.registerVersion('angularfire', VERSION.full, 'perf-compat');\n // call anything here to get perf loading\n perf.dataCollectionEnabled.then(() => undefined);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins","i1.AngularFirePerformance","i2.PerformanceMonitoringService"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, EnvironmentInjector,
|
|
2
|
+
import { InjectionToken, inject, EnvironmentInjector, Inject, Optional, Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import { pendingUntilEvent } from '@angular/core/rxjs-interop';
|
|
4
4
|
import * as i1 from '@angular/fire';
|
|
5
5
|
import { VERSION } from '@angular/fire';
|
|
@@ -42,7 +42,7 @@ class Value {
|
|
|
42
42
|
_source;
|
|
43
43
|
_value;
|
|
44
44
|
asBoolean() {
|
|
45
|
-
return ['1', 'true', 't', 'y', 'yes', 'on'].
|
|
45
|
+
return ['1', 'true', 't', 'y', 'yes', 'on'].includes(this._value.toLowerCase());
|
|
46
46
|
}
|
|
47
47
|
asString() {
|
|
48
48
|
return this._value;
|
|
@@ -99,9 +99,7 @@ class AngularFireRemoteConfig {
|
|
|
99
99
|
booleans;
|
|
100
100
|
strings;
|
|
101
101
|
injector = inject(EnvironmentInjector);
|
|
102
|
-
constructor(options, name, settings, defaultConfig, zone, schedulers
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/ban-types
|
|
104
|
-
platformId) {
|
|
102
|
+
constructor(options, name, settings, defaultConfig, zone, schedulers) {
|
|
105
103
|
this.zone = zone;
|
|
106
104
|
const remoteConfig$ = of(undefined).pipe(observeOn(schedulers.outsideAngular), switchMap(() => isSupported()), switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY), map(() => _firebaseAppFactory(options, zone, name)), map(app => _cacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {
|
|
107
105
|
const rc = app.remoteConfig();
|
|
@@ -133,10 +131,10 @@ class AngularFireRemoteConfig {
|
|
|
133
131
|
this.numbers = proxyAll(this.parameters, 'numbers');
|
|
134
132
|
return _lazySDKProxy(this, loadedRemoteConfig$, zone);
|
|
135
133
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
134
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfig, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: SETTINGS, optional: true }, { token: DEFAULTS, optional: true }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
135
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfig, providedIn: 'any' });
|
|
138
136
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfig, decorators: [{
|
|
140
138
|
type: Injectable,
|
|
141
139
|
args: [{
|
|
142
140
|
providedIn: 'any'
|
|
@@ -159,10 +157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0", ngImpor
|
|
|
159
157
|
}, {
|
|
160
158
|
type: Inject,
|
|
161
159
|
args: [DEFAULTS]
|
|
162
|
-
}] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }
|
|
163
|
-
type: Inject,
|
|
164
|
-
args: [PLATFORM_ID]
|
|
165
|
-
}] }] });
|
|
160
|
+
}] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }] });
|
|
166
161
|
const budget = (interval) => (source) => new Observable(observer => {
|
|
167
162
|
let timedOut = false;
|
|
168
163
|
// TODO use scheduler task rather than settimeout
|
|
@@ -230,11 +225,11 @@ class AngularFireRemoteConfigModule {
|
|
|
230
225
|
constructor() {
|
|
231
226
|
firebase.registerVersion('angularfire', VERSION.full, 'rc-compat');
|
|
232
227
|
}
|
|
233
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
234
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
235
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
228
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
229
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfigModule });
|
|
230
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfigModule, providers: [AngularFireRemoteConfig] });
|
|
236
231
|
}
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: AngularFireRemoteConfigModule, decorators: [{
|
|
238
233
|
type: NgModule,
|
|
239
234
|
args: [{
|
|
240
235
|
providers: [AngularFireRemoteConfig]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"angular-fire-compat-remote-config.mjs","sources":["../../../src/compat/remote-config/base.ts","../../../src/compat/remote-config/remote-config.ts","../../../src/compat/remote-config/remote-config.module.ts","../../../src/compat/remote-config/angular-fire-compat-remote-config.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/remote-config, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n settings: null,\n defaultConfig: null,\n fetchTimeMillis: null,\n lastFetchStatus: null,\n activate: null,\n ensureInitialized: null,\n fetch: null,\n fetchAndActivate: null,\n getAll: null,\n getBoolean: null,\n getNumber: null,\n getString: null,\n getValue: null,\n setLogLevel: null,\n};\n","import { EnvironmentInjector, Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID, inject } from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/remote-config';\nimport { EMPTY, MonoTypeOperatorFunction, Observable, OperatorFunction, concat, of, pipe } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n groupBy,\n map,\n mergeMap,\n observeOn,\n scan,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\nimport { Settings } from './interfaces';\n\nexport type ConfigTemplate = Record<string, string | number | boolean>;\n\nexport const SETTINGS = new InjectionToken<Settings>('angularfire2.remoteConfig.settings');\nexport const DEFAULTS = new InjectionToken<ConfigTemplate>('angularfire2.remoteConfig.defaultConfig');\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireRemoteConfig extends ɵPromiseProxy<firebase.remoteConfig.RemoteConfig> {\n}\n\nconst AS_TO_FN = { strings: 'asString', numbers: 'asNumber', booleans: 'asBoolean' };\nconst STATIC_VALUES = { numbers: 0, booleans: false, strings: undefined };\n\n// TODO look into the types here, I don't like the anys\nconst proxyAll = (observable: Observable<Parameter[]>, as: 'numbers' | 'booleans' | 'strings') => new Proxy(\n observable.pipe(mapToObject(as as any)), {\n get: (self, name: string) => self[name] || observable.pipe(\n map(all => all.find(p => p.key === name)),\n map(param => param ? param[AS_TO_FN[as]]() : STATIC_VALUES[as]),\n distinctUntilChanged()\n )\n }\n) as any;\n\n// TODO export as implements Partial<...> so minor doesn't break us\nexport class Value implements firebase.remoteConfig.Value {\n asBoolean() {\n return ['1', 'true', 't', 'y', 'yes', 'on'].indexOf(this._value.toLowerCase()) > -1;\n }\n\n asString() {\n return this._value;\n }\n\n asNumber() {\n return Number(this._value) || 0;\n }\n\n getSource() {\n return this._source;\n }\n\n constructor(public _source: firebase.remoteConfig.ValueSource, public _value: string) {\n }\n}\n\n// SEMVER use ConstructorParameters when we can support Typescript 3.6\nexport class Parameter extends Value {\n constructor(public key: string, public fetchTimeMillis: number, source: firebase.remoteConfig.ValueSource, value: string) {\n super(source, value);\n }\n}\n\n// If it's a Parameter array, test any, else test the individual Parameter\nconst filterTest = (fn: (param: Parameter) => boolean) => filter<Parameter | Parameter[]>(it => Array.isArray(it) ? it.some(fn) : fn(it));\n\n// Allow the user to bypass the default values and wait till they get something from the server, even if it's a cached copy;\n// if used in conjuntion with first() it will only fetch RC values from the server if they aren't cached locally\nexport const filterRemote = () => filterTest(p => p.getSource() === 'remote');\n\n// filterFresh allows the developer to effectively set up a maximum cache time\nexport const filterFresh = (howRecentInMillis: number) => filterTest(p => p.fetchTimeMillis + howRecentInMillis >= new Date().getTime());\n\n\n// I ditched loading the defaults into RC and a simple map for scan since we already have our own defaults implementation.\n// The idea here being that if they have a default that never loads from the server, they will be able to tell via fetchTimeMillis\n// on the Parameter. Also if it doesn't come from the server it won't emit again in .changes, due to the distinctUntilChanged,\n// which we can simplify to === rather than deep comparison\nconst scanToParametersArray = (\n remoteConfig: Observable<firebase.remoteConfig.RemoteConfig | undefined>\n): OperatorFunction<Record<string, firebase.remoteConfig.Value>, Parameter[]> => pipe(\n withLatestFrom(remoteConfig),\n scan((existing, [all, rc]) => {\n // SEMVER use \"new Set\" to unique once we're only targeting es6\n // at the scale we expect remote config to be at, we probably won't see a performance hit from this unoptimized uniqueness\n // implementation.\n // const allKeys = [...new Set([...existing.map(p => p.key), ...Object.keys(all)])];\n const allKeys = [...existing.map(p => p.key), ...Object.keys(all)].filter((v, i, a) => a.indexOf(v) === i);\n return allKeys.map(key => {\n const updatedValue = all[key];\n return updatedValue ? new Parameter(key, rc ? rc.fetchTimeMillis : -1, updatedValue.getSource(), updatedValue.asString())\n : existing.find(p => p.key === key);\n });\n }, [] as Parameter[])\n);\n\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireRemoteConfig {\n\n readonly changes: Observable<Parameter>;\n readonly parameters: Observable<Parameter[]>;\n readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;\n readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;\n readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;\n\n private readonly injector = inject(EnvironmentInjector);\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(SETTINGS) settings: Settings | null,\n @Optional() @Inject(DEFAULTS) defaultConfig: ConfigTemplate | null,\n private zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object\n ) {\n const remoteConfig$ = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => isSupported()),\n switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {\n const rc = app.remoteConfig();\n if (settings) {\n rc.settings = settings;\n }\n if (defaultConfig) {\n rc.defaultConfig = defaultConfig;\n }\n return rc;\n }, [settings, defaultConfig])),\n startWith<firebase.remoteConfig.RemoteConfig, undefined>(undefined),\n shareReplay({ bufferSize: 1, refCount: false })\n ) as Observable<any>;\n\n const loadedRemoteConfig$ = remoteConfig$.pipe(\n filter<firebase.remoteConfig.RemoteConfig>(rc => !!rc)\n );\n\n const default$: Observable<Record<string, firebase.remoteConfig.Value>> = of(Object.keys(defaultConfig || {}).reduce(\n (c, k) => ({ ...c, [k]: new Value('default', defaultConfig[k].toString()) }), {}\n ));\n\n // we should filter out the defaults we provided to RC, since we have our own implementation\n // that gives us a -1 for fetchTimeMillis (so filterFresh can filter them out)\n const filterOutDefaults = map<Record<string, firebase.remoteConfig.Value>, Record<string, firebase.remoteConfig.Value>>(all =>\n Object.keys(all)\n .filter(key => all[key].getSource() !== 'default')\n .reduce((acc, key) => ({ ...acc, [key]: all[key] }), {})\n );\n\n const existing$ = loadedRemoteConfig$.pipe(\n switchMap(rc =>\n rc.activate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n ),\n filterOutDefaults\n );\n\n const fresh$ = loadedRemoteConfig$.pipe(\n switchMap(rc => zone.runOutsideAngular(() =>\n rc.fetchAndActivate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n )),\n filterOutDefaults\n );\n\n this.parameters = concat(default$, existing$, fresh$).pipe(\n scanToParametersArray(remoteConfig$),\n pendingUntilEvent(this.injector),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.changes = this.parameters.pipe(\n switchMap(params => of(...params)),\n groupBy(param => param.key),\n mergeMap(group => group.pipe(\n distinctUntilChanged()\n ))\n );\n\n this.strings = proxyAll(this.parameters, 'strings');\n this.booleans = proxyAll(this.parameters, 'booleans');\n this.numbers = proxyAll(this.parameters, 'numbers');\n\n return ɵlazySDKProxy(this, loadedRemoteConfig$, zone);\n }\n\n}\n\n\nexport const budget = <T>(interval: number): MonoTypeOperatorFunction<T> => (source: Observable<T>) => new Observable<T>(observer => {\n let timedOut = false;\n // TODO use scheduler task rather than settimeout\n const timeout = setTimeout(() => {\n observer.complete();\n timedOut = true;\n }, interval);\n return source.subscribe({\n next(val) {\n if (!timedOut) {\n observer.next(val);\n }\n },\n error(err) {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.error(err);\n }\n },\n complete() {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.complete();\n }\n }\n });\n});\n\nconst typedMethod = (it: any) => {\n switch (typeof it) {\n case 'string':\n return 'asString';\n case 'boolean':\n return 'asBoolean';\n case 'number':\n return 'asNumber';\n default:\n return 'asString';\n }\n};\n\n\nexport function scanToObject(): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject(to: 'numbers'): OperatorFunction<Parameter, Record<string, number | undefined>>;\nexport function scanToObject(to: 'booleans'): OperatorFunction<Parameter, Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function scanToObject(to: 'strings'): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter, T & Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO cleanup\n scan(\n (c, p: Parameter) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n ),\n debounceTime(1),\n budget(10),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nexport function mapToObject(): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject(to: 'numbers'): OperatorFunction<Parameter[], Record<string, number | undefined>>;\nexport function mapToObject(to: 'booleans'): OperatorFunction<Parameter[], Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function mapToObject(to: 'strings'): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(template: T):\n OperatorFunction<Parameter[], T & Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO this is getting a little long, cleanup\n map((params: Parameter[]) => params.reduce(\n (c, p) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n )),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nɵapplyMixins(AngularFireRemoteConfig, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireRemoteConfig } from './remote-config';\n\n@NgModule({\n providers: [ AngularFireRemoteConfig ]\n})\nexport class AngularFireRemoteConfigModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'rc-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"angular-fire-compat-remote-config.mjs","sources":["../../../src/compat/remote-config/base.ts","../../../src/compat/remote-config/remote-config.ts","../../../src/compat/remote-config/remote-config.module.ts","../../../src/compat/remote-config/angular-fire-compat-remote-config.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/remote-config, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n settings: null,\n defaultConfig: null,\n fetchTimeMillis: null,\n lastFetchStatus: null,\n activate: null,\n ensureInitialized: null,\n fetch: null,\n fetchAndActivate: null,\n getAll: null,\n getBoolean: null,\n getNumber: null,\n getString: null,\n getValue: null,\n setLogLevel: null,\n};\n","import { EnvironmentInjector, Inject, Injectable, InjectionToken, NgZone, Optional, inject } from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/remote-config';\nimport { EMPTY, MonoTypeOperatorFunction, Observable, OperatorFunction, concat, of, pipe } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n groupBy,\n map,\n mergeMap,\n observeOn,\n scan,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\nimport { Settings } from './interfaces';\n\nexport type ConfigTemplate = Record<string, string | number | boolean>;\n\nexport const SETTINGS = new InjectionToken<Settings>('angularfire2.remoteConfig.settings');\nexport const DEFAULTS = new InjectionToken<ConfigTemplate>('angularfire2.remoteConfig.defaultConfig');\n\n \nexport interface AngularFireRemoteConfig extends ɵPromiseProxy<firebase.remoteConfig.RemoteConfig> {\n}\n\nconst AS_TO_FN = { strings: 'asString', numbers: 'asNumber', booleans: 'asBoolean' };\nconst STATIC_VALUES = { numbers: 0, booleans: false, strings: undefined };\n\n// TODO look into the types here, I don't like the anys\nconst proxyAll = (observable: Observable<Parameter[]>, as: 'numbers' | 'booleans' | 'strings') => new Proxy(\n observable.pipe(mapToObject(as as any)), {\n get: (self, name: string) => self[name] || observable.pipe(\n map(all => all.find(p => p.key === name)),\n map(param => param ? param[AS_TO_FN[as]]() : STATIC_VALUES[as]),\n distinctUntilChanged()\n )\n }\n) as any;\n\n// TODO export as implements Partial<...> so minor doesn't break us\nexport class Value implements firebase.remoteConfig.Value {\n asBoolean() {\n return ['1', 'true', 't', 'y', 'yes', 'on'].includes(this._value.toLowerCase());\n }\n\n asString() {\n return this._value;\n }\n\n asNumber() {\n return Number(this._value) || 0;\n }\n\n getSource() {\n return this._source;\n }\n\n constructor(public _source: firebase.remoteConfig.ValueSource, public _value: string) {\n }\n}\n\n// SEMVER use ConstructorParameters when we can support Typescript 3.6\nexport class Parameter extends Value {\n constructor(public key: string, public fetchTimeMillis: number, source: firebase.remoteConfig.ValueSource, value: string) {\n super(source, value);\n }\n}\n\n// If it's a Parameter array, test any, else test the individual Parameter\nconst filterTest = (fn: (param: Parameter) => boolean) => filter<Parameter | Parameter[]>(it => Array.isArray(it) ? it.some(fn) : fn(it));\n\n// Allow the user to bypass the default values and wait till they get something from the server, even if it's a cached copy;\n// if used in conjuntion with first() it will only fetch RC values from the server if they aren't cached locally\nexport const filterRemote = () => filterTest(p => p.getSource() === 'remote');\n\n// filterFresh allows the developer to effectively set up a maximum cache time\nexport const filterFresh = (howRecentInMillis: number) => filterTest(p => p.fetchTimeMillis + howRecentInMillis >= new Date().getTime());\n\n\n// I ditched loading the defaults into RC and a simple map for scan since we already have our own defaults implementation.\n// The idea here being that if they have a default that never loads from the server, they will be able to tell via fetchTimeMillis\n// on the Parameter. Also if it doesn't come from the server it won't emit again in .changes, due to the distinctUntilChanged,\n// which we can simplify to === rather than deep comparison\nconst scanToParametersArray = (\n remoteConfig: Observable<firebase.remoteConfig.RemoteConfig | undefined>\n): OperatorFunction<Record<string, firebase.remoteConfig.Value>, Parameter[]> => pipe(\n withLatestFrom(remoteConfig),\n scan((existing, [all, rc]) => {\n // SEMVER use \"new Set\" to unique once we're only targeting es6\n // at the scale we expect remote config to be at, we probably won't see a performance hit from this unoptimized uniqueness\n // implementation.\n // const allKeys = [...new Set([...existing.map(p => p.key), ...Object.keys(all)])];\n const allKeys = [...existing.map(p => p.key), ...Object.keys(all)].filter((v, i, a) => a.indexOf(v) === i);\n return allKeys.map(key => {\n const updatedValue = all[key];\n return updatedValue ? new Parameter(key, rc ? rc.fetchTimeMillis : -1, updatedValue.getSource(), updatedValue.asString())\n : existing.find(p => p.key === key);\n });\n }, [] as Parameter[])\n);\n\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireRemoteConfig {\n\n readonly changes: Observable<Parameter>;\n readonly parameters: Observable<Parameter[]>;\n readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;\n readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;\n readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;\n\n private readonly injector = inject(EnvironmentInjector);\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(SETTINGS) settings: Settings | null,\n @Optional() @Inject(DEFAULTS) defaultConfig: ConfigTemplate | null,\n private zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n ) {\n const remoteConfig$ = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => isSupported()),\n switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {\n const rc = app.remoteConfig();\n if (settings) {\n rc.settings = settings;\n }\n if (defaultConfig) {\n rc.defaultConfig = defaultConfig;\n }\n return rc;\n }, [settings, defaultConfig])),\n startWith<firebase.remoteConfig.RemoteConfig, undefined>(undefined),\n shareReplay({ bufferSize: 1, refCount: false })\n ) as Observable<any>;\n\n const loadedRemoteConfig$ = remoteConfig$.pipe(\n filter<firebase.remoteConfig.RemoteConfig>(rc => !!rc)\n );\n\n const default$: Observable<Record<string, firebase.remoteConfig.Value>> = of(Object.keys(defaultConfig || {}).reduce(\n (c, k) => ({ ...c, [k]: new Value('default', defaultConfig[k].toString()) }), {}\n ));\n\n // we should filter out the defaults we provided to RC, since we have our own implementation\n // that gives us a -1 for fetchTimeMillis (so filterFresh can filter them out)\n const filterOutDefaults = map<Record<string, firebase.remoteConfig.Value>, Record<string, firebase.remoteConfig.Value>>(all =>\n Object.keys(all)\n .filter(key => all[key].getSource() !== 'default')\n .reduce((acc, key) => ({ ...acc, [key]: all[key] }), {})\n );\n\n const existing$ = loadedRemoteConfig$.pipe(\n switchMap(rc =>\n rc.activate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n ),\n filterOutDefaults\n );\n\n const fresh$ = loadedRemoteConfig$.pipe(\n switchMap(rc => zone.runOutsideAngular(() =>\n rc.fetchAndActivate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n )),\n filterOutDefaults\n );\n\n this.parameters = concat(default$, existing$, fresh$).pipe(\n scanToParametersArray(remoteConfig$),\n pendingUntilEvent(this.injector),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.changes = this.parameters.pipe(\n switchMap(params => of(...params)),\n groupBy(param => param.key),\n mergeMap(group => group.pipe(\n distinctUntilChanged()\n ))\n );\n\n this.strings = proxyAll(this.parameters, 'strings');\n this.booleans = proxyAll(this.parameters, 'booleans');\n this.numbers = proxyAll(this.parameters, 'numbers');\n\n return ɵlazySDKProxy(this, loadedRemoteConfig$, zone);\n }\n\n}\n\n\nexport const budget = <T>(interval: number): MonoTypeOperatorFunction<T> => (source: Observable<T>) => new Observable<T>(observer => {\n let timedOut = false;\n // TODO use scheduler task rather than settimeout\n const timeout = setTimeout(() => {\n observer.complete();\n timedOut = true;\n }, interval);\n return source.subscribe({\n next(val) {\n if (!timedOut) {\n observer.next(val);\n }\n },\n error(err) {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.error(err);\n }\n },\n complete() {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.complete();\n }\n }\n });\n});\n\nconst typedMethod = (it: any) => {\n switch (typeof it) {\n case 'string':\n return 'asString';\n case 'boolean':\n return 'asBoolean';\n case 'number':\n return 'asNumber';\n default:\n return 'asString';\n }\n};\n\n\nexport function scanToObject(): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject(to: 'numbers'): OperatorFunction<Parameter, Record<string, number | undefined>>;\nexport function scanToObject(to: 'booleans'): OperatorFunction<Parameter, Record<string, boolean | undefined>>;\n \nexport function scanToObject(to: 'strings'): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter, T & Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO cleanup\n scan(\n (c, p: Parameter) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n ),\n debounceTime(1),\n budget(10),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nexport function mapToObject(): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject(to: 'numbers'): OperatorFunction<Parameter[], Record<string, number | undefined>>;\nexport function mapToObject(to: 'booleans'): OperatorFunction<Parameter[], Record<string, boolean | undefined>>;\n \nexport function mapToObject(to: 'strings'): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(template: T):\n OperatorFunction<Parameter[], T & Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO this is getting a little long, cleanup\n map((params: Parameter[]) => params.reduce(\n (c, p) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n )),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nɵapplyMixins(AngularFireRemoteConfig, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireRemoteConfig } from './remote-config';\n\n@NgModule({\n providers: [ AngularFireRemoteConfig ]\n})\nexport class AngularFireRemoteConfigModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'rc-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
|