Skip to content

Commit 5f4d8f7

Browse files
committed
Small fixes
1 parent 9ef36ac commit 5f4d8f7

File tree

8 files changed

+31
-50
lines changed

8 files changed

+31
-50
lines changed

common/api-review/app-check-exp.api.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ export type _AppCheckInternalComponentName = 'app-check-internal';
2020
// @public
2121
export interface AppCheckOptions {
2222
isTokenAutoRefreshEnabled?: boolean;
23-
provider: AppCheckProvider;
24-
}
25-
26-
// @public
27-
export interface AppCheckProvider {
28-
getToken: () => Promise<AppCheckToken>;
23+
provider: CustomProvider | ReCaptchaV3Provider;
2924
}
3025

3126
// @public
@@ -35,18 +30,22 @@ export interface AppCheckToken {
3530
readonly token: string;
3631
}
3732

33+
// Warning: (ae-forgotten-export) The symbol "AppCheckProvider" needs to be exported by the entry point index.d.ts
34+
//
3835
// @public
3936
export class CustomProvider implements AppCheckProvider {
4037
constructor(_customProviderOptions: CustomProviderOptions);
38+
// Warning: (ae-forgotten-export) The symbol "AppCheckTokenInternal" needs to be exported by the entry point index.d.ts
39+
//
4140
// @internal (undocumented)
42-
getToken(): Promise<AppCheckToken>;
41+
getToken(): Promise<AppCheckTokenInternal>;
4342
// @internal (undocumented)
4443
initialize(app: FirebaseApp): void;
4544
}
4645

4746
// @public
4847
export interface CustomProviderOptions {
49-
getToken(): Promise<AppCheckToken>;
48+
getToken: () => Promise<AppCheckToken>;
5049
}
5150

5251
// @public
@@ -56,7 +55,7 @@ export function initializeAppCheck(app: FirebaseApp | undefined, options: AppChe
5655
export class ReCaptchaV3Provider implements AppCheckProvider {
5756
constructor(_siteKey: string);
5857
// @internal
59-
getToken(): Promise<AppCheckToken>;
58+
getToken(): Promise<AppCheckTokenInternal>;
6059
// @internal (undocumented)
6160
initialize(app: FirebaseApp): void;
6261
}

packages-exp/app-check-exp/src/api.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@ import { getState, setState, AppCheckState } from './state';
2121
import { FirebaseApp, getApp, _getProvider } from '@firebase/app-exp';
2222
import { getModularInstance } from '@firebase/util';
2323
import { AppCheckService } from './factory';
24-
import { AppCheckProviderInternal } from './types';
24+
import { AppCheckProvider } from './types';
2525

2626
declare module '@firebase/component' {
2727
interface NameServiceMapping {
2828
'app-check-exp': AppCheckService;
2929
}
3030
}
3131

32+
export { ReCaptchaV3Provider, CustomProvider } from './providers';
33+
3234
/**
3335
* Activate AppCheck for the given app. Can be called only once per app.
3436
* @param app - the FirebaseApp to activate AppCheck for
@@ -49,11 +51,7 @@ export function initializeAppCheck(
4951
}
5052

5153
const appCheck = provider.initialize({ options });
52-
_activate(
53-
app,
54-
options.provider as AppCheckProviderInternal,
55-
options.isTokenAutoRefreshEnabled
56-
);
54+
_activate(app, options.provider, options.isTokenAutoRefreshEnabled);
5755

5856
return appCheck;
5957
}
@@ -72,7 +70,7 @@ export function initializeAppCheck(
7270
*/
7371
function _activate(
7472
app: FirebaseApp,
75-
provider: AppCheckProviderInternal,
73+
provider: AppCheckProvider,
7674
isTokenAutoRefreshEnabled?: boolean
7775
): void {
7876
const state = getState(app);
@@ -90,7 +88,7 @@ function _activate(
9088

9189
setState(app, newState);
9290

93-
(newState.provider as AppCheckProviderInternal).initialize(app);
91+
newState.provider.initialize(app);
9492
}
9593

9694
/**

packages-exp/app-check-exp/src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export { _AppCheckInternalComponentName };
2727

2828
export * from './api';
2929
export * from './public-types';
30-
export { ReCaptchaV3Provider, CustomProvider } from './providers';
3130

3231
const APP_CHECK_NAME: _AppCheckComponentName = 'app-check-exp';
3332
const APP_CHECK_NAME_INTERNAL: _AppCheckInternalComponentName =

packages-exp/app-check-exp/src/providers.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,12 @@ import { Provider } from '@firebase/component';
2020
import { issuedAtTime } from '@firebase/util';
2121
import { exchangeToken, getExchangeRecaptchaTokenRequest } from './client';
2222
import { AppCheckError, ERROR_FACTORY } from './errors';
23-
import {
24-
AppCheckProvider,
25-
AppCheckToken,
26-
CustomProviderOptions
27-
} from './public-types';
23+
import { CustomProviderOptions } from './public-types';
2824
import {
2925
getToken as getReCAPTCHAToken,
3026
initialize as initializeRecaptcha
3127
} from './recaptcha';
28+
import { AppCheckProvider, AppCheckTokenInternal } from './types';
3229

3330
/**
3431
* App Check provider that can obtain a reCAPTCHA V3 token and exchange it
@@ -48,7 +45,7 @@ export class ReCaptchaV3Provider implements AppCheckProvider {
4845
* Returns an AppCheck token.
4946
* @internal
5047
*/
51-
async getToken(): Promise<AppCheckToken> {
48+
async getToken(): Promise<AppCheckTokenInternal> {
5249
if (!this._app || !this._platformLoggerProvider) {
5350
// This should only occur if user has not called initializeAppCheck().
5451
// We don't have an appName to provide if so.
@@ -91,7 +88,7 @@ export class CustomProvider implements AppCheckProvider {
9188
/**
9289
* @internal
9390
*/
94-
async getToken(): Promise<AppCheckToken> {
91+
async getToken(): Promise<AppCheckTokenInternal> {
9592
if (!this._app) {
9693
// This should only occur if user has not called initializeAppCheck().
9794
// We don't have an appName to provide if so.
@@ -114,7 +111,7 @@ export class CustomProvider implements AppCheckProvider {
114111
? issuedAtTimeSeconds * 1000
115112
: Date.now();
116113

117-
return { ...customToken, issuedAtTimeMillis } as AppCheckToken;
114+
return { ...customToken, issuedAtTimeMillis };
118115
}
119116

120117
/**

packages-exp/app-check-exp/src/public-types.ts

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717

1818
import { FirebaseApp } from '@firebase/app-exp';
19+
import { CustomProvider, ReCaptchaV3Provider } from './providers';
1920

2021
/**
2122
* The Firebase AppCheck service interface.
@@ -30,20 +31,7 @@ export interface AppCheck {
3031
}
3132

3233
/**
33-
* An App Check provider. This can be either the built-in reCAPTCHA
34-
* provider or a custom provider. For more on custom providers, see
35-
* https://firebase.google.com/docs/app-check/web-custom-provider
36-
* @public
37-
*/
38-
export interface AppCheckProvider {
39-
/**
40-
* Returns an AppCheck token.
41-
*/
42-
getToken: () => Promise<AppCheckToken>;
43-
}
44-
45-
/**
46-
* The token returned from an {@link AppCheckProvider}.
34+
* The token returned from an AppCheck provider.
4735
* @public
4836
*/
4937
export interface AppCheckToken {
@@ -67,7 +55,7 @@ export interface AppCheckOptions {
6755
/**
6856
* reCAPTCHA provider or custom provider.
6957
*/
70-
provider: AppCheckProvider;
58+
provider: CustomProvider | ReCaptchaV3Provider;
7159
/**
7260
* If set to true, enables automatic background refresh of app check token.
7361
*/
@@ -80,8 +68,8 @@ export interface AppCheckOptions {
8068
*/
8169
export interface CustomProviderOptions {
8270
/**
83-
* Method to get an App Check token through a custom provider
71+
* Function to get an App Check token through a custom provider
8472
* service.
8573
*/
86-
getToken(): Promise<AppCheckToken>;
74+
getToken: () => Promise<AppCheckToken>;
8775
}

packages-exp/app-check-exp/src/state.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import { FirebaseApp } from '@firebase/app-exp';
1919
import {
20-
AppCheckProviderInternal,
20+
AppCheckProvider,
2121
AppCheckTokenInternal,
2222
AppCheckTokenListener
2323
} from './types';
@@ -27,7 +27,7 @@ import { GreCAPTCHA } from './recaptcha';
2727
export interface AppCheckState {
2828
activated: boolean;
2929
tokenListeners: AppCheckTokenListener[];
30-
provider?: AppCheckProviderInternal;
30+
provider?: AppCheckProvider;
3131
token?: AppCheckTokenInternal;
3232
tokenRefresher?: Refresher;
3333
reCAPTCHAState?: ReCAPTCHAState;

packages-exp/app-check-exp/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export interface AppCheckTokenInternal extends AppCheckToken {
4545
issuedAtTimeMillis: number;
4646
}
4747

48-
export interface AppCheckProviderInternal {
48+
export interface AppCheckProvider {
4949
/**
5050
* Returns an AppCheck token.
5151
*/

packages-exp/app-check-exp/test/util.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import {
2020
initializeApp,
2121
_registerComponent
2222
} from '@firebase/app-exp';
23-
import { AppCheckProvider } from '../src/public-types';
2423
import { GreCAPTCHA, RECAPTCHA_URL } from '../src/recaptcha';
2524
import {
2625
Provider,
@@ -30,6 +29,7 @@ import {
3029
} from '@firebase/component';
3130
import { PlatformLoggerService } from '@firebase/app-exp/dist/packages-exp/app-exp/src/types';
3231
import { AppCheckService } from '../src/factory';
32+
import { CustomProvider } from '../src';
3333

3434
export const FAKE_SITE_KEY = 'fake-site-key';
3535

@@ -75,14 +75,14 @@ export function getFullApp(): FirebaseApp {
7575
return app;
7676
}
7777

78-
export function getFakeCustomTokenProvider(): AppCheckProvider {
79-
return {
78+
export function getFakeCustomTokenProvider(): CustomProvider {
79+
return new CustomProvider({
8080
getToken: () =>
8181
Promise.resolve({
8282
token: 'fake-custom-app-check-token',
8383
expireTimeMillis: 1
8484
})
85-
};
85+
});
8686
}
8787

8888
export function getFakePlatformLoggingProvider(

0 commit comments

Comments
 (0)