diff --git a/.changeset/four-taxis-fry.md b/.changeset/four-taxis-fry.md new file mode 100644 index 00000000000..f12ce03f64a --- /dev/null +++ b/.changeset/four-taxis-fry.md @@ -0,0 +1,7 @@ +--- +'@firebase/app-check': patch +'@firebase/app-check-types': patch +'firebase': patch +--- + +Fixed argument typings for `activate()`. diff --git a/packages/app-check-types/index.d.ts b/packages/app-check-types/index.d.ts index b91ac5ac820..e75208c7c7b 100644 --- a/packages/app-check-types/index.d.ts +++ b/packages/app-check-types/index.d.ts @@ -32,7 +32,11 @@ export interface FirebaseAppCheck { * defaults to false and can be set in the app config. */ activate( - siteKeyOrProvider: string | AppCheckProvider, + siteKeyOrProvider: + | string + | AppCheckProvider + | CustomProvider + | ReCaptchaV3Provider, isTokenAutoRefreshEnabled?: boolean ): void; diff --git a/packages/app-check/src/factory.ts b/packages/app-check/src/factory.ts index 8c0995afbcc..18832eadc8e 100644 --- a/packages/app-check/src/factory.ts +++ b/packages/app-check/src/factory.ts @@ -18,7 +18,9 @@ import { FirebaseAppCheck, AppCheckProvider, - AppCheckTokenResult + AppCheckTokenResult, + ReCaptchaV3Provider, + CustomProvider } from '@firebase/app-check-types'; import { activate, @@ -33,6 +35,10 @@ import { addTokenListener, removeTokenListener } from './internal-api'; +import { + ReCaptchaV3Provider as ReCaptchaV3ProviderImpl, + CustomProvider as CustomProviderImpl +} from './providers'; import { Provider } from '@firebase/component'; import { PartialObserver } from '@firebase/util'; @@ -46,12 +52,23 @@ export function factory( return { app, activate: ( - siteKeyOrProvider: AppCheckProvider | string, + siteKeyOrProvider: + | ReCaptchaV3Provider + | CustomProvider + | AppCheckProvider + | string, isTokenAutoRefreshEnabled?: boolean ) => activate( app, - siteKeyOrProvider, + // Public types of ReCaptchaV3Provider/CustomProvider don't + // expose getToken() and aren't recognized as the internal + // class version of themselves. + siteKeyOrProvider as + | ReCaptchaV3ProviderImpl + | CustomProviderImpl + | AppCheckProvider + | string, platformLoggerProvider, isTokenAutoRefreshEnabled ), diff --git a/packages/firebase/index.d.ts b/packages/firebase/index.d.ts index e7580ac6ac8..71902a5c9b6 100644 --- a/packages/firebase/index.d.ts +++ b/packages/firebase/index.d.ts @@ -1580,14 +1580,18 @@ declare namespace firebase.appCheck { export interface AppCheck { /** * Activate AppCheck - * @param provider reCAPTCHA or custom token provider. + * @param provider reCAPTCHA provider, custom token provider, or reCAPTCHA site key. * @param isTokenAutoRefreshEnabled If true, the SDK automatically * refreshes App Check tokens as needed. If undefined, defaults to the * value of `app.automaticDataCollectionEnabled`, which defaults to * false and can be set in the app config. */ activate( - provider: AppCheckProvider, + provider: + | ReCaptchaV3Provider + | CustomProvider + | AppCheckProvider + | string, isTokenAutoRefreshEnabled?: boolean ): void;