@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,67 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CreateUserRequest, KeycloakOptions, LogoutOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../types.js';
2
+ /**
3
+ * Keycloak authentication provider.
4
+ *
5
+ * Implements full OIDC/OAuth2 authentication with Keycloak server.
6
+ */
7
+ export declare class KeycloakProvider implements AuthInterface {
8
+ private options;
9
+ private discoveryDocument;
10
+ private jwks;
11
+ constructor(options: KeycloakOptions);
12
+ /**
13
+ * Get the base URL for the realm.
14
+ */
15
+ private getRealmUrl;
16
+ /**
17
+ * Get the admin API base URL.
18
+ */
19
+ private getAdminUrl;
20
+ /**
21
+ * Make an HTTP request with error handling.
22
+ */
23
+ private request;
24
+ /**
25
+ * Handle HTTP error responses.
26
+ */
27
+ private handleHttpError;
28
+ /**
29
+ * Fetch and cache the OIDC discovery document.
30
+ */
31
+ private fetchDiscoveryDocument;
32
+ /**
33
+ * Get JWKS for token validation.
34
+ */
35
+ private getJWKS;
36
+ getAuthorizationUrl(options?: AuthorizationOptions): Promise<AuthorizationResult>;
37
+ exchangeCode(params: CodeExchangeParams): Promise<AuthResult>;
38
+ authenticate(credentials: AuthCredentials): Promise<AuthResult>;
39
+ refresh(refreshToken: string): Promise<AuthResult>;
40
+ logout(options?: LogoutOptions): Promise<void>;
41
+ validateToken(token: string, options?: TokenValidationOptions): Promise<TokenClaims | null>;
42
+ decodeToken(token: string): TokenPayload;
43
+ introspectToken(token: string): Promise<TokenIntrospection>;
44
+ getProfile(tokenOrSession: string): Promise<UserProfile>;
45
+ updateProfile(tokenOrSession: string, profile: Partial<UserProfile>): Promise<UserProfile>;
46
+ getUser(userId: string, adminToken?: string): Promise<UserProfile>;
47
+ createUser(user: CreateUserRequest, adminToken: string): Promise<UserProfile>;
48
+ updateUser(userId: string, updates: Partial<CreateUserRequest>, adminToken: string): Promise<UserProfile>;
49
+ deleteUser(userId: string, adminToken: string): Promise<void>;
50
+ listUsers(query: UserQuery, adminToken?: string): Promise<UserListResult>;
51
+ requestPasswordReset(email: string): Promise<void>;
52
+ resetPassword(token: string, newPassword: string): Promise<void>;
53
+ listSessions(userId: string, adminToken?: string): Promise<Session[]>;
54
+ revokeSession(sessionId: string, adminToken?: string): Promise<void>;
55
+ revokeAllSessions(userId: string, adminToken?: string): Promise<void>;
56
+ hasRole(tokenOrUserId: string, role: string): Promise<boolean>;
57
+ hasPermission(tokenOrUserId: string, permission: string, resource?: string): Promise<boolean>;
58
+ getRoles(tokenOrUserId: string, adminToken?: string): Promise<string[]>;
59
+ assignRole(userId: string, role: string, adminToken: string): Promise<void>;
60
+ removeRole(userId: string, role: string, adminToken: string): Promise<void>;
61
+ getCapabilities(): Promise<AuthCapabilities>;
62
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
63
+ private mapKeycloakUser;
64
+ private assignRoles;
65
+ private addUserToGroup;
66
+ }
67
+ //# sourceMappingURL=keycloak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloak.d.ts","sourceRoot":"","sources":["../../../src/shared/providers/keycloak.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { AuthCapabilities, AuthCredentials, AuthInterface, AuthorizationOptions, AuthorizationResult, AuthResult, CodeExchangeParams, CreateUserRequest, LogoutOptions, NostrOptions, OIDCDiscoveryDocument, Session, TokenClaims, TokenIntrospection, TokenPayload, TokenValidationOptions, UserListResult, UserProfile, UserQuery } from '../../types.js';
2
+ /**
3
+ * Nostr authentication provider.
4
+ *
5
+ * Implements public key identity authentication using the Nostr protocol.
6
+ * Maps Nostr concepts to OAuth-like interface:
7
+ *
8
+ * | Concept | OAuth/OIDC | Nostr |
9
+ * |---------------|----------------------|--------------------------------|
10
+ * | Identity | Server user ID | Public key (npub) |
11
+ * | Authentication| Password | Signature (private key proof) |
12
+ * | Tokens | JWT | NIP-98 signed events |
13
+ * | Profiles | Userinfo endpoint | kind:0 events from relays |
14
+ * | Sessions | Server-side | Client-side keypair reference |
15
+ */
16
+ export declare class NostrProvider implements AuthInterface {
17
+ private options;
18
+ constructor(options: NostrOptions);
19
+ getAuthorizationUrl(_options?: AuthorizationOptions): Promise<AuthorizationResult>;
20
+ exchangeCode(_params: CodeExchangeParams): Promise<AuthResult>;
21
+ authenticate(_credentials: AuthCredentials): Promise<AuthResult>;
22
+ refresh(_refreshToken: string): Promise<AuthResult>;
23
+ logout(_options?: LogoutOptions): Promise<void>;
24
+ validateToken(_token: string, _options?: TokenValidationOptions): Promise<TokenClaims | null>;
25
+ decodeToken(_token: string): TokenPayload;
26
+ introspectToken(_token: string): Promise<TokenIntrospection>;
27
+ getProfile(_tokenOrSession: string): Promise<UserProfile>;
28
+ updateProfile(_tokenOrSession: string, _profile: Partial<UserProfile>): Promise<UserProfile>;
29
+ getUser(_userId: string, _adminToken?: string): Promise<UserProfile>;
30
+ createUser(_user: CreateUserRequest, _adminToken: string): Promise<UserProfile>;
31
+ updateUser(_userId: string, _updates: Partial<CreateUserRequest>, _adminToken: string): Promise<UserProfile>;
32
+ deleteUser(_userId: string, _adminToken: string): Promise<void>;
33
+ listUsers(_query: UserQuery, _adminToken?: string): Promise<UserListResult>;
34
+ requestPasswordReset(_email: string): Promise<void>;
35
+ resetPassword(_token: string, _newPassword: string): Promise<void>;
36
+ listSessions(_userId: string, _adminToken?: string): Promise<Session[]>;
37
+ revokeSession(_sessionId: string, _adminToken?: string): Promise<void>;
38
+ revokeAllSessions(_userId: string, _adminToken?: string): Promise<void>;
39
+ hasRole(_tokenOrUserId: string, _role: string): Promise<boolean>;
40
+ hasPermission(_tokenOrUserId: string, _permission: string, _resource?: string): Promise<boolean>;
41
+ getRoles(_tokenOrUserId: string, _adminToken?: string): Promise<string[]>;
42
+ assignRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
43
+ removeRole(_userId: string, _role: string, _adminToken: string): Promise<void>;
44
+ getCapabilities(): Promise<AuthCapabilities>;
45
+ getDiscoveryDocument(): Promise<OIDCDiscoveryDocument | null>;
46
+ }
47
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/nostr/index.ts"],"names":[],"mappings":"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"}