@agentuity/core 2.0.0-beta.1 → 2.0.1

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.
Files changed (67) hide show
  1. package/dist/services/auth/index.d.ts +7 -0
  2. package/dist/services/auth/index.d.ts.map +1 -0
  3. package/dist/services/auth/index.js +7 -0
  4. package/dist/services/auth/index.js.map +1 -0
  5. package/dist/services/auth/types.d.ts +192 -0
  6. package/dist/services/auth/types.d.ts.map +1 -0
  7. package/dist/services/auth/types.js +11 -0
  8. package/dist/services/auth/types.js.map +1 -0
  9. package/dist/services/index.d.ts +1 -0
  10. package/dist/services/index.d.ts.map +1 -1
  11. package/dist/services/index.js +1 -0
  12. package/dist/services/index.js.map +1 -1
  13. package/dist/services/oauth/flow.d.ts +31 -0
  14. package/dist/services/oauth/flow.d.ts.map +1 -1
  15. package/dist/services/oauth/flow.js +138 -13
  16. package/dist/services/oauth/flow.js.map +1 -1
  17. package/dist/services/oauth/index.d.ts +1 -0
  18. package/dist/services/oauth/index.d.ts.map +1 -1
  19. package/dist/services/oauth/index.js +1 -0
  20. package/dist/services/oauth/index.js.map +1 -1
  21. package/dist/services/oauth/token-storage.d.ts +109 -0
  22. package/dist/services/oauth/token-storage.d.ts.map +1 -0
  23. package/dist/services/oauth/token-storage.js +140 -0
  24. package/dist/services/oauth/token-storage.js.map +1 -0
  25. package/dist/services/oauth/types.d.ts +21 -0
  26. package/dist/services/oauth/types.d.ts.map +1 -1
  27. package/dist/services/oauth/types.js +21 -0
  28. package/dist/services/oauth/types.js.map +1 -1
  29. package/dist/services/project/get.d.ts +12 -0
  30. package/dist/services/project/get.d.ts.map +1 -1
  31. package/dist/services/project/get.js +9 -0
  32. package/dist/services/project/get.js.map +1 -1
  33. package/dist/services/sandbox/create.d.ts +3 -0
  34. package/dist/services/sandbox/create.d.ts.map +1 -1
  35. package/dist/services/sandbox/create.js +7 -0
  36. package/dist/services/sandbox/create.js.map +1 -1
  37. package/dist/services/sandbox/execute.d.ts.map +1 -1
  38. package/dist/services/sandbox/execute.js +22 -11
  39. package/dist/services/sandbox/execute.js.map +1 -1
  40. package/dist/services/sandbox/run.d.ts +1 -0
  41. package/dist/services/sandbox/run.d.ts.map +1 -1
  42. package/dist/services/sandbox/run.js +83 -30
  43. package/dist/services/sandbox/run.js.map +1 -1
  44. package/dist/services/sandbox/types.d.ts +10 -0
  45. package/dist/services/sandbox/types.d.ts.map +1 -1
  46. package/dist/services/sandbox/types.js +19 -0
  47. package/dist/services/sandbox/types.js.map +1 -1
  48. package/dist/services/schedule/service.d.ts +5 -0
  49. package/dist/services/schedule/service.d.ts.map +1 -1
  50. package/dist/services/schedule/service.js +16 -0
  51. package/dist/services/schedule/service.js.map +1 -1
  52. package/dist/services/schedule/types.d.ts +1 -0
  53. package/dist/services/schedule/types.d.ts.map +1 -1
  54. package/package.json +2 -2
  55. package/src/services/auth/index.ts +19 -0
  56. package/src/services/auth/types.ts +223 -0
  57. package/src/services/index.ts +1 -0
  58. package/src/services/oauth/flow.ts +156 -15
  59. package/src/services/oauth/index.ts +1 -0
  60. package/src/services/oauth/token-storage.ts +220 -0
  61. package/src/services/oauth/types.ts +28 -0
  62. package/src/services/project/get.ts +9 -0
  63. package/src/services/sandbox/create.ts +9 -0
  64. package/src/services/sandbox/execute.ts +26 -12
  65. package/src/services/sandbox/run.ts +129 -34
  66. package/src/services/sandbox/types.ts +21 -0
  67. package/src/services/schedule/service.ts +20 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Authentication service types.
3
+ *
4
+ * @module services/auth
5
+ */
6
+ export type { AuthUser, AuthSession, AuthContext, AuthOrgContext, AuthApiKeyPermissions, AuthApiKeyContext, AuthMethod, AgentuityAuth, AuthOrgHelpers, AuthApiKeyHelpers, AuthInterface, } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACX,QAAQ,EACR,WAAW,EACX,WAAW,EACX,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,aAAa,GACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Authentication service types.
3
+ *
4
+ * @module services/auth
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/auth/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Core authentication types for Agentuity.
3
+ *
4
+ * These types are defined in @agentuity/core to avoid circular dependencies
5
+ * and allow packages like @agentuity/runtime to use auth types without
6
+ * pulling in heavy dependencies like drizzle-orm.
7
+ *
8
+ * @module services/auth/types
9
+ */
10
+ /**
11
+ * Canonical authenticated user type for Agentuity Auth.
12
+ *
13
+ * Common fields include:
14
+ * - `id` – Stable user identifier
15
+ * - `email` – Primary email address
16
+ * - `name` – Display name
17
+ * - `image` – Avatar URL (if configured)
18
+ * - `createdAt` / `updatedAt` – Timestamps
19
+ */
20
+ export interface AuthUser {
21
+ id: string;
22
+ email: string;
23
+ name?: string | null;
24
+ image?: string | null;
25
+ createdAt?: Date | string;
26
+ updatedAt?: Date | string;
27
+ }
28
+ /**
29
+ * Auth session type with organization plugin fields.
30
+ */
31
+ export interface AuthSession {
32
+ id: string;
33
+ userId: string;
34
+ expiresAt: Date | string;
35
+ /** Active organization ID from the organization plugin */
36
+ activeOrganizationId?: string;
37
+ ipAddress?: string | null;
38
+ userAgent?: string | null;
39
+ createdAt?: Date | string;
40
+ updatedAt?: Date | string;
41
+ }
42
+ /**
43
+ * Auth context containing user, session, and org data.
44
+ * This is the full auth context available on AgentContext.auth and c.var.auth.
45
+ * Session may be null for API key authentication.
46
+ */
47
+ export interface AuthContext<TUser = AuthUser, TSession = AuthSession | null> {
48
+ user: TUser;
49
+ session: TSession;
50
+ org: AuthOrgContext | null;
51
+ }
52
+ /**
53
+ * Organization context from the organization plugin.
54
+ */
55
+ export interface AuthOrgContext {
56
+ /** Organization ID */
57
+ id: string;
58
+ /** Organization slug (URL-friendly identifier) */
59
+ slug?: string | null;
60
+ /** Organization display name */
61
+ name?: string | null;
62
+ /** Member's role in this organization (e.g., 'owner', 'admin', 'member') */
63
+ role?: string | null;
64
+ /** Member ID for this user in this organization */
65
+ memberId?: string | null;
66
+ /** Organization metadata (if enabled) */
67
+ metadata?: unknown;
68
+ }
69
+ /**
70
+ * API key permissions format.
71
+ * Maps resource names to arrays of allowed actions.
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const permissions: AuthApiKeyPermissions = {
76
+ * project: ['read', 'write'],
77
+ * user: ['read'],
78
+ * admin: ['*'], // wildcard - all actions
79
+ * };
80
+ * ```
81
+ */
82
+ export interface AuthApiKeyPermissions {
83
+ [key: string]: string[];
84
+ }
85
+ /**
86
+ * API key context when request is authenticated via API key.
87
+ */
88
+ export interface AuthApiKeyContext {
89
+ /** API key ID */
90
+ id: string;
91
+ /** Display name of the API key */
92
+ name?: string | null;
93
+ /** Permissions associated with this API key */
94
+ permissions: AuthApiKeyPermissions;
95
+ /** User ID the API key belongs to */
96
+ userId?: string | null;
97
+ }
98
+ /**
99
+ * Authentication method used for the current request.
100
+ */
101
+ export type AuthMethod = 'session' | 'api-key' | 'bearer';
102
+ /**
103
+ * Generic authentication interface exposed on Hono context.
104
+ *
105
+ * This type is intentionally provider-agnostic.
106
+ *
107
+ * @typeParam TUser - Domain user type (defaults to unknown for flexibility).
108
+ * @typeParam TRaw - Underlying auth context (defaults to unknown for flexibility).
109
+ */
110
+ export interface AgentuityAuth<TUser = unknown, TRaw = unknown> {
111
+ /** Get the authenticated user, throws if not authenticated */
112
+ getUser(): Promise<TUser>;
113
+ /** Get the raw JWT token */
114
+ getToken(): Promise<string | null>;
115
+ /** Raw provider-specific auth object or auth context */
116
+ raw: TRaw;
117
+ }
118
+ /**
119
+ * Organization helpers available on the auth context.
120
+ */
121
+ export interface AuthOrgHelpers {
122
+ /** Active organization context if available, null otherwise */
123
+ org: AuthOrgContext | null;
124
+ /** Returns active org or null (never throws) */
125
+ getOrg(): Promise<AuthOrgContext | null>;
126
+ /** Convenience accessor for the member's role on the active org */
127
+ getOrgRole(): Promise<string | null>;
128
+ /** True if the current member's role is one of the provided roles */
129
+ hasOrgRole(...roles: string[]): Promise<boolean>;
130
+ }
131
+ /**
132
+ * API key helpers available on the auth context.
133
+ */
134
+ export interface AuthApiKeyHelpers {
135
+ /** How this request was authenticated */
136
+ authMethod: AuthMethod;
137
+ /** API key context when request is authenticated via API key, null otherwise */
138
+ apiKey: AuthApiKeyContext | null;
139
+ /**
140
+ * Check if the API key has the required permissions.
141
+ * All specified actions must be present for the resource.
142
+ * Supports '*' wildcard which matches any action.
143
+ *
144
+ * @param resource - The resource to check (e.g., 'project', 'user')
145
+ * @param actions - Actions required (e.g., 'read', 'write')
146
+ * @returns true if all actions are permitted, false otherwise
147
+ *
148
+ * @example
149
+ * ```typescript
150
+ * // Check for specific permission
151
+ * if (c.var.auth.hasPermission('project', 'write')) { ... }
152
+ *
153
+ * // Check for multiple permissions (all required)
154
+ * if (c.var.auth.hasPermission('project', 'read', 'write')) { ... }
155
+ * ```
156
+ */
157
+ hasPermission(resource: string, ...actions: string[]): boolean;
158
+ }
159
+ /**
160
+ * Full authentication interface available on `c.var.auth` and `ctx.auth`.
161
+ *
162
+ * This is the primary interface you'll use to access authentication data
163
+ * in your route handlers and agents. It provides:
164
+ *
165
+ * - User data via `getUser()`
166
+ * - Organization helpers via `getOrg()`, `getOrgRole()`, `hasOrgRole()`
167
+ * - API key helpers via `apiKey`, `hasPermission()`
168
+ * - Token access via `getToken()`
169
+ *
170
+ * @example Route handler
171
+ * ```typescript
172
+ * app.get('/api/profile', async (c) => {
173
+ * const user = await c.var.auth.getUser();
174
+ * const org = await c.var.auth.getOrg();
175
+ * return c.json({ user, org });
176
+ * });
177
+ * ```
178
+ *
179
+ * @example Agent handler
180
+ * ```typescript
181
+ * handler: async (ctx, input) => {
182
+ * if (!ctx.auth) return { error: 'Unauthorized' };
183
+ * const user = await ctx.auth.getUser();
184
+ * return { message: `Hello, ${user.email}!` };
185
+ * }
186
+ * ```
187
+ *
188
+ * @typeParam TUser - User type (extends AuthUser, defaults to AuthUser)
189
+ */
190
+ export interface AuthInterface<TUser extends AuthUser = AuthUser> extends AgentuityAuth<TUser, AuthContext<TUser>>, AuthOrgHelpers, AuthApiKeyHelpers {
191
+ }
192
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/auth/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Core authentication types for Agentuity.
3
+ *
4
+ * These types are defined in @agentuity/core to avoid circular dependencies
5
+ * and allow packages like @agentuity/runtime to use auth types without
6
+ * pulling in heavy dependencies like drizzle-orm.
7
+ *
8
+ * @module services/auth/types
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -1,4 +1,5 @@
1
1
  export * from './adapter.ts';
2
+ export * from './auth/index.ts';
2
3
  export * from './email/index.ts';
3
4
  export * from './exception.ts';
4
5
  export * from './keyvalue/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./adapter.js";
2
+ export * from "./auth/index.js";
2
3
  export * from "./email/index.js";
3
4
  export * from "./exception.js";
4
5
  export * from "./keyvalue/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -34,6 +34,37 @@ export declare function buildAuthorizeUrl(redirectUri: string, config?: OAuthFlo
34
34
  * ```
35
35
  */
36
36
  export declare function exchangeToken(code: string, redirectUri: string, config?: OAuthFlowConfig): Promise<OAuthTokenResponse>;
37
+ /**
38
+ * Refresh an access token using a refresh token.
39
+ *
40
+ * @param refreshTokenValue - The refresh token obtained from a previous token exchange
41
+ * @param config - Optional OAuth configuration. Falls back to environment variables.
42
+ * @returns The token response including a new access_token, and optionally a new refresh_token
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const newToken = await refreshToken(previousToken.refresh_token!);
47
+ * console.log(newToken.access_token);
48
+ * ```
49
+ */
50
+ export declare function refreshToken(refreshTokenValue: string, config?: OAuthFlowConfig): Promise<OAuthTokenResponse>;
51
+ /**
52
+ * Revoke an OAuth token (access token or refresh token) to log the user out.
53
+ *
54
+ * Calls the token revocation endpoint (RFC 7009). The server will invalidate
55
+ * the token so it can no longer be used. Per the spec, the endpoint returns
56
+ * a success response even if the token was already invalid.
57
+ *
58
+ * @param token - The access token or refresh token to revoke
59
+ * @param config - Optional OAuth configuration. Falls back to environment variables.
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Revoke the refresh token to fully log out
64
+ * await logout(token.refresh_token!);
65
+ * ```
66
+ */
67
+ export declare function logout(token: string, config?: OAuthFlowConfig): Promise<void>;
37
68
  /**
38
69
  * Fetch user information from the OIDC userinfo endpoint using an access token.
39
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/services/oauth/flow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+BrF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CA2BvF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAyD7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAuCxB"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/services/oauth/flow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgDrF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,CA2BvF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAoD7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CACjC,iBAAiB,EAAE,MAAM,EACzB,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAmD7B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAkCxB"}
@@ -19,9 +19,24 @@ function resolveConfig(config) {
19
19
  const userinfoUrl = config?.userinfoUrl ??
20
20
  getEnv('OAUTH_USERINFO_URL') ??
21
21
  (issuer ? `${issuer}/userinfo` : undefined);
22
+ const revokeUrl = config?.revokeUrl ?? getEnv('OAUTH_REVOKE_URL') ?? (issuer ? `${issuer}/revoke` : undefined);
23
+ const endSessionUrl = config?.endSessionUrl ??
24
+ getEnv('OAUTH_END_SESSION_URL') ??
25
+ (issuer ? `${issuer}/end_session` : undefined);
22
26
  const scopes = config?.scopes ?? getEnv('OAUTH_SCOPES') ?? 'openid profile email';
23
27
  const prompt = config?.prompt;
24
- return { clientId, clientSecret, issuer, authorizeUrl, tokenUrl, userinfoUrl, scopes, prompt };
28
+ return {
29
+ clientId,
30
+ clientSecret,
31
+ issuer,
32
+ authorizeUrl,
33
+ tokenUrl,
34
+ userinfoUrl,
35
+ revokeUrl,
36
+ endSessionUrl,
37
+ scopes,
38
+ prompt,
39
+ };
25
40
  }
26
41
  /**
27
42
  * Build an OAuth 2.0 authorization URL for redirecting the user to the OIDC provider.
@@ -96,8 +111,6 @@ export async function exchangeToken(code, redirectUri, config) {
96
111
  message: 'No client secret configured. Set OAUTH_CLIENT_SECRET environment variable.',
97
112
  });
98
113
  }
99
- const controller = new AbortController();
100
- const timer = setTimeout(() => controller.abort(), DEFAULT_TIMEOUT_MS);
101
114
  let response;
102
115
  try {
103
116
  response = await fetch(resolved.tokenUrl, {
@@ -110,19 +123,17 @@ export async function exchangeToken(code, redirectUri, config) {
110
123
  client_id: resolved.clientId,
111
124
  client_secret: resolved.clientSecret,
112
125
  }),
113
- signal: controller.signal,
126
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
114
127
  });
115
128
  }
116
129
  catch (err) {
117
- clearTimeout(timer);
118
- if (err instanceof DOMException && err.name === 'AbortError') {
130
+ if (err instanceof DOMException && err.name === 'TimeoutError') {
119
131
  throw new OAuthResponseError({
120
132
  message: `Token exchange timed out after ${DEFAULT_TIMEOUT_MS}ms`,
121
133
  });
122
134
  }
123
135
  throw err;
124
136
  }
125
- clearTimeout(timer);
126
137
  if (!response.ok) {
127
138
  const error = await response.text();
128
139
  throw new OAuthResponseError({
@@ -132,6 +143,124 @@ export async function exchangeToken(code, redirectUri, config) {
132
143
  const data = await response.json();
133
144
  return OAuthTokenResponseSchema.parse(data);
134
145
  }
146
+ /**
147
+ * Refresh an access token using a refresh token.
148
+ *
149
+ * @param refreshTokenValue - The refresh token obtained from a previous token exchange
150
+ * @param config - Optional OAuth configuration. Falls back to environment variables.
151
+ * @returns The token response including a new access_token, and optionally a new refresh_token
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const newToken = await refreshToken(previousToken.refresh_token!);
156
+ * console.log(newToken.access_token);
157
+ * ```
158
+ */
159
+ export async function refreshToken(refreshTokenValue, config) {
160
+ const resolved = resolveConfig(config);
161
+ if (!resolved.tokenUrl) {
162
+ throw new OAuthResponseError({
163
+ message: 'No token URL configured. Set OAUTH_TOKEN_URL or OAUTH_ISSUER environment variable.',
164
+ });
165
+ }
166
+ if (!resolved.clientId) {
167
+ throw new OAuthResponseError({
168
+ message: 'No client ID configured. Set OAUTH_CLIENT_ID environment variable.',
169
+ });
170
+ }
171
+ const params = new URLSearchParams({
172
+ grant_type: 'refresh_token',
173
+ refresh_token: refreshTokenValue,
174
+ client_id: resolved.clientId,
175
+ });
176
+ if (resolved.clientSecret) {
177
+ params.set('client_secret', resolved.clientSecret);
178
+ }
179
+ let response;
180
+ try {
181
+ response = await fetch(resolved.tokenUrl, {
182
+ method: 'POST',
183
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
184
+ body: params,
185
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
186
+ });
187
+ }
188
+ catch (err) {
189
+ if (err instanceof DOMException && err.name === 'TimeoutError') {
190
+ throw new OAuthResponseError({
191
+ message: `Token refresh timed out after ${DEFAULT_TIMEOUT_MS}ms`,
192
+ });
193
+ }
194
+ throw err;
195
+ }
196
+ if (!response.ok) {
197
+ const error = await response.text();
198
+ throw new OAuthResponseError({
199
+ message: `Token refresh failed (${response.status}): ${error}`,
200
+ });
201
+ }
202
+ const data = await response.json();
203
+ return OAuthTokenResponseSchema.parse(data);
204
+ }
205
+ /**
206
+ * Revoke an OAuth token (access token or refresh token) to log the user out.
207
+ *
208
+ * Calls the token revocation endpoint (RFC 7009). The server will invalidate
209
+ * the token so it can no longer be used. Per the spec, the endpoint returns
210
+ * a success response even if the token was already invalid.
211
+ *
212
+ * @param token - The access token or refresh token to revoke
213
+ * @param config - Optional OAuth configuration. Falls back to environment variables.
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * // Revoke the refresh token to fully log out
218
+ * await logout(token.refresh_token!);
219
+ * ```
220
+ */
221
+ export async function logout(token, config) {
222
+ const resolved = resolveConfig(config);
223
+ if (!resolved.revokeUrl) {
224
+ throw new OAuthResponseError({
225
+ message: 'No revoke URL configured. Set OAUTH_REVOKE_URL or OAUTH_ISSUER environment variable.',
226
+ });
227
+ }
228
+ if (!resolved.clientId) {
229
+ throw new OAuthResponseError({
230
+ message: 'No client ID configured. Set OAUTH_CLIENT_ID environment variable.',
231
+ });
232
+ }
233
+ const params = new URLSearchParams({
234
+ token,
235
+ client_id: resolved.clientId,
236
+ });
237
+ if (resolved.clientSecret) {
238
+ params.set('client_secret', resolved.clientSecret);
239
+ }
240
+ let response;
241
+ try {
242
+ response = await fetch(resolved.revokeUrl, {
243
+ method: 'POST',
244
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
245
+ body: params,
246
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
247
+ });
248
+ }
249
+ catch (err) {
250
+ if (err instanceof DOMException && err.name === 'TimeoutError') {
251
+ throw new OAuthResponseError({
252
+ message: `Token revocation timed out after ${DEFAULT_TIMEOUT_MS}ms`,
253
+ });
254
+ }
255
+ throw err;
256
+ }
257
+ if (!response.ok) {
258
+ const error = await response.text();
259
+ throw new OAuthResponseError({
260
+ message: `Token revocation failed (${response.status}): ${error}`,
261
+ });
262
+ }
263
+ }
135
264
  /**
136
265
  * Fetch user information from the OIDC userinfo endpoint using an access token.
137
266
  *
@@ -152,25 +281,21 @@ export async function fetchUserInfo(accessToken, config) {
152
281
  message: 'No userinfo URL configured. Set OAUTH_USERINFO_URL or OAUTH_ISSUER environment variable.',
153
282
  });
154
283
  }
155
- const controller = new AbortController();
156
- const timer = setTimeout(() => controller.abort(), DEFAULT_TIMEOUT_MS);
157
284
  let response;
158
285
  try {
159
286
  response = await fetch(resolved.userinfoUrl, {
160
287
  headers: { Authorization: `Bearer ${accessToken}` },
161
- signal: controller.signal,
288
+ signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
162
289
  });
163
290
  }
164
291
  catch (err) {
165
- clearTimeout(timer);
166
- if (err instanceof DOMException && err.name === 'AbortError') {
292
+ if (err instanceof DOMException && err.name === 'TimeoutError') {
167
293
  throw new OAuthResponseError({
168
294
  message: `Userinfo request timed out after ${DEFAULT_TIMEOUT_MS}ms`,
169
295
  });
170
296
  }
171
297
  throw err;
172
298
  }
173
- clearTimeout(timer);
174
299
  if (!response.ok) {
175
300
  const error = await response.text();
176
301
  throw new OAuthResponseError({
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/services/oauth/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/services/oauth/flow.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export * from './members.ts';
7
7
  export * from './keys.ts';
8
8
  export * from './util.ts';
9
9
  export * from './flow.ts';
10
+ export * from './token-storage.ts';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC"}
@@ -7,4 +7,5 @@ export * from "./members.js";
7
7
  export * from "./keys.js";
8
8
  export * from "./util.js";
9
9
  export * from "./flow.js";
10
+ export * from "./token-storage.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/oauth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC"}