From 7f17074d161404637b503a2c7dafb29dd8eefea5 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Fri, 11 Oct 2024 15:40:54 +0200 Subject: [PATCH] chore: :arrow_up: Upgrade dependencies --- bun.lockb | Bin 290832 -> 291136 bytes drizzle/db.ts | 6 +- package.json | 22 +++---- plugins/openid/utils.ts | 135 +++++++++++++++++++--------------------- 4 files changed, 79 insertions(+), 84 deletions(-) diff --git a/bun.lockb b/bun.lockb index 7e07be7e080e07bad0d4d0a0392d9608a4e950dd..1ee5766067d597ff7526b642a48a331242516d43 100755 GIT binary patch delta 33334 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 bJO0qHS%eNJ$FlBmRsqtz2W&x{)%X7k^{n>f diff --git a/drizzle/db.ts b/drizzle/db.ts index 87ad431e..5bbd530b 100644 --- a/drizzle/db.ts +++ b/drizzle/db.ts @@ -32,8 +32,10 @@ export const db = ? withReplicas( drizzle(primaryDb, { schema }), replicas.map((r) => drizzle(r, { schema })) as [ - NodePgDatabase, - ...NodePgDatabase[], + // biome-ignore lint/style/useNamingConvention: + NodePgDatabase & { $client: Pool }, + // biome-ignore lint/style/useNamingConvention: + ...(NodePgDatabase & { $client: Pool })[], ], ) : drizzle(primaryDb, { schema }); diff --git a/package.json b/package.json index a4b9dbc8..77e441d9 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ }, "devDependencies": { "@biomejs/biome": "^1.9.3", - "@types/bun": "^1.1.10", + "@types/bun": "^1.1.11", "@types/cli-progress": "^3.11.6", "@types/cli-table": "^0.3.4", "@types/html-to-text": "^9.0.4", @@ -87,10 +87,10 @@ "@types/mime-types": "^2.1.4", "@types/pg": "^8.11.10", "@types/qs": "^6.9.16", - "drizzle-kit": "^0.24.2", - "oclif": "^4.15.5", + "drizzle-kit": "^0.25.0", + "oclif": "^4.15.6", "ts-prune": "^0.10.3", - "typescript": "^5.6.2", + "typescript": "^5.6.3", "zod-to-json-schema": "^3.23.3" }, "peerDependencies": { @@ -99,7 +99,7 @@ "dependencies": { "@bradenmacdonald/s3-lite-client": "npm:@jsr/bradenmacdonald__s3-lite-client", "@hackmd/markdown-it-task-lists": "^2.1.4", - "@hono/hono": "npm:@jsr/hono__hono@4.6.3", + "@hono/hono": "npm:@jsr/hono__hono@4.6.4", "@hono/prometheus": "^1.0.1", "@hono/swagger-ui": "^0.4.1", "@hono/zod-openapi": "^0.16.4", @@ -108,27 +108,27 @@ "@json2csv/plainjs": "^7.0.6", "@logtape/logtape": "npm:@jsr/logtape__logtape@0.6.3", "@oclif/core": "^4.0.27", - "@sentry/bun": "^8.33.1", + "@sentry/bun": "^8.34.0", "@tufjs/canonical-json": "^2.0.0", "@versia/client": "^0.1.0", "@versia/federation": "^0.1.1-rc.4", "@versia/kit": "workspace:*", "altcha-lib": "^1.1.0", "blurhash": "^2.0.5", - "bullmq": "^5.16.0", + "bullmq": "^5.19.0", "c12": "^2.0.1", "chalk": "^5.3.0", "cli-progress": "^3.12.0", "cli-table": "^0.3.11", "confbox": "^0.1.8", - "drizzle-orm": "^0.33.0", + "drizzle-orm": "^0.34.1", "extract-zip": "^2.0.1", - "hono": "npm:@jsr/hono__hono@4.6.3", + "hono": "npm:@jsr/hono__hono@4.6.4", "html-to-text": "^9.0.5", "ioredis": "^5.4.1", "ip-matching": "^2.1.2", "iso-639-1": "^3.1.3", - "jose": "^5.9.3", + "jose": "^5.9.4", "linkify-html": "^4.1.3", "linkify-string": "^4.1.3", "linkifyjs": "^4.1.3", @@ -138,7 +138,7 @@ "markdown-it-container": "^4.0.0", "markdown-it-toc-done-right": "^4.2.0", "mime-types": "^2.1.35", - "oauth4webapi": "^2.17.0", + "oauth4webapi": "^3.0.0", "ora": "^8.1.0", "pg": "^8.13.0", "prom-client": "^15.1.3", diff --git a/plugins/openid/utils.ts b/plugins/openid/utils.ts index 79e6b565..440e5655 100644 --- a/plugins/openid/utils.ts +++ b/plugins/openid/utils.ts @@ -1,14 +1,15 @@ import { db } from "@versia/kit/db"; import { + type AuthorizationResponseError, type AuthorizationServer, - type OAuth2Error, - type OpenIDTokenEndpointResponse, + ClientSecretPost, + type ResponseBodyError, + type TokenEndpointResponse, authorizationCodeGrantRequest, discoveryRequest, expectNoState, getValidatedIdTokenClaims, - isOAuth2Error, - processAuthorizationCodeOpenIDResponse, + processAuthorizationCodeResponse, processDiscoveryResponse, processUserInfoResponse, userInfoRequest, @@ -47,14 +48,12 @@ const getAuthServer = (issuerUrl: URL): Promise => { const getParameters = ( authServer: AuthorizationServer, clientId: string, - clientSecret: string, currentUrl: URL, -): URLSearchParams | OAuth2Error => { +): URLSearchParams => { return validateAuthResponse( authServer, { client_id: clientId, - client_secret: clientSecret, }, currentUrl, expectNoState, @@ -73,8 +72,8 @@ const getOIDCResponse = ( authServer, { client_id: clientId, - client_secret: clientSecret, }, + ClientSecretPost(clientSecret), parameters, redirectUri, codeVerifier, @@ -84,14 +83,12 @@ const getOIDCResponse = ( const processOIDCResponse = ( authServer: AuthorizationServer, clientId: string, - clientSecret: string, oidcResponse: Response, -): Promise => { - return processAuthorizationCodeOpenIDResponse( +): Promise => { + return processAuthorizationCodeResponse( authServer, { client_id: clientId, - client_secret: clientSecret, }, oidcResponse, ); @@ -100,7 +97,6 @@ const processOIDCResponse = ( const getUserInfo = ( authServer: AuthorizationServer, clientId: string, - clientSecret: string, accessToken: string, sub: string, ) => { @@ -108,7 +104,6 @@ const getUserInfo = ( authServer, { client_id: clientId, - client_secret: clientSecret, }, accessToken, ).then( @@ -117,7 +112,6 @@ const getUserInfo = ( authServer, { client_id: clientId, - client_secret: clientId, }, sub, res, @@ -146,67 +140,66 @@ export const automaticOidcFlow = async ( return errorFn("invalid_request", "Invalid flow", null); } - const issuerUrl = new URL(issuer.url); + try { + const issuerUrl = new URL(issuer.url); - const authServer = await getAuthServer(issuerUrl); + const authServer = await getAuthServer(issuerUrl); - const parameters = await getParameters( - authServer, - issuer.client_id, - issuer.client_secret, - currentUrl, - ); + const parameters = await getParameters( + authServer, + issuer.client_id, + currentUrl, + ); - if (isOAuth2Error(parameters)) { + const oidcResponse = await getOIDCResponse( + authServer, + issuer.client_id, + issuer.client_secret, + redirectUrl.toString(), + flow.codeVerifier, + parameters, + ); + + const result = await processOIDCResponse( + authServer, + issuer.client_id, + oidcResponse, + ); + + const { access_token } = result; + + const claims = getValidatedIdTokenClaims(result); + + if (!claims) { + return errorFn( + "invalid_request", + "Invalid claims", + flow.application, + ); + } + + const { sub } = claims; + + // Validate `sub` + // Later, we'll use this to automatically set the user's data + const userInfo = await getUserInfo( + authServer, + issuer.client_id, + access_token, + sub, + ); + + return { + userInfo, + flow, + claims, + }; + } catch (e) { + const error = e as ResponseBodyError | AuthorizationResponseError; return errorFn( - parameters.error, - parameters.error_description || "", + error.error, + error.error_description || "", flow.application, ); } - - const oidcResponse = await getOIDCResponse( - authServer, - issuer.client_id, - issuer.client_secret, - redirectUrl.toString(), - flow.codeVerifier, - parameters, - ); - - const result = await processOIDCResponse( - authServer, - issuer.client_id, - issuer.client_secret, - oidcResponse, - ); - - if (isOAuth2Error(result)) { - return errorFn( - result.error, - result.error_description || "", - flow.application, - ); - } - - const { access_token } = result; - - const claims = getValidatedIdTokenClaims(result); - const { sub } = claims; - - // Validate `sub` - // Later, we'll use this to automatically set the user's data - const userInfo = await getUserInfo( - authServer, - issuer.client_id, - issuer.client_secret, - access_token, - sub, - ); - - return { - userInfo, - flow, - claims, - }; };