summaryrefslogtreecommitdiff
path: root/frontend-old/node_modules/@firebase/auth/dist/rn/src/model
diff options
context:
space:
mode:
authoraltaf-creator <dev@altafcreator.com>2025-11-16 19:08:29 +0800
committeraltaf-creator <dev@altafcreator.com>2025-11-16 19:08:29 +0800
commit434aa8343fdcbb4d5002f934979913c099489bee (patch)
tree55bab4ec5a6151be57797d34f61faf5ea744471b /frontend-old/node_modules/@firebase/auth/dist/rn/src/model
parent893c388d4e99442a36005e5971a87730623f946e (diff)
sdk, del
Diffstat (limited to 'frontend-old/node_modules/@firebase/auth/dist/rn/src/model')
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/application_verifier.d.ts23
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/auth.d.ts90
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enum_maps.d.ts98
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enums.d.ts74
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/id_token.d.ts87
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/password_policy.d.ts111
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/popup_redirect.d.ts94
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/public_types.d.ts1291
-rw-r--r--frontend-old/node_modules/@firebase/auth/dist/rn/src/model/user.d.ts83
9 files changed, 0 insertions, 1951 deletions
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/application_verifier.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/application_verifier.d.ts
deleted file mode 100644
index fc6dca5..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/application_verifier.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * @license
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { ApplicationVerifier } from './public_types';
-export interface ApplicationVerifierInternal extends ApplicationVerifier {
- /**
- * @internal
- */
- _reset(): void;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/auth.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/auth.d.ts
deleted file mode 100644
index 986054b..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/auth.d.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * @license
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { Auth, AuthSettings, Config, EmulatorConfig, PasswordPolicy, PasswordValidationStatus, PopupRedirectResolver, User } from './public_types';
-import { ErrorFactory } from '@firebase/util';
-import { AuthErrorCode, AuthErrorParams } from '../core/errors';
-import { PopupRedirectResolverInternal } from './popup_redirect';
-import { UserInternal } from './user';
-import { ClientPlatform } from '../core/util/version';
-import { RecaptchaConfig } from '../platform_browser/recaptcha/recaptcha';
-import { PasswordPolicyInternal } from './password_policy';
-import { PersistenceInternal } from '../core/persistence';
-export type AppName = string;
-export type ApiKey = string;
-export type AuthDomain = string;
-/**
- * @internal
- */
-export interface ConfigInternal extends Config {
- /**
- * @readonly
- */
- emulator?: {
- url: string;
- };
- /**
- * @readonly
- */
- clientPlatform: ClientPlatform;
-}
-/**
- * UserInternal and AuthInternal reference each other, so both of them are included in the public typings.
- * In order to exclude them, we mark them as internal explicitly.
- *
- * @internal
- */
-export interface AuthInternal extends Auth {
- currentUser: User | null;
- emulatorConfig: EmulatorConfig | null;
- _agentRecaptchaConfig: RecaptchaConfig | null;
- _tenantRecaptchaConfigs: Record<string, RecaptchaConfig>;
- _projectPasswordPolicy: PasswordPolicy | null;
- _tenantPasswordPolicies: Record<string, PasswordPolicy>;
- _canInitEmulator: boolean;
- _isInitialized: boolean;
- _initializationPromise: Promise<void> | null;
- _persistenceManagerAvailable: Promise<void>;
- _updateCurrentUser(user: UserInternal | null): Promise<void>;
- _onStorageEvent(): void;
- _notifyListenersIfCurrent(user: UserInternal): void;
- _persistUserIfCurrent(user: UserInternal): Promise<void>;
- _setRedirectUser(user: UserInternal | null, popupRedirectResolver?: PopupRedirectResolver): Promise<void>;
- _redirectUserForId(id: string): Promise<UserInternal | null>;
- _popupRedirectResolver: PopupRedirectResolverInternal | null;
- _key(): string;
- _startProactiveRefresh(): void;
- _stopProactiveRefresh(): void;
- _getPersistenceType(): string;
- _getPersistence(): PersistenceInternal;
- _getRecaptchaConfig(): RecaptchaConfig | null;
- _getPasswordPolicyInternal(): PasswordPolicyInternal | null;
- _updatePasswordPolicy(): Promise<void>;
- _logFramework(framework: string): void;
- _getFrameworks(): readonly string[];
- _getAdditionalHeaders(): Promise<Record<string, string>>;
- _getAppCheckToken(): Promise<string | undefined>;
- readonly name: AppName;
- readonly config: ConfigInternal;
- languageCode: string | null;
- tenantId: string | null;
- readonly settings: AuthSettings;
- _errorFactory: ErrorFactory<AuthErrorCode, AuthErrorParams>;
- useDeviceLanguage(): void;
- signOut(): Promise<void>;
- validatePassword(password: string): Promise<PasswordValidationStatus>;
- revokeAccessToken(token: string): Promise<void>;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enum_maps.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enum_maps.d.ts
deleted file mode 100644
index 60095b5..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enum_maps.d.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @license
- * Copyright 2021 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * An enum of factors that may be used for multifactor authentication.
- *
- * @public
- */
-export declare const FactorId: {
- /** Phone as second factor */
- readonly PHONE: "phone";
- readonly TOTP: "totp";
-};
-/**
- * Enumeration of supported providers.
- *
- * @public
- */
-export declare const ProviderId: {
- /** Facebook provider ID */
- readonly FACEBOOK: "facebook.com";
- /** GitHub provider ID */
- readonly GITHUB: "github.com";
- /** Google provider ID */
- readonly GOOGLE: "google.com";
- /** Password provider */
- readonly PASSWORD: "password";
- /** Phone provider */
- readonly PHONE: "phone";
- /** Twitter provider ID */
- readonly TWITTER: "twitter.com";
-};
-/**
- * Enumeration of supported sign-in methods.
- *
- * @public
- */
-export declare const SignInMethod: {
- /** Email link sign in method */
- readonly EMAIL_LINK: "emailLink";
- /** Email/password sign in method */
- readonly EMAIL_PASSWORD: "password";
- /** Facebook sign in method */
- readonly FACEBOOK: "facebook.com";
- /** GitHub sign in method */
- readonly GITHUB: "github.com";
- /** Google sign in method */
- readonly GOOGLE: "google.com";
- /** Phone sign in method */
- readonly PHONE: "phone";
- /** Twitter sign in method */
- readonly TWITTER: "twitter.com";
-};
-/**
- * Enumeration of supported operation types.
- *
- * @public
- */
-export declare const OperationType: {
- /** Operation involving linking an additional provider to an already signed-in user. */
- readonly LINK: "link";
- /** Operation involving using a provider to reauthenticate an already signed-in user. */
- readonly REAUTHENTICATE: "reauthenticate";
- /** Operation involving signing in a user. */
- readonly SIGN_IN: "signIn";
-};
-/**
- * An enumeration of the possible email action types.
- *
- * @public
- */
-export declare const ActionCodeOperation: {
- /** The email link sign-in action. */
- readonly EMAIL_SIGNIN: "EMAIL_SIGNIN";
- /** The password reset action. */
- readonly PASSWORD_RESET: "PASSWORD_RESET";
- /** The email revocation action. */
- readonly RECOVER_EMAIL: "RECOVER_EMAIL";
- /** The revert second factor addition email action. */
- readonly REVERT_SECOND_FACTOR_ADDITION: "REVERT_SECOND_FACTOR_ADDITION";
- /** The revert second factor addition email action. */
- readonly VERIFY_AND_CHANGE_EMAIL: "VERIFY_AND_CHANGE_EMAIL";
- /** The email verification action. */
- readonly VERIFY_EMAIL: "VERIFY_EMAIL";
-};
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enums.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enums.d.ts
deleted file mode 100644
index a917e14..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/enums.d.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * @license
- * Copyright 2021 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Enumeration of supported providers.
- * @internal
- */
-export declare const enum ProviderId {
- /** @internal */
- ANONYMOUS = "anonymous",
- /** @internal */
- CUSTOM = "custom",
- /** Facebook provider ID */
- FACEBOOK = "facebook.com",
- /** @internal */
- FIREBASE = "firebase",
- /** GitHub provider ID */
- GITHUB = "github.com",
- /** Google provider ID */
- GOOGLE = "google.com",
- /** Password provider */
- PASSWORD = "password",
- /** Phone provider */
- PHONE = "phone",
- /** Twitter provider ID */
- TWITTER = "twitter.com"
-}
-/**
- * Enumeration of supported sign-in methods.
- * @internal
- */
-export declare const enum SignInMethod {
- /** @internal */
- ANONYMOUS = "anonymous",
- /** Email link sign in method */
- EMAIL_LINK = "emailLink",
- /** Email/password sign in method */
- EMAIL_PASSWORD = "password",
- /** Facebook sign in method */
- FACEBOOK = "facebook.com",
- /** GitHub sign in method */
- GITHUB = "github.com",
- /** Google sign in method */
- GOOGLE = "google.com",
- /** Phone sign in method */
- PHONE = "phone",
- /** Twitter sign in method */
- TWITTER = "twitter.com"
-}
-/**
- * Enumeration of supported operation types.
- * @internal
- */
-export declare const enum OperationType {
- /** Operation involving linking an additional provider to an already signed-in user. */
- LINK = "link",
- /** Operation involving using a provider to reauthenticate an already signed-in user. */
- REAUTHENTICATE = "reauthenticate",
- /** Operation involving signing in a user. */
- SIGN_IN = "signIn"
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/id_token.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/id_token.d.ts
deleted file mode 100644
index b288dcf..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/id_token.d.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-/**
- * @license
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { PhoneOrOauthTokenResponse } from '../api/authentication/mfa';
-/**
- * Raw encoded JWT
- *
- */
-export type IdToken = string;
-/**
- * Raw parsed JWT
- *
- */
-export interface ParsedIdToken {
- iss: string;
- aud: string;
- exp: number;
- sub: string;
- iat: number;
- email?: string;
- verified: boolean;
- providerId?: string;
- tenantId?: string;
- anonymous: boolean;
- federatedId?: string;
- displayName?: string;
- photoURL?: string;
- toString(): string;
-}
-/**
- * IdToken as returned by the API
- *
- * @internal
- */
-export interface IdTokenResponse {
- localId: string;
- idToken?: IdToken;
- refreshToken?: string;
- expiresIn?: string;
- providerId?: string;
- displayName?: string | null;
- isNewUser?: boolean;
- kind?: IdTokenResponseKind;
- photoUrl?: string | null;
- rawUserInfo?: string;
- screenName?: string | null;
-}
-/**
- * The possible types of the `IdTokenResponse`
- *
- * @internal
- */
-export declare const enum IdTokenResponseKind {
- CreateAuthUri = "identitytoolkit#CreateAuthUriResponse",
- DeleteAccount = "identitytoolkit#DeleteAccountResponse",
- DownloadAccount = "identitytoolkit#DownloadAccountResponse",
- EmailLinkSignin = "identitytoolkit#EmailLinkSigninResponse",
- GetAccountInfo = "identitytoolkit#GetAccountInfoResponse",
- GetOobConfirmationCode = "identitytoolkit#GetOobConfirmationCodeResponse",
- GetRecaptchaParam = "identitytoolkit#GetRecaptchaParamResponse",
- ResetPassword = "identitytoolkit#ResetPasswordResponse",
- SetAccountInfo = "identitytoolkit#SetAccountInfoResponse",
- SignupNewUser = "identitytoolkit#SignupNewUserResponse",
- UploadAccount = "identitytoolkit#UploadAccountResponse",
- VerifyAssertion = "identitytoolkit#VerifyAssertionResponse",
- VerifyCustomToken = "identitytoolkit#VerifyCustomTokenResponse",
- VerifyPassword = "identitytoolkit#VerifyPasswordResponse"
-}
-/**
- * @internal
- */
-export interface TaggedWithTokenResponse {
- _tokenResponse?: PhoneOrOauthTokenResponse;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/password_policy.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/password_policy.d.ts
deleted file mode 100644
index 0a438d2..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/password_policy.d.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * @license
- * Copyright 2023 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { PasswordPolicy, PasswordValidationStatus } from './public_types';
-/**
- * Internal typing of password policy that includes the schema version and methods for
- * validating that a password meets the policy. The developer does not need access to
- * these properties and methods, so they are excluded from the public typing.
- *
- * @internal
- */
-export interface PasswordPolicyInternal extends PasswordPolicy {
- /**
- * Requirements enforced by the password policy.
- */
- readonly customStrengthOptions: PasswordPolicyCustomStrengthOptions;
- /**
- * Schema version of the password policy.
- */
- readonly schemaVersion: number;
- /**
- * Validates the password against the policy.
- * @param password Password to validate.
- */
- validatePassword(password: string): PasswordValidationStatus;
-}
-/**
- * Internal typing of the password policy custom strength options that is modifiable. This
- * allows us to construct the strength options before storing them in the policy.
- *
- * @internal
- */
-export interface PasswordPolicyCustomStrengthOptions {
- /**
- * Minimum password length.
- */
- minPasswordLength?: number;
- /**
- * Maximum password length.
- */
- maxPasswordLength?: number;
- /**
- * Whether the password should contain a lowercase letter.
- */
- containsLowercaseLetter?: boolean;
- /**
- * Whether the password should contain an uppercase letter.
- */
- containsUppercaseLetter?: boolean;
- /**
- * Whether the password should contain a numeric character.
- */
- containsNumericCharacter?: boolean;
- /**
- * Whether the password should contain a non-alphanumeric character.
- */
- containsNonAlphanumericCharacter?: boolean;
-}
-/**
- * Internal typing of password validation status that is modifiable. This allows us to
- * construct the validation status before returning it.
- *
- * @internal
- */
-export interface PasswordValidationStatusInternal extends PasswordValidationStatus {
- /**
- * Whether the password meets all requirements.
- */
- isValid: boolean;
- /**
- * Whether the password meets the minimum password length.
- */
- meetsMinPasswordLength?: boolean;
- /**
- * Whether the password meets the maximum password length.
- */
- meetsMaxPasswordLength?: boolean;
- /**
- * Whether the password contains a lowercase letter, if required.
- */
- containsLowercaseLetter?: boolean;
- /**
- * Whether the password contains an uppercase letter, if required.
- */
- containsUppercaseLetter?: boolean;
- /**
- * Whether the password contains a numeric character, if required.
- */
- containsNumericCharacter?: boolean;
- /**
- * Whether the password contains a non-alphanumeric character, if required.
- */
- containsNonAlphanumericCharacter?: boolean;
- /**
- * The policy used to validate the password.
- */
- passwordPolicy: PasswordPolicy;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/popup_redirect.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/popup_redirect.d.ts
deleted file mode 100644
index 1ed2872..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/popup_redirect.d.ts
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * @license
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { Auth, AuthProvider, Persistence, PopupRedirectResolver, UserCredential } from './public_types';
-import { FirebaseError } from '@firebase/util';
-import { AuthPopup } from '../platform_browser/util/popup';
-import { AuthInternal } from './auth';
-import { UserCredentialInternal } from './user';
-export declare const enum EventFilter {
- POPUP = 0,
- REDIRECT = 1
-}
-export declare const enum GapiOutcome {
- ACK = "ACK",
- ERROR = "ERROR"
-}
-export interface GapiAuthEvent extends gapi.iframes.Message {
- authEvent: AuthEvent;
-}
-/**
- * @internal
- */
-export declare const enum AuthEventType {
- LINK_VIA_POPUP = "linkViaPopup",
- LINK_VIA_REDIRECT = "linkViaRedirect",
- REAUTH_VIA_POPUP = "reauthViaPopup",
- REAUTH_VIA_REDIRECT = "reauthViaRedirect",
- SIGN_IN_VIA_POPUP = "signInViaPopup",
- SIGN_IN_VIA_REDIRECT = "signInViaRedirect",
- UNKNOWN = "unknown",
- VERIFY_APP = "verifyApp"
-}
-export interface AuthEventError extends Error {
- code: string;
- message: string;
-}
-/**
- * @internal
- */
-export interface AuthEvent {
- type: AuthEventType;
- eventId: string | null;
- urlResponse: string | null;
- sessionId: string | null;
- postBody: string | null;
- tenantId: string | null;
- error?: AuthEventError;
-}
-/**
- * @internal
- */
-export interface AuthEventConsumer {
- readonly filter: AuthEventType[];
- eventId: string | null;
- onAuthEvent(event: AuthEvent): unknown;
- onError(error: FirebaseError): unknown;
-}
-/**
- * @internal
- */
-export interface EventManager {
- registerConsumer(authEventConsumer: AuthEventConsumer): void;
- unregisterConsumer(authEventConsumer: AuthEventConsumer): void;
-}
-/**
- * We need to mark this interface as internal explicitly to exclude it in the public typings, because
- * it references AuthInternal which has a circular dependency with UserInternal.
- *
- * @internal
- */
-export interface PopupRedirectResolverInternal extends PopupRedirectResolver {
- _shouldInitProactively: boolean;
- _initialize(auth: AuthInternal): Promise<EventManager>;
- _openPopup(auth: AuthInternal, provider: AuthProvider, authType: AuthEventType, eventId?: string): Promise<AuthPopup>;
- _openRedirect(auth: AuthInternal, provider: AuthProvider, authType: AuthEventType, eventId?: string): Promise<void | never>;
- _isIframeWebStorageSupported(auth: AuthInternal, cb: (support: boolean) => unknown): void;
- _redirectPersistence: Persistence;
- _originValidation(auth: Auth): Promise<void>;
- _completeRedirectFn: (auth: Auth, resolver: PopupRedirectResolver, bypassAuthState: boolean) => Promise<UserCredential | null>;
- _overrideRedirectResult: (auth: AuthInternal, resultGetter: () => Promise<UserCredentialInternal | null>) => void;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/public_types.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/public_types.d.ts
deleted file mode 100644
index d1600ce..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/public_types.d.ts
+++ /dev/null
@@ -1,1291 +0,0 @@
-/**
- * @license
- * Copyright 2019 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { FirebaseApp } from '@firebase/app';
-import { CompleteFn, ErrorFn, FirebaseError, NextFn, Observer, Unsubscribe } from '@firebase/util';
-import { FactorId as FactorIdMap, OperationType as OperationTypeMap, ActionCodeOperation as ActionCodeOperationMap } from './enum_maps';
-export { CompleteFn, ErrorFn, NextFn, Unsubscribe };
-/**
- * Interface representing the `Auth` config.
- *
- * @public
- */
-export interface Config {
- /**
- * The API Key used to communicate with the Firebase Auth backend.
- */
- apiKey: string;
- /**
- * The host at which the Firebase Auth backend is running.
- */
- apiHost: string;
- /**
- * The scheme used to communicate with the Firebase Auth backend.
- */
- apiScheme: string;
- /**
- * The host at which the Secure Token API is running.
- */
- tokenApiHost: string;
- /**
- * The SDK Client Version.
- */
- sdkClientVersion: string;
- /**
- * The domain at which the web widgets are hosted (provided via Firebase Config).
- */
- authDomain?: string;
-}
-/**
- * Interface representing reCAPTCHA parameters.
- *
- * See the {@link https://developers.google.com/recaptcha/docs/display#render_param | reCAPTCHA docs}
- * for the list of accepted parameters. All parameters are accepted except for `sitekey`: Firebase Auth
- * provisions a reCAPTCHA for each project and will configure the site key upon rendering.
- *
- * For an invisible reCAPTCHA, set the `size` key to `invisible`.
- *
- * @public
- */
-export interface RecaptchaParameters {
- [key: string]: any;
-}
-/**
- * Interface representing a parsed ID token.
- *
- * @privateRemarks TODO(avolkovi): consolidate with parsed_token in implementation.
- *
- * @public
- */
-export interface ParsedToken {
- /** Expiration time of the token. */
- 'exp'?: string;
- /** UID of the user. */
- 'sub'?: string;
- /** Time at which authentication was performed. */
- 'auth_time'?: string;
- /** Issuance time of the token. */
- 'iat'?: string;
- /** Firebase specific claims, containing the provider(s) used to authenticate the user. */
- 'firebase'?: {
- 'sign_in_provider'?: string;
- 'sign_in_second_factor'?: string;
- 'identities'?: Record<string, string>;
- };
- /** Map of any additional custom claims. */
- [key: string]: unknown;
-}
-/**
- * Type definition for an event callback.
- *
- * @privateRemarks TODO(avolkovi): should we consolidate with Subscribe<T> since we're changing the API anyway?
- *
- * @public
- */
-export type NextOrObserver<T> = NextFn<T | null> | Observer<T | null>;
-/**
- * Interface for an `Auth` error.
- *
- * @public
- */
-export interface AuthError extends FirebaseError {
- /** Details about the Firebase Auth error. */
- readonly customData: {
- /** The name of the Firebase App which triggered this error. */
- readonly appName: string;
- /** The email address of the user's account, used for sign-in and linking. */
- readonly email?: string;
- /** The phone number of the user's account, used for sign-in and linking. */
- readonly phoneNumber?: string;
- /**
- * The tenant ID being used for sign-in and linking.
- *
- * @remarks
- * If you use {@link signInWithRedirect} to sign in,
- * you have to set the tenant ID on the {@link Auth} instance again as the tenant ID is not persisted
- * after redirection.
- */
- readonly tenantId?: string;
- };
-}
-/**
- * Interface representing an {@link Auth} instance's settings.
- *
- * @remarks Currently used for enabling/disabling app verification for phone Auth testing.
- *
- * @public
- */
-export interface AuthSettings {
- /**
- * When set, this property disables app verification for the purpose of testing phone
- * authentication. For this property to take effect, it needs to be set before rendering a
- * reCAPTCHA app verifier. When this is disabled, a mock reCAPTCHA is rendered instead. This is
- * useful for manual testing during development or for automated integration tests.
- *
- * In order to use this feature, you will need to
- * {@link https://firebase.google.com/docs/auth/web/phone-auth#test-with-whitelisted-phone-numbers | whitelist your phone number}
- * via the Firebase Console.
- *
- * The default value is false (app verification is enabled).
- */
- appVerificationDisabledForTesting: boolean;
-}
-/**
- * Interface representing Firebase Auth service.
- *
- * @remarks
- * See {@link https://firebase.google.com/docs/auth/ | Firebase Authentication} for a full guide
- * on how to use the Firebase Auth service.
- *
- * @public
- */
-export interface Auth {
- /** The {@link @firebase/app#FirebaseApp} associated with the `Auth` service instance. */
- readonly app: FirebaseApp;
- /** The name of the app associated with the `Auth` service instance. */
- readonly name: string;
- /** The {@link Config} used to initialize this instance. */
- readonly config: Config;
- /**
- * Changes the type of persistence on the `Auth` instance.
- *
- * @remarks
- * This will affect the currently saved Auth session and applies this type of persistence for
- * future sign-in requests, including sign-in with redirect requests.
- *
- * This makes it easy for a user signing in to specify whether their session should be
- * remembered or not. It also makes it easier to never persist the Auth state for applications
- * that are shared by other users or have sensitive data.
- *
- * This method does not work in a Node.js environment.
- *
- * @example
- * ```javascript
- * auth.setPersistence(browserSessionPersistence);
- * ```
- *
- * @param persistence - The {@link Persistence} to use.
- */
- setPersistence(persistence: Persistence): Promise<void>;
- /**
- * The {@link Auth} instance's language code.
- *
- * @remarks
- * This is a readable/writable property. When set to null, the default Firebase Console language
- * setting is applied. The language code will propagate to email action templates (password
- * reset, email verification and email change revocation), SMS templates for phone authentication,
- * reCAPTCHA verifier and OAuth popup/redirect operations provided the specified providers support
- * localization with the language code specified.
- */
- languageCode: string | null;
- /**
- * The {@link Auth} instance's tenant ID.
- *
- * @remarks
- * This is a readable/writable property. When you set the tenant ID of an {@link Auth} instance, all
- * future sign-in/sign-up operations will pass this tenant ID and sign in or sign up users to
- * the specified tenant project. When set to null, users are signed in to the parent project.
- *
- * @example
- * ```javascript
- * // Set the tenant ID on Auth instance.
- * auth.tenantId = 'TENANT_PROJECT_ID';
- *
- * // All future sign-in request now include tenant ID.
- * const result = await signInWithEmailAndPassword(auth, email, password);
- * // result.user.tenantId should be 'TENANT_PROJECT_ID'.
- * ```
- *
- * @defaultValue null
- */
- tenantId: string | null;
- /**
- * The {@link Auth} instance's settings.
- *
- * @remarks
- * This is used to edit/read configuration related options such as app verification mode for
- * phone authentication.
- */
- readonly settings: AuthSettings;
- /**
- * Adds an observer for changes to the user's sign-in state.
- *
- * @remarks
- * To keep the old behavior, see {@link Auth.onIdTokenChanged}.
- *
- * @param nextOrObserver - callback triggered on change.
- * @param error - Deprecated. This callback is never triggered. Errors
- * on signing in/out can be caught in promises returned from
- * sign-in/sign-out functions.
- * @param completed - Deprecated. This callback is never triggered.
- */
- onAuthStateChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
- /**
- * Adds a blocking callback that runs before an auth state change
- * sets a new user.
- *
- * @param callback - callback triggered before new user value is set.
- * If this throws, it blocks the user from being set.
- * @param onAbort - callback triggered if a later `beforeAuthStateChanged()`
- * callback throws, allowing you to undo any side effects.
- */
- beforeAuthStateChanged(callback: (user: User | null) => void | Promise<void>, onAbort?: () => void): Unsubscribe;
- /**
- * Adds an observer for changes to the signed-in user's ID token.
- *
- * @remarks
- * This includes sign-in, sign-out, and token refresh events.
- *
- * @param nextOrObserver - callback triggered on change.
- * @param error - Deprecated. This callback is never triggered. Errors
- * on signing in/out can be caught in promises returned from
- * sign-in/sign-out functions.
- * @param completed - Deprecated. This callback is never triggered.
- */
- onIdTokenChanged(nextOrObserver: NextOrObserver<User | null>, error?: ErrorFn, completed?: CompleteFn): Unsubscribe;
- /**
- * returns a promise that resolves immediately when the initial
- * auth state is settled. When the promise resolves, the current user might be a valid user
- * or `null` if the user signed out.
- */
- authStateReady(): Promise<void>;
- /** The currently signed-in user (or null). */
- readonly currentUser: User | null;
- /** The current emulator configuration (or null). */
- readonly emulatorConfig: EmulatorConfig | null;
- /**
- * Asynchronously sets the provided user as {@link Auth.currentUser} on the {@link Auth} instance.
- *
- * @remarks
- * A new instance copy of the user provided will be made and set as currentUser.
- *
- * This will trigger {@link Auth.onAuthStateChanged} and {@link Auth.onIdTokenChanged} listeners
- * like other sign in methods.
- *
- * The operation fails with an error if the user to be updated belongs to a different Firebase
- * project.
- *
- * @param user - The new {@link User}.
- */
- updateCurrentUser(user: User | null): Promise<void>;
- /**
- * Sets the current language to the default device/browser preference.
- */
- useDeviceLanguage(): void;
- /**
- * Signs out the current user. This does not automatically revoke the user's ID token.
- *
- * @remarks
- * This method is not supported by {@link Auth} instances created with a
- * {@link @firebase/app#FirebaseServerApp}.
- */
- signOut(): Promise<void>;
-}
-/**
- * An interface covering the possible persistence mechanism types.
- *
- * @public
- */
-export interface Persistence {
- /**
- * Type of Persistence.
- * - 'SESSION' is used for temporary persistence such as `sessionStorage`.
- * - 'LOCAL' is used for long term persistence such as `localStorage` or `IndexedDB`.
- * - 'NONE' is used for in-memory, or no persistence.
- * - 'COOKIE' is used for cookie persistence, useful for server-side rendering.
- */
- readonly type: 'SESSION' | 'LOCAL' | 'NONE' | 'COOKIE';
-}
-/**
- * Interface representing ID token result obtained from {@link User.getIdTokenResult}.
- *
- * @remarks
- * `IdTokenResult` contains the ID token JWT string and other helper properties for getting different data
- * associated with the token as well as all the decoded payload claims.
- *
- * Note that these claims are not to be trusted as they are parsed client side. Only server side
- * verification can guarantee the integrity of the token claims.
- *
- * @public
- */
-export interface IdTokenResult {
- /**
- * The authentication time formatted as a UTC string.
- *
- * @remarks
- * This is the time the user authenticated (signed in) and not the time the token was refreshed.
- */
- authTime: string;
- /** The ID token expiration time formatted as a UTC string. */
- expirationTime: string;
- /** The ID token issuance time formatted as a UTC string. */
- issuedAtTime: string;
- /**
- * The sign-in provider through which the ID token was obtained (anonymous, custom, phone,
- * password, etc).
- *
- * @remarks
- * Note, this does not map to provider IDs.
- */
- signInProvider: string | null;
- /**
- * The type of second factor associated with this session, provided the user was multi-factor
- * authenticated (eg. phone, etc).
- */
- signInSecondFactor: string | null;
- /** The Firebase Auth ID token JWT string. */
- token: string;
- /**
- * The entire payload claims of the ID token including the standard reserved claims as well as
- * the custom claims.
- */
- claims: ParsedToken;
-}
-/**
- * A response from {@link checkActionCode}.
- *
- * @public
- */
-export interface ActionCodeInfo {
- /**
- * The data associated with the action code.
- *
- * @remarks
- * For the {@link ActionCodeOperation}.PASSWORD_RESET, {@link ActionCodeOperation}.VERIFY_EMAIL, and
- * {@link ActionCodeOperation}.RECOVER_EMAIL actions, this object contains an email field with the address
- * the email was sent to.
- *
- * For the {@link ActionCodeOperation}.RECOVER_EMAIL action, which allows a user to undo an email address
- * change, this object also contains a `previousEmail` field with the user account's current
- * email address. After the action completes, the user's email address will revert to the value
- * in the `email` field from the value in `previousEmail` field.
- *
- * For the {@link ActionCodeOperation}.VERIFY_AND_CHANGE_EMAIL action, which allows a user to verify the
- * email before updating it, this object contains a `previousEmail` field with the user account's
- * email address before updating. After the action completes, the user's email address will be
- * updated to the value in the `email` field from the value in `previousEmail` field.
- *
- * For the {@link ActionCodeOperation}.REVERT_SECOND_FACTOR_ADDITION action, which allows a user to
- * unenroll a newly added second factor, this object contains a `multiFactorInfo` field with
- * the information about the second factor. For phone second factor, the `multiFactorInfo`
- * is a {@link MultiFactorInfo} object, which contains the phone number.
- */
- data: {
- email?: string | null;
- multiFactorInfo?: MultiFactorInfo | null;
- previousEmail?: string | null;
- };
- /**
- * The type of operation that generated the action code.
- */
- operation: (typeof ActionCodeOperationMap)[keyof typeof ActionCodeOperationMap];
-}
-/**
- * An enumeration of the possible email action types.
- *
- * @internal
- */
-export declare const enum ActionCodeOperation {
- /** The email link sign-in action. */
- EMAIL_SIGNIN = "EMAIL_SIGNIN",
- /** The password reset action. */
- PASSWORD_RESET = "PASSWORD_RESET",
- /** The email revocation action. */
- RECOVER_EMAIL = "RECOVER_EMAIL",
- /** The revert second factor addition email action. */
- REVERT_SECOND_FACTOR_ADDITION = "REVERT_SECOND_FACTOR_ADDITION",
- /** The revert second factor addition email action. */
- VERIFY_AND_CHANGE_EMAIL = "VERIFY_AND_CHANGE_EMAIL",
- /** The email verification action. */
- VERIFY_EMAIL = "VERIFY_EMAIL"
-}
-/**
- * An interface that defines the required continue/state URL with optional Android and iOS
- * bundle identifiers.
- *
- * @public
- */
-export interface ActionCodeSettings {
- /**
- * Sets the Android package name.
- *
- * @remarks
- * This will try to open the link in an Android app if it is installed.
- */
- android?: {
- installApp?: boolean;
- minimumVersion?: string;
- packageName: string;
- };
- /**
- * When set to true, the action code link will be be sent as a Universal Link or Android App
- * Link and will be opened by the app if installed.
- *
- * @remarks
- * In the false case, the code will be sent to the web widget first and then on continue will
- * redirect to the app if installed.
- *
- * @defaultValue false
- */
- handleCodeInApp?: boolean;
- /**
- * Sets the iOS bundle ID.
- *
- * @remarks
- * This will try to open the link in an iOS app if it is installed.
- */
- iOS?: {
- bundleId: string;
- };
- /**
- * Sets the link continue/state URL.
- *
- * @remarks
- * This has different meanings in different contexts:
- * - When the link is handled in the web action widgets, this is the deep link in the
- * `continueUrl` query parameter.
- * - When the link is handled in the app directly, this is the `continueUrl` query parameter in
- * the deep link of the Dynamic Link or Hosting link.
- */
- url: string;
- /**
- * When multiple custom dynamic link domains are defined for a project, specify which one to use
- * when the link is to be opened via a specified mobile app (for example, `example.page.link`).
- *
- *
- * @defaultValue The first domain is automatically selected.
- *
- * @deprecated Firebase Dynamic Links is deprecated and will be shut down as early as August
- * 2025. Instead, use {@link ActionCodeSettings.linkDomain} to set a custom domain for mobile
- * links. Learn more in the {@link https://firebase.google.com/support/dynamic-links-faq | Dynamic Links deprecation FAQ}.
- */
- dynamicLinkDomain?: string;
- /**
- * The optional custom Firebase Hosting domain to use when the link is to be opened via
- * a specified mobile app. The domain must be configured in Firebase Hosting and owned
- * by the project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`).
- *
- * @defaultValue The default Hosting domain will be used (for example, `example.firebaseapp.com`).
- */
- linkDomain?: string;
-}
-/**
- * A verifier for domain verification and abuse prevention.
- *
- * @remarks
- * Currently, the only implementation is {@link RecaptchaVerifier}.
- *
- * @public
- */
-export interface ApplicationVerifier {
- /**
- * Identifies the type of application verifier (e.g. "recaptcha").
- */
- readonly type: string;
- /**
- * Executes the verification process.
- *
- * @returns A Promise for a token that can be used to assert the validity of a request.
- */
- verify(): Promise<string>;
-}
-/**
- * Interface that represents an auth provider, used to facilitate creating {@link AuthCredential}.
- *
- * @public
- */
-export interface AuthProvider {
- /**
- * Provider for which credentials can be constructed.
- */
- readonly providerId: string;
-}
-/**
- * An enum of factors that may be used for multifactor authentication.
- *
- * Internally we use an enum type for FactorId, ActionCodeOperation, but there is a copy in https://github.com/firebase/firebase-js-sdk/blob/48a2096aec53a7eaa9ffcc2625016ecb9f90d113/packages/auth/src/model/enum_maps.ts#L23 that uses maps.
- * const enums are better for tree-shaking, however can cause runtime errors if exposed in public APIs, example - https://github.com/microsoft/rushstack/issues/3058
- * So, we expose enum maps publicly, but use const enums internally to get some tree-shaking benefit.
- * @internal
- */
-export declare const enum FactorId {
- /** Phone as second factor */
- PHONE = "phone",
- TOTP = "totp"
-}
-/**
- * A result from a phone number sign-in, link, or reauthenticate call.
- *
- * @public
- */
-export interface ConfirmationResult {
- /**
- * The phone number authentication operation's verification ID.
- *
- * @remarks
- * This can be used along with the verification code to initialize a
- * {@link PhoneAuthCredential}.
- */
- readonly verificationId: string;
- /**
- * Finishes a phone number sign-in, link, or reauthentication.
- *
- * @example
- * ```javascript
- * const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
- * // Obtain verificationCode from the user.
- * const userCredential = await confirmationResult.confirm(verificationCode);
- * ```
- *
- * @param verificationCode - The code that was sent to the user's mobile device.
- */
- confirm(verificationCode: string): Promise<UserCredential>;
-}
-/**
- * The base class for asserting ownership of a second factor.
- *
- * @remarks
- * This is used to facilitate enrollment of a second factor on an existing user or sign-in of a
- * user who already verified the first factor.
- *
- * @public
- */
-export interface MultiFactorAssertion {
- /** The identifier of the second factor. */
- readonly factorId: (typeof FactorIdMap)[keyof typeof FactorIdMap];
-}
-/**
- * The error thrown when the user needs to provide a second factor to sign in successfully.
- *
- * @remarks
- * The error code for this error is `auth/multi-factor-auth-required`.
- *
- * @example
- * ```javascript
- * let resolver;
- * let multiFactorHints;
- *
- * signInWithEmailAndPassword(auth, email, password)
- * .then((result) => {
- * // User signed in. No 2nd factor challenge is needed.
- * })
- * .catch((error) => {
- * if (error.code == 'auth/multi-factor-auth-required') {
- * resolver = getMultiFactorResolver(auth, error);
- * multiFactorHints = resolver.hints;
- * } else {
- * // Handle other errors.
- * }
- * });
- *
- * // Obtain a multiFactorAssertion by verifying the second factor.
- *
- * const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
- * ```
- *
- * @public
- */
-export interface MultiFactorError extends AuthError {
- /** Details about the MultiFactorError. */
- readonly customData: AuthError['customData'] & {
- /**
- * The type of operation (sign-in, linking, or re-authentication) that raised the error.
- */
- readonly operationType: (typeof OperationTypeMap)[keyof typeof OperationTypeMap];
- };
-}
-/**
- * A structure containing the information of a second factor entity.
- *
- * @public
- */
-export interface MultiFactorInfo {
- /** The multi-factor enrollment ID. */
- readonly uid: string;
- /** The user friendly name of the current second factor. */
- readonly displayName?: string | null;
- /** The enrollment date of the second factor formatted as a UTC string. */
- readonly enrollmentTime: string;
- /** The identifier of the second factor. */
- readonly factorId: (typeof FactorIdMap)[keyof typeof FactorIdMap];
-}
-/**
- * The subclass of the {@link MultiFactorInfo} interface for phone number
- * second factors. The `factorId` of this second factor is {@link FactorId}.PHONE.
- * @public
- */
-export interface PhoneMultiFactorInfo extends MultiFactorInfo {
- /** The phone number associated with the current second factor. */
- readonly phoneNumber: string;
-}
-/**
- * The subclass of the {@link MultiFactorInfo} interface for TOTP
- * second factors. The `factorId` of this second factor is {@link FactorId}.TOTP.
- * @public
- */
-export interface TotpMultiFactorInfo extends MultiFactorInfo {
-}
-/**
- * The class used to facilitate recovery from {@link MultiFactorError} when a user needs to
- * provide a second factor to sign in.
- *
- * @example
- * ```javascript
- * let resolver;
- * let multiFactorHints;
- *
- * signInWithEmailAndPassword(auth, email, password)
- * .then((result) => {
- * // User signed in. No 2nd factor challenge is needed.
- * })
- * .catch((error) => {
- * if (error.code == 'auth/multi-factor-auth-required') {
- * resolver = getMultiFactorResolver(auth, error);
- * // Show UI to let user select second factor.
- * multiFactorHints = resolver.hints;
- * } else {
- * // Handle other errors.
- * }
- * });
- *
- * // The enrolled second factors that can be used to complete
- * // sign-in are returned in the `MultiFactorResolver.hints` list.
- * // UI needs to be presented to allow the user to select a second factor
- * // from that list.
- *
- * const selectedHint = // ; selected from multiFactorHints
- * const phoneAuthProvider = new PhoneAuthProvider(auth);
- * const phoneInfoOptions = {
- * multiFactorHint: selectedHint,
- * session: resolver.session
- * };
- * const verificationId = phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
- * // Store `verificationId` and show UI to let user enter verification code.
- *
- * // UI to enter verification code and continue.
- * // Continue button click handler
- * const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
- * const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
- * const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
- * ```
- *
- * @public
- */
-export interface MultiFactorResolver {
- /**
- * The list of hints for the second factors needed to complete the sign-in for the current
- * session.
- */
- readonly hints: MultiFactorInfo[];
- /**
- * The session identifier for the current sign-in flow, which can be used to complete the second
- * factor sign-in.
- */
- readonly session: MultiFactorSession;
- /**
- * A helper function to help users complete sign in with a second factor using an
- * {@link MultiFactorAssertion} confirming the user successfully completed the second factor
- * challenge.
- *
- * @example
- * ```javascript
- * const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
- * const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
- * const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
- * ```
- *
- * @param assertion - The multi-factor assertion to resolve sign-in with.
- * @returns The promise that resolves with the user credential object.
- */
- resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
-}
-/**
- * An interface defining the multi-factor session object used for enrolling a second factor on a
- * user or helping sign in an enrolled user with a second factor.
- *
- * @public
- */
-export interface MultiFactorSession {
-}
-/**
- * An interface that defines the multi-factor related properties and operations pertaining
- * to a {@link User}.
- *
- * @public
- */
-export interface MultiFactorUser {
- /** Returns a list of the user's enrolled second factors. */
- readonly enrolledFactors: MultiFactorInfo[];
- /**
- * Returns the session identifier for a second factor enrollment operation. This is used to
- * identify the user trying to enroll a second factor.
- *
- * @example
- * ```javascript
- * const multiFactorUser = multiFactor(auth.currentUser);
- * const multiFactorSession = await multiFactorUser.getSession();
- *
- * // Send verification code.
- * const phoneAuthProvider = new PhoneAuthProvider(auth);
- * const phoneInfoOptions = {
- * phoneNumber: phoneNumber,
- * session: multiFactorSession
- * };
- * const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
- *
- * // Obtain verification code from user.
- * const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
- * const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
- * await multiFactorUser.enroll(multiFactorAssertion);
- * ```
- *
- * @returns The promise that resolves with the {@link MultiFactorSession}.
- */
- getSession(): Promise<MultiFactorSession>;
- /**
- *
- * Enrolls a second factor as identified by the {@link MultiFactorAssertion} for the
- * user.
- *
- * @remarks
- * On resolution, the user tokens are updated to reflect the change in the JWT payload.
- * Accepts an additional display name parameter used to identify the second factor to the end
- * user. Recent re-authentication is required for this operation to succeed. On successful
- * enrollment, existing Firebase sessions (refresh tokens) are revoked. When a new factor is
- * enrolled, an email notification is sent to the user’s email.
- *
- * @example
- * ```javascript
- * const multiFactorUser = multiFactor(auth.currentUser);
- * const multiFactorSession = await multiFactorUser.getSession();
- *
- * // Send verification code.
- * const phoneAuthProvider = new PhoneAuthProvider(auth);
- * const phoneInfoOptions = {
- * phoneNumber: phoneNumber,
- * session: multiFactorSession
- * };
- * const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
- *
- * // Obtain verification code from user.
- * const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
- * const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
- * await multiFactorUser.enroll(multiFactorAssertion);
- * // Second factor enrolled.
- * ```
- *
- * @param assertion - The multi-factor assertion to enroll with.
- * @param displayName - The display name of the second factor.
- */
- enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;
- /**
- * Unenrolls the specified second factor.
- *
- * @remarks
- * To specify the factor to remove, pass a {@link MultiFactorInfo} object (retrieved from
- * {@link MultiFactorUser.enrolledFactors}) or the
- * factor's UID string. Sessions are not revoked when the account is unenrolled. An email
- * notification is likely to be sent to the user notifying them of the change. Recent
- * re-authentication is required for this operation to succeed. When an existing factor is
- * unenrolled, an email notification is sent to the user’s email.
- *
- * @example
- * ```javascript
- * const multiFactorUser = multiFactor(auth.currentUser);
- * // Present user the option to choose which factor to unenroll.
- * await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])
- * ```
- *
- * @param option - The multi-factor option to unenroll.
- * @returns - A `Promise` which resolves when the unenroll operation is complete.
- */
- unenroll(option: MultiFactorInfo | string): Promise<void>;
-}
-/**
- * The class for asserting ownership of a phone second factor. Provided by
- * {@link PhoneMultiFactorGenerator.assertion}.
- *
- * @public
- */
-export interface PhoneMultiFactorAssertion extends MultiFactorAssertion {
-}
-/**
- * The information required to verify the ownership of a phone number.
- *
- * @remarks
- * The information that's required depends on whether you are doing single-factor sign-in,
- * multi-factor enrollment or multi-factor sign-in.
- *
- * @public
- */
-export type PhoneInfoOptions = PhoneSingleFactorInfoOptions | PhoneMultiFactorEnrollInfoOptions | PhoneMultiFactorSignInInfoOptions;
-/**
- * Options used for single-factor sign-in.
- *
- * @public
- */
-export interface PhoneSingleFactorInfoOptions {
- /** Phone number to send a verification code to. */
- phoneNumber: string;
-}
-/**
- * Options used for enrolling a second factor.
- *
- * @public
- */
-export interface PhoneMultiFactorEnrollInfoOptions {
- /** Phone number to send a verification code to. */
- phoneNumber: string;
- /** The {@link MultiFactorSession} obtained via {@link MultiFactorUser.getSession}. */
- session: MultiFactorSession;
-}
-/**
- * Options used for signing in with a second factor.
- *
- * @public
- */
-export interface PhoneMultiFactorSignInInfoOptions {
- /**
- * The {@link MultiFactorInfo} obtained via {@link MultiFactorResolver.hints}.
- *
- * One of `multiFactorHint` or `multiFactorUid` is required.
- */
- multiFactorHint?: MultiFactorInfo;
- /**
- * The uid of the second factor.
- *
- * One of `multiFactorHint` or `multiFactorUid` is required.
- */
- multiFactorUid?: string;
- /** The {@link MultiFactorSession} obtained via {@link MultiFactorResolver.session}. */
- session: MultiFactorSession;
-}
-/**
- * Interface for a supplied `AsyncStorage`.
- *
- * @public
- */
-export interface ReactNativeAsyncStorage {
- /**
- * Persist an item in storage.
- *
- * @param key - storage key.
- * @param value - storage value.
- */
- setItem(key: string, value: string): Promise<void>;
- /**
- * Retrieve an item from storage.
- *
- * @param key - storage key.
- */
- getItem(key: string): Promise<string | null>;
- /**
- * Remove an item from storage.
- *
- * @param key - storage key.
- */
- removeItem(key: string): Promise<void>;
-}
-/**
- * A user account.
- *
- * @public
- */
-export interface User extends UserInfo {
- /**
- * Whether the email has been verified with {@link sendEmailVerification} and
- * {@link applyActionCode}.
- */
- readonly emailVerified: boolean;
- /**
- * Whether the user is authenticated using the {@link ProviderId}.ANONYMOUS provider.
- */
- readonly isAnonymous: boolean;
- /**
- * Additional metadata around user creation and sign-in times.
- */
- readonly metadata: UserMetadata;
- /**
- * Additional per provider such as displayName and profile information.
- */
- readonly providerData: UserInfo[];
- /**
- * Refresh token used to reauthenticate the user. Avoid using this directly and prefer
- * {@link User.getIdToken} to refresh the ID token instead.
- */
- readonly refreshToken: string;
- /**
- * The user's tenant ID.
- *
- * @remarks
- * This is a read-only property, which indicates the tenant ID
- * used to sign in the user. This is null if the user is signed in from the parent
- * project.
- *
- * @example
- * ```javascript
- * // Set the tenant ID on Auth instance.
- * auth.tenantId = 'TENANT_PROJECT_ID';
- *
- * // All future sign-in request now include tenant ID.
- * const result = await signInWithEmailAndPassword(auth, email, password);
- * // result.user.tenantId should be 'TENANT_PROJECT_ID'.
- * ```
- */
- readonly tenantId: string | null;
- /**
- * Deletes and signs out the user.
- *
- * @remarks
- * Important: this is a security-sensitive operation that requires the user to have recently
- * signed in. If this requirement isn't met, ask the user to authenticate again and then call
- * one of the reauthentication methods like {@link reauthenticateWithCredential}.
- *
- * This method is not supported on any {@link User} signed in by {@link Auth} instances
- * created with a {@link @firebase/app#FirebaseServerApp}.
- */
- delete(): Promise<void>;
- /**
- * Returns a JSON Web Token (JWT) used to identify the user to a Firebase service.
- *
- * @remarks
- * Returns the current token if it has not expired or if it will not expire in the next five
- * minutes. Otherwise, this will refresh the token and return a new one.
- *
- * @param forceRefresh - Force refresh regardless of token expiration.
- */
- getIdToken(forceRefresh?: boolean): Promise<string>;
- /**
- * Returns a deserialized JSON Web Token (JWT) used to identify the user to a Firebase service.
- *
- * @remarks
- * Returns the current token if it has not expired or if it will not expire in the next five
- * minutes. Otherwise, this will refresh the token and return a new one.
- *
- * @param forceRefresh - Force refresh regardless of token expiration.
- */
- getIdTokenResult(forceRefresh?: boolean): Promise<IdTokenResult>;
- /**
- * Refreshes the user, if signed in.
- */
- reload(): Promise<void>;
- /**
- * Returns a JSON-serializable representation of this object.
- *
- * @returns A JSON-serializable representation of this object.
- */
- toJSON(): object;
-}
-/**
- * A structure containing a {@link User}, the {@link OperationType}, and the provider ID.
- *
- * @remarks
- * `operationType` could be {@link OperationType}.SIGN_IN for a sign-in operation,
- * {@link OperationType}.LINK for a linking operation and {@link OperationType}.REAUTHENTICATE for
- * a reauthentication operation.
- *
- * @public
- */
-export interface UserCredential {
- /**
- * The user authenticated by this credential.
- */
- user: User;
- /**
- * The provider which was used to authenticate the user.
- */
- providerId: string | null;
- /**
- * The type of operation which was used to authenticate the user (such as sign-in or link).
- */
- operationType: (typeof OperationTypeMap)[keyof typeof OperationTypeMap];
-}
-/**
- * User profile information, visible only to the Firebase project's apps.
- *
- * @public
- */
-export interface UserInfo {
- /**
- * The display name of the user.
- */
- readonly displayName: string | null;
- /**
- * The email of the user.
- */
- readonly email: string | null;
- /**
- * The phone number normalized based on the E.164 standard (e.g. +16505550101) for the
- * user.
- *
- * @remarks
- * This is null if the user has no phone credential linked to the account.
- */
- readonly phoneNumber: string | null;
- /**
- * The profile photo URL of the user.
- */
- readonly photoURL: string | null;
- /**
- * The provider used to authenticate the user.
- */
- readonly providerId: string;
- /**
- * The user's unique ID, scoped to the project.
- */
- readonly uid: string;
-}
-/**
- * Interface representing a user's metadata.
- *
- * @public
- */
-export interface UserMetadata {
- /** Time the user was created. */
- readonly creationTime?: string;
- /** Time the user last signed in. */
- readonly lastSignInTime?: string;
-}
-/**
- * A structure containing additional user information from a federated identity provider.
- *
- * @public
- */
-export interface AdditionalUserInfo {
- /**
- * Whether the user is new (created via sign-up) or existing (authenticated using sign-in).
- */
- readonly isNewUser: boolean;
- /**
- * Map containing IDP-specific user data.
- */
- readonly profile: Record<string, unknown> | null;
- /**
- * Identifier for the provider used to authenticate this user.
- */
- readonly providerId: string | null;
- /**
- * The username if the provider is GitHub or Twitter.
- */
- readonly username?: string | null;
-}
-/**
- * User profile used in {@link AdditionalUserInfo}.
- *
- * @public
- */
-export type UserProfile = Record<string, unknown>;
-/**
- * A resolver used for handling DOM specific operations like {@link signInWithPopup}
- * or {@link signInWithRedirect}.
- *
- * @public
- */
-export interface PopupRedirectResolver {
-}
-declare module '@firebase/component' {
- interface NameServiceMapping {
- 'auth': Auth;
- }
-}
-/**
- * Configuration of Firebase Authentication Emulator.
- * @public
- */
-export interface EmulatorConfig {
- /**
- * The protocol used to communicate with the emulator ("http"/"https").
- */
- readonly protocol: string;
- /**
- * The hostname of the emulator, which may be a domain ("localhost"), IPv4 address ("127.0.0.1")
- * or quoted IPv6 address ("[::1]").
- */
- readonly host: string;
- /**
- * The port of the emulator, or null if port isn't specified (i.e. protocol default).
- */
- readonly port: number | null;
- /**
- * The emulator-specific options.
- */
- readonly options: {
- /**
- * Whether the warning banner attached to the DOM was disabled.
- */
- readonly disableWarnings: boolean;
- };
-}
-/**
- * A mapping of error codes to error messages.
- *
- * @remarks
- *
- * While error messages are useful for debugging (providing verbose textual
- * context around what went wrong), these strings take up a lot of space in the
- * compiled code. When deploying code in production, using {@link prodErrorMap}
- * will save you roughly 10k compressed/gzipped over {@link debugErrorMap}. You
- * can select the error map during initialization:
- *
- * ```javascript
- * initializeAuth(app, {errorMap: debugErrorMap})
- * ```
- *
- * When initializing Auth, {@link prodErrorMap} is default.
- *
- * @public
- */
-export interface AuthErrorMap {
-}
-/**
- * The dependencies that can be used to initialize an {@link Auth} instance.
- *
- * @remarks
- *
- * The modular SDK enables tree shaking by allowing explicit declarations of
- * dependencies. For example, a web app does not need to include code that
- * enables Cordova redirect sign in. That functionality is therefore split into
- * {@link browserPopupRedirectResolver} and
- * {@link cordovaPopupRedirectResolver}. The dependencies object is how Auth is
- * configured to reduce bundle sizes.
- *
- * There are two ways to initialize an {@link Auth} instance: {@link getAuth} and
- * {@link initializeAuth}. `getAuth` initializes everything using
- * platform-specific configurations, while `initializeAuth` takes a
- * `Dependencies` object directly, giving you more control over what is used.
- *
- * @public
- */
-export interface Dependencies {
- /**
- * Which {@link Persistence} to use. If this is an array, the first
- * `Persistence` that the device supports is used. The SDK searches for an
- * existing account in order and, if one is found in a secondary
- * `Persistence`, the account is moved to the primary `Persistence`.
- *
- * If no persistence is provided, the SDK falls back on
- * {@link inMemoryPersistence}.
- */
- persistence?: Persistence | Persistence[];
- /**
- * The {@link PopupRedirectResolver} to use. This value depends on the
- * platform. Options are {@link browserPopupRedirectResolver} and
- * {@link cordovaPopupRedirectResolver}. This field is optional if neither
- * {@link signInWithPopup} or {@link signInWithRedirect} are being used.
- */
- popupRedirectResolver?: PopupRedirectResolver;
- /**
- * Which {@link AuthErrorMap} to use.
- */
- errorMap?: AuthErrorMap;
-}
-/**
- * The class for asserting ownership of a TOTP second factor. Provided by
- * {@link TotpMultiFactorGenerator.assertionForEnrollment} and
- * {@link TotpMultiFactorGenerator.assertionForSignIn}.
- *
- * @public
- */
-export interface TotpMultiFactorAssertion extends MultiFactorAssertion {
-}
-/**
- * A structure specifying password policy requirements.
- *
- * @public
- */
-export interface PasswordPolicy {
- /**
- * Requirements enforced by this password policy.
- */
- readonly customStrengthOptions: {
- /**
- * Minimum password length, or undefined if not configured.
- */
- readonly minPasswordLength?: number;
- /**
- * Maximum password length, or undefined if not configured.
- */
- readonly maxPasswordLength?: number;
- /**
- * Whether the password should contain a lowercase letter, or undefined if not configured.
- */
- readonly containsLowercaseLetter?: boolean;
- /**
- * Whether the password should contain an uppercase letter, or undefined if not configured.
- */
- readonly containsUppercaseLetter?: boolean;
- /**
- * Whether the password should contain a numeric character, or undefined if not configured.
- */
- readonly containsNumericCharacter?: boolean;
- /**
- * Whether the password should contain a non-alphanumeric character, or undefined if not configured.
- */
- readonly containsNonAlphanumericCharacter?: boolean;
- };
- /**
- * List of characters that are considered non-alphanumeric during validation.
- */
- readonly allowedNonAlphanumericCharacters: string;
- /**
- * The enforcement state of the policy. Can be 'OFF' or 'ENFORCE'.
- */
- readonly enforcementState: string;
- /**
- * Whether existing passwords must meet the policy.
- */
- readonly forceUpgradeOnSignin: boolean;
-}
-/**
- * A structure indicating which password policy requirements were met or violated and what the
- * requirements are.
- *
- * @public
- */
-export interface PasswordValidationStatus {
- /**
- * Whether the password meets all requirements.
- */
- readonly isValid: boolean;
- /**
- * Whether the password meets the minimum password length, or undefined if not required.
- */
- readonly meetsMinPasswordLength?: boolean;
- /**
- * Whether the password meets the maximum password length, or undefined if not required.
- */
- readonly meetsMaxPasswordLength?: boolean;
- /**
- * Whether the password contains a lowercase letter, or undefined if not required.
- */
- readonly containsLowercaseLetter?: boolean;
- /**
- * Whether the password contains an uppercase letter, or undefined if not required.
- */
- readonly containsUppercaseLetter?: boolean;
- /**
- * Whether the password contains a numeric character, or undefined if not required.
- */
- readonly containsNumericCharacter?: boolean;
- /**
- * Whether the password contains a non-alphanumeric character, or undefined if not required.
- */
- readonly containsNonAlphanumericCharacter?: boolean;
- /**
- * The policy used to validate the password.
- */
- readonly passwordPolicy: PasswordPolicy;
-}
diff --git a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/user.d.ts b/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/user.d.ts
deleted file mode 100644
index 7e40566..0000000
--- a/frontend-old/node_modules/@firebase/auth/dist/rn/src/model/user.d.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * @license
- * Copyright 2020 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import { IdTokenResult, User, UserCredential, UserInfo } from './public_types';
-import { NextFn } from '@firebase/util';
-import { APIUserInfo } from '../api/account_management/account';
-import { FinalizeMfaResponse } from '../api/authentication/mfa';
-import { PersistedBlob } from '../core/persistence';
-import { StsTokenManager } from '../core/user/token_manager';
-import { UserMetadata } from '../core/user/user_metadata';
-import { AuthInternal } from './auth';
-import { IdTokenResponse, TaggedWithTokenResponse } from './id_token';
-import { ProviderId } from './enums';
-export type MutableUserInfo = {
- -readonly [K in keyof UserInfo]: UserInfo[K];
-};
-export interface UserParameters {
- uid: string;
- auth: AuthInternal;
- stsTokenManager: StsTokenManager;
- displayName?: string | null;
- email?: string | null;
- phoneNumber?: string | null;
- photoURL?: string | null;
- isAnonymous?: boolean | null;
- emailVerified?: boolean | null;
- tenantId?: string | null;
- providerData?: MutableUserInfo[] | null;
- createdAt?: string | null;
- lastLoginAt?: string | null;
-}
-/**
- * UserInternal and AuthInternal reference each other, so both of them are included in the public typings.
- * In order to exclude them, we mark them as internal explicitly.
- *
- * @internal
- */
-export interface UserInternal extends User {
- displayName: string | null;
- email: string | null;
- phoneNumber: string | null;
- photoURL: string | null;
- auth: AuthInternal;
- providerId: ProviderId.FIREBASE;
- refreshToken: string;
- emailVerified: boolean;
- tenantId: string | null;
- providerData: MutableUserInfo[];
- metadata: UserMetadata;
- stsTokenManager: StsTokenManager;
- _redirectEventId?: string;
- _updateTokensIfNecessary(response: IdTokenResponse | FinalizeMfaResponse, reload?: boolean): Promise<void>;
- _assign(user: UserInternal): void;
- _clone(auth: AuthInternal): UserInternal;
- _onReload: (cb: NextFn<APIUserInfo>) => void;
- _notifyReloadListener: NextFn<APIUserInfo>;
- _startProactiveRefresh: () => void;
- _stopProactiveRefresh: () => void;
- getIdToken(forceRefresh?: boolean): Promise<string>;
- getIdTokenResult(forceRefresh?: boolean): Promise<IdTokenResult>;
- reload(): Promise<void>;
- delete(): Promise<void>;
- toJSON(): PersistedBlob;
-}
-/**
- * @internal
- */
-export interface UserCredentialInternal extends UserCredential, TaggedWithTokenResponse {
- user: UserInternal;
-}