@trunkrs/common 1.12.4 → 3.0.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/models/enum/MimeType.d.ts +2 -1
- package/models/enum/MimeType.js +1 -0
- package/models/enum/MimeType.js.map +1 -1
- package/package.json +33 -6
- package/providers/email.d.ts +1 -0
- package/providers/email.js +6 -5
- package/providers/email.js.map +1 -1
- package/services/aws/LambdaClient/LambdaInvocationFailedError.d.ts +1 -1
- package/services/aws/LambdaClient/LambdaInvocationFailedError.js +3 -3
- package/services/aws/LambdaClient/LambdaInvocationFailedError.js.map +1 -1
- package/services/aws/LambdaClient/index.d.ts +3 -2
- package/services/aws/LambdaClient/index.js +6 -4
- package/services/aws/LambdaClient/index.js.map +1 -1
- package/services/aws/SecretsClient.js +7 -13
- package/services/aws/SecretsClient.js.map +1 -1
- package/services/aws/dynamodb/BaseDynamoDataStorage.d.ts +6 -4
- package/services/aws/dynamodb/BaseDynamoDataStorage.js +55 -42
- package/services/aws/dynamodb/BaseDynamoDataStorage.js.map +1 -1
- package/services/aws/dynamodb/DynamoDataStorage.d.ts +8 -6
- package/services/aws/dynamodb/DynamoDataStorage.js +50 -40
- package/services/aws/dynamodb/DynamoDataStorage.js.map +1 -1
- package/services/aws/dynamodb/DynamoIndexDataStorage.d.ts +5 -2
- package/services/aws/dynamodb/DynamoIndexDataStorage.js +27 -17
- package/services/aws/dynamodb/DynamoIndexDataStorage.js.map +1 -1
- package/services/aws/dynamodb/interfaces/QueryableDataStorage.d.ts +5 -1
- package/services/aws/dynamodb/types/DeleteRequest.d.ts +4 -0
- package/services/aws/dynamodb/types/DeleteRequest.js +3 -0
- package/services/aws/dynamodb/types/DeleteRequest.js.map +1 -0
- package/services/aws/dynamodb/types/PutRequest.d.ts +4 -0
- package/services/aws/dynamodb/types/PutRequest.js +3 -0
- package/services/aws/dynamodb/types/PutRequest.js.map +1 -0
- package/services/aws/dynamodb/types/WriteRequest.d.ts +7 -0
- package/services/aws/dynamodb/types/WriteRequest.js +3 -0
- package/services/aws/dynamodb/types/WriteRequest.js.map +1 -0
- package/services/aws/dynamodb/utils/query/QueryBuilder.d.ts +3 -3
- package/services/aws/dynamodb/utils/query/QueryBuilder.js.map +1 -1
- package/services/aws/dynamodb/utils/query/QueryParameters.d.ts +0 -3
- package/services/email/SESTemplateClient.d.ts +2 -2
- package/services/email/SESTemplateClient.js +5 -3
- package/services/email/SESTemplateClient.js.map +1 -1
- package/services/email/__tests__/SESTemplateClient.spec.js +15 -13
- package/services/email/__tests__/SESTemplateClient.spec.js.map +1 -1
- package/services/queue/EventBridgeClient.js +8 -14
- package/services/queue/EventBridgeClient.js.map +1 -1
- package/services/queue/KinesisClient.d.ts +2 -2
- package/services/queue/KinesisClient.js +9 -10
- package/services/queue/KinesisClient.js.map +1 -1
- package/services/queue/SNSQueueClient.js +8 -20
- package/services/queue/SNSQueueClient.js.map +1 -1
- package/services/queue/SQSQueueClient.js +7 -11
- package/services/queue/SQSQueueClient.js.map +1 -1
- package/services/state-machine/StepFunctionsClient.js +5 -10
- package/services/state-machine/StepFunctionsClient.js.map +1 -1
- package/utils/caching/S3Cache.js +26 -31
- package/utils/caching/S3Cache.js.map +1 -1
- package/utils/caching/SecretCache.js +16 -22
- package/utils/caching/SecretCache.js.map +1 -1
- package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.d.ts +2 -1
- package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.js +2 -2
- package/utils/handlers/QueueHandlerBuilder/extractors/DynamoStreamExtractor.js.map +1 -1
- package/utils/tracing.d.ts +1 -1
- package/utils/tracing.js +11 -15
- package/utils/tracing.js.map +1 -1
- package/utils/getAWS.d.ts +0 -3
- package/utils/getAWS.js +0 -15
- package/utils/getAWS.js.map +0 -1
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
|
|
6
7
|
const utils_1 = require("./utils");
|
|
7
8
|
const BaseDynamoDataStorage_1 = __importDefault(require("./BaseDynamoDataStorage"));
|
|
8
9
|
const BatchSizeTooBigError_1 = __importDefault(require("./BatchSizeTooBigError"));
|
|
@@ -24,21 +25,18 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
|
|
|
24
25
|
[this.tableName]: batch,
|
|
25
26
|
};
|
|
26
27
|
do {
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
RequestItems: requestItems,
|
|
30
|
-
})
|
|
31
|
-
.promise();
|
|
28
|
+
const command = new lib_dynamodb_1.BatchWriteCommand({ RequestItems: requestItems });
|
|
29
|
+
const result = await this.documentClient.send(command);
|
|
32
30
|
requestItems = result.UnprocessedItems;
|
|
33
31
|
} while (requestItems && Object.keys(requestItems).length > 0);
|
|
34
32
|
}
|
|
35
33
|
}
|
|
36
34
|
async get(key) {
|
|
37
|
-
const
|
|
35
|
+
const command = new lib_dynamodb_1.GetCommand({
|
|
38
36
|
TableName: this.tableName,
|
|
39
37
|
Key: key,
|
|
40
|
-
};
|
|
41
|
-
const result = await this.documentClient.
|
|
38
|
+
});
|
|
39
|
+
const result = await this.documentClient.send(command);
|
|
42
40
|
return result.Item ? result.Item : null;
|
|
43
41
|
}
|
|
44
42
|
async batchGet(keys, batchSize = 100) {
|
|
@@ -47,14 +45,12 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
|
|
|
47
45
|
batches.push(keys.splice(0, batchSize).filter((key) => key));
|
|
48
46
|
}
|
|
49
47
|
const batchResults = await Promise.all(batches.map(async (batch) => {
|
|
50
|
-
const
|
|
48
|
+
const command = new lib_dynamodb_1.BatchGetCommand({
|
|
51
49
|
RequestItems: {
|
|
52
50
|
[this.tableName]: { Keys: batch },
|
|
53
51
|
},
|
|
54
|
-
};
|
|
55
|
-
const results = await this.documentClient
|
|
56
|
-
.batchGet(dynamoBatchGetRequest)
|
|
57
|
-
.promise();
|
|
52
|
+
});
|
|
53
|
+
const results = await this.documentClient.send(command);
|
|
58
54
|
return ((results.Responses &&
|
|
59
55
|
results.Responses[this.tableName]) || []);
|
|
60
56
|
}));
|
|
@@ -63,42 +59,57 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
|
|
|
63
59
|
return results;
|
|
64
60
|
}, []);
|
|
65
61
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
62
|
+
query(query) {
|
|
63
|
+
const builderParams = {
|
|
64
|
+
query,
|
|
65
|
+
tableName: this.tableName,
|
|
66
|
+
primaryKeys: this.keys,
|
|
67
|
+
};
|
|
68
|
+
const ddbQuery = utils_1.QueryBuilder.buildQuery(builderParams);
|
|
69
|
+
return this.executeQuery(ddbQuery);
|
|
70
|
+
}
|
|
71
|
+
scan(query) {
|
|
72
|
+
const builderParams = {
|
|
73
|
+
query,
|
|
74
|
+
tableName: this.tableName,
|
|
75
|
+
primaryKeys: this.keys,
|
|
76
|
+
};
|
|
77
|
+
const ddbQuery = utils_1.QueryBuilder.buildScan(builderParams);
|
|
78
|
+
return this.executeScan(ddbQuery);
|
|
79
|
+
}
|
|
80
|
+
queryForPage(query, lastEvaluatedKey) {
|
|
81
|
+
const builderParams = {
|
|
82
|
+
query,
|
|
83
|
+
tableName: this.tableName,
|
|
84
|
+
primaryKeys: this.keys,
|
|
85
|
+
};
|
|
86
|
+
const ddbQuery = utils_1.QueryBuilder.buildQuery(builderParams);
|
|
87
|
+
return this.executePaginatedQuery(ddbQuery, lastEvaluatedKey);
|
|
75
88
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return result;
|
|
89
|
+
scanForPage(query, lastEvaluatedKey) {
|
|
90
|
+
const builderParams = {
|
|
91
|
+
query,
|
|
92
|
+
tableName: this.tableName,
|
|
93
|
+
primaryKeys: this.keys,
|
|
94
|
+
};
|
|
95
|
+
const ddbQuery = utils_1.QueryBuilder.buildScan(builderParams);
|
|
96
|
+
return this.executePaginatedScan(ddbQuery, lastEvaluatedKey);
|
|
85
97
|
}
|
|
86
98
|
async findOne(query) {
|
|
87
99
|
const limitedQuery = {
|
|
88
100
|
...query,
|
|
89
101
|
limit: 1,
|
|
90
102
|
};
|
|
91
|
-
const [result] = await this.
|
|
103
|
+
const [result] = await this.query(limitedQuery);
|
|
92
104
|
return result !== null && result !== void 0 ? result : null;
|
|
93
105
|
}
|
|
94
106
|
async remove(entity) {
|
|
95
107
|
const keyPair = this.getKeyPairFromModel(entity);
|
|
96
|
-
|
|
97
|
-
.delete({
|
|
108
|
+
const command = new lib_dynamodb_1.DeleteCommand({
|
|
98
109
|
TableName: this.tableName,
|
|
99
110
|
Key: keyPair,
|
|
100
|
-
})
|
|
101
|
-
|
|
111
|
+
});
|
|
112
|
+
await this.documentClient.send(command);
|
|
102
113
|
}
|
|
103
114
|
async batchRemove(entities, batchSize = 24) {
|
|
104
115
|
const keyPairs = entities.map((entity) => this.getKeyPairFromModel(entity));
|
|
@@ -119,12 +130,11 @@ class DynamoDataStorage extends BaseDynamoDataStorage_1.default {
|
|
|
119
130
|
return entities;
|
|
120
131
|
}
|
|
121
132
|
async save(entity) {
|
|
122
|
-
|
|
123
|
-
.put({
|
|
133
|
+
const command = new lib_dynamodb_1.PutCommand({
|
|
124
134
|
TableName: this.tableName,
|
|
125
135
|
Item: entity,
|
|
126
|
-
})
|
|
127
|
-
|
|
136
|
+
});
|
|
137
|
+
await this.documentClient.send(command);
|
|
128
138
|
return entity;
|
|
129
139
|
}
|
|
130
140
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoDataStorage.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"DynamoDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoDataStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,14 @@ import BaseDynamoDataStorage from './BaseDynamoDataStorage';
|
|
|
2
2
|
import { QueryParameters } from './utils';
|
|
3
3
|
import QueryableDataStorage from './interfaces/QueryableDataStorage';
|
|
4
4
|
import PaginatedFindResult from './interfaces/PaginatedFindResult';
|
|
5
|
+
declare type NewType<TResultEntity> = TResultEntity;
|
|
5
6
|
declare abstract class DynamoIndexDataStorage<TEntity> extends BaseDynamoDataStorage<TEntity> implements QueryableDataStorage<TEntity> {
|
|
6
7
|
protected readonly indexName: string;
|
|
7
8
|
protected constructor(tableName: string, indexName: string);
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
query<TResultEntity = TEntity>(query: QueryParameters<TEntity>): Promise<TResultEntity[]>;
|
|
10
|
+
queryForPage<TResultEntity = TEntity>(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
|
|
11
|
+
scan<TResultEntity = TEntity>(query: QueryParameters<TEntity>): Promise<NewType<TResultEntity>[]>;
|
|
12
|
+
scanForPage<TResultEntity = TEntity>(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TResultEntity>>;
|
|
10
13
|
findOne(query: Omit<QueryParameters<TEntity>, 'limit'>): Promise<TEntity | null>;
|
|
11
14
|
}
|
|
12
15
|
export default DynamoIndexDataStorage;
|
|
@@ -10,42 +10,52 @@ class DynamoIndexDataStorage extends BaseDynamoDataStorage_1.default {
|
|
|
10
10
|
super(tableName);
|
|
11
11
|
this.indexName = indexName;
|
|
12
12
|
}
|
|
13
|
-
|
|
14
|
-
var _a, _b;
|
|
15
|
-
const queryOp = (_b = (_a = query.queryOptions) === null || _a === void 0 ? void 0 : _a.operation) !== null && _b !== void 0 ? _b : 'Query';
|
|
13
|
+
query(query) {
|
|
16
14
|
const builderParams = {
|
|
17
15
|
query,
|
|
18
16
|
tableName: this.tableName,
|
|
19
17
|
primaryKeys: this.keys,
|
|
20
18
|
indexName: this.indexName,
|
|
21
19
|
};
|
|
22
|
-
const ddbQuery =
|
|
23
|
-
|
|
24
|
-
: utils_1.QueryBuilder.buildQuery(builderParams);
|
|
25
|
-
const result = await this.executeOperation(queryOp, ddbQuery);
|
|
26
|
-
return result;
|
|
20
|
+
const ddbQuery = utils_1.QueryBuilder.buildQuery(builderParams);
|
|
21
|
+
return this.executeQuery(ddbQuery);
|
|
27
22
|
}
|
|
28
|
-
|
|
29
|
-
var _a, _b;
|
|
30
|
-
const queryOp = (_b = (_a = query.queryOptions) === null || _a === void 0 ? void 0 : _a.operation) !== null && _b !== void 0 ? _b : 'Query';
|
|
23
|
+
queryForPage(query, lastEvaluatedKey) {
|
|
31
24
|
const builderParams = {
|
|
32
25
|
query,
|
|
33
26
|
tableName: this.tableName,
|
|
34
27
|
primaryKeys: this.keys,
|
|
35
28
|
indexName: this.indexName,
|
|
36
29
|
};
|
|
37
|
-
const ddbQuery =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
30
|
+
const ddbQuery = utils_1.QueryBuilder.buildQuery(builderParams);
|
|
31
|
+
return this.executePaginatedQuery(ddbQuery, lastEvaluatedKey);
|
|
32
|
+
}
|
|
33
|
+
scan(query) {
|
|
34
|
+
const builderParams = {
|
|
35
|
+
query,
|
|
36
|
+
tableName: this.tableName,
|
|
37
|
+
primaryKeys: this.keys,
|
|
38
|
+
indexName: this.indexName,
|
|
39
|
+
};
|
|
40
|
+
const ddbQuery = utils_1.QueryBuilder.buildScan(builderParams);
|
|
41
|
+
return this.executeScan(ddbQuery);
|
|
42
|
+
}
|
|
43
|
+
scanForPage(query, lastEvaluatedKey) {
|
|
44
|
+
const builderParams = {
|
|
45
|
+
query,
|
|
46
|
+
tableName: this.tableName,
|
|
47
|
+
primaryKeys: this.keys,
|
|
48
|
+
indexName: this.indexName,
|
|
49
|
+
};
|
|
50
|
+
const ddbQuery = utils_1.QueryBuilder.buildScan(builderParams);
|
|
51
|
+
return this.executePaginatedScan(ddbQuery, lastEvaluatedKey);
|
|
42
52
|
}
|
|
43
53
|
async findOne(query) {
|
|
44
54
|
const limitedQuery = {
|
|
45
55
|
...query,
|
|
46
56
|
limit: 1,
|
|
47
57
|
};
|
|
48
|
-
const [result] = await this.
|
|
58
|
+
const [result] = await this.query(limitedQuery);
|
|
49
59
|
return result !== null && result !== void 0 ? result : null;
|
|
50
60
|
}
|
|
51
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamoIndexDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoIndexDataStorage.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2D;AAC3D,mCAAuD;
|
|
1
|
+
{"version":3,"file":"DynamoIndexDataStorage.js","sourceRoot":"","sources":["../../../../services/aws/dynamodb/DynamoIndexDataStorage.ts"],"names":[],"mappings":";;;;;AAAA,oFAA2D;AAC3D,mCAAuD;AAMvD,MAAe,sBACb,SAAQ,+BAA8B;IAGtC,YACE,SAAiB,EACE,SAAiB;QAEpC,KAAK,CAAC,SAAS,CAAC,CAAA;QAFG,cAAS,GAAT,SAAS,CAAQ;IAGtC,CAAC;IAEM,KAAK,CACV,KAA+B;QAE/B,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;QAED,MAAM,QAAQ,GAAG,oBAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAEvD,OAAO,IAAI,CAAC,YAAY,CAAgB,QAAQ,CAAC,CAAA;IACnD,CAAC;IAEM,YAAY,CACjB,KAA+B,EAC/B,gBAAyB;QAEzB,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;QAED,MAAM,QAAQ,GAAG,oBAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAEvD,OAAO,IAAI,CAAC,qBAAqB,CAAgB,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAC9E,CAAC;IAEM,IAAI,CACT,KAA+B;QAE/B,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;QAED,MAAM,QAAQ,GAAG,oBAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEtD,OAAO,IAAI,CAAC,WAAW,CAAgB,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEM,WAAW,CAChB,KAA+B,EAC/B,gBAAyB;QAEzB,MAAM,aAAa,GAAG;YACpB,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAA;QAED,MAAM,QAAQ,GAAG,oBAAY,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QAEtD,OAAO,IAAI,CAAC,oBAAoB,CAAgB,QAAQ,EAAE,gBAAgB,CAAC,CAAA;IAC7E,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,KAA8C;QAE9C,MAAM,YAAY,GAAG;YACnB,GAAG,KAAK;YACR,KAAK,EAAE,CAAC;SACT,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/C,OAAO,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,CAAA;IACvB,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAA"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { QueryParameters } from '../utils';
|
|
2
|
+
import PaginatedFindResult from './PaginatedFindResult';
|
|
2
3
|
interface QueryableDataStorage<TEntity> {
|
|
3
|
-
|
|
4
|
+
query(query: QueryParameters<TEntity>): Promise<TEntity[]>;
|
|
5
|
+
queryForPage(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TEntity>>;
|
|
6
|
+
scan(query: QueryParameters<TEntity>): Promise<TEntity[]>;
|
|
7
|
+
scanForPage(query: QueryParameters<TEntity>, lastEvaluatedKey?: string): Promise<PaginatedFindResult<TEntity>>;
|
|
4
8
|
findOne(query: QueryParameters<TEntity>): Promise<TEntity | null>;
|
|
5
9
|
}
|
|
6
10
|
export default QueryableDataStorage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteRequest.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/types/DeleteRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PutRequest.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/types/PutRequest.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRequest.js","sourceRoot":"","sources":["../../../../../services/aws/dynamodb/types/WriteRequest.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ScanCommandInput, QueryCommandInput } from '@aws-sdk/lib-dynamodb';
|
|
2
2
|
import QueryParameters from './QueryParameters';
|
|
3
3
|
export interface QueryBuilderParams<TEntity> {
|
|
4
4
|
query: QueryParameters<TEntity>;
|
|
@@ -13,7 +13,7 @@ declare class QueryBuilder {
|
|
|
13
13
|
private static buildQueryStatements;
|
|
14
14
|
private static buildExpression;
|
|
15
15
|
private static splitKeyAndFilterCondition;
|
|
16
|
-
static buildScan<TEntity>({ query, tableName, indexName, }: QueryBuilderParams<TEntity>):
|
|
17
|
-
static buildQuery<TEntity>({ query, primaryKeys, tableName, indexName, }: QueryBuilderParams<TEntity>):
|
|
16
|
+
static buildScan<TEntity>({ query, tableName, indexName, }: QueryBuilderParams<TEntity>): ScanCommandInput;
|
|
17
|
+
static buildQuery<TEntity>({ query, primaryKeys, tableName, indexName, }: QueryBuilderParams<TEntity>): QueryCommandInput;
|
|
18
18
|
}
|
|
19
19
|
export default QueryBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":";;;;;AAEA,iFAAwD;
|
|
1
|
+
{"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../../../services/aws/dynamodb/utils/query/QueryBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { SESClient } from '@aws-sdk/client-ses';
|
|
1
2
|
import Template from '../../models/email/Template';
|
|
2
3
|
import EmailContent from '../../models/email/EmailContent';
|
|
3
4
|
import TemplateClient from './TemplateClient';
|
|
4
|
-
import { SES } from 'aws-sdk';
|
|
5
5
|
import { Cache } from '../../utils/caching';
|
|
6
6
|
declare class SESTemplateClient extends TemplateClient {
|
|
7
7
|
private readonly sesClient;
|
|
8
8
|
private readonly cache;
|
|
9
|
-
constructor(sesClient:
|
|
9
|
+
constructor(sesClient: SESClient, cache: Cache);
|
|
10
10
|
createEmailFromTemplate<TValues>(templateName: string, templateValues: TValues): Promise<EmailContent>;
|
|
11
11
|
getTemplate(templateName: string): Promise<Template>;
|
|
12
12
|
private assignTemplateValues;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const client_ses_1 = require("@aws-sdk/client-ses");
|
|
6
7
|
const TemplateClient_1 = __importDefault(require("./TemplateClient"));
|
|
7
8
|
const TemplateNotFoundError_1 = __importDefault(require("../../models/errors/email/TemplateNotFoundError"));
|
|
8
9
|
class SESTemplateClient extends TemplateClient_1.default {
|
|
@@ -38,9 +39,10 @@ class SESTemplateClient extends TemplateClient_1.default {
|
|
|
38
39
|
}, {});
|
|
39
40
|
}
|
|
40
41
|
async moveSesTemplateToCache(templateName) {
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const command = new client_ses_1.GetTemplateCommand({
|
|
43
|
+
TemplateName: templateName,
|
|
44
|
+
});
|
|
45
|
+
const { Template: sesTemplate } = await this.sesClient.send(command);
|
|
44
46
|
if (!sesTemplate) {
|
|
45
47
|
throw new TemplateNotFoundError_1.default(templateName);
|
|
46
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SESTemplateClient.js","sourceRoot":"","sources":["../../../services/email/SESTemplateClient.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"SESTemplateClient.js","sourceRoot":"","sources":["../../../services/email/SESTemplateClient.ts"],"names":[],"mappings":";;;;;AAAA,oDAI4B;AAI5B,sEAA6C;AAE7C,4GAAmF;AAEnF,MAAM,iBAAkB,SAAQ,wBAAc;IAC5C,YACmB,SAAoB,EACpB,KAAY;QAE7B,KAAK,EAAE,CAAA;QAHU,cAAS,GAAT,SAAS,CAAW;QACpB,UAAK,GAAL,KAAK,CAAO;IAG/B,CAAC;IAQM,KAAK,CAAC,uBAAuB,CAClC,YAAoB,EACpB,cAAuB;QAEvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;QAErD,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAC5D,CAAC;IASM,KAAK,CAAC,WAAW,CAAC,YAAoB;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,YAAY,CAAC,CAAA;QAE7D,OAAO,QAAQ,IAAI,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAA;IAC9D,CAAC;IAEO,oBAAoB,CAC1B,QAAkB,EAClB,MAAe;QAEf,MAAM,aAAa,GAAG;YACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAA;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CACtC,CAAC,KAAmB,EAAE,YAAoB,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG,YAA8B,CAAA;YAElD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC1B,OAAO,KAAK,CAAA;aACb;YAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,qBAAqB,CAC1D,QAAQ,CAAC,WAAW,CAAW,EAC/B,MAAM,CACP,CAAA;YAED,OAAO;gBACL,GAAG,KAAK;gBACR,CAAC,YAAY,CAAC,EAAE,YAAY;aAC7B,CAAA;QACH,CAAC,EACD,EAAkB,CACnB,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,YAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,+BAAkB,CAAC;YACrC,YAAY,EAAE,YAAY;SAC3B,CAAC,CAAA;QAEF,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEpE,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,+BAAqB,CAAC,YAAY,CAAC,CAAA;SAC9C;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAA;QAErE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,IAAI,EAAE,QAAQ,CAAC,CAAA;QAE9C,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,WAAwB;QAC3D,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,YAAsB;YACxC,OAAO,EAAE,WAAW,CAAC,WAAW;YAChC,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,IAAI,EAAE,WAAW,CAAC,QAAQ;SAC3B,CAAA;IACH,CAAC;CACF;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -1,18 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const faker_1 = require("faker");
|
|
4
|
+
const client_ses_1 = require("@aws-sdk/client-ses");
|
|
5
|
+
const aws_sdk_client_mock_1 = require("aws-sdk-client-mock");
|
|
4
6
|
const __1 = require("..");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
});
|
|
7
|
+
function createMockCache() {
|
|
8
|
+
return {
|
|
9
|
+
get: jest.fn(),
|
|
10
|
+
add: jest.fn(),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
12
13
|
describe('SESTemplateClient', () => {
|
|
13
14
|
let mockCache;
|
|
14
|
-
|
|
15
|
+
const mockSES = (0, aws_sdk_client_mock_1.mockClient)(client_ses_1.SESClient);
|
|
15
16
|
let sut;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
mockSES.reset();
|
|
19
|
+
mockCache = createMockCache();
|
|
20
|
+
sut = new __1.SESTemplateClient(mockSES, mockCache);
|
|
21
|
+
});
|
|
16
22
|
describe('createEmailFromTemplate', () => {
|
|
17
23
|
mockCache = createMockCache();
|
|
18
24
|
const templateName = 'The template name';
|
|
@@ -32,11 +38,7 @@ describe('SESTemplateClient', () => {
|
|
|
32
38
|
html: `<html><body> An email body from ${templateValues.name} of ${templateValues.company} </body></html>`,
|
|
33
39
|
};
|
|
34
40
|
it('Should create valid email content from an SES template', async () => {
|
|
35
|
-
mockSES
|
|
36
|
-
mockSES.getTemplate.mockImplementation(() => ({
|
|
37
|
-
promise: jest.fn().mockResolvedValue(sesTemplate),
|
|
38
|
-
}));
|
|
39
|
-
sut = new __1.SESTemplateClient(mockSES, mockCache);
|
|
41
|
+
mockSES.on(client_ses_1.GetTemplateCommand).resolves(sesTemplate);
|
|
40
42
|
const email = await sut.createEmailFromTemplate(templateName, templateValues);
|
|
41
43
|
expect(email).toEqual(expected);
|
|
42
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SESTemplateClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/SESTemplateClient.spec.ts"],"names":[],"mappings":";;AAAA,iCAAqC;
|
|
1
|
+
{"version":3,"file":"SESTemplateClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/SESTemplateClient.spec.ts"],"names":[],"mappings":";;AAAA,iCAAqC;AACrC,oDAAmE;AACnE,6DAAgD;AAEhD,0BAAsC;AAGtC,SAAS,eAAe;IACtB,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;KACf,CAAA;AACH,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,SAA6C,CAAA;IACjD,MAAM,OAAO,GAAG,IAAA,gCAAU,EAAC,sBAAS,CAAC,CAAA;IACrC,IAAI,GAAsB,CAAA;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,SAAS,GAAG,eAAe,EAAE,CAAA;QAC7B,GAAG,GAAG,IAAI,qBAAiB,CACzB,OAA+B,EAC/B,SAA6B,CAC9B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,SAAS,GAAG,eAAe,EAAE,CAAA;QAC7B,MAAM,YAAY,GAAG,mBAAmB,CAAA;QACxC,MAAM,WAAW,GAAG;YAClB,QAAQ,EAAE;gBACR,YAAY,EAAE,YAAY;gBAC1B,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EACN,wEAAwE;aAC3E;SACF,CAAA;QAED,MAAM,cAAc,GAAG;YACrB,IAAI,EAAE,YAAI,CAAC,SAAS,EAAE;YACtB,OAAO,EAAE,eAAO,CAAC,WAAW,EAAE;SAC/B,CAAA;QAED,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE,yBAAyB,cAAc,CAAC,IAAI,EAAE;YACvD,IAAI,EAAE,mCAAmC,cAAc,CAAC,IAAI,OAAO,cAAc,CAAC,OAAO,iBAAiB;SAC3G,CAAA;QAED,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,OAAO,CAAC,EAAE,CAAC,+BAAkB,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YAEpD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAC7C,YAAY,EACZ,cAAc,CACf,CAAA;YAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;YAC1F,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,gCAAgC;gBACzC,IAAI,EAAE,wEAAwE;aAC/E,CAAA;YAED,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAE7C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAC7C,YAAY,EACZ,cAAc,CACf,CAAA;YAED,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const { EventBridge } = (0, getAWS_1.default)();
|
|
3
|
+
const client_eventbridge_1 = require("@aws-sdk/client-eventbridge");
|
|
8
4
|
class EventBridgeClient {
|
|
9
5
|
constructor(serializer, sourceName, busName, detailType) {
|
|
10
6
|
this.serializer = serializer;
|
|
11
7
|
this.sourceName = sourceName;
|
|
12
8
|
this.busName = busName;
|
|
13
9
|
this.detailType = detailType;
|
|
14
|
-
this.client = new
|
|
10
|
+
this.client = new client_eventbridge_1.EventBridgeClient();
|
|
15
11
|
}
|
|
16
12
|
async sendMessage(request) {
|
|
17
13
|
var _a, _b, _c;
|
|
18
|
-
|
|
19
|
-
.putEvents({
|
|
14
|
+
const command = new client_eventbridge_1.PutEventsCommand({
|
|
20
15
|
Entries: [
|
|
21
16
|
{
|
|
22
17
|
EventBusName: this.busName,
|
|
@@ -26,12 +21,11 @@ class EventBridgeClient {
|
|
|
26
21
|
Resources: (_c = request.options) === null || _c === void 0 ? void 0 : _c.resources,
|
|
27
22
|
},
|
|
28
23
|
],
|
|
29
|
-
})
|
|
30
|
-
|
|
24
|
+
});
|
|
25
|
+
await this.client.send(command);
|
|
31
26
|
}
|
|
32
27
|
async sendBatchMessage(request) {
|
|
33
|
-
|
|
34
|
-
.putEvents({
|
|
28
|
+
const command = new client_eventbridge_1.PutEventsCommand({
|
|
35
29
|
Entries: request.messages.map((message) => {
|
|
36
30
|
var _a, _b, _c;
|
|
37
31
|
return ({
|
|
@@ -42,8 +36,8 @@ class EventBridgeClient {
|
|
|
42
36
|
Resources: (_c = request.options) === null || _c === void 0 ? void 0 : _c.resources,
|
|
43
37
|
});
|
|
44
38
|
}),
|
|
45
|
-
})
|
|
46
|
-
|
|
39
|
+
});
|
|
40
|
+
await this.client.send(command);
|
|
47
41
|
}
|
|
48
42
|
}
|
|
49
43
|
exports.default = EventBridgeClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBridgeClient.js","sourceRoot":"","sources":["../../../services/queue/EventBridgeClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EventBridgeClient.js","sourceRoot":"","sources":["../../../services/queue/EventBridgeClient.ts"],"names":[],"mappings":";;AAAA,oEAGoC;AAWpC,MAAM,iBAAiB;IAGrB,YAImB,UAAsB,EAItB,UAAmB,EAInB,OAAgB,EAKhB,UAAmB;QAbnB,eAAU,GAAV,UAAU,CAAY;QAItB,eAAU,GAAV,UAAU,CAAS;QAInB,YAAO,GAAP,OAAO,CAAS;QAKhB,eAAU,GAAV,UAAU,CAAS;QAnBrB,WAAM,GAAG,IAAI,sCAAoB,EAAE,CAAA;IAoBjD,CAAC;IAEG,KAAK,CAAC,WAAW,CACtB,OAAiE;;QAEjE,MAAM,OAAO,GAAG,IAAI,qCAAgB,CAAC;YACnC,OAAO,EAAE;gBACP;oBACE,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,UAAU,EAAE,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,mCAAI,IAAI,CAAC,UAAU;oBAC1D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;oBAC5D,SAAS,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,SAAS;iBACtC;aACF;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAC3B,OAAsE;QAEtE,MAAM,OAAO,GAAG,IAAI,qCAAgB,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBAC1C,YAAY,EAAE,IAAI,CAAC,OAAO;oBAC1B,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,UAAU,EAAE,MAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,UAAU,mCAAI,IAAI,CAAC,UAAU;oBAC1D,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC;oBACpD,SAAS,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,SAAS;iBACtC,CAAC,CAAA;aAAA,CAAC;SACJ,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { KinesisClient as AWSKinesisClient } from '@aws-sdk/client-kinesis';
|
|
2
2
|
import { Serializer } from '../../utils/serialization';
|
|
3
3
|
import { QueueClient, KinesisMessageOptions, QueueBatchMessageRequest, QueueMessageRequest } from './QueueClient';
|
|
4
4
|
declare class KinesisClient implements QueueClient {
|
|
@@ -6,7 +6,7 @@ declare class KinesisClient implements QueueClient {
|
|
|
6
6
|
private readonly streamName;
|
|
7
7
|
private readonly serializer;
|
|
8
8
|
private readonly defaultPartition;
|
|
9
|
-
constructor(client:
|
|
9
|
+
constructor(client: AWSKinesisClient, streamName: string, serializer: Serializer, defaultPartition: string);
|
|
10
10
|
sendMessage<TMessage>(request: QueueMessageRequest<TMessage, KinesisMessageOptions>): Promise<void>;
|
|
11
11
|
sendBatchMessage<TMessage>(request: QueueBatchMessageRequest<TMessage, KinesisMessageOptions>): Promise<void>;
|
|
12
12
|
}
|