@frontmcp/auth 1.7.1 → 1.7.2

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.
@@ -90,10 +90,19 @@ export declare abstract class AuthorizationBase implements Authorization {
90
90
  /**
91
91
  * Build URL for progressive/incremental authorization.
92
92
  * Used when a tool requires authorization for an app that was skipped during initial auth.
93
+ *
94
+ * The URL only SKIPS the login step when it carries a valid incremental
95
+ * ticket (GHSA-2c4g-9c8x-6m8g) — mint one with
96
+ * {@link signIncrementalAuthTicket} using the server signing secret and pass
97
+ * it here. Without a ticket the link still works, but the user completes an
98
+ * ordinary login; `mode=incremental` alone is no longer an authorization
99
+ * signal and is not emitted.
100
+ *
93
101
  * @param appId - App ID that requires authorization
94
102
  * @param baseUrl - Base URL of the server
103
+ * @param ticket - Signed incremental-authorization ticket for this subject
95
104
  */
96
- getProgressiveAuthUrl(appId: string, baseUrl: string): string;
105
+ getProgressiveAuthUrl(appId: string, baseUrl: string, ticket?: string): string;
97
106
  /**
98
107
  * Check if the authorization is expired
99
108
  */
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.class.d.ts","sourceRoot":"","sources":["../../src/authorization/authorization.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization.class.d.ts","sourceRoot":"","sources":["../../src/authorization/authorization.class.ts"],"names":[],"mappings":"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"}
package/esm/index.mjs CHANGED
@@ -1326,8 +1326,6 @@ function buildIncrementalAuthPage(params) {
1326
1326
 
1327
1327
  <form method="GET" action="${escapeHtml3(callbackPath)}" class="flex gap-3 pt-4 border-t border-gray-100">
1328
1328
  <input type="hidden" name="pending_auth_id" value="${escapeHtml3(sessionHint)}">
1329
- <input type="hidden" name="app_id" value="${escapeHtml3(app.appId)}">
1330
- <input type="hidden" name="incremental" value="true">
1331
1329
  <button type="button" onclick="window.close()"
1332
1330
  class="flex-1 px-4 py-2.5 text-gray-600 hover:text-gray-900 hover:bg-gray-100 font-medium rounded-lg transition-colors">
1333
1331
  Cancel
@@ -1811,6 +1809,7 @@ function buildPendingRecord(params) {
1811
1809
  createdAt: now,
1812
1810
  expiresAt: now + PENDING_AUTH_TTL_MS,
1813
1811
  isIncremental: params.isIncremental,
1812
+ incrementalSub: params.incrementalSub,
1814
1813
  targetAppId: params.targetAppId,
1815
1814
  targetToolId: params.targetToolId,
1816
1815
  existingSessionId: params.existingSessionId,
@@ -2952,6 +2951,44 @@ function buildCredentialResumeUrl(basePath, token) {
2952
2951
  return `${trimmed}/oauth/connect?token=${encodeURIComponent(token)}`;
2953
2952
  }
2954
2953
 
2954
+ // libs/auth/src/session/incremental-auth-ticket.ts
2955
+ import { randomUUID as randomUUID3, signData as signData2, verifyData as verifyData2 } from "@frontmcp/utils";
2956
+ var DEFAULT_INCREMENTAL_TICKET_TTL_MS = 3e5;
2957
+ function signIncrementalAuthTicket(input, secret) {
2958
+ const payload = {
2959
+ sub: input.sub,
2960
+ appId: input.appId,
2961
+ ...input.toolId !== void 0 ? { toolId: input.toolId } : {},
2962
+ ...input.priorAppIds !== void 0 ? { priorAppIds: input.priorAppIds } : {},
2963
+ jti: randomUUID3(),
2964
+ exp: Date.now() + (input.ttlMs ?? DEFAULT_INCREMENTAL_TICKET_TTL_MS)
2965
+ };
2966
+ const signedJson = signData2(payload, { secret });
2967
+ return Buffer.from(signedJson, "utf8").toString("base64url");
2968
+ }
2969
+ function verifyIncrementalAuthTicket(token, secret, now = Date.now()) {
2970
+ let signedJson;
2971
+ try {
2972
+ signedJson = Buffer.from(token, "base64url").toString("utf8");
2973
+ } catch {
2974
+ return null;
2975
+ }
2976
+ const payload = verifyData2(signedJson, { secret });
2977
+ if (!payload) return null;
2978
+ if (typeof payload.sub !== "string" || payload.sub.length === 0) return null;
2979
+ if (typeof payload.appId !== "string" || payload.appId.length === 0) return null;
2980
+ if (typeof payload.jti !== "string" || payload.jti.length === 0) return null;
2981
+ if (!Number.isFinite(payload.exp)) return null;
2982
+ if (payload.toolId !== void 0 && typeof payload.toolId !== "string") return null;
2983
+ if (payload.priorAppIds !== void 0 && (!Array.isArray(payload.priorAppIds) || payload.priorAppIds.some((id) => typeof id !== "string"))) {
2984
+ return null;
2985
+ }
2986
+ if (now >= payload.exp) {
2987
+ return null;
2988
+ }
2989
+ return payload;
2990
+ }
2991
+
2955
2992
  // libs/auth/src/session/credentials-accessor.ts
2956
2993
  var CREDENTIALS_ACCESSOR = /* @__PURE__ */ Symbol.for("frontmcp:CREDENTIALS_ACCESSOR");
2957
2994
 
@@ -3416,8 +3453,8 @@ var redisConfigSchema = z4.object({
3416
3453
 
3417
3454
  // libs/auth/src/session/session-crypto.ts
3418
3455
  import {
3419
- signData as signData2,
3420
- verifyData as verifyData2,
3456
+ signData as signData3,
3457
+ verifyData as verifyData3,
3421
3458
  isSignedData,
3422
3459
  verifyOrParseData,
3423
3460
  getEnv as getEnv2,
@@ -3584,10 +3621,10 @@ function resolveConfig(config) {
3584
3621
  return { secret: getSigningSecret(config) };
3585
3622
  }
3586
3623
  function signSession(session, config) {
3587
- return signData2(session, resolveConfig(config));
3624
+ return signData3(session, resolveConfig(config));
3588
3625
  }
3589
3626
  function verifySession(signedData, config) {
3590
- return verifyData2(signedData, resolveConfig(config));
3627
+ return verifyData3(signedData, resolveConfig(config));
3591
3628
  }
3592
3629
  function verifyOrParseSession(data, config) {
3593
3630
  return verifyOrParseData(data, resolveConfig(config));
@@ -3717,7 +3754,7 @@ var SessionRateLimiter = class {
3717
3754
  var defaultSessionRateLimiter = new SessionRateLimiter();
3718
3755
 
3719
3756
  // libs/auth/src/session/session.transport.ts
3720
- import { randomUUID as randomUUID3 } from "@frontmcp/utils";
3757
+ import { randomUUID as randomUUID4 } from "@frontmcp/utils";
3721
3758
  var TransportIdGenerator = class {
3722
3759
  /**
3723
3760
  * Create a transport session ID.
@@ -3726,7 +3763,7 @@ var TransportIdGenerator = class {
3726
3763
  * @returns A transport session ID (UUID without dashes)
3727
3764
  */
3728
3765
  static createId() {
3729
- return randomUUID3().replace(/-/g, "");
3766
+ return randomUUID4().replace(/-/g, "");
3730
3767
  }
3731
3768
  };
3732
3769
 
@@ -3863,7 +3900,7 @@ import { TypedStorage as TypedStorage4 } from "@frontmcp/utils";
3863
3900
  import { EncryptedTypedStorage, EncryptedStorageError } from "@frontmcp/utils";
3864
3901
 
3865
3902
  // libs/auth/src/session/storage/storage-token-store.ts
3866
- import { randomUUID as randomUUID4, TypedStorage as TypedStorage2 } from "@frontmcp/utils";
3903
+ import { randomUUID as randomUUID5, TypedStorage as TypedStorage2 } from "@frontmcp/utils";
3867
3904
  var StorageTokenStore = class {
3868
3905
  storage;
3869
3906
  namespace;
@@ -3881,7 +3918,7 @@ var StorageTokenStore = class {
3881
3918
  * Allocate a new unique ID for a token record.
3882
3919
  */
3883
3920
  allocId() {
3884
- return randomUUID4();
3921
+ return randomUUID5();
3885
3922
  }
3886
3923
  /**
3887
3924
  * Store an encrypted token blob.
@@ -3944,7 +3981,7 @@ var StorageTokenStore = class {
3944
3981
  };
3945
3982
 
3946
3983
  // libs/auth/src/session/storage/storage-authorization-vault.ts
3947
- import { randomUUID as randomUUID5, TypedStorage as TypedStorage3 } from "@frontmcp/utils";
3984
+ import { randomUUID as randomUUID6, TypedStorage as TypedStorage3 } from "@frontmcp/utils";
3948
3985
  var StorageAuthorizationVault = class {
3949
3986
  storage;
3950
3987
  namespace;
@@ -3964,7 +4001,7 @@ var StorageAuthorizationVault = class {
3964
4001
  async create(params) {
3965
4002
  const now = Date.now();
3966
4003
  const entry = {
3967
- id: randomUUID5(),
4004
+ id: randomUUID6(),
3968
4005
  userSub: params.userSub,
3969
4006
  userEmail: params.userEmail,
3970
4007
  userName: params.userName,
@@ -4038,7 +4075,7 @@ var StorageAuthorizationVault = class {
4038
4075
  }
4039
4076
  const now = Date.now();
4040
4077
  const pendingAuth = {
4041
- id: randomUUID5(),
4078
+ id: randomUUID6(),
4042
4079
  appId: params.appId,
4043
4080
  toolId: params.toolId,
4044
4081
  authUrl: params.authUrl,
@@ -4267,7 +4304,7 @@ var InMemoryAuthorizationVault = class extends StorageAuthorizationVault {
4267
4304
  };
4268
4305
 
4269
4306
  // libs/auth/src/session/redis-session.store.ts
4270
- import { randomUUID as randomUUID6, RedisStorageAdapter as RedisStorageAdapter2 } from "@frontmcp/utils";
4307
+ import { randomUUID as randomUUID7, RedisStorageAdapter as RedisStorageAdapter2 } from "@frontmcp/utils";
4271
4308
  var RedisSessionStore = class {
4272
4309
  storage;
4273
4310
  keyPrefix;
@@ -4478,7 +4515,7 @@ var RedisSessionStore = class {
4478
4515
  * Allocate a new session ID
4479
4516
  */
4480
4517
  allocId() {
4481
- return randomUUID6();
4518
+ return randomUUID7();
4482
4519
  }
4483
4520
  /**
4484
4521
  * Disconnect from Redis (only if we created the connection)
@@ -4514,7 +4551,7 @@ var RedisSessionStore = class {
4514
4551
  };
4515
4552
 
4516
4553
  // libs/auth/src/session/vercel-kv-session.store.ts
4517
- import { randomUUID as randomUUID7, VercelKvStorageAdapter } from "@frontmcp/utils";
4554
+ import { randomUUID as randomUUID8, VercelKvStorageAdapter } from "@frontmcp/utils";
4518
4555
  var VercelKvSessionStore = class {
4519
4556
  storage;
4520
4557
  keyPrefix;
@@ -4708,7 +4745,7 @@ var VercelKvSessionStore = class {
4708
4745
  * Allocate a new session ID
4709
4746
  */
4710
4747
  allocId() {
4711
- return randomUUID7();
4748
+ return randomUUID8();
4712
4749
  }
4713
4750
  /**
4714
4751
  * Disconnect from Vercel KV
@@ -5214,7 +5251,7 @@ var StorageOrchestratedTokenStore = class {
5214
5251
  };
5215
5252
 
5216
5253
  // libs/auth/src/session/federated-auth.session.ts
5217
- import { randomUUID as randomUUID8 } from "@frontmcp/utils";
5254
+ import { randomUUID as randomUUID9 } from "@frontmcp/utils";
5218
5255
  function toSessionRecord(session) {
5219
5256
  return {
5220
5257
  ...session,
@@ -5289,7 +5326,7 @@ var InMemoryFederatedAuthSessionStore = class {
5289
5326
  createSession(params) {
5290
5327
  const now = Date.now();
5291
5328
  return {
5292
- id: randomUUID8(),
5329
+ id: randomUUID9(),
5293
5330
  pendingAuthId: params.pendingAuthId,
5294
5331
  clientId: params.clientId,
5295
5332
  redirectUri: params.redirectUri,
@@ -5321,7 +5358,7 @@ var InMemoryFederatedAuthSessionStore = class {
5321
5358
  function createFederatedAuthSession(params, ttlMs = 15 * 60 * 1e3) {
5322
5359
  const now = Date.now();
5323
5360
  return {
5324
- id: randomUUID8(),
5361
+ id: randomUUID9(),
5325
5362
  pendingAuthId: params.pendingAuthId,
5326
5363
  clientId: params.clientId,
5327
5364
  redirectUri: params.redirectUri,
@@ -5489,7 +5526,7 @@ var StorageConsentStore = class {
5489
5526
 
5490
5527
  // libs/auth/src/session/encrypted-authorization-vault.ts
5491
5528
  import { z as z5 } from "@frontmcp/lazy-zod";
5492
- import { AsyncLocalStorage, randomUUID as randomUUID9 } from "@frontmcp/utils";
5529
+ import { AsyncLocalStorage, randomUUID as randomUUID10 } from "@frontmcp/utils";
5493
5530
  var redisVaultEntrySchema = z5.object({
5494
5531
  /** Vault ID */
5495
5532
  id: z5.string(),
@@ -5650,7 +5687,7 @@ var EncryptedRedisVault = class {
5650
5687
  async create(params) {
5651
5688
  const now = Date.now();
5652
5689
  const entry = {
5653
- id: randomUUID9(),
5690
+ id: randomUUID10(),
5654
5691
  userSub: params.userSub,
5655
5692
  userEmail: params.userEmail,
5656
5693
  userName: params.userName,
@@ -5709,7 +5746,7 @@ var EncryptedRedisVault = class {
5709
5746
  }
5710
5747
  const now = Date.now();
5711
5748
  const pendingAuth = {
5712
- id: randomUUID9(),
5749
+ id: randomUUID10(),
5713
5750
  appId: params.appId,
5714
5751
  toolId: params.toolId,
5715
5752
  authUrl: params.authUrl,
@@ -5972,7 +6009,7 @@ var progressiveAuthStateSchema = z6.object({
5972
6009
  });
5973
6010
 
5974
6011
  // libs/auth/src/authorization/authorization.class.ts
5975
- import { base64urlDecode as base64urlDecode4, getMachineId as getMachineId2, randomUUID as randomUUID10 } from "@frontmcp/utils";
6012
+ import { base64urlDecode as base64urlDecode4, getMachineId as getMachineId2, randomUUID as randomUUID11 } from "@frontmcp/utils";
5976
6013
  var AuthorizationBase = class _AuthorizationBase {
5977
6014
  id;
5978
6015
  isAnonymous;
@@ -6020,7 +6057,7 @@ var AuthorizationBase = class _AuthorizationBase {
6020
6057
  * @param fingerprint - Optional client fingerprint for tracking
6021
6058
  */
6022
6059
  createTransportSession(protocol, fingerprint) {
6023
- const sessionId = randomUUID10();
6060
+ const sessionId = randomUUID11();
6024
6061
  const session = {
6025
6062
  id: sessionId,
6026
6063
  authorizationId: this.id,
@@ -6098,11 +6135,22 @@ var AuthorizationBase = class _AuthorizationBase {
6098
6135
  /**
6099
6136
  * Build URL for progressive/incremental authorization.
6100
6137
  * Used when a tool requires authorization for an app that was skipped during initial auth.
6138
+ *
6139
+ * The URL only SKIPS the login step when it carries a valid incremental
6140
+ * ticket (GHSA-2c4g-9c8x-6m8g) — mint one with
6141
+ * {@link signIncrementalAuthTicket} using the server signing secret and pass
6142
+ * it here. Without a ticket the link still works, but the user completes an
6143
+ * ordinary login; `mode=incremental` alone is no longer an authorization
6144
+ * signal and is not emitted.
6145
+ *
6101
6146
  * @param appId - App ID that requires authorization
6102
6147
  * @param baseUrl - Base URL of the server
6148
+ * @param ticket - Signed incremental-authorization ticket for this subject
6103
6149
  */
6104
- getProgressiveAuthUrl(appId, baseUrl) {
6105
- return `${baseUrl}/oauth/authorize?app=${encodeURIComponent(appId)}&mode=incremental`;
6150
+ getProgressiveAuthUrl(appId, baseUrl, ticket) {
6151
+ const params = new URLSearchParams({ app: appId });
6152
+ if (ticket) params.set("ticket", ticket);
6153
+ return `${baseUrl}/oauth/authorize?${params.toString()}`;
6106
6154
  }
6107
6155
  /**
6108
6156
  * Check if the authorization is expired
@@ -6209,7 +6257,7 @@ var AuthorizationBase = class _AuthorizationBase {
6209
6257
  };
6210
6258
 
6211
6259
  // libs/auth/src/authorization/public.authorization.ts
6212
- import { randomUUID as randomUUID11 } from "@frontmcp/utils";
6260
+ import { randomUUID as randomUUID12 } from "@frontmcp/utils";
6213
6261
  var PublicAuthorization = class _PublicAuthorization extends AuthorizationBase {
6214
6262
  mode = "public";
6215
6263
  /**
@@ -6245,7 +6293,7 @@ var PublicAuthorization = class _PublicAuthorization extends AuthorizationBase {
6245
6293
  allowedTools = "all",
6246
6294
  allowedPrompts = "all"
6247
6295
  } = ctx;
6248
- const uuid = randomUUID11();
6296
+ const uuid = randomUUID12();
6249
6297
  const sub = `${prefix}:${uuid}`;
6250
6298
  const user = {
6251
6299
  sub,
@@ -10861,6 +10909,7 @@ export {
10861
10909
  CredentialProviderAlreadyRegisteredError,
10862
10910
  CredentialStorageError,
10863
10911
  CredentialsAccessorImpl,
10912
+ DEFAULT_INCREMENTAL_TICKET_TTL_MS,
10864
10913
  DEFAULT_RESUME_TTL_MS,
10865
10914
  DEFAULT_THEME,
10866
10915
  DcrClientRegistry,
@@ -11104,6 +11153,7 @@ export {
11104
11153
  sessionIdPayloadSchema,
11105
11154
  sessionJwtPayloadSchema,
11106
11155
  signCredentialResumeToken,
11156
+ signIncrementalAuthTicket,
11107
11157
  signSession,
11108
11158
  skippedAppBehaviorSchema,
11109
11159
  sseTransportStateSchema,
@@ -11132,6 +11182,7 @@ export {
11132
11182
  vaultConsentRecordSchema,
11133
11183
  vaultFederatedRecordSchema,
11134
11184
  verifyCredentialResumeToken,
11185
+ verifyIncrementalAuthTicket,
11135
11186
  verifyOrParseSession,
11136
11187
  verifyPkce,
11137
11188
  verifySession,
package/esm/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/auth",
3
- "version": "1.7.1",
3
+ "version": "1.7.2",
4
4
  "description": "FrontMCP Auth - Authentication, session management, and credential vault",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -47,8 +47,8 @@
47
47
  "node": ">=24.0.0"
48
48
  },
49
49
  "peerDependencies": {
50
- "@frontmcp/lazy-zod": "1.7.1",
51
- "@frontmcp/storage-sqlite": "1.7.1",
50
+ "@frontmcp/lazy-zod": "1.7.2",
51
+ "@frontmcp/storage-sqlite": "1.7.2",
52
52
  "@vercel/kv": "^3.0.0",
53
53
  "ioredis": "^5.0.0"
54
54
  },
@@ -64,8 +64,8 @@
64
64
  }
65
65
  },
66
66
  "dependencies": {
67
- "@frontmcp/di": "1.7.1",
68
- "@frontmcp/utils": "1.7.1",
67
+ "@frontmcp/di": "1.7.2",
68
+ "@frontmcp/utils": "1.7.2",
69
69
  "jose": "^6.0.0"
70
70
  },
71
71
  "devDependencies": {
package/index.d.ts CHANGED
@@ -34,8 +34,8 @@ export { JwksService, trimSlash, normalizeIssuer, decodeJwtPayloadSafe } from '.
34
34
  export type { JwksServiceOptions, ProviderVerifyRef, VerifyResult } from './jwks';
35
35
  export { CDN, DEFAULT_THEME, baseLayout, createLayout, authLayout, centeredCardLayout, wideLayout, extraWideLayout, escapeHtml, buildConsentPage, buildIncrementalAuthPage, buildFederatedLoginPage, buildToolConsentPage, buildLoginPage, buildConnectPage, buildConnectSuccessPage, buildErrorPage, renderToHtml, renderLocalLoginPage, toLoginExtraFields, } from './ui';
36
36
  export type { ThemeColors, ThemeFonts, ThemeConfig, BaseLayoutOptions, AppAuthCard, ProviderCard, ToolCard, LoginExtraField, ConsentHiddenField, } from './ui';
37
- export { InMemoryAuthorizationStore, RedisAuthorizationStore, StorageAuthorizationStore, verifyPkce, generatePkceChallenge, generateAuthorizationCode, generateRefreshTokenValue, buildCodeRecord, buildPendingRecord, buildRefreshTokenRecord, pkceChallengeSchema, authorizationCodeRecordSchema, credentialTypeSchema, oauthCredentialSchema, apiKeyCredentialSchema, basicAuthCredentialSchema, bearerCredentialSchema, privateKeyCredentialSchema, mtlsCredentialSchema, customCredentialSchema, sshKeyCredentialSchema, serviceAccountCredentialSchema, pkceOAuthCredentialSchema, credentialSchema, appCredentialSchema, vaultConsentRecordSchema, vaultFederatedRecordSchema, pendingIncrementalAuthSchema, authorizationVaultEntrySchema, InMemoryAuthorizationVault, StorageAuthorizationVault, EncryptedTypedStorage, EncryptedStorageError, encryptedDataSchema, encryptedVaultEntrySchema, VaultEncryption, TokenVault, StorageTokenStore, TypedStorage, hkdfSha256, encryptValue, decryptValue, encryptAesGcm, decryptAesGcm, TinyTtlCache, transportProtocolSchema, sseTransportStateSchema, streamableHttpTransportStateSchema, statefulHttpTransportStateSchema, statelessHttpTransportStateSchema, legacySseTransportStateSchema, transportStateSchema, transportSessionSchema, sessionJwtPayloadSchema, encryptedBlobSchema, storedSessionSchema, redisConfigSchema, signSession, verifySession, isSignedSession, verifyOrParseSession, SessionRateLimiter, defaultSessionRateLimiter, TransportIdGenerator, isJwt, getTokenSignatureFingerprint, deriveTypedUser, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, RedisSessionStore, VercelKvSessionStore, InMemoryOrchestratedTokenStore, StorageOrchestratedTokenStore, InMemoryFederatedAuthSessionStore, StorageFederatedAuthSessionStore, toSessionRecord, fromSessionRecord, createFederatedAuthSession, isSessionComplete, getNextProvider, completeCurrentProvider, startNextProvider, InMemoryConsentStore, StorageConsentStore, consentRecordKey, createTokenStorageAdapter, isRedisTokenStorage, isSqliteTokenStorage, isPersistentTokenStorage, redisVaultEntrySchema, EncryptedRedisVault, createEncryptedVault, toEpochSeconds, isSoonExpiring, isSoonExpiringProvider, tryJwtExp, SessionCredentialVault, createSessionCredentialVault, signCredentialResumeToken, verifyCredentialResumeToken, buildCredentialResumeUrl, DEFAULT_RESUME_TTL_MS, CREDENTIALS_ACCESSOR, CredentialsAccessorImpl, EncryptedStorageSecureStoreBackend, SECURE_STORE_ACCESSOR, SecureStoreAccessorImpl, createSecureStore, } from './session';
38
- export type { AuthorizationStore, PkceChallenge, AuthorizationCodeRecord, PendingAuthorizationRecord, RefreshTokenRecord, ConsentStateRecord, FederatedLoginStateRecord, CreateCodeRecordParams, CreatePendingRecordParams, CreateRefreshTokenRecordParams, StorageAuthorizationStoreOptions, CredentialType, OAuthCredential, ApiKeyCredential, BasicAuthCredential, BearerCredential, PrivateKeyCredential, MtlsCredential, CustomCredential, SshKeyCredential, ServiceAccountCredential, PkceOAuthCredential, Credential, AppCredential, VaultConsentRecord, VaultFederatedRecord, PendingIncrementalAuth, AuthorizationVaultEntry, AuthorizationVault, InMemoryAuthorizationVaultOptions, EncryptedData, VaultKeyDerivationClaims, VaultEncryptionConfig, EncryptedVaultEntry, VaultSensitiveData, EncBlob, VaultKey, SecretRecord, TokenStore, TypedStorageOptions, TypedSetOptions, TypedSetEntry, EncryptedTypedStorageOptions, EncryptedSetOptions, EncryptedSetEntry, EncryptionKey, StoredEncryptedBlob, ClientKeyBinding, StorageTokenStoreOptions, StorageAuthorizationVaultOptions, EncryptedBlob, TransportProtocol, SessionStorageMode, TransportSession, TransportState, SseTransportState, StreamableHttpTransportState, StatefulHttpTransportState, StatelessHttpTransportState, LegacySseTransportState, SessionJwtPayload, StatelessSessionJwtPayload, StoredSession, TransportEncryptedBlob, SessionStore, SessionStorageConfig, RedisConfig, SessionSecurityConfig, SessionMode, ProviderEmbedMode, SessionEncBlob, ProviderSnapshot, CreateSessionArgs, SignedSession, SessionSigningConfig, SessionRateLimiterConfig, RateLimitResult, RedisSessionStoreConfig, VercelKvSessionConfig, InMemoryOrchestratedTokenStoreOptions, StorageOrchestratedTokenStoreOptions, StorageFederatedAuthSessionStoreOptions, ProviderPkce, ProviderTokens, ProviderUserInfo, CompletedProvider, FederatedAuthSession, FederatedAuthSessionRecord, FederatedAuthSessionStore, FederatedAuthSessionCreateParams, ConsentStore, RememberedConsentRecord, StorageConsentStoreOptions, RedisVaultEntry, EncryptionContext, TokenRefreshCtx, TokenRefreshResult, TokenRefresher, StoredCredential, SessionCredentialVaultOptions, CreateSessionCredentialVaultOptions, CredentialResumePayload, CredentialsAccessor, CredentialValue, CredentialNotConnected, CredentialConnected, RequireConnectResult, RequireConnectOptions, CredentialsAccessorDeps, SecureStoreBackend, SecureStoreScope, SecureStoreScopeRef, EncryptedStorageSecureStoreBackendOptions, SecureStoreAccessor, SecureStoreSetOptions, SecureStoreAccessorDeps, CreateSecureStoreOptions, ResolvedSecureStore, SecureStoreBackendKind, } from './session';
37
+ export { InMemoryAuthorizationStore, RedisAuthorizationStore, StorageAuthorizationStore, verifyPkce, generatePkceChallenge, generateAuthorizationCode, generateRefreshTokenValue, buildCodeRecord, buildPendingRecord, buildRefreshTokenRecord, pkceChallengeSchema, authorizationCodeRecordSchema, credentialTypeSchema, oauthCredentialSchema, apiKeyCredentialSchema, basicAuthCredentialSchema, bearerCredentialSchema, privateKeyCredentialSchema, mtlsCredentialSchema, customCredentialSchema, sshKeyCredentialSchema, serviceAccountCredentialSchema, pkceOAuthCredentialSchema, credentialSchema, appCredentialSchema, vaultConsentRecordSchema, vaultFederatedRecordSchema, pendingIncrementalAuthSchema, authorizationVaultEntrySchema, InMemoryAuthorizationVault, StorageAuthorizationVault, EncryptedTypedStorage, EncryptedStorageError, encryptedDataSchema, encryptedVaultEntrySchema, VaultEncryption, TokenVault, StorageTokenStore, TypedStorage, hkdfSha256, encryptValue, decryptValue, encryptAesGcm, decryptAesGcm, TinyTtlCache, transportProtocolSchema, sseTransportStateSchema, streamableHttpTransportStateSchema, statefulHttpTransportStateSchema, statelessHttpTransportStateSchema, legacySseTransportStateSchema, transportStateSchema, transportSessionSchema, sessionJwtPayloadSchema, encryptedBlobSchema, storedSessionSchema, redisConfigSchema, signSession, verifySession, isSignedSession, verifyOrParseSession, SessionRateLimiter, defaultSessionRateLimiter, TransportIdGenerator, isJwt, getTokenSignatureFingerprint, deriveTypedUser, extractBearerToken, getKey, encryptJson, decryptSessionJson, safeDecrypt, resetCachedKey, RedisSessionStore, VercelKvSessionStore, InMemoryOrchestratedTokenStore, StorageOrchestratedTokenStore, InMemoryFederatedAuthSessionStore, StorageFederatedAuthSessionStore, toSessionRecord, fromSessionRecord, createFederatedAuthSession, isSessionComplete, getNextProvider, completeCurrentProvider, startNextProvider, InMemoryConsentStore, StorageConsentStore, consentRecordKey, createTokenStorageAdapter, isRedisTokenStorage, isSqliteTokenStorage, isPersistentTokenStorage, redisVaultEntrySchema, EncryptedRedisVault, createEncryptedVault, toEpochSeconds, isSoonExpiring, isSoonExpiringProvider, tryJwtExp, SessionCredentialVault, createSessionCredentialVault, signCredentialResumeToken, verifyCredentialResumeToken, buildCredentialResumeUrl, DEFAULT_RESUME_TTL_MS, signIncrementalAuthTicket, verifyIncrementalAuthTicket, DEFAULT_INCREMENTAL_TICKET_TTL_MS, CREDENTIALS_ACCESSOR, CredentialsAccessorImpl, EncryptedStorageSecureStoreBackend, SECURE_STORE_ACCESSOR, SecureStoreAccessorImpl, createSecureStore, } from './session';
38
+ export type { AuthorizationStore, PkceChallenge, AuthorizationCodeRecord, PendingAuthorizationRecord, RefreshTokenRecord, ConsentStateRecord, FederatedLoginStateRecord, CreateCodeRecordParams, CreatePendingRecordParams, CreateRefreshTokenRecordParams, StorageAuthorizationStoreOptions, CredentialType, OAuthCredential, ApiKeyCredential, BasicAuthCredential, BearerCredential, PrivateKeyCredential, MtlsCredential, CustomCredential, SshKeyCredential, ServiceAccountCredential, PkceOAuthCredential, Credential, AppCredential, VaultConsentRecord, VaultFederatedRecord, PendingIncrementalAuth, AuthorizationVaultEntry, AuthorizationVault, InMemoryAuthorizationVaultOptions, EncryptedData, VaultKeyDerivationClaims, VaultEncryptionConfig, EncryptedVaultEntry, VaultSensitiveData, EncBlob, VaultKey, SecretRecord, TokenStore, TypedStorageOptions, TypedSetOptions, TypedSetEntry, EncryptedTypedStorageOptions, EncryptedSetOptions, EncryptedSetEntry, EncryptionKey, StoredEncryptedBlob, ClientKeyBinding, StorageTokenStoreOptions, StorageAuthorizationVaultOptions, EncryptedBlob, TransportProtocol, SessionStorageMode, TransportSession, TransportState, SseTransportState, StreamableHttpTransportState, StatefulHttpTransportState, StatelessHttpTransportState, LegacySseTransportState, SessionJwtPayload, StatelessSessionJwtPayload, StoredSession, TransportEncryptedBlob, SessionStore, SessionStorageConfig, RedisConfig, SessionSecurityConfig, SessionMode, ProviderEmbedMode, SessionEncBlob, ProviderSnapshot, CreateSessionArgs, SignedSession, SessionSigningConfig, SessionRateLimiterConfig, RateLimitResult, RedisSessionStoreConfig, VercelKvSessionConfig, InMemoryOrchestratedTokenStoreOptions, StorageOrchestratedTokenStoreOptions, StorageFederatedAuthSessionStoreOptions, ProviderPkce, ProviderTokens, ProviderUserInfo, CompletedProvider, FederatedAuthSession, FederatedAuthSessionRecord, FederatedAuthSessionStore, FederatedAuthSessionCreateParams, ConsentStore, RememberedConsentRecord, StorageConsentStoreOptions, RedisVaultEntry, EncryptionContext, TokenRefreshCtx, TokenRefreshResult, TokenRefresher, StoredCredential, SessionCredentialVaultOptions, CreateSessionCredentialVaultOptions, CredentialResumePayload, IncrementalAuthTicketPayload, CredentialsAccessor, CredentialValue, CredentialNotConnected, CredentialConnected, RequireConnectResult, RequireConnectOptions, CredentialsAccessorDeps, SecureStoreBackend, SecureStoreScope, SecureStoreScopeRef, EncryptedStorageSecureStoreBackendOptions, SecureStoreAccessor, SecureStoreSetOptions, SecureStoreAccessorDeps, CreateSecureStoreOptions, ResolvedSecureStore, SecureStoreBackendKind, } from './session';
39
39
  export { type AuthMode, type AuthUser, type AuthorizedTool, type AuthorizedPrompt, type LLMSafeAuthContext, type AppAuthorizationRecord, type ProgressiveAuthState, type AuthorizationCreateCtx, type Authorization, AppAuthState, authModeSchema, authUserSchema, authorizedToolSchema, authorizedPromptSchema, llmSafeAuthContextSchema, appAuthStateSchema, appAuthorizationRecordSchema, progressiveAuthStateSchema, AuthorizationBase, PublicAuthorization, type PublicAuthorizationCreateCtx, TransparentAuthorization, type TransparentAuthorizationCreateCtx, type TransparentVerifiedPayload, OrchestratedAuthorization, type OrchestratedAuthorizationCreateCtx, type OrchestratedProviderState, type OrchestratedTokenStore, type TokenRefreshCallback, type OrchestratedAuthAccessor, OrchestratedAuthAccessorAdapter, NullOrchestratedAuthAccessor, ORCHESTRATED_AUTH_ACCESSOR, DcrClientRegistry, type RegisteredClient, type PreRegisteredClientInput, type DcrRegistryConfig, } from './authorization';
40
40
  export type { AuthLogger } from './common';
41
41
  export type { RawZodShape } from './common';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}