From 63e6342d605b817f5ecc2cd8cd35c4eb51560f64 Mon Sep 17 00:00:00 2001 From: Michael Grosse Huelsewiesche Date: Tue, 5 Sep 2023 14:11:51 -0400 Subject: [PATCH] Fixing build issues --- .../node/src/lib/__tests__/oauth-util.test.ts | 9 +++++---- packages/node/src/lib/http-client.ts | 2 +- packages/node/src/lib/oauth-util.ts | 16 ++++++++++++---- yarn.lock | 13 +------------ 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/packages/node/src/lib/__tests__/oauth-util.test.ts b/packages/node/src/lib/__tests__/oauth-util.test.ts index 80672f6cc..7f0c2ec41 100644 --- a/packages/node/src/lib/__tests__/oauth-util.test.ts +++ b/packages/node/src/lib/__tests__/oauth-util.test.ts @@ -1,6 +1,7 @@ import { RefreshToken, OauthData, OauthSettings } from '../oauth-util' import { TestFetchClient } from '../../__tests__/test-helpers/create-test-analytics' import { readFileSync } from 'fs' +import { HTTPResponse } from '../http-client' const privateKey = Buffer.from(`-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDVll7uJaH322IN @@ -40,16 +41,16 @@ const createOAuthSuccess = (body?: any) => { ok: true, status: 200, statusText: 'OK', - }) as unknown as Promise + }) as unknown as Promise } -const createOAuthError = (overrides: Partial = {}) => { +const createOAuthError = (overrides: Partial = {}) => { return Promise.resolve({ ok: false, status: 400, statusText: 'Foo', ...overrides, - }) as Promise + }) as Promise } const getOauthData = () => { @@ -73,7 +74,7 @@ test('OAuth Success', async () => { fetcher.mockReturnValueOnce( createOAuthSuccess({ access_token: 'token', - expires_in: 100, + expires_in: '100', }) ) diff --git a/packages/node/src/lib/http-client.ts b/packages/node/src/lib/http-client.ts index 70b4086d0..f3c1c6b2f 100644 --- a/packages/node/src/lib/http-client.ts +++ b/packages/node/src/lib/http-client.ts @@ -26,7 +26,7 @@ export interface HTTPFetchRequest { * @link https://developer.mozilla.org/en-US/docs/Web/API/Response */ export interface HTTPResponse { - headers: Headers + headers: Record json(): Promise status: number statusText: string diff --git a/packages/node/src/lib/oauth-util.ts b/packages/node/src/lib/oauth-util.ts index 9e0e69a7f..89bb9a358 100644 --- a/packages/node/src/lib/oauth-util.ts +++ b/packages/node/src/lib/oauth-util.ts @@ -35,7 +35,7 @@ export const RefreshTokenAsync = async (data: OauthData) => { alg: 'RS256', kid: data.settings.keyId, 'Content-Type': 'application/x-www-form-urlencoded', - } + } as Record const jti = Math.floor(Math.random() * 9999).toString() const body = { @@ -83,17 +83,25 @@ export const RefreshTokenAsync = async (data: OauthData) => { const response = await data.httpClient.makeRequest(requestOptions) if (response.status === 200) { + let access_token = '' + let expires_in = 0 const result = await (response.json() as Promise<{ access_token: string expires_in: number }>) + try { + access_token = result.access_token + expires_in = result.expires_in + } catch { + throw new Error('Malformed token response - ' + result) + } data.refreshTimer = setTimeout( RefreshToken, - (result.expires_in * 1000) / 2, + (expires_in * 1000) / 2, data ) data.refreshTimer.unref() - data.token = result.access_token + data.token = access_token data.refreshPromise = undefined return } @@ -104,7 +112,7 @@ export const RefreshTokenAsync = async (data: OauthData) => { throw new Error(response.statusText) } else if (response.status == 429) { // Rate limit, wait until reset timestamp - const rateLimitResetTime = response.headers.get('X-RateLimit-Reset') + const rateLimitResetTime = response.headers['X-RateLimit-Reset'] let rateLimitDiff = 60 if (rateLimitResetTime) { rateLimitDiff = diff --git a/yarn.lock b/yarn.lock index 1882c2c7d..a27569788 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15578,7 +15578,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7": +"semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -15609,17 +15609,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.7, semver@npm:^7.3.8": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0"