@mbc-cqrs-serverless/core 1.2.0 → 1.2.2
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/context/invoke.js +14 -7
- package/dist/context/invoke.js.map +1 -1
- package/dist/queue/index.d.ts +1 -0
- package/dist/queue/index.js +1 -0
- package/dist/queue/index.js.map +1 -1
- package/dist/queue/queue.module.js +4 -2
- package/dist/queue/queue.module.js.map +1 -1
- package/dist/queue/sns-client-factory.d.ts +2 -2
- package/dist/queue/sns-client-factory.js +4 -6
- package/dist/queue/sns-client-factory.js.map +1 -1
- package/dist/queue/sns.service.js +1 -1
- package/dist/queue/sns.service.js.map +1 -1
- package/dist/queue/sqs-client-factory.d.ts +8 -0
- package/dist/queue/sqs-client-factory.js +35 -0
- package/dist/queue/sqs-client-factory.js.map +1 -0
- package/dist/queue/sqs.service.d.ts +28 -0
- package/dist/queue/sqs.service.js +89 -0
- package/dist/queue/sqs.service.js.map +1 -0
- package/package.json +2 -2
package/dist/context/invoke.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.extractInvokeContext = extractInvokeContext;
|
|
4
4
|
exports.getAuthorizerClaims = getAuthorizerClaims;
|
|
5
5
|
const serverless_express_1 = require("@codegenie/serverless-express");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
6
7
|
const jwt_decode_1 = require("jwt-decode");
|
|
7
8
|
const helpers_1 = require("../helpers");
|
|
8
9
|
function extractInvokeContext(ctx) {
|
|
@@ -17,13 +18,19 @@ function extractInvokeContext(ctx) {
|
|
|
17
18
|
let authorizer = undefined;
|
|
18
19
|
const authToken = request.get('authorization');
|
|
19
20
|
if (authToken) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
try {
|
|
22
|
+
const token = authToken.replace(/^Bearer\s/i, '').trim();
|
|
23
|
+
const claims = (0, jwt_decode_1.jwtDecode)(token);
|
|
24
|
+
authorizer = {
|
|
25
|
+
jwt: {
|
|
26
|
+
claims,
|
|
27
|
+
scopes: claims?.scope?.split(','),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
throw new common_1.UnauthorizedException('Invalid or malformed authorization token');
|
|
33
|
+
}
|
|
27
34
|
}
|
|
28
35
|
return {
|
|
29
36
|
event: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/context/invoke.ts"],"names":[],"mappings":";;AAiFA,
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/context/invoke.ts"],"names":[],"mappings":";;AAiFA,oDAoDC;AAED,kDAsBC;AA7JD,sEAAgE;AAChE,2CAAwE;AAExE,2CAAsC;AAEtC,wCAA8C;AA4E9C,SAAgB,oBAAoB,CAAC,GAAsB;IACzD,IAAI,2BAAiB,EAAE,CAAC;QACtB,OAAO,IAAA,qCAAgB,GAAE,CAAA;IAC3B,CAAC;IACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAA;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiC,CAAA;IACzD,IAAI,UAAU,GAAuB,SAAS,CAAA;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC9C,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YACxD,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAY,KAAK,CAAC,CAAA;YAC1C,UAAU,GAAG;gBACX,GAAG,EAAE;oBACH,MAAM;oBACN,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;iBAClC;aACF,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,8BAAqB,CAC7B,0CAA0C,CAC3C,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE;YAC7C,OAAO,EAAE,OAAO,CAAC,WAAW;YAC5B,OAAO;YACP,cAAc,EAAE;gBACd,UAAU,EAAE,OAAO,CAAC,QAAQ;gBAC5B,IAAI,EAAE;oBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,EAAE;oBAClD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;iBACrC;gBACD,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;gBACtC,UAAU;aACX;SACF;QACD,OAAO,EAAE;YACP,YAAY,EACV,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;SAC9B;KACF,CAAA;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,OAAO,CACL,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,IAAK,EAAgB,CACzE,CAAA;IACD,IAAI;IACJ,mDAAmD;IACnD,mDAAmD;IACnD,kCAAkC;IAClC,kCAAkC;IAClC,0DAA0D;IAC1D,wCAAwC;IACxC,wDAAwD;IACxD,uBAAuB;IACvB,6BAA6B;IAC7B,sBAAsB;IACtB,6BAA6B;IAC7B,qDAAqD;IACrD,uBAAuB;IACvB,+BAA+B;IAC/B,uBAAuB;IACvB,kDAAkD;IAClD,IAAI;AACN,CAAC"}
|
package/dist/queue/index.d.ts
CHANGED
package/dist/queue/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./queue.module"), exports);
|
|
18
18
|
__exportStar(require("./sns.event"), exports);
|
|
19
19
|
__exportStar(require("./sns.service"), exports);
|
|
20
|
+
__exportStar(require("./sqs.service"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/queue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,8CAA2B;AAC3B,gDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queue/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,8CAA2B;AAC3B,gDAA6B;AAC7B,gDAA6B"}
|
|
@@ -10,14 +10,16 @@ exports.QueueModule = void 0;
|
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const sns_service_1 = require("./sns.service");
|
|
12
12
|
const sns_client_factory_1 = require("./sns-client-factory");
|
|
13
|
+
const sqs_service_1 = require("./sqs.service");
|
|
14
|
+
const sqs_client_factory_1 = require("./sqs-client-factory");
|
|
13
15
|
let QueueModule = class QueueModule {
|
|
14
16
|
};
|
|
15
17
|
exports.QueueModule = QueueModule;
|
|
16
18
|
exports.QueueModule = QueueModule = __decorate([
|
|
17
19
|
(0, common_1.Global)(),
|
|
18
20
|
(0, common_1.Module)({
|
|
19
|
-
providers: [sns_service_1.SnsService, sns_client_factory_1.SnsClientFactory],
|
|
20
|
-
exports: [sns_service_1.SnsService],
|
|
21
|
+
providers: [sns_service_1.SnsService, sns_client_factory_1.SnsClientFactory, sqs_service_1.SqsService, sqs_client_factory_1.SqsClientFactory],
|
|
22
|
+
exports: [sns_service_1.SnsService, sqs_service_1.SqsService],
|
|
21
23
|
})
|
|
22
24
|
], QueueModule);
|
|
23
25
|
//# sourceMappingURL=queue.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.module.js","sourceRoot":"","sources":["../../src/queue/queue.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,+CAA0C;AAC1C,6DAAuD;AAOhD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,wBAAU,EAAE,qCAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"queue.module.js","sourceRoot":"","sources":["../../src/queue/queue.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAE/C,+CAA0C;AAC1C,6DAAuD;AACvD,+CAA0C;AAC1C,6DAAuD;AAOhD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,wBAAU,EAAE,qCAAgB,EAAE,wBAAU,EAAE,qCAAgB,CAAC;QACvE,OAAO,EAAE,CAAC,wBAAU,EAAE,wBAAU,CAAC;KAClC,CAAC;GACW,WAAW,CAAG"}
|
|
@@ -2,7 +2,7 @@ import { SNSClient } from '@aws-sdk/client-sns';
|
|
|
2
2
|
import { ConfigService } from '@nestjs/config';
|
|
3
3
|
export declare class SnsClientFactory {
|
|
4
4
|
private readonly config;
|
|
5
|
-
private
|
|
5
|
+
private client;
|
|
6
6
|
constructor(config: ConfigService);
|
|
7
|
-
getClient(
|
|
7
|
+
getClient(): SNSClient;
|
|
8
8
|
}
|
|
@@ -16,17 +16,15 @@ const config_1 = require("@nestjs/config");
|
|
|
16
16
|
let SnsClientFactory = class SnsClientFactory {
|
|
17
17
|
constructor(config) {
|
|
18
18
|
this.config = config;
|
|
19
|
-
this.clients = new Map();
|
|
20
19
|
}
|
|
21
|
-
getClient(
|
|
22
|
-
if (!this.
|
|
23
|
-
|
|
20
|
+
getClient() {
|
|
21
|
+
if (!this.client) {
|
|
22
|
+
this.client = new client_sns_1.SNSClient({
|
|
24
23
|
endpoint: this.config.get('SNS_ENDPOINT'),
|
|
25
24
|
region: this.config.get('SNS_REGION'),
|
|
26
25
|
});
|
|
27
|
-
this.clients.set(topicArn, snsClient);
|
|
28
26
|
}
|
|
29
|
-
return this.
|
|
27
|
+
return this.client;
|
|
30
28
|
}
|
|
31
29
|
};
|
|
32
30
|
exports.SnsClientFactory = SnsClientFactory;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sns-client-factory.js","sourceRoot":"","sources":["../../src/queue/sns-client-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+C;AAC/C,2CAA2C;AAC3C,2CAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;
|
|
1
|
+
{"version":3,"file":"sns-client-factory.js","sourceRoot":"","sources":["../../src/queue/sns-client-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+C;AAC/C,2CAA2C;AAC3C,2CAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAS,CAAC;gBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,cAAc,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC;aAC9C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF,CAAA;AAdY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAI0B,sBAAa;GAHvC,gBAAgB,CAc5B"}
|
|
@@ -25,7 +25,7 @@ let SnsService = class SnsService {
|
|
|
25
25
|
if (!resolvedTopicArn) {
|
|
26
26
|
throw new Error('No topic ARN provided or configured as default.');
|
|
27
27
|
}
|
|
28
|
-
const client = this.snsClientFactory.getClient(
|
|
28
|
+
const client = this.snsClientFactory.getClient();
|
|
29
29
|
return client.send(new client_sns_1.PublishCommand({
|
|
30
30
|
TopicArn: resolvedTopicArn,
|
|
31
31
|
MessageAttributes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../src/queue/sns.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAoD;AACpD,2CAA2C;AAC3C,2CAA8C;AAG9C,6DAAuD;AAGhD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGrB,YACmB,gBAAkC,EAClC,MAAqB;QADrB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAe;QAEtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,eAAe,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,CAAqB,GAAM,EAAE,QAAiB;QACnD,MAAM,gBAAgB,GAAG,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAA;QAEzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../src/queue/sns.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAoD;AACpD,2CAA2C;AAC3C,2CAA8C;AAG9C,6DAAuD;AAGhD,IAAM,UAAU,GAAhB,MAAM,UAAU;IAGrB,YACmB,gBAAkC,EAClC,MAAqB;QADrB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,WAAM,GAAN,MAAM,CAAe;QAEtC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,eAAe,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,CAAqB,GAAM,EAAE,QAAiB;QACnD,MAAM,gBAAgB,GAAG,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAA;QAEzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;QACpE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAEhD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,2BAAc,CAAC;YACjB,QAAQ,EAAE,gBAAgB;YAC1B,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,GAAG,CAAC,MAAM;iBACxB;aACF;YACD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AAhCY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK0B,qCAAgB;QAC1B,sBAAa;GAL7B,UAAU,CAgCtB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SqsClientFactory = void 0;
|
|
13
|
+
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const config_1 = require("@nestjs/config");
|
|
16
|
+
let SqsClientFactory = class SqsClientFactory {
|
|
17
|
+
constructor(config) {
|
|
18
|
+
this.config = config;
|
|
19
|
+
}
|
|
20
|
+
getClient() {
|
|
21
|
+
if (!this.client) {
|
|
22
|
+
this.client = new client_sqs_1.SQSClient({
|
|
23
|
+
endpoint: this.config.get('SQS_ENDPOINT'),
|
|
24
|
+
region: this.config.get('SQS_REGION'),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return this.client;
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
exports.SqsClientFactory = SqsClientFactory;
|
|
31
|
+
exports.SqsClientFactory = SqsClientFactory = __decorate([
|
|
32
|
+
(0, common_1.Injectable)(),
|
|
33
|
+
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
34
|
+
], SqsClientFactory);
|
|
35
|
+
//# sourceMappingURL=sqs-client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs-client-factory.js","sourceRoot":"","sources":["../../src/queue/sqs-client-factory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAA+C;AAC/C,2CAA2C;AAC3C,2CAA8C;AAGvC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAS,CAAC;gBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,cAAc,CAAC;gBACjD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAS,YAAY,CAAC;aAC9C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;CACF,CAAA;AAdY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAI0B,sBAAa;GAHvC,gBAAgB,CAc5B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DeleteMessageBatchCommandOutput, DeleteMessageBatchRequestEntry, DeleteMessageCommandOutput, ReceiveMessageCommandInput, ReceiveMessageCommandOutput, SendMessageBatchCommandOutput, SendMessageBatchRequestEntry, SendMessageCommandInput, SendMessageCommandOutput } from '@aws-sdk/client-sqs';
|
|
2
|
+
import { SqsClientFactory } from './sqs-client-factory';
|
|
3
|
+
export declare class SqsService {
|
|
4
|
+
private readonly sqsClientFactory;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
constructor(sqsClientFactory: SqsClientFactory);
|
|
7
|
+
/**
|
|
8
|
+
* Send a single message to an SQS queue.
|
|
9
|
+
*/
|
|
10
|
+
sendMessage(queueUrl: string, body: string, opts?: Pick<SendMessageCommandInput, 'DelaySeconds' | 'MessageGroupId' | 'MessageDeduplicationId' | 'MessageAttributes'>): Promise<SendMessageCommandOutput>;
|
|
11
|
+
/**
|
|
12
|
+
* Send up to 10 messages to an SQS queue in a single API call.
|
|
13
|
+
* Caller is responsible for ensuring entries.length <= 10.
|
|
14
|
+
*/
|
|
15
|
+
sendMessageBatch(queueUrl: string, entries: SendMessageBatchRequestEntry[]): Promise<SendMessageBatchCommandOutput>;
|
|
16
|
+
/**
|
|
17
|
+
* Receive messages from an SQS queue.
|
|
18
|
+
*/
|
|
19
|
+
receiveMessages(queueUrl: string, opts?: Partial<Pick<ReceiveMessageCommandInput, 'MaxNumberOfMessages' | 'WaitTimeSeconds' | 'VisibilityTimeout' | 'MessageSystemAttributeNames' | 'MessageAttributeNames'>>): Promise<ReceiveMessageCommandOutput>;
|
|
20
|
+
/**
|
|
21
|
+
* Delete a single message from an SQS queue (acknowledge processing).
|
|
22
|
+
*/
|
|
23
|
+
deleteMessage(queueUrl: string, receiptHandle: string): Promise<DeleteMessageCommandOutput>;
|
|
24
|
+
/**
|
|
25
|
+
* Delete up to 10 messages from an SQS queue in a single API call.
|
|
26
|
+
*/
|
|
27
|
+
deleteMessageBatch(queueUrl: string, entries: DeleteMessageBatchRequestEntry[]): Promise<DeleteMessageBatchCommandOutput>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var SqsService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SqsService = void 0;
|
|
14
|
+
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
15
|
+
const common_1 = require("@nestjs/common");
|
|
16
|
+
const sqs_client_factory_1 = require("./sqs-client-factory");
|
|
17
|
+
let SqsService = SqsService_1 = class SqsService {
|
|
18
|
+
constructor(sqsClientFactory) {
|
|
19
|
+
this.sqsClientFactory = sqsClientFactory;
|
|
20
|
+
this.logger = new common_1.Logger(SqsService_1.name);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Send a single message to an SQS queue.
|
|
24
|
+
*/
|
|
25
|
+
async sendMessage(queueUrl, body, opts) {
|
|
26
|
+
const client = this.sqsClientFactory.getClient();
|
|
27
|
+
const result = await client.send(new client_sqs_1.SendMessageCommand({
|
|
28
|
+
...opts,
|
|
29
|
+
QueueUrl: queueUrl,
|
|
30
|
+
MessageBody: body,
|
|
31
|
+
}));
|
|
32
|
+
this.logger.debug(`sendMessage MessageId=${result.MessageId}`);
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Send up to 10 messages to an SQS queue in a single API call.
|
|
37
|
+
* Caller is responsible for ensuring entries.length <= 10.
|
|
38
|
+
*/
|
|
39
|
+
async sendMessageBatch(queueUrl, entries) {
|
|
40
|
+
const client = this.sqsClientFactory.getClient();
|
|
41
|
+
const result = await client.send(new client_sqs_1.SendMessageBatchCommand({
|
|
42
|
+
QueueUrl: queueUrl,
|
|
43
|
+
Entries: entries,
|
|
44
|
+
}));
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Receive messages from an SQS queue.
|
|
49
|
+
*/
|
|
50
|
+
async receiveMessages(queueUrl, opts) {
|
|
51
|
+
const client = this.sqsClientFactory.getClient();
|
|
52
|
+
const result = await client.send(new client_sqs_1.ReceiveMessageCommand({
|
|
53
|
+
MaxNumberOfMessages: 10,
|
|
54
|
+
WaitTimeSeconds: 0,
|
|
55
|
+
...opts,
|
|
56
|
+
QueueUrl: queueUrl,
|
|
57
|
+
}));
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Delete a single message from an SQS queue (acknowledge processing).
|
|
62
|
+
*/
|
|
63
|
+
async deleteMessage(queueUrl, receiptHandle) {
|
|
64
|
+
const client = this.sqsClientFactory.getClient();
|
|
65
|
+
const result = await client.send(new client_sqs_1.DeleteMessageCommand({
|
|
66
|
+
QueueUrl: queueUrl,
|
|
67
|
+
ReceiptHandle: receiptHandle,
|
|
68
|
+
}));
|
|
69
|
+
this.logger.debug(`deleteMessage receiptHandle=${receiptHandle.slice(0, 20)}...`);
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Delete up to 10 messages from an SQS queue in a single API call.
|
|
74
|
+
*/
|
|
75
|
+
async deleteMessageBatch(queueUrl, entries) {
|
|
76
|
+
const client = this.sqsClientFactory.getClient();
|
|
77
|
+
const result = await client.send(new client_sqs_1.DeleteMessageBatchCommand({
|
|
78
|
+
QueueUrl: queueUrl,
|
|
79
|
+
Entries: entries,
|
|
80
|
+
}));
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
exports.SqsService = SqsService;
|
|
85
|
+
exports.SqsService = SqsService = SqsService_1 = __decorate([
|
|
86
|
+
(0, common_1.Injectable)(),
|
|
87
|
+
__metadata("design:paramtypes", [sqs_client_factory_1.SqsClientFactory])
|
|
88
|
+
], SqsService);
|
|
89
|
+
//# sourceMappingURL=sqs.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../src/queue/sqs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,oDAe4B;AAC5B,2CAAmD;AAEnD,6DAAuD;AAGhD,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,YAA6B,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAF9C,WAAM,GAAG,IAAI,eAAM,CAAC,YAAU,CAAC,IAAI,CAAC,CAAA;IAEa,CAAC;IAEnE;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,IAAY,EACZ,IAMC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,+BAAkB,CAAC;YACrB,GAAG,IAAI;YACP,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,IAAI;SAClB,CAAC,CACH,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QAC9D,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CACpB,QAAgB,EAChB,OAAuC;QAEvC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,oCAAuB,CAAC;YAC1B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC,CACH,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,IASC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,kCAAqB,CAAC;YACxB,mBAAmB,EAAE,EAAE;YACvB,eAAe,EAAE,CAAC;YAClB,GAAG,IAAI;YACP,QAAQ,EAAE,QAAQ;SACnB,CAAC,CACH,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,aAAqB;QAErB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,iCAAoB,CAAC;YACvB,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,aAAa;SAC7B,CAAC,CACH,CAAA;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,+BAA+B,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAC/D,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACtB,QAAgB,EAChB,OAAyC;QAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAA;QAChD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAC9B,IAAI,sCAAyB,CAAC;YAC5B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC,CACH,CAAA;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF,CAAA;AAjHY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAIoC,qCAAgB;GAHpD,UAAU,CAiHtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mbc-cqrs-serverless/core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
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": "1a47757dc1d91b650d413d1e414895abf0af8dc9"
|
|
92
92
|
}
|