@absolutejs/auth 0.56.1 → 0.56.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/migrate.js +39 -13
- package/dist/cli/migrate.js.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +85 -15
- package/dist/index.js.map +7 -7
- package/dist/oidc/index.js +35 -3
- package/dist/oidc/index.js.map +3 -3
- package/dist/oidc/postgresStores.d.ts +30 -0
- package/dist/server.js +85 -15
- package/dist/server.js.map +7 -7
- package/package.json +1 -1
- package/dist/abuse/captcha.d.ts +0 -11
- package/dist/abuse/config.d.ts +0 -29
- package/dist/actions.d.ts +0 -27
- package/dist/agents/config.d.ts +0 -44
- package/dist/agents/context.d.ts +0 -46
- package/dist/agents/principal.d.ts +0 -4
- package/dist/agents/registration.d.ts +0 -162
- package/dist/agents/routes.d.ts +0 -321
- package/dist/agents/types.d.ts +0 -129
- package/dist/apikeys/config.d.ts +0 -64
- package/dist/apikeys/routes.d.ts +0 -83
- package/dist/apikeys/types.d.ts +0 -53
- package/dist/audit/config.d.ts +0 -9
- package/dist/audit/export.d.ts +0 -2
- package/dist/audit/inMemoryAuditStore.d.ts +0 -2
- package/dist/audit/integrity.d.ts +0 -19
- package/dist/audit/postgresAuditStore.d.ts +0 -116
- package/dist/audit/siem.d.ts +0 -11
- package/dist/audit/types.d.ts +0 -19
- package/dist/audit/wrap.d.ts +0 -9
- package/dist/authContext.d.ts +0 -193
- package/dist/authorization/config.d.ts +0 -19
- package/dist/authorization/protectPermission.d.ts +0 -52
- package/dist/compliance/cipher.d.ts +0 -11
- package/dist/compliance/config.d.ts +0 -18
- package/dist/compliance/redaction.d.ts +0 -8
- package/dist/compliance/routes.d.ts +0 -89
- package/dist/constants.d.ts +0 -10
- package/dist/credentials/backgroundOps.d.ts +0 -45
- package/dist/credentials/config.d.ts +0 -68
- package/dist/credentials/emailValidation.d.ts +0 -9
- package/dist/credentials/emailVerification.d.ts +0 -83
- package/dist/credentials/import.d.ts +0 -34
- package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
- package/dist/credentials/legacyHashers.d.ts +0 -3
- package/dist/credentials/login.d.ts +0 -76
- package/dist/credentials/passwordPolicy.d.ts +0 -15
- package/dist/credentials/passwordReset.d.ts +0 -87
- package/dist/credentials/postgresCredentialStore.d.ts +0 -235
- package/dist/credentials/register.d.ts +0 -54
- package/dist/credentials/routes.d.ts +0 -201
- package/dist/credentials/types.d.ts +0 -26
- package/dist/crypto.d.ts +0 -32
- package/dist/errors.d.ts +0 -12
- package/dist/federation/tokenStore.d.ts +0 -29
- package/dist/htmx/configuredRoutes.d.ts +0 -542
- package/dist/htmx/renderers.d.ts +0 -8
- package/dist/htmx/routes.d.ts +0 -514
- package/dist/htmx/types.d.ts +0 -129
- package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
- package/dist/linkedProviders/neonStores.d.ts +0 -484
- package/dist/linkedProviders/oauthAccountResolver.d.ts +0 -28
- package/dist/linkedProviders/oauthResolver.d.ts +0 -9
- package/dist/linkedProviders/resolver.d.ts +0 -22
- package/dist/lockout/config.d.ts +0 -17
- package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
- package/dist/lockout/postgresLockoutStore.d.ts +0 -71
- package/dist/lockout/redisLockoutStore.d.ts +0 -3
- package/dist/lockout/types.d.ts +0 -12
- package/dist/mfa/backupCodes.d.ts +0 -5
- package/dist/mfa/challenge.d.ts +0 -70
- package/dist/mfa/config.d.ts +0 -50
- package/dist/mfa/gate.d.ts +0 -2
- package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
- package/dist/mfa/management.d.ts +0 -106
- package/dist/mfa/postgresMfaStore.d.ts +0 -206
- package/dist/mfa/rotation.d.ts +0 -17
- package/dist/mfa/routes.d.ts +0 -234
- package/dist/mfa/secret.d.ts +0 -2
- package/dist/mfa/sms.d.ts +0 -105
- package/dist/mfa/totp.d.ts +0 -91
- package/dist/mfa/types.d.ts +0 -23
- package/dist/oidc/clientAuth.d.ts +0 -19
- package/dist/oidc/config.d.ts +0 -295
- package/dist/oidc/dpop.d.ts +0 -23
- package/dist/oidc/inMemoryVciStores.d.ts +0 -3
- package/dist/oidc/jar.d.ts +0 -14
- package/dist/oidc/keys.d.ts +0 -35
- package/dist/oidc/logout.d.ts +0 -38
- package/dist/oidc/mtls.d.ts +0 -11
- package/dist/oidc/par.d.ts +0 -28
- package/dist/oidc/registration.d.ts +0 -138
- package/dist/oidc/routes.d.ts +0 -568
- package/dist/oidc/types.d.ts +0 -143
- package/dist/oidc/userinfo.d.ts +0 -21
- package/dist/oidc/vci.d.ts +0 -159
- package/dist/oidc/vciRoutes.d.ts +0 -92
- package/dist/organizations/config.d.ts +0 -46
- package/dist/organizations/operations.d.ts +0 -39
- package/dist/organizations/routes.d.ts +0 -299
- package/dist/organizations/types.d.ts +0 -45
- package/dist/passwordless/config.d.ts +0 -43
- package/dist/passwordless/routes.d.ts +0 -163
- package/dist/passwordless/types.d.ts +0 -9
- package/dist/pluginIdentity.d.ts +0 -2
- package/dist/portal/config.d.ts +0 -34
- package/dist/portal/operations.d.ts +0 -10
- package/dist/portal/routes.d.ts +0 -160
- package/dist/portal/types.d.ts +0 -16
- package/dist/providers/clients.d.ts +0 -1818
- package/dist/providersFromEnv.d.ts +0 -19
- package/dist/roles/config.d.ts +0 -27
- package/dist/roles/operations.d.ts +0 -8
- package/dist/roles/routes.d.ts +0 -106
- package/dist/roles/types.d.ts +0 -14
- package/dist/routes/authorize.d.ts +0 -102
- package/dist/routes/callback.d.ts +0 -64
- package/dist/routes/profile.d.ts +0 -70
- package/dist/routes/protectRoute.d.ts +0 -51
- package/dist/routes/refresh.d.ts +0 -74
- package/dist/routes/revoke.d.ts +0 -73
- package/dist/routes/sessions.d.ts +0 -103
- package/dist/routes/signout.d.ts +0 -70
- package/dist/routes/stepUp.d.ts +0 -48
- package/dist/routes/userStatus.d.ts +0 -72
- package/dist/scim/config.d.ts +0 -57
- package/dist/scim/extensions.d.ts +0 -30
- package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
- package/dist/scim/routes.d.ts +0 -366
- package/dist/scim/serialize.d.ts +0 -83
- package/dist/scim/types.d.ts +0 -54
- package/dist/session/access.d.ts +0 -33
- package/dist/session/anonymous.d.ts +0 -12
- package/dist/session/cleanup.d.ts +0 -45
- package/dist/session/impersonation.d.ts +0 -34
- package/dist/session/inMemoryStore.d.ts +0 -7
- package/dist/session/multiSession.d.ts +0 -27
- package/dist/session/neonStore.d.ts +0 -513
- package/dist/session/promote.d.ts +0 -23
- package/dist/session/redisStore.d.ts +0 -6
- package/dist/session/sessionsConfig.d.ts +0 -9
- package/dist/session/state.d.ts +0 -33
- package/dist/session/types.d.ts +0 -21
- package/dist/session/userSessions.d.ts +0 -19
- package/dist/sso/config.d.ts +0 -149
- package/dist/sso/discoveryRoute.d.ts +0 -63
- package/dist/sso/oidcRoutes.d.ts +0 -98
- package/dist/sso/samlRoutes.d.ts +0 -179
- package/dist/sso/types.d.ts +0 -53
- package/dist/stores/postgres.d.ts +0 -5
- package/dist/stores/redis.d.ts +0 -5
- package/dist/telemetry/tracing.d.ts +0 -15
- package/dist/tenancy.d.ts +0 -9
- package/dist/typeGuards.d.ts +0 -6
- package/dist/typebox.d.ts +0 -4
- package/dist/types.d.ts +0 -421
- package/dist/utils.d.ts +0 -45
- package/dist/vault/config.d.ts +0 -20
- package/dist/vault/inMemoryVaultStore.d.ts +0 -2
- package/dist/vault/postgresVaultStore.d.ts +0 -86
- package/dist/vault/types.d.ts +0 -14
- package/dist/vc/inMemoryVpStores.d.ts +0 -2
- package/dist/vc/openid4vp.d.ts +0 -82
- package/dist/vc/postgresVcStores.d.ts +0 -300
- package/dist/vc/sdJwt.d.ts +0 -37
- package/dist/vc/statusList.d.ts +0 -29
- package/dist/vc/statusListRoutes.d.ts +0 -63
- package/dist/vc/vpRoutes.d.ts +0 -120
- package/dist/webauthn/adapter.d.ts +0 -59
- package/dist/webauthn/config.d.ts +0 -36
- package/dist/webauthn/routes.d.ts +0 -155
- package/dist/webauthn/types.d.ts +0 -17
- package/dist/webhooks/config.d.ts +0 -34
- package/dist/webhooks/dispatcher.d.ts +0 -3
- package/dist/webhooks/sign.d.ts +0 -11
- package/dist/webhooks/types.d.ts +0 -25
|
@@ -467,6 +467,21 @@ export declare const oauthCodesTable: import("drizzle-orm/pg-core").PgTableWithC
|
|
|
467
467
|
identity: undefined;
|
|
468
468
|
generated: undefined;
|
|
469
469
|
}>;
|
|
470
|
+
audience: import("drizzle-orm/pg-core").PgBuildColumn<"auth_oauth_codes", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
|
|
471
|
+
name: string;
|
|
472
|
+
tableName: "auth_oauth_codes";
|
|
473
|
+
dataType: "string";
|
|
474
|
+
data: string;
|
|
475
|
+
driverParam: string;
|
|
476
|
+
notNull: false;
|
|
477
|
+
hasDefault: false;
|
|
478
|
+
isPrimaryKey: false;
|
|
479
|
+
isAutoincrement: false;
|
|
480
|
+
hasRuntimeDefault: false;
|
|
481
|
+
enumValues: undefined;
|
|
482
|
+
identity: undefined;
|
|
483
|
+
generated: undefined;
|
|
484
|
+
}>;
|
|
470
485
|
claims_json: import("drizzle-orm/pg-core").PgBuildColumn<"auth_oauth_codes", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Record<string, unknown>>, {
|
|
471
486
|
name: string;
|
|
472
487
|
tableName: "auth_oauth_codes";
|
|
@@ -1042,6 +1057,21 @@ export declare const oauthRefreshTokensTable: import("drizzle-orm/pg-core").PgTa
|
|
|
1042
1057
|
identity: undefined;
|
|
1043
1058
|
generated: undefined;
|
|
1044
1059
|
}>;
|
|
1060
|
+
audience: import("drizzle-orm/pg-core").PgBuildColumn<"auth_oauth_refresh_tokens", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
|
|
1061
|
+
name: string;
|
|
1062
|
+
tableName: "auth_oauth_refresh_tokens";
|
|
1063
|
+
dataType: "string";
|
|
1064
|
+
data: string;
|
|
1065
|
+
driverParam: string;
|
|
1066
|
+
notNull: false;
|
|
1067
|
+
hasDefault: false;
|
|
1068
|
+
isPrimaryKey: false;
|
|
1069
|
+
isAutoincrement: false;
|
|
1070
|
+
hasRuntimeDefault: false;
|
|
1071
|
+
enumValues: undefined;
|
|
1072
|
+
identity: undefined;
|
|
1073
|
+
generated: undefined;
|
|
1074
|
+
}>;
|
|
1045
1075
|
claims_json: import("drizzle-orm/pg-core").PgBuildColumn<"auth_oauth_refresh_tokens", import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, Record<string, unknown>>, {
|
|
1046
1076
|
name: string;
|
|
1047
1077
|
tableName: "auth_oauth_refresh_tokens";
|
package/dist/server.js
CHANGED
|
@@ -6123,6 +6123,7 @@ var exchangeToken = async ({
|
|
|
6123
6123
|
};
|
|
6124
6124
|
var issueTokenSet = async ({
|
|
6125
6125
|
acr,
|
|
6126
|
+
audience,
|
|
6126
6127
|
claims,
|
|
6127
6128
|
clientCertThumbprint,
|
|
6128
6129
|
clientId,
|
|
@@ -6137,11 +6138,13 @@ var issueTokenSet = async ({
|
|
|
6137
6138
|
const idTtl = config.idTokenTtlMs ?? DEFAULT_ID_TOKEN_TTL_MS;
|
|
6138
6139
|
const refreshTtl = config.refreshTokenTtlMs ?? DEFAULT_REFRESH_TOKEN_TTL_MS;
|
|
6139
6140
|
const accessExtra = await config.getAccessTokenClaims?.({
|
|
6141
|
+
audience,
|
|
6140
6142
|
clientId,
|
|
6141
6143
|
scopes,
|
|
6142
6144
|
sub
|
|
6143
6145
|
});
|
|
6144
6146
|
const accessPayload = buildAccessClaims({
|
|
6147
|
+
audience,
|
|
6145
6148
|
clientCertThumbprint,
|
|
6146
6149
|
clientId,
|
|
6147
6150
|
dpopJkt,
|
|
@@ -6167,6 +6170,7 @@ var issueTokenSet = async ({
|
|
|
6167
6170
|
const refreshToken = generateSecureToken(TOKEN_BYTES3);
|
|
6168
6171
|
await config.refreshTokenStore.saveToken({
|
|
6169
6172
|
acr,
|
|
6173
|
+
audience,
|
|
6170
6174
|
claims,
|
|
6171
6175
|
clientId,
|
|
6172
6176
|
createdAt: now,
|
|
@@ -7784,6 +7788,9 @@ var oidcProviderRoutes = (config) => {
|
|
|
7784
7788
|
if (record === undefined || record.expiresAt < Date.now() || record.clientId !== client.clientId || record.redirectUri !== redirectUri || !await verifyPkce(codeVerifier, record.codeChallenge)) {
|
|
7785
7789
|
return oauthError2(HTTP_BAD_REQUEST3, "invalid_grant");
|
|
7786
7790
|
}
|
|
7791
|
+
if (body.resource !== undefined && body.resource !== record.audience) {
|
|
7792
|
+
return oauthError2(HTTP_BAD_REQUEST3, "invalid_target");
|
|
7793
|
+
}
|
|
7787
7794
|
const dpopResult = dpop === undefined ? undefined : await verifyDpopProof({
|
|
7788
7795
|
htm: "POST",
|
|
7789
7796
|
htu: tokenUrl,
|
|
@@ -7794,6 +7801,7 @@ var oidcProviderRoutes = (config) => {
|
|
|
7794
7801
|
}
|
|
7795
7802
|
return tokenResponse(await issueTokenSet({
|
|
7796
7803
|
acr: record.acr,
|
|
7804
|
+
audience: record.audience,
|
|
7797
7805
|
claims: record.claims,
|
|
7798
7806
|
clientCertThumbprint,
|
|
7799
7807
|
clientId: client.clientId,
|
|
@@ -7813,6 +7821,9 @@ var oidcProviderRoutes = (config) => {
|
|
|
7813
7821
|
if (record === undefined || record.expiresAt < Date.now() || record.clientId !== client.clientId) {
|
|
7814
7822
|
return oauthError2(HTTP_BAD_REQUEST3, "invalid_grant");
|
|
7815
7823
|
}
|
|
7824
|
+
if (body.resource !== undefined && body.resource !== record.audience) {
|
|
7825
|
+
return oauthError2(HTTP_BAD_REQUEST3, "invalid_target");
|
|
7826
|
+
}
|
|
7816
7827
|
if (record.dpopJkt !== undefined) {
|
|
7817
7828
|
const proof = await verifyDpopProof({
|
|
7818
7829
|
htm: "POST",
|
|
@@ -7825,6 +7836,7 @@ var oidcProviderRoutes = (config) => {
|
|
|
7825
7836
|
}
|
|
7826
7837
|
return tokenResponse(await issueTokenSet({
|
|
7827
7838
|
acr: record.acr,
|
|
7839
|
+
audience: record.audience,
|
|
7828
7840
|
claims: record.claims,
|
|
7829
7841
|
clientCertThumbprint,
|
|
7830
7842
|
clientId: client.clientId,
|
|
@@ -8183,6 +8195,7 @@ var oidcProviderRoutes = (config) => {
|
|
|
8183
8195
|
const code = generateSecureToken(TOKEN_BYTES4);
|
|
8184
8196
|
await authorizationCodeStore.saveCode({
|
|
8185
8197
|
acr: userAcr,
|
|
8198
|
+
audience: effectiveQuery.resource,
|
|
8186
8199
|
claims: getClaims?.(userSession.user),
|
|
8187
8200
|
clientId: client.clientId,
|
|
8188
8201
|
codeChallenge,
|
|
@@ -8218,6 +8231,7 @@ var oidcProviderRoutes = (config) => {
|
|
|
8218
8231
|
redirect_uri: t15.Optional(t15.String()),
|
|
8219
8232
|
request: t15.Optional(t15.String()),
|
|
8220
8233
|
request_uri: t15.Optional(t15.String()),
|
|
8234
|
+
resource: t15.Optional(t15.String()),
|
|
8221
8235
|
response_mode: t15.Optional(t15.String()),
|
|
8222
8236
|
response_type: t15.Optional(t15.String()),
|
|
8223
8237
|
scope: t15.Optional(t15.String()),
|
|
@@ -27114,6 +27128,16 @@ var createInMemoryOidcRefreshTokenStore = () => {
|
|
|
27114
27128
|
tokens.delete(hash);
|
|
27115
27129
|
}
|
|
27116
27130
|
},
|
|
27131
|
+
deleteForUserClient: async (userId, clientId) => {
|
|
27132
|
+
let deleted = 0;
|
|
27133
|
+
for (const [hash, token] of tokens) {
|
|
27134
|
+
if (token.userId !== userId || token.clientId !== clientId)
|
|
27135
|
+
continue;
|
|
27136
|
+
tokens.delete(hash);
|
|
27137
|
+
deleted += 1;
|
|
27138
|
+
}
|
|
27139
|
+
return deleted;
|
|
27140
|
+
},
|
|
27117
27141
|
getToken: async (tokenHash) => tokens.get(tokenHash),
|
|
27118
27142
|
listClientIdsForUser: async (userId) => {
|
|
27119
27143
|
const now = Date.now();
|
|
@@ -27146,6 +27170,28 @@ var createInMemoryPushedAuthorizationRequestStore = () => {
|
|
|
27146
27170
|
var URL_LENGTH = 2048;
|
|
27147
27171
|
var DEFAULT_LIST_LIMIT2 = 100;
|
|
27148
27172
|
var ID_LENGTH9 = 255;
|
|
27173
|
+
var BACKCHANNEL_AUTH_STATUSES = new Set([
|
|
27174
|
+
"approved",
|
|
27175
|
+
"denied",
|
|
27176
|
+
"pending"
|
|
27177
|
+
]);
|
|
27178
|
+
var DEVICE_AUTHORIZATION_STATUSES = new Set([
|
|
27179
|
+
"approved",
|
|
27180
|
+
"denied",
|
|
27181
|
+
"pending"
|
|
27182
|
+
]);
|
|
27183
|
+
var backchannelAuthStatus = (value) => {
|
|
27184
|
+
for (const status of BACKCHANNEL_AUTH_STATUSES)
|
|
27185
|
+
if (status === value)
|
|
27186
|
+
return status;
|
|
27187
|
+
throw new Error(`Invalid persisted backchannel authorization status: ${value}`);
|
|
27188
|
+
};
|
|
27189
|
+
var deviceAuthorizationStatus = (value) => {
|
|
27190
|
+
for (const status of DEVICE_AUTHORIZATION_STATUSES)
|
|
27191
|
+
if (status === value)
|
|
27192
|
+
return status;
|
|
27193
|
+
throw new Error(`Invalid persisted device authorization status: ${value}`);
|
|
27194
|
+
};
|
|
27149
27195
|
var oauthBackchannelAuthRequestsTable = pgTable("auth_oauth_backchannel_auth_requests", {
|
|
27150
27196
|
auth_req_id: varchar("auth_req_id", { length: ID_LENGTH9 }).primaryKey(),
|
|
27151
27197
|
binding_message: text("binding_message"),
|
|
@@ -27190,6 +27236,7 @@ var oauthClientsTable = pgTable("auth_oauth_clients", {
|
|
|
27190
27236
|
});
|
|
27191
27237
|
var oauthCodesTable = pgTable("auth_oauth_codes", {
|
|
27192
27238
|
acr: varchar("acr", { length: ID_LENGTH9 }),
|
|
27239
|
+
audience: varchar("audience", { length: URL_LENGTH }),
|
|
27193
27240
|
claims_json: jsonb("claims_json").$type(),
|
|
27194
27241
|
client_id: varchar("client_id", { length: ID_LENGTH9 }).notNull(),
|
|
27195
27242
|
code_challenge: varchar("code_challenge", { length: ID_LENGTH9 }).notNull(),
|
|
@@ -27242,6 +27289,7 @@ var oauthPushedAuthorizationRequestsTable = pgTable("auth_oauth_pushed_authoriza
|
|
|
27242
27289
|
});
|
|
27243
27290
|
var oauthRefreshTokensTable = pgTable("auth_oauth_refresh_tokens", {
|
|
27244
27291
|
acr: varchar("acr", { length: ID_LENGTH9 }),
|
|
27292
|
+
audience: varchar("audience", { length: URL_LENGTH }),
|
|
27245
27293
|
claims_json: jsonb("claims_json").$type(),
|
|
27246
27294
|
client_id: varchar("client_id", { length: ID_LENGTH9 }).notNull(),
|
|
27247
27295
|
created_at_ms: bigint("created_at_ms", { mode: "number" }).notNull(),
|
|
@@ -27277,6 +27325,7 @@ var toLogoutDelivery = (row) => ({
|
|
|
27277
27325
|
});
|
|
27278
27326
|
var toCode = (row) => ({
|
|
27279
27327
|
acr: row.acr ?? undefined,
|
|
27328
|
+
audience: row.audience ?? undefined,
|
|
27280
27329
|
claims: row.claims_json ?? undefined,
|
|
27281
27330
|
clientId: row.client_id,
|
|
27282
27331
|
codeChallenge: row.code_challenge,
|
|
@@ -27291,6 +27340,7 @@ var toCode = (row) => ({
|
|
|
27291
27340
|
});
|
|
27292
27341
|
var toCodeValues = (code) => ({
|
|
27293
27342
|
acr: code.acr ?? null,
|
|
27343
|
+
audience: code.audience ?? null,
|
|
27294
27344
|
claims_json: code.claims ?? null,
|
|
27295
27345
|
client_id: code.clientId,
|
|
27296
27346
|
code_challenge: code.codeChallenge,
|
|
@@ -27310,12 +27360,13 @@ var toDeviceAuth = (row) => ({
|
|
|
27310
27360
|
expiresAt: row.expires_at_ms,
|
|
27311
27361
|
intervalSeconds: row.interval_seconds,
|
|
27312
27362
|
scopes: row.scopes,
|
|
27313
|
-
status: row.status,
|
|
27363
|
+
status: deviceAuthorizationStatus(row.status),
|
|
27314
27364
|
userCode: row.user_code,
|
|
27315
27365
|
userSub: row.user_sub ?? undefined
|
|
27316
27366
|
});
|
|
27317
27367
|
var toRefresh = (row) => ({
|
|
27318
27368
|
acr: row.acr ?? undefined,
|
|
27369
|
+
audience: row.audience ?? undefined,
|
|
27319
27370
|
claims: row.claims_json ?? undefined,
|
|
27320
27371
|
clientId: row.client_id,
|
|
27321
27372
|
createdAt: row.created_at_ms,
|
|
@@ -27327,6 +27378,7 @@ var toRefresh = (row) => ({
|
|
|
27327
27378
|
});
|
|
27328
27379
|
var toRefreshValues = (token) => ({
|
|
27329
27380
|
acr: token.acr ?? null,
|
|
27381
|
+
audience: token.audience ?? null,
|
|
27330
27382
|
claims_json: token.claims ?? null,
|
|
27331
27383
|
client_id: token.clientId,
|
|
27332
27384
|
created_at_ms: token.createdAt,
|
|
@@ -27490,6 +27542,10 @@ var createPostgresOidcRefreshTokenStore = (db) => ({
|
|
|
27490
27542
|
deleteForUser: async (userId) => {
|
|
27491
27543
|
await db.delete(oauthRefreshTokensTable).where(eq(oauthRefreshTokensTable.user_id, userId));
|
|
27492
27544
|
},
|
|
27545
|
+
deleteForUserClient: async (userId, clientId) => {
|
|
27546
|
+
const deleted = await db.delete(oauthRefreshTokensTable).where(and(eq(oauthRefreshTokensTable.user_id, userId), eq(oauthRefreshTokensTable.client_id, clientId))).returning({ tokenHash: oauthRefreshTokensTable.token_hash });
|
|
27547
|
+
return deleted.length;
|
|
27548
|
+
},
|
|
27493
27549
|
getToken: async (tokenHash) => {
|
|
27494
27550
|
const [row] = await db.select().from(oauthRefreshTokensTable).where(eq(oauthRefreshTokensTable.token_hash, tokenHash)).limit(1);
|
|
27495
27551
|
return row ? toRefresh(row) : undefined;
|
|
@@ -27538,7 +27594,7 @@ var toBackchannelAuth = (row) => ({
|
|
|
27538
27594
|
intervalSeconds: row.interval_seconds,
|
|
27539
27595
|
lastPolledAt: row.last_polled_at_ms ?? undefined,
|
|
27540
27596
|
scopes: row.scopes,
|
|
27541
|
-
status: row.status,
|
|
27597
|
+
status: backchannelAuthStatus(row.status),
|
|
27542
27598
|
userSub: row.user_sub ?? undefined
|
|
27543
27599
|
});
|
|
27544
27600
|
var createNeonBackchannelAuthStore = (databaseUrl) => createPostgresBackchannelAuthStore(createNeonDatabase(databaseUrl));
|
|
@@ -28836,6 +28892,14 @@ var mfaTotpLockoutMigration = {
|
|
|
28836
28892
|
id: "0003_totp_lockout",
|
|
28837
28893
|
sql: 'ALTER TABLE "auth_mfa_enrollments" ADD COLUMN IF NOT EXISTS "totp_failed_attempts" smallint NOT NULL DEFAULT 0;'
|
|
28838
28894
|
};
|
|
28895
|
+
var oidcResourceAudienceMigration = {
|
|
28896
|
+
id: "0002_resource_audience",
|
|
28897
|
+
sql: [
|
|
28898
|
+
'ALTER TABLE "auth_oauth_codes" ADD COLUMN IF NOT EXISTS "audience" varchar(2048);',
|
|
28899
|
+
'ALTER TABLE "auth_oauth_refresh_tokens" ADD COLUMN IF NOT EXISTS "audience" varchar(2048);'
|
|
28900
|
+
].join(`
|
|
28901
|
+
`)
|
|
28902
|
+
};
|
|
28839
28903
|
var blockMigrations = {
|
|
28840
28904
|
adaptive: initMigration("adaptive", [knownDevicesTable, loginHistoryTable]),
|
|
28841
28905
|
agents: {
|
|
@@ -28877,18 +28941,24 @@ var blockMigrations = {
|
|
|
28877
28941
|
mfaTotpLockoutMigration
|
|
28878
28942
|
]
|
|
28879
28943
|
},
|
|
28880
|
-
oidc:
|
|
28881
|
-
|
|
28882
|
-
|
|
28883
|
-
|
|
28884
|
-
|
|
28885
|
-
|
|
28886
|
-
|
|
28887
|
-
|
|
28888
|
-
|
|
28889
|
-
|
|
28890
|
-
|
|
28891
|
-
|
|
28944
|
+
oidc: {
|
|
28945
|
+
block: "oidc",
|
|
28946
|
+
migrations: [
|
|
28947
|
+
...initMigration("oidc", [
|
|
28948
|
+
oauthBackchannelAuthRequestsTable,
|
|
28949
|
+
oauthClientAssertionJtisTable,
|
|
28950
|
+
oauthClientRegistrationTokensTable,
|
|
28951
|
+
oauthClientsTable,
|
|
28952
|
+
oauthCodesTable,
|
|
28953
|
+
oauthDeviceAuthorizationsTable,
|
|
28954
|
+
oauthInitialAccessTokensTable,
|
|
28955
|
+
oauthLogoutDeliveriesTable,
|
|
28956
|
+
oauthPushedAuthorizationRequestsTable,
|
|
28957
|
+
oauthRefreshTokensTable
|
|
28958
|
+
]).migrations,
|
|
28959
|
+
oidcResourceAudienceMigration
|
|
28960
|
+
]
|
|
28961
|
+
},
|
|
28892
28962
|
organizations: initMigration("organizations", [
|
|
28893
28963
|
organizationsTable,
|
|
28894
28964
|
organizationMembershipsTable,
|
|
@@ -29671,5 +29741,5 @@ export {
|
|
|
29671
29741
|
auth2 as auth
|
|
29672
29742
|
};
|
|
29673
29743
|
|
|
29674
|
-
//# debugId=
|
|
29744
|
+
//# debugId=7B0A9F15E54EDF1A64756E2164756E21
|
|
29675
29745
|
//# sourceMappingURL=server.js.map
|