@mbc-cqrs-serverless/core 1.1.0-beta.0 → 1.1.0
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/commands/command.event.handler.d.ts +1 -1
- package/dist/commands/command.event.handler.js +1 -1
- package/dist/commands/command.event.handler.js.map +1 -1
- package/dist/constants/tenant.js.map +1 -1
- package/dist/helpers/index.d.ts +1 -1
- package/dist/helpers/index.js +2 -2
- package/dist/helpers/index.js.map +1 -1
- package/dist/integration/utilities/aws-error-factory.d.ts +141 -0
- package/dist/integration/utilities/aws-error-factory.js +392 -0
- package/dist/integration/utilities/aws-error-factory.js.map +1 -0
- package/dist/integration/utilities/aws-mock-manager.d.ts +136 -0
- package/dist/integration/utilities/aws-mock-manager.js +336 -0
- package/dist/integration/utilities/aws-mock-manager.js.map +1 -0
- package/dist/integration/utilities/index.d.ts +22 -0
- package/dist/integration/utilities/index.js +99 -0
- package/dist/integration/utilities/index.js.map +1 -0
- package/dist/integration/utilities/test-assertions.d.ts +112 -0
- package/dist/integration/utilities/test-assertions.js +345 -0
- package/dist/integration/utilities/test-assertions.js.map +1 -0
- package/dist/integration/utilities/test-data-builders.d.ts +202 -0
- package/dist/integration/utilities/test-data-builders.js +320 -0
- package/dist/integration/utilities/test-data-builders.js.map +1 -0
- package/dist/interfaces/notification.interface.d.ts +13 -0
- package/dist/notifications/email.service.js +16 -4
- package/dist/notifications/email.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Test Data Builders
|
|
4
|
+
*
|
|
5
|
+
* Provides factory functions for creating test data used across
|
|
6
|
+
* integration tests. This eliminates repetitive data creation and
|
|
7
|
+
* ensures consistent test fixtures.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* import {
|
|
11
|
+
* createTestItem,
|
|
12
|
+
* createTestItems,
|
|
13
|
+
* createBatchWriteRequest
|
|
14
|
+
* } from './utilities/test-data-builders'
|
|
15
|
+
*
|
|
16
|
+
* const item = createTestItem({ pk: 'user-1', sk: 'profile' })
|
|
17
|
+
* const items = createTestItems(100)
|
|
18
|
+
*/
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.unmarshall = exports.marshall = exports.DYNAMODB_BATCH_SIZE = void 0;
|
|
21
|
+
exports.createTestItem = createTestItem;
|
|
22
|
+
exports.createTestItems = createTestItems;
|
|
23
|
+
exports.createMarshalledItem = createMarshalledItem;
|
|
24
|
+
exports.createMarshalledItems = createMarshalledItems;
|
|
25
|
+
exports.createKey = createKey;
|
|
26
|
+
exports.createKeys = createKeys;
|
|
27
|
+
exports.createBatchWriteRequest = createBatchWriteRequest;
|
|
28
|
+
exports.createBatchGetRequest = createBatchGetRequest;
|
|
29
|
+
exports.splitIntoBatches = splitIntoBatches;
|
|
30
|
+
exports.createS3Content = createS3Content;
|
|
31
|
+
exports.createS3Metadata = createS3Metadata;
|
|
32
|
+
exports.createSQSMessageBody = createSQSMessageBody;
|
|
33
|
+
exports.createSQSBatchEntries = createSQSBatchEntries;
|
|
34
|
+
exports.createSNSMessage = createSNSMessage;
|
|
35
|
+
exports.createSFNInput = createSFNInput;
|
|
36
|
+
exports.createSFNExecutionName = createSFNExecutionName;
|
|
37
|
+
exports.createRandomString = createRandomString;
|
|
38
|
+
exports.createNestedTestData = createNestedTestData;
|
|
39
|
+
exports.createMixedTypeTestData = createMixedTypeTestData;
|
|
40
|
+
exports.createLargeTestData = createLargeTestData;
|
|
41
|
+
exports.unmarshallItem = unmarshallItem;
|
|
42
|
+
exports.unmarshallItems = unmarshallItems;
|
|
43
|
+
const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
|
|
44
|
+
/**
|
|
45
|
+
* Creates a single test item
|
|
46
|
+
*/
|
|
47
|
+
function createTestItem(options = {}) {
|
|
48
|
+
const { pk = `pk-${Date.now()}-${Math.random().toString(36).substring(7)}`, sk = `sk-${Date.now()}-${Math.random().toString(36).substring(7)}`, data = {}, withTimestamp = false, withVersion, } = options;
|
|
49
|
+
const item = {
|
|
50
|
+
pk,
|
|
51
|
+
sk,
|
|
52
|
+
...data,
|
|
53
|
+
};
|
|
54
|
+
if (withTimestamp) {
|
|
55
|
+
item.createdAt = new Date().toISOString();
|
|
56
|
+
item.updatedAt = new Date().toISOString();
|
|
57
|
+
}
|
|
58
|
+
if (withVersion !== undefined) {
|
|
59
|
+
item.version = withVersion;
|
|
60
|
+
}
|
|
61
|
+
return item;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates multiple test items with sequential IDs
|
|
65
|
+
*/
|
|
66
|
+
function createTestItems(count, options = {}) {
|
|
67
|
+
const { pkPrefix = 'pk', skPrefix = 'sk', dataGenerator = () => ({}), withTimestamp = false, withVersion = false, } = options;
|
|
68
|
+
return Array.from({ length: count }, (_, i) => createTestItem({
|
|
69
|
+
pk: `${pkPrefix}-${i}`,
|
|
70
|
+
sk: `${skPrefix}-${i}`,
|
|
71
|
+
data: dataGenerator(i),
|
|
72
|
+
withTimestamp,
|
|
73
|
+
withVersion: withVersion ? 1 : undefined,
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Creates a marshalled DynamoDB item
|
|
78
|
+
*/
|
|
79
|
+
function createMarshalledItem(options = {}) {
|
|
80
|
+
const item = createTestItem(options);
|
|
81
|
+
return (0, util_dynamodb_1.marshall)(item);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates multiple marshalled DynamoDB items
|
|
85
|
+
*/
|
|
86
|
+
function createMarshalledItems(count, options = {}) {
|
|
87
|
+
return createTestItems(count, options).map((item) => (0, util_dynamodb_1.marshall)(item));
|
|
88
|
+
}
|
|
89
|
+
// ============================================================================
|
|
90
|
+
// DynamoDB Key Builders
|
|
91
|
+
// ============================================================================
|
|
92
|
+
/**
|
|
93
|
+
* Creates a DynamoDB key object
|
|
94
|
+
*/
|
|
95
|
+
function createKey(pk, sk) {
|
|
96
|
+
return (0, util_dynamodb_1.marshall)({ pk, sk });
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Creates multiple DynamoDB keys
|
|
100
|
+
*/
|
|
101
|
+
function createKeys(items) {
|
|
102
|
+
return items.map(({ pk, sk }) => createKey(pk, sk));
|
|
103
|
+
}
|
|
104
|
+
// ============================================================================
|
|
105
|
+
// Batch Operation Builders
|
|
106
|
+
// ============================================================================
|
|
107
|
+
/**
|
|
108
|
+
* DynamoDB batch size limit
|
|
109
|
+
*/
|
|
110
|
+
exports.DYNAMODB_BATCH_SIZE = 25;
|
|
111
|
+
/**
|
|
112
|
+
* Creates a BatchWriteItem request structure for DynamoDB
|
|
113
|
+
*/
|
|
114
|
+
function createBatchWriteRequest(tableName, items) {
|
|
115
|
+
return {
|
|
116
|
+
RequestItems: {
|
|
117
|
+
[tableName]: items.map((item) => ({
|
|
118
|
+
PutRequest: { Item: (0, util_dynamodb_1.marshall)(item) },
|
|
119
|
+
})),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Creates a BatchGetItem request structure for DynamoDB
|
|
125
|
+
*/
|
|
126
|
+
function createBatchGetRequest(tableName, keys) {
|
|
127
|
+
return {
|
|
128
|
+
RequestItems: {
|
|
129
|
+
[tableName]: {
|
|
130
|
+
Keys: createKeys(keys),
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Splits items into batches of the specified size
|
|
137
|
+
*/
|
|
138
|
+
function splitIntoBatches(items, batchSize = exports.DYNAMODB_BATCH_SIZE) {
|
|
139
|
+
const batches = [];
|
|
140
|
+
for (let i = 0; i < items.length; i += batchSize) {
|
|
141
|
+
batches.push(items.slice(i, i + batchSize));
|
|
142
|
+
}
|
|
143
|
+
return batches;
|
|
144
|
+
}
|
|
145
|
+
// ============================================================================
|
|
146
|
+
// S3 Object Builders
|
|
147
|
+
// ============================================================================
|
|
148
|
+
/**
|
|
149
|
+
* Creates test content for S3 objects
|
|
150
|
+
*/
|
|
151
|
+
function createS3Content(options = {}) {
|
|
152
|
+
const { type = 'text', size = 1024, data } = options;
|
|
153
|
+
switch (type) {
|
|
154
|
+
case 'json':
|
|
155
|
+
return Buffer.from(JSON.stringify(data || { test: true, timestamp: Date.now() }));
|
|
156
|
+
case 'binary':
|
|
157
|
+
return Buffer.alloc(size, 0xff);
|
|
158
|
+
case 'text':
|
|
159
|
+
default:
|
|
160
|
+
return Buffer.from('x'.repeat(size));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Creates S3 object metadata
|
|
165
|
+
*/
|
|
166
|
+
function createS3Metadata(options = {}) {
|
|
167
|
+
const { contentType = 'application/octet-stream', customMetadata } = options;
|
|
168
|
+
return {
|
|
169
|
+
ContentType: contentType,
|
|
170
|
+
...(customMetadata && { Metadata: customMetadata }),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// ============================================================================
|
|
174
|
+
// SQS Message Builders
|
|
175
|
+
// ============================================================================
|
|
176
|
+
/**
|
|
177
|
+
* Creates an SQS message body
|
|
178
|
+
*/
|
|
179
|
+
function createSQSMessageBody(data) {
|
|
180
|
+
return JSON.stringify(data);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Creates multiple SQS message entries for batch operations
|
|
184
|
+
*/
|
|
185
|
+
function createSQSBatchEntries(messages) {
|
|
186
|
+
return messages.map(({ id, body, delaySeconds, messageAttributes }) => ({
|
|
187
|
+
Id: id,
|
|
188
|
+
MessageBody: JSON.stringify(body),
|
|
189
|
+
...(delaySeconds !== undefined && { DelaySeconds: delaySeconds }),
|
|
190
|
+
...(messageAttributes && { MessageAttributes: messageAttributes }),
|
|
191
|
+
}));
|
|
192
|
+
}
|
|
193
|
+
// ============================================================================
|
|
194
|
+
// SNS Message Builders
|
|
195
|
+
// ============================================================================
|
|
196
|
+
/**
|
|
197
|
+
* Creates an SNS message for publishing
|
|
198
|
+
*/
|
|
199
|
+
function createSNSMessage(options) {
|
|
200
|
+
const { subject, message, messageAttributes } = options;
|
|
201
|
+
return {
|
|
202
|
+
...(subject && { Subject: subject }),
|
|
203
|
+
Message: typeof message === 'string' ? message : JSON.stringify(message),
|
|
204
|
+
...(messageAttributes && { MessageAttributes: messageAttributes }),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// ============================================================================
|
|
208
|
+
// Step Functions Input Builders
|
|
209
|
+
// ============================================================================
|
|
210
|
+
/**
|
|
211
|
+
* Creates Step Functions execution input
|
|
212
|
+
*/
|
|
213
|
+
function createSFNInput(data) {
|
|
214
|
+
return JSON.stringify(data);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Creates a Step Functions execution name
|
|
218
|
+
*/
|
|
219
|
+
function createSFNExecutionName(prefix = 'test-execution') {
|
|
220
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).substring(7)}`;
|
|
221
|
+
}
|
|
222
|
+
// ============================================================================
|
|
223
|
+
// Generic Test Data Generators
|
|
224
|
+
// ============================================================================
|
|
225
|
+
/**
|
|
226
|
+
* Creates a random string of specified length
|
|
227
|
+
*/
|
|
228
|
+
function createRandomString(length) {
|
|
229
|
+
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
230
|
+
let result = '';
|
|
231
|
+
for (let i = 0; i < length; i++) {
|
|
232
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
233
|
+
}
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Creates test data with nested structures
|
|
238
|
+
*/
|
|
239
|
+
function createNestedTestData(depth, breadth = 3) {
|
|
240
|
+
if (depth <= 0) {
|
|
241
|
+
return { value: createRandomString(10) };
|
|
242
|
+
}
|
|
243
|
+
const result = {};
|
|
244
|
+
for (let i = 0; i < breadth; i++) {
|
|
245
|
+
result[`level_${depth}_item_${i}`] = createNestedTestData(depth - 1, breadth);
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Creates test data with various JavaScript types
|
|
251
|
+
*/
|
|
252
|
+
function createMixedTypeTestData() {
|
|
253
|
+
return {
|
|
254
|
+
stringValue: 'test string',
|
|
255
|
+
numberValue: 42,
|
|
256
|
+
floatValue: 3.14159,
|
|
257
|
+
booleanTrue: true,
|
|
258
|
+
booleanFalse: false,
|
|
259
|
+
nullValue: null,
|
|
260
|
+
arrayValue: [1, 2, 3, 'four', { five: 5 }],
|
|
261
|
+
objectValue: {
|
|
262
|
+
nested: {
|
|
263
|
+
deep: {
|
|
264
|
+
value: 'deep value',
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
dateString: new Date().toISOString(),
|
|
269
|
+
emptyString: '',
|
|
270
|
+
emptyArray: [],
|
|
271
|
+
emptyObject: {},
|
|
272
|
+
largeNumber: Number.MAX_SAFE_INTEGER,
|
|
273
|
+
negativeNumber: -999,
|
|
274
|
+
zeroValue: 0,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Creates large test data for performance/memory tests
|
|
279
|
+
*/
|
|
280
|
+
function createLargeTestData(options = {}) {
|
|
281
|
+
const { itemCount = 1000, stringLength = 100, includeNested = false, } = options;
|
|
282
|
+
const items = Array.from({ length: itemCount }, (_, i) => ({
|
|
283
|
+
id: i,
|
|
284
|
+
name: `item-${i}`,
|
|
285
|
+
data: createRandomString(stringLength),
|
|
286
|
+
...(includeNested && { nested: createNestedTestData(2, 2) }),
|
|
287
|
+
}));
|
|
288
|
+
return {
|
|
289
|
+
items,
|
|
290
|
+
metadata: {
|
|
291
|
+
totalCount: itemCount,
|
|
292
|
+
generatedAt: new Date().toISOString(),
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
// ============================================================================
|
|
297
|
+
// Unmarshall Utilities
|
|
298
|
+
// ============================================================================
|
|
299
|
+
/**
|
|
300
|
+
* Unmarshalls a DynamoDB item to a plain JavaScript object
|
|
301
|
+
*/
|
|
302
|
+
function unmarshallItem(item) {
|
|
303
|
+
return (0, util_dynamodb_1.unmarshall)(item);
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Unmarshalls multiple DynamoDB items
|
|
307
|
+
*/
|
|
308
|
+
function unmarshallItems(items) {
|
|
309
|
+
return items.map((item) => unmarshallItem(item));
|
|
310
|
+
}
|
|
311
|
+
// ============================================================================
|
|
312
|
+
// Index File Export
|
|
313
|
+
// ============================================================================
|
|
314
|
+
/**
|
|
315
|
+
* Re-export for convenience
|
|
316
|
+
*/
|
|
317
|
+
var util_dynamodb_2 = require("@aws-sdk/util-dynamodb");
|
|
318
|
+
Object.defineProperty(exports, "marshall", { enumerable: true, get: function () { return util_dynamodb_2.marshall; } });
|
|
319
|
+
Object.defineProperty(exports, "unmarshall", { enumerable: true, get: function () { return util_dynamodb_2.unmarshall; } });
|
|
320
|
+
//# sourceMappingURL=test-data-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-data-builders.js","sourceRoot":"","sources":["../../../src/integration/utilities/test-data-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,15 @@ export interface INotification {
|
|
|
18
18
|
/** Optional payload with changed data */
|
|
19
19
|
content?: object;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Email tag for SES notifications.
|
|
23
|
+
*/
|
|
24
|
+
export interface EmailTag {
|
|
25
|
+
/** Tag name (e.g., 'department', 'campaign') */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Tag value (e.g., 'finance', 'welcome-series') */
|
|
28
|
+
value: string;
|
|
29
|
+
}
|
|
21
30
|
/**
|
|
22
31
|
* Email attachment for SES notifications.
|
|
23
32
|
*/
|
|
@@ -50,6 +59,8 @@ export interface EmailNotification {
|
|
|
50
59
|
replyToAddrs?: string[];
|
|
51
60
|
/** Optional file attachments */
|
|
52
61
|
attachments?: Attachment[];
|
|
62
|
+
/** AWS SES Tags for categorization/filtering */
|
|
63
|
+
emailTags?: EmailTag[];
|
|
53
64
|
}
|
|
54
65
|
/**
|
|
55
66
|
* Configuration for SES Inline Templates.
|
|
@@ -83,4 +94,6 @@ export interface TemplatedEmailNotification {
|
|
|
83
94
|
data: Record<string, any>;
|
|
84
95
|
/** Optional configuration set name to handle open/click tracking events */
|
|
85
96
|
configurationSetName?: string;
|
|
97
|
+
/** AWS SES Tags for categorization/filtering */
|
|
98
|
+
emailTags?: EmailTag[];
|
|
86
99
|
}
|
|
@@ -36,6 +36,10 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
36
36
|
CcAddresses: msg.ccAddrs,
|
|
37
37
|
BccAddresses: msg.bccAddrs,
|
|
38
38
|
};
|
|
39
|
+
const emailTags = msg.emailTags?.map((tag) => ({
|
|
40
|
+
Name: tag.name,
|
|
41
|
+
Value: tag.value,
|
|
42
|
+
}));
|
|
39
43
|
if (!msg.attachments || msg.attachments.length === 0) {
|
|
40
44
|
this.logger.log(`Sending simple email to ${msg.toAddrs.join(', ')}`);
|
|
41
45
|
const command = new client_sesv2_1.SendEmailCommand({
|
|
@@ -48,6 +52,7 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
48
52
|
},
|
|
49
53
|
},
|
|
50
54
|
ReplyToAddresses: msg.replyToAddrs,
|
|
55
|
+
EmailTags: emailTags,
|
|
51
56
|
});
|
|
52
57
|
const result = await this[CLIENT_INSTANCE].send(command);
|
|
53
58
|
return result;
|
|
@@ -80,6 +85,7 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
80
85
|
Content: {
|
|
81
86
|
Raw: { Data: emailBuffer },
|
|
82
87
|
},
|
|
88
|
+
EmailTags: emailTags,
|
|
83
89
|
});
|
|
84
90
|
const result = await this[CLIENT_INSTANCE].send(command);
|
|
85
91
|
return result;
|
|
@@ -120,13 +126,14 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
120
126
|
if (!text)
|
|
121
127
|
return '';
|
|
122
128
|
// Regex Explanation: /\{\{([^}]{1,255})\}\}/g
|
|
123
|
-
//
|
|
124
|
-
//
|
|
129
|
+
// 1. [^}]: Matches any character that is NOT a closing curly brace.
|
|
130
|
+
// 2. {1,255}: Limits length to prevent ReDoS.
|
|
125
131
|
return text.replace(/\{\{([^}]{1,255})\}\}/g, (_, expression) => {
|
|
126
132
|
const key = expression.trim(); // Remove spaces (e.g. {{ code }} -> code)
|
|
127
133
|
const value = getDeepValue(data || {}, key);
|
|
128
|
-
// If value
|
|
129
|
-
|
|
134
|
+
// AWS SES behavior: If the value is missing, the tag remains in the output
|
|
135
|
+
// or is handled by the template engine. We'll keep the original tag here.
|
|
136
|
+
return value !== undefined ? String(value) : `{{${expression}}}`;
|
|
130
137
|
});
|
|
131
138
|
};
|
|
132
139
|
contentPayload = {
|
|
@@ -156,6 +163,10 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
156
163
|
},
|
|
157
164
|
};
|
|
158
165
|
}
|
|
166
|
+
const emailTags = msg.emailTags?.map((tag) => ({
|
|
167
|
+
Name: tag.name,
|
|
168
|
+
Value: tag.value,
|
|
169
|
+
}));
|
|
159
170
|
const command = new client_sesv2_1.SendEmailCommand({
|
|
160
171
|
FromEmailAddress: fromAddress,
|
|
161
172
|
Destination: {
|
|
@@ -166,6 +177,7 @@ let EmailService = EmailService_1 = class EmailService {
|
|
|
166
177
|
ReplyToAddresses: msg.replyToAddrs,
|
|
167
178
|
ConfigurationSetName: msg.configurationSetName,
|
|
168
179
|
Content: contentPayload,
|
|
180
|
+
EmailTags: emailTags,
|
|
169
181
|
});
|
|
170
182
|
const result = await this[CLIENT_INSTANCE].send(command);
|
|
171
183
|
this.logger.log(`Template email sent successfully: ${result.MessageId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/notifications/email.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAI8B;AAC9B,2CAAmD;AACnD,2CAA8C;AAC9C,4DAAmC;AAInC,MAAM,eAAe,GAAG,MAAM,EAAE,CAAA;AAGzB,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAIvB,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;QAHjC,WAAM,GAAG,IAAI,eAAM,CAAC,cAAY,CAAC,IAAI,CAAC,CAAA;QAIrD,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,0BAAW,CAAC;YACtC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAS,cAAc,CAAC;YAC5C,MAAM,EAAE,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC;SACzC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAsB;QACpC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;YACrE,MAAM,WAAW,GAAG;gBAClB,WAAW,EAAE,GAAG,CAAC,OAAO;gBACxB,WAAW,EAAE,GAAG,CAAC,OAAO;gBACxB,YAAY,EAAE,GAAG,CAAC,QAAQ;aAC3B,CAAA;YAED,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAEpE,MAAM,OAAO,GAAG,IAAI,+BAAgB,CAAC;oBACnC,gBAAgB,EAAE,WAAW;oBAC7B,WAAW,EAAE,WAAW;oBACxB,OAAO,EAAE;wBACP,MAAM,EAAE;4BACN,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;4BAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE;yBACnC;qBACF;oBACD,gBAAgB,EAAE,GAAG,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"email.service.js","sourceRoot":"","sources":["../../src/notifications/email.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mbc-cqrs-serverless/core",
|
|
3
|
-
"version": "1.1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "CQRS and event base core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mbc",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"serverless-step-functions-local": "^0.5.1",
|
|
89
89
|
"supertest": "^7.0.0"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "f5ce26f50fa1d446a29a5a1771ca107ce426e7bc"
|
|
92
92
|
}
|