Kargi-Sitesi/node_modules/@angular/fire/fesm2015/angular-fire-compat-auth.js

200 lines
11 KiB
JavaScript
Raw Normal View History

2024-11-04 02:30:09 +00:00
import * as i0 from '@angular/core';
import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
import { Subject, of, Observable, from, merge } from 'rxjs';
import { observeOn, switchMap, map, shareReplay, first, switchMapTo, subscribeOn, filter } from 'rxjs/operators';
import * as i1 from '@angular/fire';
import { keepUnstableUntilFirst, VERSION } from '@angular/fire';
import { ɵcacheInstance, ɵfirebaseAppFactory, ɵlazySDKProxy, FIREBASE_OPTIONS, FIREBASE_APP_NAME, ɵapplyMixins } from '@angular/fire/compat';
import { isPlatformServer } from '@angular/common';
import * as i2 from '@angular/fire/app-check';
import firebase from 'firebase/compat/app';
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
// Export a null object with the same keys as firebase/compat/auth, so Proxy can work with proxy-polyfill in Internet Explorer
const proxyPolyfillCompat = {
name: null,
config: null,
emulatorConfig: null,
app: null,
applyActionCode: null,
checkActionCode: null,
confirmPasswordReset: null,
createUserWithEmailAndPassword: null,
currentUser: null,
fetchSignInMethodsForEmail: null,
isSignInWithEmailLink: null,
getRedirectResult: null,
languageCode: null,
settings: null,
onAuthStateChanged: null,
onIdTokenChanged: null,
sendSignInLinkToEmail: null,
sendPasswordResetEmail: null,
setPersistence: null,
signInAndRetrieveDataWithCredential: null,
signInAnonymously: null,
signInWithCredential: null,
signInWithCustomToken: null,
signInWithEmailAndPassword: null,
signInWithPhoneNumber: null,
signInWithEmailLink: null,
signInWithPopup: null,
signInWithRedirect: null,
signOut: null,
tenantId: null,
updateCurrentUser: null,
useDeviceLanguage: null,
useEmulator: null,
verifyPasswordResetCode: null,
};
const USE_EMULATOR = new InjectionToken('angularfire2.auth.use-emulator');
const SETTINGS = new InjectionToken('angularfire2.auth.settings');
const TENANT_ID = new InjectionToken('angularfire2.auth.tenant-id');
const LANGUAGE_CODE = new InjectionToken('angularfire2.auth.langugage-code');
const USE_DEVICE_LANGUAGE = new InjectionToken('angularfire2.auth.use-device-language');
const PERSISTENCE = new InjectionToken('angularfire.auth.persistence');
const ɵauthFactory = (app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence) => ɵcacheInstance(`${app.name}.auth`, 'AngularFireAuth', app.name, () => {
const auth = zone.runOutsideAngular(() => app.auth());
if (useEmulator) {
auth.useEmulator(...useEmulator);
}
if (tenantId) {
auth.tenantId = tenantId;
}
auth.languageCode = languageCode;
if (useDeviceLanguage) {
auth.useDeviceLanguage();
}
if (settings) {
for (const [k, v] of Object.entries(settings)) {
auth.settings[k] = v;
}
}
if (persistence) {
auth.setPersistence(persistence);
}
return auth;
}, [useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence]);
class AngularFireAuth {
constructor(options, name,
// tslint:disable-next-line:ban-types
platformId, zone, schedulers, useEmulator, // can't use the tuple here
settings, // can't use firebase.auth.AuthSettings here
tenantId, languageCode, useDeviceLanguage, persistence, _appCheckInstances) {
const logins = new Subject();
const auth = of(undefined).pipe(observeOn(schedulers.outsideAngular), switchMap(() => zone.runOutsideAngular(() => import('firebase/compat/auth'))), map(() => ɵfirebaseAppFactory(options, zone, name)), map(app => ɵauthFactory(app, zone, useEmulator, tenantId, languageCode, useDeviceLanguage, settings, persistence)), shareReplay({ bufferSize: 1, refCount: false }));
if (isPlatformServer(platformId)) {
this.authState = this.user = this.idToken = this.idTokenResult = this.credential = of(null);
}
else {
// HACK, as we're exporting auth.Auth, rather than auth, developers importing firebase.auth
// (e.g, `import { auth } from 'firebase/compat/app'`) are getting an undefined auth object unexpectedly
// as we're completely lazy. Let's eagerly load the Auth SDK here.
// There could potentially be race conditions still... but this greatly decreases the odds while
// we reevaluate the API.
const _ = auth.pipe(first()).subscribe();
const redirectResult = auth.pipe(switchMap(auth => auth.getRedirectResult().then(it => it, () => null)), keepUnstableUntilFirst, shareReplay({ bufferSize: 1, refCount: false }));
const authStateChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onAuthStateChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
const idTokenChanged = auth.pipe(switchMap(auth => new Observable(sub => ({ unsubscribe: zone.runOutsideAngular(() => auth.onIdTokenChanged(next => sub.next(next), err => sub.error(err), () => sub.complete())) }))));
this.authState = redirectResult.pipe(switchMapTo(authStateChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
this.user = redirectResult.pipe(switchMapTo(idTokenChanged), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
this.idToken = this.user.pipe(switchMap(user => user ? from(user.getIdToken()) : of(null)));
this.idTokenResult = this.user.pipe(switchMap(user => user ? from(user.getIdTokenResult()) : of(null)));
this.credential = merge(redirectResult, logins,
// pipe in null authState to make credential zipable, just a weird devexp if
// authState and user go null to still have a credential
this.authState.pipe(filter(it => !it))).pipe(
// handle the { user: { } } when a user is already logged in, rather have null
// TODO handle the type corcersion better
map(credential => (credential === null || credential === void 0 ? void 0 : credential.user) ? credential : null), subscribeOn(schedulers.outsideAngular), observeOn(schedulers.insideAngular));
}
return ɵlazySDKProxy(this, auth, zone, { spy: {
apply: (name, _, val) => {
// If they call a signIn or createUser function listen into the promise
// this will give us the user credential, push onto the logins Subject
// to be consumed in .credential
if (name.startsWith('signIn') || name.startsWith('createUser')) {
// TODO fix the types, the trouble is UserCredential has everything optional
val.then((user) => logins.next(user));
}
}
} });
}
}
AngularFireAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuth, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: USE_EMULATOR, optional: true }, { token: SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
AngularFireAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuth, providedIn: 'any' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuth, decorators: [{
type: Injectable,
args: [{
providedIn: 'any'
}]
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
type: Inject,
args: [FIREBASE_OPTIONS]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [FIREBASE_APP_NAME]
}] }, { type: Object, decorators: [{
type: Inject,
args: [PLATFORM_ID]
}] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [USE_EMULATOR]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [SETTINGS]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [TENANT_ID]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [LANGUAGE_CODE]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [USE_DEVICE_LANGUAGE]
}] }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [PERSISTENCE]
}] }, { type: i2.AppCheckInstances, decorators: [{
type: Optional
}] }]; } });
ɵapplyMixins(AngularFireAuth, [proxyPolyfillCompat]);
class AngularFireAuthModule {
constructor() {
firebase.registerVersion('angularfire', VERSION.full, 'auth-compat');
}
}
AngularFireAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
AngularFireAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuthModule });
AngularFireAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuthModule, providers: [AngularFireAuth] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireAuthModule, decorators: [{
type: NgModule,
args: [{
providers: [AngularFireAuth]
}]
}], ctorParameters: function () { return []; } });
/**
* Generated bundle index. Do not edit.
*/
export { AngularFireAuth, AngularFireAuthModule, LANGUAGE_CODE, PERSISTENCE, SETTINGS, TENANT_ID, USE_DEVICE_LANGUAGE, USE_EMULATOR, ɵauthFactory };
//# sourceMappingURL=angular-fire-compat-auth.js.map