@explorins/pers-shared 2.1.147 → 2.1.149
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/CHANGELOG.md +36 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/shared-lib/constants/image-cdn.constants.d.ts +65 -0
- package/dist/cjs/shared-lib/constants/image-cdn.constants.d.ts.map +1 -0
- package/dist/cjs/shared-lib/constants/image-cdn.constants.js +86 -0
- package/dist/cjs/shared-lib/constants/image-cdn.constants.js.map +1 -0
- package/dist/cjs/shared-lib/constants/index.d.ts +2 -0
- package/dist/cjs/shared-lib/constants/index.d.ts.map +1 -0
- package/dist/cjs/shared-lib/constants/index.js +19 -0
- package/dist/cjs/shared-lib/constants/index.js.map +1 -0
- package/dist/cjs/shared-lib/decorators/validation.decorators.d.ts +40 -0
- package/dist/cjs/shared-lib/decorators/validation.decorators.d.ts.map +1 -1
- package/dist/cjs/shared-lib/decorators/validation.decorators.js +48 -0
- package/dist/cjs/shared-lib/decorators/validation.decorators.js.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaign.dto.js +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaign.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.js +2 -1
- package/dist/cjs/shared-lib/dto/campaign/campaignUserClaim.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/tenant/email-config.dto.d.ts +6 -0
- package/dist/cjs/shared-lib/dto/tenant/email-config.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/tenant/email-config.dto.js +54 -3
- package/dist/cjs/shared-lib/dto/tenant/email-config.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/tenant/tenant.dto.d.ts +0 -7
- package/dist/cjs/shared-lib/dto/tenant/tenant.dto.d.ts.map +1 -1
- package/dist/cjs/shared-lib/dto/tenant/tenant.dto.js +10 -19
- package/dist/cjs/shared-lib/dto/tenant/tenant.dto.js.map +1 -1
- package/dist/cjs/shared-lib/dto/transaction/transaction.dto.js +2 -2
- package/dist/cjs/shared-lib/dto/transaction/transaction.dto.js.map +1 -1
- package/dist/cjs/shared-lib/interfaces/email-config.interface.d.ts +6 -4
- package/dist/cjs/shared-lib/interfaces/email-config.interface.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared-lib/constants/image-cdn.constants.d.ts +65 -0
- package/dist/esm/shared-lib/constants/image-cdn.constants.d.ts.map +1 -0
- package/dist/esm/shared-lib/constants/image-cdn.constants.js +79 -0
- package/dist/esm/shared-lib/constants/image-cdn.constants.js.map +1 -0
- package/dist/esm/shared-lib/constants/index.d.ts +2 -0
- package/dist/esm/shared-lib/constants/index.d.ts.map +1 -0
- package/dist/esm/shared-lib/constants/index.js +3 -0
- package/dist/esm/shared-lib/constants/index.js.map +1 -0
- package/dist/esm/shared-lib/decorators/validation.decorators.d.ts +40 -0
- package/dist/esm/shared-lib/decorators/validation.decorators.d.ts.map +1 -1
- package/dist/esm/shared-lib/decorators/validation.decorators.js +46 -0
- package/dist/esm/shared-lib/decorators/validation.decorators.js.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaign.dto.js +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaign.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.js +2 -1
- package/dist/esm/shared-lib/dto/campaign/campaignUserClaim.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/tenant/email-config.dto.d.ts +6 -0
- package/dist/esm/shared-lib/dto/tenant/email-config.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/tenant/email-config.dto.js +66 -16
- package/dist/esm/shared-lib/dto/tenant/email-config.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/tenant/tenant.dto.d.ts +0 -7
- package/dist/esm/shared-lib/dto/tenant/tenant.dto.d.ts.map +1 -1
- package/dist/esm/shared-lib/dto/tenant/tenant.dto.js +11 -13
- package/dist/esm/shared-lib/dto/tenant/tenant.dto.js.map +1 -1
- package/dist/esm/shared-lib/dto/transaction/transaction.dto.js +2 -2
- package/dist/esm/shared-lib/dto/transaction/transaction.dto.js.map +1 -1
- package/dist/esm/shared-lib/interfaces/email-config.interface.d.ts +6 -4
- package/dist/esm/shared-lib/interfaces/email-config.interface.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.EmailConfigRequestDTO = exports.EmailConfigDTO = exports.EmailTemplatesConfigDTO = exports.EmailTemplateConfigDTO = void 0;
|
|
13
13
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const class_transformer_1 = require("class-transformer");
|
|
16
|
+
const email_config_interface_1 = require("../../interfaces/email-config.interface");
|
|
17
|
+
const validation_decorators_1 = require("../../decorators/validation.decorators");
|
|
14
18
|
/**
|
|
15
19
|
* DTO for email template configuration
|
|
16
20
|
*/
|
|
@@ -25,6 +29,7 @@ __decorate([
|
|
|
25
29
|
description: 'Provider-specific template ID (e.g., SendGrid dynamic template ID)',
|
|
26
30
|
example: 'd-abc123def456'
|
|
27
31
|
}),
|
|
32
|
+
(0, class_validator_1.IsString)(),
|
|
28
33
|
__metadata("design:type", String)
|
|
29
34
|
], EmailTemplateConfigDTO.prototype, "templateId", void 0);
|
|
30
35
|
__decorate([
|
|
@@ -32,14 +37,18 @@ __decorate([
|
|
|
32
37
|
description: 'Optional subject - if not provided, template\'s default subject is used',
|
|
33
38
|
example: 'Your login link'
|
|
34
39
|
}),
|
|
40
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
|
+
(0, class_validator_1.IsString)(),
|
|
35
42
|
__metadata("design:type", String)
|
|
36
43
|
], EmailTemplateConfigDTO.prototype, "subject", void 0);
|
|
37
44
|
__decorate([
|
|
38
45
|
(0, swagger_1.ApiPropertyOptional)({
|
|
39
|
-
description: 'Maps
|
|
40
|
-
example: {
|
|
46
|
+
description: 'Maps provider template variable names to internal variable names. Format: { templateVar: internalVar }. Allows multiple template vars to reference the same internal value.',
|
|
47
|
+
example: { 'link_url': 'magicLinkUrl', 'offers_link': 'magicLinkUrl' },
|
|
41
48
|
type: Object
|
|
42
49
|
}),
|
|
50
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
|
+
(0, class_validator_1.IsObject)(),
|
|
43
52
|
__metadata("design:type", Object)
|
|
44
53
|
], EmailTemplateConfigDTO.prototype, "variableMapping", void 0);
|
|
45
54
|
/**
|
|
@@ -58,6 +67,9 @@ __decorate([
|
|
|
58
67
|
description: 'Magic link / passwordless login email template',
|
|
59
68
|
type: EmailTemplateConfigDTO
|
|
60
69
|
}),
|
|
70
|
+
(0, class_validator_1.IsOptional)(),
|
|
71
|
+
(0, class_validator_1.ValidateNested)(),
|
|
72
|
+
(0, class_transformer_1.Type)(() => EmailTemplateConfigDTO),
|
|
61
73
|
__metadata("design:type", EmailTemplateConfigDTO)
|
|
62
74
|
], EmailTemplatesConfigDTO.prototype, "magicLink", void 0);
|
|
63
75
|
__decorate([
|
|
@@ -65,6 +77,9 @@ __decorate([
|
|
|
65
77
|
description: 'Welcome email template for new users',
|
|
66
78
|
type: EmailTemplateConfigDTO
|
|
67
79
|
}),
|
|
80
|
+
(0, class_validator_1.IsOptional)(),
|
|
81
|
+
(0, class_validator_1.ValidateNested)(),
|
|
82
|
+
(0, class_transformer_1.Type)(() => EmailTemplateConfigDTO),
|
|
68
83
|
__metadata("design:type", EmailTemplateConfigDTO)
|
|
69
84
|
], EmailTemplatesConfigDTO.prototype, "welcome", void 0);
|
|
70
85
|
__decorate([
|
|
@@ -72,6 +87,9 @@ __decorate([
|
|
|
72
87
|
description: 'Password reset email template',
|
|
73
88
|
type: EmailTemplateConfigDTO
|
|
74
89
|
}),
|
|
90
|
+
(0, class_validator_1.IsOptional)(),
|
|
91
|
+
(0, class_validator_1.ValidateNested)(),
|
|
92
|
+
(0, class_transformer_1.Type)(() => EmailTemplateConfigDTO),
|
|
75
93
|
__metadata("design:type", EmailTemplateConfigDTO)
|
|
76
94
|
], EmailTemplatesConfigDTO.prototype, "passwordReset", void 0);
|
|
77
95
|
__decorate([
|
|
@@ -79,6 +97,9 @@ __decorate([
|
|
|
79
97
|
description: 'Email verification template',
|
|
80
98
|
type: EmailTemplateConfigDTO
|
|
81
99
|
}),
|
|
100
|
+
(0, class_validator_1.IsOptional)(),
|
|
101
|
+
(0, class_validator_1.ValidateNested)(),
|
|
102
|
+
(0, class_transformer_1.Type)(() => EmailTemplateConfigDTO),
|
|
82
103
|
__metadata("design:type", EmailTemplateConfigDTO)
|
|
83
104
|
], EmailTemplatesConfigDTO.prototype, "emailVerification", void 0);
|
|
84
105
|
__decorate([
|
|
@@ -86,6 +107,9 @@ __decorate([
|
|
|
86
107
|
description: 'Transaction confirmation template',
|
|
87
108
|
type: EmailTemplateConfigDTO
|
|
88
109
|
}),
|
|
110
|
+
(0, class_validator_1.IsOptional)(),
|
|
111
|
+
(0, class_validator_1.ValidateNested)(),
|
|
112
|
+
(0, class_transformer_1.Type)(() => EmailTemplateConfigDTO),
|
|
89
113
|
__metadata("design:type", EmailTemplateConfigDTO)
|
|
90
114
|
], EmailTemplatesConfigDTO.prototype, "transactionConfirmation", void 0);
|
|
91
115
|
/**
|
|
@@ -96,6 +120,12 @@ class EmailConfigDTO {
|
|
|
96
120
|
fromEmail;
|
|
97
121
|
fromName;
|
|
98
122
|
templates;
|
|
123
|
+
/**
|
|
124
|
+
* Decrypted API key for the email provider.
|
|
125
|
+
* Injected at runtime by TenantService from encrypted storage.
|
|
126
|
+
* Masked in API responses, real value available internally.
|
|
127
|
+
*/
|
|
128
|
+
apiKey;
|
|
99
129
|
}
|
|
100
130
|
exports.EmailConfigDTO = EmailConfigDTO;
|
|
101
131
|
__decorate([
|
|
@@ -104,6 +134,8 @@ __decorate([
|
|
|
104
134
|
enum: ['sendgrid', 'mailjet'],
|
|
105
135
|
default: 'sendgrid'
|
|
106
136
|
}),
|
|
137
|
+
(0, class_validator_1.IsOptional)(),
|
|
138
|
+
(0, class_validator_1.IsIn)(email_config_interface_1.EMAIL_PROVIDER_TYPES),
|
|
107
139
|
__metadata("design:type", String)
|
|
108
140
|
], EmailConfigDTO.prototype, "provider", void 0);
|
|
109
141
|
__decorate([
|
|
@@ -111,6 +143,8 @@ __decorate([
|
|
|
111
143
|
description: 'Sender email address (must be verified with provider)',
|
|
112
144
|
example: 'noreply@tenant.com'
|
|
113
145
|
}),
|
|
146
|
+
(0, class_validator_1.IsOptional)(),
|
|
147
|
+
(0, class_validator_1.IsString)(),
|
|
114
148
|
__metadata("design:type", String)
|
|
115
149
|
], EmailConfigDTO.prototype, "fromEmail", void 0);
|
|
116
150
|
__decorate([
|
|
@@ -118,6 +152,8 @@ __decorate([
|
|
|
118
152
|
description: 'Sender display name',
|
|
119
153
|
example: 'Tenant Name'
|
|
120
154
|
}),
|
|
155
|
+
(0, class_validator_1.IsOptional)(),
|
|
156
|
+
(0, class_validator_1.IsString)(),
|
|
121
157
|
__metadata("design:type", String)
|
|
122
158
|
], EmailConfigDTO.prototype, "fromName", void 0);
|
|
123
159
|
__decorate([
|
|
@@ -125,13 +161,26 @@ __decorate([
|
|
|
125
161
|
description: 'Template configurations keyed by email type',
|
|
126
162
|
type: EmailTemplatesConfigDTO
|
|
127
163
|
}),
|
|
164
|
+
(0, class_validator_1.IsOptional)(),
|
|
165
|
+
(0, class_validator_1.ValidateNested)(),
|
|
166
|
+
(0, class_transformer_1.Type)(() => EmailTemplatesConfigDTO),
|
|
128
167
|
__metadata("design:type", EmailTemplatesConfigDTO)
|
|
129
168
|
], EmailConfigDTO.prototype, "templates", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
(0, swagger_1.ApiPropertyOptional)({
|
|
171
|
+
description: 'Email provider API key (masked in responses)',
|
|
172
|
+
type: String,
|
|
173
|
+
example: '...a1b2'
|
|
174
|
+
}),
|
|
175
|
+
(0, class_validator_1.IsOptional)(),
|
|
176
|
+
(0, class_validator_1.IsString)(),
|
|
177
|
+
(0, validation_decorators_1.MaskSecret)(),
|
|
178
|
+
__metadata("design:type", String)
|
|
179
|
+
], EmailConfigDTO.prototype, "apiKey", void 0);
|
|
130
180
|
/**
|
|
131
181
|
* Request DTO for email configuration updates (includes API key)
|
|
132
182
|
*/
|
|
133
183
|
class EmailConfigRequestDTO extends EmailConfigDTO {
|
|
134
|
-
apiKey;
|
|
135
184
|
}
|
|
136
185
|
exports.EmailConfigRequestDTO = EmailConfigRequestDTO;
|
|
137
186
|
__decorate([
|
|
@@ -139,6 +188,8 @@ __decorate([
|
|
|
139
188
|
description: 'API key for the email provider (will be encrypted)',
|
|
140
189
|
example: 'SG.xxxxx'
|
|
141
190
|
}),
|
|
191
|
+
(0, class_validator_1.IsOptional)(),
|
|
192
|
+
(0, class_validator_1.IsString)(),
|
|
142
193
|
__metadata("design:type", String)
|
|
143
194
|
], EmailConfigRequestDTO.prototype, "apiKey", void 0);
|
|
144
195
|
//# sourceMappingURL=email-config.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-config.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/email-config.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;
|
|
1
|
+
{"version":3,"file":"email-config.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/email-config.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,5 @@ export declare class TenantDTO extends TenantPublicDTO {
|
|
|
25
25
|
googleApiKey?: string;
|
|
26
26
|
allowedTokenIssuers: ExternalTokenIssuerConfig[];
|
|
27
27
|
emailConfig?: EmailConfigDTO;
|
|
28
|
-
/**
|
|
29
|
-
* Decrypted email API key - injected at runtime by TenantService.
|
|
30
|
-
* Not stored in database (stored encrypted in emailConfig.apiKeyRef).
|
|
31
|
-
* Used internally by EmailModule and MagicLinkWorkflow.
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
emailApiKey?: string;
|
|
35
28
|
}
|
|
36
29
|
//# sourceMappingURL=tenant.dto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/tenant.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"tenant.dto.d.ts","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/tenant.dto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,qBAAa,eAAe;IAK1B,WAAW,EAAE,MAAM,CAAM;IAMzB,OAAO,EAAE,MAAM,CAAM;IAMrB,EAAE,EAAE,MAAM,CAAM;IAMhB,SAAS,EAAE,IAAI,CAAa;IAM5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAM3B,cAAc,CAAC,EAAE,MAAM,CAAA;IAMvB,YAAY,CAAC,EAAE,MAAM,CAAA;IAMrB,eAAe,CAAC,EAAE,MAAM,CAAA;IAMxB,cAAc,CAAC,EAAE,MAAM,CAAA;IAMrB,aAAa,EAAE,MAAM,CAAK;CAC7B;AAED,qBAAa,SAAU,SAAQ,eAAe;IAO5C,oBAAoB,EAAE,MAAM,CAAK;IAQjC,YAAY,CAAC,EAAE,MAAM,CAAA;IAQrB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAM5B,UAAU,CAAC,EAAE,MAAM,CAAA;IAMnB,+BAA+B,EAAE,OAAO,CAAQ;IAGhD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IA2BvB,2BAA2B,EAAE,oBAAoB,CAAiC;IAQlF,iBAAiB,EAAE,MAAM,CAAwB;IAMjD,YAAY,CAAC,EAAE,MAAM,CAAA;IAMrB,mBAAmB,EAAE,yBAAyB,EAAE,CAAK;IAMrD,WAAW,CAAC,EAAE,cAAc,CAAA;CAC7B"}
|
|
@@ -14,6 +14,7 @@ const swagger_1 = require("@nestjs/swagger");
|
|
|
14
14
|
const wallet_enum_1 = require("../../enum/wallet.enum");
|
|
15
15
|
const external_token_issuer_config_dto_1 = require("./external-token-issuer-config.dto");
|
|
16
16
|
const email_config_dto_1 = require("./email-config.dto");
|
|
17
|
+
const validation_decorators_1 = require("../../decorators/validation.decorators");
|
|
17
18
|
class TenantPublicDTO {
|
|
18
19
|
projectName = '';
|
|
19
20
|
acronym = '';
|
|
@@ -125,13 +126,6 @@ class TenantDTO extends TenantPublicDTO {
|
|
|
125
126
|
googleApiKey;
|
|
126
127
|
allowedTokenIssuers = [];
|
|
127
128
|
emailConfig;
|
|
128
|
-
/**
|
|
129
|
-
* Decrypted email API key - injected at runtime by TenantService.
|
|
130
|
-
* Not stored in database (stored encrypted in emailConfig.apiKeyRef).
|
|
131
|
-
* Used internally by EmailModule and MagicLinkWorkflow.
|
|
132
|
-
* @internal
|
|
133
|
-
*/
|
|
134
|
-
emailApiKey;
|
|
135
129
|
}
|
|
136
130
|
exports.TenantDTO = TenantDTO;
|
|
137
131
|
__decorate([
|
|
@@ -143,16 +137,20 @@ __decorate([
|
|
|
143
137
|
], TenantDTO.prototype, "testnetProjectApiKey", void 0);
|
|
144
138
|
__decorate([
|
|
145
139
|
(0, swagger_1.ApiPropertyOptional)({
|
|
146
|
-
description: 'Stripe API key for tenant. Used in case of stripe payment.',
|
|
147
|
-
type: String
|
|
140
|
+
description: 'Stripe API key for tenant (masked). Used in case of stripe payment.',
|
|
141
|
+
type: String,
|
|
142
|
+
example: 'sk_...a1b2'
|
|
148
143
|
}),
|
|
144
|
+
(0, validation_decorators_1.MaskSecret)({ prefix: 'sk_' }),
|
|
149
145
|
__metadata("design:type", String)
|
|
150
146
|
], TenantDTO.prototype, "stripeApiKey", void 0);
|
|
151
147
|
__decorate([
|
|
152
148
|
(0, swagger_1.ApiPropertyOptional)({
|
|
153
|
-
description: 'Stripe webhook secret for tenant. Used in case of stripe payment.',
|
|
154
|
-
type: String
|
|
149
|
+
description: 'Stripe webhook secret for tenant (masked). Used in case of stripe payment.',
|
|
150
|
+
type: String,
|
|
151
|
+
example: 'whsec_...x9y0'
|
|
155
152
|
}),
|
|
153
|
+
(0, validation_decorators_1.MaskSecret)({ prefix: 'whsec_' }),
|
|
156
154
|
__metadata("design:type", String)
|
|
157
155
|
], TenantDTO.prototype, "stripeWebhookSecret", void 0);
|
|
158
156
|
__decorate([
|
|
@@ -210,13 +208,6 @@ __decorate([
|
|
|
210
208
|
description: 'Unified email configuration - provider, credentials, sender info, and templates',
|
|
211
209
|
type: email_config_dto_1.EmailConfigDTO
|
|
212
210
|
}),
|
|
213
|
-
__metadata("design:type", email_config_dto_1.EmailConfigDTO
|
|
214
|
-
/**
|
|
215
|
-
* Decrypted email API key - injected at runtime by TenantService.
|
|
216
|
-
* Not stored in database (stored encrypted in emailConfig.apiKeyRef).
|
|
217
|
-
* Used internally by EmailModule and MagicLinkWorkflow.
|
|
218
|
-
* @internal
|
|
219
|
-
*/
|
|
220
|
-
)
|
|
211
|
+
__metadata("design:type", email_config_dto_1.EmailConfigDTO)
|
|
221
212
|
], TenantDTO.prototype, "emailConfig", void 0);
|
|
222
213
|
//# sourceMappingURL=tenant.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/tenant.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,wDAA8D;AAE9D,yFAAkF;AAClF,yDAAoD;
|
|
1
|
+
{"version":3,"file":"tenant.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/tenant/tenant.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,11 +120,11 @@ __decorate([
|
|
|
120
120
|
__metadata("design:type", String)
|
|
121
121
|
], TransactionDTO.prototype, "status", void 0);
|
|
122
122
|
__decorate([
|
|
123
|
-
(0, swagger_1.ApiProperty)({ description: 'create date' }),
|
|
123
|
+
(0, swagger_1.ApiProperty)({ description: 'create date', format: 'date-time' }),
|
|
124
124
|
__metadata("design:type", Object)
|
|
125
125
|
], TransactionDTO.prototype, "createdAt", void 0);
|
|
126
126
|
__decorate([
|
|
127
|
-
(0, swagger_1.ApiProperty)({ description: 'update date' }),
|
|
127
|
+
(0, swagger_1.ApiProperty)({ description: 'update date', format: 'date-time' }),
|
|
128
128
|
__metadata("design:type", Object)
|
|
129
129
|
], TransactionDTO.prototype, "updatedAt", void 0);
|
|
130
130
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction.dto.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transaction.dto.js","sourceRoot":"","sources":["../../../../../src/shared-lib/dto/transaction/transaction.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,8 +29,10 @@ export interface EmailTemplateConfig {
|
|
|
29
29
|
/** Optional subject - if not provided, template's default subject is used */
|
|
30
30
|
subject?: string;
|
|
31
31
|
/**
|
|
32
|
-
* Maps
|
|
33
|
-
*
|
|
32
|
+
* Maps provider template variable names to internal variable names.
|
|
33
|
+
* Format: { templateVar: internalVar }
|
|
34
|
+
* Example: { 'link_url': 'magicLinkUrl', 'offers_link': 'magicLinkUrl' }
|
|
35
|
+
* This allows multiple template vars to reference the same internal value.
|
|
34
36
|
*/
|
|
35
37
|
variableMapping?: Record<string, string>;
|
|
36
38
|
}
|
|
@@ -69,7 +71,7 @@ export interface EmailTemplatesConfig {
|
|
|
69
71
|
* magicLink: {
|
|
70
72
|
* templateId: 'd-abc123',
|
|
71
73
|
* subject: 'Your login link',
|
|
72
|
-
* variableMapping: { magicLinkUrl: '
|
|
74
|
+
* variableMapping: { 'link_url': 'magicLinkUrl', 'offers_link': 'magicLinkUrl' }
|
|
73
75
|
* }
|
|
74
76
|
* }
|
|
75
77
|
* };
|
|
@@ -90,5 +92,5 @@ export interface EmailConfig {
|
|
|
90
92
|
/**
|
|
91
93
|
* Email type identifiers for template lookup
|
|
92
94
|
*/
|
|
93
|
-
export type EmailType = 'magicLink' |
|
|
95
|
+
export type EmailType = 'magicLink' | string;
|
|
94
96
|
//# sourceMappingURL=email-config.interface.d.ts.map
|
|
@@ -1 +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
|
|
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;;;;;OAKG;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,GAAyF,MAAM,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './shared-lib/enum';
|
|
2
2
|
export * from './shared-lib/interfaces';
|
|
3
3
|
export * from './shared-lib/types';
|
|
4
|
+
export * from './shared-lib/constants';
|
|
4
5
|
export type * from './shared-lib/dto';
|
|
5
6
|
export * from '@explorins/web3-types';
|
|
6
7
|
export type * from './shared-lib/errors';
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,mBAAmB,kBAAkB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AAGtC,cAAc,uBAAuB,CAAC;AAGtC,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export * from './shared-lib/enum/index.js';
|
|
5
5
|
export * from './shared-lib/interfaces/index.js';
|
|
6
6
|
export * from './shared-lib/types/index.js';
|
|
7
|
+
export * from './shared-lib/constants/index.js';
|
|
7
8
|
// Re-export web3 types for convenience
|
|
8
9
|
export * from '@explorins/web3-types';
|
|
9
10
|
export { ErrorCategory } from './shared-lib/errors/base/error-classification-enums.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8FAA8F;AAE9F,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,8FAA8F;AAE9F,wBAAwB;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAGvC,uCAAuC;AACvC,cAAc,uBAAuB,CAAC;AAItC,OAAO,EAAwB,aAAa,EAAE,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA0C,MAAM,iCAAiC,CAAC;AAEzH,4CAA4C;AAC5C,2CAA2C;AAC3C,iFAAiF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image CDN Configuration
|
|
3
|
+
*
|
|
4
|
+
* Shared constants and types for Image CDN (CloudFront + Lambda@Edge)
|
|
5
|
+
* Used by backend Lambda handler and frontend SDKs.
|
|
6
|
+
*
|
|
7
|
+
* @see documentation/api-docs/image-cdn.md
|
|
8
|
+
*/
|
|
9
|
+
export type ImagePreset = 'thumb' | 'medium' | 'large' | 'hero' | 'avatar' | 'card';
|
|
10
|
+
export type ImageFit = 'inside' | 'cover' | 'contain' | 'fill' | 'outside';
|
|
11
|
+
export type ImageFormat = 'auto' | 'webp' | 'avif' | 'jpeg' | 'png';
|
|
12
|
+
export interface ImageCdnOptions {
|
|
13
|
+
/** Predefined size preset */
|
|
14
|
+
preset?: ImagePreset;
|
|
15
|
+
/** Quality 1-100 (default: 80) */
|
|
16
|
+
q?: number;
|
|
17
|
+
/** Output format (default: auto - WebP/AVIF based on browser) */
|
|
18
|
+
f?: ImageFormat;
|
|
19
|
+
/** Resize fit mode (default: inside) */
|
|
20
|
+
fit?: ImageFit;
|
|
21
|
+
}
|
|
22
|
+
export interface ImagePresetConfig {
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
}
|
|
26
|
+
/** Maximum output dimension when no preset specified */
|
|
27
|
+
export declare const IMAGE_CDN_MAX_DIMENSION = 2048;
|
|
28
|
+
/** Default quality percentage */
|
|
29
|
+
export declare const IMAGE_CDN_DEFAULT_QUALITY = 80;
|
|
30
|
+
/** Default fit mode */
|
|
31
|
+
export declare const IMAGE_CDN_DEFAULT_FIT: ImageFit;
|
|
32
|
+
/** Default format (auto-detect based on browser Accept header) */
|
|
33
|
+
export declare const IMAGE_CDN_DEFAULT_FORMAT: ImageFormat;
|
|
34
|
+
/** Available presets with their dimensions */
|
|
35
|
+
export declare const IMAGE_CDN_PRESETS: Record<ImagePreset, ImagePresetConfig>;
|
|
36
|
+
/** Supported input/output formats */
|
|
37
|
+
export declare const IMAGE_CDN_SUPPORTED_FORMATS: readonly ["jpeg", "jpg", "png", "webp", "gif", "avif"];
|
|
38
|
+
/** Cache TTL in seconds (1 year) */
|
|
39
|
+
export declare const IMAGE_CDN_CACHE_TTL = 31536000;
|
|
40
|
+
/** Maximum input file size in bytes (10MB) */
|
|
41
|
+
export declare const IMAGE_CDN_MAX_INPUT_SIZE: number;
|
|
42
|
+
/**
|
|
43
|
+
* Build CDN URL with options
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* buildImageCdnUrl('https://cdn.example.com/photo.jpg', { preset: 'thumb' })
|
|
47
|
+
* // => 'https://cdn.example.com/photo.jpg?preset=thumb'
|
|
48
|
+
*
|
|
49
|
+
* buildImageCdnUrl('https://cdn.example.com/photo.jpg', { preset: 'large', q: 95 })
|
|
50
|
+
* // => 'https://cdn.example.com/photo.jpg?preset=large&q=95'
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildImageCdnUrl(baseUrl: string, options?: ImageCdnOptions): string;
|
|
53
|
+
/**
|
|
54
|
+
* Check if a preset name is valid
|
|
55
|
+
*/
|
|
56
|
+
export declare function isValidPreset(preset: string): preset is ImagePreset;
|
|
57
|
+
/**
|
|
58
|
+
* Get dimensions for a preset
|
|
59
|
+
*/
|
|
60
|
+
export declare function getPresetDimensions(preset: ImagePreset): ImagePresetConfig;
|
|
61
|
+
/**
|
|
62
|
+
* Check if a file extension is a supported image format
|
|
63
|
+
*/
|
|
64
|
+
export declare function isSupportedImageFormat(extension: string): boolean;
|
|
65
|
+
//# sourceMappingURL=image-cdn.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-cdn.constants.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/image-cdn.constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AACpF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,kCAAkC;IAClC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,CAAC,CAAC,EAAE,WAAW,CAAC;IAChB,wCAAwC;IACxC,GAAG,CAAC,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,iCAAiC;AACjC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,uBAAuB;AACvB,eAAO,MAAM,qBAAqB,EAAE,QAAmB,CAAC;AAExD,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,EAAE,WAAoB,CAAC;AAE5D,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAO3D,CAAC;AAEX,qCAAqC;AACrC,eAAO,MAAM,2BAA2B,wDAAyD,CAAC;AAElG,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,8CAA8C;AAC9C,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAMzD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAUvF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,IAAI,WAAW,CAEnE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAE1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image CDN Configuration
|
|
3
|
+
*
|
|
4
|
+
* Shared constants and types for Image CDN (CloudFront + Lambda@Edge)
|
|
5
|
+
* Used by backend Lambda handler and frontend SDKs.
|
|
6
|
+
*
|
|
7
|
+
* @see documentation/api-docs/image-cdn.md
|
|
8
|
+
*/
|
|
9
|
+
// ============================================
|
|
10
|
+
// CONSTANTS
|
|
11
|
+
// ============================================
|
|
12
|
+
/** Maximum output dimension when no preset specified */
|
|
13
|
+
export const IMAGE_CDN_MAX_DIMENSION = 2048;
|
|
14
|
+
/** Default quality percentage */
|
|
15
|
+
export const IMAGE_CDN_DEFAULT_QUALITY = 80;
|
|
16
|
+
/** Default fit mode */
|
|
17
|
+
export const IMAGE_CDN_DEFAULT_FIT = 'inside';
|
|
18
|
+
/** Default format (auto-detect based on browser Accept header) */
|
|
19
|
+
export const IMAGE_CDN_DEFAULT_FORMAT = 'auto';
|
|
20
|
+
/** Available presets with their dimensions */
|
|
21
|
+
export const IMAGE_CDN_PRESETS = {
|
|
22
|
+
thumb: { width: 150, height: 150 },
|
|
23
|
+
medium: { width: 600, height: 600 },
|
|
24
|
+
large: { width: 1200, height: 1200 },
|
|
25
|
+
hero: { width: 1920, height: 800 },
|
|
26
|
+
avatar: { width: 200, height: 200 },
|
|
27
|
+
card: { width: 400, height: 300 },
|
|
28
|
+
};
|
|
29
|
+
/** Supported input/output formats */
|
|
30
|
+
export const IMAGE_CDN_SUPPORTED_FORMATS = ['jpeg', 'jpg', 'png', 'webp', 'gif', 'avif'];
|
|
31
|
+
/** Cache TTL in seconds (1 year) */
|
|
32
|
+
export const IMAGE_CDN_CACHE_TTL = 31536000;
|
|
33
|
+
/** Maximum input file size in bytes (10MB) */
|
|
34
|
+
export const IMAGE_CDN_MAX_INPUT_SIZE = 10 * 1024 * 1024;
|
|
35
|
+
// ============================================
|
|
36
|
+
// HELPER FUNCTIONS
|
|
37
|
+
// ============================================
|
|
38
|
+
/**
|
|
39
|
+
* Build CDN URL with options
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* buildImageCdnUrl('https://cdn.example.com/photo.jpg', { preset: 'thumb' })
|
|
43
|
+
* // => 'https://cdn.example.com/photo.jpg?preset=thumb'
|
|
44
|
+
*
|
|
45
|
+
* buildImageCdnUrl('https://cdn.example.com/photo.jpg', { preset: 'large', q: 95 })
|
|
46
|
+
* // => 'https://cdn.example.com/photo.jpg?preset=large&q=95'
|
|
47
|
+
*/
|
|
48
|
+
export function buildImageCdnUrl(baseUrl, options = {}) {
|
|
49
|
+
const params = new URLSearchParams();
|
|
50
|
+
if (options.preset)
|
|
51
|
+
params.set('preset', options.preset);
|
|
52
|
+
if (options.q !== undefined)
|
|
53
|
+
params.set('q', options.q.toString());
|
|
54
|
+
if (options.f)
|
|
55
|
+
params.set('f', options.f);
|
|
56
|
+
if (options.fit)
|
|
57
|
+
params.set('fit', options.fit);
|
|
58
|
+
const query = params.toString();
|
|
59
|
+
return query ? `${baseUrl}?${query}` : baseUrl;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if a preset name is valid
|
|
63
|
+
*/
|
|
64
|
+
export function isValidPreset(preset) {
|
|
65
|
+
return preset in IMAGE_CDN_PRESETS;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get dimensions for a preset
|
|
69
|
+
*/
|
|
70
|
+
export function getPresetDimensions(preset) {
|
|
71
|
+
return IMAGE_CDN_PRESETS[preset];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if a file extension is a supported image format
|
|
75
|
+
*/
|
|
76
|
+
export function isSupportedImageFormat(extension) {
|
|
77
|
+
return IMAGE_CDN_SUPPORTED_FORMATS.includes(extension.toLowerCase());
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=image-cdn.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-cdn.constants.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/image-cdn.constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0BH,+CAA+C;AAC/C,YAAY;AACZ,+CAA+C;AAE/C,wDAAwD;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAE5C,iCAAiC;AACjC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,uBAAuB;AACvB,MAAM,CAAC,MAAM,qBAAqB,GAAa,QAAQ,CAAC;AAExD,kEAAkE;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAgB,MAAM,CAAC;AAE5D,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAA2C;IACvE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACnC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IACpC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAClC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;IACnC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;CACzB,CAAC;AAEX,qCAAqC;AACrC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAU,CAAC;AAElG,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AAE5C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,UAA2B,EAAE;IAC7E,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IAErC,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnE,IAAI,OAAO,CAAC,CAAC;QAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,GAAG;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,IAAI,iBAAiB,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAmB;IACrD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,OAAO,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAS,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared-lib/constants/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,4 +1,44 @@
|
|
|
1
1
|
import { TransformFnParams } from 'class-transformer';
|
|
2
|
+
/**
|
|
3
|
+
* Mask options for @MaskSecret decorator
|
|
4
|
+
*/
|
|
5
|
+
export interface MaskSecretOptions {
|
|
6
|
+
/** Number of characters to show at the end (default: 4) */
|
|
7
|
+
showLast?: number;
|
|
8
|
+
/** Prefix to show before masked value (e.g., 'sk_' for Stripe keys) */
|
|
9
|
+
prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Masks a secret value for safe display
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* maskSecretValue("sk_live_abc123xyz789", { prefix: 'sk_' }) → "sk_...9789"
|
|
16
|
+
* maskSecretValue("SG.abcdef123456") → "...3456"
|
|
17
|
+
* maskSecretValue("short") → "****"
|
|
18
|
+
*/
|
|
19
|
+
export declare function maskSecretValue(value: string | undefined | null, options?: MaskSecretOptions): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* @MaskSecret - Masks sensitive values during serialization
|
|
22
|
+
*
|
|
23
|
+
* The actual value remains in memory for internal service use.
|
|
24
|
+
* Only masks when serializing to JSON (API responses).
|
|
25
|
+
*
|
|
26
|
+
* @param options.prefix - Prefix to show (e.g., 'sk_' for Stripe)
|
|
27
|
+
* @param options.showLast - Number of chars to show at end (default: 4)
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* @MaskSecret({ prefix: 'sk_' })
|
|
32
|
+
* stripeApiKey?: string; // → "sk_...a1b2"
|
|
33
|
+
*
|
|
34
|
+
* @MaskSecret({ prefix: 'whsec_' })
|
|
35
|
+
* webhookSecret?: string; // → "whsec_...x9y0"
|
|
36
|
+
*
|
|
37
|
+
* @MaskSecret()
|
|
38
|
+
* emailApiKey?: string; // → "...a1b2"
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function MaskSecret(options?: MaskSecretOptions): PropertyDecorator;
|
|
2
42
|
/**
|
|
3
43
|
* =============================================================================
|
|
4
44
|
* OPTIONAL FIELD VALIDATION DECORATORS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.decorators.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/decorators/validation.decorators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.decorators.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/decorators/validation.decorators.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,GAAG,SAAS,CAerH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,iBAAsB,GAAG,iBAAiB,CAK7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AAMH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,iBAAiB,QAC3B,CAAC;AAE9B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAI,WAAW,iBAAiB,QAK5D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,WAAW,iBAAiB,QASlE,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,IAAI,iBAAiB,CAKjD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAKvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAMnD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,GAAI,WAAW,iBAAiB,QAS7D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,CAMzD"}
|