@explorins/pers-shared 2.1.146 → 2.1.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/cjs/shared-lib/dto/auth/index.d.ts +1 -0
  2. package/dist/cjs/shared-lib/dto/auth/index.d.ts.map +1 -1
  3. package/dist/cjs/shared-lib/dto/auth/index.js +1 -0
  4. package/dist/cjs/shared-lib/dto/auth/index.js.map +1 -1
  5. package/dist/cjs/shared-lib/dto/auth/magic-link.dto.d.ts +31 -0
  6. package/dist/cjs/shared-lib/dto/auth/magic-link.dto.d.ts.map +1 -0
  7. package/dist/cjs/shared-lib/dto/auth/magic-link.dto.js +112 -0
  8. package/dist/cjs/shared-lib/dto/auth/magic-link.dto.js.map +1 -0
  9. package/dist/cjs/shared-lib/dto/tenant/email-config.dto.d.ts +36 -0
  10. package/dist/cjs/shared-lib/dto/tenant/email-config.dto.d.ts.map +1 -0
  11. package/dist/cjs/shared-lib/dto/tenant/email-config.dto.js +144 -0
  12. package/dist/cjs/shared-lib/dto/tenant/email-config.dto.js.map +1 -0
  13. package/dist/cjs/shared-lib/dto/tenant/index.d.ts +1 -0
  14. package/dist/cjs/shared-lib/dto/tenant/index.d.ts.map +1 -1
  15. package/dist/cjs/shared-lib/dto/tenant/index.js +1 -0
  16. package/dist/cjs/shared-lib/dto/tenant/index.js.map +1 -1
  17. package/dist/cjs/shared-lib/dto/tenant/tenant.dto.d.ts +9 -0
  18. package/dist/cjs/shared-lib/dto/tenant/tenant.dto.d.ts.map +1 -1
  19. package/dist/cjs/shared-lib/dto/tenant/tenant.dto.js +23 -0
  20. package/dist/cjs/shared-lib/dto/tenant/tenant.dto.js.map +1 -1
  21. package/dist/cjs/shared-lib/dto/tenant/tenantUpdate.request.dto.d.ts +2 -0
  22. package/dist/cjs/shared-lib/dto/tenant/tenantUpdate.request.dto.d.ts.map +1 -1
  23. package/dist/cjs/shared-lib/dto/tenant/tenantUpdate.request.dto.js +12 -0
  24. package/dist/cjs/shared-lib/dto/tenant/tenantUpdate.request.dto.js.map +1 -1
  25. package/dist/cjs/shared-lib/enum/api-key-type.enum.d.ts +3 -1
  26. package/dist/cjs/shared-lib/enum/api-key-type.enum.d.ts.map +1 -1
  27. package/dist/cjs/shared-lib/enum/api-key-type.enum.js +2 -0
  28. package/dist/cjs/shared-lib/enum/api-key-type.enum.js.map +1 -1
  29. package/dist/cjs/shared-lib/enum/index.d.ts +1 -0
  30. package/dist/cjs/shared-lib/enum/index.d.ts.map +1 -1
  31. package/dist/cjs/shared-lib/enum/index.js +2 -0
  32. package/dist/cjs/shared-lib/enum/index.js.map +1 -1
  33. package/dist/cjs/shared-lib/enum/ott-auth-method.enum.d.ts +16 -0
  34. package/dist/cjs/shared-lib/enum/ott-auth-method.enum.d.ts.map +1 -0
  35. package/dist/cjs/shared-lib/enum/ott-auth-method.enum.js +18 -0
  36. package/dist/cjs/shared-lib/enum/ott-auth-method.enum.js.map +1 -0
  37. package/dist/cjs/shared-lib/errors/error-codes.d.ts +4 -0
  38. package/dist/cjs/shared-lib/errors/error-codes.d.ts.map +1 -1
  39. package/dist/cjs/shared-lib/errors/error-codes.js +6 -0
  40. package/dist/cjs/shared-lib/errors/error-codes.js.map +1 -1
  41. package/dist/cjs/shared-lib/interfaces/email-config.interface.d.ts +94 -0
  42. package/dist/cjs/shared-lib/interfaces/email-config.interface.d.ts.map +1 -0
  43. package/dist/cjs/shared-lib/interfaces/email-config.interface.js +14 -0
  44. package/dist/cjs/shared-lib/interfaces/email-config.interface.js.map +1 -0
  45. package/dist/cjs/shared-lib/interfaces/index.d.ts +1 -0
  46. package/dist/cjs/shared-lib/interfaces/index.d.ts.map +1 -1
  47. package/dist/cjs/shared-lib/interfaces/index.js +1 -0
  48. package/dist/cjs/shared-lib/interfaces/index.js.map +1 -1
  49. package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.d.ts +11 -1
  50. package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.d.ts.map +1 -1
  51. package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.js +5 -0
  52. package/dist/cjs/shared-lib/interfaces/jwt.payload.interface.js.map +1 -1
  53. package/dist/esm/shared-lib/dto/auth/index.d.ts +1 -0
  54. package/dist/esm/shared-lib/dto/auth/index.d.ts.map +1 -1
  55. package/dist/esm/shared-lib/dto/auth/index.js +1 -0
  56. package/dist/esm/shared-lib/dto/auth/index.js.map +1 -1
  57. package/dist/esm/shared-lib/dto/auth/magic-link.dto.d.ts +31 -0
  58. package/dist/esm/shared-lib/dto/auth/magic-link.dto.d.ts.map +1 -0
  59. package/dist/esm/shared-lib/dto/auth/magic-link.dto.js +97 -0
  60. package/dist/esm/shared-lib/dto/auth/magic-link.dto.js.map +1 -0
  61. package/dist/esm/shared-lib/dto/tenant/email-config.dto.d.ts +36 -0
  62. package/dist/esm/shared-lib/dto/tenant/email-config.dto.d.ts.map +1 -0
  63. package/dist/esm/shared-lib/dto/tenant/email-config.dto.js +121 -0
  64. package/dist/esm/shared-lib/dto/tenant/email-config.dto.js.map +1 -0
  65. package/dist/esm/shared-lib/dto/tenant/index.d.ts +1 -0
  66. package/dist/esm/shared-lib/dto/tenant/index.d.ts.map +1 -1
  67. package/dist/esm/shared-lib/dto/tenant/index.js +1 -0
  68. package/dist/esm/shared-lib/dto/tenant/index.js.map +1 -1
  69. package/dist/esm/shared-lib/dto/tenant/tenant.dto.d.ts +9 -0
  70. package/dist/esm/shared-lib/dto/tenant/tenant.dto.d.ts.map +1 -1
  71. package/dist/esm/shared-lib/dto/tenant/tenant.dto.js +15 -0
  72. package/dist/esm/shared-lib/dto/tenant/tenant.dto.js.map +1 -1
  73. package/dist/esm/shared-lib/dto/tenant/tenantUpdate.request.dto.d.ts +2 -0
  74. package/dist/esm/shared-lib/dto/tenant/tenantUpdate.request.dto.d.ts.map +1 -1
  75. package/dist/esm/shared-lib/dto/tenant/tenantUpdate.request.dto.js +11 -0
  76. package/dist/esm/shared-lib/dto/tenant/tenantUpdate.request.dto.js.map +1 -1
  77. package/dist/esm/shared-lib/enum/api-key-type.enum.d.ts +3 -1
  78. package/dist/esm/shared-lib/enum/api-key-type.enum.d.ts.map +1 -1
  79. package/dist/esm/shared-lib/enum/api-key-type.enum.js +2 -0
  80. package/dist/esm/shared-lib/enum/api-key-type.enum.js.map +1 -1
  81. package/dist/esm/shared-lib/enum/index.d.ts +1 -0
  82. package/dist/esm/shared-lib/enum/index.d.ts.map +1 -1
  83. package/dist/esm/shared-lib/enum/index.js +2 -0
  84. package/dist/esm/shared-lib/enum/index.js.map +1 -1
  85. package/dist/esm/shared-lib/enum/ott-auth-method.enum.d.ts +16 -0
  86. package/dist/esm/shared-lib/enum/ott-auth-method.enum.d.ts.map +1 -0
  87. package/dist/esm/shared-lib/enum/ott-auth-method.enum.js +15 -0
  88. package/dist/esm/shared-lib/enum/ott-auth-method.enum.js.map +1 -0
  89. package/dist/esm/shared-lib/errors/error-codes.d.ts +4 -0
  90. package/dist/esm/shared-lib/errors/error-codes.d.ts.map +1 -1
  91. package/dist/esm/shared-lib/errors/error-codes.js +6 -0
  92. package/dist/esm/shared-lib/errors/error-codes.js.map +1 -1
  93. package/dist/esm/shared-lib/interfaces/email-config.interface.d.ts +94 -0
  94. package/dist/esm/shared-lib/interfaces/email-config.interface.d.ts.map +1 -0
  95. package/dist/esm/shared-lib/interfaces/email-config.interface.js +11 -0
  96. package/dist/esm/shared-lib/interfaces/email-config.interface.js.map +1 -0
  97. package/dist/esm/shared-lib/interfaces/index.d.ts +1 -0
  98. package/dist/esm/shared-lib/interfaces/index.d.ts.map +1 -1
  99. package/dist/esm/shared-lib/interfaces/index.js +1 -0
  100. package/dist/esm/shared-lib/interfaces/index.js.map +1 -1
  101. package/dist/esm/shared-lib/interfaces/jwt.payload.interface.d.ts +11 -1
  102. package/dist/esm/shared-lib/interfaces/jwt.payload.interface.d.ts.map +1 -1
  103. package/dist/esm/shared-lib/interfaces/jwt.payload.interface.js +4 -0
  104. package/dist/esm/shared-lib/interfaces/jwt.payload.interface.js.map +1 -1
  105. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ /**
2
+ * One-Time Token Authentication Methods
3
+ *
4
+ * Defines the passwordless authentication methods supported by OTT flow.
5
+ * Used in magic link, SMS verification, and email code authentication.
6
+ */
7
+ export declare const OttAuthMethod: {
8
+ /** Magic link sent via email */
9
+ readonly MAGIC_LINK: "magic-link";
10
+ /** Verification code sent via SMS */
11
+ readonly SMS: "sms";
12
+ /** Verification code sent via email */
13
+ readonly EMAIL_CODE: "email-code";
14
+ };
15
+ export type OttAuthMethod = typeof OttAuthMethod[keyof typeof OttAuthMethod];
16
+ //# sourceMappingURL=ott-auth-method.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ott-auth-method.enum.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/enum/ott-auth-method.enum.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa;IACtB,gCAAgC;;IAEhC,qCAAqC;;IAErC,uCAAuC;;CAEjC,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OttAuthMethod = void 0;
4
+ /**
5
+ * One-Time Token Authentication Methods
6
+ *
7
+ * Defines the passwordless authentication methods supported by OTT flow.
8
+ * Used in magic link, SMS verification, and email code authentication.
9
+ */
10
+ exports.OttAuthMethod = {
11
+ /** Magic link sent via email */
12
+ MAGIC_LINK: 'magic-link',
13
+ /** Verification code sent via SMS */
14
+ SMS: 'sms',
15
+ /** Verification code sent via email */
16
+ EMAIL_CODE: 'email-code',
17
+ };
18
+ //# sourceMappingURL=ott-auth-method.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ott-auth-method.enum.js","sourceRoot":"","sources":["../../../../src/shared-lib/enum/ott-auth-method.enum.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,aAAa,GAAG;IACzB,gCAAgC;IAChC,UAAU,EAAE,YAAY;IACxB,qCAAqC;IACrC,GAAG,EAAE,KAAK;IACV,uCAAuC;IACvC,UAAU,EAAE,YAAY;CAClB,CAAC"}
@@ -79,6 +79,10 @@ export declare const CommonErrorCodes: {
79
79
  readonly FIREBASE_AUTH_ERROR: "FIREBASE_AUTH_ERROR";
80
80
  readonly MULTIPLE_CONTEXT_SELECTION_REQUIRED: "MULTIPLE_CONTEXT_SELECTION_REQUIRED";
81
81
  readonly ADMIN_TENANT_REQUIRED: "ADMIN_TENANT_REQUIRED";
82
+ readonly MAGIC_LINK_EMAIL_SEND_FAILED: "MAGIC_LINK_EMAIL_SEND_FAILED";
83
+ readonly MAGIC_LINK_EMAIL_MISMATCH: "MAGIC_LINK_EMAIL_MISMATCH";
84
+ readonly MAGIC_LINK_VERIFICATION_FAILED: "MAGIC_LINK_VERIFICATION_FAILED";
85
+ readonly RATE_LIMITED: "RATE_LIMITED";
82
86
  readonly INTERNAL_ERROR: "INTERNAL_ERROR";
83
87
  readonly VALIDATION_ERROR: "VALIDATION_ERROR";
84
88
  readonly BUSINESS_RULE_VIOLATION: "BUSINESS_RULE_VIOLATION";
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HnB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkInB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
@@ -98,6 +98,12 @@ exports.CommonErrorCodes = {
98
98
  FIREBASE_AUTH_ERROR: 'FIREBASE_AUTH_ERROR',
99
99
  MULTIPLE_CONTEXT_SELECTION_REQUIRED: 'MULTIPLE_CONTEXT_SELECTION_REQUIRED',
100
100
  ADMIN_TENANT_REQUIRED: 'ADMIN_TENANT_REQUIRED',
101
+ // Magic link errors
102
+ MAGIC_LINK_EMAIL_SEND_FAILED: 'MAGIC_LINK_EMAIL_SEND_FAILED',
103
+ MAGIC_LINK_EMAIL_MISMATCH: 'MAGIC_LINK_EMAIL_MISMATCH',
104
+ MAGIC_LINK_VERIFICATION_FAILED: 'MAGIC_LINK_VERIFICATION_FAILED',
105
+ // Rate limiting (generic)
106
+ RATE_LIMITED: 'RATE_LIMITED',
101
107
  // Generic fallbacks
102
108
  INTERNAL_ERROR: 'INTERNAL_ERROR',
103
109
  VALIDATION_ERROR: 'VALIDATION_ERROR',
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../../src/shared-lib/errors/error-codes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Email Configuration Interface
3
+ *
4
+ * Unified email configuration for tenants.
5
+ * Groups all email-related settings into a single structure.
6
+ */
7
+ /**
8
+ * Supported email provider types
9
+ *
10
+ * - sendgrid: SendGrid API (recommended for high volume)
11
+ * - mailjet: Mailjet API (EU-based, GDPR compliant)
12
+ *
13
+ * To add a new provider:
14
+ * 1. Add to this type
15
+ * 2. Implement EmailProviderInterface in email/providers/
16
+ * 3. Register in EmailProviderFactory
17
+ */
18
+ export type EmailProviderType = 'sendgrid' | 'mailjet';
19
+ /**
20
+ * Email provider type values as const array (for validation)
21
+ */
22
+ export declare const EMAIL_PROVIDER_TYPES: EmailProviderType[];
23
+ /**
24
+ * Email template configuration for a specific email type
25
+ */
26
+ export interface EmailTemplateConfig {
27
+ /** Provider-specific template ID (e.g., SendGrid dynamic template ID) */
28
+ templateId: string;
29
+ /** Optional subject - if not provided, template's default subject is used */
30
+ subject?: string;
31
+ /**
32
+ * Maps internal variable names to provider template variable names.
33
+ * Example: { 'magicLinkUrl': 'link_url', 'userName': 'first_name' }
34
+ */
35
+ variableMapping?: Record<string, string>;
36
+ }
37
+ /**
38
+ * Email templates configuration - keyed by email type
39
+ */
40
+ export interface EmailTemplatesConfig {
41
+ /** Magic link / passwordless login emails */
42
+ magicLink?: EmailTemplateConfig;
43
+ /** Welcome emails for new users */
44
+ welcome?: EmailTemplateConfig;
45
+ /** Password reset emails */
46
+ /** Email verification emails */
47
+ /** Transaction confirmation emails */
48
+ transactionConfirmation?: EmailTemplateConfig;
49
+ /** Allow custom email types */
50
+ [key: string]: EmailTemplateConfig | undefined;
51
+ }
52
+ /**
53
+ * Unified email configuration for a tenant
54
+ *
55
+ * Contains all email-related settings:
56
+ * - Provider selection (sendgrid, mailjet)
57
+ * - API credentials (encrypted reference)
58
+ * - Sender information
59
+ * - Template configurations per email type
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const emailConfig: EmailConfig = {
64
+ * provider: 'sendgrid',
65
+ * apiKeyRef: 'encrypted-ref-123',
66
+ * fromEmail: 'noreply@tenant.com',
67
+ * fromName: 'Tenant Name',
68
+ * templates: {
69
+ * magicLink: {
70
+ * templateId: 'd-abc123',
71
+ * subject: 'Your login link',
72
+ * variableMapping: { magicLinkUrl: 'link_url' }
73
+ * }
74
+ * }
75
+ * };
76
+ * ```
77
+ */
78
+ export interface EmailConfig {
79
+ /** Email provider - see EmailProviderType for supported providers */
80
+ provider?: EmailProviderType;
81
+ /** Encrypted reference ID for API key - stores ID from encrypted_data table */
82
+ apiKeyRef?: string;
83
+ /** Sender email address (must be verified with provider) */
84
+ fromEmail?: string;
85
+ /** Sender display name */
86
+ fromName?: string;
87
+ /** Template configurations keyed by email type */
88
+ templates?: EmailTemplatesConfig;
89
+ }
90
+ /**
91
+ * Email type identifiers for template lookup
92
+ */
93
+ export type EmailType = 'magicLink' | 'welcome' | 'passwordReset' | 'emailVerification' | 'transactionConfirmation' | string;
94
+ //# sourceMappingURL=email-config.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-config.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/email-config.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,EAA4B,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,6CAA6C;IAC7C,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,mCAAmC;IACnC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,4BAA4B;IAE5B,gCAAgC;IAEhC,sCAAsC;IACtC,uBAAuB,CAAC,EAAE,mBAAmB,CAAC;IAC9C,+BAA+B;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,WAAW;IACxB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,eAAe,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Email Configuration Interface
4
+ *
5
+ * Unified email configuration for tenants.
6
+ * Groups all email-related settings into a single structure.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EMAIL_PROVIDER_TYPES = void 0;
10
+ /**
11
+ * Email provider type values as const array (for validation)
12
+ */
13
+ exports.EMAIL_PROVIDER_TYPES = ['sendgrid', 'mailjet'];
14
+ //# sourceMappingURL=email-config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-config.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/email-config.interface.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAeH;;GAEG;AACU,QAAA,oBAAoB,GAAwB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC"}
@@ -23,4 +23,5 @@ export * from './dynamic-context.interface';
23
23
  export * from './trigger-source-metadata.interface';
24
24
  export * from './ws-relay.types';
25
25
  export * from './external-token-issuer.interface';
26
+ export * from './email-config.interface';
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AAEjD,cAAc,yBAAyB,CAAC;AAExC,cAAc,4CAA4C,CAAC;AAE3D,cAAc,YAAY,CAAC;AAE3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AAEpD,cAAc,kBAAkB,CAAC;AAEjC,cAAc,mCAAmC,CAAC;AAElD,cAAc,0BAA0B,CAAC"}
@@ -40,4 +40,5 @@ __exportStar(require("./dynamic-context.interface"), exports);
40
40
  __exportStar(require("./trigger-source-metadata.interface"), exports);
41
41
  __exportStar(require("./ws-relay.types"), exports);
42
42
  __exportStar(require("./external-token-issuer.interface"), exports);
43
+ __exportStar(require("./email-config.interface"), exports);
43
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,sEAAoD;AAEpD,mDAAiC;AAEjC,oEAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,mEAAiD;AACjD,uEAAqD;AACrD,iEAA+C;AAC/C,iEAA+C;AAC/C,0DAAwC;AACxC,+DAA6C;AAC7C,2EAAyD;AACzD,iEAA+C;AAC/C,qDAAmC;AACnC,gEAA8C;AAC9C,kEAAgD;AAChD,sEAAoD;AACpD,8DAA4C;AAC5C,kEAAgD;AAChD,4EAA0D;AAC1D,mEAAiD;AAEjD,0DAAwC;AAExC,6EAA2D;AAE3D,6CAA2B;AAE3B,+DAA6C;AAC7C,qEAAmD;AACnD,8DAA4C;AAC5C,sEAAoD;AAEpD,mDAAiC;AAEjC,oEAAkD;AAElD,2DAAyC"}
@@ -1,6 +1,7 @@
1
1
  import { AccountOwnerType } from "../enum/owner-type.enum";
2
2
  import { IntegrationApiKeyType, ApiKeyType, AuthApiKeyType, BlockchainApiKeyType } from "../enum/api-key-type.enum";
3
3
  import { MembershipRole } from "../enum/membership-role.enum";
4
+ import { OttAuthMethod } from "../enum/ott-auth-method.enum";
4
5
  import { MinimalWallet } from "./wallet.interface";
5
6
  import type { DecodedIdToken } from 'firebase-admin/auth';
6
7
  /**
@@ -94,11 +95,20 @@ export interface WebhookJWTPayload extends BasePersJWTPayload {
94
95
  executionId: string;
95
96
  callbackUrl: string;
96
97
  }
97
- export type PersJWTPayload = AuthJWTPayload | ActionableJWTPayload | BlockchainJWTPayload | WebhookJWTPayload;
98
+ export interface OttJWTPayload extends BasePersJWTPayload {
99
+ sub: string;
100
+ type: ApiKeyType.ONE_TIME_TOKEN;
101
+ tenantId: string;
102
+ method: OttAuthMethod;
103
+ jti: string;
104
+ accountType?: AccountOwnerType;
105
+ }
106
+ export type PersJWTPayload = AuthJWTPayload | ActionableJWTPayload | BlockchainJWTPayload | WebhookJWTPayload | OttJWTPayload;
98
107
  export declare function isAuthPayload(payload: PersJWTPayload): payload is AuthJWTPayload;
99
108
  export declare function isActionablePayload(payload: PersJWTPayload): payload is ActionableJWTPayload;
100
109
  export declare function isBlockchainPayload(payload: PersJWTPayload): payload is BlockchainJWTPayload;
101
110
  export declare function isWebhookPayload(payload: PersJWTPayload): payload is WebhookJWTPayload;
111
+ export declare function isOttPayload(payload: PersJWTPayload): payload is OttJWTPayload;
102
112
  export declare function isPersJWTPayload(payload: any): payload is PersJWTPayload;
103
113
  export {};
104
114
  //# sourceMappingURL=jwt.payload.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.payload.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/jwt.payload.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,cAAc,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAE5G,UAAU,iBAAkB,SAAQ,cAAc;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAClB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IAEpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,UAAU,kBAAmB,SAAQ,cAAc;IAE/C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,cAAe,SAAQ,kBAAkB;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IAIxB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAK1B,IAAI,CAAC,EAAE,cAAc,CAAC;IAOtB,GAAG,CAAC,EAAE,MAAM,CAAC;IAGb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,GAAG,CAAC,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL;AAGD,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAA;IAEvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAGD,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAG/B,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACvB;AAOD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAO9G,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,cAAc,CAEhF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,oBAAoB,CAE5F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,oBAAoB,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,IAAI,iBAAiB,CAEtF;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,cAAc,CAExE"}
1
+ {"version":3,"file":"jwt.payload.interface.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/jwt.payload.interface.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ exports.isAuthPayload = isAuthPayload;
4
4
  exports.isActionablePayload = isActionablePayload;
5
5
  exports.isBlockchainPayload = isBlockchainPayload;
6
6
  exports.isWebhookPayload = isWebhookPayload;
7
+ exports.isOttPayload = isOttPayload;
7
8
  exports.isPersJWTPayload = isPersJWTPayload;
9
+ const api_key_type_enum_1 = require("../enum/api-key-type.enum");
8
10
  // ===========================================
9
11
  // TYPE GUARDS & UTILITIES
10
12
  // ===========================================
@@ -21,6 +23,9 @@ function isBlockchainPayload(payload) {
21
23
  function isWebhookPayload(payload) {
22
24
  return 'webhookId' in payload && 'targetUrl' in payload;
23
25
  }
26
+ function isOttPayload(payload) {
27
+ return 'type' in payload && payload.type === api_key_type_enum_1.ApiKeyType.ONE_TIME_TOKEN;
28
+ }
24
29
  // Helper to identify PERS JWT payloads
25
30
  function isPersJWTPayload(payload) {
26
31
  return 'type' in payload && typeof payload.type === 'string';
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.payload.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/jwt.payload.interface.ts"],"names":[],"mappings":";;AAoJA,sCAEC;AAED,kDAEC;AAED,kDAEC;AAED,4CAEC;AAGD,4CAEC;AAxBD,8CAA8C;AAC9C,0BAA0B;AAC1B,8CAA8C;AAE9C,uBAAuB;AACvB,SAAgB,aAAa,CAAC,OAAuB;IACjD,OAAO,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAuB;IACvD,OAAO,eAAe,IAAI,OAAO,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAuB;IACvD,OAAO,aAAa,IAAI,OAAO,CAAC;AACpC,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAuB;IACpD,OAAO,WAAW,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC;AAC5D,CAAC;AAED,uCAAuC;AACvC,SAAgB,gBAAgB,CAAC,OAAY;IACzC,OAAO,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjE,CAAC"}
1
+ {"version":3,"file":"jwt.payload.interface.js","sourceRoot":"","sources":["../../../../src/shared-lib/interfaces/jwt.payload.interface.ts"],"names":[],"mappings":";;AAqKA,sCAEC;AAED,kDAEC;AAED,kDAEC;AAED,4CAEC;AAED,oCAEC;AAGD,4CAEC;AA3LD,iEAAoH;AA+JpH,8CAA8C;AAC9C,0BAA0B;AAC1B,8CAA8C;AAE9C,uBAAuB;AACvB,SAAgB,aAAa,CAAC,OAAuB;IACjD,OAAO,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAuB;IACvD,OAAO,eAAe,IAAI,OAAO,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAuB;IACvD,OAAO,aAAa,IAAI,OAAO,CAAC;AACpC,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAuB;IACpD,OAAO,WAAW,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC;AAC5D,CAAC;AAED,SAAgB,YAAY,CAAC,OAAuB;IAChD,OAAO,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,8BAAU,CAAC,cAAc,CAAC;AAC3E,CAAC;AAED,uCAAuC;AACvC,SAAgB,gBAAgB,CAAC,OAAY;IACzC,OAAO,MAAM,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;AACjE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './auth-token-verification.dto';
2
2
  export * from './auth.dto';
3
+ export * from './magic-link.dto';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/index.ts"],"names":[],"mappings":"AAEA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './auth-token-verification.dto.js';
2
2
  export * from './auth.dto.js';
3
+ export * from './magic-link.dto.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/index.ts"],"names":[],"mappings":"AAEA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { CommonErrorCode } from '../../errors/error-codes';
2
+ /**
3
+ * Magic link specific error codes for API documentation
4
+ */
5
+ export declare const MagicLinkErrorCodes: readonly ["MAGIC_LINK_EMAIL_SEND_FAILED", "MAGIC_LINK_EMAIL_MISMATCH", "MAGIC_LINK_VERIFICATION_FAILED", "INVALID_TOKEN", "TOKEN_EXPIRED", "INTERNAL_ERROR"];
6
+ /**
7
+ * Request DTO for sending a magic link
8
+ *
9
+ * Endpoint: POST /auth/magic-link/send
10
+ */
11
+ export declare class SendMagicLinkRequestDTO {
12
+ email: string;
13
+ redirectUrl?: string;
14
+ language?: string;
15
+ params?: Record<string, string>;
16
+ }
17
+ /**
18
+ * Response DTO for sending a magic link
19
+ */
20
+ export declare class SendMagicLinkResponseDTO {
21
+ success: boolean;
22
+ message?: string;
23
+ errorCode?: CommonErrorCode;
24
+ }
25
+ /**
26
+ * Response DTO for verifying a magic link (via /auth/token with OTT)
27
+ *
28
+ * Uses SessionAuthContextResponseDTO - throws exceptions on failure
29
+ * @see SessionAuthContextResponseDTO
30
+ */
31
+ //# sourceMappingURL=magic-link.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-link.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/magic-link.dto.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE;;GAEG;AACH,eAAO,MAAM,mBAAmB,8JAOtB,CAAC;AAEX;;;;GAIG;AACH,qBAAa,uBAAuB;IAMhC,KAAK,EAAG,MAAM,CAAC;IAQf,WAAW,CAAC,EAAE,MAAM,CAAC;IAUrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAOlB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,wBAAwB;IAKjC,OAAO,EAAG,OAAO,CAAC;IAMlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,SAAS,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;GAKG"}
@@ -0,0 +1,97 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
8
+ import { IsEmail, IsString, MaxLength } from 'class-validator';
9
+ import { CommonErrorCodes } from '../../errors/error-codes.js';
10
+ import { OptionalStrip } from '../../decorators/index.js';
11
+ /**
12
+ * Magic link specific error codes for API documentation
13
+ */
14
+ export const MagicLinkErrorCodes = [
15
+ CommonErrorCodes.MAGIC_LINK_EMAIL_SEND_FAILED,
16
+ CommonErrorCodes.MAGIC_LINK_EMAIL_MISMATCH,
17
+ CommonErrorCodes.MAGIC_LINK_VERIFICATION_FAILED,
18
+ CommonErrorCodes.INVALID_TOKEN,
19
+ CommonErrorCodes.TOKEN_EXPIRED,
20
+ CommonErrorCodes.INTERNAL_ERROR,
21
+ ];
22
+ /**
23
+ * Request DTO for sending a magic link
24
+ *
25
+ * Endpoint: POST /auth/magic-link/send
26
+ */
27
+ export class SendMagicLinkRequestDTO {
28
+ email;
29
+ redirectUrl;
30
+ language;
31
+ params;
32
+ }
33
+ __decorate([
34
+ ApiProperty({
35
+ description: 'User email address to send the magic link to',
36
+ example: 'user@example.com',
37
+ }),
38
+ IsEmail()
39
+ ], SendMagicLinkRequestDTO.prototype, "email", void 0);
40
+ __decorate([
41
+ ApiPropertyOptional({
42
+ description: 'URL to redirect to after successful authentication',
43
+ example: 'https://app.example.com/dashboard',
44
+ }),
45
+ OptionalStrip(),
46
+ IsString()
47
+ ], SendMagicLinkRequestDTO.prototype, "redirectUrl", void 0);
48
+ __decorate([
49
+ ApiPropertyOptional({
50
+ description: 'Language code for the email template',
51
+ example: 'en',
52
+ default: 'en',
53
+ }),
54
+ OptionalStrip(),
55
+ IsString(),
56
+ MaxLength(5)
57
+ ], SendMagicLinkRequestDTO.prototype, "language", void 0);
58
+ __decorate([
59
+ ApiPropertyOptional({
60
+ description: 'Additional query parameters to include in the magic link URL',
61
+ example: { returnPath: '/dashboard', campaign: 'signup' },
62
+ }),
63
+ OptionalStrip()
64
+ ], SendMagicLinkRequestDTO.prototype, "params", void 0);
65
+ /**
66
+ * Response DTO for sending a magic link
67
+ */
68
+ export class SendMagicLinkResponseDTO {
69
+ success;
70
+ message;
71
+ errorCode;
72
+ }
73
+ __decorate([
74
+ ApiProperty({
75
+ description: 'Whether the magic link was sent successfully',
76
+ example: true,
77
+ })
78
+ ], SendMagicLinkResponseDTO.prototype, "success", void 0);
79
+ __decorate([
80
+ ApiPropertyOptional({
81
+ description: 'Message describing the result',
82
+ example: 'Magic link sent successfully',
83
+ })
84
+ ], SendMagicLinkResponseDTO.prototype, "message", void 0);
85
+ __decorate([
86
+ ApiPropertyOptional({
87
+ description: 'Error code if the request failed',
88
+ enum: MagicLinkErrorCodes,
89
+ })
90
+ ], SendMagicLinkResponseDTO.prototype, "errorCode", void 0);
91
+ /**
92
+ * Response DTO for verifying a magic link (via /auth/token with OTT)
93
+ *
94
+ * Uses SessionAuthContextResponseDTO - throws exceptions on failure
95
+ * @see SessionAuthContextResponseDTO
96
+ */
97
+ //# sourceMappingURL=magic-link.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-link.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/auth/magic-link.dto.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,gBAAgB,CAAC,4BAA4B;IAC7C,gBAAgB,CAAC,yBAAyB;IAC1C,gBAAgB,CAAC,8BAA8B;IAC/C,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,aAAa;IAC9B,gBAAgB,CAAC,cAAc;CACzB,CAAC;AAEX;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAMhC,KAAK,CAAU;IAQf,WAAW,CAAU;IAUrB,QAAQ,CAAU;IAOlB,MAAM,CAA0B;CACnC;AA1BG;IALC,WAAW,CAAC;QACT,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,kBAAkB;KAC9B,CAAC;IACD,OAAO,EAAE;sDACK;AAQf;IANC,mBAAmB,CAAC;QACjB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,mCAAmC;KAC/C,CAAC;IACD,aAAa,EAAE;IACf,QAAQ,EAAE;4DACU;AAUrB;IARC,mBAAmB,CAAC;QACjB,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;KAChB,CAAC;IACD,aAAa,EAAE;IACf,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;yDACK;AAOlB;IALC,mBAAmB,CAAC;QACjB,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE;KAC5D,CAAC;IACD,aAAa,EAAE;uDACgB;AAGpC;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAKjC,OAAO,CAAW;IAMlB,OAAO,CAAU;IAMjB,SAAS,CAAmB;CAC/B;AAbG;IAJC,WAAW,CAAC;QACT,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,IAAI;KAChB,CAAC;yDACgB;AAMlB;IAJC,mBAAmB,CAAC;QACjB,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,8BAA8B;KAC1C,CAAC;yDACe;AAMjB;IAJC,mBAAmB,CAAC;QACjB,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,mBAAmB;KAC5B,CAAC;2DAC0B;AAGhC;;;;;GAKG"}
@@ -0,0 +1,36 @@
1
+ import { EmailConfig, EmailTemplateConfig, EmailTemplatesConfig } from "../../interfaces/email-config.interface";
2
+ /**
3
+ * DTO for email template configuration
4
+ */
5
+ export declare class EmailTemplateConfigDTO implements EmailTemplateConfig {
6
+ templateId: string;
7
+ subject?: string;
8
+ variableMapping?: Record<string, string>;
9
+ }
10
+ /**
11
+ * DTO for email templates configuration
12
+ */
13
+ export declare class EmailTemplatesConfigDTO implements EmailTemplatesConfig {
14
+ magicLink?: EmailTemplateConfigDTO;
15
+ welcome?: EmailTemplateConfigDTO;
16
+ passwordReset?: EmailTemplateConfigDTO;
17
+ emailVerification?: EmailTemplateConfigDTO;
18
+ transactionConfirmation?: EmailTemplateConfigDTO;
19
+ [key: string]: EmailTemplateConfigDTO | undefined;
20
+ }
21
+ /**
22
+ * DTO for unified email configuration
23
+ */
24
+ export declare class EmailConfigDTO implements Omit<EmailConfig, 'apiKeyRef'> {
25
+ provider?: 'sendgrid' | 'mailjet';
26
+ fromEmail?: string;
27
+ fromName?: string;
28
+ templates?: EmailTemplatesConfigDTO;
29
+ }
30
+ /**
31
+ * Request DTO for email configuration updates (includes API key)
32
+ */
33
+ export declare class EmailConfigRequestDTO extends EmailConfigDTO {
34
+ apiKey?: string;
35
+ }
36
+ //# sourceMappingURL=email-config.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-config.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/email-config.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAEjH;;GAEG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAK9D,UAAU,EAAE,MAAM,CAAM;IAMxB,OAAO,CAAC,EAAE,MAAM,CAAC;IAOjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,qBAAa,uBAAwB,YAAW,oBAAoB;IAKhE,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAMnC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAMjC,aAAa,CAAC,EAAE,sBAAsB,CAAC;IAMvC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAM3C,uBAAuB,CAAC,EAAE,sBAAsB,CAAC;IAGjD,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAC;CACrD;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAMjE,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAMlC,SAAS,CAAC,EAAE,MAAM,CAAC;IAMnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,cAAc;IAKrD,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,121 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { ApiProperty, ApiPropertyOptional } from "@nestjs/swagger";
8
+ /**
9
+ * DTO for email template configuration
10
+ */
11
+ export class EmailTemplateConfigDTO {
12
+ templateId = '';
13
+ subject;
14
+ variableMapping;
15
+ }
16
+ __decorate([
17
+ ApiProperty({
18
+ description: 'Provider-specific template ID (e.g., SendGrid dynamic template ID)',
19
+ example: 'd-abc123def456'
20
+ })
21
+ ], EmailTemplateConfigDTO.prototype, "templateId", void 0);
22
+ __decorate([
23
+ ApiPropertyOptional({
24
+ description: 'Optional subject - if not provided, template\'s default subject is used',
25
+ example: 'Your login link'
26
+ })
27
+ ], EmailTemplateConfigDTO.prototype, "subject", void 0);
28
+ __decorate([
29
+ ApiPropertyOptional({
30
+ description: 'Maps internal variable names to provider template variable names',
31
+ example: { magicLinkUrl: 'link_url', userName: 'first_name' },
32
+ type: Object
33
+ })
34
+ ], EmailTemplateConfigDTO.prototype, "variableMapping", void 0);
35
+ /**
36
+ * DTO for email templates configuration
37
+ */
38
+ export class EmailTemplatesConfigDTO {
39
+ magicLink;
40
+ welcome;
41
+ passwordReset;
42
+ emailVerification;
43
+ transactionConfirmation;
44
+ }
45
+ __decorate([
46
+ ApiPropertyOptional({
47
+ description: 'Magic link / passwordless login email template',
48
+ type: EmailTemplateConfigDTO
49
+ })
50
+ ], EmailTemplatesConfigDTO.prototype, "magicLink", void 0);
51
+ __decorate([
52
+ ApiPropertyOptional({
53
+ description: 'Welcome email template for new users',
54
+ type: EmailTemplateConfigDTO
55
+ })
56
+ ], EmailTemplatesConfigDTO.prototype, "welcome", void 0);
57
+ __decorate([
58
+ ApiPropertyOptional({
59
+ description: 'Password reset email template',
60
+ type: EmailTemplateConfigDTO
61
+ })
62
+ ], EmailTemplatesConfigDTO.prototype, "passwordReset", void 0);
63
+ __decorate([
64
+ ApiPropertyOptional({
65
+ description: 'Email verification template',
66
+ type: EmailTemplateConfigDTO
67
+ })
68
+ ], EmailTemplatesConfigDTO.prototype, "emailVerification", void 0);
69
+ __decorate([
70
+ ApiPropertyOptional({
71
+ description: 'Transaction confirmation template',
72
+ type: EmailTemplateConfigDTO
73
+ })
74
+ ], EmailTemplatesConfigDTO.prototype, "transactionConfirmation", void 0);
75
+ /**
76
+ * DTO for unified email configuration
77
+ */
78
+ export class EmailConfigDTO {
79
+ provider;
80
+ fromEmail;
81
+ fromName;
82
+ templates;
83
+ }
84
+ __decorate([
85
+ ApiPropertyOptional({
86
+ description: 'Email provider (sendgrid, mailjet)',
87
+ enum: ['sendgrid', 'mailjet'],
88
+ default: 'sendgrid'
89
+ })
90
+ ], EmailConfigDTO.prototype, "provider", void 0);
91
+ __decorate([
92
+ ApiPropertyOptional({
93
+ description: 'Sender email address (must be verified with provider)',
94
+ example: 'noreply@tenant.com'
95
+ })
96
+ ], EmailConfigDTO.prototype, "fromEmail", void 0);
97
+ __decorate([
98
+ ApiPropertyOptional({
99
+ description: 'Sender display name',
100
+ example: 'Tenant Name'
101
+ })
102
+ ], EmailConfigDTO.prototype, "fromName", void 0);
103
+ __decorate([
104
+ ApiPropertyOptional({
105
+ description: 'Template configurations keyed by email type',
106
+ type: EmailTemplatesConfigDTO
107
+ })
108
+ ], EmailConfigDTO.prototype, "templates", void 0);
109
+ /**
110
+ * Request DTO for email configuration updates (includes API key)
111
+ */
112
+ export class EmailConfigRequestDTO extends EmailConfigDTO {
113
+ apiKey;
114
+ }
115
+ __decorate([
116
+ ApiPropertyOptional({
117
+ description: 'API key for the email provider (will be encrypted)',
118
+ example: 'SG.xxxxx'
119
+ })
120
+ ], EmailConfigRequestDTO.prototype, "apiKey", void 0);
121
+ //# sourceMappingURL=email-config.dto.js.map