@nauth-toolkit/core 0.1.18 → 0.1.21

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 (73) hide show
  1. package/dist/adapters/storage.factory.d.ts.map +1 -1
  2. package/dist/adapters/storage.factory.js +250 -18
  3. package/dist/adapters/storage.factory.js.map +1 -1
  4. package/dist/bootstrap.d.ts.map +1 -1
  5. package/dist/bootstrap.js +2 -1
  6. package/dist/bootstrap.js.map +1 -1
  7. package/dist/dto/admin-signup.dto.d.ts +196 -0
  8. package/dist/dto/admin-signup.dto.d.ts.map +1 -0
  9. package/dist/dto/admin-signup.dto.js +317 -0
  10. package/dist/dto/admin-signup.dto.js.map +1 -0
  11. package/dist/dto/index.d.ts +1 -0
  12. package/dist/dto/index.d.ts.map +1 -1
  13. package/dist/dto/index.js +1 -0
  14. package/dist/dto/index.js.map +1 -1
  15. package/dist/handlers/csrf.handler.d.ts.map +1 -1
  16. package/dist/handlers/csrf.handler.js +7 -2
  17. package/dist/handlers/csrf.handler.js.map +1 -1
  18. package/dist/handlers/social-redirect.handler.d.ts +126 -0
  19. package/dist/handlers/social-redirect.handler.d.ts.map +1 -0
  20. package/dist/handlers/social-redirect.handler.js +346 -0
  21. package/dist/handlers/social-redirect.handler.js.map +1 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/interfaces/config.interface.d.ts +43 -0
  27. package/dist/interfaces/config.interface.d.ts.map +1 -1
  28. package/dist/interfaces/index.d.ts +1 -0
  29. package/dist/interfaces/index.d.ts.map +1 -1
  30. package/dist/interfaces/index.js +1 -0
  31. package/dist/interfaces/index.js.map +1 -1
  32. package/dist/interfaces/social-auth-state-store.interface.d.ts +100 -0
  33. package/dist/interfaces/social-auth-state-store.interface.d.ts.map +1 -0
  34. package/dist/interfaces/social-auth-state-store.interface.js +3 -0
  35. package/dist/interfaces/social-auth-state-store.interface.js.map +1 -0
  36. package/dist/interfaces/storage-adapter.interface.d.ts +2 -2
  37. package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
  38. package/dist/internal.d.ts +5 -0
  39. package/dist/internal.d.ts.map +1 -1
  40. package/dist/internal.js +7 -1
  41. package/dist/internal.js.map +1 -1
  42. package/dist/schemas/auth-config.schema.d.ts +107 -28
  43. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  44. package/dist/schemas/auth-config.schema.js +20 -1
  45. package/dist/schemas/auth-config.schema.js.map +1 -1
  46. package/dist/services/auth.service.d.ts +39 -0
  47. package/dist/services/auth.service.d.ts.map +1 -1
  48. package/dist/services/auth.service.js +221 -9
  49. package/dist/services/auth.service.js.map +1 -1
  50. package/dist/services/social-auth-base.service.d.ts +5 -10
  51. package/dist/services/social-auth-base.service.d.ts.map +1 -1
  52. package/dist/services/social-auth-base.service.js +11 -59
  53. package/dist/services/social-auth-base.service.js.map +1 -1
  54. package/dist/services/social-auth-state-store.service.d.ts +58 -0
  55. package/dist/services/social-auth-state-store.service.d.ts.map +1 -0
  56. package/dist/services/social-auth-state-store.service.js +261 -0
  57. package/dist/services/social-auth-state-store.service.js.map +1 -0
  58. package/dist/storage/account-lockout-storage.service.d.ts +2 -2
  59. package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
  60. package/dist/storage/account-lockout-storage.service.js +2 -2
  61. package/dist/storage/account-lockout-storage.service.js.map +1 -1
  62. package/dist/utils/index.d.ts +1 -0
  63. package/dist/utils/index.d.ts.map +1 -1
  64. package/dist/utils/index.js +1 -0
  65. package/dist/utils/index.js.map +1 -1
  66. package/dist/utils/password-generator.d.ts +29 -0
  67. package/dist/utils/password-generator.d.ts.map +1 -0
  68. package/dist/utils/password-generator.js +98 -0
  69. package/dist/utils/password-generator.js.map +1 -0
  70. package/dist/utils/setup/init-social.d.ts +2 -5
  71. package/dist/utils/setup/init-social.d.ts.map +1 -1
  72. package/dist/utils/setup/init-social.js.map +1 -1
  73. package/package.json +1 -1
@@ -1,40 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.BaseSocialAuthProviderService = void 0;
37
- const crypto = __importStar(require("crypto"));
38
4
  const auth_audit_event_type_enum_1 = require("../enums/auth-audit-event-type.enum");
39
5
  const nauth_exception_1 = require("../exceptions/nauth.exception");
40
6
  const error_codes_enum_1 = require("../enums/error-codes.enum");
@@ -91,7 +57,7 @@ class BaseSocialAuthProviderService {
91
57
  auditService;
92
58
  trustedDeviceService;
93
59
  constructor(config, logger, authService, socialAuthService, jwtService, sessionService, challengeHelper, clientInfoService,
94
- // State store for CSRF protection - shared across all providers
60
+ // State store for OAuth CSRF protection - MUST be shared across instances (StorageAdapter-backed)
95
61
  stateStore,
96
62
  // User repository for creating social users
97
63
  userRepository,
@@ -141,7 +107,7 @@ class BaseSocialAuthProviderService {
141
107
  throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.SOCIAL_CONFIG_MISSING, `Provider configuration not found: ${this.providerName}`);
142
108
  }
143
109
  // Validate state (basic CSRF protection)
144
- this.validateState(state);
110
+ await this.validateState(state);
145
111
  try {
146
112
  // Get user profile from provider
147
113
  const profile = await this.getOAuthProfile(code, state);
@@ -201,7 +167,7 @@ class BaseSocialAuthProviderService {
201
167
  throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.SOCIAL_CONFIG_MISSING, `Provider configuration not found: ${this.providerName}`);
202
168
  }
203
169
  // Validate state
204
- this.validateState(state);
170
+ await this.validateState(state);
205
171
  try {
206
172
  // Get user profile from provider
207
173
  const profile = await this.getOAuthProfile(code, state);
@@ -288,32 +254,18 @@ class BaseSocialAuthProviderService {
288
254
  /**
289
255
  * Validate state parameter for CSRF protection
290
256
  */
291
- validateState(state) {
292
- const stateData = this.stateStore.get(state);
293
- if (!stateData) {
294
- throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field: 'state' });
295
- }
296
- if (stateData.provider !== this.providerName) {
297
- throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'State provider mismatch', { field: 'state' });
298
- }
299
- // Check if state is not too old (5 minutes)
300
- if (Date.now() - stateData.timestamp > 5 * 60 * 1000) {
301
- this.stateStore.delete(state);
302
- throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.CHALLENGE_EXPIRED, 'State parameter expired');
303
- }
304
- // Clean up used state
305
- this.stateStore.delete(state);
257
+ async validateState(state) {
258
+ // ========================================================================
259
+ // ⚠️ SECURITY: CSRF state MUST be one-time use
260
+ // ========================================================================
261
+ // The store enforces single-use semantics in a multi-server safe way.
262
+ await this.stateStore.validateAndConsumeCsrfState(this.providerName, state);
306
263
  }
307
264
  /**
308
265
  * Generate random state for CSRF protection
309
266
  */
310
- generateState() {
311
- const state = crypto.randomBytes(32).toString('hex');
312
- this.stateStore.set(state, {
313
- timestamp: Date.now(),
314
- provider: this.providerName,
315
- });
316
- return state;
267
+ async generateState() {
268
+ return await this.stateStore.createCsrfState(this.providerName);
317
269
  }
318
270
  /**
319
271
  * Find existing user or create new one
@@ -1 +1 @@
1
- {"version":3,"file":"social-auth-base.service.js","sourceRoot":"","sources":["../../src/services/social-auth-base.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social-auth-base.service.js","sourceRoot":"","sources":["../../src/services/social-auth-base.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { ISocialAuthStateStore, SocialAuthRedirectContext } from '../interfaces/social-auth-state-store.interface';
2
+ import { StorageAdapter } from '../interfaces/storage-adapter.interface';
3
+ import { NAuthLogger } from '../utils/nauth-logger';
4
+ /**
5
+ * StorageAdapter-backed social OAuth state store
6
+ *
7
+ * Replaces in-memory `Map` usage for OAuth CSRF state to support multi-server deployments.
8
+ *
9
+ * This implementation stores:
10
+ * - CSRF state record (provider + createdAt) under a short TTL
11
+ * - Redirect context record (returnTo/appState/action) under the same TTL (optional)
12
+ *
13
+ * Replay protection:
14
+ * - Uses a separate `used` marker key with `{ nx: true }` so both Redis and Database adapters
15
+ * can enforce one-time consumption without requiring special atomic commands.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const store = new SocialAuthStateStore(storageAdapter, logger);
20
+ * const state = await store.createCsrfState('google');
21
+ * await store.setRedirectContext(state, { returnTo: '/auth/callback', appState: '12345', action: 'login' });
22
+ * // later during callback:
23
+ * await store.validateAndConsumeCsrfState('google', state);
24
+ * const ctx = await store.consumeRedirectContext(state);
25
+ * ```
26
+ */
27
+ export declare class SocialAuthStateStore implements ISocialAuthStateStore {
28
+ private readonly storage;
29
+ private readonly logger?;
30
+ private readonly ttlSeconds;
31
+ constructor(storage: StorageAdapter, logger?: NAuthLogger | undefined, ttlSeconds?: number);
32
+ /**
33
+ * Create a CSRF state token and persist it for one-time validation.
34
+ */
35
+ createCsrfState(provider: string): Promise<string>;
36
+ /**
37
+ * Validate and consume CSRF state (one-time).
38
+ */
39
+ validateAndConsumeCsrfState(provider: string, state: string): Promise<void>;
40
+ /**
41
+ * Persist redirect context for a CSRF state token.
42
+ */
43
+ setRedirectContext(state: string, context: SocialAuthRedirectContext): Promise<void>;
44
+ /**
45
+ * Consume redirect context (read + delete).
46
+ */
47
+ consumeRedirectContext(state: string): Promise<SocialAuthRedirectContext | null>;
48
+ private getCsrfKey;
49
+ private getUsedKey;
50
+ private getRedirectKey;
51
+ private normalizeProvider;
52
+ private normalizeState;
53
+ private normalizeReturnTo;
54
+ private safeParseCsrfRecord;
55
+ private safeParseRedirectRecord;
56
+ private safeParseJsonObject;
57
+ }
58
+ //# sourceMappingURL=social-auth-state-store.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-auth-state-store.service.d.ts","sourceRoot":"","sources":["../../src/services/social-auth-state-store.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,oBAAqB,YAAW,qBAAqB;IAI9D,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJ1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAGjB,OAAO,EAAE,cAAc,EACvB,MAAM,CAAC,EAAE,WAAW,YAAA,EACrC,UAAU,GAAE,MAAe;IAK7B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcxD;;OAEG;IACG,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjF;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1F;;OAEG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC;IA6BtF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,uBAAuB;IAgC/B,OAAO,CAAC,mBAAmB;CAa5B"}
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SocialAuthStateStore = void 0;
37
+ const crypto = __importStar(require("crypto"));
38
+ const error_codes_enum_1 = require("../enums/error-codes.enum");
39
+ const nauth_exception_1 = require("../exceptions/nauth.exception");
40
+ /**
41
+ * StorageAdapter-backed social OAuth state store
42
+ *
43
+ * Replaces in-memory `Map` usage for OAuth CSRF state to support multi-server deployments.
44
+ *
45
+ * This implementation stores:
46
+ * - CSRF state record (provider + createdAt) under a short TTL
47
+ * - Redirect context record (returnTo/appState/action) under the same TTL (optional)
48
+ *
49
+ * Replay protection:
50
+ * - Uses a separate `used` marker key with `{ nx: true }` so both Redis and Database adapters
51
+ * can enforce one-time consumption without requiring special atomic commands.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const store = new SocialAuthStateStore(storageAdapter, logger);
56
+ * const state = await store.createCsrfState('google');
57
+ * await store.setRedirectContext(state, { returnTo: '/auth/callback', appState: '12345', action: 'login' });
58
+ * // later during callback:
59
+ * await store.validateAndConsumeCsrfState('google', state);
60
+ * const ctx = await store.consumeRedirectContext(state);
61
+ * ```
62
+ */
63
+ class SocialAuthStateStore {
64
+ storage;
65
+ logger;
66
+ ttlSeconds;
67
+ constructor(storage, logger, ttlSeconds = 5 * 60) {
68
+ this.storage = storage;
69
+ this.logger = logger;
70
+ this.ttlSeconds = ttlSeconds;
71
+ }
72
+ /**
73
+ * Create a CSRF state token and persist it for one-time validation.
74
+ */
75
+ async createCsrfState(provider) {
76
+ const normalizedProvider = this.normalizeProvider(provider);
77
+ const state = crypto.randomBytes(32).toString('hex');
78
+ const key = this.getCsrfKey(state);
79
+ const value = JSON.stringify({
80
+ provider: normalizedProvider,
81
+ createdAt: Date.now(),
82
+ });
83
+ await this.storage.set(key, value, this.ttlSeconds);
84
+ return state;
85
+ }
86
+ /**
87
+ * Validate and consume CSRF state (one-time).
88
+ */
89
+ async validateAndConsumeCsrfState(provider, state) {
90
+ const normalizedProvider = this.normalizeProvider(provider);
91
+ const normalizedState = this.normalizeState(state);
92
+ // ============================================================================
93
+ // Replay protection: mark state as used (NX) before reading record
94
+ // ============================================================================
95
+ // This avoids race conditions where two callbacks try to validate the same state.
96
+ // Both Redis and DB adapters support nx semantics.
97
+ const usedKey = this.getUsedKey(normalizedState);
98
+ const usedSetResult = await this.storage.set(usedKey, '1', this.ttlSeconds, { nx: true });
99
+ if (usedSetResult === null) {
100
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field: 'state' });
101
+ }
102
+ const key = this.getCsrfKey(normalizedState);
103
+ const raw = await this.storage.get(key);
104
+ if (!raw) {
105
+ // Missing/expired state
106
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field: 'state' });
107
+ }
108
+ const parsed = this.safeParseCsrfRecord(raw);
109
+ if (parsed.provider !== normalizedProvider) {
110
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'State provider mismatch', { field: 'state' });
111
+ }
112
+ // TTL should enforce expiry, but we keep an explicit check for DB edge cases
113
+ if (Date.now() - parsed.createdAt > this.ttlSeconds * 1000) {
114
+ // Clean up record to reduce storage pressure
115
+ await this.storage.del(key);
116
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.CHALLENGE_EXPIRED, 'State parameter expired');
117
+ }
118
+ // Consume (one-time): remove the CSRF record
119
+ await this.storage.del(key);
120
+ }
121
+ /**
122
+ * Persist redirect context for a CSRF state token.
123
+ */
124
+ async setRedirectContext(state, context) {
125
+ const normalizedState = this.normalizeState(state);
126
+ const key = this.getRedirectKey(normalizedState);
127
+ const payload = JSON.stringify({
128
+ returnTo: this.normalizeReturnTo(context.returnTo),
129
+ appState: context.appState,
130
+ delivery: context.delivery,
131
+ action: context.action,
132
+ createdAt: Date.now(),
133
+ });
134
+ await this.storage.set(key, payload, this.ttlSeconds);
135
+ }
136
+ /**
137
+ * Consume redirect context (read + delete).
138
+ */
139
+ async consumeRedirectContext(state) {
140
+ const normalizedState = this.normalizeState(state);
141
+ const key = this.getRedirectKey(normalizedState);
142
+ const raw = await this.storage.get(key);
143
+ if (!raw) {
144
+ return null;
145
+ }
146
+ const parsed = this.safeParseRedirectRecord(raw);
147
+ // TTL should enforce expiry, but keep explicit check and cleanup
148
+ if (Date.now() - parsed.createdAt > this.ttlSeconds * 1000) {
149
+ await this.storage.del(key);
150
+ return null;
151
+ }
152
+ await this.storage.del(key);
153
+ return {
154
+ returnTo: parsed.returnTo,
155
+ appState: parsed.appState,
156
+ delivery: parsed.delivery,
157
+ action: parsed.action,
158
+ };
159
+ }
160
+ // ============================================================================
161
+ // Key helpers
162
+ // ============================================================================
163
+ getCsrfKey(state) {
164
+ return `social:oauth_csrf:${state}`;
165
+ }
166
+ getUsedKey(state) {
167
+ return `social:oauth_csrf_used:${state}`;
168
+ }
169
+ getRedirectKey(state) {
170
+ return `social:oauth_redirect:${state}`;
171
+ }
172
+ // ============================================================================
173
+ // Validation helpers
174
+ // ============================================================================
175
+ normalizeProvider(provider) {
176
+ if (typeof provider !== 'string') {
177
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Provider must be a string', { field: 'provider' });
178
+ }
179
+ const p = provider.trim().toLowerCase();
180
+ if (!p) {
181
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Provider is required', { field: 'provider' });
182
+ }
183
+ return p;
184
+ }
185
+ normalizeState(state) {
186
+ if (typeof state !== 'string') {
187
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'State must be a string', { field: 'state' });
188
+ }
189
+ const s = state.trim();
190
+ if (!s) {
191
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'State is required', { field: 'state' });
192
+ }
193
+ if (s.length > 500) {
194
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'State parameter too long', { field: 'state' });
195
+ }
196
+ return s;
197
+ }
198
+ normalizeReturnTo(returnTo) {
199
+ if (typeof returnTo !== 'string') {
200
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'returnTo must be a string', { field: 'returnTo' });
201
+ }
202
+ const v = returnTo.trim();
203
+ if (!v) {
204
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'returnTo is required', { field: 'returnTo' });
205
+ }
206
+ // NOTE: Additional open-redirect policy enforcement is implemented at controller level.
207
+ return v;
208
+ }
209
+ safeParseCsrfRecord(raw) {
210
+ const obj = this.safeParseJsonObject(raw, 'state');
211
+ const provider = obj.provider;
212
+ const createdAt = obj.createdAt;
213
+ if (typeof provider !== 'string' || !provider.trim()) {
214
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field: 'state' });
215
+ }
216
+ if (typeof createdAt !== 'number' || !Number.isFinite(createdAt) || createdAt <= 0) {
217
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field: 'state' });
218
+ }
219
+ return { provider: provider.trim().toLowerCase(), createdAt };
220
+ }
221
+ safeParseRedirectRecord(raw) {
222
+ const obj = this.safeParseJsonObject(raw, 'state');
223
+ const returnTo = obj.returnTo;
224
+ const appState = obj.appState;
225
+ const delivery = obj.delivery;
226
+ const action = obj.action;
227
+ const createdAt = obj.createdAt;
228
+ if (typeof returnTo !== 'string' || !returnTo.trim()) {
229
+ return { returnTo: '/', action: 'login', createdAt: 0 };
230
+ }
231
+ if (action !== 'login' && action !== 'link') {
232
+ return { returnTo: returnTo.trim(), action: 'login', createdAt: 0 };
233
+ }
234
+ if (typeof createdAt !== 'number' || !Number.isFinite(createdAt) || createdAt <= 0) {
235
+ return { returnTo: returnTo.trim(), action, createdAt: 0 };
236
+ }
237
+ if (appState !== undefined && typeof appState !== 'string') {
238
+ return { returnTo: returnTo.trim(), action, createdAt };
239
+ }
240
+ if (delivery !== undefined && delivery !== 'cookies' && delivery !== 'json') {
241
+ return { returnTo: returnTo.trim(), appState, action, createdAt };
242
+ }
243
+ return { returnTo: returnTo.trim(), appState, delivery, action, createdAt };
244
+ }
245
+ safeParseJsonObject(raw, field) {
246
+ try {
247
+ const parsed = JSON.parse(raw);
248
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
249
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field });
250
+ }
251
+ return parsed;
252
+ }
253
+ catch (error) {
254
+ // Don't leak raw payload; only log in debug.
255
+ this.logger?.debug?.(`[SocialAuthStateStore] Failed to parse ${field} record`, { error });
256
+ throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.VALIDATION_FAILED, 'Invalid state parameter', { field });
257
+ }
258
+ }
259
+ }
260
+ exports.SocialAuthStateStore = SocialAuthStateStore;
261
+ //# sourceMappingURL=social-auth-state-store.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-auth-state-store.service.js","sourceRoot":"","sources":["../../src/services/social-auth-state-store.service.ts"],"names":[],"mappings":"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"}
@@ -34,12 +34,12 @@ export declare class AccountLockoutStorageService implements AccountLockoutStora
34
34
  * @param duration - Lock duration in seconds
35
35
  * @param reason - Reason for lockout
36
36
  */
37
- blockIpAdresss(ipAddress: string, duration: number, reason: string): Promise<void>;
37
+ lockIpAddress(ipAddress: string, duration: number, reason: string): Promise<void>;
38
38
  /**
39
39
  * Unlock an IP address and reset failed attempts
40
40
  * @param ipAddress - IP address to unlock
41
41
  */
42
- unblockIPAdress(ipAddress: string): Promise<void>;
42
+ unlockIpAddress(ipAddress: string): Promise<void>;
43
43
  /**
44
44
  * Reset failed attempts counter for an IP address
45
45
  * @param ipAddress - IP address to reset
@@ -1 +1 @@
1
- {"version":3,"file":"account-lockout-storage.service.d.ts","sourceRoot":"","sources":["../../src/storage/account-lockout-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEhG;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IAI5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAH3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAEvB,cAAc,EAAE,cAAc;IAE3D;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM3D;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1D;;;;;OAKG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxF;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD;;;OAGG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"account-lockout-storage.service.d.ts","sourceRoot":"","sources":["../../src/storage/account-lockout-storage.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEhG;;;;;GAKG;AACH,qBAAa,4BAA6B,YAAW,qBAAqB;IAI5D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAH3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAEvB,cAAc,EAAE,cAAc;IAE3D;;;;OAIG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7D;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM3D;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1D;;;;;OAKG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvF;;;OAGG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD;;;OAGG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;CAGnB"}
@@ -48,7 +48,7 @@ class AccountLockoutStorageService {
48
48
  * @param duration - Lock duration in seconds
49
49
  * @param reason - Reason for lockout
50
50
  */
51
- async blockIpAdresss(ipAddress, duration, reason) {
51
+ async lockIpAddress(ipAddress, duration, reason) {
52
52
  const lockKey = this.getLockKey(ipAddress);
53
53
  const lockData = JSON.stringify({
54
54
  reason,
@@ -61,7 +61,7 @@ class AccountLockoutStorageService {
61
61
  * Unlock an IP address and reset failed attempts
62
62
  * @param ipAddress - IP address to unlock
63
63
  */
64
- async unblockIPAdress(ipAddress) {
64
+ async unlockIpAddress(ipAddress) {
65
65
  const lockKey = this.getLockKey(ipAddress);
66
66
  await this.storageAdapter.del(lockKey);
67
67
  await this.resetFailedAttempts(ipAddress);
@@ -1 +1 @@
1
- {"version":3,"file":"account-lockout-storage.service.js","sourceRoot":"","sources":["../../src/storage/account-lockout-storage.service.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAa,4BAA4B;IAIV;IAHZ,SAAS,GAAG,mBAAmB,CAAC;IAChC,aAAa,GAAG,kBAAkB,CAAC;IAEpD,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,MAAc;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,MAAM;YACN,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SAClE,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,CAAC;IAC7C,CAAC;CACF;AAhFD,oEAgFC"}
1
+ {"version":3,"file":"account-lockout-storage.service.js","sourceRoot":"","sources":["../../src/storage/account-lockout-storage.service.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACH,MAAa,4BAA4B;IAIV;IAHZ,SAAS,GAAG,mBAAmB,CAAC;IAChC,aAAa,GAAG,kBAAkB,CAAC;IAEpD,YAA6B,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,QAAgB,EAAE,MAAc;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAC9B,MAAM;YACN,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;SAClE,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,SAAiB;QAC9B,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;IACzC,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,SAAS,EAAE,CAAC;IAC7C,CAAC;CACF;AAhFD,oEAgFC"}
@@ -8,4 +8,5 @@ export * from './cookies.util';
8
8
  export * from './cookie-names.util';
9
9
  export * from './context-storage';
10
10
  export * from './token-delivery-policy';
11
+ export * from './password-generator';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
@@ -24,5 +24,6 @@ __exportStar(require("./cookies.util"), exports);
24
24
  __exportStar(require("./cookie-names.util"), exports);
25
25
  __exportStar(require("./context-storage"), exports);
26
26
  __exportStar(require("./token-delivery-policy"), exports);
27
+ __exportStar(require("./password-generator"), exports);
27
28
  // user-agent-parser removed - functionality moved to ClientInfoService.parseUserAgent()
28
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC;AACxC,wFAAwF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC;AACxC,uDAAqC;AACrC,wFAAwF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generate a cryptographically secure random password
3
+ *
4
+ * Creates a password with:
5
+ * - Mixed case letters (a-z, A-Z)
6
+ * - Numbers (0-9)
7
+ * - Special characters (!@#$%^&*)
8
+ * - No ambiguous characters (0, O, l, 1, I) to prevent confusion
9
+ *
10
+ * The password is generated using cryptographically secure random number generation
11
+ * (crypto.randomBytes) to ensure unpredictability.
12
+ *
13
+ * @param length - Password length (default: 16)
14
+ * @returns Secure random password string
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Generate 16-character password (default)
19
+ * const password = generateSecurePassword();
20
+ * // Example output: "Kx9#mP2$vN7@qR4!"
21
+ *
22
+ * // Generate 20-character password
23
+ * const longPassword = generateSecurePassword(20);
24
+ * ```
25
+ *
26
+ * @throws {Error} If length is less than 8 or greater than 128
27
+ */
28
+ export declare function generateSecurePassword(length?: number): string;
29
+ //# sourceMappingURL=password-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-generator.d.ts","sourceRoot":"","sources":["../../src/utils/password-generator.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAsClE"}