@angular/fire 18.0.0 → 18.0.1-canary.3639e41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/analytics/analytics.module.mjs +5 -5
- package/esm2022/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/app/app.module.mjs +5 -5
- package/esm2022/app-check/app-check.module.mjs +5 -5
- package/esm2022/auth/auth.module.mjs +5 -5
- package/esm2022/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/analytics/analytics.mjs +4 -4
- package/esm2022/compat/analytics/analytics.module.mjs +5 -5
- package/esm2022/compat/analytics/screen-tracking.service.mjs +4 -4
- package/esm2022/compat/analytics/user-tracking.service.mjs +4 -4
- package/esm2022/compat/auth/auth.mjs +4 -4
- package/esm2022/compat/auth/auth.module.mjs +5 -5
- package/esm2022/compat/auth-guard/auth-guard.mjs +4 -4
- package/esm2022/compat/auth-guard/auth-guard.module.mjs +5 -5
- package/esm2022/compat/database/database.mjs +4 -4
- package/esm2022/compat/database/database.module.mjs +5 -5
- package/esm2022/compat/firebase.app.module.mjs +5 -5
- package/esm2022/compat/firestore/firestore.mjs +4 -4
- package/esm2022/compat/firestore/firestore.module.mjs +5 -5
- package/esm2022/compat/functions/functions.mjs +4 -4
- package/esm2022/compat/functions/functions.module.mjs +5 -5
- package/esm2022/compat/messaging/messaging.mjs +4 -4
- package/esm2022/compat/messaging/messaging.module.mjs +5 -5
- package/esm2022/compat/performance/performance.mjs +4 -4
- package/esm2022/compat/performance/performance.module.mjs +5 -5
- package/esm2022/compat/performance/performance.service.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.mjs +4 -4
- package/esm2022/compat/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +8 -8
- package/esm2022/compat/storage/storage.mjs +4 -4
- package/esm2022/compat/storage/storage.module.mjs +5 -5
- package/esm2022/database/database.module.mjs +5 -5
- package/esm2022/firestore/firestore.module.mjs +5 -5
- package/esm2022/firestore/lite/lite.module.mjs +5 -5
- package/esm2022/functions/functions.module.mjs +5 -5
- package/esm2022/messaging/messaging.module.mjs +5 -5
- package/esm2022/performance/performance.module.mjs +5 -5
- package/esm2022/remote-config/remote-config.module.mjs +5 -5
- package/esm2022/storage/storage.module.mjs +5 -5
- package/esm2022/vertexai-preview/vertexai.module.mjs +5 -5
- package/esm2022/zones.mjs +4 -4
- package/fesm2022/angular-fire-analytics.mjs +297 -410
- package/fesm2022/angular-fire-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-app-check.mjs +91 -162
- package/fesm2022/angular-fire-app-check.mjs.map +1 -7
- package/fesm2022/angular-fire-app.mjs +108 -181
- package/fesm2022/angular-fire-app.mjs.map +1 -7
- package/fesm2022/angular-fire-auth-guard.mjs +73 -83
- package/fesm2022/angular-fire-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-auth.mjs +142 -421
- package/fesm2022/angular-fire-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-analytics.mjs +271 -262
- package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth-guard.mjs +72 -83
- package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-auth.mjs +214 -215
- package/fesm2022/angular-fire-compat-auth.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-database.mjs +378 -375
- package/fesm2022/angular-fire-compat-database.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-firestore.mjs +677 -537
- package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-functions.mjs +94 -98
- package/fesm2022/angular-fire-compat-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-messaging.mjs +107 -107
- package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-performance.mjs +152 -158
- package/fesm2022/angular-fire-compat-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-remote-config.mjs +232 -216
- package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-compat-storage.mjs +231 -226
- package/fesm2022/angular-fire-compat-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-compat.mjs +153 -140
- package/fesm2022/angular-fire-compat.mjs.map +1 -7
- package/fesm2022/angular-fire-database.mjs +136 -376
- package/fesm2022/angular-fire-database.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore-lite.mjs +139 -388
- package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -7
- package/fesm2022/angular-fire-firestore.mjs +167 -526
- package/fesm2022/angular-fire-firestore.mjs.map +1 -7
- package/fesm2022/angular-fire-functions.mjs +93 -166
- package/fesm2022/angular-fire-functions.mjs.map +1 -7
- package/fesm2022/angular-fire-messaging.mjs +118 -196
- package/fesm2022/angular-fire-messaging.mjs.map +1 -7
- package/fesm2022/angular-fire-performance.mjs +104 -178
- package/fesm2022/angular-fire-performance.mjs.map +1 -7
- package/fesm2022/angular-fire-remote-config.mjs +132 -254
- package/fesm2022/angular-fire-remote-config.mjs.map +1 -7
- package/fesm2022/angular-fire-storage.mjs +105 -225
- package/fesm2022/angular-fire-storage.mjs.map +1 -7
- package/fesm2022/angular-fire-vertexai-preview.mjs +85 -146
- package/fesm2022/angular-fire-vertexai-preview.mjs.map +1 -7
- package/fesm2022/angular-fire.mjs +213 -183
- package/fesm2022/angular-fire.mjs.map +1 -7
- package/package.json +1 -1
|
@@ -1,195 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from2, except, desc) => {
|
|
10
|
-
if (from2 && typeof from2 === "object" || typeof from2 === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from2))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc(from2, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
|
|
19
|
-
// angular-fire-app.mjs
|
|
20
|
-
var angular_fire_app_exports = {};
|
|
21
|
-
__export(angular_fire_app_exports, {
|
|
22
|
-
FirebaseApp: () => FirebaseApp,
|
|
23
|
-
FirebaseAppModule: () => FirebaseAppModule,
|
|
24
|
-
FirebaseApps: () => FirebaseApps,
|
|
25
|
-
deleteApp: () => deleteApp,
|
|
26
|
-
firebaseApp$: () => firebaseApp$,
|
|
27
|
-
getApp: () => getApp2,
|
|
28
|
-
getApps: () => getApps2,
|
|
29
|
-
initializeApp: () => initializeApp,
|
|
30
|
-
initializeServerApp: () => initializeServerApp,
|
|
31
|
-
onLog: () => onLog,
|
|
32
|
-
provideFirebaseApp: () => provideFirebaseApp,
|
|
33
|
-
registerVersion: () => registerVersion2,
|
|
34
|
-
setLogLevel: () => setLogLevel
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// public_api.mjs
|
|
38
|
-
var public_api_exports = {};
|
|
39
|
-
__export(public_api_exports, {
|
|
40
|
-
FirebaseApp: () => FirebaseApp,
|
|
41
|
-
FirebaseAppModule: () => FirebaseAppModule,
|
|
42
|
-
FirebaseApps: () => FirebaseApps,
|
|
43
|
-
deleteApp: () => deleteApp,
|
|
44
|
-
firebaseApp$: () => firebaseApp$,
|
|
45
|
-
getApp: () => getApp2,
|
|
46
|
-
getApps: () => getApps2,
|
|
47
|
-
initializeApp: () => initializeApp,
|
|
48
|
-
initializeServerApp: () => initializeServerApp,
|
|
49
|
-
onLog: () => onLog,
|
|
50
|
-
provideFirebaseApp: () => provideFirebaseApp,
|
|
51
|
-
registerVersion: () => registerVersion2,
|
|
52
|
-
setLogLevel: () => setLogLevel
|
|
53
|
-
});
|
|
1
|
+
import { getApps as getApps$1, getApp as getApp$1, registerVersion as registerVersion$1, deleteApp as deleteApp$1, initializeApp as initializeApp$1, initializeServerApp as initializeServerApp$1, onLog as onLog$1, setLogLevel as setLogLevel$1 } from 'firebase/app';
|
|
2
|
+
export * from 'firebase/app';
|
|
3
|
+
import { timer, from } from 'rxjs';
|
|
4
|
+
import { concatMap, distinct } from 'rxjs/operators';
|
|
5
|
+
import * as i0 from '@angular/core';
|
|
6
|
+
import { InjectionToken, Optional, PLATFORM_ID, VERSION as VERSION$1, NgModule, Inject, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
|
|
7
|
+
import { VERSION, ɵAngularFireSchedulers as _AngularFireSchedulers, ɵzoneWrap as _zoneWrap } from '@angular/fire';
|
|
54
8
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return getApps();
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
var firebaseApp$ = timer(0, 300).pipe(concatMap(() => from(getApps())), distinct());
|
|
9
|
+
class FirebaseApp {
|
|
10
|
+
constructor(app) {
|
|
11
|
+
return app;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
class FirebaseApps {
|
|
15
|
+
constructor() {
|
|
16
|
+
return getApps$1();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const firebaseApp$ = timer(0, 300).pipe(concatMap(() => from(getApps$1())), distinct());
|
|
70
20
|
|
|
71
|
-
// app.module.mjs
|
|
72
|
-
import { Inject, InjectionToken, Injector, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, makeEnvironmentProviders } from "@angular/core";
|
|
73
|
-
import { VERSION, ɵAngularFireSchedulers } from "@angular/fire";
|
|
74
|
-
import { getApp, registerVersion } from "firebase/app";
|
|
75
|
-
import * as i0 from "@angular/core";
|
|
76
21
|
function defaultFirebaseAppFactory(provided) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
22
|
+
// Use the provided app, if there is only one, otherwise fetch the default app
|
|
23
|
+
if (provided && provided.length === 1) {
|
|
24
|
+
return provided[0];
|
|
25
|
+
}
|
|
26
|
+
return new FirebaseApp(getApp$1());
|
|
81
27
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
28
|
+
// With FIREBASE_APPS I wanted to capture the default app instance, if it is initialized by
|
|
29
|
+
// the reserved URL; ɵPROVIDED_FIREBASE_APPS is not for public consumption and serves to ensure that all
|
|
30
|
+
// provideFirebaseApp(...) calls are satisfied before FirebaseApp$ or FirebaseApp is resolved
|
|
31
|
+
const PROVIDED_FIREBASE_APPS = new InjectionToken('angularfire2._apps');
|
|
32
|
+
// Injecting FirebaseApp will now only inject the default Firebase App
|
|
33
|
+
// this allows allows beginners to import /__/firebase/init.js to auto initialize Firebase App
|
|
34
|
+
// from the reserved URL.
|
|
35
|
+
const DEFAULT_FIREBASE_APP_PROVIDER = {
|
|
36
|
+
provide: FirebaseApp,
|
|
37
|
+
useFactory: defaultFirebaseAppFactory,
|
|
38
|
+
deps: [
|
|
39
|
+
[new Optional(), PROVIDED_FIREBASE_APPS],
|
|
40
|
+
],
|
|
89
41
|
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
42
|
+
const FIREBASE_APPS_PROVIDER = {
|
|
43
|
+
provide: FirebaseApps,
|
|
44
|
+
deps: [
|
|
45
|
+
[new Optional(), PROVIDED_FIREBASE_APPS],
|
|
46
|
+
],
|
|
95
47
|
};
|
|
96
48
|
function firebaseAppFactory(fn) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
49
|
+
return (zone, injector) => {
|
|
50
|
+
const platformId = injector.get(PLATFORM_ID);
|
|
51
|
+
registerVersion$1('angularfire', VERSION.full, 'core');
|
|
52
|
+
registerVersion$1('angularfire', VERSION.full, 'app');
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
54
|
+
registerVersion$1('angular', VERSION$1.full, platformId.toString());
|
|
55
|
+
const app = zone.runOutsideAngular(() => fn(injector));
|
|
56
|
+
return new FirebaseApp(app);
|
|
57
|
+
};
|
|
105
58
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _FirebaseAppModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
114
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _FirebaseAppModule });
|
|
115
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: _FirebaseAppModule, providers: [
|
|
116
|
-
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
117
|
-
FIREBASE_APPS_PROVIDER
|
|
118
|
-
] });
|
|
119
|
-
};
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i0, type: FirebaseAppModule, decorators: [{
|
|
121
|
-
type: NgModule,
|
|
122
|
-
args: [{
|
|
123
|
-
providers: [
|
|
124
|
-
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
125
|
-
FIREBASE_APPS_PROVIDER
|
|
126
|
-
]
|
|
127
|
-
}]
|
|
128
|
-
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
129
|
-
type: Inject,
|
|
130
|
-
args: [PLATFORM_ID]
|
|
131
|
-
}] }] });
|
|
132
|
-
function provideFirebaseApp(fn, ...deps) {
|
|
133
|
-
return makeEnvironmentProviders([
|
|
134
|
-
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
135
|
-
FIREBASE_APPS_PROVIDER,
|
|
136
|
-
{
|
|
137
|
-
provide: PROVIDED_FIREBASE_APPS,
|
|
138
|
-
useFactory: firebaseAppFactory(fn),
|
|
139
|
-
multi: true,
|
|
140
|
-
deps: [
|
|
141
|
-
NgZone,
|
|
142
|
-
Injector,
|
|
143
|
-
ɵAngularFireSchedulers,
|
|
144
|
-
...deps
|
|
145
|
-
]
|
|
59
|
+
class FirebaseAppModule {
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
61
|
+
constructor(platformId) {
|
|
62
|
+
registerVersion$1('angularfire', VERSION.full, 'core');
|
|
63
|
+
registerVersion$1('angularfire', VERSION.full, 'app');
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
65
|
+
registerVersion$1('angular', VERSION$1.full, platformId.toString());
|
|
146
66
|
}
|
|
147
|
-
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FirebaseAppModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
68
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: FirebaseAppModule });
|
|
69
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FirebaseAppModule, providers: [
|
|
70
|
+
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
71
|
+
FIREBASE_APPS_PROVIDER,
|
|
72
|
+
] });
|
|
73
|
+
}
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: FirebaseAppModule, decorators: [{
|
|
75
|
+
type: NgModule,
|
|
76
|
+
args: [{
|
|
77
|
+
providers: [
|
|
78
|
+
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
79
|
+
FIREBASE_APPS_PROVIDER,
|
|
80
|
+
]
|
|
81
|
+
}]
|
|
82
|
+
}], ctorParameters: () => [{ type: Object, decorators: [{
|
|
83
|
+
type: Inject,
|
|
84
|
+
args: [PLATFORM_ID]
|
|
85
|
+
}] }] });
|
|
86
|
+
// Calling initializeApp({ ... }, 'name') multiple times will add more FirebaseApps into the FIREBASE_APPS
|
|
87
|
+
// injection scope. This allows developers to more easily work with multiple Firebase Applications. Downside
|
|
88
|
+
// is that DI for app name and options doesn't really make sense anymore.
|
|
89
|
+
function provideFirebaseApp(fn, ...deps) {
|
|
90
|
+
return makeEnvironmentProviders([
|
|
91
|
+
DEFAULT_FIREBASE_APP_PROVIDER,
|
|
92
|
+
FIREBASE_APPS_PROVIDER,
|
|
93
|
+
{
|
|
94
|
+
provide: PROVIDED_FIREBASE_APPS,
|
|
95
|
+
useFactory: firebaseAppFactory(fn),
|
|
96
|
+
multi: true,
|
|
97
|
+
deps: [
|
|
98
|
+
NgZone,
|
|
99
|
+
Injector,
|
|
100
|
+
_AngularFireSchedulers,
|
|
101
|
+
...deps,
|
|
102
|
+
],
|
|
103
|
+
}
|
|
104
|
+
]);
|
|
148
105
|
}
|
|
149
106
|
|
|
150
|
-
//
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
registerVersion: () => registerVersion2,
|
|
160
|
-
setLogLevel: () => setLogLevel
|
|
161
|
-
});
|
|
162
|
-
__reExport(firebase_exports, app_star);
|
|
163
|
-
import * as app_star from "firebase/app";
|
|
164
|
-
import { ɵzoneWrap } from "@angular/fire";
|
|
165
|
-
import { deleteApp as _deleteApp, getApp as _getApp, getApps as _getApps, initializeApp as _initializeApp, initializeServerApp as _initializeServerApp, onLog as _onLog, registerVersion as _registerVersion, setLogLevel as _setLogLevel } from "firebase/app";
|
|
166
|
-
var deleteApp = ɵzoneWrap(_deleteApp, true);
|
|
167
|
-
var getApp2 = ɵzoneWrap(_getApp, true);
|
|
168
|
-
var getApps2 = ɵzoneWrap(_getApps, true);
|
|
169
|
-
var initializeApp = ɵzoneWrap(_initializeApp, true);
|
|
170
|
-
var initializeServerApp = ɵzoneWrap(_initializeServerApp, true);
|
|
171
|
-
var onLog = ɵzoneWrap(_onLog, true);
|
|
172
|
-
var registerVersion2 = ɵzoneWrap(_registerVersion, true);
|
|
173
|
-
var setLogLevel = ɵzoneWrap(_setLogLevel, true);
|
|
107
|
+
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
|
|
108
|
+
const deleteApp = _zoneWrap(deleteApp$1, true);
|
|
109
|
+
const getApp = _zoneWrap(getApp$1, true);
|
|
110
|
+
const getApps = _zoneWrap(getApps$1, true);
|
|
111
|
+
const initializeApp = _zoneWrap(initializeApp$1, true);
|
|
112
|
+
const initializeServerApp = _zoneWrap(initializeServerApp$1, true);
|
|
113
|
+
const onLog = _zoneWrap(onLog$1, true);
|
|
114
|
+
const registerVersion = _zoneWrap(registerVersion$1, true);
|
|
115
|
+
const setLogLevel = _zoneWrap(setLogLevel$1, true);
|
|
174
116
|
|
|
175
|
-
|
|
176
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Generated bundle index. Do not edit.
|
|
119
|
+
*/
|
|
177
120
|
|
|
178
|
-
|
|
179
|
-
__reExport(angular_fire_app_exports, public_api_exports);
|
|
180
|
-
export {
|
|
181
|
-
FirebaseApp,
|
|
182
|
-
FirebaseAppModule,
|
|
183
|
-
FirebaseApps,
|
|
184
|
-
deleteApp,
|
|
185
|
-
firebaseApp$,
|
|
186
|
-
getApp2 as getApp,
|
|
187
|
-
getApps2 as getApps,
|
|
188
|
-
initializeApp,
|
|
189
|
-
initializeServerApp,
|
|
190
|
-
onLog,
|
|
191
|
-
provideFirebaseApp,
|
|
192
|
-
registerVersion2 as registerVersion,
|
|
193
|
-
setLogLevel
|
|
194
|
-
};
|
|
121
|
+
export { FirebaseApp, FirebaseAppModule, FirebaseApps, deleteApp, firebaseApp$, getApp, getApps, initializeApp, initializeServerApp, onLog, provideFirebaseApp, registerVersion, setLogLevel };
|
|
195
122
|
//# sourceMappingURL=angular-fire-app.mjs.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/app/angular-fire-app.ts", "../../../src/app/public_api.ts", "../../../src/app/app.ts", "../../../src/app/app.module.ts", "../../../src/app/firebase.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n", "export { FirebaseApp, FirebaseApps, firebaseApp$ } from './app';\nexport { provideFirebaseApp, FirebaseAppModule } from './app.module';\nexport * from './firebase';\n", "import { FirebaseApp as IFirebaseApp, getApps } from 'firebase/app';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// Need to turn the FirebaseApp interface exported by firebase/app into a class\n// as types don't work in Angular DI. We want developers to be able to inject FirebaseApp like so\n// constructor(app: FirebaseApp)\n// the cleanest way to achieve this that I found is to export a new interface and class\n// the interface just extends the interface you want to turn into the class. This informs tyepscript\n// that the class has all the same methods/properties as the interface you want to extend without\n// breaking if Firebase adds/removes APIs in future releases. This was a big problem for @angular/fire\n// back when we constructed our own class. Then in the \"new class\" we just return the FirebaseApp in the\n// constructor, this also has the added benefit of Firebase methods taking our DI class without\n// casting. E.g,\n// constructor(private app: FirebaseApp) { }\n// ngOnDestroy() { deleteApp(this.app); }\n//\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApp extends IFirebaseApp {}\n\nexport class FirebaseApp {\n constructor(app: IFirebaseApp) {\n return app;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApps extends Array<IFirebaseApp> {}\n\nexport class FirebaseApps {\n constructor() {\n return getApps();\n }\n}\n\nexport const firebaseApp$ = timer(0, 300).pipe(\n concatMap(() => from(getApps())),\n distinct(),\n);\n", "import {\n EnvironmentProviders,\n Inject,\n InjectionToken,\n Injector,\n VERSION as NG_VERSION,\n NgModule,\n NgZone,\n Optional,\n PLATFORM_ID,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers } from '@angular/fire';\nimport { FirebaseApp as IFirebaseApp, getApp, registerVersion } from 'firebase/app';\nimport { FirebaseApp, FirebaseApps } from './app';\n\nexport function defaultFirebaseAppFactory(provided: FirebaseApp[]|undefined) {\n // Use the provided app, if there is only one, otherwise fetch the default app\n if (provided && provided.length === 1) { return provided[0]; }\n return new FirebaseApp(getApp());\n}\n\n// With FIREBASE_APPS I wanted to capture the default app instance, if it is initialized by\n// the reserved URL; ɵPROVIDED_FIREBASE_APPS is not for public consumption and serves to ensure that all\n// provideFirebaseApp(...) calls are satisfied before FirebaseApp$ or FirebaseApp is resolved\nexport const PROVIDED_FIREBASE_APPS = new InjectionToken<FirebaseApp[]>('angularfire2._apps');\n\n// Injecting FirebaseApp will now only inject the default Firebase App\n// this allows allows beginners to import /__/firebase/init.js to auto initialize Firebase App\n// from the reserved URL.\nconst DEFAULT_FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: defaultFirebaseAppFactory,\n deps: [\n [new Optional(), PROVIDED_FIREBASE_APPS ],\n ],\n};\n\nconst FIREBASE_APPS_PROVIDER = {\n provide: FirebaseApps,\n deps: [\n [new Optional(), PROVIDED_FIREBASE_APPS ],\n ],\n};\n\nexport function firebaseAppFactory(fn: (injector: Injector) => IFirebaseApp) {\n return (zone: NgZone, injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID);\n registerVersion('angularfire', VERSION.full, 'core');\n registerVersion('angularfire', VERSION.full, 'app');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n registerVersion('angular', NG_VERSION.full, platformId.toString());\n\n const app = zone.runOutsideAngular(() => fn(injector));\n return new FirebaseApp(app);\n };\n}\n\n@NgModule({\n providers: [\n DEFAULT_FIREBASE_APP_PROVIDER,\n FIREBASE_APPS_PROVIDER,\n ]\n})\nexport class FirebaseAppModule {\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n registerVersion('angularfire', VERSION.full, 'core');\n registerVersion('angularfire', VERSION.full, 'app');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n\n// Calling initializeApp({ ... }, 'name') multiple times will add more FirebaseApps into the FIREBASE_APPS\n// injection scope. This allows developers to more easily work with multiple Firebase Applications. Downside\n// is that DI for app name and options doesn't really make sense anymore.\nexport function provideFirebaseApp(fn: (injector: Injector) => IFirebaseApp, ...deps: any[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n DEFAULT_FIREBASE_APP_PROVIDER,\n FIREBASE_APPS_PROVIDER,\n {\n provide: PROVIDED_FIREBASE_APPS,\n useFactory: firebaseAppFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n ...deps,\n ],\n }\n ])\n}\n", "// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/app';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n deleteApp as _deleteApp,\n getApp as _getApp,\n getApps as _getApps,\n initializeApp as _initializeApp,\n initializeServerApp as _initializeServerApp,\n onLog as _onLog,\n registerVersion as _registerVersion,\n setLogLevel as _setLogLevel\n} from 'firebase/app';\n\nexport const deleteApp = ɵzoneWrap(_deleteApp, true);\nexport const getApp = ɵzoneWrap(_getApp, true);\nexport const getApps = ɵzoneWrap(_getApps, true);\nexport const initializeApp = ɵzoneWrap(_initializeApp, true);\nexport const initializeServerApp = ɵzoneWrap(_initializeServerApp, true);\nexport const onLog = ɵzoneWrap(_onLog, true);\nexport const registerVersion = ɵzoneWrap(_registerVersion, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["getApp", "getApps", "registerVersion", "getApp", "getApps", "registerVersion", "getApp", "getApps", "registerVersion"]
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"angular-fire-app.mjs","sources":["../../../src/app/app.ts","../../../src/app/app.module.ts","../../../src/app/firebase.ts","../../../src/app/angular-fire-app.ts"],"sourcesContent":["import { FirebaseApp as IFirebaseApp, getApps } from 'firebase/app';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// Need to turn the FirebaseApp interface exported by firebase/app into a class\n// as types don't work in Angular DI. We want developers to be able to inject FirebaseApp like so\n// constructor(app: FirebaseApp)\n// the cleanest way to achieve this that I found is to export a new interface and class\n// the interface just extends the interface you want to turn into the class. This informs tyepscript\n// that the class has all the same methods/properties as the interface you want to extend without\n// breaking if Firebase adds/removes APIs in future releases. This was a big problem for @angular/fire\n// back when we constructed our own class. Then in the \"new class\" we just return the FirebaseApp in the\n// constructor, this also has the added benefit of Firebase methods taking our DI class without\n// casting. E.g,\n// constructor(private app: FirebaseApp) { }\n// ngOnDestroy() { deleteApp(this.app); }\n//\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApp extends IFirebaseApp {}\n\nexport class FirebaseApp {\n constructor(app: IFirebaseApp) {\n return app;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApps extends Array<IFirebaseApp> {}\n\nexport class FirebaseApps {\n constructor() {\n return getApps();\n }\n}\n\nexport const firebaseApp$ = timer(0, 300).pipe(\n concatMap(() => from(getApps())),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n Inject,\n InjectionToken,\n Injector,\n VERSION as NG_VERSION,\n NgModule,\n NgZone,\n Optional,\n PLATFORM_ID,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers } from '@angular/fire';\nimport { FirebaseApp as IFirebaseApp, getApp, registerVersion } from 'firebase/app';\nimport { FirebaseApp, FirebaseApps } from './app';\n\nexport function defaultFirebaseAppFactory(provided: FirebaseApp[]|undefined) {\n // Use the provided app, if there is only one, otherwise fetch the default app\n if (provided && provided.length === 1) { return provided[0]; }\n return new FirebaseApp(getApp());\n}\n\n// With FIREBASE_APPS I wanted to capture the default app instance, if it is initialized by\n// the reserved URL; ɵPROVIDED_FIREBASE_APPS is not for public consumption and serves to ensure that all\n// provideFirebaseApp(...) calls are satisfied before FirebaseApp$ or FirebaseApp is resolved\nexport const PROVIDED_FIREBASE_APPS = new InjectionToken<FirebaseApp[]>('angularfire2._apps');\n\n// Injecting FirebaseApp will now only inject the default Firebase App\n// this allows allows beginners to import /__/firebase/init.js to auto initialize Firebase App\n// from the reserved URL.\nconst DEFAULT_FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: defaultFirebaseAppFactory,\n deps: [\n [new Optional(), PROVIDED_FIREBASE_APPS ],\n ],\n};\n\nconst FIREBASE_APPS_PROVIDER = {\n provide: FirebaseApps,\n deps: [\n [new Optional(), PROVIDED_FIREBASE_APPS ],\n ],\n};\n\nexport function firebaseAppFactory(fn: (injector: Injector) => IFirebaseApp) {\n return (zone: NgZone, injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID);\n registerVersion('angularfire', VERSION.full, 'core');\n registerVersion('angularfire', VERSION.full, 'app');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n registerVersion('angular', NG_VERSION.full, platformId.toString());\n\n const app = zone.runOutsideAngular(() => fn(injector));\n return new FirebaseApp(app);\n };\n}\n\n@NgModule({\n providers: [\n DEFAULT_FIREBASE_APP_PROVIDER,\n FIREBASE_APPS_PROVIDER,\n ]\n})\nexport class FirebaseAppModule {\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n registerVersion('angularfire', VERSION.full, 'core');\n registerVersion('angularfire', VERSION.full, 'app');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n\n// Calling initializeApp({ ... }, 'name') multiple times will add more FirebaseApps into the FIREBASE_APPS\n// injection scope. This allows developers to more easily work with multiple Firebase Applications. Downside\n// is that DI for app name and options doesn't really make sense anymore.\nexport function provideFirebaseApp(fn: (injector: Injector) => IFirebaseApp, ...deps: any[]): EnvironmentProviders {\n return makeEnvironmentProviders([\n DEFAULT_FIREBASE_APP_PROVIDER,\n FIREBASE_APPS_PROVIDER,\n {\n provide: PROVIDED_FIREBASE_APPS,\n useFactory: firebaseAppFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n ...deps,\n ],\n }\n ])\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/app';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n deleteApp as _deleteApp,\n getApp as _getApp,\n getApps as _getApps,\n initializeApp as _initializeApp,\n initializeServerApp as _initializeServerApp,\n onLog as _onLog,\n registerVersion as _registerVersion,\n setLogLevel as _setLogLevel\n} from 'firebase/app';\n\nexport const deleteApp = ɵzoneWrap(_deleteApp, true);\nexport const getApp = ɵzoneWrap(_getApp, true);\nexport const getApps = ɵzoneWrap(_getApps, true);\nexport const initializeApp = ɵzoneWrap(_initializeApp, true);\nexport const initializeServerApp = ɵzoneWrap(_initializeServerApp, true);\nexport const onLog = ɵzoneWrap(_onLog, true);\nexport const registerVersion = ɵzoneWrap(_registerVersion, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["getApps","getApp","registerVersion","NG_VERSION","ɵAngularFireSchedulers","ɵzoneWrap","_deleteApp","_getApp","_getApps","_initializeApp","_initializeServerApp","_onLog","_registerVersion","_setLogLevel"],"mappings":"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"}
|
|
@@ -1,86 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
import { Injectable } from
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/fire/auth';
|
|
4
|
+
import { user } from '@angular/fire/auth';
|
|
5
|
+
import * as i1 from '@angular/router';
|
|
6
|
+
import { of, pipe } from 'rxjs';
|
|
7
|
+
import { map, take, switchMap } from 'rxjs/operators';
|
|
8
|
+
import { VERSION } from '@angular/fire';
|
|
9
|
+
import { registerVersion } from 'firebase/app';
|
|
10
|
+
|
|
11
|
+
const loggedIn = map(user => !!user);
|
|
12
|
+
class AuthGuard {
|
|
13
|
+
router;
|
|
14
|
+
auth;
|
|
15
|
+
constructor(router, auth) {
|
|
16
|
+
this.router = router;
|
|
17
|
+
this.auth = auth;
|
|
18
|
+
}
|
|
19
|
+
canActivate = (next, state) => {
|
|
20
|
+
const authPipeFactory = next.data.authGuardPipe || (() => loggedIn);
|
|
21
|
+
return user(this.auth).pipe(take(1), authPipeFactory(next, state), map(can => {
|
|
22
|
+
if (typeof can === 'boolean') {
|
|
23
|
+
return can;
|
|
24
|
+
}
|
|
25
|
+
else if (Array.isArray(can)) {
|
|
26
|
+
return this.router.createUrlTree(can);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// TODO(EdricChan03): Add tests
|
|
30
|
+
return this.router.parseUrl(can);
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
};
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.Auth }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuard, providedIn: 'any' });
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuard, decorators: [{
|
|
38
|
+
type: Injectable,
|
|
39
|
+
args: [{
|
|
40
|
+
providedIn: 'any'
|
|
41
|
+
}]
|
|
42
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.Auth }] });
|
|
43
|
+
const canActivate = (pipe) => ({
|
|
44
|
+
canActivate: [AuthGuard], data: { authGuardPipe: pipe }
|
|
42
45
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
const isNotAnonymous = map(user => !!user && !user.isAnonymous);
|
|
47
|
+
const idTokenResult = switchMap((user) => user ? user.getIdTokenResult() : of(null));
|
|
48
|
+
const emailVerified = map(user => !!user && user.emailVerified);
|
|
49
|
+
const customClaims = pipe(idTokenResult, map(idTokenResult => idTokenResult ? idTokenResult.claims : []));
|
|
50
|
+
const hasCustomClaim =
|
|
51
|
+
// eslint-disable-next-line no-prototype-builtins
|
|
52
|
+
(claim) => pipe(customClaims, map(claims => claims.hasOwnProperty(claim)));
|
|
53
|
+
const redirectUnauthorizedTo = (redirect) => pipe(loggedIn, map(loggedIn => loggedIn || redirect));
|
|
54
|
+
const redirectLoggedInTo = (redirect) => pipe(loggedIn, map(loggedIn => loggedIn && redirect || true));
|
|
55
|
+
|
|
56
|
+
class AuthGuardModule {
|
|
57
|
+
constructor() {
|
|
58
|
+
registerVersion('angularfire', VERSION.full, 'auth-guard');
|
|
59
|
+
}
|
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
61
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AuthGuardModule });
|
|
62
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuardModule, providers: [AuthGuard] });
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AuthGuardModule, decorators: [{
|
|
65
|
+
type: NgModule,
|
|
66
|
+
args: [{
|
|
67
|
+
providers: [AuthGuard]
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: () => [] });
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Generated bundle index. Do not edit.
|
|
73
|
+
*/
|
|
53
74
|
|
|
54
|
-
|
|
55
|
-
import { NgModule } from "@angular/core";
|
|
56
|
-
import { VERSION } from "@angular/fire";
|
|
57
|
-
import { registerVersion } from "firebase/app";
|
|
58
|
-
import * as i02 from "@angular/core";
|
|
59
|
-
var AuthGuardModule = class _AuthGuardModule {
|
|
60
|
-
constructor() {
|
|
61
|
-
registerVersion("angularfire", VERSION.full, "auth-guard");
|
|
62
|
-
}
|
|
63
|
-
static ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AuthGuardModule, deps: [], target: i02.ɵɵFactoryTarget.NgModule });
|
|
64
|
-
static ɵmod = i02.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AuthGuardModule });
|
|
65
|
-
static ɵinj = i02.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: _AuthGuardModule, providers: [AuthGuard] });
|
|
66
|
-
};
|
|
67
|
-
i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.3", ngImport: i02, type: AuthGuardModule, decorators: [{
|
|
68
|
-
type: NgModule,
|
|
69
|
-
args: [{
|
|
70
|
-
providers: [AuthGuard]
|
|
71
|
-
}]
|
|
72
|
-
}], ctorParameters: () => [] });
|
|
73
|
-
export {
|
|
74
|
-
AuthGuard,
|
|
75
|
-
AuthGuardModule,
|
|
76
|
-
canActivate,
|
|
77
|
-
customClaims,
|
|
78
|
-
emailVerified,
|
|
79
|
-
hasCustomClaim,
|
|
80
|
-
idTokenResult,
|
|
81
|
-
isNotAnonymous,
|
|
82
|
-
loggedIn,
|
|
83
|
-
redirectLoggedInTo,
|
|
84
|
-
redirectUnauthorizedTo
|
|
85
|
-
};
|
|
75
|
+
export { AuthGuard, AuthGuardModule, canActivate, customClaims, emailVerified, hasCustomClaim, idTokenResult, isNotAnonymous, loggedIn, redirectLoggedInTo, redirectUnauthorizedTo };
|
|
86
76
|
//# sourceMappingURL=angular-fire-auth-guard.mjs.map
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/auth-guard/auth-guard.ts", "../../../src/auth-guard/auth-guard.module.ts"],
|
|
4
|
-
"sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Auth, user } from '@angular/fire/auth';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { User } from 'firebase/auth';\nimport { Observable, UnaryFunction, of, pipe } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nexport type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe;\nexport type AuthPipe = UnaryFunction<Observable<User|null>, Observable<boolean|string|any[]>>;\n\nexport const loggedIn: AuthPipe = map(user => !!user);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(private router: Router, private auth: Auth) {}\n\n canActivate = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const authPipeFactory = next.data.authGuardPipe as AuthPipeGenerator || (() => loggedIn);\n return user(this.auth).pipe(\n take(1),\n authPipeFactory(next, state),\n map(can => {\n if (typeof can === 'boolean') {\n return can;\n } else if (Array.isArray(can)) {\n return this.router.createUrlTree(can);\n } else {\n // TODO(EdricChan03): Add tests\n return this.router.parseUrl(can);\n }\n })\n );\n }\n\n}\n\nexport const canActivate = (pipe: AuthPipeGenerator) => ({\n canActivate: [ AuthGuard ], data: { authGuardPipe: pipe }\n});\n\nexport const isNotAnonymous: AuthPipe = map(user => !!user && !user.isAnonymous);\nexport const idTokenResult = switchMap((user: User|null) => user ? user.getIdTokenResult() : of(null));\nexport const emailVerified: AuthPipe = map(user => !!user && user.emailVerified);\nexport const customClaims = pipe(idTokenResult, map(idTokenResult => idTokenResult ? idTokenResult.claims : []));\nexport const hasCustomClaim: (claim: string) => AuthPipe =\n // eslint-disable-next-line no-prototype-builtins\n (claim) => pipe(customClaims, map(claims => claims.hasOwnProperty(claim)));\nexport const redirectUnauthorizedTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn || redirect));\nexport const redirectLoggedInTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn && redirect || true));\n", "import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { registerVersion } from 'firebase/app';\nimport { AuthGuard } from './auth-guard';\n\n@NgModule({\n providers: [ AuthGuard ]\n})\nexport class AuthGuardModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth-guard');\n }\n}\n"],
|
|
5
|
-
"mappings": ";AAAA,SAAS,kBAAkB;AAC3B,SAAS,MAAM,YAAY;AAC3B,SAA8C,cAAmC;AAEjF,SAAoC,IAAI,YAAY;AACpD,SAAS,KAAK,WAAW,YAAY;;;;AAK9B,IAAM,WAAqB,IAAI,CAAAA,UAAQ,CAAC,CAACA,KAAI;AAK9C,IAAO,YAAP,MAAO,WAAS;EAEA;EAAwB;EAA5C,YAAoB,QAAwB,MAAU;AAAlC,SAAA,SAAA;AAAwB,SAAA,OAAA;EAAa;EAEzD,cAAc,CAAC,MAA8B,UAA8B;AACzE,UAAM,kBAAkB,KAAK,KAAK,kBAAuC,MAAM;AAC/E,WAAO,KAAK,KAAK,IAAI,EAAE,KACrB,KAAK,CAAC,GACN,gBAAgB,MAAM,KAAK,GAC3B,IAAI,SAAM;AACR,UAAI,OAAO,QAAQ,WAAW;AAC5B,eAAO;MACT,WAAW,MAAM,QAAQ,GAAG,GAAG;AAC7B,eAAO,KAAK,OAAO,cAAc,GAAG;MACtC,OAAO;AAEL,eAAO,KAAK,OAAO,SAAS,GAAG;MACjC;IACF,CAAC,CAAC;EAEN;0GApBW,YAAS,MAAA,CAAA,EAAA,OAAA,UAAA,GAAA,EAAA,OAAA,QAAA,CAAA,GAAA,QAAA,mBAAA,WAAA,CAAA;8GAAT,YAAS,YAFR,MAAK,CAAA;;gGAEN,WAAS,YAAA,CAAA;QAHrB;SAAW;IACV,YAAY;GACb;;AAyBM,IAAM,cAAc,CAACC,WAA6B;EACvD,aAAa,CAAE,SAAS;EAAI,MAAM,EAAE,eAAeA,MAAI;;AAGlD,IAAM,iBAA2B,IAAI,CAAAD,UAAQ,CAAC,CAACA,SAAQ,CAACA,MAAK,WAAW;AACxE,IAAM,gBAAgB,UAAU,CAACA,UAAoBA,QAAOA,MAAK,iBAAgB,IAAK,GAAG,IAAI,CAAC;AAC9F,IAAM,gBAA0B,IAAI,CAAAA,UAAQ,CAAC,CAACA,SAAQA,MAAK,aAAa;AACxE,IAAM,eAAe,KAAK,eAAe,IAAI,CAAAE,mBAAiBA,iBAAgBA,eAAc,SAAS,CAAA,CAAE,CAAC;AACxG,IAAM;;EAEX,CAAC,UAAU,KAAK,cAAc,IAAI,YAAW,OAAO,eAAe,KAAK,CAAC,CAAC;;AACrE,IAAM,yBACX,CAAC,aAAa,KAAK,UAAU,IAAI,CAAAC,cAAYA,aAAY,QAAQ,CAAC;AAC7D,IAAM,qBACX,CAAC,aAAa,KAAK,UAAU,IAAI,CAAAA,cAAYA,aAAY,YAAY,IAAI,CAAC;;;ACrD5E,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,uBAAuB;;AAM1B,IAAO,kBAAP,MAAO,iBAAe;EAC1B,cAAA;AACE,oBAAgB,eAAe,QAAQ,MAAM,YAAY;EAC3D;4GAHW,kBAAe,MAAA,CAAA,GAAA,QAAA,oBAAA,SAAA,CAAA;6GAAf,iBAAe,CAAA;6GAAf,kBAAe,WAFf,CAAE,SAAS,EAAE,CAAA;;kGAEb,iBAAe,YAAA,CAAA;QAH3B;SAAS;IACR,WAAW,CAAE,SAAS;GACvB;;",
|
|
6
|
-
"names": ["user", "pipe", "idTokenResult", "loggedIn"]
|
|
7
|
-
}
|
|
1
|
+
{"version":3,"file":"angular-fire-auth-guard.mjs","sources":["../../../src/auth-guard/auth-guard.ts","../../../src/auth-guard/auth-guard.module.ts","../../../src/auth-guard/angular-fire-auth-guard.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Auth, user } from '@angular/fire/auth';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { User } from 'firebase/auth';\nimport { Observable, UnaryFunction, of, pipe } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\n\nexport type AuthPipeGenerator = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => AuthPipe;\nexport type AuthPipe = UnaryFunction<Observable<User|null>, Observable<boolean|string|any[]>>;\n\nexport const loggedIn: AuthPipe = map(user => !!user);\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(private router: Router, private auth: Auth) {}\n\n canActivate = (next: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const authPipeFactory = next.data.authGuardPipe as AuthPipeGenerator || (() => loggedIn);\n return user(this.auth).pipe(\n take(1),\n authPipeFactory(next, state),\n map(can => {\n if (typeof can === 'boolean') {\n return can;\n } else if (Array.isArray(can)) {\n return this.router.createUrlTree(can);\n } else {\n // TODO(EdricChan03): Add tests\n return this.router.parseUrl(can);\n }\n })\n );\n }\n\n}\n\nexport const canActivate = (pipe: AuthPipeGenerator) => ({\n canActivate: [ AuthGuard ], data: { authGuardPipe: pipe }\n});\n\nexport const isNotAnonymous: AuthPipe = map(user => !!user && !user.isAnonymous);\nexport const idTokenResult = switchMap((user: User|null) => user ? user.getIdTokenResult() : of(null));\nexport const emailVerified: AuthPipe = map(user => !!user && user.emailVerified);\nexport const customClaims = pipe(idTokenResult, map(idTokenResult => idTokenResult ? idTokenResult.claims : []));\nexport const hasCustomClaim: (claim: string) => AuthPipe =\n // eslint-disable-next-line no-prototype-builtins\n (claim) => pipe(customClaims, map(claims => claims.hasOwnProperty(claim)));\nexport const redirectUnauthorizedTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn || redirect));\nexport const redirectLoggedInTo: (redirect: string|any[]) => AuthPipe =\n (redirect) => pipe(loggedIn, map(loggedIn => loggedIn && redirect || true));\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { registerVersion } from 'firebase/app';\nimport { AuthGuard } from './auth-guard';\n\n@NgModule({\n providers: [ AuthGuard ]\n})\nexport class AuthGuardModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'auth-guard');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|