@nauth-toolkit/nestjs 0.1.60 → 0.1.62

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.
@@ -1 +1 @@
1
- {"version":3,"file":"hook.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/hook.decorator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,oBAAoB,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMzF"}
1
+ {"version":3,"file":"hook.decorator.d.ts","sourceRoot":"","sources":["../../src/decorators/hook.decorator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,YAAY,GACZ,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,yBAAyB,GACzB,sBAAsB,GACtB,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMzF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMvF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAM9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAM3F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMpF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,cAAc,CAMtF"}
@@ -29,6 +29,14 @@ exports.HOOK_METADATA_KEY = void 0;
29
29
  exports.PreSignupHook = PreSignupHook;
30
30
  exports.PostSignupHook = PostSignupHook;
31
31
  exports.UserProfileUpdatedHook = UserProfileUpdatedHook;
32
+ exports.PasswordChangedHook = PasswordChangedHook;
33
+ exports.MFADeviceRemovedHook = MFADeviceRemovedHook;
34
+ exports.AdaptiveMFARiskDetectedHook = AdaptiveMFARiskDetectedHook;
35
+ exports.AccountStatusChangedHook = AccountStatusChangedHook;
36
+ exports.EmailChangedHook = EmailChangedHook;
37
+ exports.AccountLockedHook = AccountLockedHook;
38
+ exports.SessionsRevokedHook = SessionsRevokedHook;
39
+ exports.MFAFirstEnabledHook = MFAFirstEnabledHook;
32
40
  const common_1 = require("@nestjs/common");
33
41
  exports.HOOK_METADATA_KEY = 'nauth:hook';
34
42
  /**
@@ -130,4 +138,298 @@ function UserProfileUpdatedHook(options = {}) {
130
138
  };
131
139
  return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
132
140
  }
141
+ /**
142
+ * Marks a provider as a password changed hook
143
+ *
144
+ * Password changed hooks are executed after a password is successfully changed, allowing you to:
145
+ * - Send security notification emails
146
+ * - Log password change events
147
+ * - Revoke active sessions
148
+ * - Trigger security audits
149
+ *
150
+ * These hooks cannot block password changes (password is already updated) but errors are logged.
151
+ *
152
+ * @param options - Hook configuration options
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * @Injectable()
157
+ * @PasswordChangedHook({ priority: 1 })
158
+ * export class PasswordChangedNotificationHook implements IPasswordChangedHook {
159
+ * constructor(private readonly emailService: EmailService) {}
160
+ *
161
+ * async execute(metadata: PasswordChangedMetadata) {
162
+ * await this.emailService.sendPasswordChangedAlert({
163
+ * to: metadata.user.email,
164
+ * changedBy: metadata.changedBy,
165
+ * });
166
+ * }
167
+ * }
168
+ * ```
169
+ */
170
+ function PasswordChangedHook(options = {}) {
171
+ const metadata = {
172
+ type: 'passwordChanged',
173
+ priority: options.priority ?? 100,
174
+ };
175
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
176
+ }
177
+ /**
178
+ * Marks a provider as an MFA device removed hook
179
+ *
180
+ * MFA device removed hooks are executed after an MFA device is removed, allowing you to:
181
+ * - Send security notification emails
182
+ * - Log device removal events
183
+ * - Alert if user has no remaining MFA devices
184
+ * - Trigger security audits
185
+ *
186
+ * These hooks cannot block device removal (device is already removed) but errors are logged.
187
+ *
188
+ * @param options - Hook configuration options
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * @Injectable()
193
+ * @MFADeviceRemovedHook({ priority: 1 })
194
+ * export class MFADeviceRemovedNotificationHook implements IMFADeviceRemovedHook {
195
+ * constructor(private readonly emailService: EmailService) {}
196
+ *
197
+ * async execute(metadata: MFADeviceRemovedMetadata) {
198
+ * await this.emailService.sendMFADeviceRemovedAlert({
199
+ * to: metadata.user.email,
200
+ * deviceType: metadata.deviceType,
201
+ * remainingDevices: metadata.remainingDeviceCount,
202
+ * });
203
+ * }
204
+ * }
205
+ * ```
206
+ */
207
+ function MFADeviceRemovedHook(options = {}) {
208
+ const metadata = {
209
+ type: 'mfaDeviceRemoved',
210
+ priority: options.priority ?? 100,
211
+ };
212
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
213
+ }
214
+ /**
215
+ * Marks a provider as an adaptive MFA risk detected hook
216
+ *
217
+ * Adaptive MFA risk detected hooks are executed when high-risk signin activity is detected, allowing you to:
218
+ * - Send risk alert emails to users
219
+ * - Notify security teams
220
+ * - Log suspicious activity
221
+ * - Trigger additional security checks
222
+ *
223
+ * These hooks cannot block authentication (risk decision is already made) but errors are logged.
224
+ *
225
+ * @param options - Hook configuration options
226
+ *
227
+ * @example
228
+ * ```typescript
229
+ * @Injectable()
230
+ * @AdaptiveMFARiskDetectedHook({ priority: 1 })
231
+ * export class RiskAlertHook implements IAdaptiveMFARiskDetectedHook {
232
+ * constructor(private readonly emailService: EmailService) {}
233
+ *
234
+ * async execute(metadata: AdaptiveMFARiskDetectedMetadata) {
235
+ * await this.emailService.sendRiskAlert({
236
+ * to: metadata.user.email,
237
+ * riskLevel: metadata.riskLevel,
238
+ * riskFactors: metadata.riskFactors,
239
+ * });
240
+ * }
241
+ * }
242
+ * ```
243
+ */
244
+ function AdaptiveMFARiskDetectedHook(options = {}) {
245
+ const metadata = {
246
+ type: 'adaptiveMfaRiskDetected',
247
+ priority: options.priority ?? 100,
248
+ };
249
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
250
+ }
251
+ /**
252
+ * Marks a provider as an account status changed hook
253
+ *
254
+ * Account status changed hooks are executed after an account is enabled or disabled, allowing you to:
255
+ * - Send account status notification emails
256
+ * - Log account status changes
257
+ * - Sync status to external systems
258
+ * - Trigger compliance workflows
259
+ *
260
+ * These hooks cannot block status changes (status is already updated) but errors are logged.
261
+ *
262
+ * @param options - Hook configuration options
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * @Injectable()
267
+ * @AccountStatusChangedHook({ priority: 1 })
268
+ * export class AccountStatusNotificationHook implements IAccountStatusChangedHook {
269
+ * constructor(private readonly emailService: EmailService) {}
270
+ *
271
+ * async execute(metadata: AccountStatusChangedMetadata) {
272
+ * if (metadata.status === 'disabled') {
273
+ * await this.emailService.sendAccountDisabledAlert({
274
+ * to: metadata.user.email,
275
+ * reason: metadata.reason,
276
+ * });
277
+ * }
278
+ * }
279
+ * }
280
+ * ```
281
+ */
282
+ function AccountStatusChangedHook(options = {}) {
283
+ const metadata = {
284
+ type: 'accountStatusChanged',
285
+ priority: options.priority ?? 100,
286
+ };
287
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
288
+ }
289
+ /**
290
+ * Marks a provider as an email changed hook
291
+ *
292
+ * Email changed hooks are executed after a user's email address is changed, allowing you to:
293
+ * - Send notification to both old and new email addresses
294
+ * - Log email change events
295
+ * - Sync to external systems
296
+ * - Trigger security audits
297
+ *
298
+ * These hooks cannot block email changes (email is already updated) but errors are logged.
299
+ *
300
+ * @param options - Hook configuration options
301
+ *
302
+ * @example
303
+ * ```typescript
304
+ * @Injectable()
305
+ * @EmailChangedHook({ priority: 1 })
306
+ * export class EmailChangedNotificationHook implements IEmailChangedHook {
307
+ * constructor(private readonly emailService: EmailService) {}
308
+ *
309
+ * async execute(metadata: EmailChangedMetadata) {
310
+ * await this.emailService.sendEmailChangedAlert({
311
+ * oldEmail: metadata.oldEmail,
312
+ * newEmail: metadata.newEmail,
313
+ * });
314
+ * }
315
+ * }
316
+ * ```
317
+ */
318
+ function EmailChangedHook(options = {}) {
319
+ const metadata = {
320
+ type: 'emailChanged',
321
+ priority: options.priority ?? 100,
322
+ };
323
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
324
+ }
325
+ /**
326
+ * Marks a provider as an account locked hook
327
+ *
328
+ * Account locked hooks are executed after an account is locked due to failed login attempts, allowing you to:
329
+ * - Send lockout notification emails
330
+ * - Log lockout events
331
+ * - Trigger security alerts
332
+ * - Provide unlock instructions
333
+ *
334
+ * These hooks cannot block lockouts (account is already locked) but errors are logged.
335
+ *
336
+ * @param options - Hook configuration options
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * @Injectable()
341
+ * @AccountLockedHook({ priority: 1 })
342
+ * export class AccountLockedNotificationHook implements IAccountLockedHook {
343
+ * constructor(private readonly emailService: EmailService) {}
344
+ *
345
+ * async execute(metadata: AccountLockedMetadata) {
346
+ * await this.emailService.sendAccountLockedAlert({
347
+ * to: metadata.user.email,
348
+ * reason: metadata.lockoutReason,
349
+ * unlockTime: metadata.unlockTime,
350
+ * });
351
+ * }
352
+ * }
353
+ * ```
354
+ */
355
+ function AccountLockedHook(options = {}) {
356
+ const metadata = {
357
+ type: 'accountLocked',
358
+ priority: options.priority ?? 100,
359
+ };
360
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
361
+ }
362
+ /**
363
+ * Marks a provider as a sessions revoked hook
364
+ *
365
+ * Sessions revoked hooks are executed after user sessions are bulk revoked, allowing you to:
366
+ * - Send security notification emails
367
+ * - Log session revocation events
368
+ * - Trigger security audits
369
+ * - Alert users of forced logouts
370
+ *
371
+ * These hooks cannot block session revocation (sessions are already revoked) but errors are logged.
372
+ *
373
+ * @param options - Hook configuration options
374
+ *
375
+ * @example
376
+ * ```typescript
377
+ * @Injectable()
378
+ * @SessionsRevokedHook({ priority: 1 })
379
+ * export class SessionsRevokedNotificationHook implements ISessionsRevokedHook {
380
+ * constructor(private readonly emailService: EmailService) {}
381
+ *
382
+ * async execute(metadata: SessionsRevokedMetadata) {
383
+ * await this.emailService.sendSessionsRevokedAlert({
384
+ * to: metadata.user.email,
385
+ * revokedCount: metadata.revokedCount,
386
+ * reason: metadata.reason,
387
+ * });
388
+ * }
389
+ * }
390
+ * ```
391
+ */
392
+ function SessionsRevokedHook(options = {}) {
393
+ const metadata = {
394
+ type: 'sessionsRevoked',
395
+ priority: options.priority ?? 100,
396
+ };
397
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
398
+ }
399
+ /**
400
+ * Marks a provider as an MFA first enabled hook
401
+ *
402
+ * MFA first enabled hooks are executed after a user enables MFA for the first time, allowing you to:
403
+ * - Send congratulations emails
404
+ * - Log MFA enablement events
405
+ * - Track security adoption
406
+ * - Reward users for enabling MFA
407
+ *
408
+ * These hooks cannot block MFA enablement (MFA is already enabled) but errors are logged.
409
+ *
410
+ * @param options - Hook configuration options
411
+ *
412
+ * @example
413
+ * ```typescript
414
+ * @Injectable()
415
+ * @MFAFirstEnabledHook({ priority: 1 })
416
+ * export class MFAFirstEnabledNotificationHook implements IMFAFirstEnabledHook {
417
+ * constructor(private readonly emailService: EmailService) {}
418
+ *
419
+ * async execute(metadata: MFAFirstEnabledMetadata) {
420
+ * await this.emailService.sendMFAEnabledCongrats({
421
+ * to: metadata.user.email,
422
+ * method: metadata.firstMethod,
423
+ * });
424
+ * }
425
+ * }
426
+ * ```
427
+ */
428
+ function MFAFirstEnabledHook(options = {}) {
429
+ const metadata = {
430
+ type: 'mfaFirstEnabled',
431
+ priority: options.priority ?? 100,
432
+ };
433
+ return (0, common_1.SetMetadata)(exports.HOOK_METADATA_KEY, metadata);
434
+ }
133
435
  //# sourceMappingURL=hook.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.decorator.js","sourceRoot":"","sources":["../../src/decorators/hook.decorator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AA6DH,sCAMC;AAgBD,wCAMC;AAmCD,wDAMC;AAhID,2CAA6C;AAEhC,QAAA,iBAAiB,GAAG,YAAY,CAAC;AA0B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,aAAa,CAAC,UAAgC,EAAE;IAC9D,MAAM,QAAQ,GAAiB;QAC7B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;KAClC,CAAC;IACF,OAAO,IAAA,oBAAW,EAAC,yBAAiB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAAC,UAAgC,EAAE;IAC/D,MAAM,QAAQ,GAAiB;QAC7B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;KAClC,CAAC;IACF,OAAO,IAAA,oBAAW,EAAC,yBAAiB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,SAAgB,sBAAsB,CAAC,UAAgC,EAAE;IACvE,MAAM,QAAQ,GAAiB;QAC7B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,GAAG;KAClC,CAAC;IACF,OAAO,IAAA,oBAAW,EAAC,yBAAiB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"hook.decorator.js","sourceRoot":"","sources":["../../src/decorators/hook.decorator.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * NAuth Hook Registration Module
3
3
  *
4
- * This module automatically discovers and registers hooks decorated with @PreSignupHook, @PostSignupHook, or @UserProfileUpdatedHook
4
+ * This module automatically discovers and registers hooks decorated with hook decorators
5
5
  * with the HookRegistryService. It should be imported after NAuthModule in your application.
6
6
  *
7
7
  * @example
@@ -11,7 +11,7 @@
11
11
  * import { NAuthHooksModule } from '@nauth-toolkit/nestjs';
12
12
  * import { DomainValidationHook } from './hooks/domain-validation.hook';
13
13
  * import { WelcomeEmailHook } from './hooks/welcome-email.hook';
14
- * import { CrmSyncHook } from './hooks/crm-sync.hook';
14
+ * import { PasswordChangedNotificationHook } from './hooks/password-changed.hook';
15
15
  *
16
16
  * @Module({
17
17
  * imports: [
@@ -19,7 +19,7 @@
19
19
  * NAuthHooksModule.forFeature([
20
20
  * DomainValidationHook,
21
21
  * WelcomeEmailHook,
22
- * CrmSyncHook,
22
+ * PasswordChangedNotificationHook,
23
23
  * ]),
24
24
  * ],
25
25
  * })
@@ -28,11 +28,11 @@
28
28
  */
29
29
  import { DynamicModule, OnModuleInit, Type } from '@nestjs/common';
30
30
  import { ModuleRef, Reflector } from '@nestjs/core';
31
- import { IPreSignupHookProvider, IPostSignupHookProvider, IUserProfileUpdatedHook } from '@nauth-toolkit/core';
31
+ import { IPreSignupHookProvider, IPostSignupHookProvider, IUserProfileUpdatedHook, IPasswordChangedHook, IMFADeviceRemovedHook, IAdaptiveMFARiskDetectedHook, IAccountStatusChangedHook, IEmailChangedHook, IAccountLockedHook, ISessionsRevokedHook, IMFAFirstEnabledHook } from '@nauth-toolkit/core';
32
32
  /**
33
33
  * Union type for all hook provider classes
34
34
  */
35
- type HookProviderClass = Type<IPreSignupHookProvider> | Type<IPostSignupHookProvider> | Type<IUserProfileUpdatedHook>;
35
+ type HookProviderClass = Type<IPreSignupHookProvider> | Type<IPostSignupHookProvider> | Type<IUserProfileUpdatedHook> | Type<IPasswordChangedHook> | Type<IMFADeviceRemovedHook> | Type<IAdaptiveMFARiskDetectedHook> | Type<IAccountStatusChangedHook> | Type<IEmailChangedHook> | Type<IAccountLockedHook> | Type<ISessionsRevokedHook> | Type<IMFAFirstEnabledHook>;
36
36
  /**
37
37
  * Module for automatic hook registration
38
38
  *
@@ -51,7 +51,7 @@ export declare class NAuthHooksModule implements OnModuleInit {
51
51
  /**
52
52
  * Register hooks for a feature module
53
53
  *
54
- * @param hooks - Array of hook provider classes decorated with @PreSignupHook, @PostSignupHook, or @UserProfileUpdatedHook
54
+ * @param hooks - Array of hook provider classes decorated with hook decorators
55
55
  * @returns Dynamic module configuration
56
56
  *
57
57
  * @example
@@ -61,7 +61,7 @@ export declare class NAuthHooksModule implements OnModuleInit {
61
61
  * NAuthHooksModule.forFeature([
62
62
  * DomainValidationHook,
63
63
  * WelcomeEmailHook,
64
- * CrmSyncHook,
64
+ * PasswordChangedNotificationHook,
65
65
  * ]),
66
66
  * ],
67
67
  * })
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.module.d.ts","sourceRoot":"","sources":["../../src/hooks/hooks.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAU,aAAa,EAAE,YAAY,EAAE,IAAI,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAG7B;;GAEG;AACH,KAAK,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAEtH;;;;;GAKG;AACH,qBACa,gBAAiB,YAAW,YAAY;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFc,WAAW,EAAE,iBAAiB,EAAE,EACvD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,aAAa;CAc7D"}
1
+ {"version":3,"file":"hooks.module.d.ts","sourceRoot":"","sources":["../../src/hooks/hooks.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAU,aAAa,EAAE,YAAY,EAAE,IAAI,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAG7B;;GAEG;AACH,KAAK,iBAAiB,GAClB,IAAI,CAAC,sBAAsB,CAAC,GAC5B,IAAI,CAAC,uBAAuB,CAAC,GAC7B,IAAI,CAAC,uBAAuB,CAAC,GAC7B,IAAI,CAAC,oBAAoB,CAAC,GAC1B,IAAI,CAAC,qBAAqB,CAAC,GAC3B,IAAI,CAAC,4BAA4B,CAAC,GAClC,IAAI,CAAC,yBAAyB,CAAC,GAC/B,IAAI,CAAC,iBAAiB,CAAC,GACvB,IAAI,CAAC,kBAAkB,CAAC,GACxB,IAAI,CAAC,oBAAoB,CAAC,GAC1B,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAE/B;;;;;GAKG;AACH,qBACa,gBAAiB,YAAW,YAAY;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFc,WAAW,EAAE,iBAAiB,EAAE,EACvD,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS;IAGvC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,aAAa;CAc7D"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * NAuth Hook Registration Module
4
4
  *
5
- * This module automatically discovers and registers hooks decorated with @PreSignupHook, @PostSignupHook, or @UserProfileUpdatedHook
5
+ * This module automatically discovers and registers hooks decorated with hook decorators
6
6
  * with the HookRegistryService. It should be imported after NAuthModule in your application.
7
7
  *
8
8
  * @example
@@ -12,7 +12,7 @@
12
12
  * import { NAuthHooksModule } from '@nauth-toolkit/nestjs';
13
13
  * import { DomainValidationHook } from './hooks/domain-validation.hook';
14
14
  * import { WelcomeEmailHook } from './hooks/welcome-email.hook';
15
- * import { CrmSyncHook } from './hooks/crm-sync.hook';
15
+ * import { PasswordChangedNotificationHook } from './hooks/password-changed.hook';
16
16
  *
17
17
  * @Module({
18
18
  * imports: [
@@ -20,7 +20,7 @@
20
20
  * NAuthHooksModule.forFeature([
21
21
  * DomainValidationHook,
22
22
  * WelcomeEmailHook,
23
- * CrmSyncHook,
23
+ * PasswordChangedNotificationHook,
24
24
  * ]),
25
25
  * ],
26
26
  * })
@@ -88,12 +88,36 @@ let NAuthHooksModule = NAuthHooksModule_1 = class NAuthHooksModule {
88
88
  else if (metadata.type === 'userProfileUpdated') {
89
89
  hookRegistry.registerUserProfileUpdated(hookInstance);
90
90
  }
91
+ else if (metadata.type === 'passwordChanged') {
92
+ hookRegistry.registerPasswordChanged(hookInstance);
93
+ }
94
+ else if (metadata.type === 'mfaDeviceRemoved') {
95
+ hookRegistry.registerMFADeviceRemoved(hookInstance);
96
+ }
97
+ else if (metadata.type === 'adaptiveMfaRiskDetected') {
98
+ hookRegistry.registerAdaptiveMFARiskDetected(hookInstance);
99
+ }
100
+ else if (metadata.type === 'accountStatusChanged') {
101
+ hookRegistry.registerAccountStatusChanged(hookInstance);
102
+ }
103
+ else if (metadata.type === 'emailChanged') {
104
+ hookRegistry.registerEmailChanged(hookInstance);
105
+ }
106
+ else if (metadata.type === 'accountLocked') {
107
+ hookRegistry.registerAccountLocked(hookInstance);
108
+ }
109
+ else if (metadata.type === 'sessionsRevoked') {
110
+ hookRegistry.registerSessionsRevoked(hookInstance);
111
+ }
112
+ else if (metadata.type === 'mfaFirstEnabled') {
113
+ hookRegistry.registerMFAFirstEnabled(hookInstance);
114
+ }
91
115
  }
92
116
  }
93
117
  /**
94
118
  * Register hooks for a feature module
95
119
  *
96
- * @param hooks - Array of hook provider classes decorated with @PreSignupHook, @PostSignupHook, or @UserProfileUpdatedHook
120
+ * @param hooks - Array of hook provider classes decorated with hook decorators
97
121
  * @returns Dynamic module configuration
98
122
  *
99
123
  * @example
@@ -103,7 +127,7 @@ let NAuthHooksModule = NAuthHooksModule_1 = class NAuthHooksModule {
103
127
  * NAuthHooksModule.forFeature([
104
128
  * DomainValidationHook,
105
129
  * WelcomeEmailHook,
106
- * CrmSyncHook,
130
+ * PasswordChangedNotificationHook,
107
131
  * ]),
108
132
  * ],
109
133
  * })
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.module.js","sourceRoot":"","sources":["../../src/hooks/hooks.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;;;;;;;;;;;AAEH,2CAAmF;AACnF,uCAAoD;AACpD,8CAK6B;AAC7B,iEAA+E;AAO/E;;;;;GAKG;AAEI,IAAM,gBAAgB,wBAAtB,MAAM,gBAAgB;IAEe;IACvB;IACA;IAHnB,YAC0C,WAAgC,EACvD,SAAoB,EACpB,SAAoB;QAFG,gBAAW,GAAX,WAAW,CAAqB;QACvD,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAW;IACpC,CAAC;IAEJ;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,uEAAuE;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,0BAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,gHAAgH,CACjH,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAe,kCAAiB,EAAE,SAAS,CAAC,CAAC;YAEhF,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,2CAA2C;gBAC3C,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAEtE,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAClC,YAAY,CAAC,iBAAiB,CAAC,YAAiD,CAAC,CAAC;YACpF,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1C,YAAY,CAAC,kBAAkB,CAAC,YAAkD,CAAC,CAAC;YACtF,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAClD,YAAY,CAAC,0BAA0B,CAAC,YAAkD,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,UAAU,CAAC,KAA0B;QAC1C,OAAO;YACL,MAAM,EAAE,kBAAgB;YACxB,OAAO,EAAE,EAAE,EAAE,0EAA0E;YACvF,SAAS,EAAE;gBACT,GAAG,KAAK;gBACR;oBACE,OAAO,EAAE,aAAa;oBACtB,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;CACF,CAAA;AA5EY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAM,EAAC,EAAE,CAAC;IAGN,WAAA,IAAA,eAAM,EAAC,aAAa,CAAC,CAAA;4CACM,gBAAS;QACT,gBAAS;GAJ5B,gBAAgB,CA4E5B"}
1
+ {"version":3,"file":"hooks.module.js","sourceRoot":"","sources":["../../src/hooks/hooks.module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nauth-validation.pipe.d.ts","sourceRoot":"","sources":["../../src/pipes/nauth-validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,mBAAoB,YAAW,aAAa;IACvD;;;;;;;OAOG;IACG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7E;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"nauth-validation.pipe.d.ts","sourceRoot":"","sources":["../../src/pipes/nauth-validation.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,mBAAoB,YAAW,aAAa;IACvD;;;;;;;OAOG;IACG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4C7E;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAKxB"}
@@ -1,10 +1,43 @@
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
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  Object.defineProperty(exports, "__esModule", { value: true });
9
42
  exports.NAuthValidationPipe = void 0;
10
43
  const common_1 = require("@nestjs/common");
@@ -52,6 +85,34 @@ let NAuthValidationPipe = class NAuthValidationPipe {
52
85
  */
53
86
  async transform(value, metadata) {
54
87
  const metatype = metadata.metatype;
88
+ // #region agent log
89
+ const http = await Promise.resolve().then(() => __importStar(require('http')));
90
+ const logData = JSON.stringify({
91
+ location: 'nauth-validation.pipe.ts:transform',
92
+ message: 'Validation pipe input',
93
+ data: {
94
+ value: value,
95
+ valueType: typeof value,
96
+ metatypeName: metatype?.name,
97
+ isNull: value === null,
98
+ isUndefined: value === undefined,
99
+ keys: value && typeof value === 'object' ? Object.keys(value) : [],
100
+ },
101
+ timestamp: Date.now(),
102
+ sessionId: 'debug-session',
103
+ hypothesisId: 'E',
104
+ });
105
+ const req = http.request({
106
+ hostname: '127.0.0.1',
107
+ port: 7242,
108
+ path: '/ingest/97f9fe53-6a8b-43e2-ae9b-4b2d0f725816',
109
+ method: 'POST',
110
+ headers: { 'Content-Type': 'application/json' },
111
+ }, () => { });
112
+ req.on('error', () => { });
113
+ req.write(logData);
114
+ req.end();
115
+ // #endregion
55
116
  // Skip validation for primitives or missing metatype (same behavior as Nest ValidationPipe)
56
117
  if (!metatype || this.isPrimitiveType(metatype)) {
57
118
  return value;
@@ -1 +1 @@
1
- {"version":3,"file":"nauth-validation.pipe.js","sourceRoot":"","sources":["../../src/pipes/nauth-validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAuF;AACvF,8CAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,KAAc,EAAE,QAA0B;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,4FAA4F;QAC5F,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qEAAqE;QACrE,OAAO,IAAA,yBAAkB,EAAC,QAAuC,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,QAAiB;QACvC,OAAO,CACL,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,CAChH,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAgC/B"}
1
+ {"version":3,"file":"nauth-validation.pipe.js","sourceRoot":"","sources":["../../src/pipes/nauth-validation.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAuF;AACvF,8CAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,CAAC,KAAc,EAAE,QAA0B;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEnC,oBAAoB;QACpB,MAAM,IAAI,GAAG,wDAAa,MAAM,GAAC,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,QAAQ,EAAE,oCAAoC;YAC9C,OAAO,EAAE,uBAAuB;YAChC,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,OAAO,KAAK;gBACvB,YAAY,EAAE,QAAQ,EAAE,IAAI;gBAC5B,MAAM,EAAE,KAAK,KAAK,IAAI;gBACtB,WAAW,EAAE,KAAK,KAAK,SAAS;gBAChC,IAAI,EAAE,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;aACnE;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,eAAe;YAC1B,YAAY,EAAE,GAAG;SAClB,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB;YACE,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,8CAA8C;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,aAAa;QAEb,4FAA4F;QAC5F,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qEAAqE;QACrE,OAAO,IAAA,yBAAkB,EAAC,QAAuC,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACK,eAAe,CAAC,QAAiB;QACvC,OAAO,CACL,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,CAChH,CAAC;IACJ,CAAC;CACF,CAAA;AAhEY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAgE/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-bootstrap.service.d.ts","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAevE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,QAwC9C,CAAC"}
1
+ {"version":3,"file":"migrations-bootstrap.service.d.ts","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAevE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,QAkC9C,CAAC"}
@@ -53,22 +53,18 @@ function getAdapterPackageName(dataSource) {
53
53
  exports.nauthMigrationsBootstrapProvider = {
54
54
  provide: exports.NAUTH_MIGRATIONS_BOOTSTRAP,
55
55
  useFactory: async (config, logger, dataSource) => {
56
- logger?.debug?.('[PERF] Migrations bootstrap factory started');
57
56
  if (!dataSource?.isInitialized) {
58
57
  logger?.warn?.('[nauth-toolkit] DataSource not initialized; skipping migrations');
59
58
  return false;
60
59
  }
61
- logger?.debug?.('[PERF] Determining adapter package name...');
62
60
  const adapterPackageName = getAdapterPackageName(dataSource);
63
61
  if (!adapterPackageName) {
64
62
  logger?.debug?.(`[nauth-toolkit] Skipping migrations: unsupported TypeORM DataSource type: ${String(dataSource.options?.type)}`);
65
63
  return false;
66
64
  }
67
- logger?.debug?.(`[PERF] Importing migration adapter: ${adapterPackageName}...`);
68
65
  let imported;
69
66
  try {
70
67
  imported = (await Promise.resolve(`${adapterPackageName}`).then(s => __importStar(require(s))));
71
- logger?.debug?.('[PERF] Migration adapter imported');
72
68
  }
73
69
  catch (err) {
74
70
  const message = err instanceof Error ? err.message : String(err);
@@ -77,9 +73,7 @@ exports.nauthMigrationsBootstrapProvider = {
77
73
  if (typeof imported.runNAuthMigrations !== 'function') {
78
74
  throw new Error(`[nauth-toolkit] Migration adapter ${adapterPackageName} does not export runNAuthMigrations()`);
79
75
  }
80
- logger?.debug?.('[PERF] Running migrations...');
81
76
  await imported.runNAuthMigrations(dataSource, logger, config);
82
- logger?.debug?.('[PERF] Migrations completed');
83
77
  return true;
84
78
  },
85
79
  inject: ['NAUTH_CONFIG', 'NAUTH_LOGGER', typeorm_1.DataSource],
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-bootstrap.service.js","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAqC;AAExB,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAMvE,SAAS,qBAAqB,CAC5B,UAAsB;IAEtB,MAAM,IAAI,GAAI,UAAU,CAAC,OAA0C,EAAE,IAAI,CAAC;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,0CAA0C,CAAC;IAC3E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,uCAAuC,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACU,QAAA,gCAAgC,GAAa;IACxD,OAAO,EAAE,kCAA0B;IACnC,UAAU,EAAE,KAAK,EAAE,MAAmB,EAAE,MAAmB,EAAE,UAAsB,EAAE,EAAE;QACrF,MAAM,EAAE,KAAK,EAAE,CAAC,6CAA6C,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,CAAC,iEAAiE,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,4CAA4C,CAAC,CAAC;QAC9D,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,CACb,6EAA6E,MAAM,CAChF,UAAU,CAAC,OAA0C,EAAE,IAAI,CAC7D,EAAE,CACJ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,uCAAuC,kBAAkB,KAAK,CAAC,CAAC;QAChF,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,yBAAa,kBAAkB,uCAAC,CAAqC,CAAC;YAClF,MAAM,EAAE,KAAK,EAAE,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,KAAK,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,kBAAkB,uCAAuC,CAAC,CAAC;QAClH,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,CAAC,8BAA8B,CAAC,CAAC;QAChD,MAAM,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,EAAE,KAAK,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,oBAAU,CAAC;CACrD,CAAC"}
1
+ {"version":3,"file":"migrations-bootstrap.service.js","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAqC;AAExB,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAMvE,SAAS,qBAAqB,CAC5B,UAAsB;IAEtB,MAAM,IAAI,GAAI,UAAU,CAAC,OAA0C,EAAE,IAAI,CAAC;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,0CAA0C,CAAC;IAC3E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,uCAAuC,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACU,QAAA,gCAAgC,GAAa;IACxD,OAAO,EAAE,kCAA0B;IACnC,UAAU,EAAE,KAAK,EAAE,MAAmB,EAAE,MAAmB,EAAE,UAAsB,EAAE,EAAE;QACrF,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,CAAC,iEAAiE,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,CACb,6EAA6E,MAAM,CAChF,UAAU,CAAC,OAA0C,EAAE,IAAI,CAC7D,EAAE,CACJ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,yBAAa,kBAAkB,uCAAC,CAAqC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,KAAK,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,kBAAkB,uCAAuC,CAAC,CAAC;QAClH,CAAC;QAED,MAAM,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,oBAAU,CAAC;CACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nauth-toolkit/nestjs",
3
- "version": "0.1.60",
3
+ "version": "0.1.62",
4
4
  "description": "NestJS adapter for nauth-toolkit - Platform-specific integrations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -39,7 +39,7 @@
39
39
  "typeorm": "^0.3.0"
40
40
  },
41
41
  "dependencies": {
42
- "@nauth-toolkit/core": "0.1.60"
42
+ "@nauth-toolkit/core": "0.1.62"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@nestjs/common": "^11.1.8",