@nauth-toolkit/email-nodemailer 0.1.61 → 0.1.63
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/nodemailer-email.provider.d.ts +159 -0
- package/dist/nodemailer-email.provider.d.ts.map +1 -1
- package/dist/nodemailer-email.provider.js +352 -0
- package/dist/nodemailer-email.provider.js.map +1 -1
- package/dist/templates/default/account-disabled.html.hbs +643 -0
- package/dist/templates/default/account-disabled.text.hbs +16 -0
- package/dist/templates/default/account-enabled.html.hbs +669 -0
- package/dist/templates/default/account-enabled.text.hbs +16 -0
- package/dist/templates/default/adaptive-mfa-risk-alert.html.hbs +694 -0
- package/dist/templates/default/adaptive-mfa-risk-alert.text.hbs +21 -0
- package/dist/templates/default/admin-password-reset.html.hbs +657 -0
- package/dist/templates/default/admin-password-reset.text.hbs +16 -0
- package/dist/templates/default/email-changed-new.html.hbs +679 -0
- package/dist/templates/default/email-changed-new.text.hbs +20 -0
- package/dist/templates/default/email-changed-old.html.hbs +669 -0
- package/dist/templates/default/email-changed-old.text.hbs +20 -0
- package/dist/templates/default/mfa-device-removed.html.hbs +681 -0
- package/dist/templates/default/mfa-device-removed.text.hbs +20 -0
- package/dist/templates/default/mfa-method-added.html.hbs +66 -0
- package/dist/templates/default/mfa-method-added.text.hbs +14 -0
- package/dist/templates/default/sessions-revoked.html.hbs +705 -0
- package/dist/templates/default/sessions-revoked.text.hbs +20 -0
- package/dist/templates/handlebars-template.engine.d.ts +37 -0
- package/dist/templates/handlebars-template.engine.d.ts.map +1 -1
- package/dist/templates/handlebars-template.engine.js +49 -3
- package/dist/templates/handlebars-template.engine.js.map +1 -1
- package/package.json +2 -2
- package/src/templates/default/account-disabled.html.hbs +643 -0
- package/src/templates/default/account-disabled.text.hbs +16 -0
- package/src/templates/default/account-enabled.html.hbs +669 -0
- package/src/templates/default/account-enabled.text.hbs +16 -0
- package/src/templates/default/adaptive-mfa-risk-alert.html.hbs +694 -0
- package/src/templates/default/adaptive-mfa-risk-alert.text.hbs +21 -0
- package/src/templates/default/admin-password-reset.html.hbs +657 -0
- package/src/templates/default/admin-password-reset.text.hbs +16 -0
- package/src/templates/default/email-changed-new.html.hbs +679 -0
- package/src/templates/default/email-changed-new.text.hbs +20 -0
- package/src/templates/default/email-changed-old.html.hbs +669 -0
- package/src/templates/default/email-changed-old.text.hbs +20 -0
- package/src/templates/default/mfa-device-removed.html.hbs +681 -0
- package/src/templates/default/mfa-device-removed.text.hbs +20 -0
- package/src/templates/default/mfa-method-added.html.hbs +66 -0
- package/src/templates/default/mfa-method-added.text.hbs +14 -0
- package/src/templates/default/sessions-revoked.html.hbs +705 -0
- package/src/templates/default/sessions-revoked.text.hbs +20 -0
|
@@ -240,11 +240,20 @@ export declare class NodemailerProvider implements EmailProvider {
|
|
|
240
240
|
private readonly defaults;
|
|
241
241
|
private readonly preview;
|
|
242
242
|
private globalVariables;
|
|
243
|
+
private config?;
|
|
243
244
|
/**
|
|
244
245
|
* Set logger instance (called by AuthModule to inject NAuthLogger)
|
|
245
246
|
* @param logger - Logger instance to use
|
|
246
247
|
*/
|
|
247
248
|
setLogger(logger: LoggerService): void;
|
|
249
|
+
/**
|
|
250
|
+
* Set NAuth configuration (called during initialization)
|
|
251
|
+
*
|
|
252
|
+
* Allows email provider to access emailNotifications config for suppression logic.
|
|
253
|
+
*
|
|
254
|
+
* @param config - NAuth configuration object
|
|
255
|
+
*/
|
|
256
|
+
setConfig(config: import('@nauth-toolkit/core').NAuthConfig): void;
|
|
248
257
|
/**
|
|
249
258
|
* Set global template variables (called by AuthModule to inject email config)
|
|
250
259
|
* @param variables - Global variables to merge with all template variables
|
|
@@ -334,11 +343,161 @@ export declare class NodemailerProvider implements EmailProvider {
|
|
|
334
343
|
ipAddress?: string;
|
|
335
344
|
location?: string;
|
|
336
345
|
}, variables?: TemplateVariables): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Send password changed security alert
|
|
348
|
+
*
|
|
349
|
+
* @param to - Recipient email address
|
|
350
|
+
* @param context - Password change context
|
|
351
|
+
* @param variables - Additional template variables
|
|
352
|
+
*/
|
|
353
|
+
sendPasswordChangedEmail(to: string, context?: {
|
|
354
|
+
changedBy?: 'user' | 'admin' | 'reset';
|
|
355
|
+
sessionsRevoked?: number;
|
|
356
|
+
timestamp?: string;
|
|
357
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Send MFA device removed security alert
|
|
360
|
+
*
|
|
361
|
+
* @param to - Recipient email address
|
|
362
|
+
* @param context - Device removal context
|
|
363
|
+
* @param variables - Additional template variables
|
|
364
|
+
*/
|
|
365
|
+
sendMFADeviceRemovedEmail(to: string, context?: {
|
|
366
|
+
deviceType?: string;
|
|
367
|
+
deviceName?: string;
|
|
368
|
+
removedBy?: 'user' | 'system';
|
|
369
|
+
reason?: string;
|
|
370
|
+
remainingDeviceCount?: number;
|
|
371
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
372
|
+
/**
|
|
373
|
+
* Send adaptive MFA risk detection alert
|
|
374
|
+
*
|
|
375
|
+
* @param to - Recipient email address
|
|
376
|
+
* @param context - Risk detection context
|
|
377
|
+
* @param variables - Additional template variables
|
|
378
|
+
*/
|
|
379
|
+
sendAdaptiveMFARiskAlertEmail(to: string, context?: {
|
|
380
|
+
riskScore?: number;
|
|
381
|
+
riskLevel?: 'low' | 'medium' | 'high';
|
|
382
|
+
riskFactors?: string[];
|
|
383
|
+
action?: string;
|
|
384
|
+
timestamp?: string;
|
|
385
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
386
|
+
/**
|
|
387
|
+
* Send account disabled notification
|
|
388
|
+
*
|
|
389
|
+
* @param to - Recipient email address
|
|
390
|
+
* @param context - Account disable context
|
|
391
|
+
* @param variables - Additional template variables
|
|
392
|
+
*/
|
|
393
|
+
sendAccountDisabledEmail(to: string, context?: {
|
|
394
|
+
reason?: string;
|
|
395
|
+
performedBy?: string;
|
|
396
|
+
timestamp?: string;
|
|
397
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
398
|
+
/**
|
|
399
|
+
* Send account enabled notification
|
|
400
|
+
*
|
|
401
|
+
* @param to - Recipient email address
|
|
402
|
+
* @param context - Account enable context
|
|
403
|
+
* @param variables - Additional template variables
|
|
404
|
+
*/
|
|
405
|
+
sendAccountEnabledEmail(to: string, context?: {
|
|
406
|
+
reason?: string;
|
|
407
|
+
performedBy?: string;
|
|
408
|
+
timestamp?: string;
|
|
409
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
410
|
+
/**
|
|
411
|
+
* Send email changed alert (to OLD email address)
|
|
412
|
+
*
|
|
413
|
+
* @param to - OLD email address
|
|
414
|
+
* @param context - Email change context
|
|
415
|
+
* @param variables - Additional template variables
|
|
416
|
+
*/
|
|
417
|
+
sendEmailChangedAlertEmail(to: string, context?: {
|
|
418
|
+
newEmail?: string;
|
|
419
|
+
deactivatedMFADevices?: number;
|
|
420
|
+
timestamp?: string;
|
|
421
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
422
|
+
/**
|
|
423
|
+
* Send email changed confirmation (to NEW email address)
|
|
424
|
+
*
|
|
425
|
+
* @param to - NEW email address
|
|
426
|
+
* @param context - Email change context
|
|
427
|
+
* @param variables - Additional template variables
|
|
428
|
+
*/
|
|
429
|
+
sendEmailChangedConfirmationEmail(to: string, context?: {
|
|
430
|
+
oldEmail?: string;
|
|
431
|
+
timestamp?: string;
|
|
432
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
433
|
+
/**
|
|
434
|
+
* Send account locked notification
|
|
435
|
+
*
|
|
436
|
+
* @param to - Recipient email address
|
|
437
|
+
* @param context - Lockout context
|
|
438
|
+
* @param variables - Additional template variables
|
|
439
|
+
*/
|
|
440
|
+
sendAccountLockedEmail(to: string, context?: {
|
|
441
|
+
reason?: string;
|
|
442
|
+
lockType?: 'temporary' | 'permanent';
|
|
443
|
+
lockDuration?: number;
|
|
444
|
+
lockedUntil?: Date;
|
|
445
|
+
ipAddress?: string;
|
|
446
|
+
failedAttempts?: number;
|
|
447
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
448
|
+
/**
|
|
449
|
+
* Send sessions revoked security alert
|
|
450
|
+
*
|
|
451
|
+
* @param to - Recipient email address
|
|
452
|
+
* @param context - Session revocation context
|
|
453
|
+
* @param variables - Additional template variables
|
|
454
|
+
*/
|
|
455
|
+
sendSessionsRevokedEmail(to: string, context?: {
|
|
456
|
+
revokedCount?: number;
|
|
457
|
+
reason?: string;
|
|
458
|
+
triggerEvent?: string;
|
|
459
|
+
timestamp?: string;
|
|
460
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
461
|
+
/**
|
|
462
|
+
* Send MFA first enabled confirmation
|
|
463
|
+
*
|
|
464
|
+
* @param to - Recipient email address
|
|
465
|
+
* @param context - MFA enrollment context
|
|
466
|
+
* @param variables - Additional template variables
|
|
467
|
+
*/
|
|
468
|
+
sendMFAFirstEnabledEmail(to: string, context?: {
|
|
469
|
+
firstMethod?: string;
|
|
470
|
+
deviceName?: string;
|
|
471
|
+
timestamp?: string;
|
|
472
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
473
|
+
/**
|
|
474
|
+
* Send MFA method added notification
|
|
475
|
+
*
|
|
476
|
+
* @param to - Recipient email address
|
|
477
|
+
* @param context - MFA method addition context
|
|
478
|
+
* @param variables - Additional template variables
|
|
479
|
+
*/
|
|
480
|
+
sendMFAMethodAddedEmail(to: string, context?: {
|
|
481
|
+
method?: string;
|
|
482
|
+
enabledMethods?: string[];
|
|
483
|
+
deviceName?: string;
|
|
484
|
+
timestamp?: string;
|
|
485
|
+
}, variables?: TemplateVariables): Promise<void>;
|
|
337
486
|
/**
|
|
338
487
|
* Send email using Nodemailer
|
|
339
488
|
* @private
|
|
340
489
|
*/
|
|
341
490
|
private sendMail;
|
|
491
|
+
/**
|
|
492
|
+
* Check if email notification should be sent based on config
|
|
493
|
+
*
|
|
494
|
+
* Checks global enabled flag and per-notification suppression settings.
|
|
495
|
+
*
|
|
496
|
+
* @param notificationType - Type of notification (matches suppress config keys)
|
|
497
|
+
* @returns True if email should be sent, false if suppressed
|
|
498
|
+
* @private
|
|
499
|
+
*/
|
|
500
|
+
private shouldSendEmail;
|
|
342
501
|
/**
|
|
343
502
|
* Close transporter connection
|
|
344
503
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodemailer-email.provider.d.ts","sourceRoot":"","sources":["../src/nodemailer-email.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpH,OAAO,KAAK,EAAE,WAAW,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EACD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEN;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IAEF;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,SAAS,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,eAAe,CAAyB;
|
|
1
|
+
{"version":3,"file":"nodemailer-email.provider.d.ts","sourceRoot":"","sources":["../src/nodemailer-email.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpH,OAAO,KAAK,EAAE,WAAW,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EACD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IAEN;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;OAaG;IACH,GAAG,CAAC,EAAE;QACJ,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;IAEF;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,SAAS,EAAE,yBAAyB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IAEF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAA4C;IAE3D;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAItC;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,qBAAqB,EAAE,WAAW,GAAG,IAAI;IAIlE;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD;;;;OAIG;gBACS,MAAM,EAAE,wBAAwB;IAyC5C;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAWtB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;;;;OAOG;YACW,gBAAgB;IA4B9B;;;;;;OAMG;IACG,qBAAqB,CACzB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,GAAE,MAAW,EAC1B,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAyBhB;;;;;;OAMG;IACG,sBAAsB,CAC1B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,MAAW,EAC1B,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;;;;;;OAQG;IACG,2BAA2B,CAC/B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,aAAa,GAAE,MAAW,EAC1B,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAyBhB;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBlG;;;;;;OAMG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;;;OAKG;IACG,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACnF,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,wBAAwB,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,yBAAyB,CAC7B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC1B,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA0BhB;;;;;;OAMG;IACG,6BAA6B,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;;;;OAMG;IACG,wBAAwB,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,uBAAuB,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,0BAA0B,CAC9B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;OAMG;IACG,iCAAiC,CACrC,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,sBAAsB,CAC1B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,IAAI,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACpB,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IA4BhB;;;;;;OAMG;IACG,wBAAwB,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;;;;OAMG;IACG,wBAAwB,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;OAMG;IACG,uBAAuB,CAC3B,EAAE,EAAE,MAAM,EACV,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,EACN,SAAS,GAAE,iBAAsB,GAChC,OAAO,CAAC,IAAI,CAAC;IAwBhB;;;OAGG;YACW,QAAQ;IA0CtB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IA2BvB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
|
|
@@ -144,6 +144,7 @@ class NodemailerProvider {
|
|
|
144
144
|
defaults;
|
|
145
145
|
preview;
|
|
146
146
|
globalVariables = {};
|
|
147
|
+
config;
|
|
147
148
|
/**
|
|
148
149
|
* Set logger instance (called by AuthModule to inject NAuthLogger)
|
|
149
150
|
* @param logger - Logger instance to use
|
|
@@ -151,6 +152,16 @@ class NodemailerProvider {
|
|
|
151
152
|
setLogger(logger) {
|
|
152
153
|
this.logger = logger;
|
|
153
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Set NAuth configuration (called during initialization)
|
|
157
|
+
*
|
|
158
|
+
* Allows email provider to access emailNotifications config for suppression logic.
|
|
159
|
+
*
|
|
160
|
+
* @param config - NAuth configuration object
|
|
161
|
+
*/
|
|
162
|
+
setConfig(config) {
|
|
163
|
+
this.config = config;
|
|
164
|
+
}
|
|
154
165
|
/**
|
|
155
166
|
* Set global template variables (called by AuthModule to inject email config)
|
|
156
167
|
* @param variables - Global variables to merge with all template variables
|
|
@@ -421,6 +432,318 @@ class NodemailerProvider {
|
|
|
421
432
|
text: email.text,
|
|
422
433
|
});
|
|
423
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* Send password changed security alert
|
|
437
|
+
*
|
|
438
|
+
* @param to - Recipient email address
|
|
439
|
+
* @param context - Password change context
|
|
440
|
+
* @param variables - Additional template variables
|
|
441
|
+
*/
|
|
442
|
+
async sendPasswordChangedEmail(to, context = {}, variables = {}) {
|
|
443
|
+
if (!this.shouldSendEmail('passwordChanged'))
|
|
444
|
+
return;
|
|
445
|
+
const templateVariables = {
|
|
446
|
+
...this.globalVariables,
|
|
447
|
+
userName: to.split('@')[0],
|
|
448
|
+
userEmail: to,
|
|
449
|
+
changedBy: context.changedBy || 'user',
|
|
450
|
+
sessionsRevoked: context.sessionsRevoked,
|
|
451
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
452
|
+
...variables,
|
|
453
|
+
};
|
|
454
|
+
const email = await this.templateEngine.render(core_1.TemplateType.PASSWORD_CHANGED, templateVariables);
|
|
455
|
+
await this.sendMail({
|
|
456
|
+
to,
|
|
457
|
+
subject: email.subject,
|
|
458
|
+
html: email.html,
|
|
459
|
+
text: email.text,
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Send MFA device removed security alert
|
|
464
|
+
*
|
|
465
|
+
* @param to - Recipient email address
|
|
466
|
+
* @param context - Device removal context
|
|
467
|
+
* @param variables - Additional template variables
|
|
468
|
+
*/
|
|
469
|
+
async sendMFADeviceRemovedEmail(to, context = {}, variables = {}) {
|
|
470
|
+
if (!this.shouldSendEmail('mfaDeviceRemoved'))
|
|
471
|
+
return;
|
|
472
|
+
const templateVariables = {
|
|
473
|
+
...this.globalVariables,
|
|
474
|
+
userName: to.split('@')[0],
|
|
475
|
+
userEmail: to,
|
|
476
|
+
deviceType: context.deviceType || 'Unknown',
|
|
477
|
+
deviceName: context.deviceName || 'Unknown Device',
|
|
478
|
+
removedBy: context.removedBy || 'user',
|
|
479
|
+
reason: context.reason || 'User request',
|
|
480
|
+
remainingDeviceCount: context.remainingDeviceCount || 0,
|
|
481
|
+
timestamp: new Date().toISOString(),
|
|
482
|
+
...variables,
|
|
483
|
+
};
|
|
484
|
+
const email = await this.templateEngine.render(core_1.TemplateType.MFA_DEVICE_REMOVED, templateVariables);
|
|
485
|
+
await this.sendMail({
|
|
486
|
+
to,
|
|
487
|
+
subject: email.subject,
|
|
488
|
+
html: email.html,
|
|
489
|
+
text: email.text,
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Send adaptive MFA risk detection alert
|
|
494
|
+
*
|
|
495
|
+
* @param to - Recipient email address
|
|
496
|
+
* @param context - Risk detection context
|
|
497
|
+
* @param variables - Additional template variables
|
|
498
|
+
*/
|
|
499
|
+
async sendAdaptiveMFARiskAlertEmail(to, context = {}, variables = {}) {
|
|
500
|
+
if (!this.shouldSendEmail('adaptiveMfaRiskDetected'))
|
|
501
|
+
return;
|
|
502
|
+
const riskFactorsText = context.riskFactors && context.riskFactors.length > 0 ? context.riskFactors.join(', ') : undefined;
|
|
503
|
+
const templateVariables = {
|
|
504
|
+
...this.globalVariables,
|
|
505
|
+
userName: to.split('@')[0],
|
|
506
|
+
userEmail: to,
|
|
507
|
+
riskScore: context.riskScore || 0,
|
|
508
|
+
riskLevel: context.riskLevel || 'medium',
|
|
509
|
+
// Only set this variable when we actually have factors. Templates use {{#if riskFactors}}.
|
|
510
|
+
riskFactors: riskFactorsText,
|
|
511
|
+
action: context.action || 'require_mfa',
|
|
512
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
513
|
+
...variables,
|
|
514
|
+
};
|
|
515
|
+
const email = await this.templateEngine.render(core_1.TemplateType.ADAPTIVE_MFA_RISK_ALERT, templateVariables);
|
|
516
|
+
await this.sendMail({
|
|
517
|
+
to,
|
|
518
|
+
subject: email.subject,
|
|
519
|
+
html: email.html,
|
|
520
|
+
text: email.text,
|
|
521
|
+
});
|
|
522
|
+
}
|
|
523
|
+
/**
|
|
524
|
+
* Send account disabled notification
|
|
525
|
+
*
|
|
526
|
+
* @param to - Recipient email address
|
|
527
|
+
* @param context - Account disable context
|
|
528
|
+
* @param variables - Additional template variables
|
|
529
|
+
*/
|
|
530
|
+
async sendAccountDisabledEmail(to, context = {}, variables = {}) {
|
|
531
|
+
if (!this.shouldSendEmail('accountDisabled'))
|
|
532
|
+
return;
|
|
533
|
+
const templateVariables = {
|
|
534
|
+
...this.globalVariables,
|
|
535
|
+
userName: to.split('@')[0],
|
|
536
|
+
userEmail: to,
|
|
537
|
+
reason: context.reason || 'Administrative action',
|
|
538
|
+
performedBy: context.performedBy || 'Administrator',
|
|
539
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
540
|
+
...variables,
|
|
541
|
+
};
|
|
542
|
+
const email = await this.templateEngine.render(core_1.TemplateType.ACCOUNT_DISABLED, templateVariables);
|
|
543
|
+
await this.sendMail({
|
|
544
|
+
to,
|
|
545
|
+
subject: email.subject,
|
|
546
|
+
html: email.html,
|
|
547
|
+
text: email.text,
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Send account enabled notification
|
|
552
|
+
*
|
|
553
|
+
* @param to - Recipient email address
|
|
554
|
+
* @param context - Account enable context
|
|
555
|
+
* @param variables - Additional template variables
|
|
556
|
+
*/
|
|
557
|
+
async sendAccountEnabledEmail(to, context = {}, variables = {}) {
|
|
558
|
+
if (!this.shouldSendEmail('accountEnabled'))
|
|
559
|
+
return;
|
|
560
|
+
const templateVariables = {
|
|
561
|
+
...this.globalVariables,
|
|
562
|
+
userName: to.split('@')[0],
|
|
563
|
+
userEmail: to,
|
|
564
|
+
reason: context.reason || 'Administrative action',
|
|
565
|
+
performedBy: context.performedBy || 'Administrator',
|
|
566
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
567
|
+
...variables,
|
|
568
|
+
};
|
|
569
|
+
const email = await this.templateEngine.render(core_1.TemplateType.ACCOUNT_ENABLED, templateVariables);
|
|
570
|
+
await this.sendMail({
|
|
571
|
+
to,
|
|
572
|
+
subject: email.subject,
|
|
573
|
+
html: email.html,
|
|
574
|
+
text: email.text,
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Send email changed alert (to OLD email address)
|
|
579
|
+
*
|
|
580
|
+
* @param to - OLD email address
|
|
581
|
+
* @param context - Email change context
|
|
582
|
+
* @param variables - Additional template variables
|
|
583
|
+
*/
|
|
584
|
+
async sendEmailChangedAlertEmail(to, context = {}, variables = {}) {
|
|
585
|
+
if (!this.shouldSendEmail('emailChangedOld'))
|
|
586
|
+
return;
|
|
587
|
+
const templateVariables = {
|
|
588
|
+
...this.globalVariables,
|
|
589
|
+
userName: to.split('@')[0],
|
|
590
|
+
userEmail: to,
|
|
591
|
+
newEmail: context.newEmail || 'Unknown',
|
|
592
|
+
deactivatedMFADevices: context.deactivatedMFADevices || 0,
|
|
593
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
594
|
+
isOldEmail: true,
|
|
595
|
+
...variables,
|
|
596
|
+
};
|
|
597
|
+
const email = await this.templateEngine.render(core_1.TemplateType.EMAIL_CHANGED_OLD, templateVariables);
|
|
598
|
+
await this.sendMail({
|
|
599
|
+
to,
|
|
600
|
+
subject: email.subject,
|
|
601
|
+
html: email.html,
|
|
602
|
+
text: email.text,
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Send email changed confirmation (to NEW email address)
|
|
607
|
+
*
|
|
608
|
+
* @param to - NEW email address
|
|
609
|
+
* @param context - Email change context
|
|
610
|
+
* @param variables - Additional template variables
|
|
611
|
+
*/
|
|
612
|
+
async sendEmailChangedConfirmationEmail(to, context = {}, variables = {}) {
|
|
613
|
+
if (!this.shouldSendEmail('emailChangedNew'))
|
|
614
|
+
return;
|
|
615
|
+
const templateVariables = {
|
|
616
|
+
...this.globalVariables,
|
|
617
|
+
userName: to.split('@')[0],
|
|
618
|
+
userEmail: to,
|
|
619
|
+
oldEmail: context.oldEmail || 'Unknown',
|
|
620
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
621
|
+
isOldEmail: false,
|
|
622
|
+
...variables,
|
|
623
|
+
};
|
|
624
|
+
const email = await this.templateEngine.render(core_1.TemplateType.EMAIL_CHANGED_NEW, templateVariables);
|
|
625
|
+
await this.sendMail({
|
|
626
|
+
to,
|
|
627
|
+
subject: email.subject,
|
|
628
|
+
html: email.html,
|
|
629
|
+
text: email.text,
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* Send account locked notification
|
|
634
|
+
*
|
|
635
|
+
* @param to - Recipient email address
|
|
636
|
+
* @param context - Lockout context
|
|
637
|
+
* @param variables - Additional template variables
|
|
638
|
+
*/
|
|
639
|
+
async sendAccountLockedEmail(to, context = {}, variables = {}) {
|
|
640
|
+
if (!this.shouldSendEmail('accountLockout'))
|
|
641
|
+
return;
|
|
642
|
+
const templateVariables = {
|
|
643
|
+
...this.globalVariables,
|
|
644
|
+
userName: to.split('@')[0],
|
|
645
|
+
userEmail: to,
|
|
646
|
+
reason: context.reason || 'Multiple failed login attempts',
|
|
647
|
+
lockType: context.lockType || 'temporary',
|
|
648
|
+
lockDuration: context.lockDuration,
|
|
649
|
+
durationMinutes: context.lockDuration ? Math.round(context.lockDuration / 60) : undefined,
|
|
650
|
+
lockedUntil: context.lockedUntil?.toISOString(),
|
|
651
|
+
ipAddress: context.ipAddress,
|
|
652
|
+
failedAttempts: context.failedAttempts,
|
|
653
|
+
timestamp: new Date().toISOString(),
|
|
654
|
+
...variables,
|
|
655
|
+
};
|
|
656
|
+
const email = await this.templateEngine.render(core_1.TemplateType.ACCOUNT_LOCKOUT, templateVariables);
|
|
657
|
+
await this.sendMail({
|
|
658
|
+
to,
|
|
659
|
+
subject: email.subject,
|
|
660
|
+
html: email.html,
|
|
661
|
+
text: email.text,
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
/**
|
|
665
|
+
* Send sessions revoked security alert
|
|
666
|
+
*
|
|
667
|
+
* @param to - Recipient email address
|
|
668
|
+
* @param context - Session revocation context
|
|
669
|
+
* @param variables - Additional template variables
|
|
670
|
+
*/
|
|
671
|
+
async sendSessionsRevokedEmail(to, context = {}, variables = {}) {
|
|
672
|
+
if (!this.shouldSendEmail('sessionsRevoked'))
|
|
673
|
+
return;
|
|
674
|
+
const templateVariables = {
|
|
675
|
+
...this.globalVariables,
|
|
676
|
+
userName: to.split('@')[0],
|
|
677
|
+
userEmail: to,
|
|
678
|
+
revokedCount: context.revokedCount || 0,
|
|
679
|
+
reason: context.reason || 'Security action',
|
|
680
|
+
triggerEvent: context.triggerEvent,
|
|
681
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
682
|
+
...variables,
|
|
683
|
+
};
|
|
684
|
+
const email = await this.templateEngine.render(core_1.TemplateType.SESSIONS_REVOKED, templateVariables);
|
|
685
|
+
await this.sendMail({
|
|
686
|
+
to,
|
|
687
|
+
subject: email.subject,
|
|
688
|
+
html: email.html,
|
|
689
|
+
text: email.text,
|
|
690
|
+
});
|
|
691
|
+
}
|
|
692
|
+
/**
|
|
693
|
+
* Send MFA first enabled confirmation
|
|
694
|
+
*
|
|
695
|
+
* @param to - Recipient email address
|
|
696
|
+
* @param context - MFA enrollment context
|
|
697
|
+
* @param variables - Additional template variables
|
|
698
|
+
*/
|
|
699
|
+
async sendMFAFirstEnabledEmail(to, context = {}, variables = {}) {
|
|
700
|
+
if (!this.shouldSendEmail('mfaFirstEnabled'))
|
|
701
|
+
return;
|
|
702
|
+
const templateVariables = {
|
|
703
|
+
...this.globalVariables,
|
|
704
|
+
userName: to.split('@')[0],
|
|
705
|
+
userEmail: to,
|
|
706
|
+
firstMethod: context.firstMethod || 'TOTP',
|
|
707
|
+
deviceName: context.deviceName,
|
|
708
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
709
|
+
...variables,
|
|
710
|
+
};
|
|
711
|
+
const email = await this.templateEngine.render(core_1.TemplateType.MFA_ENABLED, templateVariables);
|
|
712
|
+
await this.sendMail({
|
|
713
|
+
to,
|
|
714
|
+
subject: email.subject,
|
|
715
|
+
html: email.html,
|
|
716
|
+
text: email.text,
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* Send MFA method added notification
|
|
721
|
+
*
|
|
722
|
+
* @param to - Recipient email address
|
|
723
|
+
* @param context - MFA method addition context
|
|
724
|
+
* @param variables - Additional template variables
|
|
725
|
+
*/
|
|
726
|
+
async sendMFAMethodAddedEmail(to, context = {}, variables = {}) {
|
|
727
|
+
if (!this.shouldSendEmail('mfaMethodAdded'))
|
|
728
|
+
return;
|
|
729
|
+
const templateVariables = {
|
|
730
|
+
...this.globalVariables,
|
|
731
|
+
userName: to.split('@')[0],
|
|
732
|
+
userEmail: to,
|
|
733
|
+
method: context.method || 'unknown',
|
|
734
|
+
enabledMethods: context.enabledMethods,
|
|
735
|
+
deviceName: context.deviceName,
|
|
736
|
+
timestamp: context.timestamp || new Date().toISOString(),
|
|
737
|
+
...variables,
|
|
738
|
+
};
|
|
739
|
+
const email = await this.templateEngine.render(core_1.TemplateType.MFA_METHOD_ADDED, templateVariables);
|
|
740
|
+
await this.sendMail({
|
|
741
|
+
to,
|
|
742
|
+
subject: email.subject,
|
|
743
|
+
html: email.html,
|
|
744
|
+
text: email.text,
|
|
745
|
+
});
|
|
746
|
+
}
|
|
424
747
|
/**
|
|
425
748
|
* Send email using Nodemailer
|
|
426
749
|
* @private
|
|
@@ -463,6 +786,35 @@ class NodemailerProvider {
|
|
|
463
786
|
throw error;
|
|
464
787
|
}
|
|
465
788
|
}
|
|
789
|
+
/**
|
|
790
|
+
* Check if email notification should be sent based on config
|
|
791
|
+
*
|
|
792
|
+
* Checks global enabled flag and per-notification suppression settings.
|
|
793
|
+
*
|
|
794
|
+
* @param notificationType - Type of notification (matches suppress config keys)
|
|
795
|
+
* @returns True if email should be sent, false if suppressed
|
|
796
|
+
* @private
|
|
797
|
+
*/
|
|
798
|
+
shouldSendEmail(notificationType) {
|
|
799
|
+
const notifications = this.config?.emailNotifications;
|
|
800
|
+
// Check global kill switch
|
|
801
|
+
if (notifications?.enabled === false) {
|
|
802
|
+
this.logger?.debug?.(`[EmailNotifications] Global kill switch: ${notificationType} email suppressed`);
|
|
803
|
+
return false;
|
|
804
|
+
}
|
|
805
|
+
// Check per-notification suppression (default to true = DISABLED for optional notifications)
|
|
806
|
+
const suppress = notifications?.suppress;
|
|
807
|
+
const isSuppressed = suppress?.[notificationType];
|
|
808
|
+
// For code emails (verification, passwordReset, adminPasswordReset), default is false (ENABLED)
|
|
809
|
+
// For optional notifications, default is true (DISABLED)
|
|
810
|
+
const defaultSuppressed = !['emailVerification', 'passwordReset', 'adminPasswordReset'].includes(notificationType);
|
|
811
|
+
const shouldSuppress = isSuppressed !== undefined ? isSuppressed : defaultSuppressed;
|
|
812
|
+
if (shouldSuppress) {
|
|
813
|
+
this.logger?.debug?.(`[EmailNotifications] ${notificationType} email suppressed by config`);
|
|
814
|
+
return false;
|
|
815
|
+
}
|
|
816
|
+
return true;
|
|
817
|
+
}
|
|
466
818
|
/**
|
|
467
819
|
* Close transporter connection
|
|
468
820
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodemailer-email.provider.js","sourceRoot":"","sources":["../src/nodemailer-email.provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodemailer-email.provider.js","sourceRoot":"","sources":["../src/nodemailer-email.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAoH;AACpH,uFAAkF;AAClF,uDAAyC;AAwJzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,MAAa,kBAAkB;IACrB,MAAM,CAAiB;IACd,WAAW,CAAc;IACzB,cAAc,CAA2B;IACzC,QAAQ,CAAkB;IAC1B,OAAO,CAAU;IAC1B,eAAe,GAAsB,EAAE,CAAC;IACxC,MAAM,CAA6C;IAE3D;;;OAGG;IACH,SAAS,CAAC,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,MAAiD;QACzD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,eAAe,GAAG,SAAS,IAAI,EAAE,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,YAAY,MAAgC;QAC1C,gCAAgC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,KAAK;YACzB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC5C,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,cAAc,CAAC;QACrB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,iCAAiC,EAAE;YACtD,aAAa;YACb,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI;SAC5B,CAAC,CAAC;QAEH,qCAAqC;QACrC,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,sCAAsC;YACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;YACpC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,kCAAkC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,oFAAoF;YACpF,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,SAA6B,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,iCAAiC,CAAC,CAAC;QAC1D,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,cAAc;YAChB,MAAM,CAAC,cAAuD,IAAI,IAAI,qDAAwB,EAAE,CAAC;QAEpG,eAAe;QACf,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QAEvC,yCAAyC;QACzC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,kCAAkC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,cAAc,CAAC,SAAkB;QACvC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAG,SAA0E,CAAC;QAChG,OAAO,KAAK,IAAI,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,gBAAgB,CAAC;IACxG,CAAC;IAED;;;;;;OAMG;IACK,qBAAqB,CAAC,SAAkB;QAC9C,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,WAAW,GAAG,SAAwB,CAAC;QAC7C,OAAO,OAAO,WAAW,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC;IAChG,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,yCAAyC,CAAC,CAAC;YAEhE,oEAAoE;YACpE,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAClD,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,6CAA6C,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,8DAA8D,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,2CAA2C,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,kBAAkB,YAAY,EAAE,CAAC,CAAC;YACvD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC1D,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC7D,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,+BAA+B;YAC/B,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAClD,qEAAqE;YACrE,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,qBAAqB,CACzB,EAAU,EACV,IAAY,EACZ,IAAa,EACb,gBAAwB,EAAE,EAC1B,YAA+B,EAAE;QAEjC,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,IAAI;YACJ,aAAa;YACb,GAAG,SAAS;SACb,CAAC;QAEF,gCAAgC;QAChC,IAAI,IAAI,EAAE,CAAC;YACT,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAE7F,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CAC1B,EAAU,EACV,MAAc,EACd,IAAY,EACZ,gBAAwB,EAAE,EAC1B,YAA+B,EAAE;QAEjC,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,IAAI;YACJ,aAAa;YACb,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAE/F,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,2BAA2B,CAC/B,EAAU,EACV,IAAY,EACZ,IAAa,EACb,gBAAwB,EAAE,EAC1B,YAA+B,EAAE;QAEjC,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,IAAI;YACJ,aAAa;YACb,GAAG,SAAS;SACb,CAAC;QAEF,0DAA0D;QAC1D,IAAI,IAAI,EAAE,CAAC;YACT,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;QAErG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,IAAY,EAAE,YAA+B,EAAE;QAChF,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,EAAE;YACb,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAExF,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,EAAU,EACV,MAAc,EACd,QAAgB,EAChB,YAA+B,EAAE;QAEjC,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,MAAM;YACN,eAAe,EAAE,QAAQ;YACzB,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAEhG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,EAAU,EACV,UAAmF,EACnF,YAA+B,EAAE;QAEjC,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU,CAAC,IAAI,IAAI,gBAAgB;YAC/C,UAAU,EAAE,UAAU,CAAC,IAAI,IAAI,SAAS;YACxC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,SAAS;YAC5C,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,SAAS;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAE3F,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,EAAU,EACV,UAII,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACtC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAC7B,EAAU,EACV,UAMI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC;YAAE,OAAO;QAEtD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;YAC3C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,gBAAgB;YAClD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,cAAc;YACxC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,CAAC;YACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;QAEnG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,6BAA6B,CACjC,EAAU,EACV,UAMI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC;YAAE,OAAO;QAE7D,MAAM,eAAe,GACnB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAErG,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;YACjC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ;YACxC,2FAA2F;YAC3F,WAAW,EAAE,eAAe;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;YACvC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;QAExG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,EAAU,EACV,UAII,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,uBAAuB;YACjD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe;YACnD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,EAAU,EACV,UAII,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEpD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,uBAAuB;YACjD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,eAAe;YACnD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAEhG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,0BAA0B,CAC9B,EAAU,EACV,UAII,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,CAAC;YACzD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,UAAU,EAAE,IAAI;YAChB,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAElG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iCAAiC,CACrC,EAAU,EACV,UAGI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,UAAU,EAAE,KAAK;YACjB,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAElG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,sBAAsB,CAC1B,EAAU,EACV,UAOI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEpD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,gCAAgC;YAC1D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,WAAW;YACzC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,eAAe,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACzF,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;YAC/C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAEhG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,EAAU,EACV,UAKI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;YACvC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,iBAAiB;YAC3C,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,EAAU,EACV,UAII,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAErD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,MAAM;YAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAE5F,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,uBAAuB,CAC3B,EAAU,EACV,UAKI,EAAE,EACN,YAA+B,EAAE;QAEjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAEpD,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,IAAI,CAAC,eAAe;YACvB,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1B,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;YACnC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACxD,GAAG,SAAS;SACb,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAClB,EAAE;YACF,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ,CAAC,WAA4B;QACjD,IAAI,CAAC;YACH,sBAAsB;YACtB,MAAM,OAAO,GAAoB;gBAC/B,GAAG,IAAI,CAAC,QAAQ;gBAChB,GAAG,WAAW;aACf,CAAC;YAEF,gCAAgC;YAChC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE;gBACrC,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YAEH,aAAa;YACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnD,6BAA6B;YAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,sBAAsB,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC1D,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,eAAe,CAAC,gBAAwB;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAEtD,2BAA2B;QAC3B,IAAI,aAAa,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,4CAA4C,gBAAgB,mBAAmB,CAAC,CAAC;YACtG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,6FAA6F;QAC7F,MAAM,QAAQ,GAAG,aAAa,EAAE,QAA2D,CAAC;QAC5F,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAElD,gGAAgG;QAChG,yDAAyD;QACzD,MAAM,iBAAiB,GAAG,CAAC,CAAC,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEnH,MAAM,cAAc,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAErF,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,wBAAwB,gBAAgB,6BAA6B,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,+BAA+B,CAAC,CAAC;IACtD,CAAC;CACF;AAn3BD,gDAm3BC"}
|