mirror of
https://github.com/hanzoai/firebase-js-sdk.git
synced 2026-09-24 16:59:10 +00:00
* Split storage and storage-compat (#5271) * separate storage-compat from storage * commit * fix tests * wat? * build storage-compat * save * fixing some compat tests * format * update import path * format * get compat tests to work * format * update package json * cleanup * format * address comments * Update packages/storage-compat/test/unit/service.test.ts Co-authored-by: Christina Holland <[email protected]> * add missing dev dep * Update packages/storage-compat/package.json * Update packages/storage-compat/package.json * Update deps after v8 release * update compat version * Split database and database-compat (#5276) * compile database * pass database tests * compile and test database-compat * pass all tests * prettier * cleanup * fix lint * address comments * what is going on with ci * use correct case in import path * uppercase * rename * fix component name * Repo refactoring for v9 (#5325) * rename folders * rename folders * migrate app and app-compat * migrate installations and analytics * migrate app check * migrate auth * migrate functions * migrate messaging * migrate performance * migrate remoteconfig * remove v8 code * update versions * migrate firebase * fix merge issues * save * fix firebase builds * update changeset config * update build scripts * update release script * fix functions typings * remove redundant typings * update path * treat external dependencies correctly * fix lint * remove firestore-compat references * fix build issues * update build scripts * update pkg json * fix test * fix some tests * fix some tests * fix integration tests * fixes * fix dep * update ci tests * resolve todos * remove exp references * docgen build * export FirebaseError (#5349) * firebase packaging update (#5348) * Fei v9 main firestore (#5319) * compile firestore * update typings path * compile firestore compat * lint compat * make test work * get most tests work * build * remove special paths * update firestore-compat pkg json * fix merge issues * Simplify bundles * Prettier * Fix Bundle compile * Fix build * address comments * console build * Fix all tests * Prettier * fix merge issues * fix typo * update paths * app-exp * fix lint * correct path * fix * fix compat lint * fix firestore integration * fix workflow * update dep * Always block on Auth (#5340) * Always block on Auth * Don't block on token if already recevied * fix lint * build firestore * remove memory only tests * fix firebase integration tests * enable more build and tests * add firestore-compat to firebase dep * fix auth compat class * enable auth test * auth package doc * Update API reports Co-authored-by: Sebastian Schmidt <[email protected]> Co-authored-by: Feiyang1 <[email protected]> * rebasing * Create registerMessagingCompat.ts * Add changeset for v9 (#5350) * add changeset * publish messaging interop * add firestore bumps * update changeset * Revert "Create registerMessagingCompat.ts" This reverts commit 0b95a5167e403ffc0dbcd9dd7dcb7cda754e510d. * Revert "rebasing" This reverts commit a8bf697157aaa29e8450acb626aae81ad5b542e1. * Update index.d.ts (#5355) * Fix Context Check in `Messaging-Compat` (#5353) * Add Rules Unit Testing v2 skeleton for v9 release (#5352) * Reset package for next major version. * Switch emulator script to node-fetch. * Migrate the other request call to fetch. * Update packages/rules-unit-testing/package.json Co-authored-by: Feiyang <[email protected]> * Create stale-ducks-live.md * Revert version change. Co-authored-by: Feiyang <[email protected]> * fix import path (#5356) * Add new types and function stubs for RUT vNext. (#5316) * Add new types and function stubs. * Fix types for testEnv.emulators. * Add util functions. * Add withFunctionTriggersDisabled overloads. * Improve typing for EmulatorConfig. * Fix tests. * Rename test_environment.ts to initialize.ts. * Add a dummy test to make CI pass. * Implement emulators discovery in RUTv2. (#5334) * Add new types and function stubs. * Fix types for testEnv.emulators. * Add util functions. * Add withFunctionTriggersDisabled overloads. * Improve typing for EmulatorConfig. * Fix tests. * Rename test_environment.ts to initialize.ts. * Add a dummy test to make CI pass. * Implement emulators discovery. * Use URL object from global. * Fix unreachable error code. * Implement most of RUTv2 features. (#5343) * Implement most of RUTv2 features. * Switch to compat instances. * Remove legacy code. * Use public typings for release (#5358) * use public typings for storage * use public typings for database * Implement rest of RUTv2 features. (#5360) * Implement loading rules and withFunctionTriggersDisabled. * Implement clearFirestore and storage. * Add missing await. * Add default bucketUrl. * Use alternative method to clear bucket. * Use default param (review feedback). * Storage typing updates (#5359) * rename to StorageError * more type safety * Update API reports * update api report Co-authored-by: Feiyang1 <[email protected]> * correct component name * fix installtions-compat typing * remove rules-unit-testing from ignore list * reenable things * support mjs files * correct matching pattern * transform only @firebase/util * use public types for database doc * transform all but compat packages Co-authored-by: Sebastian Schmidt <[email protected]> Co-authored-by: Feiyang1 <[email protected]> Co-authored-by: kai <[email protected]> Co-authored-by: Yuchen Shi <[email protected]> Co-authored-by: Kai Wu <[email protected]>
151 lines
4.4 KiB
TypeScript
151 lines
4.4 KiB
TypeScript
/**
|
|
* @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 { PartialObserver, Unsubscribe } from '@firebase/util';
|
|
import { FirebaseApp } from '@firebase/app-types';
|
|
import { Provider } from '@firebase/component';
|
|
|
|
export interface FirebaseAppCheck {
|
|
/** The `FirebaseApp` associated with this instance. */
|
|
app: FirebaseApp;
|
|
|
|
/**
|
|
* Activate AppCheck
|
|
* @param siteKeyOrProvider - reCAPTCHA sitekey or custom token provider
|
|
* @param isTokenAutoRefreshEnabled - If true, enables SDK to automatically
|
|
* refresh AppCheck token as needed. If undefined, the value will default
|
|
* to the value of `app.automaticDataCollectionEnabled`. That property
|
|
* defaults to false and can be set in the app config.
|
|
*/
|
|
activate(
|
|
siteKeyOrProvider:
|
|
| string
|
|
| AppCheckProvider
|
|
| CustomProvider
|
|
| ReCaptchaV3Provider,
|
|
isTokenAutoRefreshEnabled?: boolean
|
|
): void;
|
|
|
|
/**
|
|
*
|
|
* @param isTokenAutoRefreshEnabled - If true, the SDK automatically
|
|
* refreshes App Check tokens as needed. This overrides any value set
|
|
* during `activate()`.
|
|
*/
|
|
setTokenAutoRefreshEnabled(isTokenAutoRefreshEnabled: boolean): void;
|
|
|
|
/**
|
|
* Get the current App Check token. Attaches to the most recent
|
|
* in-flight request if one is present. Returns null if no token
|
|
* is present and no token requests are in flight.
|
|
*
|
|
* @param forceRefresh - If true, will always try to fetch a fresh token.
|
|
* If false, will use a cached token if found in storage.
|
|
*/
|
|
getToken(forceRefresh?: boolean): Promise<AppCheckTokenResult>;
|
|
|
|
/**
|
|
* Registers a listener to changes in the token state. There can be more
|
|
* than one listener registered at the same time for one or more
|
|
* App Check instances. The listeners call back on the UI thread whenever
|
|
* the current token associated with this App Check instance changes.
|
|
*
|
|
* @returns A function that unsubscribes this listener.
|
|
*/
|
|
onTokenChanged(observer: PartialObserver<AppCheckTokenResult>): Unsubscribe;
|
|
|
|
/**
|
|
* Registers a listener to changes in the token state. There can be more
|
|
* than one listener registered at the same time for one or more
|
|
* App Check instances. The listeners call back on the UI thread whenever
|
|
* the current token associated with this App Check instance changes.
|
|
*
|
|
* @returns A function that unsubscribes this listener.
|
|
*/
|
|
onTokenChanged(
|
|
onNext: (tokenResult: AppCheckTokenResult) => void,
|
|
onError?: (error: Error) => void,
|
|
onCompletion?: () => void
|
|
): Unsubscribe;
|
|
}
|
|
|
|
/**
|
|
* An App Check provider. This can be either the built-in reCAPTCHA provider
|
|
* or a custom provider. For more on custom providers, see
|
|
* https://firebase.google.com/docs/app-check/web-custom-provider
|
|
*/
|
|
interface AppCheckProvider {
|
|
/**
|
|
* Returns an AppCheck token.
|
|
*/
|
|
getToken(): Promise<AppCheckToken>;
|
|
}
|
|
|
|
export class ReCaptchaV3Provider {
|
|
/**
|
|
* @param siteKey - ReCAPTCHA v3 site key (public key).
|
|
*/
|
|
constructor(siteKey: string);
|
|
}
|
|
/*
|
|
* Custom token provider.
|
|
*/
|
|
export class CustomProvider {
|
|
/**
|
|
* @param options - Options for creating the custom provider.
|
|
*/
|
|
constructor(options: CustomProviderOptions);
|
|
}
|
|
interface CustomProviderOptions {
|
|
/**
|
|
* Function to get an App Check token through a custom provider
|
|
* service.
|
|
*/
|
|
getToken: () => Promise<AppCheckToken>;
|
|
}
|
|
|
|
/**
|
|
* The token returned from an `AppCheckProvider`.
|
|
*/
|
|
interface AppCheckToken {
|
|
/**
|
|
* The token string in JWT format.
|
|
*/
|
|
readonly token: string;
|
|
/**
|
|
* The local timestamp after which the token will expire.
|
|
*/
|
|
readonly expireTimeMillis: number;
|
|
}
|
|
|
|
/**
|
|
* Result returned by `getToken()`.
|
|
*/
|
|
interface AppCheckTokenResult {
|
|
/**
|
|
* The token string in JWT format.
|
|
*/
|
|
readonly token: string;
|
|
}
|
|
|
|
export type AppCheckComponentName = 'appCheck';
|
|
declare module '@firebase/component' {
|
|
interface NameServiceMapping {
|
|
'appCheck-compat': FirebaseAppCheck;
|
|
}
|
|
}
|