Initial Commit

This commit is contained in:
2026-03-06 04:54:20 -04:00
commit 63677bfcf5
9332 changed files with 1507319 additions and 0 deletions

5
node_modules/@firebase/app/README.md generated vendored Normal file
View File

@@ -0,0 +1,5 @@
# @firebase/app
This package coordinates the communication between the different Firebase components
**This package is not intended for direct usage, and should only be used via the officially supported [firebase](https://www.npmjs.com/package/firebase) package.**

477
node_modules/@firebase/app/dist/app-public.d.ts generated vendored Normal file
View File

@@ -0,0 +1,477 @@
/**
* Firebase App
*
* @remarks This package coordinates the communication between the different Firebase components
* @packageDocumentation
*/
import { Component } from '@firebase/component';
import { ComponentContainer } from '@firebase/component';
import { FirebaseError } from '@firebase/util';
import { LogCallback } from '@firebase/logger';
import { LogLevelString } from '@firebase/logger';
import { LogOptions } from '@firebase/logger';
import { Name } from '@firebase/component';
import { Provider } from '@firebase/component';
/* Excluded from this release type: _addComponent */
/* Excluded from this release type: _addOrOverwriteComponent */
/* Excluded from this release type: _apps */
/* Excluded from this release type: _clearComponents */
/* Excluded from this release type: _components */
/* Excluded from this release type: _DEFAULT_ENTRY_NAME */
/**
* Renders this app unusable and frees the resources of all associated
* services.
*
* @example
* ```javascript
* deleteApp(app)
* .then(function() {
* console.log("App deleted successfully");
* })
* .catch(function(error) {
* console.log("Error deleting app:", error);
* });
* ```
*
* @public
*/
export declare function deleteApp(app: FirebaseApp): Promise<void>;
/**
* A {@link @firebase/app#FirebaseApp} holds the initialization information for a collection of
* services.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeApp:1) | initializeApp()} to create an app.
*
* @public
*/
export declare interface FirebaseApp {
/**
* The (read-only) name for this app.
*
* The default app's name is `"[DEFAULT]"`.
*
* @example
* ```javascript
* // The default app's name is "[DEFAULT]"
* const app = initializeApp(defaultAppConfig);
* console.log(app.name); // "[DEFAULT]"
* ```
*
* @example
* ```javascript
* // A named app's name is what you provide to initializeApp()
* const otherApp = initializeApp(otherAppConfig, "other");
* console.log(otherApp.name); // "other"
* ```
*/
readonly name: string;
/**
* The (read-only) configuration options for this app. These are the original
* parameters given in {@link (initializeApp:1) | initializeApp()}.
*
* @example
* ```javascript
* const app = initializeApp(config);
* console.log(app.options.databaseURL === config.databaseURL); // true
* ```
*/
readonly options: FirebaseOptions;
/**
* The settable config flag for GDPR opt-in/opt-out
*/
automaticDataCollectionEnabled: boolean;
}
/* Excluded from this release type: _FirebaseAppInternal */
/**
* @public
*
* Configuration options given to {@link (initializeApp:1) | initializeApp()}
*/
export declare interface FirebaseAppSettings {
/**
* custom name for the Firebase App.
* The default value is `"[DEFAULT]"`.
*/
name?: string;
/**
* The settable config flag for GDPR opt-in/opt-out. Defaults to true.
*/
automaticDataCollectionEnabled?: boolean;
}
export { FirebaseError }
/**
* @public
*
* Firebase configuration object. Contains a set of parameters required by
* services in order to successfully communicate with Firebase server APIs
* and to associate client data with your Firebase project and
* Firebase application. Typically this object is populated by the Firebase
* console at project setup. See also:
* {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}.
*/
export declare interface FirebaseOptions {
/**
* An encrypted string used when calling certain APIs that don't need to
* access private user data
* (example value: `AIzaSyDOCAbC123dEf456GhI789jKl012-MnO`).
*/
apiKey?: string;
/**
* Auth domain for the project ID.
*/
authDomain?: string;
/**
* Default Realtime Database URL.
*/
databaseURL?: string;
/**
* The unique identifier for the project across all of Firebase and
* Google Cloud.
*/
projectId?: string;
/**
* The default Cloud Storage bucket name.
*/
storageBucket?: string;
/**
* Unique numerical value used to identify each sender that can send
* Firebase Cloud Messaging messages to client apps.
*/
messagingSenderId?: string;
/**
* Unique identifier for the app.
*/
appId?: string;
/**
* An ID automatically created when you enable Analytics in your
* Firebase project and register a web app. In versions 7.20.0
* and higher, this parameter is optional.
*/
measurementId?: string;
}
/**
* A {@link @firebase/app#FirebaseServerApp} holds the initialization information
* for a collection of services running in server environments.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeServerApp:1) | initializeServerApp()} to create
* an app.
*
* @public
*/
export declare interface FirebaseServerApp extends FirebaseApp {
/**
* There is no `getApp()` operation for `FirebaseServerApp`, so the name is not relevant for
* applications. However, it may be used internally, and is declared here so that
* `FirebaseServerApp` conforms to the `FirebaseApp` interface.
*/
name: string;
/**
* The (read-only) configuration settings for this server app. These are the original
* parameters given in {@link (initializeServerApp:1) | initializeServerApp()}.
*
* @example
* ```javascript
* const app = initializeServerApp(settings);
* console.log(app.settings.authIdToken === options.authIdToken); // true
* ```
*/
readonly settings: FirebaseServerAppSettings;
}
/**
* @public
*
* Configuration options given to {@link (initializeServerApp:1) | initializeServerApp()}
*/
export declare interface FirebaseServerAppSettings extends Omit<FirebaseAppSettings, 'name'> {
/**
* An optional Auth ID token used to resume a signed in user session from a client
* runtime environment.
*
* Invoking `getAuth` with a `FirebaseServerApp` configured with a validated `authIdToken`
* causes an automatic attempt to sign in the user that the `authIdToken` represents. The token
* needs to have been recently minted for this operation to succeed.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*
* If the Auth service has failed to validate the token when the Auth SDK is initialized, then an
* warning is logged to the console and the Auth SDK will not sign in a user on initialization.
*
* If a user is successfully signed in, then the Auth instance's `onAuthStateChanged` callback
* is invoked with the `User` object as per standard Auth flows. However, `User` objects
* created via an `authIdToken` do not have a refresh token. Attempted `refreshToken`
* operations fail.
*/
authIdToken?: string;
/**
* An optional App Check token. If provided, the Firebase SDKs that use App Check will utilize
* this App Check token in place of requiring an instance of App Check to be initialized.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*/
appCheckToken?: string;
/**
* An optional object. If provided, the Firebase SDK uses a `FinalizationRegistry`
* object to monitor the garbage collection status of the provided object. The
* Firebase SDK releases its reference on the `FirebaseServerApp` instance when the
* provided `releaseOnDeref` object is garbage collected.
*
* You can use this field to reduce memory management overhead for your application.
* If provided, an app running in a SSR pass does not need to perform
* `FirebaseServerApp` cleanup, so long as the reference object is deleted (by falling out of
* SSR scope, for instance.)
*
* If an object is not provided then the application must clean up the `FirebaseServerApp`
* instance by invoking `deleteApp`.
*
* If the application provides an object in this parameter, but the application is
* executed in a JavaScript engine that predates the support of `FinalizationRegistry`
* (introduced in node v14.6.0, for instance), then an error is thrown at `FirebaseServerApp`
* initialization.
*/
releaseOnDeref?: object;
}
/* Excluded from this release type: _FirebaseService */
/**
* Retrieves a {@link @firebase/app#FirebaseApp} instance.
*
* When called with no arguments, the default app is returned. When an app name
* is provided, the app corresponding to that name is returned.
*
* An exception is thrown if the app being retrieved has not yet been
* initialized.
*
* @example
* ```javascript
* // Return the default app
* const app = getApp();
* ```
*
* @example
* ```javascript
* // Return a named app
* const otherApp = getApp("otherApp");
* ```
*
* @param name - Optional name of the app to return. If no name is
* provided, the default is `"[DEFAULT]"`.
*
* @returns The app corresponding to the provided app name.
* If no app name is provided, the default app is returned.
*
* @public
*/
export declare function getApp(name?: string): FirebaseApp;
/**
* A (read-only) array of all initialized apps.
* @public
*/
export declare function getApps(): FirebaseApp[];
/* Excluded from this release type: _getProvider */
/**
* Creates and initializes a {@link @firebase/app#FirebaseApp} instance.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize default app
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* });
* ```
*
* @example
* ```javascript
*
* // Initialize another app
* const otherApp = initializeApp({
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
* }, "otherApp");
* ```
*
* @param options - Options to configure the app's services.
* @param name - Optional name of the app to initialize. If no name
* is provided, the default is `"[DEFAULT]"`.
*
* @returns The initialized app.
*
* @throws If the optional `name` parameter is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
*
* @public
*/
export declare function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @param options - Options to configure the app's services.
* @param config - FirebaseApp Configuration
*
* @throws If {@link FirebaseAppSettings.name} is defined but the value is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
* @public
*/
export declare function initializeApp(options: FirebaseOptions, config?: FirebaseAppSettings): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @public
*/
export declare function initializeApp(): FirebaseApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in
* server side rendering environments only. Initialization will fail if invoked from a
* browser environment.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize an instance of `FirebaseServerApp`.
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeServerApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* },
* {
* authIdToken: "Your Auth ID Token"
* });
* ```
*
* @param options - `Firebase.AppOptions` to configure the app's services, or a
* a `FirebaseApp` instance which contains the `AppOptions` within.
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
*
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
*
* @public
*/
export declare function initializeServerApp(options: FirebaseOptions | FirebaseApp, config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
* @throws If the `FIREBASE_OPTIONS` environment variable does not contain a valid project
* configuration required for auto-initialization.
*
* @public
*/
export declare function initializeServerApp(config?: FirebaseServerAppSettings): FirebaseServerApp;
/* Excluded from this release type: _isFirebaseApp */
/* Excluded from this release type: _isFirebaseServerApp */
/* Excluded from this release type: _isFirebaseServerAppSettings */
/**
* Sets log handler for all Firebase SDKs.
* @param logCallback - An optional custom log handler that executes user code whenever
* the Firebase SDK makes a logging call.
*
* @public
*/
export declare function onLog(logCallback: LogCallback | null, options?: LogOptions): void;
/* Excluded from this release type: _registerComponent */
/**
* Registers a library's name and version for platform logging purposes.
* @param library - Name of 1p or 3p library (e.g. firestore, angularfire)
* @param version - Current version of that library.
* @param variant - Bundle variant, e.g., node, rn, etc.
*
* @public
*/
export declare function registerVersion(libraryKeyOrName: string, version: string, variant?: string): void;
/* Excluded from this release type: _removeServiceInstance */
/**
* The current SDK version.
*
* @public
*/
export declare const SDK_VERSION: string;
/* Excluded from this release type: _serverApps */
/**
* Sets log level for all Firebase SDKs.
*
* All of the log types above the current log level are captured (i.e. if
* you set the log level to `info`, errors are logged, but `debug` and
* `verbose` logs are not).
*
* @public
*/
export declare function setLogLevel(logLevel: LogLevelString): void;
export { }

572
node_modules/@firebase/app/dist/app.d.ts generated vendored Normal file
View File

@@ -0,0 +1,572 @@
/**
* Firebase App
*
* @remarks This package coordinates the communication between the different Firebase components
* @packageDocumentation
*/
import { Component } from '@firebase/component';
import { ComponentContainer } from '@firebase/component';
import { FirebaseError } from '@firebase/util';
import { LogCallback } from '@firebase/logger';
import { LogLevelString } from '@firebase/logger';
import { LogOptions } from '@firebase/logger';
import { Name } from '@firebase/component';
import { Provider } from '@firebase/component';
/**
* @param component - the component being added to this app's container
*
* @internal
*/
export declare function _addComponent<T extends Name>(app: FirebaseApp, component: Component<T>): void;
/**
*
* @internal
*/
export declare function _addOrOverwriteComponent(app: FirebaseApp, component: Component): void;
/**
* @internal
*/
export declare const _apps: Map<string, FirebaseApp>;
/**
* Test only
*
* @internal
*/
export declare function _clearComponents(): void;
/**
* Registered components.
*
* @internal
*/
export declare const _components: Map<string, Component<any>>;
/**
* The default app name
*
* @internal
*/
export declare const _DEFAULT_ENTRY_NAME = "[DEFAULT]";
/**
* Renders this app unusable and frees the resources of all associated
* services.
*
* @example
* ```javascript
* deleteApp(app)
* .then(function() {
* console.log("App deleted successfully");
* })
* .catch(function(error) {
* console.log("Error deleting app:", error);
* });
* ```
*
* @public
*/
export declare function deleteApp(app: FirebaseApp): Promise<void>;
/**
* A {@link @firebase/app#FirebaseApp} holds the initialization information for a collection of
* services.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeApp:1) | initializeApp()} to create an app.
*
* @public
*/
export declare interface FirebaseApp {
/**
* The (read-only) name for this app.
*
* The default app's name is `"[DEFAULT]"`.
*
* @example
* ```javascript
* // The default app's name is "[DEFAULT]"
* const app = initializeApp(defaultAppConfig);
* console.log(app.name); // "[DEFAULT]"
* ```
*
* @example
* ```javascript
* // A named app's name is what you provide to initializeApp()
* const otherApp = initializeApp(otherAppConfig, "other");
* console.log(otherApp.name); // "other"
* ```
*/
readonly name: string;
/**
* The (read-only) configuration options for this app. These are the original
* parameters given in {@link (initializeApp:1) | initializeApp()}.
*
* @example
* ```javascript
* const app = initializeApp(config);
* console.log(app.options.databaseURL === config.databaseURL); // true
* ```
*/
readonly options: FirebaseOptions;
/**
* The settable config flag for GDPR opt-in/opt-out
*/
automaticDataCollectionEnabled: boolean;
}
/**
* @internal
*/
export declare interface _FirebaseAppInternal extends FirebaseApp {
container: ComponentContainer;
isDeleted: boolean;
checkDestroyed(): void;
}
/**
* @public
*
* Configuration options given to {@link (initializeApp:1) | initializeApp()}
*/
export declare interface FirebaseAppSettings {
/**
* custom name for the Firebase App.
* The default value is `"[DEFAULT]"`.
*/
name?: string;
/**
* The settable config flag for GDPR opt-in/opt-out. Defaults to true.
*/
automaticDataCollectionEnabled?: boolean;
}
export { FirebaseError }
/**
* @public
*
* Firebase configuration object. Contains a set of parameters required by
* services in order to successfully communicate with Firebase server APIs
* and to associate client data with your Firebase project and
* Firebase application. Typically this object is populated by the Firebase
* console at project setup. See also:
* {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}.
*/
export declare interface FirebaseOptions {
/**
* An encrypted string used when calling certain APIs that don't need to
* access private user data
* (example value: `AIzaSyDOCAbC123dEf456GhI789jKl012-MnO`).
*/
apiKey?: string;
/**
* Auth domain for the project ID.
*/
authDomain?: string;
/**
* Default Realtime Database URL.
*/
databaseURL?: string;
/**
* The unique identifier for the project across all of Firebase and
* Google Cloud.
*/
projectId?: string;
/**
* The default Cloud Storage bucket name.
*/
storageBucket?: string;
/**
* Unique numerical value used to identify each sender that can send
* Firebase Cloud Messaging messages to client apps.
*/
messagingSenderId?: string;
/**
* Unique identifier for the app.
*/
appId?: string;
/**
* An ID automatically created when you enable Analytics in your
* Firebase project and register a web app. In versions 7.20.0
* and higher, this parameter is optional.
*/
measurementId?: string;
}
/**
* A {@link @firebase/app#FirebaseServerApp} holds the initialization information
* for a collection of services running in server environments.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeServerApp:1) | initializeServerApp()} to create
* an app.
*
* @public
*/
export declare interface FirebaseServerApp extends FirebaseApp {
/**
* There is no `getApp()` operation for `FirebaseServerApp`, so the name is not relevant for
* applications. However, it may be used internally, and is declared here so that
* `FirebaseServerApp` conforms to the `FirebaseApp` interface.
*/
name: string;
/**
* The (read-only) configuration settings for this server app. These are the original
* parameters given in {@link (initializeServerApp:1) | initializeServerApp()}.
*
* @example
* ```javascript
* const app = initializeServerApp(settings);
* console.log(app.settings.authIdToken === options.authIdToken); // true
* ```
*/
readonly settings: FirebaseServerAppSettings;
}
/**
* @public
*
* Configuration options given to {@link (initializeServerApp:1) | initializeServerApp()}
*/
export declare interface FirebaseServerAppSettings extends Omit<FirebaseAppSettings, 'name'> {
/**
* An optional Auth ID token used to resume a signed in user session from a client
* runtime environment.
*
* Invoking `getAuth` with a `FirebaseServerApp` configured with a validated `authIdToken`
* causes an automatic attempt to sign in the user that the `authIdToken` represents. The token
* needs to have been recently minted for this operation to succeed.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*
* If the Auth service has failed to validate the token when the Auth SDK is initialized, then an
* warning is logged to the console and the Auth SDK will not sign in a user on initialization.
*
* If a user is successfully signed in, then the Auth instance's `onAuthStateChanged` callback
* is invoked with the `User` object as per standard Auth flows. However, `User` objects
* created via an `authIdToken` do not have a refresh token. Attempted `refreshToken`
* operations fail.
*/
authIdToken?: string;
/**
* An optional App Check token. If provided, the Firebase SDKs that use App Check will utilize
* this App Check token in place of requiring an instance of App Check to be initialized.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*/
appCheckToken?: string;
/**
* An optional object. If provided, the Firebase SDK uses a `FinalizationRegistry`
* object to monitor the garbage collection status of the provided object. The
* Firebase SDK releases its reference on the `FirebaseServerApp` instance when the
* provided `releaseOnDeref` object is garbage collected.
*
* You can use this field to reduce memory management overhead for your application.
* If provided, an app running in a SSR pass does not need to perform
* `FirebaseServerApp` cleanup, so long as the reference object is deleted (by falling out of
* SSR scope, for instance.)
*
* If an object is not provided then the application must clean up the `FirebaseServerApp`
* instance by invoking `deleteApp`.
*
* If the application provides an object in this parameter, but the application is
* executed in a JavaScript engine that predates the support of `FinalizationRegistry`
* (introduced in node v14.6.0, for instance), then an error is thrown at `FirebaseServerApp`
* initialization.
*/
releaseOnDeref?: object;
}
/**
* @internal
*/
export declare interface _FirebaseService {
app: FirebaseApp;
/**
* Delete the service and free it's resources - called from
* {@link @firebase/app#deleteApp | deleteApp()}
*/
_delete(): Promise<void>;
}
/**
* Retrieves a {@link @firebase/app#FirebaseApp} instance.
*
* When called with no arguments, the default app is returned. When an app name
* is provided, the app corresponding to that name is returned.
*
* An exception is thrown if the app being retrieved has not yet been
* initialized.
*
* @example
* ```javascript
* // Return the default app
* const app = getApp();
* ```
*
* @example
* ```javascript
* // Return a named app
* const otherApp = getApp("otherApp");
* ```
*
* @param name - Optional name of the app to return. If no name is
* provided, the default is `"[DEFAULT]"`.
*
* @returns The app corresponding to the provided app name.
* If no app name is provided, the default app is returned.
*
* @public
*/
export declare function getApp(name?: string): FirebaseApp;
/**
* A (read-only) array of all initialized apps.
* @public
*/
export declare function getApps(): FirebaseApp[];
/**
*
* @param app - FirebaseApp instance
* @param name - service name
*
* @returns the provider for the service with the matching name
*
* @internal
*/
export declare function _getProvider<T extends Name>(app: FirebaseApp, name: T): Provider<T>;
/**
* Creates and initializes a {@link @firebase/app#FirebaseApp} instance.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize default app
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* });
* ```
*
* @example
* ```javascript
*
* // Initialize another app
* const otherApp = initializeApp({
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
* }, "otherApp");
* ```
*
* @param options - Options to configure the app's services.
* @param name - Optional name of the app to initialize. If no name
* is provided, the default is `"[DEFAULT]"`.
*
* @returns The initialized app.
*
* @throws If the optional `name` parameter is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
*
* @public
*/
export declare function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @param options - Options to configure the app's services.
* @param config - FirebaseApp Configuration
*
* @throws If {@link FirebaseAppSettings.name} is defined but the value is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
* @public
*/
export declare function initializeApp(options: FirebaseOptions, config?: FirebaseAppSettings): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @public
*/
export declare function initializeApp(): FirebaseApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in
* server side rendering environments only. Initialization will fail if invoked from a
* browser environment.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize an instance of `FirebaseServerApp`.
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeServerApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* },
* {
* authIdToken: "Your Auth ID Token"
* });
* ```
*
* @param options - `Firebase.AppOptions` to configure the app's services, or a
* a `FirebaseApp` instance which contains the `AppOptions` within.
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
*
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
*
* @public
*/
export declare function initializeServerApp(options: FirebaseOptions | FirebaseApp, config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
* @throws If the `FIREBASE_OPTIONS` environment variable does not contain a valid project
* configuration required for auto-initialization.
*
* @public
*/
export declare function initializeServerApp(config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provide object is of type FirebaseApp.
*
* @internal
*/
export declare function _isFirebaseApp(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseApp;
/**
*
* @param obj - an object of type FirebaseApp.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerApp(obj: FirebaseApp | FirebaseServerApp | null | undefined): obj is FirebaseServerApp;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerAppSettings(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseServerAppSettings;
/**
* Sets log handler for all Firebase SDKs.
* @param logCallback - An optional custom log handler that executes user code whenever
* the Firebase SDK makes a logging call.
*
* @public
*/
export declare function onLog(logCallback: LogCallback | null, options?: LogOptions): void;
/**
*
* @param component - the component to register
* @returns whether or not the component is registered successfully
*
* @internal
*/
export declare function _registerComponent<T extends Name>(component: Component<T>): boolean;
/**
* Registers a library's name and version for platform logging purposes.
* @param library - Name of 1p or 3p library (e.g. firestore, angularfire)
* @param version - Current version of that library.
* @param variant - Bundle variant, e.g., node, rn, etc.
*
* @public
*/
export declare function registerVersion(libraryKeyOrName: string, version: string, variant?: string): void;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
* @param instanceIdentifier - service instance identifier in case the service supports multiple instances
*
* @internal
*/
export declare function _removeServiceInstance<T extends Name>(app: FirebaseApp, name: T, instanceIdentifier?: string): void;
/**
* The current SDK version.
*
* @public
*/
export declare const SDK_VERSION: string;
/**
* @internal
*/
export declare const _serverApps: Map<string, FirebaseServerApp>;
/**
* Sets log level for all Firebase SDKs.
*
* All of the log types above the current log level are captured (i.e. if
* you set the log level to `info`, errors are logged, but `debug` and
* `verbose` logs are not).
*
* @public
*/
export declare function setLogLevel(logLevel: LogLevelString): void;
export { }

235
node_modules/@firebase/app/dist/app/src/api.d.ts generated vendored Normal file
View File

@@ -0,0 +1,235 @@
/**
* @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, FirebaseServerApp, FirebaseOptions, FirebaseAppSettings, FirebaseServerAppSettings } from './public-types';
import { LogLevelString, LogCallback, LogOptions } from '@firebase/logger';
export { FirebaseError } from '@firebase/util';
/**
* The current SDK version.
*
* @public
*/
export declare const SDK_VERSION: string;
/**
* Creates and initializes a {@link @firebase/app#FirebaseApp} instance.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize default app
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* });
* ```
*
* @example
* ```javascript
*
* // Initialize another app
* const otherApp = initializeApp({
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
* }, "otherApp");
* ```
*
* @param options - Options to configure the app's services.
* @param name - Optional name of the app to initialize. If no name
* is provided, the default is `"[DEFAULT]"`.
*
* @returns The initialized app.
*
* @throws If the optional `name` parameter is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
*
* @public
*/
export declare function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @param options - Options to configure the app's services.
* @param config - FirebaseApp Configuration
*
* @throws If {@link FirebaseAppSettings.name} is defined but the value is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
* @public
*/
export declare function initializeApp(options: FirebaseOptions, config?: FirebaseAppSettings): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @public
*/
export declare function initializeApp(): FirebaseApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in
* server side rendering environments only. Initialization will fail if invoked from a
* browser environment.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize an instance of `FirebaseServerApp`.
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeServerApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* },
* {
* authIdToken: "Your Auth ID Token"
* });
* ```
*
* @param options - `Firebase.AppOptions` to configure the app's services, or a
* a `FirebaseApp` instance which contains the `AppOptions` within.
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
*
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
*
* @public
*/
export declare function initializeServerApp(options: FirebaseOptions | FirebaseApp, config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
* @throws If the `FIREBASE_OPTIONS` environment variable does not contain a valid project
* configuration required for auto-initialization.
*
* @public
*/
export declare function initializeServerApp(config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Retrieves a {@link @firebase/app#FirebaseApp} instance.
*
* When called with no arguments, the default app is returned. When an app name
* is provided, the app corresponding to that name is returned.
*
* An exception is thrown if the app being retrieved has not yet been
* initialized.
*
* @example
* ```javascript
* // Return the default app
* const app = getApp();
* ```
*
* @example
* ```javascript
* // Return a named app
* const otherApp = getApp("otherApp");
* ```
*
* @param name - Optional name of the app to return. If no name is
* provided, the default is `"[DEFAULT]"`.
*
* @returns The app corresponding to the provided app name.
* If no app name is provided, the default app is returned.
*
* @public
*/
export declare function getApp(name?: string): FirebaseApp;
/**
* A (read-only) array of all initialized apps.
* @public
*/
export declare function getApps(): FirebaseApp[];
/**
* Renders this app unusable and frees the resources of all associated
* services.
*
* @example
* ```javascript
* deleteApp(app)
* .then(function() {
* console.log("App deleted successfully");
* })
* .catch(function(error) {
* console.log("Error deleting app:", error);
* });
* ```
*
* @public
*/
export declare function deleteApp(app: FirebaseApp): Promise<void>;
/**
* Registers a library's name and version for platform logging purposes.
* @param library - Name of 1p or 3p library (e.g. firestore, angularfire)
* @param version - Current version of that library.
* @param variant - Bundle variant, e.g., node, rn, etc.
*
* @public
*/
export declare function registerVersion(libraryKeyOrName: string, version: string, variant?: string): void;
/**
* Sets log handler for all Firebase SDKs.
* @param logCallback - An optional custom log handler that executes user code whenever
* the Firebase SDK makes a logging call.
*
* @public
*/
export declare function onLog(logCallback: LogCallback | null, options?: LogOptions): void;
/**
* Sets log level for all Firebase SDKs.
*
* All of the log types above the current log level are captured (i.e. if
* you set the log level to `info`, errors are logged, but `debug` and
* `verbose` logs are not).
*
* @public
*/
export declare function setLogLevel(logLevel: LogLevelString): void;

26
node_modules/@firebase/app/dist/app/src/constants.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
/**
* @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.
*/
/**
* The default app name
*
* @internal
*/
export declare const DEFAULT_ENTRY_NAME = "[DEFAULT]";
export declare const PLATFORM_LOG_STRING: {
readonly [x: string]: "fire-core" | "fire-core-compat" | "fire-analytics" | "fire-analytics-compat" | "fire-app-check" | "fire-app-check-compat" | "fire-auth" | "fire-auth-compat" | "fire-rtdb" | "fire-data-connect" | "fire-rtdb-compat" | "fire-fn" | "fire-fn-compat" | "fire-iid" | "fire-iid-compat" | "fire-fcm" | "fire-fcm-compat" | "fire-perf" | "fire-perf-compat" | "fire-rc" | "fire-rc-compat" | "fire-gcs" | "fire-gcs-compat" | "fire-fst" | "fire-fst-compat" | "fire-vertex" | "fire-js" | "fire-js-all";
readonly 'fire-js': "fire-js";
};

67
node_modules/@firebase/app/dist/app/src/errors.d.ts generated vendored Normal file
View File

@@ -0,0 +1,67 @@
/**
* @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 { ErrorFactory } from '@firebase/util';
export declare const enum AppError {
NO_APP = "no-app",
BAD_APP_NAME = "bad-app-name",
DUPLICATE_APP = "duplicate-app",
APP_DELETED = "app-deleted",
SERVER_APP_DELETED = "server-app-deleted",
NO_OPTIONS = "no-options",
INVALID_APP_ARGUMENT = "invalid-app-argument",
INVALID_LOG_ARGUMENT = "invalid-log-argument",
IDB_OPEN = "idb-open",
IDB_GET = "idb-get",
IDB_WRITE = "idb-set",
IDB_DELETE = "idb-delete",
FINALIZATION_REGISTRY_NOT_SUPPORTED = "finalization-registry-not-supported",
INVALID_SERVER_APP_ENVIRONMENT = "invalid-server-app-environment"
}
interface ErrorParams {
[AppError.NO_APP]: {
appName: string;
};
[AppError.BAD_APP_NAME]: {
appName: string;
};
[AppError.DUPLICATE_APP]: {
appName: string;
};
[AppError.APP_DELETED]: {
appName: string;
};
[AppError.INVALID_APP_ARGUMENT]: {
appName: string;
};
[AppError.IDB_OPEN]: {
originalErrorMessage?: string;
};
[AppError.IDB_GET]: {
originalErrorMessage?: string;
};
[AppError.IDB_WRITE]: {
originalErrorMessage?: string;
};
[AppError.IDB_DELETE]: {
originalErrorMessage?: string;
};
[AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]: {
appName?: string;
};
}
export declare const ERROR_FACTORY: ErrorFactory<AppError, ErrorParams>;
export {};

View File

@@ -0,0 +1,46 @@
/**
* @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, FirebaseOptions, FirebaseAppSettings } from './public-types';
import { ComponentContainer } from '@firebase/component';
export declare class FirebaseAppImpl implements FirebaseApp {
protected readonly _options: FirebaseOptions;
protected readonly _name: string;
/**
* Original config values passed in as a constructor parameter.
* It is only used to compare with another config object to support idempotent initializeApp().
*
* Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.
*/
private readonly _config;
private _automaticDataCollectionEnabled;
protected _isDeleted: boolean;
private readonly _container;
constructor(options: FirebaseOptions, config: Required<FirebaseAppSettings>, container: ComponentContainer);
get automaticDataCollectionEnabled(): boolean;
set automaticDataCollectionEnabled(val: boolean);
get name(): string;
get options(): FirebaseOptions;
get config(): Required<FirebaseAppSettings>;
get container(): ComponentContainer;
get isDeleted(): boolean;
set isDeleted(val: boolean);
/**
* This function will throw an Error if the App has already been deleted -
* use before performing API actions on the App.
*/
protected checkDestroyed(): void;
}

View File

@@ -0,0 +1,36 @@
/**
* @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 { FirebaseServerApp, FirebaseServerAppSettings, FirebaseOptions } from './public-types';
import { ComponentContainer } from '@firebase/component';
import { FirebaseAppImpl } from './firebaseApp';
export declare class FirebaseServerAppImpl extends FirebaseAppImpl implements FirebaseServerApp {
private readonly _serverConfig;
private _finalizationRegistry;
private _refCount;
constructor(options: FirebaseOptions | FirebaseAppImpl, serverConfig: FirebaseServerAppSettings, name: string, container: ComponentContainer);
toJSON(): undefined;
get refCount(): number;
incRefCount(obj: object | undefined): void;
decRefCount(): number;
private automaticCleanup;
get settings(): FirebaseServerAppSettings;
/**
* This function will throw an Error if the App has already been deleted -
* use before performing API actions on the App.
*/
protected checkDestroyed(): void;
}

View File

@@ -0,0 +1,939 @@
/**
* @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.
*/
/**
* Provider for instance for service name T, e.g. 'auth', 'auth-internal'
* NameServiceMapping[T] is an alias for the type of the instance
*/
declare class Provider<T extends Name> {
private readonly name;
private readonly container;
private component;
private readonly instances;
private readonly instancesDeferred;
private readonly instancesOptions;
private onInitCallbacks;
constructor(name: T, container: ComponentContainer);
/**
* @param identifier A provider can provide multiple instances of a service
* if this.component.multipleInstances is true.
*/
get(identifier?: string): Promise<NameServiceMapping[T]>;
/**
*
* @param options.identifier A provider can provide multiple instances of a service
* if this.component.multipleInstances is true.
* @param options.optional If optional is false or not provided, the method throws an error when
* the service is not immediately available.
* If optional is true, the method returns null if the service is not immediately available.
*/
getImmediate(options: {
identifier?: string;
optional: true;
}): NameServiceMapping[T] | null;
getImmediate(options?: {
identifier?: string;
optional?: false;
}): NameServiceMapping[T];
getComponent(): Component<T> | null;
setComponent(component: Component<T>): void;
clearInstance(identifier?: string): void;
delete(): Promise<void>;
isComponentSet(): boolean;
isInitialized(identifier?: string): boolean;
getOptions(identifier?: string): Record<string, unknown>;
initialize(opts?: InitializeOptions): NameServiceMapping[T];
/**
*
* @param callback - a function that will be invoked after the provider has been initialized by calling provider.initialize().
* The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.
*
* @param identifier An optional instance identifier
* @returns a function to unregister the callback
*/
onInit(callback: OnInitCallBack<T>, identifier?: string): () => void;
/**
* Invoke onInit callbacks synchronously
* @param instance the service instance`
*/
private invokeOnInitCallbacks;
private getOrInitializeService;
private normalizeInstanceIdentifier;
private shouldAutoInitialize;
}
/**
* @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.
*/
/**
* ComponentContainer that provides Providers for service name T, e.g. `auth`, `auth-internal`
*/
declare class ComponentContainer {
private readonly name;
private readonly providers;
constructor(name: string);
/**
*
* @param component Component being added
* @param overwrite When a component with the same name has already been registered,
* if overwrite is true: overwrite the existing component with the new component and create a new
* provider with the new component. It can be useful in tests where you want to use different mocks
* for different tests.
* if overwrite is false: throw an exception
*/
addComponent<T extends Name>(component: Component<T>): void;
addOrOverwriteComponent<T extends Name>(component: Component<T>): void;
/**
* getProvider provides a type safe interface where it can only be called with a field name
* present in NameServiceMapping interface.
*
* Firebase SDKs providing services should extend NameServiceMapping interface to register
* themselves.
*/
getProvider<T extends Name>(name: T): Provider<T>;
getProviders(): Array<Provider<Name>>;
}
/**
* @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.
*/
declare const enum InstantiationMode {
LAZY = "LAZY",// Currently most components are LAZY in JS SDK
EAGER = "EAGER",// EAGER components are initialized immediately upon registration
EXPLICIT = "EXPLICIT"
}
/**
* PUBLIC: A public component provides a set of public APIs to customers. A service namespace will be patched
* onto `firebase` namespace. Assume the component name is `test`, customers will be able
* to get the service by calling `firebase.test()` or `app.test()` where `app` is a `FirebaseApp` instance.
*
* PRIVATE: A private component provides a set of private APIs that are used internally by other
* Firebase SDKs. No service namespace is created in `firebase` namespace and customers have no way to get them.
*/
declare const enum ComponentType {
PUBLIC = "PUBLIC",
PRIVATE = "PRIVATE",
VERSION = "VERSION"
}
interface InstanceFactoryOptions {
instanceIdentifier?: string;
options?: {};
}
type InitializeOptions = InstanceFactoryOptions;
/**
* Factory to create an instance of type T, given a ComponentContainer.
* ComponentContainer is the IOC container that provides {@link Provider}
* for dependencies.
*
* NOTE: The container only provides {@link Provider} rather than the actual instances of dependencies.
* It is useful for lazily loaded dependencies and optional dependencies.
*/
type InstanceFactory<T extends Name> = (container: ComponentContainer, options: InstanceFactoryOptions) => NameServiceMapping[T];
type onInstanceCreatedCallback<T extends Name> = (container: ComponentContainer, instanceIdentifier: string, instance: NameServiceMapping[T]) => void;
interface Dictionary {
[key: string]: unknown;
}
/**
* This interface will be extended by Firebase SDKs to provide service name and service type mapping.
* It is used as a generic constraint to ensure type safety.
*/
interface NameServiceMapping {
}
type Name = keyof NameServiceMapping;
type OnInitCallBack<T extends Name> = (instance: NameServiceMapping[T], identifier: string) => void;
/**
* @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.
*/
/**
* Component for service name T, e.g. `auth`, `auth-internal`
*/
declare class Component<T extends Name = Name> {
readonly name: T;
readonly instanceFactory: InstanceFactory<T>;
readonly type: ComponentType;
multipleInstances: boolean;
/**
* Properties to be added to the service namespace
*/
serviceProps: Dictionary;
instantiationMode: InstantiationMode;
onInstanceCreated: onInstanceCreatedCallback<T> | null;
/**
*
* @param name The public service name, e.g. app, auth, firestore, database
* @param instanceFactory Service factory responsible for creating the public interface
* @param type whether the service provided by the component is public or private
*/
constructor(name: T, instanceFactory: InstanceFactory<T>, type: ComponentType);
setInstantiationMode(mode: InstantiationMode): this;
setMultipleInstances(multipleInstances: boolean): this;
setServiceProps(props: Dictionary): this;
setInstanceCreatedCallback(callback: onInstanceCreatedCallback<T>): this;
}
/**
* @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.
*/
interface VersionService {
library: string;
version: string;
}
interface PlatformLoggerService {
getPlatformInfoString(): string;
}
interface HeartbeatService {
/**
* Called to report a heartbeat. The function will generate
* a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it
* to IndexedDB.
* Note that we only store one heartbeat per day. So if a heartbeat for today is
* already logged, subsequent calls to this function in the same day will be ignored.
*/
triggerHeartbeat(): Promise<void>;
/**
* Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.
* It also clears all heartbeats from memory as well as in IndexedDB.
*/
getHeartbeatsHeader(): Promise<string>;
}
/**
* @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.
*/
/**
* A {@link @firebase/app#FirebaseApp} holds the initialization information for a collection of
* services.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeApp:1) | initializeApp()} to create an app.
*
* @public
*/
interface FirebaseApp {
/**
* The (read-only) name for this app.
*
* The default app's name is `"[DEFAULT]"`.
*
* @example
* ```javascript
* // The default app's name is "[DEFAULT]"
* const app = initializeApp(defaultAppConfig);
* console.log(app.name); // "[DEFAULT]"
* ```
*
* @example
* ```javascript
* // A named app's name is what you provide to initializeApp()
* const otherApp = initializeApp(otherAppConfig, "other");
* console.log(otherApp.name); // "other"
* ```
*/
readonly name: string;
/**
* The (read-only) configuration options for this app. These are the original
* parameters given in {@link (initializeApp:1) | initializeApp()}.
*
* @example
* ```javascript
* const app = initializeApp(config);
* console.log(app.options.databaseURL === config.databaseURL); // true
* ```
*/
readonly options: FirebaseOptions;
/**
* The settable config flag for GDPR opt-in/opt-out
*/
automaticDataCollectionEnabled: boolean;
}
/**
* A {@link @firebase/app#FirebaseServerApp} holds the initialization information
* for a collection of services running in server environments.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeServerApp:1) | initializeServerApp()} to create
* an app.
*
* @public
*/
interface FirebaseServerApp extends FirebaseApp {
/**
* There is no `getApp()` operation for `FirebaseServerApp`, so the name is not relevant for
* applications. However, it may be used internally, and is declared here so that
* `FirebaseServerApp` conforms to the `FirebaseApp` interface.
*/
name: string;
/**
* The (read-only) configuration settings for this server app. These are the original
* parameters given in {@link (initializeServerApp:1) | initializeServerApp()}.
*
* @example
* ```javascript
* const app = initializeServerApp(settings);
* console.log(app.settings.authIdToken === options.authIdToken); // true
* ```
*/
readonly settings: FirebaseServerAppSettings;
}
/**
* @public
*
* Firebase configuration object. Contains a set of parameters required by
* services in order to successfully communicate with Firebase server APIs
* and to associate client data with your Firebase project and
* Firebase application. Typically this object is populated by the Firebase
* console at project setup. See also:
* {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}.
*/
interface FirebaseOptions {
/**
* An encrypted string used when calling certain APIs that don't need to
* access private user data
* (example value: `AIzaSyDOCAbC123dEf456GhI789jKl012-MnO`).
*/
apiKey?: string;
/**
* Auth domain for the project ID.
*/
authDomain?: string;
/**
* Default Realtime Database URL.
*/
databaseURL?: string;
/**
* The unique identifier for the project across all of Firebase and
* Google Cloud.
*/
projectId?: string;
/**
* The default Cloud Storage bucket name.
*/
storageBucket?: string;
/**
* Unique numerical value used to identify each sender that can send
* Firebase Cloud Messaging messages to client apps.
*/
messagingSenderId?: string;
/**
* Unique identifier for the app.
*/
appId?: string;
/**
* An ID automatically created when you enable Analytics in your
* Firebase project and register a web app. In versions 7.20.0
* and higher, this parameter is optional.
*/
measurementId?: string;
}
/**
* @public
*
* Configuration options given to {@link (initializeApp:1) | initializeApp()}
*/
interface FirebaseAppSettings {
/**
* custom name for the Firebase App.
* The default value is `"[DEFAULT]"`.
*/
name?: string;
/**
* The settable config flag for GDPR opt-in/opt-out. Defaults to true.
*/
automaticDataCollectionEnabled?: boolean;
}
/**
* @public
*
* Configuration options given to {@link (initializeServerApp:1) | initializeServerApp()}
*/
interface FirebaseServerAppSettings extends Omit<FirebaseAppSettings, 'name'> {
/**
* An optional Auth ID token used to resume a signed in user session from a client
* runtime environment.
*
* Invoking `getAuth` with a `FirebaseServerApp` configured with a validated `authIdToken`
* causes an automatic attempt to sign in the user that the `authIdToken` represents. The token
* needs to have been recently minted for this operation to succeed.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*
* If the Auth service has failed to validate the token when the Auth SDK is initialized, then an
* warning is logged to the console and the Auth SDK will not sign in a user on initialization.
*
* If a user is successfully signed in, then the Auth instance's `onAuthStateChanged` callback
* is invoked with the `User` object as per standard Auth flows. However, `User` objects
* created via an `authIdToken` do not have a refresh token. Attempted `refreshToken`
* operations fail.
*/
authIdToken?: string;
/**
* An optional App Check token. If provided, the Firebase SDKs that use App Check will utilize
* this App Check token in place of requiring an instance of App Check to be initialized.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*/
appCheckToken?: string;
/**
* An optional object. If provided, the Firebase SDK uses a `FinalizationRegistry`
* object to monitor the garbage collection status of the provided object. The
* Firebase SDK releases its reference on the `FirebaseServerApp` instance when the
* provided `releaseOnDeref` object is garbage collected.
*
* You can use this field to reduce memory management overhead for your application.
* If provided, an app running in a SSR pass does not need to perform
* `FirebaseServerApp` cleanup, so long as the reference object is deleted (by falling out of
* SSR scope, for instance.)
*
* If an object is not provided then the application must clean up the `FirebaseServerApp`
* instance by invoking `deleteApp`.
*
* If the application provides an object in this parameter, but the application is
* executed in a JavaScript engine that predates the support of `FinalizationRegistry`
* (introduced in node v14.6.0, for instance), then an error is thrown at `FirebaseServerApp`
* initialization.
*/
releaseOnDeref?: object;
}
/**
* @internal
*/
interface _FirebaseService {
app: FirebaseApp;
/**
* Delete the service and free it's resources - called from
* {@link @firebase/app#deleteApp | deleteApp()}
*/
_delete(): Promise<void>;
}
/**
* @internal
*/
interface _FirebaseAppInternal extends FirebaseApp {
container: ComponentContainer;
isDeleted: boolean;
checkDestroyed(): void;
}
declare module '@firebase/component' {
interface NameServiceMapping {
'app': FirebaseApp;
'app-version': VersionService;
'heartbeat': HeartbeatService;
'platform-logger': PlatformLoggerService;
}
}
/**
* @license
* Copyright 2017 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.
*/
type LogLevelString = 'debug' | 'verbose' | 'info' | 'warn' | 'error' | 'silent';
interface LogOptions {
level: LogLevelString;
}
type LogCallback = (callbackParams: LogCallbackParams) => void;
interface LogCallbackParams {
level: LogLevelString;
message: string;
args: unknown[];
type: string;
}
/**
* An object that can be injected into the environment as __FIREBASE_DEFAULTS__,
* either as a property of globalThis, a shell environment variable, or a
* cookie.
*
* This object can be used to automatically configure and initialize
* a Firebase app as well as any emulators.
*
* @public
*/
interface FirebaseDefaults {
config?: Record<string, string>;
emulatorHosts?: Record<string, string>;
_authTokenSyncURL?: string;
_authIdTokenMaxAge?: number;
/**
* Override Firebase's runtime environment detection and
* force the SDK to act as if it were in the specified environment.
*/
forceEnvironment?: 'browser' | 'node';
[key: string]: unknown;
}
declare global {
var __FIREBASE_DEFAULTS__: FirebaseDefaults | undefined;
}
declare class FirebaseError extends Error {
/** The error code for this error. */
readonly code: string;
/** Custom data for this error. */
customData?: Record<string, unknown> | undefined;
/** The custom name for all FirebaseErrors. */
readonly name: string;
constructor(
/** The error code for this error. */
code: string, message: string,
/** Custom data for this error. */
customData?: Record<string, unknown> | undefined);
}
/**
* @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.
*/
/**
* The current SDK version.
*
* @public
*/
declare const SDK_VERSION: string;
/**
* Creates and initializes a {@link @firebase/app#FirebaseApp} instance.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize default app
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* });
* ```
*
* @example
* ```javascript
*
* // Initialize another app
* const otherApp = initializeApp({
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
* }, "otherApp");
* ```
*
* @param options - Options to configure the app's services.
* @param name - Optional name of the app to initialize. If no name
* is provided, the default is `"[DEFAULT]"`.
*
* @returns The initialized app.
*
* @throws If the optional `name` parameter is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
*
* @public
*/
declare function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @param options - Options to configure the app's services.
* @param config - FirebaseApp Configuration
*
* @throws If {@link FirebaseAppSettings.name} is defined but the value is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
* @public
*/
declare function initializeApp(options: FirebaseOptions, config?: FirebaseAppSettings): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @public
*/
declare function initializeApp(): FirebaseApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in
* server side rendering environments only. Initialization will fail if invoked from a
* browser environment.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize an instance of `FirebaseServerApp`.
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeServerApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* },
* {
* authIdToken: "Your Auth ID Token"
* });
* ```
*
* @param options - `Firebase.AppOptions` to configure the app's services, or a
* a `FirebaseApp` instance which contains the `AppOptions` within.
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
*
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
*
* @public
*/
declare function initializeServerApp(options: FirebaseOptions | FirebaseApp, config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
* @throws If the `FIREBASE_OPTIONS` environment variable does not contain a valid project
* configuration required for auto-initialization.
*
* @public
*/
declare function initializeServerApp(config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Retrieves a {@link @firebase/app#FirebaseApp} instance.
*
* When called with no arguments, the default app is returned. When an app name
* is provided, the app corresponding to that name is returned.
*
* An exception is thrown if the app being retrieved has not yet been
* initialized.
*
* @example
* ```javascript
* // Return the default app
* const app = getApp();
* ```
*
* @example
* ```javascript
* // Return a named app
* const otherApp = getApp("otherApp");
* ```
*
* @param name - Optional name of the app to return. If no name is
* provided, the default is `"[DEFAULT]"`.
*
* @returns The app corresponding to the provided app name.
* If no app name is provided, the default app is returned.
*
* @public
*/
declare function getApp(name?: string): FirebaseApp;
/**
* A (read-only) array of all initialized apps.
* @public
*/
declare function getApps(): FirebaseApp[];
/**
* Renders this app unusable and frees the resources of all associated
* services.
*
* @example
* ```javascript
* deleteApp(app)
* .then(function() {
* console.log("App deleted successfully");
* })
* .catch(function(error) {
* console.log("Error deleting app:", error);
* });
* ```
*
* @public
*/
declare function deleteApp(app: FirebaseApp): Promise<void>;
/**
* Registers a library's name and version for platform logging purposes.
* @param library - Name of 1p or 3p library (e.g. firestore, angularfire)
* @param version - Current version of that library.
* @param variant - Bundle variant, e.g., node, rn, etc.
*
* @public
*/
declare function registerVersion(libraryKeyOrName: string, version: string, variant?: string): void;
/**
* Sets log handler for all Firebase SDKs.
* @param logCallback - An optional custom log handler that executes user code whenever
* the Firebase SDK makes a logging call.
*
* @public
*/
declare function onLog(logCallback: LogCallback | null, options?: LogOptions): void;
/**
* Sets log level for all Firebase SDKs.
*
* All of the log types above the current log level are captured (i.e. if
* you set the log level to `info`, errors are logged, but `debug` and
* `verbose` logs are not).
*
* @public
*/
declare function setLogLevel(logLevel: LogLevelString): void;
/**
* @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.
*/
/**
* The default app name
*
* @internal
*/
declare const DEFAULT_ENTRY_NAME = "[DEFAULT]";
/**
* @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.
*/
/**
* @internal
*/
declare const _apps: Map<string, FirebaseApp>;
/**
* @internal
*/
declare const _serverApps: Map<string, FirebaseServerApp>;
/**
* Registered components.
*
* @internal
*/
declare const _components: Map<string, Component<any>>;
/**
* @param component - the component being added to this app's container
*
* @internal
*/
declare function _addComponent<T extends Name>(app: FirebaseApp, component: Component<T>): void;
/**
*
* @internal
*/
declare function _addOrOverwriteComponent(app: FirebaseApp, component: Component): void;
/**
*
* @param component - the component to register
* @returns whether or not the component is registered successfully
*
* @internal
*/
declare function _registerComponent<T extends Name>(component: Component<T>): boolean;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
*
* @returns the provider for the service with the matching name
*
* @internal
*/
declare function _getProvider<T extends Name>(app: FirebaseApp, name: T): Provider<T>;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
* @param instanceIdentifier - service instance identifier in case the service supports multiple instances
*
* @internal
*/
declare function _removeServiceInstance<T extends Name>(app: FirebaseApp, name: T, instanceIdentifier?: string): void;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provide object is of type FirebaseApp.
*
* @internal
*/
declare function _isFirebaseApp(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseApp;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
declare function _isFirebaseServerAppSettings(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseServerAppSettings;
/**
*
* @param obj - an object of type FirebaseApp.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
declare function _isFirebaseServerApp(obj: FirebaseApp | FirebaseServerApp | null | undefined): obj is FirebaseServerApp;
/**
* Test only
*
* @internal
*/
declare function _clearComponents(): void;
export { FirebaseApp, FirebaseAppSettings, FirebaseError, FirebaseOptions, FirebaseServerApp, FirebaseServerAppSettings, SDK_VERSION, DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME, _FirebaseAppInternal, _FirebaseService, _addComponent, _addOrOverwriteComponent, _apps, _clearComponents, _components, _getProvider, _isFirebaseApp, _isFirebaseServerApp, _isFirebaseServerAppSettings, _registerComponent, _removeServiceInstance, _serverApps, deleteApp, getApp, getApps, initializeApp, initializeServerApp, onLog, registerVersion, setLogLevel };

View File

@@ -0,0 +1,89 @@
/**
* @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.
*/
import { ComponentContainer } from '@firebase/component';
import { FirebaseApp } from './public-types';
import { HeartbeatsByUserAgent, HeartbeatService, HeartbeatsInIndexedDB, HeartbeatStorage, SingleDateHeartbeat } from './types';
export declare const MAX_NUM_STORED_HEARTBEATS = 30;
export declare class HeartbeatServiceImpl implements HeartbeatService {
private readonly container;
/**
* The persistence layer for heartbeats
* Leave public for easier testing.
*/
_storage: HeartbeatStorageImpl;
/**
* In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate
* the header string.
* Stores one record per date. This will be consolidated into the standard
* format of one record per user agent string before being sent as a header.
* Populated from indexedDB when the controller is instantiated and should
* be kept in sync with indexedDB.
* Leave public for easier testing.
*/
_heartbeatsCache: HeartbeatsInIndexedDB | null;
/**
* the initialization promise for populating heartbeatCache.
* If getHeartbeatsHeader() is called before the promise resolves
* (heartbeatsCache == null), it should wait for this promise
* Leave public for easier testing.
*/
_heartbeatsCachePromise: Promise<HeartbeatsInIndexedDB>;
constructor(container: ComponentContainer);
/**
* Called to report a heartbeat. The function will generate
* a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it
* to IndexedDB.
* Note that we only store one heartbeat per day. So if a heartbeat for today is
* already logged, subsequent calls to this function in the same day will be ignored.
*/
triggerHeartbeat(): Promise<void>;
/**
* Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.
* It also clears all heartbeats from memory as well as in IndexedDB.
*
* NOTE: Consuming product SDKs should not send the header if this method
* returns an empty string.
*/
getHeartbeatsHeader(): Promise<string>;
}
export declare function extractHeartbeatsForHeader(heartbeatsCache: SingleDateHeartbeat[], maxSize?: number): {
heartbeatsToSend: HeartbeatsByUserAgent[];
unsentEntries: SingleDateHeartbeat[];
};
export declare class HeartbeatStorageImpl implements HeartbeatStorage {
app: FirebaseApp;
private _canUseIndexedDBPromise;
constructor(app: FirebaseApp);
runIndexedDBEnvironmentCheck(): Promise<boolean>;
/**
* Read all heartbeats.
*/
read(): Promise<HeartbeatsInIndexedDB>;
overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise<void>;
add(heartbeatsObject: HeartbeatsInIndexedDB): Promise<void>;
}
/**
* Calculate bytes of a HeartbeatsByUserAgent array after being wrapped
* in a platform logging header JSON object, stringified, and converted
* to base 64.
*/
export declare function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number;
/**
* Returns the index of the heartbeat with the earliest date.
* If the heartbeats array is empty, -1 is returned.
*/
export declare function getEarliestHeartbeatIdx(heartbeats: SingleDateHeartbeat[]): number;

9
node_modules/@firebase/app/dist/app/src/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
/**
* Firebase App
*
* @remarks This package coordinates the communication between the different Firebase components
* @packageDocumentation
*/
export * from './api';
export * from './internal';
export * from './public-types';

20
node_modules/@firebase/app/dist/app/src/indexeddb.d.ts generated vendored Normal file
View File

@@ -0,0 +1,20 @@
/**
* @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.
*/
import { FirebaseApp } from './public-types';
import { HeartbeatsInIndexedDB } from './types';
export declare function readHeartbeatsFromIndexedDB(app: FirebaseApp): Promise<HeartbeatsInIndexedDB | undefined>;
export declare function writeHeartbeatsToIndexedDB(app: FirebaseApp, heartbeatObject: HeartbeatsInIndexedDB): Promise<void>;

108
node_modules/@firebase/app/dist/app/src/internal.d.ts generated vendored Normal file
View File

@@ -0,0 +1,108 @@
/**
* @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, FirebaseAppSettings, FirebaseServerAppSettings, FirebaseOptions, FirebaseServerApp } from './public-types';
import { Component, Provider, Name } from '@firebase/component';
import { DEFAULT_ENTRY_NAME } from './constants';
/**
* @internal
*/
export declare const _apps: Map<string, FirebaseApp>;
/**
* @internal
*/
export declare const _serverApps: Map<string, FirebaseServerApp>;
/**
* Registered components.
*
* @internal
*/
export declare const _components: Map<string, Component<any>>;
/**
* @param component - the component being added to this app's container
*
* @internal
*/
export declare function _addComponent<T extends Name>(app: FirebaseApp, component: Component<T>): void;
/**
*
* @internal
*/
export declare function _addOrOverwriteComponent(app: FirebaseApp, component: Component): void;
/**
*
* @param component - the component to register
* @returns whether or not the component is registered successfully
*
* @internal
*/
export declare function _registerComponent<T extends Name>(component: Component<T>): boolean;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
*
* @returns the provider for the service with the matching name
*
* @internal
*/
export declare function _getProvider<T extends Name>(app: FirebaseApp, name: T): Provider<T>;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
* @param instanceIdentifier - service instance identifier in case the service supports multiple instances
*
* @internal
*/
export declare function _removeServiceInstance<T extends Name>(app: FirebaseApp, name: T, instanceIdentifier?: string): void;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provide object is of type FirebaseApp.
*
* @internal
*/
export declare function _isFirebaseApp(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseApp;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerAppSettings(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseServerAppSettings;
/**
*
* @param obj - an object of type FirebaseApp.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerApp(obj: FirebaseApp | FirebaseServerApp | null | undefined): obj is FirebaseServerApp;
/**
* Test only
*
* @internal
*/
export declare function _clearComponents(): void;
/**
* Exported in order to be used in app-compat package
*/
export { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };

18
node_modules/@firebase/app/dist/app/src/logger.d.ts generated vendored Normal file
View File

@@ -0,0 +1,18 @@
/**
* @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 { Logger } from '@firebase/logger';
export declare const logger: Logger;

View File

@@ -0,0 +1,23 @@
/**
* @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 { ComponentContainer } from '@firebase/component';
import { PlatformLoggerService } from './types';
export declare class PlatformLoggerServiceImpl implements PlatformLoggerService {
private readonly container;
constructor(container: ComponentContainer);
getPlatformInfoString(): string;
}

View File

@@ -0,0 +1,241 @@
/**
* @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 { ComponentContainer } from '@firebase/component';
import { PlatformLoggerService, VersionService, HeartbeatService } from './types';
/**
* A {@link @firebase/app#FirebaseApp} holds the initialization information for a collection of
* services.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeApp:1) | initializeApp()} to create an app.
*
* @public
*/
export interface FirebaseApp {
/**
* The (read-only) name for this app.
*
* The default app's name is `"[DEFAULT]"`.
*
* @example
* ```javascript
* // The default app's name is "[DEFAULT]"
* const app = initializeApp(defaultAppConfig);
* console.log(app.name); // "[DEFAULT]"
* ```
*
* @example
* ```javascript
* // A named app's name is what you provide to initializeApp()
* const otherApp = initializeApp(otherAppConfig, "other");
* console.log(otherApp.name); // "other"
* ```
*/
readonly name: string;
/**
* The (read-only) configuration options for this app. These are the original
* parameters given in {@link (initializeApp:1) | initializeApp()}.
*
* @example
* ```javascript
* const app = initializeApp(config);
* console.log(app.options.databaseURL === config.databaseURL); // true
* ```
*/
readonly options: FirebaseOptions;
/**
* The settable config flag for GDPR opt-in/opt-out
*/
automaticDataCollectionEnabled: boolean;
}
/**
* A {@link @firebase/app#FirebaseServerApp} holds the initialization information
* for a collection of services running in server environments.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeServerApp:1) | initializeServerApp()} to create
* an app.
*
* @public
*/
export interface FirebaseServerApp extends FirebaseApp {
/**
* There is no `getApp()` operation for `FirebaseServerApp`, so the name is not relevant for
* applications. However, it may be used internally, and is declared here so that
* `FirebaseServerApp` conforms to the `FirebaseApp` interface.
*/
name: string;
/**
* The (read-only) configuration settings for this server app. These are the original
* parameters given in {@link (initializeServerApp:1) | initializeServerApp()}.
*
* @example
* ```javascript
* const app = initializeServerApp(settings);
* console.log(app.settings.authIdToken === options.authIdToken); // true
* ```
*/
readonly settings: FirebaseServerAppSettings;
}
/**
* @public
*
* Firebase configuration object. Contains a set of parameters required by
* services in order to successfully communicate with Firebase server APIs
* and to associate client data with your Firebase project and
* Firebase application. Typically this object is populated by the Firebase
* console at project setup. See also:
* {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}.
*/
export interface FirebaseOptions {
/**
* An encrypted string used when calling certain APIs that don't need to
* access private user data
* (example value: `AIzaSyDOCAbC123dEf456GhI789jKl012-MnO`).
*/
apiKey?: string;
/**
* Auth domain for the project ID.
*/
authDomain?: string;
/**
* Default Realtime Database URL.
*/
databaseURL?: string;
/**
* The unique identifier for the project across all of Firebase and
* Google Cloud.
*/
projectId?: string;
/**
* The default Cloud Storage bucket name.
*/
storageBucket?: string;
/**
* Unique numerical value used to identify each sender that can send
* Firebase Cloud Messaging messages to client apps.
*/
messagingSenderId?: string;
/**
* Unique identifier for the app.
*/
appId?: string;
/**
* An ID automatically created when you enable Analytics in your
* Firebase project and register a web app. In versions 7.20.0
* and higher, this parameter is optional.
*/
measurementId?: string;
}
/**
* @public
*
* Configuration options given to {@link (initializeApp:1) | initializeApp()}
*/
export interface FirebaseAppSettings {
/**
* custom name for the Firebase App.
* The default value is `"[DEFAULT]"`.
*/
name?: string;
/**
* The settable config flag for GDPR opt-in/opt-out. Defaults to true.
*/
automaticDataCollectionEnabled?: boolean;
}
/**
* @public
*
* Configuration options given to {@link (initializeServerApp:1) | initializeServerApp()}
*/
export interface FirebaseServerAppSettings extends Omit<FirebaseAppSettings, 'name'> {
/**
* An optional Auth ID token used to resume a signed in user session from a client
* runtime environment.
*
* Invoking `getAuth` with a `FirebaseServerApp` configured with a validated `authIdToken`
* causes an automatic attempt to sign in the user that the `authIdToken` represents. The token
* needs to have been recently minted for this operation to succeed.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*
* If the Auth service has failed to validate the token when the Auth SDK is initialized, then an
* warning is logged to the console and the Auth SDK will not sign in a user on initialization.
*
* If a user is successfully signed in, then the Auth instance's `onAuthStateChanged` callback
* is invoked with the `User` object as per standard Auth flows. However, `User` objects
* created via an `authIdToken` do not have a refresh token. Attempted `refreshToken`
* operations fail.
*/
authIdToken?: string;
/**
* An optional App Check token. If provided, the Firebase SDKs that use App Check will utilize
* this App Check token in place of requiring an instance of App Check to be initialized.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*/
appCheckToken?: string;
/**
* An optional object. If provided, the Firebase SDK uses a `FinalizationRegistry`
* object to monitor the garbage collection status of the provided object. The
* Firebase SDK releases its reference on the `FirebaseServerApp` instance when the
* provided `releaseOnDeref` object is garbage collected.
*
* You can use this field to reduce memory management overhead for your application.
* If provided, an app running in a SSR pass does not need to perform
* `FirebaseServerApp` cleanup, so long as the reference object is deleted (by falling out of
* SSR scope, for instance.)
*
* If an object is not provided then the application must clean up the `FirebaseServerApp`
* instance by invoking `deleteApp`.
*
* If the application provides an object in this parameter, but the application is
* executed in a JavaScript engine that predates the support of `FinalizationRegistry`
* (introduced in node v14.6.0, for instance), then an error is thrown at `FirebaseServerApp`
* initialization.
*/
releaseOnDeref?: object;
}
/**
* @internal
*/
export interface _FirebaseService {
app: FirebaseApp;
/**
* Delete the service and free it's resources - called from
* {@link @firebase/app#deleteApp | deleteApp()}
*/
_delete(): Promise<void>;
}
/**
* @internal
*/
export interface _FirebaseAppInternal extends FirebaseApp {
container: ComponentContainer;
isDeleted: boolean;
checkDestroyed(): void;
}
declare module '@firebase/component' {
interface NameServiceMapping {
'app': FirebaseApp;
'app-version': VersionService;
'heartbeat': HeartbeatService;
'platform-logger': PlatformLoggerService;
}
}

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export declare function registerCoreComponents(variant?: string): void;

View File

@@ -0,0 +1,11 @@
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
// It should be published with your NPM package. It should not be tracked by Git.
{
"tsdocVersion": "0.12",
"toolPackages": [
{
"packageName": "@microsoft/api-extractor",
"packageVersion": "0.1.2"
}
]
}

55
node_modules/@firebase/app/dist/app/src/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,55 @@
/**
* @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.
*/
export interface VersionService {
library: string;
version: string;
}
export interface PlatformLoggerService {
getPlatformInfoString(): string;
}
export interface HeartbeatService {
/**
* Called to report a heartbeat. The function will generate
* a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it
* to IndexedDB.
* Note that we only store one heartbeat per day. So if a heartbeat for today is
* already logged, subsequent calls to this function in the same day will be ignored.
*/
triggerHeartbeat(): Promise<void>;
/**
* Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.
* It also clears all heartbeats from memory as well as in IndexedDB.
*/
getHeartbeatsHeader(): Promise<string>;
}
export interface HeartbeatsByUserAgent {
agent: string;
dates: string[];
}
export interface SingleDateHeartbeat {
agent: string;
date: string;
}
export interface HeartbeatStorage {
overwrite(heartbeats: HeartbeatsInIndexedDB): Promise<void>;
add(heartbeats: HeartbeatsInIndexedDB): Promise<void>;
read(): Promise<HeartbeatsInIndexedDB>;
}
export interface HeartbeatsInIndexedDB {
lastSentHeartbeatDate?: string;
heartbeats: SingleDateHeartbeat[];
}

17
node_modules/@firebase/app/dist/app/test/setup.d.ts generated vendored Normal file
View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

26
node_modules/@firebase/app/dist/app/test/util.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
/**
* @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, _FirebaseService } from '../src/public-types';
import { ComponentType, Component } from '@firebase/component';
export declare class TestService implements _FirebaseService {
private app_;
instanceIdentifier?: string | undefined;
constructor(app_: FirebaseApp, instanceIdentifier?: string | undefined);
get app(): FirebaseApp;
_delete(): Promise<void>;
}
export declare function createTestComponent(name: string, multiInstances?: boolean, type?: ComponentType): Component;

235
node_modules/@firebase/app/dist/esm/app/src/api.d.ts generated vendored Normal file
View File

@@ -0,0 +1,235 @@
/**
* @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, FirebaseServerApp, FirebaseOptions, FirebaseAppSettings, FirebaseServerAppSettings } from './public-types';
import { LogLevelString, LogCallback, LogOptions } from '@firebase/logger';
export { FirebaseError } from '@firebase/util';
/**
* The current SDK version.
*
* @public
*/
export declare const SDK_VERSION: string;
/**
* Creates and initializes a {@link @firebase/app#FirebaseApp} instance.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize default app
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* });
* ```
*
* @example
* ```javascript
*
* // Initialize another app
* const otherApp = initializeApp({
* databaseURL: "https://<OTHER_DATABASE_NAME>.firebaseio.com",
* storageBucket: "<OTHER_STORAGE_BUCKET>.appspot.com"
* }, "otherApp");
* ```
*
* @param options - Options to configure the app's services.
* @param name - Optional name of the app to initialize. If no name
* is provided, the default is `"[DEFAULT]"`.
*
* @returns The initialized app.
*
* @throws If the optional `name` parameter is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
*
* @public
*/
export declare function initializeApp(options: FirebaseOptions, name?: string): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @param options - Options to configure the app's services.
* @param config - FirebaseApp Configuration
*
* @throws If {@link FirebaseAppSettings.name} is defined but the value is malformed or empty.
*
* @throws If a `FirebaseApp` already exists with the same name but with a different configuration.
* @public
*/
export declare function initializeApp(options: FirebaseOptions, config?: FirebaseAppSettings): FirebaseApp;
/**
* Creates and initializes a FirebaseApp instance.
*
* @public
*/
export declare function initializeApp(): FirebaseApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* The `FirebaseServerApp` is similar to `FirebaseApp`, but is intended for execution in
* server side rendering environments only. Initialization will fail if invoked from a
* browser environment.
*
* See
* {@link
* https://firebase.google.com/docs/web/setup#add_firebase_to_your_app
* | Add Firebase to your app} and
* {@link
* https://firebase.google.com/docs/web/setup#multiple-projects
* | Initialize multiple projects} for detailed documentation.
*
* @example
* ```javascript
*
* // Initialize an instance of `FirebaseServerApp`.
* // Retrieve your own options values by adding a web app on
* // https://console.firebase.google.com
* initializeServerApp({
* apiKey: "AIza....", // Auth / General Use
* authDomain: "YOUR_APP.firebaseapp.com", // Auth with popup/redirect
* databaseURL: "https://YOUR_APP.firebaseio.com", // Realtime Database
* storageBucket: "YOUR_APP.appspot.com", // Storage
* messagingSenderId: "123456789" // Cloud Messaging
* },
* {
* authIdToken: "Your Auth ID Token"
* });
* ```
*
* @param options - `Firebase.AppOptions` to configure the app's services, or a
* a `FirebaseApp` instance which contains the `AppOptions` within.
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
*
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
*
* @public
*/
export declare function initializeServerApp(options: FirebaseOptions | FirebaseApp, config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Creates and initializes a {@link @firebase/app#FirebaseServerApp} instance.
*
* @param config - Optional `FirebaseServerApp` settings.
*
* @returns The initialized `FirebaseServerApp`.
*
* @throws If invoked in an unsupported non-server environment such as a browser.
* @throws If {@link FirebaseServerAppSettings.releaseOnDeref} is defined but the runtime doesn't
* provide Finalization Registry support.
* @throws If the `FIREBASE_OPTIONS` environment variable does not contain a valid project
* configuration required for auto-initialization.
*
* @public
*/
export declare function initializeServerApp(config?: FirebaseServerAppSettings): FirebaseServerApp;
/**
* Retrieves a {@link @firebase/app#FirebaseApp} instance.
*
* When called with no arguments, the default app is returned. When an app name
* is provided, the app corresponding to that name is returned.
*
* An exception is thrown if the app being retrieved has not yet been
* initialized.
*
* @example
* ```javascript
* // Return the default app
* const app = getApp();
* ```
*
* @example
* ```javascript
* // Return a named app
* const otherApp = getApp("otherApp");
* ```
*
* @param name - Optional name of the app to return. If no name is
* provided, the default is `"[DEFAULT]"`.
*
* @returns The app corresponding to the provided app name.
* If no app name is provided, the default app is returned.
*
* @public
*/
export declare function getApp(name?: string): FirebaseApp;
/**
* A (read-only) array of all initialized apps.
* @public
*/
export declare function getApps(): FirebaseApp[];
/**
* Renders this app unusable and frees the resources of all associated
* services.
*
* @example
* ```javascript
* deleteApp(app)
* .then(function() {
* console.log("App deleted successfully");
* })
* .catch(function(error) {
* console.log("Error deleting app:", error);
* });
* ```
*
* @public
*/
export declare function deleteApp(app: FirebaseApp): Promise<void>;
/**
* Registers a library's name and version for platform logging purposes.
* @param library - Name of 1p or 3p library (e.g. firestore, angularfire)
* @param version - Current version of that library.
* @param variant - Bundle variant, e.g., node, rn, etc.
*
* @public
*/
export declare function registerVersion(libraryKeyOrName: string, version: string, variant?: string): void;
/**
* Sets log handler for all Firebase SDKs.
* @param logCallback - An optional custom log handler that executes user code whenever
* the Firebase SDK makes a logging call.
*
* @public
*/
export declare function onLog(logCallback: LogCallback | null, options?: LogOptions): void;
/**
* Sets log level for all Firebase SDKs.
*
* All of the log types above the current log level are captured (i.e. if
* you set the log level to `info`, errors are logged, but `debug` and
* `verbose` logs are not).
*
* @public
*/
export declare function setLogLevel(logLevel: LogLevelString): void;

View File

@@ -0,0 +1,26 @@
/**
* @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.
*/
/**
* The default app name
*
* @internal
*/
export declare const DEFAULT_ENTRY_NAME = "[DEFAULT]";
export declare const PLATFORM_LOG_STRING: {
readonly [x: string]: "fire-core" | "fire-core-compat" | "fire-analytics" | "fire-analytics-compat" | "fire-app-check" | "fire-app-check-compat" | "fire-auth" | "fire-auth-compat" | "fire-rtdb" | "fire-data-connect" | "fire-rtdb-compat" | "fire-fn" | "fire-fn-compat" | "fire-iid" | "fire-iid-compat" | "fire-fcm" | "fire-fcm-compat" | "fire-perf" | "fire-perf-compat" | "fire-rc" | "fire-rc-compat" | "fire-gcs" | "fire-gcs-compat" | "fire-fst" | "fire-fst-compat" | "fire-vertex" | "fire-js" | "fire-js-all";
readonly 'fire-js': "fire-js";
};

View File

@@ -0,0 +1,67 @@
/**
* @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 { ErrorFactory } from '@firebase/util';
export declare const enum AppError {
NO_APP = "no-app",
BAD_APP_NAME = "bad-app-name",
DUPLICATE_APP = "duplicate-app",
APP_DELETED = "app-deleted",
SERVER_APP_DELETED = "server-app-deleted",
NO_OPTIONS = "no-options",
INVALID_APP_ARGUMENT = "invalid-app-argument",
INVALID_LOG_ARGUMENT = "invalid-log-argument",
IDB_OPEN = "idb-open",
IDB_GET = "idb-get",
IDB_WRITE = "idb-set",
IDB_DELETE = "idb-delete",
FINALIZATION_REGISTRY_NOT_SUPPORTED = "finalization-registry-not-supported",
INVALID_SERVER_APP_ENVIRONMENT = "invalid-server-app-environment"
}
interface ErrorParams {
[AppError.NO_APP]: {
appName: string;
};
[AppError.BAD_APP_NAME]: {
appName: string;
};
[AppError.DUPLICATE_APP]: {
appName: string;
};
[AppError.APP_DELETED]: {
appName: string;
};
[AppError.INVALID_APP_ARGUMENT]: {
appName: string;
};
[AppError.IDB_OPEN]: {
originalErrorMessage?: string;
};
[AppError.IDB_GET]: {
originalErrorMessage?: string;
};
[AppError.IDB_WRITE]: {
originalErrorMessage?: string;
};
[AppError.IDB_DELETE]: {
originalErrorMessage?: string;
};
[AppError.FINALIZATION_REGISTRY_NOT_SUPPORTED]: {
appName?: string;
};
}
export declare const ERROR_FACTORY: ErrorFactory<AppError, ErrorParams>;
export {};

View File

@@ -0,0 +1,46 @@
/**
* @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, FirebaseOptions, FirebaseAppSettings } from './public-types';
import { ComponentContainer } from '@firebase/component';
export declare class FirebaseAppImpl implements FirebaseApp {
protected readonly _options: FirebaseOptions;
protected readonly _name: string;
/**
* Original config values passed in as a constructor parameter.
* It is only used to compare with another config object to support idempotent initializeApp().
*
* Updating automaticDataCollectionEnabled on the App instance will not change its value in _config.
*/
private readonly _config;
private _automaticDataCollectionEnabled;
protected _isDeleted: boolean;
private readonly _container;
constructor(options: FirebaseOptions, config: Required<FirebaseAppSettings>, container: ComponentContainer);
get automaticDataCollectionEnabled(): boolean;
set automaticDataCollectionEnabled(val: boolean);
get name(): string;
get options(): FirebaseOptions;
get config(): Required<FirebaseAppSettings>;
get container(): ComponentContainer;
get isDeleted(): boolean;
set isDeleted(val: boolean);
/**
* This function will throw an Error if the App has already been deleted -
* use before performing API actions on the App.
*/
protected checkDestroyed(): void;
}

View File

@@ -0,0 +1,36 @@
/**
* @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 { FirebaseServerApp, FirebaseServerAppSettings, FirebaseOptions } from './public-types';
import { ComponentContainer } from '@firebase/component';
import { FirebaseAppImpl } from './firebaseApp';
export declare class FirebaseServerAppImpl extends FirebaseAppImpl implements FirebaseServerApp {
private readonly _serverConfig;
private _finalizationRegistry;
private _refCount;
constructor(options: FirebaseOptions | FirebaseAppImpl, serverConfig: FirebaseServerAppSettings, name: string, container: ComponentContainer);
toJSON(): undefined;
get refCount(): number;
incRefCount(obj: object | undefined): void;
decRefCount(): number;
private automaticCleanup;
get settings(): FirebaseServerAppSettings;
/**
* This function will throw an Error if the App has already been deleted -
* use before performing API actions on the App.
*/
protected checkDestroyed(): void;
}

View File

@@ -0,0 +1,89 @@
/**
* @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.
*/
import { ComponentContainer } from '@firebase/component';
import { FirebaseApp } from './public-types';
import { HeartbeatsByUserAgent, HeartbeatService, HeartbeatsInIndexedDB, HeartbeatStorage, SingleDateHeartbeat } from './types';
export declare const MAX_NUM_STORED_HEARTBEATS = 30;
export declare class HeartbeatServiceImpl implements HeartbeatService {
private readonly container;
/**
* The persistence layer for heartbeats
* Leave public for easier testing.
*/
_storage: HeartbeatStorageImpl;
/**
* In-memory cache for heartbeats, used by getHeartbeatsHeader() to generate
* the header string.
* Stores one record per date. This will be consolidated into the standard
* format of one record per user agent string before being sent as a header.
* Populated from indexedDB when the controller is instantiated and should
* be kept in sync with indexedDB.
* Leave public for easier testing.
*/
_heartbeatsCache: HeartbeatsInIndexedDB | null;
/**
* the initialization promise for populating heartbeatCache.
* If getHeartbeatsHeader() is called before the promise resolves
* (heartbeatsCache == null), it should wait for this promise
* Leave public for easier testing.
*/
_heartbeatsCachePromise: Promise<HeartbeatsInIndexedDB>;
constructor(container: ComponentContainer);
/**
* Called to report a heartbeat. The function will generate
* a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it
* to IndexedDB.
* Note that we only store one heartbeat per day. So if a heartbeat for today is
* already logged, subsequent calls to this function in the same day will be ignored.
*/
triggerHeartbeat(): Promise<void>;
/**
* Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.
* It also clears all heartbeats from memory as well as in IndexedDB.
*
* NOTE: Consuming product SDKs should not send the header if this method
* returns an empty string.
*/
getHeartbeatsHeader(): Promise<string>;
}
export declare function extractHeartbeatsForHeader(heartbeatsCache: SingleDateHeartbeat[], maxSize?: number): {
heartbeatsToSend: HeartbeatsByUserAgent[];
unsentEntries: SingleDateHeartbeat[];
};
export declare class HeartbeatStorageImpl implements HeartbeatStorage {
app: FirebaseApp;
private _canUseIndexedDBPromise;
constructor(app: FirebaseApp);
runIndexedDBEnvironmentCheck(): Promise<boolean>;
/**
* Read all heartbeats.
*/
read(): Promise<HeartbeatsInIndexedDB>;
overwrite(heartbeatsObject: HeartbeatsInIndexedDB): Promise<void>;
add(heartbeatsObject: HeartbeatsInIndexedDB): Promise<void>;
}
/**
* Calculate bytes of a HeartbeatsByUserAgent array after being wrapped
* in a platform logging header JSON object, stringified, and converted
* to base 64.
*/
export declare function countBytes(heartbeatsCache: HeartbeatsByUserAgent[]): number;
/**
* Returns the index of the heartbeat with the earliest date.
* If the heartbeats array is empty, -1 is returned.
*/
export declare function getEarliestHeartbeatIdx(heartbeats: SingleDateHeartbeat[]): number;

View File

@@ -0,0 +1,9 @@
/**
* Firebase App
*
* @remarks This package coordinates the communication between the different Firebase components
* @packageDocumentation
*/
export * from './api';
export * from './internal';
export * from './public-types';

View File

@@ -0,0 +1,20 @@
/**
* @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.
*/
import { FirebaseApp } from './public-types';
import { HeartbeatsInIndexedDB } from './types';
export declare function readHeartbeatsFromIndexedDB(app: FirebaseApp): Promise<HeartbeatsInIndexedDB | undefined>;
export declare function writeHeartbeatsToIndexedDB(app: FirebaseApp, heartbeatObject: HeartbeatsInIndexedDB): Promise<void>;

View File

@@ -0,0 +1,108 @@
/**
* @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, FirebaseAppSettings, FirebaseServerAppSettings, FirebaseOptions, FirebaseServerApp } from './public-types';
import { Component, Provider, Name } from '@firebase/component';
import { DEFAULT_ENTRY_NAME } from './constants';
/**
* @internal
*/
export declare const _apps: Map<string, FirebaseApp>;
/**
* @internal
*/
export declare const _serverApps: Map<string, FirebaseServerApp>;
/**
* Registered components.
*
* @internal
*/
export declare const _components: Map<string, Component<any>>;
/**
* @param component - the component being added to this app's container
*
* @internal
*/
export declare function _addComponent<T extends Name>(app: FirebaseApp, component: Component<T>): void;
/**
*
* @internal
*/
export declare function _addOrOverwriteComponent(app: FirebaseApp, component: Component): void;
/**
*
* @param component - the component to register
* @returns whether or not the component is registered successfully
*
* @internal
*/
export declare function _registerComponent<T extends Name>(component: Component<T>): boolean;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
*
* @returns the provider for the service with the matching name
*
* @internal
*/
export declare function _getProvider<T extends Name>(app: FirebaseApp, name: T): Provider<T>;
/**
*
* @param app - FirebaseApp instance
* @param name - service name
* @param instanceIdentifier - service instance identifier in case the service supports multiple instances
*
* @internal
*/
export declare function _removeServiceInstance<T extends Name>(app: FirebaseApp, name: T, instanceIdentifier?: string): void;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provide object is of type FirebaseApp.
*
* @internal
*/
export declare function _isFirebaseApp(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseApp;
/**
*
* @param obj - an object of type FirebaseApp, FirebaseOptions or FirebaseAppSettings.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerAppSettings(obj: FirebaseApp | FirebaseOptions | FirebaseAppSettings): obj is FirebaseServerAppSettings;
/**
*
* @param obj - an object of type FirebaseApp.
*
* @returns true if the provided object is of type FirebaseServerAppImpl.
*
* @internal
*/
export declare function _isFirebaseServerApp(obj: FirebaseApp | FirebaseServerApp | null | undefined): obj is FirebaseServerApp;
/**
* Test only
*
* @internal
*/
export declare function _clearComponents(): void;
/**
* Exported in order to be used in app-compat package
*/
export { DEFAULT_ENTRY_NAME as _DEFAULT_ENTRY_NAME };

View File

@@ -0,0 +1,18 @@
/**
* @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 { Logger } from '@firebase/logger';
export declare const logger: Logger;

View File

@@ -0,0 +1,23 @@
/**
* @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 { ComponentContainer } from '@firebase/component';
import { PlatformLoggerService } from './types';
export declare class PlatformLoggerServiceImpl implements PlatformLoggerService {
private readonly container;
constructor(container: ComponentContainer);
getPlatformInfoString(): string;
}

View File

@@ -0,0 +1,241 @@
/**
* @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 { ComponentContainer } from '@firebase/component';
import { PlatformLoggerService, VersionService, HeartbeatService } from './types';
/**
* A {@link @firebase/app#FirebaseApp} holds the initialization information for a collection of
* services.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeApp:1) | initializeApp()} to create an app.
*
* @public
*/
export interface FirebaseApp {
/**
* The (read-only) name for this app.
*
* The default app's name is `"[DEFAULT]"`.
*
* @example
* ```javascript
* // The default app's name is "[DEFAULT]"
* const app = initializeApp(defaultAppConfig);
* console.log(app.name); // "[DEFAULT]"
* ```
*
* @example
* ```javascript
* // A named app's name is what you provide to initializeApp()
* const otherApp = initializeApp(otherAppConfig, "other");
* console.log(otherApp.name); // "other"
* ```
*/
readonly name: string;
/**
* The (read-only) configuration options for this app. These are the original
* parameters given in {@link (initializeApp:1) | initializeApp()}.
*
* @example
* ```javascript
* const app = initializeApp(config);
* console.log(app.options.databaseURL === config.databaseURL); // true
* ```
*/
readonly options: FirebaseOptions;
/**
* The settable config flag for GDPR opt-in/opt-out
*/
automaticDataCollectionEnabled: boolean;
}
/**
* A {@link @firebase/app#FirebaseServerApp} holds the initialization information
* for a collection of services running in server environments.
*
* Do not call this constructor directly. Instead, use
* {@link (initializeServerApp:1) | initializeServerApp()} to create
* an app.
*
* @public
*/
export interface FirebaseServerApp extends FirebaseApp {
/**
* There is no `getApp()` operation for `FirebaseServerApp`, so the name is not relevant for
* applications. However, it may be used internally, and is declared here so that
* `FirebaseServerApp` conforms to the `FirebaseApp` interface.
*/
name: string;
/**
* The (read-only) configuration settings for this server app. These are the original
* parameters given in {@link (initializeServerApp:1) | initializeServerApp()}.
*
* @example
* ```javascript
* const app = initializeServerApp(settings);
* console.log(app.settings.authIdToken === options.authIdToken); // true
* ```
*/
readonly settings: FirebaseServerAppSettings;
}
/**
* @public
*
* Firebase configuration object. Contains a set of parameters required by
* services in order to successfully communicate with Firebase server APIs
* and to associate client data with your Firebase project and
* Firebase application. Typically this object is populated by the Firebase
* console at project setup. See also:
* {@link https://firebase.google.com/docs/web/setup#config-object | Learn about the Firebase config object}.
*/
export interface FirebaseOptions {
/**
* An encrypted string used when calling certain APIs that don't need to
* access private user data
* (example value: `AIzaSyDOCAbC123dEf456GhI789jKl012-MnO`).
*/
apiKey?: string;
/**
* Auth domain for the project ID.
*/
authDomain?: string;
/**
* Default Realtime Database URL.
*/
databaseURL?: string;
/**
* The unique identifier for the project across all of Firebase and
* Google Cloud.
*/
projectId?: string;
/**
* The default Cloud Storage bucket name.
*/
storageBucket?: string;
/**
* Unique numerical value used to identify each sender that can send
* Firebase Cloud Messaging messages to client apps.
*/
messagingSenderId?: string;
/**
* Unique identifier for the app.
*/
appId?: string;
/**
* An ID automatically created when you enable Analytics in your
* Firebase project and register a web app. In versions 7.20.0
* and higher, this parameter is optional.
*/
measurementId?: string;
}
/**
* @public
*
* Configuration options given to {@link (initializeApp:1) | initializeApp()}
*/
export interface FirebaseAppSettings {
/**
* custom name for the Firebase App.
* The default value is `"[DEFAULT]"`.
*/
name?: string;
/**
* The settable config flag for GDPR opt-in/opt-out. Defaults to true.
*/
automaticDataCollectionEnabled?: boolean;
}
/**
* @public
*
* Configuration options given to {@link (initializeServerApp:1) | initializeServerApp()}
*/
export interface FirebaseServerAppSettings extends Omit<FirebaseAppSettings, 'name'> {
/**
* An optional Auth ID token used to resume a signed in user session from a client
* runtime environment.
*
* Invoking `getAuth` with a `FirebaseServerApp` configured with a validated `authIdToken`
* causes an automatic attempt to sign in the user that the `authIdToken` represents. The token
* needs to have been recently minted for this operation to succeed.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*
* If the Auth service has failed to validate the token when the Auth SDK is initialized, then an
* warning is logged to the console and the Auth SDK will not sign in a user on initialization.
*
* If a user is successfully signed in, then the Auth instance's `onAuthStateChanged` callback
* is invoked with the `User` object as per standard Auth flows. However, `User` objects
* created via an `authIdToken` do not have a refresh token. Attempted `refreshToken`
* operations fail.
*/
authIdToken?: string;
/**
* An optional App Check token. If provided, the Firebase SDKs that use App Check will utilize
* this App Check token in place of requiring an instance of App Check to be initialized.
*
* If the token fails local verification due to expiration or parsing errors, then a console error
* is logged at the time of initialization of the `FirebaseServerApp` instance.
*/
appCheckToken?: string;
/**
* An optional object. If provided, the Firebase SDK uses a `FinalizationRegistry`
* object to monitor the garbage collection status of the provided object. The
* Firebase SDK releases its reference on the `FirebaseServerApp` instance when the
* provided `releaseOnDeref` object is garbage collected.
*
* You can use this field to reduce memory management overhead for your application.
* If provided, an app running in a SSR pass does not need to perform
* `FirebaseServerApp` cleanup, so long as the reference object is deleted (by falling out of
* SSR scope, for instance.)
*
* If an object is not provided then the application must clean up the `FirebaseServerApp`
* instance by invoking `deleteApp`.
*
* If the application provides an object in this parameter, but the application is
* executed in a JavaScript engine that predates the support of `FinalizationRegistry`
* (introduced in node v14.6.0, for instance), then an error is thrown at `FirebaseServerApp`
* initialization.
*/
releaseOnDeref?: object;
}
/**
* @internal
*/
export interface _FirebaseService {
app: FirebaseApp;
/**
* Delete the service and free it's resources - called from
* {@link @firebase/app#deleteApp | deleteApp()}
*/
_delete(): Promise<void>;
}
/**
* @internal
*/
export interface _FirebaseAppInternal extends FirebaseApp {
container: ComponentContainer;
isDeleted: boolean;
checkDestroyed(): void;
}
declare module '@firebase/component' {
interface NameServiceMapping {
'app': FirebaseApp;
'app-version': VersionService;
'heartbeat': HeartbeatService;
'platform-logger': PlatformLoggerService;
}
}

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export declare function registerCoreComponents(variant?: string): void;

55
node_modules/@firebase/app/dist/esm/app/src/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,55 @@
/**
* @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.
*/
export interface VersionService {
library: string;
version: string;
}
export interface PlatformLoggerService {
getPlatformInfoString(): string;
}
export interface HeartbeatService {
/**
* Called to report a heartbeat. The function will generate
* a HeartbeatsByUserAgent object, update heartbeatsCache, and persist it
* to IndexedDB.
* Note that we only store one heartbeat per day. So if a heartbeat for today is
* already logged, subsequent calls to this function in the same day will be ignored.
*/
triggerHeartbeat(): Promise<void>;
/**
* Returns a base64 encoded string which can be attached to the heartbeat-specific header directly.
* It also clears all heartbeats from memory as well as in IndexedDB.
*/
getHeartbeatsHeader(): Promise<string>;
}
export interface HeartbeatsByUserAgent {
agent: string;
dates: string[];
}
export interface SingleDateHeartbeat {
agent: string;
date: string;
}
export interface HeartbeatStorage {
overwrite(heartbeats: HeartbeatsInIndexedDB): Promise<void>;
add(heartbeats: HeartbeatsInIndexedDB): Promise<void>;
read(): Promise<HeartbeatsInIndexedDB>;
}
export interface HeartbeatsInIndexedDB {
lastSentHeartbeatDate?: string;
heartbeats: SingleDateHeartbeat[];
}

View File

@@ -0,0 +1,17 @@
/**
* @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.
*/
export {};

26
node_modules/@firebase/app/dist/esm/app/test/util.d.ts generated vendored Normal file
View File

@@ -0,0 +1,26 @@
/**
* @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, _FirebaseService } from '../src/public-types';
import { ComponentType, Component } from '@firebase/component';
export declare class TestService implements _FirebaseService {
private app_;
instanceIdentifier?: string | undefined;
constructor(app_: FirebaseApp, instanceIdentifier?: string | undefined);
get app(): FirebaseApp;
_delete(): Promise<void>;
}
export declare function createTestComponent(name: string, multiInstances?: boolean, type?: ComponentType): Component;

1237
node_modules/@firebase/app/dist/esm/index.esm.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

1
node_modules/@firebase/app/dist/esm/index.esm.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

1
node_modules/@firebase/app/dist/esm/package.json generated vendored Normal file
View File

@@ -0,0 +1 @@
{"type":"module"}

1265
node_modules/@firebase/app/dist/index.cjs.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

1
node_modules/@firebase/app/dist/index.cjs.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

75
node_modules/@firebase/app/package.json generated vendored Normal file
View File

@@ -0,0 +1,75 @@
{
"name": "@firebase/app",
"version": "0.14.9",
"description": "The primary entrypoint to the Firebase JS SDK",
"author": "Firebase <firebase-support@google.com> (https://firebase.google.com/)",
"main": "dist/index.cjs.js",
"browser": "dist/esm/index.esm.js",
"module": "dist/esm/index.esm.js",
"react-native": "dist/index.cjs.js",
"exports": {
".": {
"types": "./dist/app-public.d.ts",
"require": "./dist/index.cjs.js",
"react-native": "./dist/index.cjs.js",
"default": "./dist/esm/index.esm.js"
},
"./package.json": "./package.json"
},
"files": [
"dist"
],
"scripts": {
"lint": "eslint -c .eslintrc.js '**/*.ts' --ignore-path '../../.gitignore'",
"lint:fix": "eslint --fix -c .eslintrc.js '**/*.ts' --ignore-path '../../.gitignore'",
"build": "rollup -c && yarn api-report",
"build:release": "rollup -c rollup.config.release.js && yarn api-report && yarn typings:public",
"build:deps": "lerna run --scope @firebase/app --include-dependencies build",
"dev": "rollup -c -w",
"test": "run-p --npm-path npm lint test:all",
"test:ci": "node ../../scripts/run_tests_in_ci.js -s test:all",
"test:all": "run-p --npm-path npm test:browser test:node",
"test:browser": "karma start",
"test:node": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\"}' nyc --reporter lcovonly -- mocha src/**/*.test.ts --config ../../config/mocharc.node.js",
"trusted-type-check": "tsec -p tsconfig.json --noEmit",
"api-report": "api-extractor run --local --verbose",
"doc": "api-documenter markdown --input temp --output docs",
"build:doc": "yarn build && yarn doc",
"typings:public": "node ../../scripts/build/use_typings.js ./dist/app-public.d.ts",
"typings:internal": "node ../../scripts/build/use_typings.js ./dist/app.d.ts"
},
"dependencies": {
"@firebase/util": "1.14.0",
"@firebase/logger": "0.5.0",
"@firebase/component": "0.7.1",
"idb": "7.1.1",
"tslib": "^2.1.0"
},
"license": "Apache-2.0",
"devDependencies": {
"@rollup/plugin-json": "6.1.0",
"rollup": "2.79.2",
"rollup-plugin-replace": "2.2.0",
"rollup-plugin-typescript2": "0.36.0",
"rollup-plugin-dts": "5.3.1",
"typescript": "5.5.4"
},
"repository": {
"directory": "packages/app",
"type": "git",
"url": "git+https://github.com/firebase/firebase-js-sdk.git"
},
"bugs": {
"url": "https://github.com/firebase/firebase-js-sdk/issues"
},
"typings": "./dist/app-public.d.ts",
"nyc": {
"extension": [
".ts"
],
"reportDir": "./coverage/node"
},
"engines": {
"node": ">=20.0.0"
}
}