@happyvertical/auth 0.74.8

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 (45) hide show
  1. package/AGENT.md +33 -0
  2. package/LICENSE +7 -0
  3. package/README.md +73 -0
  4. package/dist/chunks/cognito-dmypylFX.js +128 -0
  5. package/dist/chunks/cognito-dmypylFX.js.map +1 -0
  6. package/dist/chunks/decode_jwt-D2OK1b8a.js +1395 -0
  7. package/dist/chunks/decode_jwt-D2OK1b8a.js.map +1 -0
  8. package/dist/chunks/github-NSZp5tVm.js +413 -0
  9. package/dist/chunks/github-NSZp5tVm.js.map +1 -0
  10. package/dist/chunks/google-HXk2ctYR.js +483 -0
  11. package/dist/chunks/google-HXk2ctYR.js.map +1 -0
  12. package/dist/chunks/index-BpsMhFXS.js +151 -0
  13. package/dist/chunks/index-BpsMhFXS.js.map +1 -0
  14. package/dist/chunks/kanidm-hkw-YPVF.js +747 -0
  15. package/dist/chunks/kanidm-hkw-YPVF.js.map +1 -0
  16. package/dist/chunks/keycloak-t6JEUeOz.js +871 -0
  17. package/dist/chunks/keycloak-t6JEUeOz.js.map +1 -0
  18. package/dist/cli/claude-context.d.ts +3 -0
  19. package/dist/cli/claude-context.d.ts.map +1 -0
  20. package/dist/cli/claude-context.js +21 -0
  21. package/dist/cli/claude-context.js.map +1 -0
  22. package/dist/index.d.ts +65 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +499 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/shared/errors.d.ts +227 -0
  27. package/dist/shared/errors.d.ts.map +1 -0
  28. package/dist/shared/factory.d.ts +85 -0
  29. package/dist/shared/factory.d.ts.map +1 -0
  30. package/dist/shared/providers/cognito.d.ts +38 -0
  31. package/dist/shared/providers/cognito.d.ts.map +1 -0
  32. package/dist/shared/providers/github.d.ts +65 -0
  33. package/dist/shared/providers/github.d.ts.map +1 -0
  34. package/dist/shared/providers/google.d.ts +58 -0
  35. package/dist/shared/providers/google.d.ts.map +1 -0
  36. package/dist/shared/providers/kanidm.d.ts +78 -0
  37. package/dist/shared/providers/kanidm.d.ts.map +1 -0
  38. package/dist/shared/providers/keycloak.d.ts +67 -0
  39. package/dist/shared/providers/keycloak.d.ts.map +1 -0
  40. package/dist/shared/providers/nostr/index.d.ts +47 -0
  41. package/dist/shared/providers/nostr/index.d.ts.map +1 -0
  42. package/dist/shared/types.d.ts +812 -0
  43. package/dist/shared/types.d.ts.map +1 -0
  44. package/metadata.json +32 -0
  45. package/package.json +60 -0
@@ -0,0 +1,227 @@
1
+ /**
2
+ * @happyvertical/auth - Error Classes
3
+ *
4
+ * Standardized authentication error types for consistent error handling
5
+ * across all providers (Keycloak, Cognito, Nostr).
6
+ */
7
+ /**
8
+ * Authentication error codes.
9
+ */
10
+ export declare enum AuthErrorCode {
11
+ INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
12
+ INVALID_TOKEN = "INVALID_TOKEN",
13
+ TOKEN_EXPIRED = "TOKEN_EXPIRED",
14
+ INVALID_REFRESH_TOKEN = "INVALID_REFRESH_TOKEN",
15
+ SESSION_EXPIRED = "SESSION_EXPIRED",
16
+ MFA_REQUIRED = "MFA_REQUIRED",
17
+ INVALID_MFA_CODE = "INVALID_MFA_CODE",
18
+ ACCESS_DENIED = "ACCESS_DENIED",
19
+ INSUFFICIENT_SCOPE = "INSUFFICIENT_SCOPE",
20
+ INVALID_ROLE = "INVALID_ROLE",
21
+ USER_NOT_FOUND = "USER_NOT_FOUND",
22
+ USER_ALREADY_EXISTS = "USER_ALREADY_EXISTS",
23
+ USER_DISABLED = "USER_DISABLED",
24
+ PROVIDER_ERROR = "PROVIDER_ERROR",
25
+ CONFIGURATION_ERROR = "CONFIGURATION_ERROR",
26
+ NETWORK_ERROR = "NETWORK_ERROR",
27
+ INVALID_STATE = "INVALID_STATE",
28
+ INVALID_NONCE = "INVALID_NONCE",
29
+ INVALID_GRANT = "INVALID_GRANT",
30
+ INVALID_CLIENT = "INVALID_CLIENT",
31
+ INVALID_REDIRECT_URI = "INVALID_REDIRECT_URI",
32
+ INVALID_SIGNATURE = "INVALID_SIGNATURE",
33
+ RELAY_ERROR = "RELAY_ERROR",
34
+ CHALLENGE_EXPIRED = "CHALLENGE_EXPIRED",
35
+ EXTENSION_NOT_FOUND = "EXTENSION_NOT_FOUND",
36
+ INVALID_KEY = "INVALID_KEY",
37
+ NOT_IMPLEMENTED = "NOT_IMPLEMENTED",
38
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
39
+ }
40
+ /**
41
+ * Base authentication error class.
42
+ */
43
+ export declare class AuthError extends Error {
44
+ readonly code: AuthErrorCode;
45
+ readonly provider?: string;
46
+ readonly context?: Record<string, unknown>;
47
+ constructor(message: string, code: AuthErrorCode, provider?: string, context?: Record<string, unknown>);
48
+ /**
49
+ * Convert error to JSON for logging/serialization.
50
+ */
51
+ toJSON(): Record<string, unknown>;
52
+ }
53
+ /**
54
+ * Invalid credentials error.
55
+ */
56
+ export declare class InvalidCredentialsError extends AuthError {
57
+ constructor(provider?: string, context?: Record<string, unknown>);
58
+ }
59
+ /**
60
+ * Invalid token error.
61
+ */
62
+ export declare class InvalidTokenError extends AuthError {
63
+ constructor(message?: string, provider?: string, context?: Record<string, unknown>);
64
+ }
65
+ /**
66
+ * Token expired error.
67
+ */
68
+ export declare class TokenExpiredError extends AuthError {
69
+ readonly expiredAt?: Date;
70
+ constructor(provider?: string, expiredAt?: Date, context?: Record<string, unknown>);
71
+ }
72
+ /**
73
+ * Invalid refresh token error.
74
+ */
75
+ export declare class InvalidRefreshTokenError extends AuthError {
76
+ constructor(provider?: string, context?: Record<string, unknown>);
77
+ }
78
+ /**
79
+ * Session expired error.
80
+ */
81
+ export declare class SessionExpiredError extends AuthError {
82
+ constructor(provider?: string, context?: Record<string, unknown>);
83
+ }
84
+ /**
85
+ * MFA required error.
86
+ */
87
+ export declare class MfaRequiredError extends AuthError {
88
+ readonly mfaMethods?: string[];
89
+ constructor(provider?: string, mfaMethods?: string[], context?: Record<string, unknown>);
90
+ }
91
+ /**
92
+ * Invalid MFA code error.
93
+ */
94
+ export declare class InvalidMfaCodeError extends AuthError {
95
+ constructor(provider?: string, context?: Record<string, unknown>);
96
+ }
97
+ /**
98
+ * Access denied error.
99
+ */
100
+ export declare class AccessDeniedError extends AuthError {
101
+ constructor(message?: string, provider?: string, context?: Record<string, unknown>);
102
+ }
103
+ /**
104
+ * Insufficient scope error.
105
+ */
106
+ export declare class InsufficientScopeError extends AuthError {
107
+ readonly requiredScopes?: string[];
108
+ readonly grantedScopes?: string[];
109
+ constructor(requiredScopes?: string[], grantedScopes?: string[], provider?: string, context?: Record<string, unknown>);
110
+ }
111
+ /**
112
+ * User not found error.
113
+ */
114
+ export declare class UserNotFoundError extends AuthError {
115
+ readonly userId?: string;
116
+ constructor(userId?: string, provider?: string, context?: Record<string, unknown>);
117
+ }
118
+ /**
119
+ * User already exists error.
120
+ */
121
+ export declare class UserAlreadyExistsError extends AuthError {
122
+ constructor(identifier?: string, provider?: string, context?: Record<string, unknown>);
123
+ }
124
+ /**
125
+ * User disabled error.
126
+ */
127
+ export declare class UserDisabledError extends AuthError {
128
+ constructor(userId?: string, provider?: string, context?: Record<string, unknown>);
129
+ }
130
+ /**
131
+ * Provider error.
132
+ */
133
+ export declare class ProviderError extends AuthError {
134
+ readonly originalError?: Error;
135
+ constructor(message: string, provider?: string, originalError?: Error, context?: Record<string, unknown>);
136
+ }
137
+ /**
138
+ * Configuration error.
139
+ */
140
+ export declare class ConfigurationError extends AuthError {
141
+ constructor(message: string, provider?: string, context?: Record<string, unknown>);
142
+ }
143
+ /**
144
+ * Network error.
145
+ */
146
+ export declare class NetworkError extends AuthError {
147
+ readonly originalError?: Error;
148
+ constructor(message?: string, provider?: string, originalError?: Error, context?: Record<string, unknown>);
149
+ }
150
+ /**
151
+ * Invalid state error.
152
+ */
153
+ export declare class InvalidStateError extends AuthError {
154
+ constructor(provider?: string, context?: Record<string, unknown>);
155
+ }
156
+ /**
157
+ * Invalid nonce error.
158
+ */
159
+ export declare class InvalidNonceError extends AuthError {
160
+ constructor(provider?: string, context?: Record<string, unknown>);
161
+ }
162
+ /**
163
+ * Invalid grant error.
164
+ */
165
+ export declare class InvalidGrantError extends AuthError {
166
+ constructor(message?: string, provider?: string, context?: Record<string, unknown>);
167
+ }
168
+ /**
169
+ * Invalid client error.
170
+ */
171
+ export declare class InvalidClientError extends AuthError {
172
+ constructor(provider?: string, context?: Record<string, unknown>);
173
+ }
174
+ /**
175
+ * Invalid redirect URI error.
176
+ */
177
+ export declare class InvalidRedirectUriError extends AuthError {
178
+ constructor(provider?: string, context?: Record<string, unknown>);
179
+ }
180
+ /**
181
+ * Invalid signature error.
182
+ */
183
+ export declare class InvalidSignatureError extends AuthError {
184
+ constructor(message?: string, context?: Record<string, unknown>);
185
+ }
186
+ /**
187
+ * Relay error.
188
+ */
189
+ export declare class RelayError extends AuthError {
190
+ readonly relayUrl?: string;
191
+ readonly originalError?: Error;
192
+ constructor(message: string, relayUrl?: string, originalError?: Error, context?: Record<string, unknown>);
193
+ }
194
+ /**
195
+ * Challenge expired error.
196
+ */
197
+ export declare class ChallengeExpiredError extends AuthError {
198
+ constructor(context?: Record<string, unknown>);
199
+ }
200
+ /**
201
+ * NIP-07 extension not found error.
202
+ */
203
+ export declare class ExtensionNotFoundError extends AuthError {
204
+ constructor(context?: Record<string, unknown>);
205
+ }
206
+ /**
207
+ * Invalid key error.
208
+ */
209
+ export declare class InvalidKeyError extends AuthError {
210
+ constructor(message?: string, context?: Record<string, unknown>);
211
+ }
212
+ /**
213
+ * Not implemented error.
214
+ */
215
+ export declare class NotImplementedError extends AuthError {
216
+ readonly operation: string;
217
+ constructor(operation: string, provider?: string, context?: Record<string, unknown>);
218
+ }
219
+ /**
220
+ * Check if an error is an AuthError.
221
+ */
222
+ export declare function isAuthError(error: unknown): error is AuthError;
223
+ /**
224
+ * Check if an error has a specific error code.
225
+ */
226
+ export declare function hasErrorCode(error: unknown, code: AuthErrorCode): boolean;
227
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { AuthInterface, GetAuthOptions } from './types';
2
+ /**
3
+ * Creates an authentication provider instance based on the provided options.
4
+ *
5
+ * Supports environment variable configuration using the pattern:
6
+ * - HAVE_AUTH_TYPE → provider type ('keycloak' | 'cognito' | 'nostr')
7
+ * - HAVE_AUTH_SERVER_URL → serverUrl (Keycloak)
8
+ * - HAVE_AUTH_REALM → realm (Keycloak)
9
+ * - HAVE_AUTH_CLIENT_ID → clientId
10
+ * - HAVE_AUTH_CLIENT_SECRET → clientSecret
11
+ * - HAVE_AUTH_REDIRECT_URI → redirectUri
12
+ * - HAVE_AUTH_REGION → region (Cognito)
13
+ * - HAVE_AUTH_USER_POOL_ID → userPoolId (Cognito)
14
+ * - HAVE_AUTH_DOMAIN → domain (Cognito)
15
+ * - HAVE_AUTH_RELAYS → relays (Nostr, comma-separated)
16
+ * - HAVE_AUTH_TIMEOUT → timeout (number)
17
+ * - HAVE_AUTH_MAX_RETRIES → maxRetries (number)
18
+ *
19
+ * User-provided options always take precedence over environment variables.
20
+ *
21
+ * @param options - Configuration options for the auth provider
22
+ * @returns Promise resolving to an AuthInterface implementation
23
+ * @throws {ValidationError} When the provider type is unsupported or invalid
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * // Create Keycloak client
28
+ * const auth = await getAuth({
29
+ * type: 'keycloak',
30
+ * serverUrl: 'https://auth.example.com',
31
+ * realm: 'my-realm',
32
+ * clientId: 'my-app'
33
+ * });
34
+ *
35
+ * // Create Cognito client
36
+ * const auth = await getAuth({
37
+ * type: 'cognito',
38
+ * region: 'us-east-1',
39
+ * userPoolId: 'us-east-1_xxx',
40
+ * clientId: 'xxx'
41
+ * });
42
+ *
43
+ * // Create Nostr client
44
+ * const auth = await getAuth({
45
+ * type: 'nostr',
46
+ * relays: ['wss://relay.damus.io', 'wss://nos.lol']
47
+ * });
48
+ *
49
+ * // Use environment variables
50
+ * // Set: HAVE_AUTH_TYPE=keycloak, HAVE_AUTH_SERVER_URL=..., etc.
51
+ * const auth = await getAuth({} as GetAuthOptions);
52
+ * ```
53
+ */
54
+ export declare function getAuth(options: GetAuthOptions): Promise<AuthInterface>;
55
+ /**
56
+ * Auto-detect provider based on available configuration.
57
+ *
58
+ * @param options - Configuration options that may contain provider-specific settings
59
+ * @returns Promise resolving to an AuthInterface based on detected configuration
60
+ * @throws {ValidationError} When no provider can be detected
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * // Auto-detect Keycloak from serverUrl and realm
65
+ * const auth = await getAuthAuto({
66
+ * serverUrl: 'https://auth.example.com',
67
+ * realm: 'my-realm',
68
+ * clientId: 'my-app'
69
+ * });
70
+ *
71
+ * // Auto-detect Cognito from region and userPoolId
72
+ * const auth = await getAuthAuto({
73
+ * region: 'us-east-1',
74
+ * userPoolId: 'us-east-1_xxx',
75
+ * clientId: 'xxx'
76
+ * });
77
+ *
78
+ * // Auto-detect Nostr from relays
79
+ * const auth = await getAuthAuto({
80
+ * relays: ['wss://relay.damus.io']
81
+ * });
82
+ * ```
83
+ */
84
+ export declare function getAuthAuto(options: Record<string, unknown>): Promise<AuthInterface>;
85
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/shared/factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAMf,MAAM,SAAS,CAAC;AAsDjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAqF7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,aAAa,CAAC,CA4BxB"}
@@ -0,0 +1,38 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CognitoOptions, CreateUserRequest, LogoutOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../types.js';
2
+ /**
3
+ * AWS Cognito authentication provider.
4
+ *
5
+ * Implements OAuth2 authentication with AWS Cognito User Pools.
6
+ */
7
+ export declare class CognitoProvider implements AuthInterface {
8
+ private options;
9
+ constructor(options: CognitoOptions);
10
+ getAuthorizationUrl(_options?: AuthorizationOptions): Promise<AuthorizationResult>;
11
+ exchangeCode(_params: CodeExchangeParams): Promise<AuthResult>;
12
+ authenticate(_credentials: AuthCredentials): Promise<AuthResult>;
13
+ refresh(_refreshToken: string): Promise<AuthResult>;
14
+ logout(_options?: LogoutOptions): Promise<void>;
15
+ validateToken(_token: string, _options?: TokenValidationOptions): Promise<TokenClaims | null>;
16
+ decodeToken(_token: string): TokenPayload;
17
+ introspectToken(_token: string): Promise<TokenIntrospection>;
18
+ getProfile(_tokenOrSession: string): Promise<UserProfile>;
19
+ updateProfile(_tokenOrSession: string, _profile: Partial<UserProfile>): Promise<UserProfile>;
20
+ getUser(_userId: string, _adminToken?: string): Promise<UserProfile>;
21
+ createUser(_user: CreateUserRequest, _adminToken: string): Promise<UserProfile>;
22
+ updateUser(_userId: string, _updates: Partial<CreateUserRequest>, _adminToken: string): Promise<UserProfile>;
23
+ deleteUser(_userId: string, _adminToken: string): Promise<void>;
24
+ listUsers(_query: UserQuery, _adminToken?: string): Promise<UserListResult>;
25
+ requestPasswordReset(_email: string): Promise<void>;
26
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
27
+ listSessions(_userId: string, _adminToken?: string): Promise<Session[]>;
28
+ revokeSession(_sessionId: string, _adminToken?: string): Promise<void>;
29
+ revokeAllSessions(_userId: string, _adminToken?: string): Promise<void>;
30
+ hasRole(_tokenOrUserId: string, _role: string): Promise<boolean>;
31
+ hasPermission(_tokenOrUserId: string, _permission: string, _resource?: string): Promise<boolean>;
32
+ getRoles(_tokenOrUserId: string, _adminToken?: string): Promise<string[]>;
33
+ assignRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
34
+ removeRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
35
+ getCapabilities(): Promise<AuthCapabilities>;
36
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
37
+ }
38
+ //# sourceMappingURL=cognito.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognito.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/cognito.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CreateUserRequest, GitHubOptions, LogoutOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../types.js';
2
+ /**
3
+ * GitHub authentication provider.
4
+ *
5
+ * Implements OAuth2 authentication with GitHub.
6
+ * Key differences from OIDC providers:
7
+ * - No ID token - user info fetched via API
8
+ * - No JWKS - tokens are opaque
9
+ * - No token introspection endpoint
10
+ */
11
+ export declare class GitHubProvider implements AuthInterface {
12
+ private options;
13
+ private static readonly AUTHORIZATION_URL;
14
+ private static readonly TOKEN_URL;
15
+ private static readonly API_URL;
16
+ constructor(options: GitHubOptions);
17
+ /**
18
+ * Make an HTTP request to GitHub API with error handling.
19
+ */
20
+ private request;
21
+ /**
22
+ * Handle HTTP error responses.
23
+ */
24
+ private handleHttpError;
25
+ /**
26
+ * Fetch user info from GitHub API.
27
+ */
28
+ private fetchUser;
29
+ /**
30
+ * Fetch user emails from GitHub API.
31
+ */
32
+ private fetchEmails;
33
+ /**
34
+ * Get the primary verified email for a user.
35
+ */
36
+ private getPrimaryEmail;
37
+ getAuthorizationUrl(options?: AuthorizationOptions): Promise<AuthorizationResult>;
38
+ exchangeCode(params: CodeExchangeParams): Promise<AuthResult>;
39
+ authenticate(_credentials: AuthCredentials): Promise<AuthResult>;
40
+ refresh(_refreshToken: string): Promise<AuthResult>;
41
+ logout(options?: LogoutOptions): Promise<void>;
42
+ validateToken(token: string, _options?: TokenValidationOptions): Promise<TokenClaims | null>;
43
+ decodeToken(_token: string): TokenPayload;
44
+ introspectToken(token: string): Promise<TokenIntrospection>;
45
+ getProfile(tokenOrSession: string): Promise<UserProfile>;
46
+ updateProfile(_tokenOrSession: string, _profile: Partial<UserProfile>): Promise<UserProfile>;
47
+ getUser(_userId: string, _adminToken?: string): Promise<UserProfile>;
48
+ createUser(_user: CreateUserRequest, _adminToken: string): Promise<UserProfile>;
49
+ updateUser(_userId: string, _updates: Partial<CreateUserRequest>, _adminToken: string): Promise<UserProfile>;
50
+ deleteUser(_userId: string, _adminToken: string): Promise<void>;
51
+ listUsers(_query: UserQuery, _adminToken?: string): Promise<UserListResult>;
52
+ requestPasswordReset(_email: string): Promise<void>;
53
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
54
+ listSessions(_userId: string, _adminToken?: string): Promise<Session[]>;
55
+ revokeSession(_sessionId: string, _adminToken?: string): Promise<void>;
56
+ revokeAllSessions(_userId: string, _adminToken?: string): Promise<void>;
57
+ hasRole(_tokenOrUserId: string, _role: string): Promise<boolean>;
58
+ hasPermission(_tokenOrUserId: string, _permission: string, _resource?: string): Promise<boolean>;
59
+ getRoles(_tokenOrUserId: string, _adminToken?: string): Promise<string[]>;
60
+ assignRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
61
+ removeRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
62
+ getCapabilities(): Promise<AuthCapabilities>;
63
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
64
+ }
65
+ //# sourceMappingURL=github.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/github.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CreateUserRequest, GoogleOptions, LogoutOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../types.js';
2
+ /**
3
+ * Google authentication provider.
4
+ *
5
+ * Implements OAuth2/OIDC authentication with Google.
6
+ * Uses standard OIDC discovery and PKCE for security.
7
+ */
8
+ export declare class GoogleProvider implements AuthInterface {
9
+ private options;
10
+ private discoveryDocument;
11
+ private jwks;
12
+ private static readonly DISCOVERY_URL;
13
+ constructor(options: GoogleOptions);
14
+ /**
15
+ * Make an HTTP request with error handling.
16
+ */
17
+ private request;
18
+ /**
19
+ * Handle HTTP error responses.
20
+ */
21
+ private handleHttpError;
22
+ /**
23
+ * Fetch and cache the OIDC discovery document.
24
+ */
25
+ private fetchDiscoveryDocument;
26
+ /**
27
+ * Get JWKS for token validation.
28
+ */
29
+ private getJWKS;
30
+ getAuthorizationUrl(options?: AuthorizationOptions): Promise<AuthorizationResult>;
31
+ exchangeCode(params: CodeExchangeParams): Promise<AuthResult>;
32
+ authenticate(_credentials: AuthCredentials): Promise<AuthResult>;
33
+ refresh(refreshToken: string): Promise<AuthResult>;
34
+ logout(options?: LogoutOptions): Promise<void>;
35
+ validateToken(token: string, options?: TokenValidationOptions): Promise<TokenClaims | null>;
36
+ decodeToken(token: string): TokenPayload;
37
+ introspectToken(token: string): Promise<TokenIntrospection>;
38
+ getProfile(tokenOrSession: string): Promise<UserProfile>;
39
+ updateProfile(_tokenOrSession: string, _profile: Partial<UserProfile>): Promise<UserProfile>;
40
+ getUser(_userId: string, _adminToken?: string): Promise<UserProfile>;
41
+ createUser(_user: CreateUserRequest, _adminToken: string): Promise<UserProfile>;
42
+ updateUser(_userId: string, _updates: Partial<CreateUserRequest>, _adminToken: string): Promise<UserProfile>;
43
+ deleteUser(_userId: string, _adminToken: string): Promise<void>;
44
+ listUsers(_query: UserQuery, _adminToken?: string): Promise<UserListResult>;
45
+ requestPasswordReset(_email: string): Promise<void>;
46
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
47
+ listSessions(_userId: string, _adminToken?: string): Promise<Session[]>;
48
+ revokeSession(_sessionId: string, _adminToken?: string): Promise<void>;
49
+ revokeAllSessions(_userId: string, _adminToken?: string): Promise<void>;
50
+ hasRole(_tokenOrUserId: string, _role: string): Promise<boolean>;
51
+ hasPermission(_tokenOrUserId: string, _permission: string, _resource?: string): Promise<boolean>;
52
+ getRoles(_tokenOrUserId: string, _adminToken?: string): Promise<string[]>;
53
+ assignRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
54
+ removeRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
55
+ getCapabilities(): Promise<AuthCapabilities>;
56
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
57
+ }
58
+ //# sourceMappingURL=google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/google.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CreateUserRequest, KanidmOptions, LogoutOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../types.js';
2
+ /**
3
+ * Kanidm authentication provider.
4
+ *
5
+ * Implements OAuth2/OIDC authentication with Kanidm server.
6
+ * Key differences from Keycloak:
7
+ * - Client-specific OIDC endpoints: /oauth2/openid/{clientId}/...
8
+ * - ES256 token signing (not RS256)
9
+ * - Authorization code flow only (no password grant)
10
+ * - Native /v1/ API for admin operations (multi-step auth)
11
+ */
12
+ export declare class KanidmProvider implements AuthInterface {
13
+ private options;
14
+ private discoveryDocument;
15
+ private jwks;
16
+ private adminToken;
17
+ private adminTokenExpiry;
18
+ constructor(options: KanidmOptions);
19
+ /**
20
+ * Get the OIDC base URL for this client.
21
+ * Kanidm uses client-specific OIDC endpoints.
22
+ */
23
+ private getOidcBaseUrl;
24
+ /**
25
+ * Get the native API base URL.
26
+ */
27
+ private getApiBaseUrl;
28
+ /**
29
+ * Make an HTTP request with error handling.
30
+ */
31
+ private request;
32
+ /**
33
+ * Handle HTTP error responses.
34
+ */
35
+ private handleHttpError;
36
+ /**
37
+ * Fetch and cache the OIDC discovery document.
38
+ */
39
+ private fetchDiscoveryDocument;
40
+ /**
41
+ * Get JWKS for token validation.
42
+ */
43
+ private getJWKS;
44
+ /**
45
+ * Authenticate with Kanidm's native API to get an admin token.
46
+ * Uses the multi-step authentication flow.
47
+ */
48
+ private getAdminToken;
49
+ getAuthorizationUrl(options?: AuthorizationOptions): Promise<AuthorizationResult>;
50
+ exchangeCode(params: CodeExchangeParams): Promise<AuthResult>;
51
+ authenticate(_credentials: AuthCredentials): Promise<AuthResult>;
52
+ refresh(refreshToken: string): Promise<AuthResult>;
53
+ logout(options?: LogoutOptions): Promise<void>;
54
+ validateToken(token: string, options?: TokenValidationOptions): Promise<TokenClaims | null>;
55
+ decodeToken(token: string): TokenPayload;
56
+ introspectToken(token: string): Promise<TokenIntrospection>;
57
+ getProfile(tokenOrSession: string): Promise<UserProfile>;
58
+ updateProfile(_tokenOrSession: string, _profile: Partial<UserProfile>): Promise<UserProfile>;
59
+ getUser(userId: string, _adminToken?: string): Promise<UserProfile>;
60
+ createUser(user: CreateUserRequest, _adminToken: string): Promise<UserProfile>;
61
+ updateUser(userId: string, updates: Partial<CreateUserRequest>, _adminToken: string): Promise<UserProfile>;
62
+ deleteUser(userId: string, _adminToken: string): Promise<void>;
63
+ listUsers(query: UserQuery, _adminToken?: string): Promise<UserListResult>;
64
+ requestPasswordReset(_email: string): Promise<void>;
65
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
66
+ listSessions(_userId: string, _adminToken?: string): Promise<Session[]>;
67
+ revokeSession(_sessionId: string, _adminToken?: string): Promise<void>;
68
+ revokeAllSessions(_userId: string, _adminToken?: string): Promise<void>;
69
+ hasRole(tokenOrUserId: string, role: string): Promise<boolean>;
70
+ hasPermission(tokenOrUserId: string, permission: string, resource?: string): Promise<boolean>;
71
+ getRoles(tokenOrUserId: string, _adminToken?: string): Promise<string[]>;
72
+ assignRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
73
+ removeRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
74
+ getCapabilities(): Promise<AuthCapabilities>;
75
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
76
+ private mapKanidmPerson;
77
+ }
78
+ //# sourceMappingURL=kanidm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanidm.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/kanidm.ts"],"names":[],"mappings":"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"}