From 641fd4c3de6d3248f131a09748f55a9007d7f77c Mon Sep 17 00:00:00 2001 From: Jonathan Haines Date: Mon, 9 Jun 2025 19:33:23 +1000 Subject: [PATCH] refactor(oauth-providers): enable isolated declarations (#1201) --- .changeset/giant-pets-double.md | 5 +++++ packages/oauth-providers/src/providers/discord/authFlow.ts | 2 +- packages/oauth-providers/src/providers/facebook/authFlow.ts | 2 +- packages/oauth-providers/src/providers/github/authFlow.ts | 4 ++-- packages/oauth-providers/src/providers/google/authFlow.ts | 4 ++-- packages/oauth-providers/src/providers/google/revokeToken.ts | 2 +- packages/oauth-providers/src/providers/linkedin/authFlow.ts | 4 ++-- packages/oauth-providers/src/providers/msentra/authFlow.ts | 4 ++-- .../oauth-providers/src/providers/msentra/refreshToken.ts | 2 +- packages/oauth-providers/src/providers/twitch/authFlow.ts | 2 +- packages/oauth-providers/src/providers/x/authFlow.ts | 2 +- packages/oauth-providers/tsconfig.build.json | 3 ++- 12 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 .changeset/giant-pets-double.md diff --git a/.changeset/giant-pets-double.md b/.changeset/giant-pets-double.md new file mode 100644 index 00000000..43bd8b0d --- /dev/null +++ b/.changeset/giant-pets-double.md @@ -0,0 +1,5 @@ +--- +'@hono/oauth-providers': patch +--- + +Add explicit return types diff --git a/packages/oauth-providers/src/providers/discord/authFlow.ts b/packages/oauth-providers/src/providers/discord/authFlow.ts index 26a2cfca..07b8b99a 100644 --- a/packages/oauth-providers/src/providers/discord/authFlow.ts +++ b/packages/oauth-providers/src/providers/discord/authFlow.ts @@ -113,7 +113,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() const response = (await fetch('https://discord.com/api/oauth2/@me', { headers: { diff --git a/packages/oauth-providers/src/providers/facebook/authFlow.ts b/packages/oauth-providers/src/providers/facebook/authFlow.ts index fb51f052..bd0c164d 100644 --- a/packages/oauth-providers/src/providers/facebook/authFlow.ts +++ b/packages/oauth-providers/src/providers/facebook/authFlow.ts @@ -104,7 +104,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() await this.getUserId() diff --git a/packages/oauth-providers/src/providers/github/authFlow.ts b/packages/oauth-providers/src/providers/github/authFlow.ts index 97ff687b..6f341953 100644 --- a/packages/oauth-providers/src/providers/github/authFlow.ts +++ b/packages/oauth-providers/src/providers/github/authFlow.ts @@ -49,7 +49,7 @@ export class AuthFlow { this.granted_scopes = undefined } - redirect() { + redirect(): string { const url = 'https://github.com/login/oauth/authorize?' const queryParams = toQueryParams({ @@ -114,7 +114,7 @@ export class AuthFlow { return email as string } - async getUserData() { + async getUserData(): Promise { if (!this.token?.token) { await this.getTokenFromCode() } diff --git a/packages/oauth-providers/src/providers/google/authFlow.ts b/packages/oauth-providers/src/providers/google/authFlow.ts index 9435dd7a..6455d1da 100644 --- a/packages/oauth-providers/src/providers/google/authFlow.ts +++ b/packages/oauth-providers/src/providers/google/authFlow.ts @@ -82,7 +82,7 @@ export class AuthFlow { return `https://accounts.google.com/o/oauth2/v2/auth?${parsedOptions}` } - async getTokenFromCode() { + async getTokenFromCode(): Promise { const response = (await fetch('https://oauth2.googleapis.com/token', { method: 'POST', headers: { @@ -112,7 +112,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() const response = (await fetch('https://www.googleapis.com/oauth2/v2/userinfo', { diff --git a/packages/oauth-providers/src/providers/google/revokeToken.ts b/packages/oauth-providers/src/providers/google/revokeToken.ts index 5ea8c495..3e47255b 100644 --- a/packages/oauth-providers/src/providers/google/revokeToken.ts +++ b/packages/oauth-providers/src/providers/google/revokeToken.ts @@ -1,4 +1,4 @@ -export async function revokeToken(token: string) { +export async function revokeToken(token: string): Promise { const response = await fetch(`https://oauth2.googleapis.com/revoke?token=${token}`, { method: 'POST', headers: { 'Content-type': 'application/x-www-form-urlencoded' }, diff --git a/packages/oauth-providers/src/providers/linkedin/authFlow.ts b/packages/oauth-providers/src/providers/linkedin/authFlow.ts index cdf5665b..1f63c661 100644 --- a/packages/oauth-providers/src/providers/linkedin/authFlow.ts +++ b/packages/oauth-providers/src/providers/linkedin/authFlow.ts @@ -97,7 +97,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { if (!this.token) { await this.getTokenFromCode() } @@ -117,7 +117,7 @@ export class AuthFlow { } } - async getAppToken() { + async getAppToken(): Promise { const params = toQueryParams({ grant_type: 'client_credentials', client_id: this.client_id, diff --git a/packages/oauth-providers/src/providers/msentra/authFlow.ts b/packages/oauth-providers/src/providers/msentra/authFlow.ts index 04db8f4d..a70968dd 100644 --- a/packages/oauth-providers/src/providers/msentra/authFlow.ts +++ b/packages/oauth-providers/src/providers/msentra/authFlow.ts @@ -70,7 +70,7 @@ export class AuthFlow { return `https://login.microsoft.com/${this.tenant_id}/oauth2/v2.0/authorize?${parsedOptions}` } - async getTokenFromCode() { + async getTokenFromCode(): Promise { const parsedOptions = toQueryParams({ client_id: this.client_id, client_secret: this.client_secret, @@ -104,7 +104,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() //TODO: add support for extra fields const response = (await fetch('https://graph.microsoft.com/v1.0/me', { diff --git a/packages/oauth-providers/src/providers/msentra/refreshToken.ts b/packages/oauth-providers/src/providers/msentra/refreshToken.ts index 6f94a3f4..87687918 100644 --- a/packages/oauth-providers/src/providers/msentra/refreshToken.ts +++ b/packages/oauth-providers/src/providers/msentra/refreshToken.ts @@ -12,7 +12,7 @@ export async function refreshToken({ client_secret: string tenant_id: string refresh_token: string -}) { +}): Promise { if (!refresh_token) { throw new HTTPException(400, { message: 'missing refresh token' }) } diff --git a/packages/oauth-providers/src/providers/twitch/authFlow.ts b/packages/oauth-providers/src/providers/twitch/authFlow.ts index f342e2f0..6fb8fd85 100644 --- a/packages/oauth-providers/src/providers/twitch/authFlow.ts +++ b/packages/oauth-providers/src/providers/twitch/authFlow.ts @@ -108,7 +108,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() const response = (await fetch('https://api.twitch.tv/helix/users', { headers: { diff --git a/packages/oauth-providers/src/providers/x/authFlow.ts b/packages/oauth-providers/src/providers/x/authFlow.ts index 6dabb965..810eb03b 100644 --- a/packages/oauth-providers/src/providers/x/authFlow.ts +++ b/packages/oauth-providers/src/providers/x/authFlow.ts @@ -111,7 +111,7 @@ export class AuthFlow { } } - async getUserData() { + async getUserData(): Promise { await this.getTokenFromCode() const parsedOptions = toQueryParams({ diff --git a/packages/oauth-providers/tsconfig.build.json b/packages/oauth-providers/tsconfig.build.json index ccc2f65a..a82a1266 100644 --- a/packages/oauth-providers/tsconfig.build.json +++ b/packages/oauth-providers/tsconfig.build.json @@ -4,7 +4,8 @@ "rootDir": "src", "outDir": "dist", "tsBuildInfoFile": "dist/tsconfig.build.tsbuildinfo", - "emitDeclarationOnly": false + "emitDeclarationOnly": false, + "isolatedDeclarations": true }, "include": ["src/**/*.ts"], "exclude": ["**/*.test.ts"],