ngx-firebase 1.1.13 → 22.0.1
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/README.md +121 -13
- package/fesm2022/ngx-firebase.mjs +158 -0
- package/fesm2022/ngx-firebase.mjs.map +1 -0
- package/package.json +39 -30
- package/types/ngx-firebase.d.ts +55 -0
- package/bundles/ngx-firebase-capacitor.umd.js +0 -763
- package/bundles/ngx-firebase-capacitor.umd.js.map +0 -1
- package/bundles/ngx-firebase-capacitor.umd.min.js +0 -16
- package/bundles/ngx-firebase-capacitor.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-iap.umd.js +0 -718
- package/bundles/ngx-firebase-iap.umd.js.map +0 -1
- package/bundles/ngx-firebase-iap.umd.min.js +0 -2
- package/bundles/ngx-firebase-iap.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-ionic-auth-ui.umd.js +0 -2116
- package/bundles/ngx-firebase-ionic-auth-ui.umd.js.map +0 -1
- package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js +0 -16
- package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-ionic.umd.js +0 -979
- package/bundles/ngx-firebase-ionic.umd.js.map +0 -1
- package/bundles/ngx-firebase-ionic.umd.min.js +0 -16
- package/bundles/ngx-firebase-ionic.umd.min.js.map +0 -1
- package/bundles/ngx-firebase-testing.umd.js +0 -801
- package/bundles/ngx-firebase-testing.umd.js.map +0 -1
- package/bundles/ngx-firebase-testing.umd.min.js +0 -2
- package/bundles/ngx-firebase-testing.umd.min.js.map +0 -1
- package/bundles/ngx-firebase.umd.js +0 -2299
- package/bundles/ngx-firebase.umd.js.map +0 -1
- package/bundles/ngx-firebase.umd.min.js +0 -2
- package/bundles/ngx-firebase.umd.min.js.map +0 -1
- package/capacitor/capacitor.module.d.ts +0 -9
- package/capacitor/interfaces/config.d.ts +0 -12
- package/capacitor/interfaces/index.d.ts +0 -1
- package/capacitor/ngx-firebase-capacitor.d.ts +0 -5
- package/capacitor/ngx-firebase-capacitor.metadata.json +0 -1
- package/capacitor/package.json +0 -25
- package/capacitor/public-api.d.ts +0 -3
- package/capacitor/services/analytics-firebase-capacitor.service.d.ts +0 -9
- package/capacitor/services/crashlytics-firebase-capacitor.service.d.ts +0 -8
- package/capacitor/services/credential-factory-capacitor.service.d.ts +0 -18
- package/capacitor/services/index.d.ts +0 -3
- package/esm2015/capacitor/capacitor.module.js +0 -78
- package/esm2015/capacitor/interfaces/config.js +0 -3
- package/esm2015/capacitor/interfaces/index.js +0 -2
- package/esm2015/capacitor/ngx-firebase-capacitor.js +0 -6
- package/esm2015/capacitor/public-api.js +0 -4
- package/esm2015/capacitor/services/analytics-firebase-capacitor.service.js +0 -43
- package/esm2015/capacitor/services/crashlytics-firebase-capacitor.service.js +0 -40
- package/esm2015/capacitor/services/credential-factory-capacitor.service.js +0 -182
- package/esm2015/capacitor/services/index.js +0 -4
- package/esm2015/iap/iap.module.js +0 -32
- package/esm2015/iap/interfaces/index.js +0 -5
- package/esm2015/iap/ngx-firebase-iap.js +0 -5
- package/esm2015/iap/public-api.js +0 -5
- package/esm2015/iap/services/iap.service.js +0 -317
- package/esm2015/iap/tokens/index.js +0 -4
- package/esm2015/ionic/animations/index.js +0 -30
- package/esm2015/ionic/components/avatar/avatar.component.js +0 -98
- package/esm2015/ionic/components/avatar/index.js +0 -2
- package/esm2015/ionic/components/index.js +0 -3
- package/esm2015/ionic/components/popover-menu/index.js +0 -3
- package/esm2015/ionic/components/popover-menu/interface.js +0 -2
- package/esm2015/ionic/components/popover-menu/popover-menu.component.js +0 -34
- package/esm2015/ionic/ionic.module.js +0 -46
- package/esm2015/ionic/ngx-firebase-ionic.js +0 -5
- package/esm2015/ionic/public-api.js +0 -5
- package/esm2015/ionic/services/alerts-ionic.service.js +0 -107
- package/esm2015/ionic/services/index.js +0 -6
- package/esm2015/ionic/services/legality-dialog-ionic.service.js +0 -85
- package/esm2015/ionic/services/loading-ionic.service.js +0 -46
- package/esm2015/ionic/services/picker-ionic.service.js +0 -44
- package/esm2015/ionic/services/toast-ionic.service.js +0 -49
- package/esm2015/ionic-auth-ui/animations/index.js +0 -30
- package/esm2015/ionic-auth-ui/components/email-confirmation/email-confirmation.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/email-field/email-field.component.js +0 -25
- package/esm2015/ionic-auth-ui/components/form-field/form-field.component.js +0 -82
- package/esm2015/ionic-auth-ui/components/index.js +0 -12
- package/esm2015/ionic-auth-ui/components/name-field/name-field.component.js +0 -30
- package/esm2015/ionic-auth-ui/components/or-divider/or-divider.component.js +0 -11
- package/esm2015/ionic-auth-ui/components/password-field/password-field.component.js +0 -138
- package/esm2015/ionic-auth-ui/components/password-field/passwordValidatorFunctions.js +0 -62
- package/esm2015/ionic-auth-ui/components/providers/providers.component.js +0 -70
- package/esm2015/ionic-auth-ui/components/reauthenticate/reauthenticate.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/register/register.component.js +0 -142
- package/esm2015/ionic-auth-ui/components/register-with-email/register-with-email.component.js +0 -60
- package/esm2015/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.js +0 -26
- package/esm2015/ionic-auth-ui/components/signin/signin.component.js +0 -92
- package/esm2015/ionic-auth-ui/components/terms-field/terms-field.component.js +0 -99
- package/esm2015/ionic-auth-ui/components/user/user.component.js +0 -195
- package/esm2015/ionic-auth-ui/ionic-auth-ui.module.js +0 -92
- package/esm2015/ionic-auth-ui/ngx-firebase-ionic-auth-ui.js +0 -23
- package/esm2015/ionic-auth-ui/pages/index.js +0 -5
- package/esm2015/ionic-auth-ui/pages/register/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/register/register.page.js +0 -56
- package/esm2015/ionic-auth-ui/pages/signin/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/signin/signin.page.js +0 -78
- package/esm2015/ionic-auth-ui/pages/user/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/user/user.page.js +0 -11
- package/esm2015/ionic-auth-ui/pages/verifyemail/index.js +0 -2
- package/esm2015/ionic-auth-ui/pages/verifyemail/verifyemail.page.js +0 -85
- package/esm2015/ionic-auth-ui/public-api.js +0 -5
- package/esm2015/ngx-firebase.js +0 -6
- package/esm2015/public-api.js +0 -6
- package/esm2015/shared/guards/index.js +0 -3
- package/esm2015/shared/guards/logged-in.guard.js +0 -60
- package/esm2015/shared/guards/verify-email.guard.js +0 -41
- package/esm2015/shared/interfaces/accounts.enum.js +0 -9
- package/esm2015/shared/interfaces/authprovider.enum.js +0 -15
- package/esm2015/shared/interfaces/config.interface.js +0 -61
- package/esm2015/shared/interfaces/index.js +0 -8
- package/esm2015/shared/interfaces/main.interface.js +0 -7
- package/esm2015/shared/interfaces/providers.interface.js +0 -2
- package/esm2015/shared/interfaces/tokens.js +0 -19
- package/esm2015/shared/interfaces/ui-providers.interface.js +0 -2
- package/esm2015/shared/services/analytics.service.js +0 -24
- package/esm2015/shared/services/auth-process.service.js +0 -779
- package/esm2015/shared/services/crashlytics.service.js +0 -42
- package/esm2015/shared/services/device-info.service.js +0 -14
- package/esm2015/shared/services/firebase.service.js +0 -37
- package/esm2015/shared/services/firestore-sync.service.js +0 -60
- package/esm2015/shared/services/index.js +0 -10
- package/esm2015/shared/services/performance.service.js +0 -28
- package/esm2015/shared/services/remoteconfig.service.js +0 -49
- package/esm2015/shared/services/ui.service.js +0 -45
- package/esm2015/shared/shared.module.js +0 -175
- package/esm2015/shared/types/DisplayWidth.js +0 -9
- package/esm2015/shared/types/Location.js +0 -2
- package/esm2015/shared/types/ValueAccessorControlComponent.js +0 -85
- package/esm2015/shared/types/ValueAccessorValueComponent.js +0 -40
- package/esm2015/shared/types/index.js +0 -5
- package/esm2015/testing/fakeavatar.module.js +0 -22
- package/esm2015/testing/fakes/FakeAuthProcessService.js +0 -31
- package/esm2015/testing/fakes/FakeAvatarComponent.js +0 -13
- package/esm2015/testing/fakes/FakeFireService.js +0 -21
- package/esm2015/testing/fakes/FakeFirestoreSyncService.js +0 -11
- package/esm2015/testing/fakes/FakeIAPurchaseService.js +0 -11
- package/esm2015/testing/fakes/FakePickerService.js +0 -9
- package/esm2015/testing/fakes/FakeRemoteConfigService.js +0 -44
- package/esm2015/testing/fakes/FakeTranslateService.js +0 -21
- package/esm2015/testing/fakes/FakeUiService.js +0 -26
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireAuth.js +0 -30
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireFunctions.js +0 -17
- package/esm2015/testing/fakes/angular-fire/FakeAngularFirePerformance.js +0 -17
- package/esm2015/testing/fakes/angular-fire/FakeAngularFireStorage.js +0 -8
- package/esm2015/testing/fakes/angular-fire/FakeAngularFirestore.js +0 -8
- package/esm2015/testing/fakes/angular-fire/FakeUserCredential.js +0 -18
- package/esm2015/testing/fakes/index.js +0 -19
- package/esm2015/testing/ngx-firebase-testing.js +0 -6
- package/esm2015/testing/public-api.js +0 -5
- package/esm2015/testing/test.module.js +0 -66
- package/esm2015/testing/utils/index.js +0 -17
- package/esm2015/testing/utils/patchConsole.js +0 -14
- package/fesm2015/ngx-firebase-capacitor.js +0 -328
- package/fesm2015/ngx-firebase-capacitor.js.map +0 -1
- package/fesm2015/ngx-firebase-iap.js +0 -354
- package/fesm2015/ngx-firebase-iap.js.map +0 -1
- package/fesm2015/ngx-firebase-ionic-auth-ui.js +0 -1482
- package/fesm2015/ngx-firebase-ionic-auth-ui.js.map +0 -1
- package/fesm2015/ngx-firebase-ionic.js +0 -495
- package/fesm2015/ngx-firebase-ionic.js.map +0 -1
- package/fesm2015/ngx-firebase-testing.js +0 -388
- package/fesm2015/ngx-firebase-testing.js.map +0 -1
- package/fesm2015/ngx-firebase.js +0 -1509
- package/fesm2015/ngx-firebase.js.map +0 -1
- package/iap/iap.module.d.ts +0 -5
- package/iap/interfaces/index.d.ts +0 -11
- package/iap/ngx-firebase-iap.d.ts +0 -4
- package/iap/ngx-firebase-iap.metadata.json +0 -1
- package/iap/package.json +0 -23
- package/iap/public-api.d.ts +0 -4
- package/iap/services/iap.service.d.ts +0 -47
- package/iap/tokens/index.d.ts +0 -3
- package/ionic/animations/index.d.ts +0 -1
- package/ionic/components/avatar/avatar.component.d.ts +0 -27
- package/ionic/components/avatar/index.d.ts +0 -1
- package/ionic/components/index.d.ts +0 -2
- package/ionic/components/popover-menu/index.d.ts +0 -2
- package/ionic/components/popover-menu/interface.d.ts +0 -6
- package/ionic/components/popover-menu/popover-menu.component.d.ts +0 -10
- package/ionic/ionic.module.d.ts +0 -2
- package/ionic/ngx-firebase-ionic.d.ts +0 -4
- package/ionic/ngx-firebase-ionic.metadata.json +0 -1
- package/ionic/package.json +0 -30
- package/ionic/public-api.d.ts +0 -4
- package/ionic/services/alerts-ionic.service.d.ts +0 -13
- package/ionic/services/index.d.ts +0 -5
- package/ionic/services/legality-dialog-ionic.service.d.ts +0 -10
- package/ionic/services/loading-ionic.service.d.ts +0 -17
- package/ionic/services/picker-ionic.service.d.ts +0 -9
- package/ionic/services/toast-ionic.service.d.ts +0 -11
- package/ionic-auth-ui/animations/index.d.ts +0 -1
- package/ionic-auth-ui/components/email-confirmation/email-confirmation.component.d.ts +0 -31
- package/ionic-auth-ui/components/email-field/email-field.component.d.ts +0 -7
- package/ionic-auth-ui/components/form-field/form-field.component.d.ts +0 -28
- package/ionic-auth-ui/components/index.d.ts +0 -11
- package/ionic-auth-ui/components/name-field/name-field.component.d.ts +0 -8
- package/ionic-auth-ui/components/or-divider/or-divider.component.d.ts +0 -2
- package/ionic-auth-ui/components/password-field/password-field.component.d.ts +0 -34
- package/ionic-auth-ui/components/password-field/passwordValidatorFunctions.d.ts +0 -4
- package/ionic-auth-ui/components/providers/providers.component.d.ts +0 -26
- package/ionic-auth-ui/components/reauthenticate/reauthenticate.component.d.ts +0 -30
- package/ionic-auth-ui/components/register/register.component.d.ts +0 -26
- package/ionic-auth-ui/components/register-with-email/register-with-email.component.d.ts +0 -24
- package/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.d.ts +0 -7
- package/ionic-auth-ui/components/signin/signin.component.d.ts +0 -28
- package/ionic-auth-ui/components/terms-field/terms-field.component.d.ts +0 -27
- package/ionic-auth-ui/components/user/user.component.d.ts +0 -45
- package/ionic-auth-ui/ionic-auth-ui.module.d.ts +0 -32
- package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.d.ts +0 -22
- package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.metadata.json +0 -1
- package/ionic-auth-ui/package.json +0 -30
- package/ionic-auth-ui/pages/index.d.ts +0 -4
- package/ionic-auth-ui/pages/register/index.d.ts +0 -1
- package/ionic-auth-ui/pages/register/register.page.d.ts +0 -16
- package/ionic-auth-ui/pages/signin/index.d.ts +0 -1
- package/ionic-auth-ui/pages/signin/signin.page.d.ts +0 -22
- package/ionic-auth-ui/pages/user/index.d.ts +0 -1
- package/ionic-auth-ui/pages/user/user.page.d.ts +0 -3
- package/ionic-auth-ui/pages/verifyemail/index.d.ts +0 -1
- package/ionic-auth-ui/pages/verifyemail/verifyemail.page.d.ts +0 -19
- package/ionic-auth-ui/public-api.d.ts +0 -4
- package/ngx-firebase.d.ts +0 -5
- package/ngx-firebase.metadata.json +0 -1
- package/public-api.d.ts +0 -5
- package/shared/guards/index.d.ts +0 -2
- package/shared/guards/logged-in.guard.d.ts +0 -13
- package/shared/guards/verify-email.guard.d.ts +0 -11
- package/shared/interfaces/accounts.enum.d.ts +0 -7
- package/shared/interfaces/authprovider.enum.d.ts +0 -13
- package/shared/interfaces/config.interface.d.ts +0 -63
- package/shared/interfaces/index.d.ts +0 -7
- package/shared/interfaces/main.interface.d.ts +0 -13
- package/shared/interfaces/providers.interface.d.ts +0 -70
- package/shared/interfaces/tokens.d.ts +0 -16
- package/shared/interfaces/ui-providers.interface.d.ts +0 -66
- package/shared/services/analytics.service.d.ts +0 -10
- package/shared/services/auth-process.service.d.ts +0 -197
- package/shared/services/crashlytics.service.d.ts +0 -11
- package/shared/services/device-info.service.d.ts +0 -3
- package/shared/services/firebase.service.d.ts +0 -16
- package/shared/services/firestore-sync.service.d.ts +0 -16
- package/shared/services/index.d.ts +0 -9
- package/shared/services/performance.service.d.ts +0 -12
- package/shared/services/remoteconfig.service.d.ts +0 -18
- package/shared/services/ui.service.d.ts +0 -22
- package/shared/shared.module.d.ts +0 -14
- package/shared/types/DisplayWidth.d.ts +0 -7
- package/shared/types/Location.d.ts +0 -8
- package/shared/types/ValueAccessorControlComponent.d.ts +0 -27
- package/shared/types/ValueAccessorValueComponent.d.ts +0 -19
- package/shared/types/index.d.ts +0 -4
- package/testing/fakeavatar.module.d.ts +0 -2
- package/testing/fakes/FakeAuthProcessService.d.ts +0 -28
- package/testing/fakes/FakeAvatarComponent.d.ts +0 -3
- package/testing/fakes/FakeFireService.d.ts +0 -20
- package/testing/fakes/FakeFirestoreSyncService.d.ts +0 -9
- package/testing/fakes/FakeIAPurchaseService.d.ts +0 -9
- package/testing/fakes/FakePickerService.d.ts +0 -6
- package/testing/fakes/FakeRemoteConfigService.d.ts +0 -19
- package/testing/fakes/FakeTranslateService.d.ts +0 -15
- package/testing/fakes/FakeUiService.d.ts +0 -25
- package/testing/fakes/angular-fire/FakeAngularFireAuth.d.ts +0 -52
- package/testing/fakes/angular-fire/FakeAngularFireFunctions.d.ts +0 -11
- package/testing/fakes/angular-fire/FakeAngularFirePerformance.d.ts +0 -10
- package/testing/fakes/angular-fire/FakeAngularFireStorage.d.ts +0 -5
- package/testing/fakes/angular-fire/FakeAngularFirestore.d.ts +0 -5
- package/testing/fakes/angular-fire/FakeUserCredential.d.ts +0 -9
- package/testing/fakes/index.d.ts +0 -16
- package/testing/ngx-firebase-testing.d.ts +0 -5
- package/testing/ngx-firebase-testing.metadata.json +0 -1
- package/testing/package.json +0 -29
- package/testing/public-api.d.ts +0 -4
- package/testing/test.module.d.ts +0 -4
- package/testing/utils/index.d.ts +0 -5
- package/testing/utils/patchConsole.d.ts +0 -4
|
@@ -1,2299 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/fire/remote-config'), require('rxjs'), require('@angular/fire/performance'), require('@angular/fire/firestore'), require('rxjs/operators'), require('@firebase/app'), require('firebase/auth'), require('@angular/fire/auth'), require('@angular/forms'), require('@angular/router'), require('@angular/common/http'), require('@ngx-translate/core'), require('@angular/fire'), require('@angular/fire/functions')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('ngx-firebase', ['exports', '@angular/core', '@angular/fire/remote-config', 'rxjs', '@angular/fire/performance', '@angular/fire/firestore', 'rxjs/operators', '@firebase/app', 'firebase/auth', '@angular/fire/auth', '@angular/forms', '@angular/router', '@angular/common/http', '@ngx-translate/core', '@angular/fire', '@angular/fire/functions'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ngx-firebase'] = {}, global.ng.core, global.ng.fire.remoteConfig, global.rxjs, global.ng.fire.performance, global.ng.fire.firestore, global.rxjs.operators, global.firebase, null, global.ng.fire.auth, global.ng.forms, global.ng.router, global.ng.common.http, global['ngx-translate'], global.ng.fire, global.ng.fire.functions));
|
|
5
|
-
}(this, (function (exports, i0, i1, rxjs, i1$1, i1$2, operators, app, auth, i3, forms, i2, http, core, fire, functions) { 'use strict';
|
|
6
|
-
|
|
7
|
-
var MalDeviceInfoService = /** @class */ (function () {
|
|
8
|
-
function MalDeviceInfoService() {
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(MalDeviceInfoService.prototype, "dateFormat", {
|
|
11
|
-
get: function () {
|
|
12
|
-
return 'dd/MM/yyyy';
|
|
13
|
-
},
|
|
14
|
-
enumerable: false,
|
|
15
|
-
configurable: true
|
|
16
|
-
});
|
|
17
|
-
return MalDeviceInfoService;
|
|
18
|
-
}());
|
|
19
|
-
MalDeviceInfoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MalDeviceInfoService_Factory() { return new MalDeviceInfoService(); }, token: MalDeviceInfoService, providedIn: "root" });
|
|
20
|
-
MalDeviceInfoService.decorators = [
|
|
21
|
-
{ type: i0.Injectable, args: [{
|
|
22
|
-
providedIn: 'root',
|
|
23
|
-
},] }
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
/*! *****************************************************************************
|
|
27
|
-
Copyright (c) Microsoft Corporation.
|
|
28
|
-
|
|
29
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
30
|
-
purpose with or without fee is hereby granted.
|
|
31
|
-
|
|
32
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
33
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
34
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
35
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
36
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
37
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
38
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
39
|
-
***************************************************************************** */
|
|
40
|
-
/* global Reflect, Promise */
|
|
41
|
-
var extendStatics = function (d, b) {
|
|
42
|
-
extendStatics = Object.setPrototypeOf ||
|
|
43
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
44
|
-
function (d, b) { for (var p in b)
|
|
45
|
-
if (Object.prototype.hasOwnProperty.call(b, p))
|
|
46
|
-
d[p] = b[p]; };
|
|
47
|
-
return extendStatics(d, b);
|
|
48
|
-
};
|
|
49
|
-
function __extends(d, b) {
|
|
50
|
-
if (typeof b !== "function" && b !== null)
|
|
51
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
52
|
-
extendStatics(d, b);
|
|
53
|
-
function __() { this.constructor = d; }
|
|
54
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
55
|
-
}
|
|
56
|
-
var __assign = function () {
|
|
57
|
-
__assign = Object.assign || function __assign(t) {
|
|
58
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
59
|
-
s = arguments[i];
|
|
60
|
-
for (var p in s)
|
|
61
|
-
if (Object.prototype.hasOwnProperty.call(s, p))
|
|
62
|
-
t[p] = s[p];
|
|
63
|
-
}
|
|
64
|
-
return t;
|
|
65
|
-
};
|
|
66
|
-
return __assign.apply(this, arguments);
|
|
67
|
-
};
|
|
68
|
-
function __rest(s, e) {
|
|
69
|
-
var t = {};
|
|
70
|
-
for (var p in s)
|
|
71
|
-
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
72
|
-
t[p] = s[p];
|
|
73
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
74
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
75
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
76
|
-
t[p[i]] = s[p[i]];
|
|
77
|
-
}
|
|
78
|
-
return t;
|
|
79
|
-
}
|
|
80
|
-
function __decorate(decorators, target, key, desc) {
|
|
81
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
82
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
83
|
-
r = Reflect.decorate(decorators, target, key, desc);
|
|
84
|
-
else
|
|
85
|
-
for (var i = decorators.length - 1; i >= 0; i--)
|
|
86
|
-
if (d = decorators[i])
|
|
87
|
-
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
88
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
89
|
-
}
|
|
90
|
-
function __param(paramIndex, decorator) {
|
|
91
|
-
return function (target, key) { decorator(target, key, paramIndex); };
|
|
92
|
-
}
|
|
93
|
-
function __metadata(metadataKey, metadataValue) {
|
|
94
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
95
|
-
return Reflect.metadata(metadataKey, metadataValue);
|
|
96
|
-
}
|
|
97
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
98
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
99
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
100
|
-
function fulfilled(value) { try {
|
|
101
|
-
step(generator.next(value));
|
|
102
|
-
}
|
|
103
|
-
catch (e) {
|
|
104
|
-
reject(e);
|
|
105
|
-
} }
|
|
106
|
-
function rejected(value) { try {
|
|
107
|
-
step(generator["throw"](value));
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
|
-
reject(e);
|
|
111
|
-
} }
|
|
112
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
113
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
function __generator(thisArg, body) {
|
|
117
|
-
var _ = { label: 0, sent: function () { if (t[0] & 1)
|
|
118
|
-
throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
119
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
|
|
120
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
121
|
-
function step(op) {
|
|
122
|
-
if (f)
|
|
123
|
-
throw new TypeError("Generator is already executing.");
|
|
124
|
-
while (_)
|
|
125
|
-
try {
|
|
126
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
127
|
-
return t;
|
|
128
|
-
if (y = 0, t)
|
|
129
|
-
op = [op[0] & 2, t.value];
|
|
130
|
-
switch (op[0]) {
|
|
131
|
-
case 0:
|
|
132
|
-
case 1:
|
|
133
|
-
t = op;
|
|
134
|
-
break;
|
|
135
|
-
case 4:
|
|
136
|
-
_.label++;
|
|
137
|
-
return { value: op[1], done: false };
|
|
138
|
-
case 5:
|
|
139
|
-
_.label++;
|
|
140
|
-
y = op[1];
|
|
141
|
-
op = [0];
|
|
142
|
-
continue;
|
|
143
|
-
case 7:
|
|
144
|
-
op = _.ops.pop();
|
|
145
|
-
_.trys.pop();
|
|
146
|
-
continue;
|
|
147
|
-
default:
|
|
148
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
149
|
-
_ = 0;
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
|
|
153
|
-
_.label = op[1];
|
|
154
|
-
break;
|
|
155
|
-
}
|
|
156
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
157
|
-
_.label = t[1];
|
|
158
|
-
t = op;
|
|
159
|
-
break;
|
|
160
|
-
}
|
|
161
|
-
if (t && _.label < t[2]) {
|
|
162
|
-
_.label = t[2];
|
|
163
|
-
_.ops.push(op);
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
if (t[2])
|
|
167
|
-
_.ops.pop();
|
|
168
|
-
_.trys.pop();
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
op = body.call(thisArg, _);
|
|
172
|
-
}
|
|
173
|
-
catch (e) {
|
|
174
|
-
op = [6, e];
|
|
175
|
-
y = 0;
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
f = t = 0;
|
|
179
|
-
}
|
|
180
|
-
if (op[0] & 5)
|
|
181
|
-
throw op[1];
|
|
182
|
-
return { value: op[0] ? op[1] : void 0, done: true };
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
var __createBinding = Object.create ? (function (o, m, k, k2) {
|
|
186
|
-
if (k2 === undefined)
|
|
187
|
-
k2 = k;
|
|
188
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
|
|
189
|
-
}) : (function (o, m, k, k2) {
|
|
190
|
-
if (k2 === undefined)
|
|
191
|
-
k2 = k;
|
|
192
|
-
o[k2] = m[k];
|
|
193
|
-
});
|
|
194
|
-
function __exportStar(m, o) {
|
|
195
|
-
for (var p in m)
|
|
196
|
-
if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
|
|
197
|
-
__createBinding(o, m, p);
|
|
198
|
-
}
|
|
199
|
-
function __values(o) {
|
|
200
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
201
|
-
if (m)
|
|
202
|
-
return m.call(o);
|
|
203
|
-
if (o && typeof o.length === "number")
|
|
204
|
-
return {
|
|
205
|
-
next: function () {
|
|
206
|
-
if (o && i >= o.length)
|
|
207
|
-
o = void 0;
|
|
208
|
-
return { value: o && o[i++], done: !o };
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
212
|
-
}
|
|
213
|
-
function __read(o, n) {
|
|
214
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
215
|
-
if (!m)
|
|
216
|
-
return o;
|
|
217
|
-
var i = m.call(o), r, ar = [], e;
|
|
218
|
-
try {
|
|
219
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
|
|
220
|
-
ar.push(r.value);
|
|
221
|
-
}
|
|
222
|
-
catch (error) {
|
|
223
|
-
e = { error: error };
|
|
224
|
-
}
|
|
225
|
-
finally {
|
|
226
|
-
try {
|
|
227
|
-
if (r && !r.done && (m = i["return"]))
|
|
228
|
-
m.call(i);
|
|
229
|
-
}
|
|
230
|
-
finally {
|
|
231
|
-
if (e)
|
|
232
|
-
throw e.error;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return ar;
|
|
236
|
-
}
|
|
237
|
-
/** @deprecated */
|
|
238
|
-
function __spread() {
|
|
239
|
-
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
240
|
-
ar = ar.concat(__read(arguments[i]));
|
|
241
|
-
return ar;
|
|
242
|
-
}
|
|
243
|
-
/** @deprecated */
|
|
244
|
-
function __spreadArrays() {
|
|
245
|
-
for (var s = 0, i = 0, il = arguments.length; i < il; i++)
|
|
246
|
-
s += arguments[i].length;
|
|
247
|
-
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
248
|
-
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
249
|
-
r[k] = a[j];
|
|
250
|
-
return r;
|
|
251
|
-
}
|
|
252
|
-
function __spreadArray(to, from) {
|
|
253
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
254
|
-
to[j] = from[i];
|
|
255
|
-
return to;
|
|
256
|
-
}
|
|
257
|
-
function __await(v) {
|
|
258
|
-
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
259
|
-
}
|
|
260
|
-
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
261
|
-
if (!Symbol.asyncIterator)
|
|
262
|
-
throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
263
|
-
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
264
|
-
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
265
|
-
function verb(n) { if (g[n])
|
|
266
|
-
i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
267
|
-
function resume(n, v) { try {
|
|
268
|
-
step(g[n](v));
|
|
269
|
-
}
|
|
270
|
-
catch (e) {
|
|
271
|
-
settle(q[0][3], e);
|
|
272
|
-
} }
|
|
273
|
-
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
274
|
-
function fulfill(value) { resume("next", value); }
|
|
275
|
-
function reject(value) { resume("throw", value); }
|
|
276
|
-
function settle(f, v) { if (f(v), q.shift(), q.length)
|
|
277
|
-
resume(q[0][0], q[0][1]); }
|
|
278
|
-
}
|
|
279
|
-
function __asyncDelegator(o) {
|
|
280
|
-
var i, p;
|
|
281
|
-
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
|
282
|
-
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
|
|
283
|
-
}
|
|
284
|
-
function __asyncValues(o) {
|
|
285
|
-
if (!Symbol.asyncIterator)
|
|
286
|
-
throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
287
|
-
var m = o[Symbol.asyncIterator], i;
|
|
288
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
289
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
290
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
|
|
291
|
-
}
|
|
292
|
-
function __makeTemplateObject(cooked, raw) {
|
|
293
|
-
if (Object.defineProperty) {
|
|
294
|
-
Object.defineProperty(cooked, "raw", { value: raw });
|
|
295
|
-
}
|
|
296
|
-
else {
|
|
297
|
-
cooked.raw = raw;
|
|
298
|
-
}
|
|
299
|
-
return cooked;
|
|
300
|
-
}
|
|
301
|
-
;
|
|
302
|
-
var __setModuleDefault = Object.create ? (function (o, v) {
|
|
303
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
304
|
-
}) : function (o, v) {
|
|
305
|
-
o["default"] = v;
|
|
306
|
-
};
|
|
307
|
-
function __importStar(mod) {
|
|
308
|
-
if (mod && mod.__esModule)
|
|
309
|
-
return mod;
|
|
310
|
-
var result = {};
|
|
311
|
-
if (mod != null)
|
|
312
|
-
for (var k in mod)
|
|
313
|
-
if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
|
|
314
|
-
__createBinding(result, mod, k);
|
|
315
|
-
__setModuleDefault(result, mod);
|
|
316
|
-
return result;
|
|
317
|
-
}
|
|
318
|
-
function __importDefault(mod) {
|
|
319
|
-
return (mod && mod.__esModule) ? mod : { default: mod };
|
|
320
|
-
}
|
|
321
|
-
function __classPrivateFieldGet(receiver, privateMap) {
|
|
322
|
-
if (!privateMap.has(receiver)) {
|
|
323
|
-
throw new TypeError("attempted to get private field on non-instance");
|
|
324
|
-
}
|
|
325
|
-
return privateMap.get(receiver);
|
|
326
|
-
}
|
|
327
|
-
function __classPrivateFieldSet(receiver, privateMap, value) {
|
|
328
|
-
if (!privateMap.has(receiver)) {
|
|
329
|
-
throw new TypeError("attempted to set private field on non-instance");
|
|
330
|
-
}
|
|
331
|
-
privateMap.set(receiver, value);
|
|
332
|
-
return value;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
var StaticValue = /** @class */ (function () {
|
|
336
|
-
function StaticValue(value) {
|
|
337
|
-
this.value = value;
|
|
338
|
-
}
|
|
339
|
-
StaticValue.prototype.asBoolean = function () { return this.value; };
|
|
340
|
-
StaticValue.prototype.asString = function () { return this.value; };
|
|
341
|
-
StaticValue.prototype.asNumber = function () { return this.value; };
|
|
342
|
-
StaticValue.prototype.getSource = function () { return 'static'; };
|
|
343
|
-
return StaticValue;
|
|
344
|
-
}());
|
|
345
|
-
var RemoteConfigService = /** @class */ (function () {
|
|
346
|
-
function RemoteConfigService(remoteConfigProvider, injector) {
|
|
347
|
-
this.injector = injector;
|
|
348
|
-
this.defaults = this.injector.get(i1.DEFAULTS) || {};
|
|
349
|
-
this.remoteConfig$ = rxjs.of(this.defaults);
|
|
350
|
-
this.parameters = rxjs.of([]);
|
|
351
|
-
if (remoteConfigProvider) {
|
|
352
|
-
this.getBoolean = remoteConfigProvider.getBoolean;
|
|
353
|
-
this.getNumber = remoteConfigProvider.getNumber;
|
|
354
|
-
this.getString = remoteConfigProvider.getString;
|
|
355
|
-
this.getValue = remoteConfigProvider.getValue;
|
|
356
|
-
this.remoteConfig$ = remoteConfigProvider.parameters.pipe(i1.mapToObject(this.defaults));
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
RemoteConfigService.prototype.getBoolean = function (key) {
|
|
360
|
-
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
361
|
-
switch (_a.label) {
|
|
362
|
-
case 0: return [4 /*yield*/, this.getValue(key)];
|
|
363
|
-
case 1: return [2 /*return*/, (_a.sent()).asBoolean()];
|
|
364
|
-
}
|
|
365
|
-
}); });
|
|
366
|
-
};
|
|
367
|
-
RemoteConfigService.prototype.getNumber = function (key) {
|
|
368
|
-
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
369
|
-
switch (_a.label) {
|
|
370
|
-
case 0: return [4 /*yield*/, this.getValue(key)];
|
|
371
|
-
case 1: return [2 /*return*/, (_a.sent()).asNumber()];
|
|
372
|
-
}
|
|
373
|
-
}); });
|
|
374
|
-
};
|
|
375
|
-
RemoteConfigService.prototype.getString = function (key) {
|
|
376
|
-
return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
377
|
-
switch (_a.label) {
|
|
378
|
-
case 0: return [4 /*yield*/, this.getValue(key)];
|
|
379
|
-
case 1: return [2 /*return*/, (_a.sent()).asString()];
|
|
380
|
-
}
|
|
381
|
-
}); });
|
|
382
|
-
};
|
|
383
|
-
RemoteConfigService.prototype.getValue = function (key) { return Promise.resolve(new StaticValue(this.defaults[key])); };
|
|
384
|
-
return RemoteConfigService;
|
|
385
|
-
}());
|
|
386
|
-
RemoteConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RemoteConfigService_Factory() { return new RemoteConfigService(i0.ɵɵinject(i1.AngularFireRemoteConfig, 8), i0.ɵɵinject(i0.INJECTOR)); }, token: RemoteConfigService, providedIn: "root" });
|
|
387
|
-
RemoteConfigService.decorators = [
|
|
388
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
389
|
-
];
|
|
390
|
-
RemoteConfigService.ctorParameters = function () { return [
|
|
391
|
-
{ type: i1.AngularFireRemoteConfig, decorators: [{ type: i0.Optional }] },
|
|
392
|
-
{ type: i0.Injector }
|
|
393
|
-
]; };
|
|
394
|
-
|
|
395
|
-
exports.AuthProvider = void 0;
|
|
396
|
-
(function (AuthProvider) {
|
|
397
|
-
AuthProvider["ALL"] = "all";
|
|
398
|
-
AuthProvider["ANONYMOUS"] = "anonymous";
|
|
399
|
-
AuthProvider["EmailAndPassword"] = "firebase";
|
|
400
|
-
AuthProvider["Google"] = "google";
|
|
401
|
-
AuthProvider["Apple"] = "apple";
|
|
402
|
-
AuthProvider["Facebook"] = "facebook";
|
|
403
|
-
AuthProvider["Twitter"] = "twitter";
|
|
404
|
-
AuthProvider["Github"] = "github";
|
|
405
|
-
AuthProvider["Microsoft"] = "microsoft";
|
|
406
|
-
AuthProvider["Yahoo"] = "yahoo";
|
|
407
|
-
AuthProvider["PhoneNumber"] = "phoneNumber";
|
|
408
|
-
})(exports.AuthProvider || (exports.AuthProvider = {}));
|
|
409
|
-
|
|
410
|
-
exports.Accounts = void 0;
|
|
411
|
-
(function (Accounts) {
|
|
412
|
-
Accounts["NONE"] = "account";
|
|
413
|
-
Accounts["CHECK"] = "account-check";
|
|
414
|
-
Accounts["EDIT"] = "account-edit";
|
|
415
|
-
Accounts["OFF"] = "account-off";
|
|
416
|
-
Accounts["REMOVE"] = "account-remove";
|
|
417
|
-
})(exports.Accounts || (exports.Accounts = {}));
|
|
418
|
-
|
|
419
|
-
// import * as firebase from 'firebase';
|
|
420
|
-
exports.MalServiceEnabled = void 0;
|
|
421
|
-
(function (MalServiceEnabled) {
|
|
422
|
-
MalServiceEnabled[MalServiceEnabled["emulate"] = 2] = "emulate";
|
|
423
|
-
MalServiceEnabled[MalServiceEnabled["enabled"] = 1] = "enabled";
|
|
424
|
-
MalServiceEnabled[MalServiceEnabled["disabled"] = 0] = "disabled";
|
|
425
|
-
})(exports.MalServiceEnabled || (exports.MalServiceEnabled = {}));
|
|
426
|
-
var defaultAuthFirebaseUIConfig = {
|
|
427
|
-
services: {
|
|
428
|
-
firebaseAnalytics: true,
|
|
429
|
-
firebaseCrashlytics: true,
|
|
430
|
-
firebasePerformance: true,
|
|
431
|
-
firebaseRemoteConfig: true,
|
|
432
|
-
inAppPurchase: true,
|
|
433
|
-
firebaseAuth: true,
|
|
434
|
-
firebaseFirestore: true,
|
|
435
|
-
firebaseFunctions: true
|
|
436
|
-
},
|
|
437
|
-
authUi: {
|
|
438
|
-
enableFirestoreSync: true,
|
|
439
|
-
toastMessageOnAuthSuccess: true,
|
|
440
|
-
toastMessageOnAuthError: true,
|
|
441
|
-
toastDefaultDurationMil: 3000,
|
|
442
|
-
authGuardFallbackURL: '/',
|
|
443
|
-
authGuardLoggedInURL: '/',
|
|
444
|
-
authGuardVerifyEmailURL: undefined,
|
|
445
|
-
reSignInUrl: '/auth/signin',
|
|
446
|
-
// Password length min/max in forms independently of each componenet min/max.
|
|
447
|
-
// `min/max` input parameters in components should be within this range.
|
|
448
|
-
passwordMaxLength: 60,
|
|
449
|
-
passwordMinLength: 8,
|
|
450
|
-
passwordRequireLowercase: true,
|
|
451
|
-
passwordRequireUppercase: true,
|
|
452
|
-
passwordRequireSpecial: true,
|
|
453
|
-
passwordRequireNumbers: true,
|
|
454
|
-
// Same as password but for the name
|
|
455
|
-
nameMaxLength: 50,
|
|
456
|
-
nameMinLength: 2,
|
|
457
|
-
supportedProviders: exports.AuthProvider.ALL,
|
|
458
|
-
guestEnabled: false,
|
|
459
|
-
allowAccountEdit: true,
|
|
460
|
-
allowAccountDelete: true,
|
|
461
|
-
allowAccountLogout: true,
|
|
462
|
-
// If set, sign-in/up form is not available until email has been verified.
|
|
463
|
-
// Plus protected routes are still protected even though user is connected.
|
|
464
|
-
guardProtectedRoutesUntilEmailIsVerified: true,
|
|
465
|
-
// Default to email verification on
|
|
466
|
-
enableEmailVerification: true
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
// Merge default config with user provided config.
|
|
470
|
-
function malSharedConfigFactory(userProvidedConfig) {
|
|
471
|
-
return {
|
|
472
|
-
firebase: userProvidedConfig.firebase,
|
|
473
|
-
services: Object.assign({}, defaultAuthFirebaseUIConfig.services, userProvidedConfig.services || {}),
|
|
474
|
-
authUi: Object.assign({}, defaultAuthFirebaseUIConfig.authUi, userProvidedConfig.authUi || {}),
|
|
475
|
-
configDefaults: userProvidedConfig.configDefaults || {}
|
|
476
|
-
};
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
// tslint:disable-next-line max-len
|
|
480
|
-
var PHONE_NUMBER_REGEX = new RegExp(['^[+]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\.]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]{4,12}$'].join(''));
|
|
481
|
-
exports.FirebaseErrorCodes = void 0;
|
|
482
|
-
(function (FirebaseErrorCodes) {
|
|
483
|
-
FirebaseErrorCodes["requiresRecentLogin"] = "auth/requires-recent-login";
|
|
484
|
-
})(exports.FirebaseErrorCodes || (exports.FirebaseErrorCodes = {}));
|
|
485
|
-
|
|
486
|
-
// This token is the official token containing the final configuration; ie. the merge between default and user provided configurations
|
|
487
|
-
// Firebase Functional Areas
|
|
488
|
-
var MalAnalyticsProviderToken = new i0.InjectionToken('MalAnalyticsProviderToken');
|
|
489
|
-
var MalCrashlyticsProviderToken = new i0.InjectionToken('MalCrashlyticsProviderToken');
|
|
490
|
-
var MalAuthServiceProviderToken = new i0.InjectionToken('MalAuthServiceProviderToken');
|
|
491
|
-
// Auth Process Service
|
|
492
|
-
var AuthHooksProviderToken = new i0.InjectionToken('AuthHooksProviderToken');
|
|
493
|
-
var MalCredentialFactoryProviderToken = new i0.InjectionToken('MalCredentialFactoryProviderToken');
|
|
494
|
-
// Configuration
|
|
495
|
-
var MalUserProvidedConfigToken = new i0.InjectionToken('MalUserProvidedConfigToken');
|
|
496
|
-
var MalSharedConfigToken = new i0.InjectionToken('MalSharedConfigToken');
|
|
497
|
-
// UI Providers
|
|
498
|
-
var MalLoadingUIProviderToken = new i0.InjectionToken('MalLoadingUIProviderToken');
|
|
499
|
-
var MalAlertsUIProviderToken = new i0.InjectionToken('MalAlertsUIProviderToken');
|
|
500
|
-
var MalPickerUIProviderToken = new i0.InjectionToken('MalPickerMalPickerUIProviderTokenUIProvider');
|
|
501
|
-
var MalToastUIProviderToken = new i0.InjectionToken('MalToastUIProviderToken');
|
|
502
|
-
var MalLegaliyDialogUIProiderToken = new i0.InjectionToken("MalLegaliyDialogUIProiderToken");
|
|
503
|
-
|
|
504
|
-
var AnalyticsService = /** @class */ (function () {
|
|
505
|
-
function AnalyticsService(analytics) {
|
|
506
|
-
var _this = this;
|
|
507
|
-
this.analytics = analytics;
|
|
508
|
-
// Analytics NoOp
|
|
509
|
-
this.logEvent = function (name, params) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
510
|
-
console.log('NotLogged:LogEvent ' + name, params);
|
|
511
|
-
return [2 /*return*/];
|
|
512
|
-
}); }); };
|
|
513
|
-
this.setScreenName = function (screenName, screenClass) { return Promise.resolve(); };
|
|
514
|
-
this.setUserId = function (userId) { };
|
|
515
|
-
if (this.analytics) {
|
|
516
|
-
this.logEvent = this.analytics.logEvent;
|
|
517
|
-
this.setScreenName = this.analytics.setScreenName;
|
|
518
|
-
this.setUserId = this.analytics.setUserId;
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
return AnalyticsService;
|
|
522
|
-
}());
|
|
523
|
-
AnalyticsService.decorators = [
|
|
524
|
-
{ type: i0.Injectable }
|
|
525
|
-
];
|
|
526
|
-
AnalyticsService.ctorParameters = function () { return [
|
|
527
|
-
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalAnalyticsProviderToken; }),] }] }
|
|
528
|
-
]; };
|
|
529
|
-
|
|
530
|
-
var CrashlyticsService = /** @class */ (function () {
|
|
531
|
-
function CrashlyticsService(crashlyticsProvider) {
|
|
532
|
-
this.crashlyticsProvider = crashlyticsProvider;
|
|
533
|
-
// Crashlyitcs
|
|
534
|
-
this._recordException = function (_options) { return Promise.resolve(); };
|
|
535
|
-
this._addLogMessage = function (message) { return Promise.resolve(); };
|
|
536
|
-
this._setUserId = function (uid) { };
|
|
537
|
-
if (this.crashlyticsProvider) {
|
|
538
|
-
this._recordException = this.crashlyticsProvider.recordException;
|
|
539
|
-
this._addLogMessage = this.crashlyticsProvider.addLogMessage;
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
CrashlyticsService.prototype.setUserId = function (uid) {
|
|
543
|
-
this._setUserId(uid);
|
|
544
|
-
};
|
|
545
|
-
CrashlyticsService.prototype.recordException = function (options) {
|
|
546
|
-
var e = { message: 'An unknown error occured' };
|
|
547
|
-
if ('string' === typeof options) {
|
|
548
|
-
e.message = options;
|
|
549
|
-
}
|
|
550
|
-
else if (options instanceof Error) {
|
|
551
|
-
e.message = options.message;
|
|
552
|
-
}
|
|
553
|
-
else if (e.message) {
|
|
554
|
-
e = options;
|
|
555
|
-
}
|
|
556
|
-
return this._recordException(e);
|
|
557
|
-
};
|
|
558
|
-
CrashlyticsService.prototype.addLogMessage = function (message) {
|
|
559
|
-
console.log('addLogMessage ' + message);
|
|
560
|
-
return this._addLogMessage(message);
|
|
561
|
-
};
|
|
562
|
-
return CrashlyticsService;
|
|
563
|
-
}());
|
|
564
|
-
CrashlyticsService.decorators = [
|
|
565
|
-
{ type: i0.Injectable }
|
|
566
|
-
];
|
|
567
|
-
CrashlyticsService.ctorParameters = function () { return [
|
|
568
|
-
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalCrashlyticsProviderToken; }),] }] }
|
|
569
|
-
]; };
|
|
570
|
-
|
|
571
|
-
var PerformanceTraceNoop = /** @class */ (function () {
|
|
572
|
-
function PerformanceTraceNoop() {
|
|
573
|
-
}
|
|
574
|
-
PerformanceTraceNoop.prototype.start = function () { };
|
|
575
|
-
PerformanceTraceNoop.prototype.stop = function () { };
|
|
576
|
-
PerformanceTraceNoop.prototype.putAttribute = function (key, value) { };
|
|
577
|
-
return PerformanceTraceNoop;
|
|
578
|
-
}());
|
|
579
|
-
var PerformanceService = /** @class */ (function () {
|
|
580
|
-
function PerformanceService(performanceProvider) {
|
|
581
|
-
this.dataCollectionEnabled = Promise.resolve(false);
|
|
582
|
-
if (performanceProvider) {
|
|
583
|
-
this.createTrace = performanceProvider.trace;
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
PerformanceService.prototype.createTrace = function (label) {
|
|
587
|
-
return Promise.resolve(new PerformanceTraceNoop());
|
|
588
|
-
};
|
|
589
|
-
return PerformanceService;
|
|
590
|
-
}());
|
|
591
|
-
PerformanceService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PerformanceService_Factory() { return new PerformanceService(i0.ɵɵinject(i1$1.AngularFirePerformance, 8)); }, token: PerformanceService, providedIn: "root" });
|
|
592
|
-
PerformanceService.decorators = [
|
|
593
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
594
|
-
];
|
|
595
|
-
PerformanceService.ctorParameters = function () { return [
|
|
596
|
-
{ type: i1$1.AngularFirePerformance, decorators: [{ type: i0.Optional }] }
|
|
597
|
-
]; };
|
|
598
|
-
|
|
599
|
-
var FirebaseService = /** @class */ (function () {
|
|
600
|
-
function FirebaseService(crashlyticsService, analyticsService, performanceService) {
|
|
601
|
-
this.crashlyticsService = crashlyticsService;
|
|
602
|
-
this.analyticsService = analyticsService;
|
|
603
|
-
this.performanceService = performanceService;
|
|
604
|
-
this.recordException = this.crashlyticsService.recordException.bind(this.crashlyticsService);
|
|
605
|
-
this.addLogMessage = this.crashlyticsService.addLogMessage.bind(this.crashlyticsService);
|
|
606
|
-
this.setScreenName = this.analyticsService.setScreenName.bind(this.analyticsService);
|
|
607
|
-
this.logEvent = this.analyticsService.logEvent.bind(this.analyticsService);
|
|
608
|
-
this.createTrace = this.performanceService.createTrace;
|
|
609
|
-
}
|
|
610
|
-
FirebaseService.prototype.setUserId = function (userId) {
|
|
611
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
612
|
-
return __generator(this, function (_a) {
|
|
613
|
-
this.analyticsService.setUserId(userId);
|
|
614
|
-
this.crashlyticsService.setUserId(userId);
|
|
615
|
-
return [2 /*return*/];
|
|
616
|
-
});
|
|
617
|
-
});
|
|
618
|
-
};
|
|
619
|
-
return FirebaseService;
|
|
620
|
-
}());
|
|
621
|
-
FirebaseService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FirebaseService_Factory() { return new FirebaseService(i0.ɵɵinject(CrashlyticsService), i0.ɵɵinject(AnalyticsService), i0.ɵɵinject(PerformanceService)); }, token: FirebaseService, providedIn: "root" });
|
|
622
|
-
FirebaseService.decorators = [
|
|
623
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
624
|
-
];
|
|
625
|
-
FirebaseService.ctorParameters = function () { return [
|
|
626
|
-
{ type: CrashlyticsService },
|
|
627
|
-
{ type: AnalyticsService },
|
|
628
|
-
{ type: PerformanceService }
|
|
629
|
-
]; };
|
|
630
|
-
|
|
631
|
-
var USER_COLLECTION = '/users';
|
|
632
|
-
var FirestoreSyncService = /** @class */ (function () {
|
|
633
|
-
function FirestoreSyncService(afs, fire) {
|
|
634
|
-
this.afs = afs;
|
|
635
|
-
this.fire = fire;
|
|
636
|
-
}
|
|
637
|
-
FirestoreSyncService.prototype.getUserData = function (uid) {
|
|
638
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
639
|
-
var doc, error_1;
|
|
640
|
-
return __generator(this, function (_a) {
|
|
641
|
-
switch (_a.label) {
|
|
642
|
-
case 0:
|
|
643
|
-
_a.trys.push([0, 2, , 3]);
|
|
644
|
-
return [4 /*yield*/, this.getUserDocRefByUID(uid).get().toPromise()];
|
|
645
|
-
case 1:
|
|
646
|
-
doc = _a.sent();
|
|
647
|
-
return [2 /*return*/, doc.data() || null];
|
|
648
|
-
case 2:
|
|
649
|
-
error_1 = _a.sent();
|
|
650
|
-
this.fire.recordException(error_1);
|
|
651
|
-
return [2 /*return*/, null];
|
|
652
|
-
case 3: return [2 /*return*/];
|
|
653
|
-
}
|
|
654
|
-
});
|
|
655
|
-
});
|
|
656
|
-
};
|
|
657
|
-
FirestoreSyncService.prototype.getUserDocRefByUID = function (uid) {
|
|
658
|
-
return this.afs.doc(USER_COLLECTION + "/" + uid);
|
|
659
|
-
};
|
|
660
|
-
FirestoreSyncService.prototype.setUserData = function (uid, user, options) {
|
|
661
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
662
|
-
return __generator(this, function (_a) {
|
|
663
|
-
try {
|
|
664
|
-
return [2 /*return*/, this.afs.doc(USER_COLLECTION + "/" + uid).set(user, options)];
|
|
665
|
-
}
|
|
666
|
-
catch (error) {
|
|
667
|
-
this.fire.recordException(error);
|
|
668
|
-
}
|
|
669
|
-
return [2 /*return*/];
|
|
670
|
-
});
|
|
671
|
-
});
|
|
672
|
-
};
|
|
673
|
-
FirestoreSyncService.prototype.updateUserData = function (uid, user) {
|
|
674
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
675
|
-
return __generator(this, function (_a) {
|
|
676
|
-
try {
|
|
677
|
-
return [2 /*return*/, this.getUserDocRefByUID(uid).update(Object.assign(Object.assign({}, user), { uid: uid }))];
|
|
678
|
-
}
|
|
679
|
-
catch (error) {
|
|
680
|
-
this.fire.recordException(error);
|
|
681
|
-
}
|
|
682
|
-
return [2 /*return*/];
|
|
683
|
-
});
|
|
684
|
-
});
|
|
685
|
-
};
|
|
686
|
-
return FirestoreSyncService;
|
|
687
|
-
}());
|
|
688
|
-
FirestoreSyncService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FirestoreSyncService_Factory() { return new FirestoreSyncService(i0.ɵɵinject(i1$2.AngularFirestore), i0.ɵɵinject(FirebaseService)); }, token: FirestoreSyncService, providedIn: "root" });
|
|
689
|
-
FirestoreSyncService.decorators = [
|
|
690
|
-
{ type: i0.Injectable, args: [{
|
|
691
|
-
providedIn: 'root'
|
|
692
|
-
},] }
|
|
693
|
-
];
|
|
694
|
-
FirestoreSyncService.ctorParameters = function () { return [
|
|
695
|
-
{ type: i1$2.AngularFirestore },
|
|
696
|
-
{ type: FirebaseService }
|
|
697
|
-
]; };
|
|
698
|
-
|
|
699
|
-
var UiService = /** @class */ (function () {
|
|
700
|
-
function UiService(toastService, alertService, loadingService, legalityDialog, fire) {
|
|
701
|
-
this.toastService = toastService;
|
|
702
|
-
this.alertService = alertService;
|
|
703
|
-
this.loadingService = loadingService;
|
|
704
|
-
this.legalityDialog = legalityDialog;
|
|
705
|
-
this.fire = fire;
|
|
706
|
-
this.toast = this.toastService.toast.bind(this.toastService);
|
|
707
|
-
this.createToast = this.toastService.createToast.bind(this.toastService);
|
|
708
|
-
this.errorToast = this.toastService.errorToast.bind(this.toastService);
|
|
709
|
-
this.okAlert = this.alertService.okAlert.bind(this.alertService);
|
|
710
|
-
this.infoAlert = this.alertService.infoAlert.bind(this.alertService);
|
|
711
|
-
this.errorAlert = this.alertService.errorAlert.bind(this.alertService);
|
|
712
|
-
this.textboxInputAlert = this.alertService.textboxInputAlert.bind(this.alertService);
|
|
713
|
-
this.yesNoAlert = this.alertService.yesNoAlert.bind(this.alertService);
|
|
714
|
-
this.createLoading = this.loadingService.createLoading.bind(this.loadingService);
|
|
715
|
-
this.watchLoading = this.loadingService.watchLoading.bind(this.loadingService);
|
|
716
|
-
this.confirmTos = this.legalityDialog.confirmTos.bind(this.legalityDialog);
|
|
717
|
-
}
|
|
718
|
-
UiService.prototype.logError = function (error, messagePrefix) {
|
|
719
|
-
console.log(error);
|
|
720
|
-
this.fire.recordException(error);
|
|
721
|
-
if (messagePrefix !== null) {
|
|
722
|
-
this.toastService.errorToast(error, messagePrefix);
|
|
723
|
-
}
|
|
724
|
-
};
|
|
725
|
-
return UiService;
|
|
726
|
-
}());
|
|
727
|
-
UiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UiService_Factory() { return new UiService(i0.ɵɵinject(MalToastUIProviderToken), i0.ɵɵinject(MalAlertsUIProviderToken), i0.ɵɵinject(MalLoadingUIProviderToken), i0.ɵɵinject(MalLegaliyDialogUIProiderToken), i0.ɵɵinject(FirebaseService)); }, token: UiService, providedIn: "root" });
|
|
728
|
-
UiService.decorators = [
|
|
729
|
-
{ type: i0.Injectable, args: [{ providedIn: 'root' },] }
|
|
730
|
-
];
|
|
731
|
-
UiService.ctorParameters = function () { return [
|
|
732
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalToastUIProviderToken; }),] }] },
|
|
733
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalAlertsUIProviderToken; }),] }] },
|
|
734
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalLoadingUIProviderToken; }),] }] },
|
|
735
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalLegaliyDialogUIProiderToken; }),] }] },
|
|
736
|
-
{ type: FirebaseService }
|
|
737
|
-
]; };
|
|
738
|
-
|
|
739
|
-
var AuthProcessService = /** @class */ (function () {
|
|
740
|
-
function AuthProcessService(config, hooksService, credFactory, fireStoreService, afa, // TODO should be private
|
|
741
|
-
fire, ui) {
|
|
742
|
-
var _this = this;
|
|
743
|
-
this.config = config;
|
|
744
|
-
this.hooksService = hooksService;
|
|
745
|
-
this.credFactory = credFactory;
|
|
746
|
-
this.fireStoreService = fireStoreService;
|
|
747
|
-
this.afa = afa;
|
|
748
|
-
this.fire = fire;
|
|
749
|
-
this.ui = ui;
|
|
750
|
-
this.onErrorEmitter = new i0.EventEmitter();
|
|
751
|
-
this.onSignInEmitter = new i0.EventEmitter();
|
|
752
|
-
this.onRegisterEmitter = new i0.EventEmitter();
|
|
753
|
-
this.onSignOutEmitter = new i0.EventEmitter();
|
|
754
|
-
this.onUserUpdatedEmitter = new i0.EventEmitter();
|
|
755
|
-
this.onUserDeletedEmitter = new i0.EventEmitter();
|
|
756
|
-
this.showProfileDialog = new i0.EventEmitter();
|
|
757
|
-
/**
|
|
758
|
-
* Useful to know about auth state even between reloads.
|
|
759
|
-
*
|
|
760
|
-
**/
|
|
761
|
-
this._user$ = new rxjs.BehaviorSubject(null);
|
|
762
|
-
this.user$ = this.afa.user;
|
|
763
|
-
/**
|
|
764
|
-
* Useful to know about auth state even between reloads.
|
|
765
|
-
**/
|
|
766
|
-
this._authState$ = new rxjs.BehaviorSubject(null);
|
|
767
|
-
this.authState$ = this.afa.authState;
|
|
768
|
-
/**
|
|
769
|
-
* Obersable for current user - that only emits when the uid changes
|
|
770
|
-
* Useful to reset session info when user changes.
|
|
771
|
-
*/
|
|
772
|
-
this.uid$ = this.user$.pipe(operators.map(function (user) { return (user === null || user === void 0 ? void 0 : user.uid) || null; }), operators.distinctUntilChanged());
|
|
773
|
-
/**
|
|
774
|
-
* UserInterface helper observables - indicating what user actions are currently permitted and
|
|
775
|
-
* the current status of authentication.
|
|
776
|
-
*/
|
|
777
|
-
this.isLoggedIn$ = this.user$.pipe(operators.map(function (user) { return null !== user; }));
|
|
778
|
-
this.isAnonymous$ = this.user$.pipe(operators.map(function (user) { return null !== user && user.isAnonymous; }));
|
|
779
|
-
this.isNamedUser$ = this.user$.pipe(operators.map(function (user) { return null !== user && !user.isAnonymous; }));
|
|
780
|
-
this.isNotNamedUser$ = this.user$.pipe(operators.map(function (user) { return null === user || user.isAnonymous; }));
|
|
781
|
-
this.canEdit$ = this.isLoggedIn$;
|
|
782
|
-
this.canRegister$ = this.isNotNamedUser$;
|
|
783
|
-
this.canSignIn$ = this.isLoggedIn$.pipe(operators.map(function (isLoggedIn) { return !isLoggedIn; }));
|
|
784
|
-
this.canSignInAsGuest$ = this.isLoggedIn$.pipe(operators.map(function (isLoggedIn) { return !isLoggedIn && _this.config.authUi.guestEnabled; }));
|
|
785
|
-
this.canSignOut$ = this.isNamedUser$;
|
|
786
|
-
/**
|
|
787
|
-
* Observable. Emits whenever currentUser signsOut
|
|
788
|
-
*/
|
|
789
|
-
this.onSignOut$ = this.authState$.pipe(operators.filter(function (user) { return user === null; }), operators.map(function () { return; }));
|
|
790
|
-
/**
|
|
791
|
-
* Observable emits whenever a new user signsIn
|
|
792
|
-
*/
|
|
793
|
-
this.onSignIn$ = this.authState$.pipe(operators.filter(function (user) { return null !== user; }), operators.map(function (user) { return user; }));
|
|
794
|
-
/**
|
|
795
|
-
* Triggers subscriber actions when the current user token is refreshed
|
|
796
|
-
*/
|
|
797
|
-
this.tokenRefreshed$ = new rxjs.Subject();
|
|
798
|
-
this.afa.user.subscribe(function (user) { return _this._user$.next(user); });
|
|
799
|
-
this.afa.authState.subscribe(function (authState) { return _this._authState$.next(authState); });
|
|
800
|
-
this.authState$.subscribe(function (user) {
|
|
801
|
-
_this.fire.setUserId((user === null || user === void 0 ? void 0 : user.uid) || null);
|
|
802
|
-
});
|
|
803
|
-
this.onSignOut$.subscribe(function () { return _this.onSignOutEmitter.emit(); });
|
|
804
|
-
}
|
|
805
|
-
Object.defineProperty(AuthProcessService.prototype, "user", {
|
|
806
|
-
get: function () {
|
|
807
|
-
return this._user$.value;
|
|
808
|
-
},
|
|
809
|
-
enumerable: false,
|
|
810
|
-
configurable: true
|
|
811
|
-
});
|
|
812
|
-
Object.defineProperty(AuthProcessService.prototype, "reauthenticateProviders$", {
|
|
813
|
-
/**
|
|
814
|
-
* Provides an array of authentication providers that are valid for the currently signed-in user
|
|
815
|
-
*/
|
|
816
|
-
get: function () {
|
|
817
|
-
return this.user$.pipe(operators.map(function (user) { return ((user === null || user === void 0 ? void 0 : user.providerData) || [])
|
|
818
|
-
.map(function (item) {
|
|
819
|
-
switch (item === null || item === void 0 ? void 0 : item.providerId) {
|
|
820
|
-
case 'google.com': return exports.AuthProvider.Google;
|
|
821
|
-
default:
|
|
822
|
-
console.log('NO MATCH', item);
|
|
823
|
-
return;
|
|
824
|
-
}
|
|
825
|
-
})
|
|
826
|
-
.filter(function (item) { return !!item; }); }));
|
|
827
|
-
},
|
|
828
|
-
enumerable: false,
|
|
829
|
-
configurable: true
|
|
830
|
-
});
|
|
831
|
-
Object.defineProperty(AuthProcessService.prototype, "isWebPlatform", {
|
|
832
|
-
/**
|
|
833
|
-
* Returns true if current platform is webplatform supported by @angular/fire
|
|
834
|
-
*/
|
|
835
|
-
get: function () {
|
|
836
|
-
return ['https:', 'http:', 'chrome-extension'].includes(location.protocol);
|
|
837
|
-
},
|
|
838
|
-
enumerable: false,
|
|
839
|
-
configurable: true
|
|
840
|
-
});
|
|
841
|
-
/**
|
|
842
|
-
* Indicates if the specified provider is supported on the current platform
|
|
843
|
-
*
|
|
844
|
-
* A provider is supported if it is configured to be so in authUi.supportProviders and either the platform is a webplatform
|
|
845
|
-
* (in which case @anguluar/fire will be used). Or the provider is supported by the injected credFactory (such as that provided by /capacitor).
|
|
846
|
-
*/
|
|
847
|
-
AuthProcessService.prototype.isProviderSupported = function (provider) {
|
|
848
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
849
|
-
var _c, _d, _e;
|
|
850
|
-
return __generator(this, function (_f) {
|
|
851
|
-
switch (_f.label) {
|
|
852
|
-
case 0:
|
|
853
|
-
_c = (this.config.authUi.supportedProviders === exports.AuthProvider.ALL || this.config.authUi.supportedProviders.includes(provider));
|
|
854
|
-
if (!_c) return [3 /*break*/, 4];
|
|
855
|
-
_d = this.isWebPlatform;
|
|
856
|
-
if (_d) return [3 /*break*/, 3];
|
|
857
|
-
_e = this.credFactory;
|
|
858
|
-
if (!_e) return [3 /*break*/, 2];
|
|
859
|
-
return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
|
|
860
|
-
case 1:
|
|
861
|
-
_e = (_f.sent());
|
|
862
|
-
_f.label = 2;
|
|
863
|
-
case 2:
|
|
864
|
-
_d = (_e);
|
|
865
|
-
_f.label = 3;
|
|
866
|
-
case 3:
|
|
867
|
-
_c = (_d);
|
|
868
|
-
_f.label = 4;
|
|
869
|
-
case 4: return [2 /*return*/, _c];
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
});
|
|
873
|
-
};
|
|
874
|
-
/**
|
|
875
|
-
* Refreshes the current user IdToken, and triggers the tokenRefreshed$ subject
|
|
876
|
-
*/
|
|
877
|
-
AuthProcessService.prototype.refreshToken = function () {
|
|
878
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
879
|
-
var user;
|
|
880
|
-
return __generator(this, function (_c) {
|
|
881
|
-
switch (_c.label) {
|
|
882
|
-
case 0: return [4 /*yield*/, this.afa.currentUser];
|
|
883
|
-
case 1:
|
|
884
|
-
user = _c.sent();
|
|
885
|
-
if (!user) return [3 /*break*/, 4];
|
|
886
|
-
return [4 /*yield*/, user.getIdToken(true)];
|
|
887
|
-
case 2:
|
|
888
|
-
_c.sent();
|
|
889
|
-
return [4 /*yield*/, this.tokenRefreshed$.next()];
|
|
890
|
-
case 3:
|
|
891
|
-
_c.sent();
|
|
892
|
-
_c.label = 4;
|
|
893
|
-
case 4: return [2 /*return*/];
|
|
894
|
-
}
|
|
895
|
-
});
|
|
896
|
-
});
|
|
897
|
-
};
|
|
898
|
-
/**
|
|
899
|
-
* Provides an observable that subscribes to the current user token and returns the value of the specified claim.
|
|
900
|
-
*
|
|
901
|
-
* @param claim Claim to be returned
|
|
902
|
-
* @returns Observable for: Value of claim within current user token || null (if not signed in) || undefined (if no such claim exists)
|
|
903
|
-
*/
|
|
904
|
-
AuthProcessService.prototype.selectCurrentUserClaim = function (claim) {
|
|
905
|
-
var _this = this;
|
|
906
|
-
return new rxjs.Observable(function (subscriber) {
|
|
907
|
-
// Handler function to process the ID token
|
|
908
|
-
// Emits the claim || undefined || null
|
|
909
|
-
var handleTokenRefresh = function (user) { return __awaiter(_this, void 0, void 0, function () {
|
|
910
|
-
var token;
|
|
911
|
-
return __generator(this, function (_c) {
|
|
912
|
-
switch (_c.label) {
|
|
913
|
-
case 0:
|
|
914
|
-
if (!user) return [3 /*break*/, 2];
|
|
915
|
-
return [4 /*yield*/, user.getIdTokenResult()];
|
|
916
|
-
case 1:
|
|
917
|
-
token = _c.sent();
|
|
918
|
-
subscriber.next(token.claims[claim]);
|
|
919
|
-
return [3 /*break*/, 3];
|
|
920
|
-
case 2:
|
|
921
|
-
subscriber.next(null);
|
|
922
|
-
_c.label = 3;
|
|
923
|
-
case 3: return [2 /*return*/];
|
|
924
|
-
}
|
|
925
|
-
});
|
|
926
|
-
}); };
|
|
927
|
-
// Subscribe to token refresh events
|
|
928
|
-
_this.tokenRefreshed$.subscribe(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
929
|
-
var user;
|
|
930
|
-
return __generator(this, function (_c) {
|
|
931
|
-
switch (_c.label) {
|
|
932
|
-
case 0: return [4 /*yield*/, this.afa.currentUser];
|
|
933
|
-
case 1:
|
|
934
|
-
user = _c.sent();
|
|
935
|
-
return [4 /*yield*/, handleTokenRefresh(user)];
|
|
936
|
-
case 2:
|
|
937
|
-
_c.sent();
|
|
938
|
-
return [2 /*return*/];
|
|
939
|
-
}
|
|
940
|
-
});
|
|
941
|
-
}); });
|
|
942
|
-
// Subscribe to user update events
|
|
943
|
-
_this.afa.user.subscribe(function (user) { return __awaiter(_this, void 0, void 0, function () {
|
|
944
|
-
return __generator(this, function (_c) {
|
|
945
|
-
switch (_c.label) {
|
|
946
|
-
case 0: return [4 /*yield*/, handleTokenRefresh(user)];
|
|
947
|
-
case 1:
|
|
948
|
-
_c.sent();
|
|
949
|
-
return [2 /*return*/];
|
|
950
|
-
}
|
|
951
|
-
});
|
|
952
|
-
}); });
|
|
953
|
-
});
|
|
954
|
-
};
|
|
955
|
-
/**
|
|
956
|
-
* Get the value for a custom claim for the current user (extracted from their ID token)
|
|
957
|
-
*
|
|
958
|
-
* @param claim Claim to be returned
|
|
959
|
-
* @returns Value of claim within current user token || null (if not signed in) || undefined (if no such claim exists)
|
|
960
|
-
*/
|
|
961
|
-
AuthProcessService.prototype.getCurrentUserClaim = function (claim) {
|
|
962
|
-
return this.selectCurrentUserClaim(claim).pipe(operators.take(1)).toPromise();
|
|
963
|
-
};
|
|
964
|
-
/**
|
|
965
|
-
* Reset the password of currently authenticated user via email,
|
|
966
|
-
* Firebase sends an email to the user - and managed the reset process directly via google's hosted pages.
|
|
967
|
-
*
|
|
968
|
-
* @param email - the email to reset
|
|
969
|
-
*/
|
|
970
|
-
AuthProcessService.prototype.resetPassword = function (email) {
|
|
971
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
972
|
-
var error_1;
|
|
973
|
-
return __generator(this, function (_c) {
|
|
974
|
-
switch (_c.label) {
|
|
975
|
-
case 0:
|
|
976
|
-
_c.trys.push([0, 1, , 3]);
|
|
977
|
-
this.fire.addLogMessage('Password reset email sent');
|
|
978
|
-
this.afa.sendPasswordResetEmail(email);
|
|
979
|
-
this.ui.toast('auth.resetPassword.onResetRequestedTo', { duration: this.config.authUi.toastDefaultDurationMil, interpolateParams: { email: email }, position: 'bottom' });
|
|
980
|
-
return [3 /*break*/, 3];
|
|
981
|
-
case 1:
|
|
982
|
-
error_1 = _c.sent();
|
|
983
|
-
return [4 /*yield*/, this.handleError(error_1)];
|
|
984
|
-
case 2:
|
|
985
|
-
_c.sent();
|
|
986
|
-
return [3 /*break*/, 3];
|
|
987
|
-
case 3: return [2 /*return*/];
|
|
988
|
-
}
|
|
989
|
-
});
|
|
990
|
-
});
|
|
991
|
-
};
|
|
992
|
-
/**
|
|
993
|
-
* General sign in mechanism to authenticate the users with a firebase project
|
|
994
|
-
* using a traditional way, via username and password or by using an authentication provider
|
|
995
|
-
* like google, facebook, twitter and github
|
|
996
|
-
*
|
|
997
|
-
* [Current State -> Target State]
|
|
998
|
-
* Null -> Anon/named: OK
|
|
999
|
-
* Anon -> Anon: Throws Error
|
|
1000
|
-
* Anon -> Named: Triggers MergeService
|
|
1001
|
-
* Named -> Any: Throws Error
|
|
1002
|
-
*
|
|
1003
|
-
* @param provider - the provider to authenticate with (google, facebook, twitter, github)
|
|
1004
|
-
* @param credentials optional email and password
|
|
1005
|
-
*/
|
|
1006
|
-
AuthProcessService.prototype.signInWith = function (provider, options) {
|
|
1007
|
-
var _a, _b;
|
|
1008
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1009
|
-
var loading, userCred, currentUser, mergeContext, _c, successMessage, error_2, error_3;
|
|
1010
|
-
return __generator(this, function (_d) {
|
|
1011
|
-
switch (_d.label) {
|
|
1012
|
-
case 0:
|
|
1013
|
-
this.fire.addLogMessage("SignInWithProvider; provider=" + provider);
|
|
1014
|
-
return [4 /*yield*/, this.ui.createLoading()];
|
|
1015
|
-
case 1:
|
|
1016
|
-
loading = _d.sent();
|
|
1017
|
-
_d.label = 2;
|
|
1018
|
-
case 2:
|
|
1019
|
-
_d.trys.push([2, 28, , 31]);
|
|
1020
|
-
userCred = null;
|
|
1021
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1022
|
-
case 3:
|
|
1023
|
-
currentUser = _d.sent();
|
|
1024
|
-
mergeContext = null;
|
|
1025
|
-
if (!(currentUser && currentUser.isAnonymous && ((_a = this.hooksService) === null || _a === void 0 ? void 0 : _a.prepareMergeSource) && provider !== exports.AuthProvider.ANONYMOUS)) return [3 /*break*/, 5];
|
|
1026
|
-
return [4 /*yield*/, this.hooksService.prepareMergeSource(currentUser)];
|
|
1027
|
-
case 4:
|
|
1028
|
-
mergeContext = _d.sent();
|
|
1029
|
-
_d.label = 5;
|
|
1030
|
-
case 5:
|
|
1031
|
-
_c = provider;
|
|
1032
|
-
switch (_c) {
|
|
1033
|
-
case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 6];
|
|
1034
|
-
case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 12];
|
|
1035
|
-
case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 18];
|
|
1036
|
-
}
|
|
1037
|
-
return [3 /*break*/, 19];
|
|
1038
|
-
case 6:
|
|
1039
|
-
if (currentUser) {
|
|
1040
|
-
throw new Error('Cannot signIn anonymously whilst already signedIn, SignOut first');
|
|
1041
|
-
}
|
|
1042
|
-
return [4 /*yield*/, this.confirmTos(null, options)];
|
|
1043
|
-
case 7:
|
|
1044
|
-
if (!_d.sent()) return [3 /*break*/, 11];
|
|
1045
|
-
loading.present();
|
|
1046
|
-
return [4 /*yield*/, this.afa.signInAnonymously()];
|
|
1047
|
-
case 8:
|
|
1048
|
-
userCred = _d.sent();
|
|
1049
|
-
return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
|
|
1050
|
-
case 9:
|
|
1051
|
-
_d.sent(); // Save tosAcceptance in firestore if sync enabled
|
|
1052
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1053
|
-
case 10:
|
|
1054
|
-
_d.sent();
|
|
1055
|
-
_d.label = 11;
|
|
1056
|
-
case 11: return [3 /*break*/, 21];
|
|
1057
|
-
case 12:
|
|
1058
|
-
if (currentUser && !currentUser.isAnonymous) {
|
|
1059
|
-
throw new Error('Cannot signIn whilst already signedIn, SignOut first');
|
|
1060
|
-
}
|
|
1061
|
-
if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
|
|
1062
|
-
throw new Error('Credentials are required when signing in with AuthProvider.EmailAndPassword');
|
|
1063
|
-
}
|
|
1064
|
-
loading.present();
|
|
1065
|
-
return [4 /*yield*/, this.afa.signInWithEmailAndPassword(options.credentials.email, options.credentials.password)];
|
|
1066
|
-
case 13:
|
|
1067
|
-
userCred = _d.sent();
|
|
1068
|
-
return [4 /*yield*/, this.confirmTos(userCred, options)];
|
|
1069
|
-
case 14:
|
|
1070
|
-
if (!!(_d.sent())) return [3 /*break*/, 16];
|
|
1071
|
-
return [4 /*yield*/, this.signOut()];
|
|
1072
|
-
case 15:
|
|
1073
|
-
_d.sent();
|
|
1074
|
-
userCred = null;
|
|
1075
|
-
_d.label = 16;
|
|
1076
|
-
case 16:
|
|
1077
|
-
;
|
|
1078
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1079
|
-
case 17:
|
|
1080
|
-
_d.sent();
|
|
1081
|
-
return [3 /*break*/, 21];
|
|
1082
|
-
case 18:
|
|
1083
|
-
// coming soon - see feature/sms branch
|
|
1084
|
-
return [3 /*break*/, 21];
|
|
1085
|
-
case 19: return [4 /*yield*/, this.socialSignIn(provider, options)];
|
|
1086
|
-
case 20:
|
|
1087
|
-
userCred = _d.sent();
|
|
1088
|
-
return [3 /*break*/, 21];
|
|
1089
|
-
case 21:
|
|
1090
|
-
if (!userCred) return [3 /*break*/, 26];
|
|
1091
|
-
if (this.config.authUi.toastMessageOnAuthSuccess) {
|
|
1092
|
-
successMessage = ('string' === typeof this.config.authUi.toastMessageOnAuthSuccess)
|
|
1093
|
-
? this.config.authUi.toastMessageOnAuthSuccess
|
|
1094
|
-
: "Hello " + (userCred.user.displayName ? userCred.user.displayName : '') + "!";
|
|
1095
|
-
this.ui.toast(successMessage, { duration: this.config.authUi.toastDefaultDurationMil });
|
|
1096
|
-
}
|
|
1097
|
-
if (!(userCred.user && mergeContext && ((_b = this.hooksService) === null || _b === void 0 ? void 0 : _b.applyMergeToTarget))) return [3 /*break*/, 25];
|
|
1098
|
-
_d.label = 22;
|
|
1099
|
-
case 22:
|
|
1100
|
-
_d.trys.push([22, 24, , 25]);
|
|
1101
|
-
return [4 /*yield*/, this.hooksService.applyMergeToTarget(userCred.user, mergeContext)];
|
|
1102
|
-
case 23:
|
|
1103
|
-
_d.sent();
|
|
1104
|
-
return [3 /*break*/, 25];
|
|
1105
|
-
case 24:
|
|
1106
|
-
error_2 = _d.sent();
|
|
1107
|
-
// If a failure occurs in merge applyToTarget we can't do much about it (we are already logged in as new user)
|
|
1108
|
-
// but we should at least log it. The onus is really on the applyToTarget function to handle it's own errors.
|
|
1109
|
-
this.fire.recordException(error_2);
|
|
1110
|
-
return [3 /*break*/, 25];
|
|
1111
|
-
case 25:
|
|
1112
|
-
this.onSignInEmitter.emit(userCred.user);
|
|
1113
|
-
_d.label = 26;
|
|
1114
|
-
case 26: return [4 /*yield*/, loading.dismiss()];
|
|
1115
|
-
case 27:
|
|
1116
|
-
_d.sent();
|
|
1117
|
-
return [2 /*return*/, userCred || null];
|
|
1118
|
-
case 28:
|
|
1119
|
-
error_3 = _d.sent();
|
|
1120
|
-
// code auth/user-not-found
|
|
1121
|
-
return [4 /*yield*/, this.handleError(error_3)];
|
|
1122
|
-
case 29:
|
|
1123
|
-
// code auth/user-not-found
|
|
1124
|
-
_d.sent();
|
|
1125
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1126
|
-
case 30:
|
|
1127
|
-
_d.sent();
|
|
1128
|
-
return [2 /*return*/, null];
|
|
1129
|
-
case 31: return [2 /*return*/];
|
|
1130
|
-
}
|
|
1131
|
-
});
|
|
1132
|
-
});
|
|
1133
|
-
};
|
|
1134
|
-
/**
|
|
1135
|
-
* Reauthenicate the current user - a recent authentication is required for some sensitive operations
|
|
1136
|
-
* such as changing account details
|
|
1137
|
-
*/
|
|
1138
|
-
AuthProcessService.prototype.reauthenicateWithProvider = function (provider, options) {
|
|
1139
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1140
|
-
var loading, userCred, currentUser, _c, authCred, _d, factoryCred, error_4;
|
|
1141
|
-
return __generator(this, function (_e) {
|
|
1142
|
-
switch (_e.label) {
|
|
1143
|
-
case 0:
|
|
1144
|
-
this.fire.addLogMessage("reauthenicateWithProvider; provider=" + provider);
|
|
1145
|
-
return [4 /*yield*/, this.ui.createLoading()];
|
|
1146
|
-
case 1:
|
|
1147
|
-
loading = _e.sent();
|
|
1148
|
-
_e.label = 2;
|
|
1149
|
-
case 2:
|
|
1150
|
-
_e.trys.push([2, 20, , 23]);
|
|
1151
|
-
userCred = null;
|
|
1152
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1153
|
-
case 3:
|
|
1154
|
-
currentUser = _e.sent();
|
|
1155
|
-
if (!currentUser || currentUser.isAnonymous) {
|
|
1156
|
-
throw new Error('Caanot reauthticate if no currentUser or currentUser is anonymous');
|
|
1157
|
-
}
|
|
1158
|
-
loading.present();
|
|
1159
|
-
_c = provider;
|
|
1160
|
-
switch (_c) {
|
|
1161
|
-
case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 4];
|
|
1162
|
-
case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 5];
|
|
1163
|
-
case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 7];
|
|
1164
|
-
}
|
|
1165
|
-
return [3 /*break*/, 8];
|
|
1166
|
-
case 4: throw new Error('Cannot reauthenticate with anonymous Credentials');
|
|
1167
|
-
case 5:
|
|
1168
|
-
if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
|
|
1169
|
-
throw new Error('Credentials are required when reauthenticating with AuthProvider.EmailAndPassword');
|
|
1170
|
-
}
|
|
1171
|
-
if (!currentUser.email) {
|
|
1172
|
-
throw new Error('Cannot reauthenticate with email for an account without email');
|
|
1173
|
-
}
|
|
1174
|
-
if (!app.firebase.auth) {
|
|
1175
|
-
throw new Error('firebase.auth is undefined');
|
|
1176
|
-
}
|
|
1177
|
-
this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
|
|
1178
|
-
authCred = app.firebase.auth.EmailAuthProvider.credential(currentUser.email, options.credentials.password);
|
|
1179
|
-
return [4 /*yield*/, currentUser.reauthenticateWithCredential(authCred)];
|
|
1180
|
-
case 6:
|
|
1181
|
-
userCred = _e.sent();
|
|
1182
|
-
return [3 /*break*/, 18];
|
|
1183
|
-
case 7:
|
|
1184
|
-
// coming soon - see feature/sms branch
|
|
1185
|
-
return [3 /*break*/, 18];
|
|
1186
|
-
case 8:
|
|
1187
|
-
_d = this.credFactory;
|
|
1188
|
-
if (!_d) return [3 /*break*/, 10];
|
|
1189
|
-
return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
|
|
1190
|
-
case 9:
|
|
1191
|
-
_d = (_e.sent());
|
|
1192
|
-
_e.label = 10;
|
|
1193
|
-
case 10:
|
|
1194
|
-
if (!_d) return [3 /*break*/, 14];
|
|
1195
|
-
return [4 /*yield*/, this.credFactory.getCredential(provider)];
|
|
1196
|
-
case 11:
|
|
1197
|
-
factoryCred = _e.sent();
|
|
1198
|
-
if (!factoryCred) return [3 /*break*/, 13];
|
|
1199
|
-
return [4 /*yield*/, currentUser.reauthenticateWithCredential(factoryCred)];
|
|
1200
|
-
case 12:
|
|
1201
|
-
userCred = _e.sent();
|
|
1202
|
-
_e.label = 13;
|
|
1203
|
-
case 13: return [3 /*break*/, 17];
|
|
1204
|
-
case 14:
|
|
1205
|
-
if (!this.isWebPlatform) return [3 /*break*/, 16];
|
|
1206
|
-
return [4 /*yield*/, currentUser.reauthenticateWithPopup(this.getAuthProvider(provider))];
|
|
1207
|
-
case 15:
|
|
1208
|
-
userCred = _e.sent();
|
|
1209
|
-
return [3 /*break*/, 17];
|
|
1210
|
-
case 16: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
|
|
1211
|
-
case 17: return [3 /*break*/, 18];
|
|
1212
|
-
case 18: return [4 /*yield*/, loading.dismiss()];
|
|
1213
|
-
case 19:
|
|
1214
|
-
_e.sent();
|
|
1215
|
-
return [2 /*return*/, userCred || null];
|
|
1216
|
-
case 20:
|
|
1217
|
-
error_4 = _e.sent();
|
|
1218
|
-
// code auth/user-not-found
|
|
1219
|
-
return [4 /*yield*/, this.handleError(error_4)];
|
|
1220
|
-
case 21:
|
|
1221
|
-
// code auth/user-not-found
|
|
1222
|
-
_e.sent();
|
|
1223
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1224
|
-
case 22:
|
|
1225
|
-
_e.sent();
|
|
1226
|
-
return [2 /*return*/, null];
|
|
1227
|
-
case 23: return [2 /*return*/];
|
|
1228
|
-
}
|
|
1229
|
-
});
|
|
1230
|
-
});
|
|
1231
|
-
};
|
|
1232
|
-
/**
|
|
1233
|
-
* Link the current user to credentials from another auth provider.
|
|
1234
|
-
*
|
|
1235
|
-
* @param provider Provider to link.
|
|
1236
|
-
*/
|
|
1237
|
-
AuthProcessService.prototype.linkCurrentUserToProvider = function (provider, options) {
|
|
1238
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1239
|
-
var loading, currentUser, userCred, _c, authCred, _d, factoryCred, userData, error_5;
|
|
1240
|
-
return __generator(this, function (_e) {
|
|
1241
|
-
switch (_e.label) {
|
|
1242
|
-
case 0:
|
|
1243
|
-
this.fire.addLogMessage("Linking current anon user to provider; provider=" + provider);
|
|
1244
|
-
return [4 /*yield*/, this.ui.createLoading()];
|
|
1245
|
-
case 1:
|
|
1246
|
-
loading = _e.sent();
|
|
1247
|
-
_e.label = 2;
|
|
1248
|
-
case 2:
|
|
1249
|
-
_e.trys.push([2, 22, , 25]);
|
|
1250
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1251
|
-
case 3:
|
|
1252
|
-
currentUser = _e.sent();
|
|
1253
|
-
if (null === currentUser) {
|
|
1254
|
-
throw new Error('CurrentUser is null');
|
|
1255
|
-
}
|
|
1256
|
-
return [4 /*yield*/, loading.present()];
|
|
1257
|
-
case 4:
|
|
1258
|
-
_e.sent();
|
|
1259
|
-
userCred = null;
|
|
1260
|
-
_c = provider;
|
|
1261
|
-
switch (_c) {
|
|
1262
|
-
case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 5];
|
|
1263
|
-
case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 6];
|
|
1264
|
-
case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 8];
|
|
1265
|
-
}
|
|
1266
|
-
return [3 /*break*/, 9];
|
|
1267
|
-
case 5: throw new Error('Linking anonymous user makes no sense');
|
|
1268
|
-
case 6:
|
|
1269
|
-
if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
|
|
1270
|
-
throw new Error('Credentials required to link to email credentential');
|
|
1271
|
-
}
|
|
1272
|
-
if (!app.firebase.auth) {
|
|
1273
|
-
throw new Error('firebase.auth is undefined');
|
|
1274
|
-
}
|
|
1275
|
-
this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
|
|
1276
|
-
authCred = app.firebase.auth.EmailAuthProvider.credential(options.credentials.email, options.credentials.password);
|
|
1277
|
-
this.fire.addLogMessage("linking userCredential to email authCredential");
|
|
1278
|
-
return [4 /*yield*/, currentUser.linkWithCredential(authCred)];
|
|
1279
|
-
case 7:
|
|
1280
|
-
userCred = _e.sent();
|
|
1281
|
-
return [3 /*break*/, 18];
|
|
1282
|
-
case 8: throw new Error('Linking phone number not suported');
|
|
1283
|
-
case 9:
|
|
1284
|
-
_d = this.credFactory;
|
|
1285
|
-
if (!_d) return [3 /*break*/, 11];
|
|
1286
|
-
return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
|
|
1287
|
-
case 10:
|
|
1288
|
-
_d = (_e.sent());
|
|
1289
|
-
_e.label = 11;
|
|
1290
|
-
case 11:
|
|
1291
|
-
if (!_d) return [3 /*break*/, 15];
|
|
1292
|
-
return [4 /*yield*/, this.credFactory.getCredential(provider)];
|
|
1293
|
-
case 12:
|
|
1294
|
-
factoryCred = _e.sent();
|
|
1295
|
-
if (!factoryCred) return [3 /*break*/, 14];
|
|
1296
|
-
return [4 /*yield*/, currentUser.linkWithCredential(factoryCred)];
|
|
1297
|
-
case 13:
|
|
1298
|
-
userCred = _e.sent();
|
|
1299
|
-
_e.label = 14;
|
|
1300
|
-
case 14: return [3 /*break*/, 18];
|
|
1301
|
-
case 15:
|
|
1302
|
-
if (!this.isWebPlatform) return [3 /*break*/, 17];
|
|
1303
|
-
return [4 /*yield*/, currentUser.linkWithPopup(this.getAuthProvider(provider))];
|
|
1304
|
-
case 16:
|
|
1305
|
-
userCred = _e.sent();
|
|
1306
|
-
return [3 /*break*/, 18];
|
|
1307
|
-
case 17: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
|
|
1308
|
-
case 18:
|
|
1309
|
-
if (!(userCred && userCred.user)) return [3 /*break*/, 20];
|
|
1310
|
-
userData = this.parseUserInfo(userCred.user);
|
|
1311
|
-
if (!(userData.displayName
|
|
1312
|
-
&& (userCred.user.displayName !== userData.displayName || userCred.user.photoURL !== userData.displayName))) return [3 /*break*/, 20];
|
|
1313
|
-
this.fire.addLogMessage("Updating user profile; displayName=" + userData.displayName + ", photoUrl=" + userData.photoURL); // tslint:disable-line max-line-length
|
|
1314
|
-
return [4 /*yield*/, this.updateUserInfo({ displayName: userData.displayName, photoURL: userData.photoURL })];
|
|
1315
|
-
case 19:
|
|
1316
|
-
_e.sent();
|
|
1317
|
-
_e.label = 20;
|
|
1318
|
-
case 20: return [4 /*yield*/, loading.dismiss()];
|
|
1319
|
-
case 21:
|
|
1320
|
-
_e.sent();
|
|
1321
|
-
return [2 /*return*/, userCred || null];
|
|
1322
|
-
case 22:
|
|
1323
|
-
error_5 = _e.sent();
|
|
1324
|
-
// Merge
|
|
1325
|
-
return [4 /*yield*/, this.handleError(error_5)];
|
|
1326
|
-
case 23:
|
|
1327
|
-
// Merge
|
|
1328
|
-
_e.sent();
|
|
1329
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1330
|
-
case 24:
|
|
1331
|
-
_e.sent();
|
|
1332
|
-
return [2 /*return*/, null];
|
|
1333
|
-
case 25: return [2 /*return*/];
|
|
1334
|
-
}
|
|
1335
|
-
});
|
|
1336
|
-
});
|
|
1337
|
-
};
|
|
1338
|
-
/**
|
|
1339
|
-
* Creates a firebase user account authenticated with the specified provider.
|
|
1340
|
-
* If AuthProvider.EmailAndPassword is specified credentials and displayname must also be provided.
|
|
1341
|
-
*/
|
|
1342
|
-
AuthProcessService.prototype.registerWith = function (provider, options) {
|
|
1343
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1344
|
-
var loading, currentUser, userCred, _c, error_6;
|
|
1345
|
-
return __generator(this, function (_d) {
|
|
1346
|
-
switch (_d.label) {
|
|
1347
|
-
case 0:
|
|
1348
|
-
this.fire.addLogMessage("SigningUp with provider; provider=" + provider);
|
|
1349
|
-
return [4 /*yield*/, this.ui.createLoading()];
|
|
1350
|
-
case 1:
|
|
1351
|
-
loading = _d.sent();
|
|
1352
|
-
_d.label = 2;
|
|
1353
|
-
case 2:
|
|
1354
|
-
_d.trys.push([2, 19, , 22]);
|
|
1355
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1356
|
-
case 3:
|
|
1357
|
-
currentUser = _d.sent();
|
|
1358
|
-
if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.isAnonymous)) return [3 /*break*/, 4];
|
|
1359
|
-
return [2 /*return*/, this.linkCurrentUserToProvider(provider, options)];
|
|
1360
|
-
case 4:
|
|
1361
|
-
if (!(null !== currentUser)) return [3 /*break*/, 5];
|
|
1362
|
-
throw new Error('Cannot Register whilst signed in as a non-Anonymous user. SignOut first');
|
|
1363
|
-
case 5: return [4 /*yield*/, this.confirmTos(null, options)];
|
|
1364
|
-
case 6:
|
|
1365
|
-
if (!(_d.sent())) { // No current user
|
|
1366
|
-
this.fire.addLogMessage('User declined TOS during register');
|
|
1367
|
-
return [2 /*return*/, null];
|
|
1368
|
-
}
|
|
1369
|
-
_d.label = 7;
|
|
1370
|
-
case 7:
|
|
1371
|
-
userCred = null;
|
|
1372
|
-
_c = provider;
|
|
1373
|
-
switch (_c) {
|
|
1374
|
-
case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 8];
|
|
1375
|
-
}
|
|
1376
|
-
return [3 /*break*/, 16];
|
|
1377
|
-
case 8:
|
|
1378
|
-
if (!(options === null || options === void 0 ? void 0 : options.credentials) || !(options === null || options === void 0 ? void 0 : options.displayName)) {
|
|
1379
|
-
throw new Error('Credentials & displayName required to SignUp by email');
|
|
1380
|
-
}
|
|
1381
|
-
return [4 /*yield*/, loading.present()];
|
|
1382
|
-
case 9:
|
|
1383
|
-
_d.sent();
|
|
1384
|
-
this.fire.addLogMessage("creaating user with email and password; email=" + options.credentials.email);
|
|
1385
|
-
return [4 /*yield*/, this.afa.createUserWithEmailAndPassword(options.credentials.email, options.credentials.password)];
|
|
1386
|
-
case 10:
|
|
1387
|
-
userCred = _d.sent();
|
|
1388
|
-
if (null === userCred.user) {
|
|
1389
|
-
throw new Error('User is null following successful signUp');
|
|
1390
|
-
}
|
|
1391
|
-
return [4 /*yield*/, this.updateUserInfo({ displayName: options.displayName })];
|
|
1392
|
-
case 11:
|
|
1393
|
-
_d.sent();
|
|
1394
|
-
return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
|
|
1395
|
-
case 12:
|
|
1396
|
-
_d.sent(); // To save the tosAcceptance
|
|
1397
|
-
if (!this.config.authUi.enableEmailVerification) return [3 /*break*/, 14];
|
|
1398
|
-
return [4 /*yield*/, userCred.user.sendEmailVerification()];
|
|
1399
|
-
case 13:
|
|
1400
|
-
_d.sent();
|
|
1401
|
-
_d.label = 14;
|
|
1402
|
-
case 14: return [4 /*yield*/, loading.dismiss()];
|
|
1403
|
-
case 15:
|
|
1404
|
-
_d.sent();
|
|
1405
|
-
return [3 /*break*/, 18];
|
|
1406
|
-
case 16: return [4 /*yield*/, this.socialSignIn(provider, Object.assign(Object.assign({}, options), { skipTosCheck: true }))];
|
|
1407
|
-
case 17:
|
|
1408
|
-
userCred = _d.sent();
|
|
1409
|
-
_d.label = 18;
|
|
1410
|
-
case 18:
|
|
1411
|
-
if (userCred.user) {
|
|
1412
|
-
this.onRegisterEmitter.emit(userCred.user);
|
|
1413
|
-
}
|
|
1414
|
-
return [2 /*return*/, userCred || null];
|
|
1415
|
-
case 19:
|
|
1416
|
-
error_6 = _d.sent();
|
|
1417
|
-
// This is where I would handle merge
|
|
1418
|
-
return [4 /*yield*/, this.handleError(error_6)];
|
|
1419
|
-
case 20:
|
|
1420
|
-
// This is where I would handle merge
|
|
1421
|
-
_d.sent();
|
|
1422
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1423
|
-
case 21:
|
|
1424
|
-
_d.sent();
|
|
1425
|
-
return [2 /*return*/, null];
|
|
1426
|
-
case 22: return [2 /*return*/];
|
|
1427
|
-
}
|
|
1428
|
-
});
|
|
1429
|
-
});
|
|
1430
|
-
};
|
|
1431
|
-
/**
|
|
1432
|
-
* Authenticates the user using social provider.
|
|
1433
|
-
*
|
|
1434
|
-
* @param provider social auth provider
|
|
1435
|
-
* @param options
|
|
1436
|
-
* @returns user credentials || null if not signed in.
|
|
1437
|
-
*/
|
|
1438
|
-
AuthProcessService.prototype.socialSignIn = function (provider, options) {
|
|
1439
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1440
|
-
var currentUser, loading, userCred, _c, factoryCred;
|
|
1441
|
-
return __generator(this, function (_d) {
|
|
1442
|
-
switch (_d.label) {
|
|
1443
|
-
case 0: return [4 /*yield*/, this.afa.currentUser];
|
|
1444
|
-
case 1:
|
|
1445
|
-
currentUser = _d.sent();
|
|
1446
|
-
return [4 /*yield*/, this.ui.createLoading()];
|
|
1447
|
-
case 2:
|
|
1448
|
-
loading = _d.sent();
|
|
1449
|
-
if (currentUser && !currentUser.isAnonymous) {
|
|
1450
|
-
throw new Error('Cannot signIn whilst already signedIn, SignOut first');
|
|
1451
|
-
}
|
|
1452
|
-
_c = this.credFactory;
|
|
1453
|
-
if (!_c) return [3 /*break*/, 4];
|
|
1454
|
-
return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
|
|
1455
|
-
case 3:
|
|
1456
|
-
_c = (_d.sent());
|
|
1457
|
-
_d.label = 4;
|
|
1458
|
-
case 4:
|
|
1459
|
-
if (!_c) return [3 /*break*/, 9];
|
|
1460
|
-
loading.present();
|
|
1461
|
-
return [4 /*yield*/, this.credFactory.getCredential(provider)];
|
|
1462
|
-
case 5:
|
|
1463
|
-
factoryCred = _d.sent();
|
|
1464
|
-
if (!factoryCred) return [3 /*break*/, 7];
|
|
1465
|
-
return [4 /*yield*/, this.afa.signInWithCredential(factoryCred)];
|
|
1466
|
-
case 6:
|
|
1467
|
-
userCred = _d.sent();
|
|
1468
|
-
_d.label = 7;
|
|
1469
|
-
case 7: return [4 /*yield*/, loading.dismiss()];
|
|
1470
|
-
case 8:
|
|
1471
|
-
_d.sent();
|
|
1472
|
-
return [3 /*break*/, 13];
|
|
1473
|
-
case 9:
|
|
1474
|
-
if (!this.isWebPlatform) return [3 /*break*/, 12];
|
|
1475
|
-
loading.present();
|
|
1476
|
-
return [4 /*yield*/, this.afa.signInWithPopup(this.getAuthProvider(provider))];
|
|
1477
|
-
case 10:
|
|
1478
|
-
userCred = _d.sent();
|
|
1479
|
-
return [4 /*yield*/, loading.dismiss()];
|
|
1480
|
-
case 11:
|
|
1481
|
-
_d.sent();
|
|
1482
|
-
return [3 /*break*/, 13];
|
|
1483
|
-
case 12: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
|
|
1484
|
-
case 13: return [4 /*yield*/, loading.dismiss()];
|
|
1485
|
-
case 14:
|
|
1486
|
-
_d.sent();
|
|
1487
|
-
return [4 /*yield*/, this.confirmTos(userCred, options)];
|
|
1488
|
-
case 15:
|
|
1489
|
-
if (!!(_d.sent())) return [3 /*break*/, 17];
|
|
1490
|
-
return [4 /*yield*/, this.signOut()];
|
|
1491
|
-
case 16:
|
|
1492
|
-
_d.sent();
|
|
1493
|
-
userCred = null;
|
|
1494
|
-
_d.label = 17;
|
|
1495
|
-
case 17:
|
|
1496
|
-
;
|
|
1497
|
-
return [2 /*return*/, userCred];
|
|
1498
|
-
}
|
|
1499
|
-
});
|
|
1500
|
-
});
|
|
1501
|
-
};
|
|
1502
|
-
/**
|
|
1503
|
-
* Present dialog and confirm the user agress to the privacy policy and terms of service (if either configured).
|
|
1504
|
-
* If nether configured returns true;
|
|
1505
|
-
*
|
|
1506
|
-
* @returns True if either user agrees to TOS/PrivacyUrl || no TOS/PrivacyUrl configured.
|
|
1507
|
-
*/
|
|
1508
|
-
AuthProcessService.prototype.confirmTos = function (userCred, options) {
|
|
1509
|
-
if (userCred === void 0) { userCred = null; }
|
|
1510
|
-
if (options === void 0) { options = {}; }
|
|
1511
|
-
var _a;
|
|
1512
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1513
|
-
var acceptedTos, userData, _c;
|
|
1514
|
-
return __generator(this, function (_d) {
|
|
1515
|
-
switch (_d.label) {
|
|
1516
|
-
case 0:
|
|
1517
|
-
if (!(this.config.authUi.tosUrl || this.config.authUi.privacyPolicyUrl)) return [3 /*break*/, 7];
|
|
1518
|
-
acceptedTos = (options.skipTosCheck) ? new Date().toISOString() : null;
|
|
1519
|
-
if (!(!acceptedTos && (userCred === null || userCred === void 0 ? void 0 : userCred.user) && !((_a = userCred === null || userCred === void 0 ? void 0 : userCred.additionalUserInfo) === null || _a === void 0 ? void 0 : _a.isNewUser) && this.config.authUi.enableFirestoreSync)) return [3 /*break*/, 2];
|
|
1520
|
-
return [4 /*yield*/, this.fireStoreService.getUserData(userCred.user.uid)];
|
|
1521
|
-
case 1:
|
|
1522
|
-
userData = _d.sent();
|
|
1523
|
-
acceptedTos = (userData === null || userData === void 0 ? void 0 : userData.acceptedTos) || null;
|
|
1524
|
-
_d.label = 2;
|
|
1525
|
-
case 2:
|
|
1526
|
-
_c = !acceptedTos;
|
|
1527
|
-
if (!_c) return [3 /*break*/, 4];
|
|
1528
|
-
return [4 /*yield*/, this.ui.confirmTos()];
|
|
1529
|
-
case 3:
|
|
1530
|
-
_c = (_d.sent());
|
|
1531
|
-
_d.label = 4;
|
|
1532
|
-
case 4:
|
|
1533
|
-
if (_c) {
|
|
1534
|
-
acceptedTos = new Date().toISOString();
|
|
1535
|
-
}
|
|
1536
|
-
if (!((userCred === null || userCred === void 0 ? void 0 : userCred.user) && this.config.authUi.enableFirestoreSync)) return [3 /*break*/, 6];
|
|
1537
|
-
return [4 /*yield*/, this.fireStoreService.setUserData(userCred.user.uid, { acceptedTos: acceptedTos }, { merge: true })];
|
|
1538
|
-
case 5:
|
|
1539
|
-
_d.sent();
|
|
1540
|
-
_d.label = 6;
|
|
1541
|
-
case 6: return [2 /*return*/, !!acceptedTos];
|
|
1542
|
-
case 7: // No tosUrl || privacyPolicyUrl
|
|
1543
|
-
return [2 /*return*/, true];
|
|
1544
|
-
}
|
|
1545
|
-
});
|
|
1546
|
-
});
|
|
1547
|
-
};
|
|
1548
|
-
/**
|
|
1549
|
-
* Send the currently authenticated user another verficiation email.
|
|
1550
|
-
*/
|
|
1551
|
-
AuthProcessService.prototype.sendNewVerificationEmail = function () {
|
|
1552
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1553
|
-
var currentUser, error_7;
|
|
1554
|
-
return __generator(this, function (_c) {
|
|
1555
|
-
switch (_c.label) {
|
|
1556
|
-
case 0:
|
|
1557
|
-
_c.trys.push([0, 3, , 4]);
|
|
1558
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1559
|
-
case 1:
|
|
1560
|
-
currentUser = _c.sent();
|
|
1561
|
-
if (!currentUser) {
|
|
1562
|
-
throw new Error('No signed in user');
|
|
1563
|
-
}
|
|
1564
|
-
return [4 /*yield*/, currentUser.sendEmailVerification()];
|
|
1565
|
-
case 2:
|
|
1566
|
-
_c.sent();
|
|
1567
|
-
return [3 /*break*/, 4];
|
|
1568
|
-
case 3:
|
|
1569
|
-
error_7 = _c.sent();
|
|
1570
|
-
this.fire.recordException(error_7);
|
|
1571
|
-
throw error_7;
|
|
1572
|
-
case 4: return [2 /*return*/];
|
|
1573
|
-
}
|
|
1574
|
-
});
|
|
1575
|
-
});
|
|
1576
|
-
};
|
|
1577
|
-
/**
|
|
1578
|
-
* SignOut the currently authenticated user.
|
|
1579
|
-
*/
|
|
1580
|
-
AuthProcessService.prototype.signOut = function () {
|
|
1581
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1582
|
-
var error_8;
|
|
1583
|
-
return __generator(this, function (_c) {
|
|
1584
|
-
switch (_c.label) {
|
|
1585
|
-
case 0:
|
|
1586
|
-
_c.trys.push([0, 2, , 4]);
|
|
1587
|
-
return [4 /*yield*/, this.afa.signOut()];
|
|
1588
|
-
case 1:
|
|
1589
|
-
_c.sent();
|
|
1590
|
-
if (this.credFactory) {
|
|
1591
|
-
this.credFactory.signOut();
|
|
1592
|
-
}
|
|
1593
|
-
return [3 /*break*/, 4];
|
|
1594
|
-
case 2:
|
|
1595
|
-
error_8 = _c.sent();
|
|
1596
|
-
return [4 /*yield*/, this.handleError(error_8)];
|
|
1597
|
-
case 3:
|
|
1598
|
-
_c.sent();
|
|
1599
|
-
return [3 /*break*/, 4];
|
|
1600
|
-
case 4: return [2 /*return*/];
|
|
1601
|
-
}
|
|
1602
|
-
});
|
|
1603
|
-
});
|
|
1604
|
-
};
|
|
1605
|
-
/**
|
|
1606
|
-
* Update the details for the authenticated user of in the firebase authentication and sync with firestore.
|
|
1607
|
-
*
|
|
1608
|
-
* @param userInfo - UserInfo object containing those properties for which change is requried. Only provider
|
|
1609
|
-
* the properties actually to be changed. Others should be ommitted.
|
|
1610
|
-
*/
|
|
1611
|
-
AuthProcessService.prototype.updateUserInfo = function (userInfo) {
|
|
1612
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1613
|
-
var user, error_9;
|
|
1614
|
-
return __generator(this, function (_c) {
|
|
1615
|
-
switch (_c.label) {
|
|
1616
|
-
case 0:
|
|
1617
|
-
_c.trys.push([0, 11, , 12]);
|
|
1618
|
-
return [4 /*yield*/, this.afa.currentUser];
|
|
1619
|
-
case 1:
|
|
1620
|
-
user = _c.sent();
|
|
1621
|
-
if (!user) {
|
|
1622
|
-
throw new Error('No currentUser');
|
|
1623
|
-
}
|
|
1624
|
-
if (!userInfo.email) return [3 /*break*/, 3];
|
|
1625
|
-
return [4 /*yield*/, user.updateEmail(userInfo.email)];
|
|
1626
|
-
case 2:
|
|
1627
|
-
_c.sent();
|
|
1628
|
-
_c.label = 3;
|
|
1629
|
-
case 3:
|
|
1630
|
-
if (!userInfo.phoneNumber) return [3 /*break*/, 5];
|
|
1631
|
-
return [4 /*yield*/, user.updatePhoneNumber(userInfo.phoneNumber)];
|
|
1632
|
-
case 4:
|
|
1633
|
-
_c.sent(); // TODO - bet this doesn't actually work
|
|
1634
|
-
_c.label = 5;
|
|
1635
|
-
case 5:
|
|
1636
|
-
if (!(userInfo.displayName || userInfo.photoURL)) return [3 /*break*/, 7];
|
|
1637
|
-
return [4 /*yield*/, user.updateProfile({
|
|
1638
|
-
displayName: userInfo.displayName,
|
|
1639
|
-
photoURL: userInfo.photoURL
|
|
1640
|
-
})];
|
|
1641
|
-
case 6:
|
|
1642
|
-
_c.sent();
|
|
1643
|
-
_c.label = 7;
|
|
1644
|
-
case 7: return [4 /*yield*/, this.afa.updateCurrentUser(user)];
|
|
1645
|
-
case 8:
|
|
1646
|
-
_c.sent();
|
|
1647
|
-
if (!this.config.authUi.enableFirestoreSync) return [3 /*break*/, 10];
|
|
1648
|
-
// await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
|
|
1649
|
-
return [4 /*yield*/, this.fireStoreService.updateUserData(user.uid, {
|
|
1650
|
-
displayName: user.displayName,
|
|
1651
|
-
email: user.email,
|
|
1652
|
-
photoURL: user.photoURL
|
|
1653
|
-
})];
|
|
1654
|
-
case 9:
|
|
1655
|
-
// await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
|
|
1656
|
-
_c.sent();
|
|
1657
|
-
_c.label = 10;
|
|
1658
|
-
case 10:
|
|
1659
|
-
this.onUserUpdatedEmitter.emit();
|
|
1660
|
-
return [3 /*break*/, 12];
|
|
1661
|
-
case 11:
|
|
1662
|
-
error_9 = _c.sent();
|
|
1663
|
-
this.fire.recordException(error_9);
|
|
1664
|
-
return [3 /*break*/, 12];
|
|
1665
|
-
case 12: return [2 /*return*/];
|
|
1666
|
-
}
|
|
1667
|
-
});
|
|
1668
|
-
});
|
|
1669
|
-
};
|
|
1670
|
-
/**
|
|
1671
|
-
* Extract UserInfo object from the User object
|
|
1672
|
-
* If multiple providers are supplied these are amalgamated to create the most complete
|
|
1673
|
-
* UserInfo object possible
|
|
1674
|
-
*/
|
|
1675
|
-
AuthProcessService.prototype.parseUserInfo = function (user) {
|
|
1676
|
-
var userInfo = {
|
|
1677
|
-
uid: user.uid,
|
|
1678
|
-
displayName: user.displayName,
|
|
1679
|
-
email: user.email,
|
|
1680
|
-
phoneNumber: user.phoneNumber,
|
|
1681
|
-
photoURL: user.photoURL,
|
|
1682
|
-
providerId: user.providerId
|
|
1683
|
-
};
|
|
1684
|
-
if (user.providerData) {
|
|
1685
|
-
user.providerData.forEach(function (item) {
|
|
1686
|
-
if (!userInfo.displayName && (item === null || item === void 0 ? void 0 : item.displayName)) {
|
|
1687
|
-
userInfo.displayName = item.displayName;
|
|
1688
|
-
}
|
|
1689
|
-
if (!userInfo.email && (item === null || item === void 0 ? void 0 : item.email)) {
|
|
1690
|
-
userInfo.email = item.email;
|
|
1691
|
-
}
|
|
1692
|
-
if (!userInfo.phoneNumber && (item === null || item === void 0 ? void 0 : item.phoneNumber)) {
|
|
1693
|
-
userInfo.phoneNumber = item.phoneNumber;
|
|
1694
|
-
}
|
|
1695
|
-
if (!userInfo.photoURL && (item === null || item === void 0 ? void 0 : item.photoURL)) {
|
|
1696
|
-
userInfo.photoURL = item.photoURL;
|
|
1697
|
-
}
|
|
1698
|
-
if (!userInfo.providerId && (item === null || item === void 0 ? void 0 : item.providerId)) {
|
|
1699
|
-
userInfo.providerId = item.providerId;
|
|
1700
|
-
}
|
|
1701
|
-
});
|
|
1702
|
-
}
|
|
1703
|
-
return userInfo;
|
|
1704
|
-
};
|
|
1705
|
-
/**
|
|
1706
|
-
* Returns the UserPhotoUrl, or an appropraite placeholder if not provided
|
|
1707
|
-
* ToDo - this would probably bet better inside a user-photo component
|
|
1708
|
-
*/
|
|
1709
|
-
AuthProcessService.prototype.getUserPhotoUrl = function () {
|
|
1710
|
-
return this.user$.pipe(operators.map(function (user) {
|
|
1711
|
-
if (!user) {
|
|
1712
|
-
return null;
|
|
1713
|
-
}
|
|
1714
|
-
else if (user.photoURL) {
|
|
1715
|
-
return user.photoURL;
|
|
1716
|
-
}
|
|
1717
|
-
else if (user.emailVerified) {
|
|
1718
|
-
return "assets/user/" + exports.Accounts.CHECK + ".svg";
|
|
1719
|
-
}
|
|
1720
|
-
else if (user.isAnonymous) {
|
|
1721
|
-
return "assets/user/" + exports.Accounts.OFF + ".svg";
|
|
1722
|
-
}
|
|
1723
|
-
else {
|
|
1724
|
-
return "assets/user/" + exports.Accounts.NONE + ".svg";
|
|
1725
|
-
}
|
|
1726
|
-
}));
|
|
1727
|
-
};
|
|
1728
|
-
/**
|
|
1729
|
-
* Refresh user info. Can be useful for instance to get latest status regarding email verification.
|
|
1730
|
-
*/
|
|
1731
|
-
AuthProcessService.prototype.reloadUserInfo = function () {
|
|
1732
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1733
|
-
var user;
|
|
1734
|
-
return __generator(this, function (_c) {
|
|
1735
|
-
switch (_c.label) {
|
|
1736
|
-
case 0: return [4 /*yield*/, this.user$.pipe(operators.take(1)).toPromise()];
|
|
1737
|
-
case 1:
|
|
1738
|
-
user = _c.sent();
|
|
1739
|
-
if (!user) return [3 /*break*/, 3];
|
|
1740
|
-
return [4 /*yield*/, user.reload()];
|
|
1741
|
-
case 2:
|
|
1742
|
-
_c.sent();
|
|
1743
|
-
_c.label = 3;
|
|
1744
|
-
case 3: return [2 /*return*/];
|
|
1745
|
-
}
|
|
1746
|
-
});
|
|
1747
|
-
});
|
|
1748
|
-
};
|
|
1749
|
-
/**
|
|
1750
|
-
* Deletes the current user
|
|
1751
|
-
*/
|
|
1752
|
-
AuthProcessService.prototype.deleteUser = function () {
|
|
1753
|
-
var _a;
|
|
1754
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1755
|
-
var currentUser, currentUid, canDelete, _c, error_10;
|
|
1756
|
-
return __generator(this, function (_d) {
|
|
1757
|
-
switch (_d.label) {
|
|
1758
|
-
case 0: return [4 /*yield*/, this.afa.currentUser];
|
|
1759
|
-
case 1:
|
|
1760
|
-
currentUser = _d.sent();
|
|
1761
|
-
currentUid = currentUser === null || currentUser === void 0 ? void 0 : currentUser.uid;
|
|
1762
|
-
if (!currentUser || !currentUid) {
|
|
1763
|
-
throw new Error('Unable to delete currentUser if null');
|
|
1764
|
-
}
|
|
1765
|
-
if (!((_a = this.hooksService) === null || _a === void 0 ? void 0 : _a.beforeDelete)) return [3 /*break*/, 3];
|
|
1766
|
-
return [4 /*yield*/, this.hooksService.beforeDelete(currentUser)];
|
|
1767
|
-
case 2:
|
|
1768
|
-
_c = _d.sent();
|
|
1769
|
-
return [3 /*break*/, 4];
|
|
1770
|
-
case 3:
|
|
1771
|
-
_c = true;
|
|
1772
|
-
_d.label = 4;
|
|
1773
|
-
case 4:
|
|
1774
|
-
canDelete = _c;
|
|
1775
|
-
if (!canDelete) return [3 /*break*/, 8];
|
|
1776
|
-
_d.label = 5;
|
|
1777
|
-
case 5:
|
|
1778
|
-
_d.trys.push([5, 7, , 8]);
|
|
1779
|
-
// Userdata deleted by DB trigger
|
|
1780
|
-
return [4 /*yield*/, currentUser.delete()];
|
|
1781
|
-
case 6:
|
|
1782
|
-
// Userdata deleted by DB trigger
|
|
1783
|
-
_d.sent();
|
|
1784
|
-
this.onUserDeletedEmitter.emit();
|
|
1785
|
-
return [3 /*break*/, 8];
|
|
1786
|
-
case 7:
|
|
1787
|
-
error_10 = _d.sent();
|
|
1788
|
-
if (error_10.code !== exports.FirebaseErrorCodes.requiresRecentLogin) {
|
|
1789
|
-
this.fire.recordException(error_10);
|
|
1790
|
-
}
|
|
1791
|
-
throw (error_10);
|
|
1792
|
-
case 8: return [2 /*return*/];
|
|
1793
|
-
}
|
|
1794
|
-
});
|
|
1795
|
-
});
|
|
1796
|
-
};
|
|
1797
|
-
/**
|
|
1798
|
-
* Logs the error and provides user error notifcation if appropriate
|
|
1799
|
-
*/
|
|
1800
|
-
AuthProcessService.prototype.handleError = function (error) {
|
|
1801
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
1802
|
-
var message;
|
|
1803
|
-
return __generator(this, function (_c) {
|
|
1804
|
-
switch (_c.label) {
|
|
1805
|
-
case 0: return [4 /*yield*/, this.fire.recordException(error)];
|
|
1806
|
-
case 1:
|
|
1807
|
-
_c.sent();
|
|
1808
|
-
this.onErrorEmitter.emit(error);
|
|
1809
|
-
if (!this.config.authUi.toastMessageOnAuthError) return [3 /*break*/, 3];
|
|
1810
|
-
message = 'auth.common.pleaseRetry';
|
|
1811
|
-
if (error && typeof error === 'string') {
|
|
1812
|
-
message = error;
|
|
1813
|
-
}
|
|
1814
|
-
else if (error && error.message) {
|
|
1815
|
-
message = error.message;
|
|
1816
|
-
}
|
|
1817
|
-
else if (error && typeof error === 'object') {
|
|
1818
|
-
message = JSON.stringify(error);
|
|
1819
|
-
}
|
|
1820
|
-
else if (error) {
|
|
1821
|
-
message = error.toString();
|
|
1822
|
-
}
|
|
1823
|
-
return [4 /*yield*/, this.ui.toast(message, { duration: this.config.authUi.toastDefaultDurationMil })];
|
|
1824
|
-
case 2:
|
|
1825
|
-
_c.sent();
|
|
1826
|
-
_c.label = 3;
|
|
1827
|
-
case 3: return [2 /*return*/];
|
|
1828
|
-
}
|
|
1829
|
-
});
|
|
1830
|
-
});
|
|
1831
|
-
};
|
|
1832
|
-
/**
|
|
1833
|
-
* Returns a firebase auth provider object for the specified provider
|
|
1834
|
-
*/
|
|
1835
|
-
AuthProcessService.prototype.getAuthProvider = function (provider) {
|
|
1836
|
-
if (!app.firebase.auth) {
|
|
1837
|
-
throw new Error('firebase.auth is undefined');
|
|
1838
|
-
}
|
|
1839
|
-
switch (provider) {
|
|
1840
|
-
case exports.AuthProvider.Google: return new app.firebase.auth.GoogleAuthProvider();
|
|
1841
|
-
case exports.AuthProvider.Apple: return new app.firebase.auth.OAuthProvider('apple.com');
|
|
1842
|
-
case exports.AuthProvider.Facebook: return new app.firebase.auth.FacebookAuthProvider();
|
|
1843
|
-
case exports.AuthProvider.Twitter: return new app.firebase.auth.TwitterAuthProvider();
|
|
1844
|
-
case exports.AuthProvider.Github: return new app.firebase.auth.GithubAuthProvider();
|
|
1845
|
-
case exports.AuthProvider.Microsoft: return new app.firebase.auth.OAuthProvider('microsoft.com');
|
|
1846
|
-
case exports.AuthProvider.Yahoo: return new app.firebase.auth.OAuthProvider('yahoo.com');
|
|
1847
|
-
default: throw new Error(provider + " is not available as auth provider");
|
|
1848
|
-
}
|
|
1849
|
-
};
|
|
1850
|
-
return AuthProcessService;
|
|
1851
|
-
}());
|
|
1852
|
-
AuthProcessService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthProcessService_Factory() { return new AuthProcessService(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(AuthHooksProviderToken, 8), i0.ɵɵinject(MalCredentialFactoryProviderToken, 8), i0.ɵɵinject(FirestoreSyncService), i0.ɵɵinject(i3.AngularFireAuth), i0.ɵɵinject(FirebaseService), i0.ɵɵinject(UiService)); }, token: AuthProcessService, providedIn: "root" });
|
|
1853
|
-
AuthProcessService.decorators = [
|
|
1854
|
-
{ type: i0.Injectable, args: [{
|
|
1855
|
-
providedIn: 'root',
|
|
1856
|
-
},] }
|
|
1857
|
-
];
|
|
1858
|
-
AuthProcessService.ctorParameters = function () { return [
|
|
1859
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalSharedConfigToken; }),] }] },
|
|
1860
|
-
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return AuthHooksProviderToken; }),] }] },
|
|
1861
|
-
{ type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalCredentialFactoryProviderToken; }),] }] },
|
|
1862
|
-
{ type: FirestoreSyncService },
|
|
1863
|
-
{ type: i3.AngularFireAuth },
|
|
1864
|
-
{ type: FirebaseService },
|
|
1865
|
-
{ type: UiService }
|
|
1866
|
-
]; };
|
|
1867
|
-
|
|
1868
|
-
exports.DisplayWidth = void 0;
|
|
1869
|
-
(function (DisplayWidth) {
|
|
1870
|
-
DisplayWidth[DisplayWidth["xs"] = 1] = "xs";
|
|
1871
|
-
DisplayWidth[DisplayWidth["sm"] = 576] = "sm";
|
|
1872
|
-
DisplayWidth[DisplayWidth["md"] = 768] = "md";
|
|
1873
|
-
DisplayWidth[DisplayWidth["lg"] = 992] = "lg";
|
|
1874
|
-
DisplayWidth[DisplayWidth["xl"] = 1200] = "xl";
|
|
1875
|
-
})(exports.DisplayWidth || (exports.DisplayWidth = {}));
|
|
1876
|
-
|
|
1877
|
-
/* @Component({
|
|
1878
|
-
template: ''
|
|
1879
|
-
}) */
|
|
1880
|
-
var ValueAccessorValueComponent = /** @class */ (function () {
|
|
1881
|
-
function ValueAccessorValueComponent() {
|
|
1882
|
-
this.valueChange = new i0.EventEmitter();
|
|
1883
|
-
this.propagateChange = function (_) { };
|
|
1884
|
-
this.propagateTouch = function (_) { }; // TODO - Not implemented.
|
|
1885
|
-
this.propagateValidatorChange = function () { }; // TODO - Not implemented.
|
|
1886
|
-
}
|
|
1887
|
-
Object.defineProperty(ValueAccessorValueComponent.prototype, "value", {
|
|
1888
|
-
get: function () { return this._value; },
|
|
1889
|
-
set: function (val) {
|
|
1890
|
-
if (val) {
|
|
1891
|
-
this._value = val;
|
|
1892
|
-
this.valueChange.emit(val);
|
|
1893
|
-
this.propagateChange(val);
|
|
1894
|
-
}
|
|
1895
|
-
},
|
|
1896
|
-
enumerable: false,
|
|
1897
|
-
configurable: true
|
|
1898
|
-
});
|
|
1899
|
-
ValueAccessorValueComponent.prototype.validate = function (control) {
|
|
1900
|
-
return null;
|
|
1901
|
-
};
|
|
1902
|
-
ValueAccessorValueComponent.prototype.writeValue = function (value) {
|
|
1903
|
-
this.value = value;
|
|
1904
|
-
};
|
|
1905
|
-
ValueAccessorValueComponent.prototype.registerOnChange = function (fn) {
|
|
1906
|
-
this.propagateChange = fn;
|
|
1907
|
-
};
|
|
1908
|
-
ValueAccessorValueComponent.prototype.registerOnTouched = function (fn) {
|
|
1909
|
-
this.propagateTouch = fn;
|
|
1910
|
-
};
|
|
1911
|
-
ValueAccessorValueComponent.prototype.registerOnValidatorChange = function (fn) {
|
|
1912
|
-
this.propagateValidatorChange = fn;
|
|
1913
|
-
};
|
|
1914
|
-
return ValueAccessorValueComponent;
|
|
1915
|
-
}());
|
|
1916
|
-
ValueAccessorValueComponent.propDecorators = {
|
|
1917
|
-
value: [{ type: i0.Input }],
|
|
1918
|
-
valueChange: [{ type: i0.Output }]
|
|
1919
|
-
};
|
|
1920
|
-
|
|
1921
|
-
/* @Component({
|
|
1922
|
-
template: ''
|
|
1923
|
-
}) */
|
|
1924
|
-
var ValueAccessorControlComponent = /** @class */ (function () {
|
|
1925
|
-
function ValueAccessorControlComponent(injector, cdRef) {
|
|
1926
|
-
this.injector = injector;
|
|
1927
|
-
this.cdRef = cdRef;
|
|
1928
|
-
this.destroy$ = new rxjs.ReplaySubject();
|
|
1929
|
-
this.valueChange = new i0.EventEmitter();
|
|
1930
|
-
this.propagateChange = function (val) { };
|
|
1931
|
-
this.propagateTouch = function () { };
|
|
1932
|
-
this.propagateValidatorChange = function () { };
|
|
1933
|
-
}
|
|
1934
|
-
Object.defineProperty(ValueAccessorControlComponent.prototype, "_control", {
|
|
1935
|
-
get: function () {
|
|
1936
|
-
if (!this.control) {
|
|
1937
|
-
throw new Error('ValueAccessorControlComponent: this.control must be eclipsed in the subclass');
|
|
1938
|
-
}
|
|
1939
|
-
return this.control;
|
|
1940
|
-
},
|
|
1941
|
-
enumerable: false,
|
|
1942
|
-
configurable: true
|
|
1943
|
-
});
|
|
1944
|
-
Object.defineProperty(ValueAccessorControlComponent.prototype, "value", {
|
|
1945
|
-
get: function () {
|
|
1946
|
-
return this._control.value;
|
|
1947
|
-
},
|
|
1948
|
-
set: function (val) {
|
|
1949
|
-
if (val) {
|
|
1950
|
-
this._control.setValue(val);
|
|
1951
|
-
}
|
|
1952
|
-
else {
|
|
1953
|
-
this._control.reset();
|
|
1954
|
-
}
|
|
1955
|
-
},
|
|
1956
|
-
enumerable: false,
|
|
1957
|
-
configurable: true
|
|
1958
|
-
});
|
|
1959
|
-
ValueAccessorControlComponent.prototype.ngOnInit = function () {
|
|
1960
|
-
var _this = this;
|
|
1961
|
-
this._control.valueChanges
|
|
1962
|
-
.pipe(operators.takeUntil(this.destroy$))
|
|
1963
|
-
.subscribe(function (val) {
|
|
1964
|
-
if (_this._control.dirty) {
|
|
1965
|
-
_this.propagateChange(val);
|
|
1966
|
-
_this.propagateTouch();
|
|
1967
|
-
_this.valueChange.emit(val);
|
|
1968
|
-
}
|
|
1969
|
-
});
|
|
1970
|
-
this._control.statusChanges
|
|
1971
|
-
.pipe(operators.takeUntil(this.destroy$))
|
|
1972
|
-
.subscribe(function () { return _this.propagateValidatorChange(); });
|
|
1973
|
-
};
|
|
1974
|
-
ValueAccessorControlComponent.prototype.ngAfterViewInit = function () {
|
|
1975
|
-
this.parentControl = this.injector.get(forms.NgControl, null);
|
|
1976
|
-
this.cdRef.detectChanges();
|
|
1977
|
-
};
|
|
1978
|
-
ValueAccessorControlComponent.prototype.ngOnDestroy = function () {
|
|
1979
|
-
this.destroy$.next();
|
|
1980
|
-
this.destroy$.complete();
|
|
1981
|
-
};
|
|
1982
|
-
ValueAccessorControlComponent.prototype.writeValue = function (value) {
|
|
1983
|
-
this.value = value;
|
|
1984
|
-
};
|
|
1985
|
-
ValueAccessorControlComponent.prototype.registerOnChange = function (fn) {
|
|
1986
|
-
this.propagateChange = fn;
|
|
1987
|
-
};
|
|
1988
|
-
ValueAccessorControlComponent.prototype.registerOnTouched = function (fn) {
|
|
1989
|
-
this.propagateTouch = fn;
|
|
1990
|
-
};
|
|
1991
|
-
ValueAccessorControlComponent.prototype.registerOnValidatorChange = function (fn) {
|
|
1992
|
-
this.propagateValidatorChange = fn;
|
|
1993
|
-
};
|
|
1994
|
-
ValueAccessorControlComponent.prototype.setDisabledState = function (isDisabled) {
|
|
1995
|
-
if (isDisabled) {
|
|
1996
|
-
this._control.disable();
|
|
1997
|
-
}
|
|
1998
|
-
else {
|
|
1999
|
-
this._control.enable();
|
|
2000
|
-
}
|
|
2001
|
-
};
|
|
2002
|
-
ValueAccessorControlComponent.prototype.validate = function (control) {
|
|
2003
|
-
return this._control.errors;
|
|
2004
|
-
};
|
|
2005
|
-
return ValueAccessorControlComponent;
|
|
2006
|
-
}());
|
|
2007
|
-
ValueAccessorControlComponent.propDecorators = {
|
|
2008
|
-
value: [{ type: i0.Input }],
|
|
2009
|
-
valueChange: [{ type: i0.Output }]
|
|
2010
|
-
};
|
|
2011
|
-
|
|
2012
|
-
var LoggedInGuard = /** @class */ (function () {
|
|
2013
|
-
function LoggedInGuard(config, router, aps) {
|
|
2014
|
-
this.config = config;
|
|
2015
|
-
this.router = router;
|
|
2016
|
-
this.aps = aps;
|
|
2017
|
-
}
|
|
2018
|
-
LoggedInGuard.prototype.guardOutcome = function (redirectUrl) {
|
|
2019
|
-
var _this = this;
|
|
2020
|
-
return this.aps.user$.pipe(operators.take(1), operators.map(function (user) {
|
|
2021
|
-
if (user) {
|
|
2022
|
-
if (_this.config.authUi.guardProtectedRoutesUntilEmailIsVerified && !user.emailVerified) {
|
|
2023
|
-
if (_this.config.authUi.authGuardVerifyEmailURL) {
|
|
2024
|
-
return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: redirectUrl } });
|
|
2025
|
-
}
|
|
2026
|
-
else if (_this.config.authUi.authGuardFallbackURL) {
|
|
2027
|
-
return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
|
|
2028
|
-
}
|
|
2029
|
-
else {
|
|
2030
|
-
return false;
|
|
2031
|
-
}
|
|
2032
|
-
}
|
|
2033
|
-
else {
|
|
2034
|
-
return true;
|
|
2035
|
-
}
|
|
2036
|
-
}
|
|
2037
|
-
else {
|
|
2038
|
-
if (_this.config.authUi.authGuardFallbackURL) {
|
|
2039
|
-
return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
|
|
2040
|
-
}
|
|
2041
|
-
return false;
|
|
2042
|
-
}
|
|
2043
|
-
}));
|
|
2044
|
-
};
|
|
2045
|
-
LoggedInGuard.prototype.canLoad = function (route, segments) {
|
|
2046
|
-
return this.guardOutcome(segments[0].parameters.url);
|
|
2047
|
-
};
|
|
2048
|
-
LoggedInGuard.prototype.canActivate = function (route, state) {
|
|
2049
|
-
return this.guardOutcome(state.url);
|
|
2050
|
-
};
|
|
2051
|
-
return LoggedInGuard;
|
|
2052
|
-
}());
|
|
2053
|
-
LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new LoggedInGuard(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(i2.Router), i0.ɵɵinject(AuthProcessService)); }, token: LoggedInGuard, providedIn: "root" });
|
|
2054
|
-
LoggedInGuard.decorators = [
|
|
2055
|
-
{ type: i0.Injectable, args: [{
|
|
2056
|
-
providedIn: 'root'
|
|
2057
|
-
},] }
|
|
2058
|
-
];
|
|
2059
|
-
LoggedInGuard.ctorParameters = function () { return [
|
|
2060
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
|
|
2061
|
-
{ type: i2.Router },
|
|
2062
|
-
{ type: AuthProcessService }
|
|
2063
|
-
]; };
|
|
2064
|
-
|
|
2065
|
-
var VerifyEmailGuard = /** @class */ (function () {
|
|
2066
|
-
function VerifyEmailGuard(config, router, aps) {
|
|
2067
|
-
this.config = config;
|
|
2068
|
-
this.router = router;
|
|
2069
|
-
this.aps = aps;
|
|
2070
|
-
}
|
|
2071
|
-
VerifyEmailGuard.prototype.canActivate = function (route, state) {
|
|
2072
|
-
var _this = this;
|
|
2073
|
-
return this.aps.user$.pipe(operators.map(function (user) {
|
|
2074
|
-
if (user
|
|
2075
|
-
&& !user.emailVerified
|
|
2076
|
-
&& !user.isAnonymous
|
|
2077
|
-
&& _this.config.authUi.authGuardVerifyEmailURL) {
|
|
2078
|
-
return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: state.url } });
|
|
2079
|
-
}
|
|
2080
|
-
else {
|
|
2081
|
-
return true;
|
|
2082
|
-
}
|
|
2083
|
-
}));
|
|
2084
|
-
};
|
|
2085
|
-
return VerifyEmailGuard;
|
|
2086
|
-
}());
|
|
2087
|
-
VerifyEmailGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function VerifyEmailGuard_Factory() { return new VerifyEmailGuard(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(i2.Router), i0.ɵɵinject(AuthProcessService)); }, token: VerifyEmailGuard, providedIn: "root" });
|
|
2088
|
-
VerifyEmailGuard.decorators = [
|
|
2089
|
-
{ type: i0.Injectable, args: [{
|
|
2090
|
-
providedIn: 'root'
|
|
2091
|
-
},] }
|
|
2092
|
-
];
|
|
2093
|
-
VerifyEmailGuard.ctorParameters = function () { return [
|
|
2094
|
-
{ type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
|
|
2095
|
-
{ type: i2.Router },
|
|
2096
|
-
{ type: AuthProcessService }
|
|
2097
|
-
]; };
|
|
2098
|
-
|
|
2099
|
-
var MODULES = [
|
|
2100
|
-
http.HttpClientModule,
|
|
2101
|
-
i3.AngularFireAuthModule,
|
|
2102
|
-
i1$2.AngularFirestoreModule,
|
|
2103
|
-
functions.AngularFireFunctionsModule
|
|
2104
|
-
];
|
|
2105
|
-
var MalSharedModule = /** @class */ (function () {
|
|
2106
|
-
function MalSharedModule() {
|
|
2107
|
-
}
|
|
2108
|
-
MalSharedModule.forRoot = function (config, appNameFactory) {
|
|
2109
|
-
if (appNameFactory === void 0) { appNameFactory = function () { return undefined; }; }
|
|
2110
|
-
var _a;
|
|
2111
|
-
return {
|
|
2112
|
-
ngModule: MalSharedModule,
|
|
2113
|
-
providers: [
|
|
2114
|
-
{
|
|
2115
|
-
provide: MalUserProvidedConfigToken,
|
|
2116
|
-
useValue: config
|
|
2117
|
-
},
|
|
2118
|
-
{
|
|
2119
|
-
provide: MalSharedConfigToken,
|
|
2120
|
-
useFactory: malSharedConfigFactory,
|
|
2121
|
-
deps: [MalUserProvidedConfigToken]
|
|
2122
|
-
},
|
|
2123
|
-
{
|
|
2124
|
-
provide: i1.DEFAULTS,
|
|
2125
|
-
useValue: config.configDefaults
|
|
2126
|
-
},
|
|
2127
|
-
{
|
|
2128
|
-
provide: i1.SETTINGS,
|
|
2129
|
-
useFactory: function () { return i0.isDevMode() ? { minimumFetchIntervalMillis: 3600000 } : {}; } // 1 hour§
|
|
2130
|
-
},
|
|
2131
|
-
{
|
|
2132
|
-
provide: fire.FIREBASE_OPTIONS,
|
|
2133
|
-
useValue: config.firebase
|
|
2134
|
-
},
|
|
2135
|
-
{
|
|
2136
|
-
provide: fire.FIREBASE_APP_NAME,
|
|
2137
|
-
useFactory: appNameFactory
|
|
2138
|
-
},
|
|
2139
|
-
{
|
|
2140
|
-
provide: i3.USE_EMULATOR,
|
|
2141
|
-
useFactory: authEmulatorFactory,
|
|
2142
|
-
deps: [MalSharedConfigToken]
|
|
2143
|
-
},
|
|
2144
|
-
{
|
|
2145
|
-
provide: i1$2.USE_EMULATOR,
|
|
2146
|
-
useFactory: firestoreEmulatorFactory,
|
|
2147
|
-
deps: [MalSharedConfigToken]
|
|
2148
|
-
},
|
|
2149
|
-
{
|
|
2150
|
-
provide: functions.USE_EMULATOR,
|
|
2151
|
-
useFactory: functionsEmulatorFactory,
|
|
2152
|
-
deps: [MalSharedConfigToken]
|
|
2153
|
-
},
|
|
2154
|
-
{
|
|
2155
|
-
provide: functions.REGION,
|
|
2156
|
-
useValue: ((_a = config.services) === null || _a === void 0 ? void 0 : _a.firebaseRegion) || null
|
|
2157
|
-
},
|
|
2158
|
-
{
|
|
2159
|
-
provide: i1$1.AngularFirePerformance,
|
|
2160
|
-
useFactory: performanceProviderFactory,
|
|
2161
|
-
deps: [
|
|
2162
|
-
MalSharedConfigToken,
|
|
2163
|
-
fire.FirebaseApp,
|
|
2164
|
-
[new i0.Optional(), i1$1.DATA_COLLECTION_ENABLED],
|
|
2165
|
-
[new i0.Optional(), i1$1.INSTRUMENTATION_ENABLED],
|
|
2166
|
-
i0.NgZone,
|
|
2167
|
-
i0.PLATFORM_ID
|
|
2168
|
-
]
|
|
2169
|
-
},
|
|
2170
|
-
{
|
|
2171
|
-
provide: i1.AngularFireRemoteConfig,
|
|
2172
|
-
useFactory: remoteConfigFirebaseService,
|
|
2173
|
-
deps: [
|
|
2174
|
-
MalSharedConfigToken,
|
|
2175
|
-
fire.FIREBASE_OPTIONS,
|
|
2176
|
-
fire.FIREBASE_APP_NAME,
|
|
2177
|
-
i1.SETTINGS,
|
|
2178
|
-
i1.DEFAULTS,
|
|
2179
|
-
i0.NgZone,
|
|
2180
|
-
i0.PLATFORM_ID
|
|
2181
|
-
]
|
|
2182
|
-
},
|
|
2183
|
-
AnalyticsService,
|
|
2184
|
-
CrashlyticsService,
|
|
2185
|
-
FirebaseService,
|
|
2186
|
-
UiService,
|
|
2187
|
-
RemoteConfigService,
|
|
2188
|
-
AuthProcessService,
|
|
2189
|
-
FirestoreSyncService,
|
|
2190
|
-
PerformanceService,
|
|
2191
|
-
i3.AngularFireAuth,
|
|
2192
|
-
LoggedInGuard,
|
|
2193
|
-
VerifyEmailGuard
|
|
2194
|
-
],
|
|
2195
|
-
};
|
|
2196
|
-
};
|
|
2197
|
-
return MalSharedModule;
|
|
2198
|
-
}());
|
|
2199
|
-
MalSharedModule.decorators = [
|
|
2200
|
-
{ type: i0.NgModule, args: [{
|
|
2201
|
-
imports: __spread(MODULES, [
|
|
2202
|
-
core.TranslateModule.forChild(),
|
|
2203
|
-
fire.AngularFireModule,
|
|
2204
|
-
]),
|
|
2205
|
-
exports: __spread(MODULES, [
|
|
2206
|
-
core.TranslateModule
|
|
2207
|
-
])
|
|
2208
|
-
},] }
|
|
2209
|
-
];
|
|
2210
|
-
function performanceProviderFactory(config, app, dataCollectionEnabled, instrumentationEnabled, zone, platformId) {
|
|
2211
|
-
if (config.services.firebasePerformance) {
|
|
2212
|
-
return new i1$1.AngularFirePerformance(app, dataCollectionEnabled, instrumentationEnabled, zone, platformId);
|
|
2213
|
-
}
|
|
2214
|
-
return null;
|
|
2215
|
-
}
|
|
2216
|
-
function remoteConfigFirebaseService(config, options, nameOrConfig, settings, defaultConfig, zone, platformId) {
|
|
2217
|
-
if (config.services.firebaseRemoteConfig) {
|
|
2218
|
-
return new i1.AngularFireRemoteConfig(options, nameOrConfig, settings, defaultConfig, zone, platformId);
|
|
2219
|
-
}
|
|
2220
|
-
return null;
|
|
2221
|
-
}
|
|
2222
|
-
function authEmulatorFactory(config) {
|
|
2223
|
-
if (true === config.services.firebaseAuth) {
|
|
2224
|
-
return undefined;
|
|
2225
|
-
}
|
|
2226
|
-
else {
|
|
2227
|
-
return config.services.firebaseAuth;
|
|
2228
|
-
}
|
|
2229
|
-
}
|
|
2230
|
-
function firestoreEmulatorFactory(config) {
|
|
2231
|
-
if (true === config.services.firebaseFirestore) {
|
|
2232
|
-
return undefined;
|
|
2233
|
-
}
|
|
2234
|
-
else {
|
|
2235
|
-
return config.services.firebaseFirestore;
|
|
2236
|
-
}
|
|
2237
|
-
}
|
|
2238
|
-
function functionsEmulatorFactory(config) {
|
|
2239
|
-
if (true === config.services.firebaseFunctions) {
|
|
2240
|
-
return undefined;
|
|
2241
|
-
}
|
|
2242
|
-
else {
|
|
2243
|
-
return config.services.firebaseFunctions;
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2246
|
-
|
|
2247
|
-
/**
|
|
2248
|
-
* Generated bundle index. Do not edit.
|
|
2249
|
-
*/
|
|
2250
|
-
|
|
2251
|
-
exports.AnalyticsService = AnalyticsService;
|
|
2252
|
-
exports.AuthHooksProviderToken = AuthHooksProviderToken;
|
|
2253
|
-
exports.AuthProcessService = AuthProcessService;
|
|
2254
|
-
exports.CrashlyticsService = CrashlyticsService;
|
|
2255
|
-
exports.FirebaseService = FirebaseService;
|
|
2256
|
-
exports.FirestoreSyncService = FirestoreSyncService;
|
|
2257
|
-
exports.LoggedInGuard = LoggedInGuard;
|
|
2258
|
-
exports.MalAlertsUIProviderToken = MalAlertsUIProviderToken;
|
|
2259
|
-
exports.MalAnalyticsProviderToken = MalAnalyticsProviderToken;
|
|
2260
|
-
exports.MalAuthServiceProviderToken = MalAuthServiceProviderToken;
|
|
2261
|
-
exports.MalCrashlyticsProviderToken = MalCrashlyticsProviderToken;
|
|
2262
|
-
exports.MalCredentialFactoryProviderToken = MalCredentialFactoryProviderToken;
|
|
2263
|
-
exports.MalDeviceInfoService = MalDeviceInfoService;
|
|
2264
|
-
exports.MalLegaliyDialogUIProiderToken = MalLegaliyDialogUIProiderToken;
|
|
2265
|
-
exports.MalLoadingUIProviderToken = MalLoadingUIProviderToken;
|
|
2266
|
-
exports.MalPickerUIProviderToken = MalPickerUIProviderToken;
|
|
2267
|
-
exports.MalSharedConfigToken = MalSharedConfigToken;
|
|
2268
|
-
exports.MalSharedModule = MalSharedModule;
|
|
2269
|
-
exports.MalToastUIProviderToken = MalToastUIProviderToken;
|
|
2270
|
-
exports.MalUserProvidedConfigToken = MalUserProvidedConfigToken;
|
|
2271
|
-
exports.PHONE_NUMBER_REGEX = PHONE_NUMBER_REGEX;
|
|
2272
|
-
exports.PerformanceService = PerformanceService;
|
|
2273
|
-
exports.PerformanceTraceNoop = PerformanceTraceNoop;
|
|
2274
|
-
exports.RemoteConfigService = RemoteConfigService;
|
|
2275
|
-
exports.UiService = UiService;
|
|
2276
|
-
exports.ValueAccessorControlComponent = ValueAccessorControlComponent;
|
|
2277
|
-
exports.ValueAccessorValueComponent = ValueAccessorValueComponent;
|
|
2278
|
-
exports.VerifyEmailGuard = VerifyEmailGuard;
|
|
2279
|
-
exports.authEmulatorFactory = authEmulatorFactory;
|
|
2280
|
-
exports.defaultAuthFirebaseUIConfig = defaultAuthFirebaseUIConfig;
|
|
2281
|
-
exports.firestoreEmulatorFactory = firestoreEmulatorFactory;
|
|
2282
|
-
exports.functionsEmulatorFactory = functionsEmulatorFactory;
|
|
2283
|
-
exports.malSharedConfigFactory = malSharedConfigFactory;
|
|
2284
|
-
exports.performanceProviderFactory = performanceProviderFactory;
|
|
2285
|
-
exports.remoteConfigFirebaseService = remoteConfigFirebaseService;
|
|
2286
|
-
exports.ɵa = MalAnalyticsProviderToken;
|
|
2287
|
-
exports.ɵc = MalCrashlyticsProviderToken;
|
|
2288
|
-
exports.ɵe = MalSharedConfigToken;
|
|
2289
|
-
exports.ɵf = AuthHooksProviderToken;
|
|
2290
|
-
exports.ɵg = MalCredentialFactoryProviderToken;
|
|
2291
|
-
exports.ɵk = MalToastUIProviderToken;
|
|
2292
|
-
exports.ɵl = MalAlertsUIProviderToken;
|
|
2293
|
-
exports.ɵm = MalLoadingUIProviderToken;
|
|
2294
|
-
exports.ɵn = MalLegaliyDialogUIProiderToken;
|
|
2295
|
-
|
|
2296
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2297
|
-
|
|
2298
|
-
})));
|
|
2299
|
-
//# sourceMappingURL=ngx-firebase.umd.js.map
|