@dbos-inc/sqs-receive 3.0.23-preview → 3.0.26-preview
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/README.md +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/index.ts +6 -8
- package/package.json +8 -13
- package/{sqs.test.ts → tests/sqs.test.ts} +12 -27
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +2 -3
- package/dist/sqs.test.d.ts +0 -2
- package/dist/sqs.test.d.ts.map +0 -1
- package/dist/sqs.test.js +0 -110
- package/dist/sqs.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/jest.config.js +0 -8
- package/sqs-test-dbos-config.yaml +0 -10
package/README.md
CHANGED
|
@@ -79,7 +79,7 @@ class SQSEventProcessor {
|
|
|
79
79
|
}
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
Finally,
|
|
82
|
+
Finally, launch DBOS. Your SQS receiver is automatically registered with DBOS on construction.
|
|
83
83
|
|
|
84
84
|
```typescript
|
|
85
85
|
DBOS.registerLifecycleCallback(sqsReceiver);
|
package/dist/index.d.ts
CHANGED
|
@@ -6,9 +6,9 @@ interface SQSConfig {
|
|
|
6
6
|
getWorkflowKey?: (m: Message) => string;
|
|
7
7
|
workflowQueueName?: string;
|
|
8
8
|
}
|
|
9
|
-
declare class SQSReceiver
|
|
10
|
-
config?: SQSConfig;
|
|
11
|
-
constructor(config?: SQSConfig);
|
|
9
|
+
declare class SQSReceiver implements DBOSLifecycleCallback {
|
|
10
|
+
readonly config?: SQSConfig | undefined;
|
|
11
|
+
constructor(config?: SQSConfig | undefined);
|
|
12
12
|
listeners: Promise<void>[];
|
|
13
13
|
isShuttingDown: boolean;
|
|
14
14
|
destroy(): Promise<void>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAIL,OAAO,EACP,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,EACV,MAAM,qBAAqB,CAAC;AAE7B,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAUD,cAAM,WAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAIL,OAAO,EACP,qBAAqB,EACrB,2BAA2B,EAC3B,SAAS,EACV,MAAM,qBAAqB,CAAC;AAE7B,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAUD,cAAM,WAAY,YAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,uBAAW;IAKvC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAM;IAChC,cAAc,UAAS;IAEjB,OAAO;WAWA,6BAA6B,CACxC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,2BAA2B,CAAC;WAS1B,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM;IASxD,UAAU;IAoGhB,sBAAsB;IAqBtB,aAAa,CAAC,MAAM,EAAE,SAAS,4BAIa,OAAO,EAAE,KAAG,MAAM,QAAU,CAAC;IAQzE,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,kDAItB,MAAM,eACD,MAAM,gBACL,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;CAczF;AAED,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SQSReceiver = void 0;
|
|
4
4
|
const dbos_sdk_1 = require("@dbos-inc/dbos-sdk");
|
|
5
5
|
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
6
|
-
class SQSReceiver
|
|
6
|
+
class SQSReceiver {
|
|
7
7
|
config;
|
|
8
8
|
constructor(config) {
|
|
9
|
-
super();
|
|
10
9
|
this.config = config;
|
|
10
|
+
this.config = config;
|
|
11
|
+
dbos_sdk_1.DBOS.registerLifecycleCallback(this);
|
|
11
12
|
}
|
|
12
13
|
listeners = [];
|
|
13
14
|
isShuttingDown = false;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,iDAAqF;AAErF,oDAQ6B;AAiB7B,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -25,18 +25,16 @@ interface SQSRecvMethodConfig {
|
|
|
25
25
|
config?: SQSConfig;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
class SQSReceiver
|
|
29
|
-
config?: SQSConfig
|
|
30
|
-
|
|
31
|
-
constructor(config?: SQSConfig) {
|
|
32
|
-
super();
|
|
28
|
+
class SQSReceiver implements DBOSLifecycleCallback {
|
|
29
|
+
constructor(readonly config?: SQSConfig) {
|
|
33
30
|
this.config = config;
|
|
31
|
+
DBOS.registerLifecycleCallback(this);
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
listeners: Promise<void>[] = [];
|
|
37
35
|
isShuttingDown = false;
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
async destroy() {
|
|
40
38
|
this.isShuttingDown = true;
|
|
41
39
|
try {
|
|
42
40
|
await Promise.allSettled(this.listeners);
|
|
@@ -68,7 +66,7 @@ class SQSReceiver extends DBOSLifecycleCallback {
|
|
|
68
66
|
const _validateSQSConfiguration = await client.send(new GetQueueAttributesCommand(params));
|
|
69
67
|
}
|
|
70
68
|
|
|
71
|
-
|
|
69
|
+
async initialize() {
|
|
72
70
|
const regops = DBOS.getAssociatedInfo(this);
|
|
73
71
|
|
|
74
72
|
for (const regop of regops) {
|
|
@@ -168,7 +166,7 @@ class SQSReceiver extends DBOSLifecycleCallback {
|
|
|
168
166
|
}
|
|
169
167
|
}
|
|
170
168
|
|
|
171
|
-
|
|
169
|
+
logRegisteredEndpoints() {
|
|
172
170
|
DBOS.logger.info('SQS receiver endpoints:');
|
|
173
171
|
|
|
174
172
|
const eps = DBOS.getAssociatedInfo(this);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbos-inc/sqs-receive",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.26-preview",
|
|
4
4
|
"description": "DBOS event receiver for AWS SQS queues",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -12,23 +12,18 @@
|
|
|
12
12
|
"main": "dist/index.js",
|
|
13
13
|
"types": "dist/index.d.ts",
|
|
14
14
|
"scripts": {
|
|
15
|
-
"build": "tsc --project tsconfig.json",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
15
|
+
"build": "tsc --project tsconfig.build.json",
|
|
16
|
+
"pretest": "npm run build",
|
|
17
|
+
"test": "tsx --test tests/*.test.ts"
|
|
18
18
|
},
|
|
19
|
-
"
|
|
20
|
-
"@
|
|
21
|
-
"@types/supertest": "^6.0.2",
|
|
22
|
-
"jest": "^29.7.0",
|
|
23
|
-
"supertest": "^7.0.0",
|
|
24
|
-
"ts-jest": "^29.1.4",
|
|
25
|
-
"typescript": "^5.3.3"
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@aws-sdk/client-sqs": "^3.596.0"
|
|
26
21
|
},
|
|
27
22
|
"peerDependencies": {
|
|
28
23
|
"@dbos-inc/dbos-sdk": "*",
|
|
29
24
|
"@dbos-inc/aws-config": "*"
|
|
30
25
|
},
|
|
31
|
-
"
|
|
32
|
-
"
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"tsx": "^4.20.3"
|
|
33
28
|
}
|
|
34
29
|
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { afterEach, beforeEach, suite, test } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
|
|
1
4
|
import { Message, SendMessageCommand, SendMessageCommandInput, SQSClient } from '@aws-sdk/client-sqs';
|
|
2
|
-
import { SQSReceiver } from '
|
|
5
|
+
import { SQSReceiver } from '..';
|
|
3
6
|
import { DBOS } from '@dbos-inc/dbos-sdk';
|
|
4
7
|
|
|
5
8
|
const sleepms = (ms: number) => new Promise((r) => setTimeout(r, ms));
|
|
@@ -58,42 +61,24 @@ class SQSRcv {
|
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
beforeAll(() => {
|
|
65
|
-
// Check if SES is available and update app config, skip the test if it's not
|
|
66
|
-
if (!process.env['AWS_REGION'] || !process.env['SQS_QUEUE_URL']) {
|
|
67
|
-
sqsIsAvailable = false;
|
|
68
|
-
} else {
|
|
69
|
-
// This would normally be a global or static or something
|
|
70
|
-
DBOS.setConfig({ name: 'dbossqstest' });
|
|
71
|
-
}
|
|
72
|
-
});
|
|
64
|
+
suite('sqs-tests', async () => {
|
|
65
|
+
const sqsAvailable = process.env['AWS_REGION'] && process.env['SQS_QUEUE_URL'];
|
|
73
66
|
|
|
74
67
|
beforeEach(async () => {
|
|
75
|
-
if (
|
|
76
|
-
DBOS.
|
|
68
|
+
if (sqsAvailable) {
|
|
69
|
+
DBOS.setConfig({ name: 'dbossqstest' });
|
|
77
70
|
await DBOS.launch();
|
|
78
|
-
} else {
|
|
79
|
-
console.log(
|
|
80
|
-
'SQS Test is not configured. To run, set AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and SQS_QUEUE_URL',
|
|
81
|
-
);
|
|
82
71
|
}
|
|
83
72
|
});
|
|
84
73
|
|
|
85
74
|
afterEach(async () => {
|
|
86
|
-
if (
|
|
75
|
+
if (sqsAvailable) {
|
|
87
76
|
await DBOS.shutdown();
|
|
88
77
|
}
|
|
89
|
-
}
|
|
78
|
+
});
|
|
90
79
|
|
|
91
80
|
// This tests receive also; which is already wired up
|
|
92
|
-
test('sqs-send', async () => {
|
|
93
|
-
if (!sqsIsAvailable) {
|
|
94
|
-
console.log('SQS unavailable, skipping SQS tests');
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
81
|
+
await test('sqs-send', { skip: !sqsAvailable }, async () => {
|
|
97
82
|
const sv: ValueObj = {
|
|
98
83
|
val: 10,
|
|
99
84
|
};
|
|
@@ -110,4 +95,4 @@ describe('sqs-tests', () => {
|
|
|
110
95
|
expect(SQSRcv.msgRcvCount).toBe(1);
|
|
111
96
|
expect(SQSRcv.msgValueSum).toBe(10);
|
|
112
97
|
});
|
|
113
|
-
});
|
|
98
|
+
}).catch(assert.fail);
|
package/tsconfig.json
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
{
|
|
3
3
|
"extends": "../../tsconfig.shared.json",
|
|
4
4
|
"compilerOptions": {
|
|
5
|
-
"
|
|
5
|
+
"noEmit": true
|
|
6
6
|
},
|
|
7
|
-
"include": [
|
|
8
|
-
"exclude": ["dist"]
|
|
7
|
+
"include": ["index.ts", "tests/*.ts"]
|
|
9
8
|
}
|
package/dist/sqs.test.d.ts
DELETED
package/dist/sqs.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqs.test.d.ts","sourceRoot":"","sources":["../sqs.test.ts"],"names":[],"mappings":""}
|
package/dist/sqs.test.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
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
|
-
const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
13
|
-
const index_1 = require("./index");
|
|
14
|
-
const dbos_sdk_1 = require("@dbos-inc/dbos-sdk");
|
|
15
|
-
const sleepms = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
16
|
-
function createSQS() {
|
|
17
|
-
return new client_sqs_1.SQSClient({
|
|
18
|
-
region: process.env['AWS_REGION'] ?? '',
|
|
19
|
-
endpoint: process.env['AWS_ENDPOINT_URL_SQS'],
|
|
20
|
-
credentials: {
|
|
21
|
-
accessKeyId: process.env['AWS_ACCESS_KEY_ID'] ?? '',
|
|
22
|
-
secretAccessKey: process.env['AWS_SECRET_ACCESS_KEY'] ?? '',
|
|
23
|
-
},
|
|
24
|
-
//logger: console,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
async function sendMessageInternal(msg) {
|
|
28
|
-
try {
|
|
29
|
-
const smsg = { ...msg, QueueUrl: msg.QueueUrl || process.env['SQS_QUEUE_URL'] };
|
|
30
|
-
return await createSQS().send(new client_sqs_1.SendMessageCommand(smsg));
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
dbos_sdk_1.DBOS.logger.error(e);
|
|
34
|
-
throw e;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const sendMessageStep = dbos_sdk_1.DBOS.registerStep(sendMessageInternal, {
|
|
38
|
-
name: 'Send SQS Message',
|
|
39
|
-
});
|
|
40
|
-
const sqsReceiver = new index_1.SQSReceiver({
|
|
41
|
-
client: createSQS,
|
|
42
|
-
});
|
|
43
|
-
class SQSRcv {
|
|
44
|
-
static msgRcvCount = 0;
|
|
45
|
-
static msgValueSum = 0;
|
|
46
|
-
static async recvMessage(msg) {
|
|
47
|
-
const ms = msg.Body;
|
|
48
|
-
const res = JSON.parse(ms);
|
|
49
|
-
SQSRcv.msgRcvCount++;
|
|
50
|
-
SQSRcv.msgValueSum += res.val;
|
|
51
|
-
return Promise.resolve();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
__decorate([
|
|
55
|
-
sqsReceiver.messageConsumer({ queueUrl: process.env['SQS_QUEUE_URL'] }),
|
|
56
|
-
dbos_sdk_1.DBOS.workflow(),
|
|
57
|
-
__metadata("design:type", Function),
|
|
58
|
-
__metadata("design:paramtypes", [Object]),
|
|
59
|
-
__metadata("design:returntype", Promise)
|
|
60
|
-
], SQSRcv, "recvMessage", null);
|
|
61
|
-
describe('sqs-tests', () => {
|
|
62
|
-
let sqsIsAvailable = true;
|
|
63
|
-
beforeAll(() => {
|
|
64
|
-
// Check if SES is available and update app config, skip the test if it's not
|
|
65
|
-
if (!process.env['AWS_REGION'] || !process.env['SQS_QUEUE_URL']) {
|
|
66
|
-
sqsIsAvailable = false;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// This would normally be a global or static or something
|
|
70
|
-
dbos_sdk_1.DBOS.setConfig({ name: 'dbossqstest' });
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
beforeEach(async () => {
|
|
74
|
-
if (sqsIsAvailable) {
|
|
75
|
-
dbos_sdk_1.DBOS.registerLifecycleCallback(sqsReceiver);
|
|
76
|
-
await dbos_sdk_1.DBOS.launch();
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
console.log('SQS Test is not configured. To run, set AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and SQS_QUEUE_URL');
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
afterEach(async () => {
|
|
83
|
-
if (sqsIsAvailable) {
|
|
84
|
-
await dbos_sdk_1.DBOS.shutdown();
|
|
85
|
-
}
|
|
86
|
-
}, 10000);
|
|
87
|
-
// This tests receive also; which is already wired up
|
|
88
|
-
test('sqs-send', async () => {
|
|
89
|
-
if (!sqsIsAvailable) {
|
|
90
|
-
console.log('SQS unavailable, skipping SQS tests');
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const sv = {
|
|
94
|
-
val: 10,
|
|
95
|
-
};
|
|
96
|
-
const ser = await sendMessageStep({
|
|
97
|
-
MessageBody: JSON.stringify(sv),
|
|
98
|
-
});
|
|
99
|
-
expect(ser.MessageId).toBeDefined();
|
|
100
|
-
// Wait for receipt
|
|
101
|
-
for (let i = 0; i < 100; ++i) {
|
|
102
|
-
if (SQSRcv.msgRcvCount === 1)
|
|
103
|
-
break;
|
|
104
|
-
await sleepms(100);
|
|
105
|
-
}
|
|
106
|
-
expect(SQSRcv.msgRcvCount).toBe(1);
|
|
107
|
-
expect(SQSRcv.msgValueSum).toBe(10);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
//# sourceMappingURL=sqs.test.js.map
|
package/dist/sqs.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqs.test.js","sourceRoot":"","sources":["../sqs.test.ts"],"names":[],"mappings":"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"}
|