prime-sdk 3.0.2 → 3.0.4

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.
@@ -0,0 +1,3 @@
1
+ {
2
+ "snyk.advanced.autoSelectOrganization": true
3
+ }
@@ -17,4 +17,5 @@ export declare class Sqs implements IQueue {
17
17
  receiveMessages(): Promise<ReceiveMessageResult>;
18
18
  receiveMessagesV2(): Promise<ReceiveMessageResult>;
19
19
  deleteMessage(receiptHandle: any): Promise<unknown>;
20
+ destroyClient(): void;
20
21
  }
@@ -55,6 +55,9 @@ let Sqs = class Sqs {
55
55
  });
56
56
  return await this.sendCommand(deleteCommand);
57
57
  }
58
+ destroyClient() {
59
+ this.client.destroy();
60
+ }
58
61
  };
59
62
  exports.Sqs = Sqs;
60
63
  exports.Sqs = Sqs = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../src/external/aws/sqs/sqs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAM6B;AAC7B,2CAAoD;AAI7C,IAAM,GAAG,GAAT,MAAM,GAAG;IAMd,YAAsC,MAAkC;QAAjB,WAAM,GAAN,MAAM,CAAW;QAFhE,mBAAc,GAA8B,CAAC,+BAAkB,CAAC,GAAG,CAAC,CAAC;IAEF,CAAC;IAE5E,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE;QACvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAqD;QAErD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAAa;QAC/B,MAAM,aAAa,GAAG,IAAI,iCAAoB,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AAtDY,kBAAG;cAAH,GAAG;IADf,IAAA,mBAAU,GAAE;IAOE,WAAA,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAA;qCAA0B,sBAAS;GAN7D,GAAG,CAsDf"}
1
+ {"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../src/external/aws/sqs/sqs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAM6B;AAC7B,2CAAoD;AAI7C,IAAM,GAAG,GAAT,MAAM,GAAG;IAMd,YAAsC,MAAkC;QAAjB,WAAM,GAAN,MAAM,CAAW;QAFhE,mBAAc,GAA8B,CAAC,+BAAkB,CAAC,GAAG,CAAC,CAAC;IAEF,CAAC;IAE5E,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE;QACvD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAqD;QAErD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB,EAAE,IAAI,CAAC,IAAI;YAC9B,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,kCAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAyB,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,aAAa;QAC/B,MAAM,aAAa,GAAG,IAAI,iCAAoB,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa;QACX,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;CACF,CAAA;AA1DY,kBAAG;cAAH,GAAG;IADf,IAAA,mBAAU,GAAE;IAOE,WAAA,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAA;qCAA0B,sBAAS;GAN7D,GAAG,CA0Df"}
@@ -9,5 +9,6 @@ export interface IQueue {
9
9
  queueUrl: any;
10
10
  attributeNames: any;
11
11
  }): void;
12
+ destroyClient(): void;
12
13
  }
13
14
  export declare const IQueue: unique symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"queue.interface.js","sourceRoot":"","sources":["../../../../src/lib/queue/interfaces/queue.interface.ts"],"names":[],"mappings":";;;AASa,QAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"queue.interface.js","sourceRoot":"","sources":["../../../../src/lib/queue/interfaces/queue.interface.ts"],"names":[],"mappings":";;;AAUa,QAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC"}
@@ -6,6 +6,10 @@ export declare class Queue {
6
6
  private queueUrl;
7
7
  private bulk;
8
8
  private context;
9
+ private processing;
10
+ private readonly MAX_TIME_TO_WAIT_FOR_PROCESSING;
11
+ private stopped;
12
+ private abortController;
9
13
  private inWork;
10
14
  private waitTimeSeconds;
11
15
  private attributeNames;
@@ -15,4 +19,6 @@ export declare class Queue {
15
19
  run(version: number): Promise<void>;
16
20
  receiveMessages(version: number): Promise<ReceiveMessageResult>;
17
21
  deleteMessage(receiptHandle: any): Promise<unknown>;
22
+ stop(): Promise<void>;
23
+ private sleep;
18
24
  }
@@ -22,7 +22,11 @@ let Queue = class Queue {
22
22
  this.queueUrl = null;
23
23
  this.bulk = 1;
24
24
  this.context = null;
25
- this.inWork = false;
25
+ this.processing = 0;
26
+ this.MAX_TIME_TO_WAIT_FOR_PROCESSING = 20000;
27
+ this.stopped = false;
28
+ this.abortController = null;
29
+ this.inWork = true;
26
30
  this.waitTimeSeconds = 20;
27
31
  this.attributeNames = [client_sqs_1.QueueAttributeName.All];
28
32
  this.version = 1;
@@ -34,38 +38,45 @@ let Queue = class Queue {
34
38
  this.waitTimeSeconds = waitTimeSeconds;
35
39
  this.attributeNames = attributeNames;
36
40
  this.version = version;
41
+ this.abortController = new AbortController();
42
+ this.stopped = false;
43
+ this.processing = 0;
44
+ this.inWork = true;
37
45
  this.broker.setup({
38
46
  waitTimeSeconds: this.waitTimeSeconds,
39
47
  bulk: this.bulk,
40
48
  queueUrl: this.queueUrl,
41
49
  attributeNames: this.attributeNames,
42
50
  });
43
- while (!this.inWork) {
51
+ while (this.inWork) {
44
52
  await this.run(version);
45
53
  }
46
54
  }
47
55
  async run(version) {
48
- this.inWork = true;
49
- const response = await this.receiveMessages(version);
56
+ this.processing += 1;
50
57
  try {
58
+ const response = await this.receiveMessages(version);
59
+ const messages = response.Messages;
60
+ if (!messages) {
61
+ return;
62
+ }
51
63
  if (this.bulk === 1) {
52
- const message = response.Messages?.[0] || null;
64
+ const message = messages?.[0] || null;
53
65
  if (message) {
54
66
  await this.context.handleMessage(message);
55
67
  await this.deleteMessage(message.ReceiptHandle);
56
68
  }
57
- this.inWork = false;
58
69
  return;
59
70
  }
60
- await this.context.handleMessage(response.Messages);
61
- response.Messages.forEach(async (message) => {
62
- await this.deleteMessage(message.ReceiptHandle);
63
- });
71
+ await this.context.handleMessage(messages);
72
+ await Promise.all(messages.map((message) => this.deleteMessage(message.ReceiptHandle)));
64
73
  }
65
74
  catch (error) {
66
75
  await this.context.handleError(error);
67
76
  }
68
- this.inWork = false;
77
+ finally {
78
+ this.processing -= 1;
79
+ }
69
80
  }
70
81
  async receiveMessages(version) {
71
82
  if (version === 1) {
@@ -78,6 +89,25 @@ let Queue = class Queue {
78
89
  async deleteMessage(receiptHandle) {
79
90
  return await this.broker.deleteMessage(receiptHandle);
80
91
  }
92
+ async stop() {
93
+ if (this.stopped) {
94
+ return;
95
+ }
96
+ const timeMax = new Date().getTime() + this.MAX_TIME_TO_WAIT_FOR_PROCESSING;
97
+ this.inWork = false;
98
+ this.stopped = true;
99
+ this.abortController?.abort();
100
+ while (this.processing > 0) {
101
+ const time = new Date().getTime();
102
+ if (time >= timeMax)
103
+ break;
104
+ await this.sleep(500);
105
+ }
106
+ this.broker.destroyClient();
107
+ }
108
+ sleep(ms) {
109
+ return new Promise((resolve) => setTimeout(resolve, ms));
110
+ }
81
111
  };
82
112
  exports.Queue = Queue;
83
113
  exports.Queue = Queue = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/lib/queue/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/lib/queue/queue.ts"],"names":[],"mappings":"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"}