@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.
- package/dist/adapters/storage.factory.d.ts.map +1 -1
- package/dist/adapters/storage.factory.js +250 -18
- package/dist/adapters/storage.factory.js.map +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +2 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/dto/admin-signup.dto.d.ts +196 -0
- package/dist/dto/admin-signup.dto.d.ts.map +1 -0
- package/dist/dto/admin-signup.dto.js +317 -0
- package/dist/dto/admin-signup.dto.js.map +1 -0
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/handlers/csrf.handler.d.ts.map +1 -1
- package/dist/handlers/csrf.handler.js +7 -2
- package/dist/handlers/csrf.handler.js.map +1 -1
- package/dist/handlers/social-redirect.handler.d.ts +126 -0
- package/dist/handlers/social-redirect.handler.d.ts.map +1 -0
- package/dist/handlers/social-redirect.handler.js +346 -0
- package/dist/handlers/social-redirect.handler.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/config.interface.d.ts +43 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -1
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.d.ts.map +1 -1
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/index.js.map +1 -1
- package/dist/interfaces/social-auth-state-store.interface.d.ts +100 -0
- package/dist/interfaces/social-auth-state-store.interface.d.ts.map +1 -0
- package/dist/interfaces/social-auth-state-store.interface.js +3 -0
- package/dist/interfaces/social-auth-state-store.interface.js.map +1 -0
- package/dist/interfaces/storage-adapter.interface.d.ts +2 -2
- package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
- package/dist/internal.d.ts +5 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +7 -1
- package/dist/internal.js.map +1 -1
- package/dist/schemas/auth-config.schema.d.ts +107 -28
- package/dist/schemas/auth-config.schema.d.ts.map +1 -1
- package/dist/schemas/auth-config.schema.js +20 -1
- package/dist/schemas/auth-config.schema.js.map +1 -1
- package/dist/services/auth.service.d.ts +39 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +221 -9
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/social-auth-base.service.d.ts +5 -10
- package/dist/services/social-auth-base.service.d.ts.map +1 -1
- package/dist/services/social-auth-base.service.js +11 -59
- package/dist/services/social-auth-base.service.js.map +1 -1
- package/dist/services/social-auth-state-store.service.d.ts +58 -0
- package/dist/services/social-auth-state-store.service.d.ts.map +1 -0
- package/dist/services/social-auth-state-store.service.js +261 -0
- package/dist/services/social-auth-state-store.service.js.map +1 -0
- package/dist/storage/account-lockout-storage.service.d.ts +2 -2
- package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
- package/dist/storage/account-lockout-storage.service.js +2 -2
- package/dist/storage/account-lockout-storage.service.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/password-generator.d.ts +29 -0
- package/dist/utils/password-generator.d.ts.map +1 -0
- package/dist/utils/password-generator.js +98 -0
- package/dist/utils/password-generator.js.map +1 -0
- package/dist/utils/setup/init-social.d.ts +2 -5
- package/dist/utils/setup/init-social.d.ts.map +1 -1
- package/dist/utils/setup/init-social.js.map +1 -1
- 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
|
|
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
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
|
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,
|
|
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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -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
|
package/dist/utils/index.js.map
CHANGED
|
@@ -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"}
|