@awesome-lang-auth/node 1.10.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.
- package/LICENSE +21 -0
- package/README.detailed.md +4059 -0
- package/README.md +248 -0
- package/dist/abstract/base-auth-strategy.abstract.d.ts +7 -0
- package/dist/abstract/base-auth-strategy.abstract.d.ts.map +1 -0
- package/dist/abstract/base-auth-strategy.abstract.js +7 -0
- package/dist/abstract/base-auth-strategy.abstract.js.map +1 -0
- package/dist/abstract/base-oauth-strategy.abstract.d.ts +27 -0
- package/dist/abstract/base-oauth-strategy.abstract.d.ts.map +1 -0
- package/dist/abstract/base-oauth-strategy.abstract.js +11 -0
- package/dist/abstract/base-oauth-strategy.abstract.js.map +1 -0
- package/dist/adapters/express.d.ts +45 -0
- package/dist/adapters/express.d.ts.map +1 -0
- package/dist/adapters/express.js +49 -0
- package/dist/adapters/express.js.map +1 -0
- package/dist/adapters/fastify.d.ts +72 -0
- package/dist/adapters/fastify.d.ts.map +1 -0
- package/dist/adapters/fastify.js +63 -0
- package/dist/adapters/fastify.js.map +1 -0
- package/dist/auth-configurator.d.ts +65 -0
- package/dist/auth-configurator.d.ts.map +1 -0
- package/dist/auth-configurator.js +127 -0
- package/dist/auth-configurator.js.map +1 -0
- package/dist/events/auth-event-bus.d.ts +68 -0
- package/dist/events/auth-event-bus.d.ts.map +1 -0
- package/dist/events/auth-event-bus.js +60 -0
- package/dist/events/auth-event-bus.js.map +1 -0
- package/dist/events/auth-event-names.d.ts +34 -0
- package/dist/events/auth-event-names.d.ts.map +1 -0
- package/dist/events/auth-event-names.js +41 -0
- package/dist/events/auth-event-names.js.map +1 -0
- package/dist/http-types.d.ts +135 -0
- package/dist/http-types.d.ts.map +1 -0
- package/dist/http-types.js +18 -0
- package/dist/http-types.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +88 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/api-key-store.interface.d.ts +94 -0
- package/dist/interfaces/api-key-store.interface.d.ts.map +1 -0
- package/dist/interfaces/api-key-store.interface.js +3 -0
- package/dist/interfaces/api-key-store.interface.js.map +1 -0
- package/dist/interfaces/auth-strategy.interface.d.ts +6 -0
- package/dist/interfaces/auth-strategy.interface.d.ts.map +1 -0
- package/dist/interfaces/auth-strategy.interface.js +3 -0
- package/dist/interfaces/auth-strategy.interface.js.map +1 -0
- package/dist/interfaces/linked-accounts-store.interface.d.ts +74 -0
- package/dist/interfaces/linked-accounts-store.interface.d.ts.map +1 -0
- package/dist/interfaces/linked-accounts-store.interface.js +3 -0
- package/dist/interfaces/linked-accounts-store.interface.js.map +1 -0
- package/dist/interfaces/pending-link-store.interface.d.ts +77 -0
- package/dist/interfaces/pending-link-store.interface.d.ts.map +1 -0
- package/dist/interfaces/pending-link-store.interface.js +3 -0
- package/dist/interfaces/pending-link-store.interface.js.map +1 -0
- package/dist/interfaces/roles-permissions-store.interface.d.ts +129 -0
- package/dist/interfaces/roles-permissions-store.interface.d.ts.map +1 -0
- package/dist/interfaces/roles-permissions-store.interface.js +3 -0
- package/dist/interfaces/roles-permissions-store.interface.js.map +1 -0
- package/dist/interfaces/session-store.interface.d.ts +92 -0
- package/dist/interfaces/session-store.interface.d.ts.map +1 -0
- package/dist/interfaces/session-store.interface.js +3 -0
- package/dist/interfaces/session-store.interface.js.map +1 -0
- package/dist/interfaces/settings-store.interface.d.ts +91 -0
- package/dist/interfaces/settings-store.interface.d.ts.map +1 -0
- package/dist/interfaces/settings-store.interface.js +3 -0
- package/dist/interfaces/settings-store.interface.js.map +1 -0
- package/dist/interfaces/sse-distributor.interface.d.ts +25 -0
- package/dist/interfaces/sse-distributor.interface.d.ts.map +1 -0
- package/dist/interfaces/sse-distributor.interface.js +3 -0
- package/dist/interfaces/sse-distributor.interface.js.map +1 -0
- package/dist/interfaces/telemetry-store.interface.d.ts +72 -0
- package/dist/interfaces/telemetry-store.interface.d.ts.map +1 -0
- package/dist/interfaces/telemetry-store.interface.js +3 -0
- package/dist/interfaces/telemetry-store.interface.js.map +1 -0
- package/dist/interfaces/template-store.interface.d.ts +37 -0
- package/dist/interfaces/template-store.interface.d.ts.map +1 -0
- package/dist/interfaces/template-store.interface.js +3 -0
- package/dist/interfaces/template-store.interface.js.map +1 -0
- package/dist/interfaces/tenant-store.interface.d.ts +97 -0
- package/dist/interfaces/tenant-store.interface.d.ts.map +1 -0
- package/dist/interfaces/tenant-store.interface.js +3 -0
- package/dist/interfaces/tenant-store.interface.js.map +1 -0
- package/dist/interfaces/token-store.interface.d.ts +10 -0
- package/dist/interfaces/token-store.interface.d.ts.map +1 -0
- package/dist/interfaces/token-store.interface.js +3 -0
- package/dist/interfaces/token-store.interface.js.map +1 -0
- package/dist/interfaces/user-metadata-store.interface.d.ts +50 -0
- package/dist/interfaces/user-metadata-store.interface.d.ts.map +1 -0
- package/dist/interfaces/user-metadata-store.interface.js +3 -0
- package/dist/interfaces/user-metadata-store.interface.js.map +1 -0
- package/dist/interfaces/user-store.interface.d.ts +113 -0
- package/dist/interfaces/user-store.interface.d.ts.map +1 -0
- package/dist/interfaces/user-store.interface.js +3 -0
- package/dist/interfaces/user-store.interface.js.map +1 -0
- package/dist/interfaces/webhook-store.interface.d.ts +139 -0
- package/dist/interfaces/webhook-store.interface.d.ts.map +1 -0
- package/dist/interfaces/webhook-store.interface.js +3 -0
- package/dist/interfaces/webhook-store.interface.js.map +1 -0
- package/dist/middleware/api-key.middleware.d.ts +35 -0
- package/dist/middleware/api-key.middleware.d.ts.map +1 -0
- package/dist/middleware/api-key.middleware.js +45 -0
- package/dist/middleware/api-key.middleware.js.map +1 -0
- package/dist/middleware/auth.middleware.d.ts +13 -0
- package/dist/middleware/auth.middleware.d.ts.map +1 -0
- package/dist/middleware/auth.middleware.js +55 -0
- package/dist/middleware/auth.middleware.js.map +1 -0
- package/dist/middleware/jwks-auth.middleware.d.ts +18 -0
- package/dist/middleware/jwks-auth.middleware.d.ts.map +1 -0
- package/dist/middleware/jwks-auth.middleware.js +77 -0
- package/dist/middleware/jwks-auth.middleware.js.map +1 -0
- package/dist/models/api-key.model.d.ts +66 -0
- package/dist/models/api-key.model.d.ts.map +1 -0
- package/dist/models/api-key.model.js +3 -0
- package/dist/models/api-key.model.js.map +1 -0
- package/dist/models/auth-config.model.d.ts +387 -0
- package/dist/models/auth-config.model.d.ts.map +1 -0
- package/dist/models/auth-config.model.js +3 -0
- package/dist/models/auth-config.model.js.map +1 -0
- package/dist/models/errors.d.ts +7 -0
- package/dist/models/errors.d.ts.map +1 -0
- package/dist/models/errors.js +14 -0
- package/dist/models/errors.js.map +1 -0
- package/dist/models/session.model.d.ts +28 -0
- package/dist/models/session.model.d.ts.map +1 -0
- package/dist/models/session.model.js +3 -0
- package/dist/models/session.model.js.map +1 -0
- package/dist/models/tenant.model.d.ts +20 -0
- package/dist/models/tenant.model.d.ts.map +1 -0
- package/dist/models/tenant.model.js +3 -0
- package/dist/models/tenant.model.js.map +1 -0
- package/dist/models/token.model.d.ts +21 -0
- package/dist/models/token.model.d.ts.map +1 -0
- package/dist/models/token.model.js +3 -0
- package/dist/models/token.model.js.map +1 -0
- package/dist/models/user.model.d.ts +92 -0
- package/dist/models/user.model.d.ts.map +1 -0
- package/dist/models/user.model.js +3 -0
- package/dist/models/user.model.js.map +1 -0
- package/dist/router/admin.router.d.ts +188 -0
- package/dist/router/admin.router.d.ts.map +1 -0
- package/dist/router/admin.router.js +1507 -0
- package/dist/router/admin.router.js.map +1 -0
- package/dist/router/auth.router.d.ts +199 -0
- package/dist/router/auth.router.d.ts.map +1 -0
- package/dist/router/auth.router.js +1636 -0
- package/dist/router/auth.router.js.map +1 -0
- package/dist/router/openapi.d.ts +98 -0
- package/dist/router/openapi.d.ts.map +1 -0
- package/dist/router/openapi.js +1518 -0
- package/dist/router/openapi.js.map +1 -0
- package/dist/router/router-events.d.ts +38 -0
- package/dist/router/router-events.d.ts.map +1 -0
- package/dist/router/router-events.js +74 -0
- package/dist/router/router-events.js.map +1 -0
- package/dist/router/tools.router.d.ts +104 -0
- package/dist/router/tools.router.d.ts.map +1 -0
- package/dist/router/tools.router.js +227 -0
- package/dist/router/tools.router.js.map +1 -0
- package/dist/router/ui.router.d.ts +49 -0
- package/dist/router/ui.router.d.ts.map +1 -0
- package/dist/router/ui.router.js +272 -0
- package/dist/router/ui.router.js.map +1 -0
- package/dist/services/api-key.service.d.ts +53 -0
- package/dist/services/api-key.service.d.ts.map +1 -0
- package/dist/services/api-key.service.js +66 -0
- package/dist/services/api-key.service.js.map +1 -0
- package/dist/services/jwks.service.d.ts +73 -0
- package/dist/services/jwks.service.d.ts.map +1 -0
- package/dist/services/jwks.service.js +174 -0
- package/dist/services/jwks.service.js.map +1 -0
- package/dist/services/mailer.service.d.ts +30 -0
- package/dist/services/mailer.service.d.ts.map +1 -0
- package/dist/services/mailer.service.js +248 -0
- package/dist/services/mailer.service.js.map +1 -0
- package/dist/services/notification.service.d.ts +110 -0
- package/dist/services/notification.service.d.ts.map +1 -0
- package/dist/services/notification.service.js +79 -0
- package/dist/services/notification.service.js.map +1 -0
- package/dist/services/password.service.d.ts +5 -0
- package/dist/services/password.service.d.ts.map +1 -0
- package/dist/services/password.service.js +17 -0
- package/dist/services/password.service.js.map +1 -0
- package/dist/services/sms.service.d.ts +14 -0
- package/dist/services/sms.service.d.ts.map +1 -0
- package/dist/services/sms.service.js +51 -0
- package/dist/services/sms.service.js.map +1 -0
- package/dist/services/token.service.d.ts +62 -0
- package/dist/services/token.service.d.ts.map +1 -0
- package/dist/services/token.service.js +354 -0
- package/dist/services/token.service.js.map +1 -0
- package/dist/stores/memory-template.store.d.ts +12 -0
- package/dist/stores/memory-template.store.d.ts.map +1 -0
- package/dist/stores/memory-template.store.js +35 -0
- package/dist/stores/memory-template.store.js.map +1 -0
- package/dist/strategies/api-key/api-key.strategy.d.ts +72 -0
- package/dist/strategies/api-key/api-key.strategy.d.ts.map +1 -0
- package/dist/strategies/api-key/api-key.strategy.js +182 -0
- package/dist/strategies/api-key/api-key.strategy.js.map +1 -0
- package/dist/strategies/local/local.strategy.d.ts +19 -0
- package/dist/strategies/local/local.strategy.d.ts.map +1 -0
- package/dist/strategies/local/local.strategy.js +45 -0
- package/dist/strategies/local/local.strategy.js.map +1 -0
- package/dist/strategies/magic-link/magic-link.strategy.d.ts +8 -0
- package/dist/strategies/magic-link/magic-link.strategy.d.ts.map +1 -0
- package/dist/strategies/magic-link/magic-link.strategy.js +53 -0
- package/dist/strategies/magic-link/magic-link.strategy.js.map +1 -0
- package/dist/strategies/oauth/generic-oauth.strategy.d.ts +120 -0
- package/dist/strategies/oauth/generic-oauth.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/generic-oauth.strategy.js +88 -0
- package/dist/strategies/oauth/generic-oauth.strategy.js.map +1 -0
- package/dist/strategies/oauth/github.strategy.d.ts +31 -0
- package/dist/strategies/oauth/github.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/github.strategy.js +72 -0
- package/dist/strategies/oauth/github.strategy.js.map +1 -0
- package/dist/strategies/oauth/google.strategy.d.ts +31 -0
- package/dist/strategies/oauth/google.strategy.d.ts.map +1 -0
- package/dist/strategies/oauth/google.strategy.js +61 -0
- package/dist/strategies/oauth/google.strategy.js.map +1 -0
- package/dist/strategies/sms/sms.strategy.d.ts +7 -0
- package/dist/strategies/sms/sms.strategy.d.ts.map +1 -0
- package/dist/strategies/sms/sms.strategy.js +39 -0
- package/dist/strategies/sms/sms.strategy.js.map +1 -0
- package/dist/strategies/two-factor/totp.strategy.d.ts +12 -0
- package/dist/strategies/two-factor/totp.strategy.d.ts.map +1 -0
- package/dist/strategies/two-factor/totp.strategy.js +32 -0
- package/dist/strategies/two-factor/totp.strategy.js.map +1 -0
- package/dist/tools/auth-tools.d.ts +200 -0
- package/dist/tools/auth-tools.d.ts.map +1 -0
- package/dist/tools/auth-tools.js +232 -0
- package/dist/tools/auth-tools.js.map +1 -0
- package/dist/tools/sse-manager.d.ts +118 -0
- package/dist/tools/sse-manager.d.ts.map +1 -0
- package/dist/tools/sse-manager.js +163 -0
- package/dist/tools/sse-manager.js.map +1 -0
- package/dist/tools/sse-notify.decorator.d.ts +74 -0
- package/dist/tools/sse-notify.decorator.d.ts.map +1 -0
- package/dist/tools/sse-notify.decorator.js +78 -0
- package/dist/tools/sse-notify.decorator.js.map +1 -0
- package/dist/tools/webhook-action.d.ts +130 -0
- package/dist/tools/webhook-action.d.ts.map +1 -0
- package/dist/tools/webhook-action.js +144 -0
- package/dist/tools/webhook-action.js.map +1 -0
- package/dist/tools/webhook-sender.d.ts +31 -0
- package/dist/tools/webhook-sender.d.ts.map +1 -0
- package/dist/tools/webhook-sender.js +80 -0
- package/dist/tools/webhook-sender.js.map +1 -0
- package/dist/ui-assets/2fa.html +115 -0
- package/dist/ui-assets/account-conflict.html +108 -0
- package/dist/ui-assets/admin.css +263 -0
- package/dist/ui-assets/admin.js +1927 -0
- package/dist/ui-assets/auth.js +725 -0
- package/dist/ui-assets/base.css +219 -0
- package/dist/ui-assets/forgot-password.html +93 -0
- package/dist/ui-assets/link-verify.html +74 -0
- package/dist/ui-assets/login.html +135 -0
- package/dist/ui-assets/magic-link.html +112 -0
- package/dist/ui-assets/register.html +122 -0
- package/dist/ui-assets/reset-password.html +103 -0
- package/dist/ui-assets/ui-i18n-keys.json +78 -0
- package/dist/ui-assets/verify-email.html +66 -0
- package/package.json +89 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthConfigurator = void 0;
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const token_service_1 = require("./services/token.service");
|
|
6
|
+
const password_service_1 = require("./services/password.service");
|
|
7
|
+
const local_strategy_1 = require("./strategies/local/local.strategy");
|
|
8
|
+
const auth_middleware_1 = require("./middleware/auth.middleware");
|
|
9
|
+
const auth_router_1 = require("./router/auth.router");
|
|
10
|
+
const admin_router_1 = require("./router/admin.router");
|
|
11
|
+
const router_events_1 = require("./router/router-events");
|
|
12
|
+
const auth_event_names_1 = require("./events/auth-event-names");
|
|
13
|
+
class AuthConfigurator {
|
|
14
|
+
constructor(config, userStore, options = {}) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.userStore = userStore;
|
|
17
|
+
this.options = options;
|
|
18
|
+
this._tokenService = new token_service_1.TokenService();
|
|
19
|
+
this._passwordService = new password_service_1.PasswordService();
|
|
20
|
+
}
|
|
21
|
+
middleware(options) {
|
|
22
|
+
return (0, auth_middleware_1.createAuthMiddleware)(this.config, options?.sessionStore || this._sessionStore);
|
|
23
|
+
}
|
|
24
|
+
router(options) {
|
|
25
|
+
if (options?.sessionStore) {
|
|
26
|
+
this._sessionStore = options.sessionStore;
|
|
27
|
+
}
|
|
28
|
+
return (0, auth_router_1.createAuthRouter)(this.userStore, this.config, {
|
|
29
|
+
...options,
|
|
30
|
+
eventBus: options?.eventBus ?? this.options.eventBus,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
buildAllRouters(options) {
|
|
34
|
+
const composite = (0, express_1.Router)();
|
|
35
|
+
const authOptions = options.auth;
|
|
36
|
+
const authPrefix = (0, auth_router_1.resolveApiPrefix)(this.config, authOptions);
|
|
37
|
+
const normalizedPrefix = authPrefix.endsWith('/') ? authPrefix.slice(0, -1) : authPrefix;
|
|
38
|
+
composite.use(`${normalizedPrefix}/admin`, (0, admin_router_1.createAdminRouter)(this.userStore, {
|
|
39
|
+
...options.admin,
|
|
40
|
+
apiPrefix: normalizedPrefix,
|
|
41
|
+
jwtSecret: options.admin.jwtSecret ?? this.config.accessTokenSecret,
|
|
42
|
+
eventBus: options.admin.eventBus ?? this.options.eventBus,
|
|
43
|
+
}));
|
|
44
|
+
composite.use(normalizedPrefix, this.router(authOptions));
|
|
45
|
+
return composite;
|
|
46
|
+
}
|
|
47
|
+
async promoteToAdmin(userId, options = {}) {
|
|
48
|
+
const method = options.method ?? 'role';
|
|
49
|
+
// Reject an unknown method (a JavaScript caller, a config value) up front.
|
|
50
|
+
if (method !== 'flag' && method !== 'role') {
|
|
51
|
+
throw new Error(`promoteToAdmin: unknown method ${JSON.stringify(method)}`);
|
|
52
|
+
}
|
|
53
|
+
if (method === 'flag') {
|
|
54
|
+
const writableUserStore = this.userStore;
|
|
55
|
+
if (typeof writableUserStore.update !== 'function') {
|
|
56
|
+
throw new Error('IUserStore.update is required for promoteToAdmin({ method: "flag" })');
|
|
57
|
+
}
|
|
58
|
+
await writableUserStore.update(userId, { isAdmin: true });
|
|
59
|
+
(0, router_events_1.publishSafely)(this.options.eventBus, auth_event_names_1.AuthEventNames.ROLE_ASSIGNED, {
|
|
60
|
+
userId,
|
|
61
|
+
data: { role: 'admin', method: 'flag' },
|
|
62
|
+
});
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!options.rbacStore) {
|
|
66
|
+
throw new Error('rbacStore is required for promoteToAdmin({ method: "role" })');
|
|
67
|
+
}
|
|
68
|
+
await options.rbacStore.createRole('admin');
|
|
69
|
+
await options.rbacStore.addRoleToUser(userId, 'admin');
|
|
70
|
+
(0, router_events_1.publishSafely)(this.options.eventBus, auth_event_names_1.AuthEventNames.ROLE_ASSIGNED, {
|
|
71
|
+
userId,
|
|
72
|
+
data: { role: 'admin', method: 'role' },
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
async revokeAdmin(userId, options = {}) {
|
|
76
|
+
const method = options.method ?? 'role';
|
|
77
|
+
// Reject an unknown method (a JavaScript caller, a config value) before any
|
|
78
|
+
// check or store call: it would otherwise skip every step and still
|
|
79
|
+
// publish ROLE_REVOKED.
|
|
80
|
+
if (method !== 'flag' && method !== 'role' && method !== 'both') {
|
|
81
|
+
throw new Error(`revokeAdmin: unknown method ${JSON.stringify(method)}`);
|
|
82
|
+
}
|
|
83
|
+
const clearFlag = method === 'flag' || method === 'both';
|
|
84
|
+
const removeRole = method === 'role' || method === 'both';
|
|
85
|
+
const writableUserStore = this.userStore;
|
|
86
|
+
// Check every prerequisite before changing anything, so a missing store
|
|
87
|
+
// never leaves a partial revocation or reports a step that did not run.
|
|
88
|
+
// (A store error part-way through 'both' can still leave a partial state;
|
|
89
|
+
// it propagates to the caller and no event is published.)
|
|
90
|
+
if (clearFlag && typeof writableUserStore.update !== 'function') {
|
|
91
|
+
throw new Error(`IUserStore.update is required for revokeAdmin({ method: "${method}" })`);
|
|
92
|
+
}
|
|
93
|
+
if (removeRole && !options.rbacStore) {
|
|
94
|
+
throw new Error(`rbacStore is required for revokeAdmin({ method: "${method}" })`);
|
|
95
|
+
}
|
|
96
|
+
if (clearFlag) {
|
|
97
|
+
await writableUserStore.update(userId, { isAdmin: false });
|
|
98
|
+
}
|
|
99
|
+
if (removeRole) {
|
|
100
|
+
await options.rbacStore.removeRoleFromUser(userId, 'admin');
|
|
101
|
+
}
|
|
102
|
+
(0, router_events_1.publishSafely)(this.options.eventBus, auth_event_names_1.AuthEventNames.ROLE_REVOKED, {
|
|
103
|
+
userId,
|
|
104
|
+
data: { role: 'admin', method },
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
get tokenService() {
|
|
108
|
+
return this._tokenService;
|
|
109
|
+
}
|
|
110
|
+
get passwordService() {
|
|
111
|
+
return this._passwordService;
|
|
112
|
+
}
|
|
113
|
+
strategy(name) {
|
|
114
|
+
switch (name) {
|
|
115
|
+
case 'local':
|
|
116
|
+
return new local_strategy_1.LocalStrategy(this.userStore, this._passwordService);
|
|
117
|
+
case 'google':
|
|
118
|
+
throw new Error('GoogleStrategy is abstract - extend it and pass via RouterOptions');
|
|
119
|
+
case 'github':
|
|
120
|
+
throw new Error('GithubStrategy is abstract - extend it and pass via RouterOptions');
|
|
121
|
+
default:
|
|
122
|
+
throw new Error(`Unknown strategy: ${name}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.AuthConfigurator = AuthConfigurator;
|
|
127
|
+
//# sourceMappingURL=auth-configurator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-configurator.js","sourceRoot":"","sources":["../src/auth-configurator.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAGjD,4DAAwD;AACxD,kEAA8D;AAC9D,sEAAkE;AAGlE,kEAAoE;AACpE,sDAAyF;AAEzF,wDAA2F;AAC3F,0DAAuD;AAEvD,gEAA2D;AA8B3D,MAAa,gBAAgB;IAK3B,YACmB,MAAkB,EAClB,SAAqB,EACrB,UAAmC,EAAE;QAFrC,WAAM,GAAN,MAAM,CAAY;QAClB,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAA8B;QAEtD,IAAI,CAAC,aAAa,GAAG,IAAI,4BAAY,EAAE,CAAC;QACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,kCAAe,EAAE,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,OAA0C;QACnD,OAAO,IAAA,sCAAoB,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,CAAC,OAAuB;QAC5B,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5C,CAAC;QACD,OAAO,IAAA,8BAAgB,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;YACnD,GAAG,OAAO;YACV,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;SACrD,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,OAA+B;QAC7C,MAAM,SAAS,GAAG,IAAA,gBAAM,GAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QACzF,SAAS,CAAC,GAAG,CACX,GAAG,gBAAgB,QAAQ,EAC3B,IAAA,gCAAiB,EAAC,IAAI,CAAC,SAAS,EAAE;YAChC,GAAG,OAAO,CAAC,KAAK;YAChB,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB;YACnE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;SAC1D,CAAC,CACH,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,UAA4E,EAAE;QAE9E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,2EAA2E;QAC3E,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAA8B,CAAC;YAC9D,IAAI,OAAO,iBAAiB,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;YACD,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAA,6BAAa,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iCAAc,CAAC,aAAa,EAAE;gBACjE,MAAM;gBACN,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;aACxC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvD,IAAA,6BAAa,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iCAAc,CAAC,aAAa,EAAE;YACjE,MAAM;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAc,EACd,UAAqF,EAAE;QAEvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,4EAA4E;QAC5E,oEAAoE;QACpE,wBAAwB;QACxB,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC;QAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAA8B,CAAC;QAE9D,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,SAAS,IAAI,OAAO,iBAAiB,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,4DAA4D,MAAM,MAAM,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,oDAAoD,MAAM,MAAM,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,iBAAiB,CAAC,MAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,CAAC,SAAU,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,IAAA,6BAAa,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iCAAc,CAAC,YAAY,EAAE;YAChE,MAAM;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;SAChC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAKD,QAAQ,CAAC,IAAY;QACnB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,OAAO;gBACV,OAAO,IAAI,8BAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClE,KAAK,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,KAAK,QAAQ;gBACX,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AA7ID,4CA6IC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
/**
|
|
3
|
+
* Metadata attached to every event emitted on the AuthEventBus.
|
|
4
|
+
*/
|
|
5
|
+
export interface AuthEventPayload {
|
|
6
|
+
/** The event name (e.g. `identity.auth.login.success`). */
|
|
7
|
+
event: string;
|
|
8
|
+
/** Timestamp when the event was created (ISO 8601). */
|
|
9
|
+
timestamp: string;
|
|
10
|
+
/** Arbitrary event data. */
|
|
11
|
+
data?: unknown;
|
|
12
|
+
/** User ID associated with the event (optional). */
|
|
13
|
+
userId?: string;
|
|
14
|
+
/** Tenant ID for multi-tenant isolation (optional). */
|
|
15
|
+
tenantId?: string;
|
|
16
|
+
/** Session ID (optional). */
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
/** Correlation ID for distributed tracing (optional). */
|
|
19
|
+
correlationId?: string;
|
|
20
|
+
/** Client IP address (optional). */
|
|
21
|
+
ip?: string;
|
|
22
|
+
/** Client User-Agent header value (optional). */
|
|
23
|
+
userAgent?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Central event bus for all identity-related events.
|
|
27
|
+
*
|
|
28
|
+
* Acts as the backbone of the event-driven tools system. Auth core
|
|
29
|
+
* components emit standardised events here; downstream handlers (telemetry,
|
|
30
|
+
* SSE, webhooks, analytics) subscribe and react without coupling to each other.
|
|
31
|
+
*
|
|
32
|
+
* The bus is intentionally lightweight — it wraps Node's built-in
|
|
33
|
+
* `EventEmitter` so there is zero runtime overhead when no listeners are
|
|
34
|
+
* registered.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { AuthEventBus, AuthEventNames } from '@awesome-lang-auth/node';
|
|
39
|
+
*
|
|
40
|
+
* const bus = new AuthEventBus();
|
|
41
|
+
* bus.onEvent(AuthEventNames.AUTH_LOGIN_SUCCESS, (payload) => {
|
|
42
|
+
* console.log('Login:', payload.userId);
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare class AuthEventBus extends EventEmitter {
|
|
47
|
+
/**
|
|
48
|
+
* Emit an event onto the bus.
|
|
49
|
+
*
|
|
50
|
+
* @param eventName Standardised event name (see `AuthEventNames`).
|
|
51
|
+
* @param payload Event metadata and data.
|
|
52
|
+
*/
|
|
53
|
+
publish(eventName: string, payload: Omit<AuthEventPayload, 'event' | 'timestamp'> & {
|
|
54
|
+
timestamp?: string;
|
|
55
|
+
}): void;
|
|
56
|
+
/**
|
|
57
|
+
* Subscribe to a specific event.
|
|
58
|
+
*
|
|
59
|
+
* @param eventName Event name to listen for, or `'*'` for all events.
|
|
60
|
+
* @param handler Callback invoked with the full event payload.
|
|
61
|
+
*/
|
|
62
|
+
onEvent(eventName: string, handler: (payload: AuthEventPayload) => void): this;
|
|
63
|
+
/**
|
|
64
|
+
* Remove a previously registered event handler.
|
|
65
|
+
*/
|
|
66
|
+
offEvent(eventName: string, handler: (payload: AuthEventPayload) => void): this;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=auth-event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-event-bus.d.ts","sourceRoot":"","sources":["../../src/events/auth-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWjH;;;;;OAKG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAI9E;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;CAGhF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthEventBus = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
/**
|
|
6
|
+
* Central event bus for all identity-related events.
|
|
7
|
+
*
|
|
8
|
+
* Acts as the backbone of the event-driven tools system. Auth core
|
|
9
|
+
* components emit standardised events here; downstream handlers (telemetry,
|
|
10
|
+
* SSE, webhooks, analytics) subscribe and react without coupling to each other.
|
|
11
|
+
*
|
|
12
|
+
* The bus is intentionally lightweight — it wraps Node's built-in
|
|
13
|
+
* `EventEmitter` so there is zero runtime overhead when no listeners are
|
|
14
|
+
* registered.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { AuthEventBus, AuthEventNames } from '@awesome-lang-auth/node';
|
|
19
|
+
*
|
|
20
|
+
* const bus = new AuthEventBus();
|
|
21
|
+
* bus.onEvent(AuthEventNames.AUTH_LOGIN_SUCCESS, (payload) => {
|
|
22
|
+
* console.log('Login:', payload.userId);
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
class AuthEventBus extends events_1.EventEmitter {
|
|
27
|
+
/**
|
|
28
|
+
* Emit an event onto the bus.
|
|
29
|
+
*
|
|
30
|
+
* @param eventName Standardised event name (see `AuthEventNames`).
|
|
31
|
+
* @param payload Event metadata and data.
|
|
32
|
+
*/
|
|
33
|
+
publish(eventName, payload) {
|
|
34
|
+
const full = {
|
|
35
|
+
...payload,
|
|
36
|
+
event: eventName,
|
|
37
|
+
timestamp: payload.timestamp ?? new Date().toISOString(),
|
|
38
|
+
};
|
|
39
|
+
this.emit(eventName, full);
|
|
40
|
+
// Also emit on a wildcard channel so blanket listeners can subscribe to all events.
|
|
41
|
+
this.emit('*', full);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Subscribe to a specific event.
|
|
45
|
+
*
|
|
46
|
+
* @param eventName Event name to listen for, or `'*'` for all events.
|
|
47
|
+
* @param handler Callback invoked with the full event payload.
|
|
48
|
+
*/
|
|
49
|
+
onEvent(eventName, handler) {
|
|
50
|
+
return this.on(eventName, handler);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Remove a previously registered event handler.
|
|
54
|
+
*/
|
|
55
|
+
offEvent(eventName, handler) {
|
|
56
|
+
return this.off(eventName, handler);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.AuthEventBus = AuthEventBus;
|
|
60
|
+
//# sourceMappingURL=auth-event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-event-bus.js","sourceRoot":"","sources":["../../src/events/auth-event-bus.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AA0BtC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,YAAa,SAAQ,qBAAY;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,SAAiB,EAAE,OAA+E;QACxG,MAAM,IAAI,GAAqB;YAC7B,GAAG,OAAO;YACV,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACzD,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3B,oFAAoF;QACpF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,SAAiB,EAAE,OAA4C;QACrE,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB,EAAE,OAA4C;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;CACF;AAlCD,oCAkCC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard identity event names following the `domain.resource.action` naming
|
|
3
|
+
* convention for enterprise-grade event-driven applications.
|
|
4
|
+
*/
|
|
5
|
+
export declare const AuthEventNames: {
|
|
6
|
+
readonly USER_CREATED: "identity.user.created";
|
|
7
|
+
readonly USER_DELETED: "identity.user.deleted";
|
|
8
|
+
readonly USER_EMAIL_CHANGED: "identity.user.email.changed";
|
|
9
|
+
readonly USER_EMAIL_VERIFIED: "identity.user.email.verified";
|
|
10
|
+
readonly USER_PASSWORD_CHANGED: "identity.user.password.changed";
|
|
11
|
+
readonly USER_2FA_ENABLED: "identity.user.2fa.enabled";
|
|
12
|
+
readonly USER_2FA_DISABLED: "identity.user.2fa.disabled";
|
|
13
|
+
readonly USER_LINKED: "identity.user.linked";
|
|
14
|
+
readonly USER_UNLINKED: "identity.user.unlinked";
|
|
15
|
+
readonly SESSION_CREATED: "identity.session.created";
|
|
16
|
+
readonly SESSION_REVOKED: "identity.session.revoked";
|
|
17
|
+
readonly SESSION_EXPIRED: "identity.session.expired";
|
|
18
|
+
readonly SESSION_ROTATED: "identity.session.rotated";
|
|
19
|
+
readonly AUTH_LOGIN_SUCCESS: "identity.auth.login.success";
|
|
20
|
+
readonly AUTH_LOGIN_FAILED: "identity.auth.login.failed";
|
|
21
|
+
readonly AUTH_LOGOUT: "identity.auth.logout";
|
|
22
|
+
readonly AUTH_OAUTH_SUCCESS: "identity.auth.oauth.success";
|
|
23
|
+
readonly AUTH_OAUTH_CONFLICT: "identity.auth.oauth.conflict";
|
|
24
|
+
readonly TENANT_CREATED: "identity.tenant.created";
|
|
25
|
+
readonly TENANT_DELETED: "identity.tenant.deleted";
|
|
26
|
+
readonly TENANT_USER_ADDED: "identity.tenant.user.added";
|
|
27
|
+
readonly TENANT_USER_REMOVED: "identity.tenant.user.removed";
|
|
28
|
+
readonly ROLE_ASSIGNED: "identity.role.assigned";
|
|
29
|
+
readonly ROLE_REVOKED: "identity.role.revoked";
|
|
30
|
+
readonly PERMISSION_GRANTED: "identity.permission.granted";
|
|
31
|
+
readonly PERMISSION_REVOKED: "identity.permission.revoked";
|
|
32
|
+
};
|
|
33
|
+
export type AuthEventName = (typeof AuthEventNames)[keyof typeof AuthEventNames];
|
|
34
|
+
//# sourceMappingURL=auth-event-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-event-names.d.ts","sourceRoot":"","sources":["../../src/events/auth-event-names.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCjB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthEventNames = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Standard identity event names following the `domain.resource.action` naming
|
|
6
|
+
* convention for enterprise-grade event-driven applications.
|
|
7
|
+
*/
|
|
8
|
+
exports.AuthEventNames = {
|
|
9
|
+
// ---- User ----------------------------------------------------------------
|
|
10
|
+
USER_CREATED: 'identity.user.created',
|
|
11
|
+
USER_DELETED: 'identity.user.deleted',
|
|
12
|
+
USER_EMAIL_CHANGED: 'identity.user.email.changed',
|
|
13
|
+
USER_EMAIL_VERIFIED: 'identity.user.email.verified',
|
|
14
|
+
USER_PASSWORD_CHANGED: 'identity.user.password.changed',
|
|
15
|
+
USER_2FA_ENABLED: 'identity.user.2fa.enabled',
|
|
16
|
+
USER_2FA_DISABLED: 'identity.user.2fa.disabled',
|
|
17
|
+
USER_LINKED: 'identity.user.linked',
|
|
18
|
+
USER_UNLINKED: 'identity.user.unlinked',
|
|
19
|
+
// ---- Session -------------------------------------------------------------
|
|
20
|
+
SESSION_CREATED: 'identity.session.created',
|
|
21
|
+
SESSION_REVOKED: 'identity.session.revoked',
|
|
22
|
+
SESSION_EXPIRED: 'identity.session.expired',
|
|
23
|
+
SESSION_ROTATED: 'identity.session.rotated',
|
|
24
|
+
// ---- Authentication ------------------------------------------------------
|
|
25
|
+
AUTH_LOGIN_SUCCESS: 'identity.auth.login.success',
|
|
26
|
+
AUTH_LOGIN_FAILED: 'identity.auth.login.failed',
|
|
27
|
+
AUTH_LOGOUT: 'identity.auth.logout',
|
|
28
|
+
AUTH_OAUTH_SUCCESS: 'identity.auth.oauth.success',
|
|
29
|
+
AUTH_OAUTH_CONFLICT: 'identity.auth.oauth.conflict',
|
|
30
|
+
// ---- Tenant --------------------------------------------------------------
|
|
31
|
+
TENANT_CREATED: 'identity.tenant.created',
|
|
32
|
+
TENANT_DELETED: 'identity.tenant.deleted',
|
|
33
|
+
TENANT_USER_ADDED: 'identity.tenant.user.added',
|
|
34
|
+
TENANT_USER_REMOVED: 'identity.tenant.user.removed',
|
|
35
|
+
// ---- Authorization -------------------------------------------------------
|
|
36
|
+
ROLE_ASSIGNED: 'identity.role.assigned',
|
|
37
|
+
ROLE_REVOKED: 'identity.role.revoked',
|
|
38
|
+
PERMISSION_GRANTED: 'identity.permission.granted',
|
|
39
|
+
PERMISSION_REVOKED: 'identity.permission.revoked',
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=auth-event-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-event-names.js","sourceRoot":"","sources":["../../src/events/auth-event-names.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,6EAA6E;IAC7E,YAAY,EAAE,uBAAuB;IACrC,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,6BAA6B;IACjD,mBAAmB,EAAE,8BAA8B;IACnD,qBAAqB,EAAE,gCAAgC;IACvD,gBAAgB,EAAE,2BAA2B;IAC7C,iBAAiB,EAAE,4BAA4B;IAC/C,WAAW,EAAE,sBAAsB;IACnC,aAAa,EAAE,wBAAwB;IAEvC,6EAA6E;IAC7E,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,0BAA0B;IAE3C,6EAA6E;IAC7E,kBAAkB,EAAE,6BAA6B;IACjD,iBAAiB,EAAE,4BAA4B;IAC/C,WAAW,EAAE,sBAAsB;IACnC,kBAAkB,EAAE,6BAA6B;IACjD,mBAAmB,EAAE,8BAA8B;IAEnD,6EAA6E;IAC7E,cAAc,EAAE,yBAAyB;IACzC,cAAc,EAAE,yBAAyB;IACzC,iBAAiB,EAAE,4BAA4B;IAC/C,mBAAmB,EAAE,8BAA8B;IAEnD,6EAA6E;IAC7E,aAAa,EAAE,wBAAwB;IACvC,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,6BAA6B;IACjD,kBAAkB,EAAE,6BAA6B;CACzC,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Framework-agnostic HTTP primitives for awesome-node-auth.
|
|
3
|
+
*
|
|
4
|
+
* These interfaces capture the *minimal* surface that the library needs from
|
|
5
|
+
* an HTTP request / response cycle. They are intentionally a structural
|
|
6
|
+
* superset of the corresponding Express types so that Express
|
|
7
|
+
* `Request`/`Response` objects satisfy them without any cast.
|
|
8
|
+
*
|
|
9
|
+
* Non-Express adapters (Fastify, Koa, Hapi, …) can implement these interfaces
|
|
10
|
+
* or wrap their native objects with the `expressAdapter` / `fastifyAdapter`
|
|
11
|
+
* helpers exported from `@awesome-lang-auth/node`.
|
|
12
|
+
*
|
|
13
|
+
* @since 1.7.0
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Minimal request contract expected by awesome-node-auth middleware.
|
|
17
|
+
*
|
|
18
|
+
* @since 1.7.0
|
|
19
|
+
*/
|
|
20
|
+
export interface AuthRequest {
|
|
21
|
+
/** HTTP headers (name → value or array of values). */
|
|
22
|
+
headers: Record<string, string | string[] | undefined>;
|
|
23
|
+
/** Parsed cookies — requires a cookie-parser or equivalent. */
|
|
24
|
+
cookies?: Record<string, string>;
|
|
25
|
+
/** Parsed request body. */
|
|
26
|
+
body?: unknown;
|
|
27
|
+
/** URL path parameters (e.g. `{ id: '42' }`). */
|
|
28
|
+
params?: Record<string, string>;
|
|
29
|
+
/** Parsed query-string parameters. */
|
|
30
|
+
query?: Record<string, unknown>;
|
|
31
|
+
/** User payload — populated by `createAuthMiddleware` after token validation. */
|
|
32
|
+
user?: unknown;
|
|
33
|
+
/** HTTP method in upper case (GET, POST, …). */
|
|
34
|
+
method?: string;
|
|
35
|
+
/** URL path, e.g. `/auth/login`. */
|
|
36
|
+
path?: string;
|
|
37
|
+
/** Full request URL including query string. */
|
|
38
|
+
url?: string;
|
|
39
|
+
/** Remote IP address. */
|
|
40
|
+
ip?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Minimal response contract expected by awesome-node-auth middleware.
|
|
44
|
+
*
|
|
45
|
+
* @since 1.7.0
|
|
46
|
+
*/
|
|
47
|
+
export interface AuthResponse {
|
|
48
|
+
/** Set the HTTP status code and return `this` for chaining. */
|
|
49
|
+
status(code: number): this;
|
|
50
|
+
/** Send a JSON body and return `this` for chaining. */
|
|
51
|
+
json(body: any): this;
|
|
52
|
+
/** Send a raw body and return `this` for chaining. */
|
|
53
|
+
send(body?: any): this;
|
|
54
|
+
/** End the response without sending a body. */
|
|
55
|
+
end(): void;
|
|
56
|
+
/** Set a response cookie. */
|
|
57
|
+
cookie(name: string, value: any, options?: any): this;
|
|
58
|
+
/** Clear a response cookie. */
|
|
59
|
+
clearCookie(name: string, options?: any): this;
|
|
60
|
+
/** Redirect the client. */
|
|
61
|
+
redirect(url: string): void;
|
|
62
|
+
redirect(status: number, url: string): void;
|
|
63
|
+
/** Set a single response header. */
|
|
64
|
+
setHeader(name: string, value: string | string[]): this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Framework-neutral "next function" type.
|
|
68
|
+
*
|
|
69
|
+
* @since 1.7.0
|
|
70
|
+
*/
|
|
71
|
+
export type AuthNextFunction = (err?: any) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Framework-neutral middleware / request-handler type.
|
|
74
|
+
*
|
|
75
|
+
* The parameter types use `any` deliberately so that Express
|
|
76
|
+
* `RequestHandler` values — including third-party rate-limiters,
|
|
77
|
+
* body-parsers, etc. — are directly assignable here without a cast.
|
|
78
|
+
*
|
|
79
|
+
* **Why `any` and not `AuthRequest`/`AuthResponse`?**
|
|
80
|
+
* TypeScript enforces *contravariance* on function parameter types when
|
|
81
|
+
* `strictFunctionTypes` is enabled (the default in strict mode).
|
|
82
|
+
* If the parameters were typed as `AuthRequest`, then
|
|
83
|
+
* `(req: Express.Request) => void` would **not** be assignable to
|
|
84
|
+
* `(req: AuthRequest) => void` — because `Express.Request` is a *subtype*
|
|
85
|
+
* of `AuthRequest` (it has more properties), and subtype parameters fail
|
|
86
|
+
* contravariant checks. Using `any` bypasses this check, making every
|
|
87
|
+
* Express, Fastify, Koa, or other third-party middleware directly assignable
|
|
88
|
+
* without an explicit cast.
|
|
89
|
+
*
|
|
90
|
+
* Non-Express adapters that wrap their native objects as `AuthRequest` /
|
|
91
|
+
* `AuthResponse` are also assignable.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import type { AuthRequestHandler } from '@awesome-lang-auth/node';
|
|
96
|
+
*
|
|
97
|
+
* // Write middleware once — works on Express, Fastify, Koa, …
|
|
98
|
+
* const requestLogger: AuthRequestHandler = (req, _res, next) => {
|
|
99
|
+
* console.log(req.method, req.url);
|
|
100
|
+
* next();
|
|
101
|
+
* };
|
|
102
|
+
*
|
|
103
|
+
* // Mount on Express directly (no cast needed):
|
|
104
|
+
* app.use(requestLogger);
|
|
105
|
+
*
|
|
106
|
+
* // Mount on Fastify via adapter:
|
|
107
|
+
* import { fastifyAdapter } from '@awesome-lang-auth/node';
|
|
108
|
+
* fastify.addHook('preHandler', fastifyAdapter(requestLogger));
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @since 1.7.0
|
|
112
|
+
*/
|
|
113
|
+
export type AuthRequestHandler = (req: any, res: any, next: (err?: any) => void) => any;
|
|
114
|
+
/**
|
|
115
|
+
* Framework-neutral router interface.
|
|
116
|
+
*
|
|
117
|
+
* The Express `Router` object is structurally assignable to this type, so
|
|
118
|
+
* all existing code that works with Express routers compiles unchanged.
|
|
119
|
+
*
|
|
120
|
+
* The handler parameters use `any[]` for the same contravariance reason as
|
|
121
|
+
* `AuthRequestHandler` — see that type's JSDoc for the full explanation.
|
|
122
|
+
*
|
|
123
|
+
* @since 1.7.0
|
|
124
|
+
*/
|
|
125
|
+
export interface AuthRouter {
|
|
126
|
+
use(path: string, ...handlers: any[]): this;
|
|
127
|
+
use(...handlers: any[]): this;
|
|
128
|
+
get(path: string, ...handlers: any[]): this;
|
|
129
|
+
post(path: string, ...handlers: any[]): this;
|
|
130
|
+
put(path: string, ...handlers: any[]): this;
|
|
131
|
+
patch(path: string, ...handlers: any[]): this;
|
|
132
|
+
delete(path: string, ...handlers: any[]): this;
|
|
133
|
+
options(path: string, ...handlers: any[]): this;
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=http-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-types.d.ts","sourceRoot":"","sources":["../src/http-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Framework-agnostic HTTP primitives for awesome-node-auth.
|
|
4
|
+
*
|
|
5
|
+
* These interfaces capture the *minimal* surface that the library needs from
|
|
6
|
+
* an HTTP request / response cycle. They are intentionally a structural
|
|
7
|
+
* superset of the corresponding Express types so that Express
|
|
8
|
+
* `Request`/`Response` objects satisfy them without any cast.
|
|
9
|
+
*
|
|
10
|
+
* Non-Express adapters (Fastify, Koa, Hapi, …) can implement these interfaces
|
|
11
|
+
* or wrap their native objects with the `expressAdapter` / `fastifyAdapter`
|
|
12
|
+
* helpers exported from `@awesome-lang-auth/node`.
|
|
13
|
+
*
|
|
14
|
+
* @since 1.7.0
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/* eslint-enable @typescript-eslint/no-explicit-any */
|
|
18
|
+
//# sourceMappingURL=http-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-types.js","sourceRoot":"","sources":["../src/http-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAmJH,sDAAsD"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export { AuthConfigurator } from './auth-configurator';
|
|
2
|
+
export type { AuthConfiguratorOptions, BuildAllRoutersOptions } from './auth-configurator';
|
|
3
|
+
export type { AuthRequest, AuthResponse, AuthNextFunction, AuthRequestHandler, AuthRouter } from './http-types';
|
|
4
|
+
export { expressAdapter } from './adapters/express';
|
|
5
|
+
export { fastifyAdapter } from './adapters/fastify';
|
|
6
|
+
export type { IUserStore } from './interfaces/user-store.interface';
|
|
7
|
+
export type { ITokenStore } from './interfaces/token-store.interface';
|
|
8
|
+
export type { IAuthStrategy } from './interfaces/auth-strategy.interface';
|
|
9
|
+
export type { IUserMetadataStore } from './interfaces/user-metadata-store.interface';
|
|
10
|
+
export type { IRolesPermissionsStore, IRoleDocument, IRoleUserDocument } from './interfaces/roles-permissions-store.interface';
|
|
11
|
+
export type { ISessionStore } from './interfaces/session-store.interface';
|
|
12
|
+
export type { ITenantStore } from './interfaces/tenant-store.interface';
|
|
13
|
+
export type { ISettingsStore, AuthSettings } from './interfaces/settings-store.interface';
|
|
14
|
+
export type { ILinkedAccountsStore, LinkedAccount } from './interfaces/linked-accounts-store.interface';
|
|
15
|
+
export type { IPendingLinkStore, IPendingLink } from './interfaces/pending-link-store.interface';
|
|
16
|
+
export type { IApiKeyStore, ApiKeyAuditEntry } from './interfaces/api-key-store.interface';
|
|
17
|
+
export type { ITemplateStore, MailTemplate, UiTranslation } from './interfaces/template-store.interface';
|
|
18
|
+
export { MemoryTemplateStore } from './stores/memory-template.store';
|
|
19
|
+
export type { BaseUser } from './models/user.model';
|
|
20
|
+
export type { TokenPair, AccessTokenPayload } from './models/token.model';
|
|
21
|
+
export type { AuthConfig } from './models/auth-config.model';
|
|
22
|
+
export type { SessionInfo } from './models/session.model';
|
|
23
|
+
export type { Tenant } from './models/tenant.model';
|
|
24
|
+
export { AuthError } from './models/errors';
|
|
25
|
+
export type { ApiKey, ApiKeyContext } from './models/api-key.model';
|
|
26
|
+
export { BaseAuthStrategy } from './abstract/base-auth-strategy.abstract';
|
|
27
|
+
export { BaseOAuthStrategy } from './abstract/base-oauth-strategy.abstract';
|
|
28
|
+
export { LocalStrategy } from './strategies/local/local.strategy';
|
|
29
|
+
export { GoogleStrategy } from './strategies/oauth/google.strategy';
|
|
30
|
+
export { GithubStrategy } from './strategies/oauth/github.strategy';
|
|
31
|
+
export { GenericOAuthStrategy } from './strategies/oauth/generic-oauth.strategy';
|
|
32
|
+
export type { GenericOAuthProviderConfig } from './strategies/oauth/generic-oauth.strategy';
|
|
33
|
+
export { MagicLinkStrategy } from './strategies/magic-link/magic-link.strategy';
|
|
34
|
+
export { SmsStrategy } from './strategies/sms/sms.strategy';
|
|
35
|
+
export { TotpStrategy } from './strategies/two-factor/totp.strategy';
|
|
36
|
+
export { ApiKeyStrategy } from './strategies/api-key/api-key.strategy';
|
|
37
|
+
export type { ApiKeyStrategyOptions } from './strategies/api-key/api-key.strategy';
|
|
38
|
+
export { TokenService } from './services/token.service';
|
|
39
|
+
export { PasswordService } from './services/password.service';
|
|
40
|
+
export { SmsService } from './services/sms.service';
|
|
41
|
+
export { MailerService } from './services/mailer.service';
|
|
42
|
+
export { NotificationService } from './services/notification.service';
|
|
43
|
+
export type { EmailNotificationConfig, SmsNotificationConfig, SendEmailOptions, SendSmsOptions } from './services/notification.service';
|
|
44
|
+
export type { MailerConfig } from './models/auth-config.model';
|
|
45
|
+
export { ApiKeyService } from './services/api-key.service';
|
|
46
|
+
export type { CreateApiKeyOptions, CreatedApiKey } from './services/api-key.service';
|
|
47
|
+
export { JwksService } from './services/jwks.service';
|
|
48
|
+
export type { JWK, JwksDocument, JwksClientOptions } from './services/jwks.service';
|
|
49
|
+
export { JwksClient } from './services/jwks.service';
|
|
50
|
+
export type { IdProviderConfig, ResourceServerConfig } from './models/auth-config.model';
|
|
51
|
+
export { createAuthMiddleware } from './middleware/auth.middleware';
|
|
52
|
+
export { createApiKeyMiddleware } from './middleware/api-key.middleware';
|
|
53
|
+
export { createJwksAuthMiddleware } from './middleware/jwks-auth.middleware';
|
|
54
|
+
export { createAuthRouter, buildUiLink } from './router/auth.router';
|
|
55
|
+
export type { RouterOptions } from './router/auth.router';
|
|
56
|
+
export { createAdminRouter } from './router/admin.router';
|
|
57
|
+
export type { AdminOptions, AdminAccessPolicy, AuthorizedAdminUser } from './router/admin.router';
|
|
58
|
+
export { buildUiRouter } from './router/ui.router';
|
|
59
|
+
export type { UiRouterOptions } from './router/ui.router';
|
|
60
|
+
export { AuthEventBus } from './events/auth-event-bus';
|
|
61
|
+
export type { AuthEventPayload } from './events/auth-event-bus';
|
|
62
|
+
export { AuthEventNames } from './events/auth-event-names';
|
|
63
|
+
export type { AuthEventName } from './events/auth-event-names';
|
|
64
|
+
export type { ITelemetryStore, TelemetryEvent, TelemetryFilter } from './interfaces/telemetry-store.interface';
|
|
65
|
+
export type { IWebhookStore, WebhookConfig, OutgoingWebhookEvent } from './interfaces/webhook-store.interface';
|
|
66
|
+
export { SseManager } from './tools/sse-manager';
|
|
67
|
+
export type { StreamEvent, SseManagerOptions } from './tools/sse-manager';
|
|
68
|
+
export type { ISseDistributor } from './interfaces/sse-distributor.interface';
|
|
69
|
+
export { WebhookSender } from './tools/webhook-sender';
|
|
70
|
+
export { AuthTools } from './tools/auth-tools';
|
|
71
|
+
export type { AuthToolsOptions, TrackOptions, NotifyOptions } from './tools/auth-tools';
|
|
72
|
+
export { ActionRegistry, webhookAction } from './tools/webhook-action';
|
|
73
|
+
export type { WebhookActionMeta, RegisteredAction } from './tools/webhook-action';
|
|
74
|
+
export { SseNotifyRegistry, sseNotify } from './tools/sse-notify.decorator';
|
|
75
|
+
export type { SseNotifyOptions } from './tools/sse-notify.decorator';
|
|
76
|
+
export { createToolsRouter } from './router/tools.router';
|
|
77
|
+
export type { ToolsRouterOptions } from './router/tools.router';
|
|
78
|
+
export { buildOpenApiSpec, buildSwaggerUiHtml, buildAuthOpenApiSpec, buildAdminOpenApiSpec } from './router/openapi';
|
|
79
|
+
export type { OpenApiDocument, AuthOpenApiOptions, AdminOpenApiOptions } from './router/openapi';
|
|
80
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|