@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.
- package/AGENT.md +33 -0
- package/LICENSE +7 -0
- package/README.md +73 -0
- package/dist/chunks/cognito-dmypylFX.js +128 -0
- package/dist/chunks/cognito-dmypylFX.js.map +1 -0
- package/dist/chunks/decode_jwt-D2OK1b8a.js +1395 -0
- package/dist/chunks/decode_jwt-D2OK1b8a.js.map +1 -0
- package/dist/chunks/github-NSZp5tVm.js +413 -0
- package/dist/chunks/github-NSZp5tVm.js.map +1 -0
- package/dist/chunks/google-HXk2ctYR.js +483 -0
- package/dist/chunks/google-HXk2ctYR.js.map +1 -0
- package/dist/chunks/index-BpsMhFXS.js +151 -0
- package/dist/chunks/index-BpsMhFXS.js.map +1 -0
- package/dist/chunks/kanidm-hkw-YPVF.js +747 -0
- package/dist/chunks/kanidm-hkw-YPVF.js.map +1 -0
- package/dist/chunks/keycloak-t6JEUeOz.js +871 -0
- package/dist/chunks/keycloak-t6JEUeOz.js.map +1 -0
- package/dist/cli/claude-context.d.ts +3 -0
- package/dist/cli/claude-context.d.ts.map +1 -0
- package/dist/cli/claude-context.js +21 -0
- package/dist/cli/claude-context.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +499 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/errors.d.ts +227 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/factory.d.ts +85 -0
- package/dist/shared/factory.d.ts.map +1 -0
- package/dist/shared/providers/cognito.d.ts +38 -0
- package/dist/shared/providers/cognito.d.ts.map +1 -0
- package/dist/shared/providers/github.d.ts +65 -0
- package/dist/shared/providers/github.d.ts.map +1 -0
- package/dist/shared/providers/google.d.ts +58 -0
- package/dist/shared/providers/google.d.ts.map +1 -0
- package/dist/shared/providers/kanidm.d.ts +78 -0
- package/dist/shared/providers/kanidm.d.ts.map +1 -0
- package/dist/shared/providers/keycloak.d.ts +67 -0
- package/dist/shared/providers/keycloak.d.ts.map +1 -0
- package/dist/shared/providers/nostr/index.d.ts +47 -0
- package/dist/shared/providers/nostr/index.d.ts.map +1 -0
- package/dist/shared/types.d.ts +812 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/metadata.json +32 -0
- 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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"}
|