@nauth-toolkit/core 0.1.18 → 0.1.22
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 +3 -2
- 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/auth-response.dto.d.ts +14 -0
- package/dist/dto/auth-response.dto.d.ts.map +1 -1
- package/dist/dto/auth-response.dto.js +14 -0
- package/dist/dto/auth-response.dto.js.map +1 -1
- 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/dto/social-auth.dto.d.ts +24 -0
- package/dist/dto/social-auth.dto.d.ts.map +1 -1
- package/dist/dto/social-auth.dto.js +37 -1
- package/dist/dto/social-auth.dto.js.map +1 -1
- package/dist/entities/user.entity.d.ts +8 -0
- package/dist/entities/user.entity.d.ts.map +1 -1
- package/dist/entities/user.entity.js +8 -0
- package/dist/entities/user.entity.js.map +1 -1
- package/dist/handlers/auth.handler.d.ts +3 -8
- package/dist/handlers/auth.handler.d.ts.map +1 -1
- package/dist/handlers/auth.handler.js +10 -55
- package/dist/handlers/auth.handler.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 +136 -0
- package/dist/handlers/social-redirect.handler.d.ts.map +1 -0
- package/dist/handlers/social-redirect.handler.js +364 -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/entities.interface.d.ts +6 -0
- package/dist/interfaces/entities.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-challenge-helper.service.d.ts +1 -1
- package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
- package/dist/services/auth-challenge-helper.service.js +9 -4
- package/dist/services/auth-challenge-helper.service.js.map +1 -1
- package/dist/services/auth.service.d.ts +59 -3
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +276 -50
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/geo-location.service.js +2 -2
- package/dist/services/geo-location.service.js.map +1 -1
- package/dist/services/password-reset.service.d.ts.map +1 -1
- package/dist/services/password-reset.service.js.map +1 -1
- package/dist/services/phone-verification.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 +30 -61
- 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/templates/sms-template.engine.d.ts.map +1 -1
- package/dist/templates/sms-template.engine.js +1 -2
- package/dist/templates/sms-template.engine.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.factory.d.ts","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"storage.factory.d.ts","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AA+LzE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,IAAI,cAAc,CAkB7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAiC,GAAG,cAAc,CAmChG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAmCvF"}
|
|
@@ -18,10 +18,195 @@
|
|
|
18
18
|
* };
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === undefined) k2 = k;
|
|
23
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
24
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
25
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(o, k2, desc);
|
|
28
|
+
}) : (function(o, m, k, k2) {
|
|
29
|
+
if (k2 === undefined) k2 = k;
|
|
30
|
+
o[k2] = m[k];
|
|
31
|
+
}));
|
|
32
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
33
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
34
|
+
}) : function(o, v) {
|
|
35
|
+
o["default"] = v;
|
|
36
|
+
});
|
|
37
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
38
|
+
var ownKeys = function(o) {
|
|
39
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
40
|
+
var ar = [];
|
|
41
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
42
|
+
return ar;
|
|
43
|
+
};
|
|
44
|
+
return ownKeys(o);
|
|
45
|
+
};
|
|
46
|
+
return function (mod) {
|
|
47
|
+
if (mod && mod.__esModule) return mod;
|
|
48
|
+
var result = {};
|
|
49
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
50
|
+
__setModuleDefault(result, mod);
|
|
51
|
+
return result;
|
|
52
|
+
};
|
|
53
|
+
})();
|
|
21
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
55
|
exports.createDatabaseStorageAdapter = createDatabaseStorageAdapter;
|
|
23
56
|
exports.createRedisStorageAdapter = createRedisStorageAdapter;
|
|
24
57
|
exports.createRedisClusterAdapter = createRedisClusterAdapter;
|
|
58
|
+
/**
|
|
59
|
+
* Import an optional dependency at runtime without creating a compile-time dependency.
|
|
60
|
+
*
|
|
61
|
+
* IMPORTANT: moduleName is intentionally typed as `string` to avoid TypeScript errors
|
|
62
|
+
* when the optional package isn't installed.
|
|
63
|
+
*/
|
|
64
|
+
async function importOptional(moduleName) {
|
|
65
|
+
try {
|
|
66
|
+
return (await Promise.resolve(`${moduleName}`).then(s => __importStar(require(s))));
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Lazy storage adapter wrapper.
|
|
74
|
+
*
|
|
75
|
+
* Avoids `require()` while keeping the factory API synchronous for config objects.
|
|
76
|
+
* The real adapter is imported and constructed on the first `initialize()` call.
|
|
77
|
+
*/
|
|
78
|
+
class LazyStorageAdapter {
|
|
79
|
+
factory;
|
|
80
|
+
inner = null;
|
|
81
|
+
initPromise = null;
|
|
82
|
+
logger = null;
|
|
83
|
+
rateLimitRepo = null;
|
|
84
|
+
storageLockRepo = null;
|
|
85
|
+
constructor(factory) {
|
|
86
|
+
this.factory = factory;
|
|
87
|
+
}
|
|
88
|
+
setLogger(logger) {
|
|
89
|
+
this.logger = logger;
|
|
90
|
+
const maybeLoggerAware = this.inner;
|
|
91
|
+
if (this.inner && typeof maybeLoggerAware.setLogger === 'function') {
|
|
92
|
+
maybeLoggerAware.setLogger(logger);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
setRepositories(rateLimitRepo, storageLockRepo) {
|
|
96
|
+
this.rateLimitRepo = rateLimitRepo;
|
|
97
|
+
this.storageLockRepo = storageLockRepo;
|
|
98
|
+
const maybeRepoAware = this.inner;
|
|
99
|
+
if (this.inner && typeof maybeRepoAware.setRepositories === 'function') {
|
|
100
|
+
maybeRepoAware.setRepositories(rateLimitRepo, storageLockRepo);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async initialize() {
|
|
104
|
+
await this.ensureInitialized();
|
|
105
|
+
}
|
|
106
|
+
async isHealthy() {
|
|
107
|
+
await this.ensureInitialized();
|
|
108
|
+
return await this.inner.isHealthy();
|
|
109
|
+
}
|
|
110
|
+
async get(key) {
|
|
111
|
+
await this.ensureInitialized();
|
|
112
|
+
return await this.inner.get(key);
|
|
113
|
+
}
|
|
114
|
+
async set(key, value, ttlSeconds, options) {
|
|
115
|
+
await this.ensureInitialized();
|
|
116
|
+
return await this.inner.set(key, value, ttlSeconds, options);
|
|
117
|
+
}
|
|
118
|
+
async del(key) {
|
|
119
|
+
await this.ensureInitialized();
|
|
120
|
+
return await this.inner.del(key);
|
|
121
|
+
}
|
|
122
|
+
async exists(key) {
|
|
123
|
+
await this.ensureInitialized();
|
|
124
|
+
return await this.inner.exists(key);
|
|
125
|
+
}
|
|
126
|
+
async incr(key, ttlSeconds) {
|
|
127
|
+
await this.ensureInitialized();
|
|
128
|
+
return await this.inner.incr(key, ttlSeconds);
|
|
129
|
+
}
|
|
130
|
+
async decr(key) {
|
|
131
|
+
await this.ensureInitialized();
|
|
132
|
+
return await this.inner.decr(key);
|
|
133
|
+
}
|
|
134
|
+
async expire(key, ttl) {
|
|
135
|
+
await this.ensureInitialized();
|
|
136
|
+
return await this.inner.expire(key, ttl);
|
|
137
|
+
}
|
|
138
|
+
async ttl(key) {
|
|
139
|
+
await this.ensureInitialized();
|
|
140
|
+
return await this.inner.ttl(key);
|
|
141
|
+
}
|
|
142
|
+
async hget(key, field) {
|
|
143
|
+
await this.ensureInitialized();
|
|
144
|
+
return await this.inner.hget(key, field);
|
|
145
|
+
}
|
|
146
|
+
async hset(key, field, value) {
|
|
147
|
+
await this.ensureInitialized();
|
|
148
|
+
return await this.inner.hset(key, field, value);
|
|
149
|
+
}
|
|
150
|
+
async hgetall(key) {
|
|
151
|
+
await this.ensureInitialized();
|
|
152
|
+
return await this.inner.hgetall(key);
|
|
153
|
+
}
|
|
154
|
+
async hdel(key, ...fields) {
|
|
155
|
+
await this.ensureInitialized();
|
|
156
|
+
return await this.inner.hdel(key, ...fields);
|
|
157
|
+
}
|
|
158
|
+
async lpush(key, value) {
|
|
159
|
+
await this.ensureInitialized();
|
|
160
|
+
return await this.inner.lpush(key, value);
|
|
161
|
+
}
|
|
162
|
+
async lrange(key, start, stop) {
|
|
163
|
+
await this.ensureInitialized();
|
|
164
|
+
return await this.inner.lrange(key, start, stop);
|
|
165
|
+
}
|
|
166
|
+
async llen(key) {
|
|
167
|
+
await this.ensureInitialized();
|
|
168
|
+
return await this.inner.llen(key);
|
|
169
|
+
}
|
|
170
|
+
async keys(pattern) {
|
|
171
|
+
await this.ensureInitialized();
|
|
172
|
+
return await this.inner.keys(pattern);
|
|
173
|
+
}
|
|
174
|
+
async scan(cursor, pattern, count) {
|
|
175
|
+
await this.ensureInitialized();
|
|
176
|
+
return await this.inner.scan(cursor, pattern, count);
|
|
177
|
+
}
|
|
178
|
+
async cleanup() {
|
|
179
|
+
if (!this.inner)
|
|
180
|
+
return;
|
|
181
|
+
return await this.inner.cleanup();
|
|
182
|
+
}
|
|
183
|
+
async disconnect() {
|
|
184
|
+
if (!this.inner)
|
|
185
|
+
return;
|
|
186
|
+
return await this.inner.disconnect();
|
|
187
|
+
}
|
|
188
|
+
async ensureInitialized() {
|
|
189
|
+
if (this.inner)
|
|
190
|
+
return;
|
|
191
|
+
if (!this.initPromise) {
|
|
192
|
+
this.initPromise = (async () => {
|
|
193
|
+
this.inner = await this.factory();
|
|
194
|
+
// Inject logger if supported (factory-created adapters often need this)
|
|
195
|
+
const maybeLoggerAware = this.inner;
|
|
196
|
+
if (this.logger && typeof maybeLoggerAware.setLogger === 'function') {
|
|
197
|
+
maybeLoggerAware.setLogger(this.logger);
|
|
198
|
+
}
|
|
199
|
+
// Inject repositories if supported (DatabaseStorageAdapter)
|
|
200
|
+
const maybeRepoAware = this.inner;
|
|
201
|
+
if (this.rateLimitRepo && this.storageLockRepo && typeof maybeRepoAware.setRepositories === 'function') {
|
|
202
|
+
maybeRepoAware.setRepositories(this.rateLimitRepo, this.storageLockRepo);
|
|
203
|
+
}
|
|
204
|
+
await this.inner.initialize();
|
|
205
|
+
})();
|
|
206
|
+
}
|
|
207
|
+
await this.initPromise;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
25
210
|
/**
|
|
26
211
|
* Create a database storage adapter
|
|
27
212
|
*
|
|
@@ -48,9 +233,20 @@ exports.createRedisClusterAdapter = createRedisClusterAdapter;
|
|
|
48
233
|
* ```
|
|
49
234
|
*/
|
|
50
235
|
function createDatabaseStorageAdapter() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
236
|
+
return new LazyStorageAdapter(async () => {
|
|
237
|
+
const mod = await importOptional('@nauth-toolkit/storage-database');
|
|
238
|
+
if (!mod) {
|
|
239
|
+
throw new Error([
|
|
240
|
+
'Missing dependency: @nauth-toolkit/storage-database',
|
|
241
|
+
'',
|
|
242
|
+
'You called createDatabaseStorageAdapter(), but @nauth-toolkit/storage-database is not installed.',
|
|
243
|
+
'',
|
|
244
|
+
'Install it:',
|
|
245
|
+
' yarn add @nauth-toolkit/storage-database',
|
|
246
|
+
].join('\n'));
|
|
247
|
+
}
|
|
248
|
+
return new mod.DatabaseStorageAdapter(null, null, null);
|
|
249
|
+
});
|
|
54
250
|
}
|
|
55
251
|
/**
|
|
56
252
|
* Create a Redis storage adapter
|
|
@@ -86,13 +282,32 @@ function createDatabaseStorageAdapter() {
|
|
|
86
282
|
* ```
|
|
87
283
|
*/
|
|
88
284
|
function createRedisStorageAdapter(url = 'redis://localhost:6379') {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
285
|
+
return new LazyStorageAdapter(async () => {
|
|
286
|
+
const adapterMod = await importOptional('@nauth-toolkit/storage-redis');
|
|
287
|
+
if (!adapterMod) {
|
|
288
|
+
throw new Error([
|
|
289
|
+
'Missing dependency: @nauth-toolkit/storage-redis',
|
|
290
|
+
'',
|
|
291
|
+
'You called createRedisStorageAdapter(), but @nauth-toolkit/storage-redis is not installed.',
|
|
292
|
+
'',
|
|
293
|
+
'Install it:',
|
|
294
|
+
' yarn add @nauth-toolkit/storage-redis redis',
|
|
295
|
+
].join('\n'));
|
|
296
|
+
}
|
|
297
|
+
const redisMod = await importOptional('redis');
|
|
298
|
+
if (!redisMod) {
|
|
299
|
+
throw new Error([
|
|
300
|
+
'Missing dependency: redis',
|
|
301
|
+
'',
|
|
302
|
+
'You called createRedisStorageAdapter(), but the "redis" package is not installed.',
|
|
303
|
+
'',
|
|
304
|
+
'Install it:',
|
|
305
|
+
' yarn add redis',
|
|
306
|
+
].join('\n'));
|
|
307
|
+
}
|
|
308
|
+
const client = redisMod.createClient({ url });
|
|
309
|
+
return new adapterMod.RedisStorageAdapter(client);
|
|
310
|
+
});
|
|
96
311
|
}
|
|
97
312
|
/**
|
|
98
313
|
* Create a Redis Cluster storage adapter
|
|
@@ -125,14 +340,31 @@ function createRedisStorageAdapter(url = 'redis://localhost:6379') {
|
|
|
125
340
|
* ```
|
|
126
341
|
*/
|
|
127
342
|
function createRedisClusterAdapter(nodes) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
343
|
+
return new LazyStorageAdapter(async () => {
|
|
344
|
+
const adapterMod = await importOptional('@nauth-toolkit/storage-redis');
|
|
345
|
+
if (!adapterMod) {
|
|
346
|
+
throw new Error([
|
|
347
|
+
'Missing dependency: @nauth-toolkit/storage-redis',
|
|
348
|
+
'',
|
|
349
|
+
'You called createRedisClusterAdapter(), but @nauth-toolkit/storage-redis is not installed.',
|
|
350
|
+
'',
|
|
351
|
+
'Install it:',
|
|
352
|
+
' yarn add @nauth-toolkit/storage-redis redis',
|
|
353
|
+
].join('\n'));
|
|
354
|
+
}
|
|
355
|
+
const redisMod = await importOptional('redis');
|
|
356
|
+
if (!redisMod) {
|
|
357
|
+
throw new Error([
|
|
358
|
+
'Missing dependency: redis',
|
|
359
|
+
'',
|
|
360
|
+
'You called createRedisClusterAdapter(), but the "redis" package is not installed.',
|
|
361
|
+
'',
|
|
362
|
+
'Install it:',
|
|
363
|
+
' yarn add redis',
|
|
364
|
+
].join('\n'));
|
|
365
|
+
}
|
|
366
|
+
const client = redisMod.createCluster({ rootNodes: nodes });
|
|
367
|
+
return new adapterMod.RedisStorageAdapter(client);
|
|
133
368
|
});
|
|
134
|
-
// Don't connect here - let adapter.initialize() handle connection
|
|
135
|
-
// This ensures proper error handling and allows initialize() to wait for connection
|
|
136
|
-
return new RedisStorageAdapter(clusterClient);
|
|
137
369
|
}
|
|
138
370
|
//# sourceMappingURL=storage.factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.factory.js","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG
|
|
1
|
+
{"version":3,"file":"storage.factory.js","sourceRoot":"","sources":["../../src/adapters/storage.factory.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAA+B,MAAM,uBAAuB,CAAC;AASlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAkB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAA+B,MAAM,uBAAuB,CAAC;AASlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAkB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOxD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC;IAEpB,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CACrE,SAAQ,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,4BAA4B,CAAC,EAAE,oBAAoB;IACpG,0CAA0C;IAC1C,UAAU,EAAE;QACV,6CAA6C;QAC7C,UAAU,EAAE,WAAW,CAAC;QACxB,yBAAyB;QACzB,IAAI,EAAE,WAAW,CAAC;QAClB,sBAAsB;QACtB,IAAI,EAAE,WAAW,CAAC;QAClB,4CAA4C;QAC5C,aAAa,EAAE,WAAW,CAAC;KAC5B,CAAC;IAEF,oBAAoB;IACpB,OAAO,EAAE;QACP,2CAA2C;QAC3C,MAAM,EAAE,MAAM,OAAO,CAAC;QACtB,yDAAyD;QACzD,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC;QACvD,qCAAqC;QACrC,YAAY,EAAE,MAAM,OAAO,CAAC;QAC5B,mCAAmC;QACnC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;QACrD,qCAAqC;QACrC,cAAc,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;QACxC,6BAA6B;QAC7B,iBAAiB,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACrD,sBAAsB;QACtB,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;KAC7C,CAAC;IAEF,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IAEtB,oBAAoB;IACpB,MAAM,EAAE,WAAW,CAAC;IAEpB,sBAAsB;IACtB,MAAM,EAAE,WAAW,CAAC;IAEpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD;;;;GAIG;AACH,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;OAcG;WACU,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CA0NnE"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -48,6 +48,7 @@ const register_mfa_1 = require("./utils/setup/register-mfa");
|
|
|
48
48
|
const init_social_1 = require("./utils/setup/init-social");
|
|
49
49
|
const run_nauth_migrations_1 = require("./utils/setup/run-nauth-migrations");
|
|
50
50
|
const internal_1 = require("./internal");
|
|
51
|
+
const social_auth_state_store_service_1 = require("./services/social-auth-state-store.service");
|
|
51
52
|
// ============================================================================
|
|
52
53
|
// NAuth Bootstrap Class
|
|
53
54
|
// ============================================================================
|
|
@@ -107,7 +108,7 @@ class NAuth {
|
|
|
107
108
|
// ========================================================================
|
|
108
109
|
// 4. Register MFA & Social Providers
|
|
109
110
|
// ========================================================================
|
|
110
|
-
const socialAuthStateStore = new
|
|
111
|
+
const socialAuthStateStore = new social_auth_state_store_service_1.SocialAuthStateStore(storage, logger);
|
|
111
112
|
if (config.mfa?.enabled && services.mfaService) {
|
|
112
113
|
await (0, register_mfa_1.registerMFAProviders)(config, services.mfaService, repos.mfaDeviceRepository, repos.userRepository, logger, services.passwordService, services.emailVerificationService, services.phoneVerificationService, services.challengeService, services.auditService, services.clientInfoService);
|
|
113
114
|
}
|
|
@@ -116,7 +117,7 @@ class NAuth {
|
|
|
116
117
|
// 5. Create Handlers
|
|
117
118
|
// ========================================================================
|
|
118
119
|
const clientInfoHandler = new client_info_handler_1.ClientInfoHandler(services.clientInfoService, services.geoLocationService, logger);
|
|
119
|
-
const authHandler = new auth_handler_1.AuthHandler(services.jwtService, services.sessionService,
|
|
120
|
+
const authHandler = new auth_handler_1.AuthHandler(services.jwtService, services.sessionService, services.authService, config, logger);
|
|
120
121
|
const tokenDeliveryHandler = new token_delivery_handler_1.TokenDeliveryHandler(config, logger);
|
|
121
122
|
// CSRF service (only for cookies/hybrid delivery)
|
|
122
123
|
const csrfService = config.tokenDelivery?.method === 'cookies' || config.tokenDelivery?.method === 'hybrid'
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAIH,uDAAmD;AACnD,kEAA8D;AAC9D,+DAAyD;AAEzD,gEAA4D;AAC5D,6DAAyD;AAEzD,WAAW;AACX,wEAAmE;AACnE,0DAAsD;AACtD,8EAAyE;AACzE,0DAAsD;AACtD,0DAAsD;AAEtD,gBAAgB;AAChB,qEAAiE;AACjE,6DAAyD;AACzD,+DAA0E;AAC1E,6DAAkE;AAClE,2DAAiF;AACjF,6EAAiF;AACjF,yCAAiF;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { UserResponseDto } from './user-response.dto';
|
|
2
|
+
/**
|
|
3
|
+
* DTO for administrative user creation with override capabilities
|
|
4
|
+
*
|
|
5
|
+
* Allows administrators to create user accounts with:
|
|
6
|
+
* - Bypass email/phone verification requirements
|
|
7
|
+
* - Force password change on first login
|
|
8
|
+
* - Auto-generate secure passwords
|
|
9
|
+
*
|
|
10
|
+
* Security:
|
|
11
|
+
* - All fields validated against DB constraints
|
|
12
|
+
* - Input sanitization applied automatically
|
|
13
|
+
* - Password strength enforced (8-128 chars) unless auto-generated
|
|
14
|
+
* - Email/username uniqueness checked in service layer
|
|
15
|
+
* - Audit trail records admin-created accounts
|
|
16
|
+
*
|
|
17
|
+
* Warning: This endpoint should be protected by admin authentication.
|
|
18
|
+
* The service does not enforce authorization - it is the responsibility
|
|
19
|
+
* of the framework adapter (NestJS/Express/Fastify) to protect the endpoint.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // Create user with pre-verified email
|
|
24
|
+
* const dto: AdminSignupDTO = {
|
|
25
|
+
* email: 'user@example.com',
|
|
26
|
+
* password: 'SecurePass123!',
|
|
27
|
+
* isEmailVerified: true,
|
|
28
|
+
* mustChangePassword: false,
|
|
29
|
+
* };
|
|
30
|
+
*
|
|
31
|
+
* // Create user with auto-generated password
|
|
32
|
+
* const dto: AdminSignupDTO = {
|
|
33
|
+
* email: 'user@example.com',
|
|
34
|
+
* generatePassword: true,
|
|
35
|
+
* isEmailVerified: true,
|
|
36
|
+
* mustChangePassword: true, // User must change generated password
|
|
37
|
+
* };
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare class AdminSignupDTO {
|
|
41
|
+
/**
|
|
42
|
+
* User email address
|
|
43
|
+
*
|
|
44
|
+
* Validation:
|
|
45
|
+
* - Valid email format (RFC 5322)
|
|
46
|
+
* - Max 255 characters (matches DB limit)
|
|
47
|
+
*
|
|
48
|
+
* Sanitization:
|
|
49
|
+
* - Trimmed and lowercased
|
|
50
|
+
*/
|
|
51
|
+
email: string;
|
|
52
|
+
/**
|
|
53
|
+
* User password
|
|
54
|
+
*
|
|
55
|
+
* Required unless `generatePassword` is true.
|
|
56
|
+
*
|
|
57
|
+
* Validation:
|
|
58
|
+
* - Min 8 characters
|
|
59
|
+
* - Max 128 characters (prevents DoS via bcrypt)
|
|
60
|
+
* - Additional policy checks in service layer
|
|
61
|
+
*
|
|
62
|
+
* Note: NOT trimmed (passwords can have leading/trailing spaces)
|
|
63
|
+
*/
|
|
64
|
+
password?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Optional username
|
|
67
|
+
*
|
|
68
|
+
* Validation:
|
|
69
|
+
* - 3-50 characters
|
|
70
|
+
* - Alphanumeric, underscores, and hyphens only
|
|
71
|
+
* - Max 255 characters (DB limit)
|
|
72
|
+
*
|
|
73
|
+
* Sanitization:
|
|
74
|
+
* - Trimmed
|
|
75
|
+
* - Case preserved (username can be case-sensitive per config)
|
|
76
|
+
*/
|
|
77
|
+
username?: string;
|
|
78
|
+
/**
|
|
79
|
+
* Optional first name
|
|
80
|
+
*
|
|
81
|
+
* Validation:
|
|
82
|
+
* - 1-100 characters
|
|
83
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
84
|
+
* - Max 100 characters (DB limit)
|
|
85
|
+
*
|
|
86
|
+
* Sanitization:
|
|
87
|
+
* - Trimmed
|
|
88
|
+
* - Title case preserved
|
|
89
|
+
*/
|
|
90
|
+
firstName?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Optional last name
|
|
93
|
+
*
|
|
94
|
+
* Validation:
|
|
95
|
+
* - 1-100 characters
|
|
96
|
+
* - Letters, spaces, hyphens, and apostrophes only
|
|
97
|
+
* - Max 100 characters (DB limit)
|
|
98
|
+
*
|
|
99
|
+
* Sanitization:
|
|
100
|
+
* - Trimmed
|
|
101
|
+
* - Title case preserved
|
|
102
|
+
*/
|
|
103
|
+
lastName?: string;
|
|
104
|
+
/**
|
|
105
|
+
* Optional phone number
|
|
106
|
+
*
|
|
107
|
+
* Validation:
|
|
108
|
+
* - E.164 format (international standard)
|
|
109
|
+
* - MUST start with + (required for security)
|
|
110
|
+
* - Max 20 characters (DB limit)
|
|
111
|
+
* - Example: +14155552671, +61444567890
|
|
112
|
+
*
|
|
113
|
+
* Sanitization:
|
|
114
|
+
* - Whitespace removed
|
|
115
|
+
* - Only digits and leading + preserved
|
|
116
|
+
*
|
|
117
|
+
* Security:
|
|
118
|
+
* - Strict E.164 validation prevents SQL injection
|
|
119
|
+
* - Max length prevents oversized inputs
|
|
120
|
+
*/
|
|
121
|
+
phone?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Optional metadata (custom fields)
|
|
124
|
+
*
|
|
125
|
+
* Security:
|
|
126
|
+
* - Validated in service layer if used
|
|
127
|
+
* - Max depth/size limits should be enforced
|
|
128
|
+
*/
|
|
129
|
+
metadata?: Record<string, unknown>;
|
|
130
|
+
/**
|
|
131
|
+
* Bypass email verification requirement
|
|
132
|
+
*
|
|
133
|
+
* If true, user's email is marked as verified without sending verification email.
|
|
134
|
+
* If false (default), user must verify email through normal flow.
|
|
135
|
+
*
|
|
136
|
+
* Default: false
|
|
137
|
+
*/
|
|
138
|
+
isEmailVerified?: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* Bypass phone verification requirement
|
|
141
|
+
*
|
|
142
|
+
* If true, user's phone is marked as verified without sending verification SMS.
|
|
143
|
+
* If false (default), user must verify phone through normal flow.
|
|
144
|
+
*
|
|
145
|
+
* Default: false
|
|
146
|
+
*/
|
|
147
|
+
isPhoneVerified?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Force password change on first login
|
|
150
|
+
*
|
|
151
|
+
* If true, user will be required to change password on next login.
|
|
152
|
+
* Useful when auto-generating passwords or when admin sets temporary passwords.
|
|
153
|
+
*
|
|
154
|
+
* Default: false
|
|
155
|
+
*/
|
|
156
|
+
mustChangePassword?: boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Auto-generate secure password
|
|
159
|
+
*
|
|
160
|
+
* If true, a cryptographically secure random password will be generated.
|
|
161
|
+
* The generated password will be returned in the response (returned once only).
|
|
162
|
+
* Password field is not required when this is true.
|
|
163
|
+
*
|
|
164
|
+
* Default: false
|
|
165
|
+
*
|
|
166
|
+
* Security: Generated passwords are 16 characters, mixed case, numbers, and special characters.
|
|
167
|
+
* They are returned once in the response and never stored in plain text.
|
|
168
|
+
*/
|
|
169
|
+
generatePassword?: boolean;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Response DTO for admin signup
|
|
173
|
+
*
|
|
174
|
+
* Returns the created user object (sanitized, excludes sensitive fields like passwordHash)
|
|
175
|
+
* and optionally the generated password (only if generatePassword was true in the request).
|
|
176
|
+
*/
|
|
177
|
+
export declare class AdminSignupResponseDTO {
|
|
178
|
+
/**
|
|
179
|
+
* Created user object (sanitized)
|
|
180
|
+
*
|
|
181
|
+
* Uses UserResponseDto which excludes sensitive fields:
|
|
182
|
+
* - No passwordHash
|
|
183
|
+
* - No internal database ID (uses 'sub' UUID instead)
|
|
184
|
+
* - No MFA secrets
|
|
185
|
+
* - No internal tracking fields
|
|
186
|
+
*/
|
|
187
|
+
user: UserResponseDto;
|
|
188
|
+
/**
|
|
189
|
+
* Generated password (only present if generatePassword was true)
|
|
190
|
+
*
|
|
191
|
+
* Security: This is returned once and never stored in plain text.
|
|
192
|
+
* The admin should securely deliver this to the user.
|
|
193
|
+
*/
|
|
194
|
+
generatedPassword?: string;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=admin-signup.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-signup.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-signup.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;IAEf;;;;;;;;;;;OAWG;IAKH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;OAWG;IAcH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;OAWG;IAcH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;OAWG;IAcH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;OAgBG;IAcH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;;;OAOG;IAGH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;OAOG;IAGH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;OAOG;IAGH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;;;;;;OAWG;IAGH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;IACH,IAAI,EAAG,eAAe,CAAC;IAEvB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|