@izara_project/izara-core-library-asynchronous-flow 1.0.51 → 1.0.52

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/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "author": "Sven Mason <thebarbariansven@gmail.com>",
4
4
  "license": "AGPL-3.0-or-later",
5
5
  "homepage": "https://bitbucket.org/izara-core-libraries/izara-core-library-asynchronous-flow#readme",
6
- "version": "1.0.51",
6
+ "version": "1.0.52",
7
7
  "description": "Shared asynchronous flow logic",
8
8
  "type": "module",
9
9
  "main": "index.js",
@@ -15,8 +15,8 @@
15
15
  "url": "git+ssh://git@bitbucket.org/izara-core-libraries/izara-core-library-asynchronous-flow.git"
16
16
  },
17
17
  "devDependencies": {
18
- "@izara_project/izara-core-library-core": "^1.0.32",
19
- "@izara_project/izara-core-library-dynamodb": "^1.0.22",
18
+ "@izara_project/izara-core-library-core": "^1.0.37",
19
+ "@izara_project/izara-core-library-dynamodb": "^1.0.23",
20
20
  "@izara_project/izara-core-library-external-request": "^1.0.32",
21
21
  "@izara_project/izara-core-library-logger": "^1.0.11",
22
22
  "@izara_project/izara-core-library-sns": "^1.0.8",
@@ -14,20 +14,20 @@ You should have received a copy of the GNU Affero General Public License
14
14
  along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
  */
16
16
 
17
- import { NoRetryError } from "@izara_project/izara-core-library-core";
18
- import dynamodbSharedLib from "@izara_project/izara-core-library-dynamodb";
19
- import { sns } from "@izara_project/izara-core-library-external-request";
20
- import snsSharedLib from "@izara_project/izara-core-library-sns";
17
+ import { NoRetryError } from '@izara_project/izara-core-library-core';
18
+ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
19
+ import { sns } from '@izara_project/izara-core-library-external-request';
20
+ import snsSharedLib from '@izara_project/izara-core-library-sns';
21
21
 
22
22
  import {
23
23
  createParentFlowId,
24
24
  createPendingStepId,
25
- createAwaitingStepId,
26
- } from "./asyncFlowSharedLib.js";
25
+ createAwaitingStepId
26
+ } from './asyncFlowSharedLib.js';
27
27
 
28
28
  function _assertPendingStepId(pendingStepId) {
29
29
  if (!pendingStepId) {
30
- throw new NoRetryError("pendingStepId required");
30
+ throw new NoRetryError('pendingStepId required');
31
31
  }
32
32
  }
33
33
 
@@ -35,15 +35,15 @@ async function _putAwaitingMultipleStepRecords(
35
35
  _izContext,
36
36
  records,
37
37
  pendingStepId,
38
- sharedAttributes = {},
38
+ sharedAttributes = {}
39
39
  ) {
40
40
  const tableSteps = dynamodbSharedLib.tableName(
41
41
  _izContext,
42
- "AwaitingMultipleSteps",
42
+ 'AwaitingMultipleSteps'
43
43
  );
44
44
  const tablePending = dynamodbSharedLib.tableName(
45
45
  _izContext,
46
- "AwaitingMultipleStepByPending",
46
+ 'AwaitingMultipleStepByPending'
47
47
  );
48
48
 
49
49
  await Promise.all(
@@ -52,7 +52,7 @@ async function _putAwaitingMultipleStepRecords(
52
52
 
53
53
  const itemPending = {
54
54
  ...keys,
55
- ...sharedAttributes,
55
+ ...sharedAttributes
56
56
  };
57
57
  if (additionalAttributes) {
58
58
  if (sharedAttributes.additionalAttributes) {
@@ -67,21 +67,21 @@ async function _putAwaitingMultipleStepRecords(
67
67
 
68
68
  return [
69
69
  dynamodbSharedLib.putItem(_izContext, tableSteps, keys),
70
- dynamodbSharedLib.putItem(_izContext, tablePending, itemPending),
70
+ dynamodbSharedLib.putItem(_izContext, tablePending, itemPending)
71
71
  ];
72
- }),
72
+ })
73
73
  );
74
74
  }
75
75
 
76
76
  async function _queryPendingStepsByAwaitingStepId(_izContext, awaitingStepId) {
77
77
  if (!awaitingStepId) {
78
- throw new NoRetryError("awaitingStepId required");
78
+ throw new NoRetryError('awaitingStepId required');
79
79
  }
80
80
 
81
81
  const { Items } = await dynamodbSharedLib.query(
82
82
  _izContext,
83
- dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
84
- { awaitingStepId },
83
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
84
+ { awaitingStepId }
85
85
  );
86
86
 
87
87
  return Items;
@@ -92,9 +92,9 @@ async function _queryAwaitingStepsByPendingStepId(_izContext, pendingStepId) {
92
92
 
93
93
  const { Items } = await dynamodbSharedLib.query(
94
94
  _izContext,
95
- dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
95
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
96
96
  { pendingStepId },
97
- { limit: 50 },
97
+ { limit: 50 }
98
98
  );
99
99
 
100
100
  return Items;
@@ -127,22 +127,22 @@ async function _queryAwaitingStepsByPendingStepId(_izContext, pendingStepId) {
127
127
  * @param {string} [options.flowType.serviceTag] - Default service tag.
128
128
  * @returns {Promise<string|null>} The awaitingStepId of first record.
129
129
  */
130
- export async function createAwaitingMultipleSteps(
130
+ async function createAwaitingMultipleSteps(
131
131
  _izContext,
132
132
  pendingStepId,
133
133
  records = [],
134
- options = {},
134
+ options = {}
135
135
  ) {
136
- const { prefix = "", additionalAttributes = {}, flowType = null } = options;
136
+ const { prefix = '', additionalAttributes = {}, flowType = null } = options;
137
137
 
138
- _izContext.logger.debug("[Lib:AsyncFlow:createAwaitingMultipleSteps] Input", {
138
+ _izContext.logger.debug('[Lib:AsyncFlow:createAwaitingMultipleSteps] Input', {
139
139
  pendingStepId,
140
- options,
140
+ options
141
141
  });
142
142
 
143
143
  const finalPendingStepId = createPendingStepId(pendingStepId, prefix);
144
144
 
145
- const hasFlowPublish = flowType || records.some((r) => r.flowType);
145
+ const hasFlowPublish = flowType || records.some(r => r.flowType);
146
146
 
147
147
  let finalRecords = records;
148
148
 
@@ -150,14 +150,13 @@ export async function createAwaitingMultipleSteps(
150
150
  finalRecords = [
151
151
  {
152
152
  awaitingStepId: createParentFlowId(prefix),
153
- additionalAttributes,
154
- },
153
+ additionalAttributes
154
+ }
155
155
  ];
156
156
  }
157
157
 
158
- if (hasFlowPublish) {
159
- finalRecords = records.map((record) => {
160
-
158
+ if (hasFlowPublish) {
159
+ finalRecords = records.map(record => {
161
160
  const recordFlowType = record.flowType || flowType;
162
161
 
163
162
  if (
@@ -166,7 +165,7 @@ export async function createAwaitingMultipleSteps(
166
165
  !recordFlowType.serviceTag
167
166
  ) {
168
167
  throw new NoRetryError(
169
- "record.flowType must have both flowTag and serviceTag",
168
+ 'record.flowType must have both flowTag and serviceTag'
170
169
  );
171
170
  }
172
171
 
@@ -181,13 +180,13 @@ export async function createAwaitingMultipleSteps(
181
180
  additionalAttributes: record.additionalAttributes,
182
181
  message: {
183
182
  ...record.message,
184
- parentFlowId: awaitingStepId,
183
+ parentFlowId: awaitingStepId
185
184
  },
186
185
  topicArn: snsSharedLib.snsTopicArnByFlowSchema(
187
186
  _izContext,
188
187
  recordFlowType.flowTag,
189
- recordFlowType.serviceTag,
190
- ),
188
+ recordFlowType.serviceTag
189
+ )
191
190
  };
192
191
  });
193
192
  }
@@ -207,7 +206,7 @@ export async function createAwaitingMultipleSteps(
207
206
  awaitingStepId: createAwaitingStepId(awaitingStepId, prefix),
208
207
  additionalAttributes: mergedAttributes
209
208
  };
210
- },
209
+ }
211
210
  );
212
211
 
213
212
  await _putAwaitingMultipleStepRecords(
@@ -216,8 +215,8 @@ export async function createAwaitingMultipleSteps(
216
215
  finalPendingStepId,
217
216
  {
218
217
  complete: false,
219
- errorsFound: [],
220
- },
218
+ errorsFound: []
219
+ }
221
220
  );
222
221
 
223
222
  if (hasFlowPublish) {
@@ -225,9 +224,9 @@ export async function createAwaitingMultipleSteps(
225
224
  finalRecords.map(async ({ message, topicArn }) => {
226
225
  await sns.publishAsync(_izContext, {
227
226
  TopicArn: `${topicArn}_In`,
228
- Message: JSON.stringify(message),
227
+ Message: JSON.stringify(message)
229
228
  });
230
- }),
229
+ })
231
230
  );
232
231
  }
233
232
 
@@ -246,27 +245,27 @@ export async function createAwaitingMultipleSteps(
246
245
  * @param {object} data - Attributes to update.
247
246
  * @returns {Promise<object>} The updated data with awaitingStepId merged.
248
247
  */
249
- export async function updateAwaitingMultipleStep(
248
+ async function updateAwaitingMultipleStep(
250
249
  _izContext,
251
250
  awaitingStepId,
252
251
  pendingStepId,
253
- data,
252
+ data
254
253
  ) {
255
254
  const tableSteps = dynamodbSharedLib.tableName(
256
255
  _izContext,
257
- "AwaitingMultipleSteps",
256
+ 'AwaitingMultipleSteps'
258
257
  );
259
258
 
260
259
  await dynamodbSharedLib.updateItem(
261
260
  _izContext,
262
261
  tableSteps,
263
262
  { awaitingStepId, pendingStepId },
264
- data,
263
+ data
265
264
  );
266
265
 
267
- _izContext.logger.debug("[Lib:updateAwaitingMultipleStep] Output", {
266
+ _izContext.logger.debug('[Lib:updateAwaitingMultipleStep] Output', {
268
267
  awaitingStepId,
269
- data,
268
+ data
270
269
  });
271
270
 
272
271
  return { ...data, awaitingStepId };
@@ -279,17 +278,17 @@ export async function updateAwaitingMultipleStep(
279
278
  * @param {string} awaitingStepId - The ID of the awaiting step.
280
279
  * @returns {Promise<object|null>} The found item or null.
281
280
  */
282
- export async function findPendingStepAwaitingMultipleSteps(
281
+ async function findPendingStepAwaitingMultipleSteps(
283
282
  _izContext,
284
- awaitingStepId,
283
+ awaitingStepId
285
284
  ) {
286
- _izContext.logger.debug("[Lib:findPendingStepAwaitingMultipleSteps] Input", {
287
- awaitingStepId,
285
+ _izContext.logger.debug('[Lib:findPendingStepAwaitingMultipleSteps] Input', {
286
+ awaitingStepId
288
287
  });
289
288
 
290
289
  const items = await _queryPendingStepsByAwaitingStepId(
291
290
  _izContext,
292
- awaitingStepId,
291
+ awaitingStepId
293
292
  );
294
293
 
295
294
  if (items && items.length > 0) {
@@ -305,9 +304,9 @@ export async function findPendingStepAwaitingMultipleSteps(
305
304
  * @param {string} awaitingStepId - The ID of the awaiting step.
306
305
  * @returns {Promise<Array<object>>} List of matching items.
307
306
  */
308
- export async function findPendingStepsAwaitingMultipleSteps(
307
+ async function findPendingStepsAwaitingMultipleSteps(
309
308
  _izContext,
310
- awaitingStepId,
309
+ awaitingStepId
311
310
  ) {
312
311
  return _queryPendingStepsByAwaitingStepId(_izContext, awaitingStepId);
313
312
  }
@@ -319,13 +318,13 @@ export async function findPendingStepsAwaitingMultipleSteps(
319
318
  * @param {string} awaitingStepId - The ID of the awaiting step.
320
319
  * @returns {Promise<string|null>} pendingStepId of first item found or null.
321
320
  */
322
- export async function findPendingStepIdAwaitingMultipleSteps(
321
+ async function findPendingStepIdAwaitingMultipleSteps(
323
322
  _izContext,
324
- awaitingStepId,
323
+ awaitingStepId
325
324
  ) {
326
325
  const items = await _queryPendingStepsByAwaitingStepId(
327
326
  _izContext,
328
- awaitingStepId,
327
+ awaitingStepId
329
328
  );
330
329
  if (items && items[0] && items[0].pendingStepId) {
331
330
  return items[0].pendingStepId;
@@ -340,10 +339,7 @@ export async function findPendingStepIdAwaitingMultipleSteps(
340
339
  * @param {string} pendingStepId - The ID of the pending step.
341
340
  * @returns {Promise<Array<object>>} List of matching items.
342
341
  */
343
- export async function findAwaitingMultipleStepByPending(
344
- _izContext,
345
- pendingStepId,
346
- ) {
342
+ async function findAwaitingMultipleStepByPending(_izContext, pendingStepId) {
347
343
  return _queryAwaitingStepsByPendingStepId(_izContext, pendingStepId);
348
344
  }
349
345
 
@@ -359,22 +355,22 @@ export async function findAwaitingMultipleStepByPending(
359
355
  * @param {boolean} [settings.checkIsAllError=false] - Verify all failed.
360
356
  * @returns {Promise<object>} Status object containing completion details.
361
357
  */
362
- export async function checkAllAwaitingStepsFinishedWithReturnParams(
358
+ async function checkAllAwaitingStepsFinishedWithReturnParams(
363
359
  _izContext,
364
360
  pendingStepId,
365
361
  currentAwaitingStepId,
366
362
  errorsFound = [],
367
363
  returnValues = {},
368
- settings = { checkIsAllError: false },
364
+ settings = { checkIsAllError: false }
369
365
  ) {
370
366
  _izContext.logger.debug(
371
- "[Lib:checkAllAwaitingStepsFinishedWithReturnParams] Input parameters",
367
+ '[Lib:checkAllAwaitingStepsFinishedWithReturnParams] Input parameters',
372
368
  {
373
369
  pendingStepId,
374
370
  currentAwaitingStepId,
375
371
  errorsFound,
376
- returnValues,
377
- },
372
+ returnValues
373
+ }
378
374
  );
379
375
 
380
376
  _assertPendingStepId(pendingStepId);
@@ -393,16 +389,16 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
393
389
 
394
390
  await dynamodbSharedLib.updateItem(
395
391
  _izContext,
396
- dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleStepByPending"),
392
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleStepByPending'),
397
393
  {
398
394
  pendingStepId,
399
- awaitingStepId: currentAwaitingStepId,
395
+ awaitingStepId: currentAwaitingStepId
400
396
  },
401
397
  {
402
398
  complete: true,
403
399
  errorsFound,
404
- returnValues,
405
- },
400
+ returnValues
401
+ }
406
402
  );
407
403
 
408
404
  _izContext.logger.debug(
@@ -411,8 +407,8 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
411
407
  pendingStepId,
412
408
  awaitingStepId: currentAwaitingStepId,
413
409
  errorsFound,
414
- returnValues,
415
- },
410
+ returnValues
411
+ }
416
412
  );
417
413
 
418
414
  _izContext.logger.debug(
@@ -428,11 +424,11 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
428
424
 
429
425
  const awaitingStepItems = await _queryAwaitingStepsByPendingStepId(
430
426
  _izContext,
431
- pendingStepId,
427
+ pendingStepId
432
428
  );
433
429
 
434
430
  _izContext.logger.debug(
435
- "[Lib:checkAllAwaitingStepsFinishedWithReturnParams] awaitingStepItems",
431
+ '[Lib:checkAllAwaitingStepsFinishedWithReturnParams] awaitingStepItems',
436
432
  { awaitingStepItems },
437
433
  '[Lib:checkAllAwaitingStepsFinishedWithReturnParams] Queried awaitingStepItems',
438
434
  {
@@ -459,7 +455,7 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
459
455
  }
460
456
 
461
457
  const hasIncomplete = awaitingStepItems.some(
462
- (item) => item.awaitingStepId !== currentAwaitingStepId && !item.complete,
458
+ item => item.awaitingStepId !== currentAwaitingStepId && !item.complete
463
459
  );
464
460
 
465
461
  let defaultAttrs = null;
@@ -530,7 +526,7 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
530
526
  collectedReturnValueByAwaitingStepId: null,
531
527
  collectedErrors: [],
532
528
  returnValues: null,
533
- additionalAttributes: defaultAttrs,
529
+ additionalAttributes: defaultAttrs
534
530
  };
535
531
  }
536
532
 
@@ -554,7 +550,7 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
554
550
  if (item.errorsFound && item.errorsFound.length > 0) {
555
551
  collectedErrors.push(
556
552
  `Error found in step ${item.awaitingStepId}`,
557
- ...item.errorsFound,
553
+ ...item.errorsFound
558
554
  );
559
555
  }
560
556
  }
@@ -564,12 +560,12 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
564
560
  collectedReturnValueByAwaitingStepId,
565
561
  collectedErrors,
566
562
  returnValues: sharedReturnValues,
567
- additionalAttributes: defaultAttrs,
563
+ additionalAttributes: defaultAttrs
568
564
  };
569
565
 
570
566
  if (settings.checkIsAllError) {
571
567
  result.isAllError = awaitingStepItems.every(
572
- (item) => item.errorsFound && item.errorsFound.length > 0,
568
+ item => item.errorsFound && item.errorsFound.length > 0
573
569
  );
574
570
  }
575
571
 
@@ -591,22 +587,22 @@ export async function checkAllAwaitingStepsFinishedWithReturnParams(
591
587
  * @param {string} pendingStepId - The ID of the pending step.
592
588
  * @returns {Promise<boolean>} True if operations completed successfully.
593
589
  */
594
- export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
595
- _izContext.logger.debug("[Lib:clearAllAwaitingSteps] Input parameters", {
596
- pendingStepId,
590
+ async function clearAllAwaitingSteps(_izContext, pendingStepId) {
591
+ _izContext.logger.debug('[Lib:clearAllAwaitingSteps] Input parameters', {
592
+ pendingStepId
597
593
  });
598
594
 
599
595
  const awaitingStepItems = await _queryAwaitingStepsByPendingStepId(
600
596
  _izContext,
601
- pendingStepId,
597
+ pendingStepId
602
598
  );
603
599
  const tableSteps = dynamodbSharedLib.tableName(
604
600
  _izContext,
605
- "AwaitingMultipleSteps",
601
+ 'AwaitingMultipleSteps'
606
602
  );
607
603
  const tablePending = dynamodbSharedLib.tableName(
608
604
  _izContext,
609
- "AwaitingMultipleStepByPending",
605
+ 'AwaitingMultipleStepByPending'
610
606
  );
611
607
 
612
608
  await Promise.all(
@@ -614,14 +610,14 @@ export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
614
610
  ({ awaitingStepId, pendingStepId: itemPendingStepId }) => [
615
611
  dynamodbSharedLib.deleteItem(_izContext, tableSteps, {
616
612
  awaitingStepId,
617
- pendingStepId: itemPendingStepId,
613
+ pendingStepId: itemPendingStepId
618
614
  }),
619
615
  dynamodbSharedLib.deleteItem(_izContext, tablePending, {
620
616
  awaitingStepId,
621
- pendingStepId: itemPendingStepId,
622
- }),
623
- ],
624
- ),
617
+ pendingStepId: itemPendingStepId
618
+ })
619
+ ]
620
+ )
625
621
  );
626
622
 
627
623
  return true;
@@ -636,16 +632,16 @@ export async function clearAllAwaitingSteps(_izContext, pendingStepId) {
636
632
  * @param {Array<any>} [errorsFound=[]] - List of errors.
637
633
  * @returns {Promise<void>}
638
634
  */
639
- export async function removeAwaitingMultipleStep(
635
+ async function removeAwaitingMultipleStep(
640
636
  _izContext,
641
637
  awaitingStepId,
642
638
  pendingStepId,
643
- errorsFound = [],
639
+ errorsFound = []
644
640
  ) {
645
- _izContext.logger.debug("[Lib:removeAwaitingMultipleStep] Input parameters", {
641
+ _izContext.logger.debug('[Lib:removeAwaitingMultipleStep] Input parameters', {
646
642
  awaitingStepId,
647
643
  pendingStepId,
648
- errorsFound,
644
+ errorsFound
649
645
  });
650
646
 
651
647
  if (!awaitingStepId || !pendingStepId) {
@@ -659,9 +655,9 @@ export async function removeAwaitingMultipleStep(
659
655
  const promises = [
660
656
  dynamodbSharedLib.deleteItem(
661
657
  _izContext,
662
- dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
663
- keys,
664
- ),
658
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
659
+ keys
660
+ )
665
661
  ];
666
662
 
667
663
  if (errorsFound.length === 0) {
@@ -670,10 +666,10 @@ export async function removeAwaitingMultipleStep(
670
666
  _izContext,
671
667
  dynamodbSharedLib.tableName(
672
668
  _izContext,
673
- "AwaitingMultipleStepByPending",
669
+ 'AwaitingMultipleStepByPending'
674
670
  ),
675
- keys,
676
- ),
671
+ keys
672
+ )
677
673
  );
678
674
  }
679
675
 
@@ -687,10 +683,10 @@ export async function removeAwaitingMultipleStep(
687
683
  * @param {string} parentFlowId - The ID of the parent flow.
688
684
  * @returns {Promise<Object>} Status object containing completion details.
689
685
  */
690
- export async function completeAction(
686
+ async function completeAction(
691
687
  _izContext,
692
688
  parentFlowId,
693
- prefix = "",
689
+ prefix = '',
694
690
  returnValue = {},
695
691
  errorsFound = [],
696
692
  settings = { checkIsAllError: false }
@@ -701,17 +697,14 @@ export async function completeAction(
701
697
  });
702
698
 
703
699
  try {
704
- const {pendingStepId} = await findPendingStepAwaitingMultipleSteps(
700
+ const { pendingStepId } = await findPendingStepAwaitingMultipleSteps(
705
701
  _izContext,
706
- createAwaitingStepId(
707
- parentFlowId,
708
- prefix
709
- )
702
+ createAwaitingStepId(parentFlowId, prefix)
710
703
  );
711
704
 
712
705
  if (!pendingStepId) {
713
706
  _izContext.logger.warn(
714
- `No pending step found for awaitingStepId: ${awaitingStepId}`,
707
+ `No pending step found for awaitingStepId: ${awaitingStepId}`
715
708
  );
716
709
  return { returnValue, errorsFound };
717
710
  }
@@ -721,14 +714,11 @@ export async function completeAction(
721
714
  collectedReturnValueByAwaitingStepId,
722
715
  collectedErrors,
723
716
  returnValues,
724
- additionalAttributes,
717
+ additionalAttributes
725
718
  } = await checkAllAwaitingStepsFinishedWithReturnParams(
726
719
  _izContext,
727
720
  pendingStepId,
728
- createAwaitingStepId(
729
- parentFlowId,
730
- prefix
731
- ),
721
+ createAwaitingStepId(parentFlowId, prefix),
732
722
  errorsFound,
733
723
  returnValue,
734
724
  { checkIsAllError: settings.checkIsAllError }
@@ -753,17 +743,17 @@ export async function completeAction(
753
743
  await dynamodbSharedLib.tableName(
754
744
  _izContext,
755
745
  record.tableName,
756
- record.serviceTag,
746
+ record.serviceTag
757
747
  ),
758
748
  {
759
- ...record.objInstanceFull.identifiers,
749
+ ...record.objInstanceFull.identifiers
760
750
  },
761
751
  {
762
- ...record.objInstanceFull.fields,
752
+ ...record.objInstanceFull.fields
763
753
  }
764
- ),
765
- ),
766
- ),
754
+ )
755
+ )
756
+ )
767
757
  );
768
758
  }
769
759
 
@@ -779,3 +769,16 @@ export async function completeAction(
779
769
  _izContext.logger.error(err);
780
770
  }
781
771
  }
772
+
773
+ export {
774
+ createAwaitingMultipleSteps,
775
+ updateAwaitingMultipleStep,
776
+ findPendingStepAwaitingMultipleSteps,
777
+ findPendingStepsAwaitingMultipleSteps,
778
+ findPendingStepIdAwaitingMultipleSteps,
779
+ findAwaitingMultipleStepByPending,
780
+ checkAllAwaitingStepsFinishedWithReturnParams,
781
+ clearAllAwaitingSteps,
782
+ removeAwaitingMultipleStep,
783
+ completeAction
784
+ };
@@ -14,28 +14,28 @@ You should have received a copy of the GNU Affero General Public License
14
14
  along with this program. If not, see <http://www.gnu.org/licenses/>.
15
15
  */
16
16
 
17
- import { NoRetryError } from "@izara_project/izara-core-library-core";
18
- import dynamodbSharedLib from "@izara_project/izara-core-library-dynamodb";
17
+ import { NoRetryError } from '@izara_project/izara-core-library-core';
18
+ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
19
19
 
20
- import { createFieldNameUniqueRequestId } from "./asyncFlowSharedLib.js";
20
+ import { createFieldNameUniqueRequestId } from './asyncFlowSharedLib.js';
21
21
 
22
22
  async function _findSinglePendingStep(_izContext, awaitingStepId) {
23
- _izContext.logger.debug("[Lib:AsyncFlow:findSinglePendingStep] Input", {
24
- awaitingStepId,
23
+ _izContext.logger.debug('[Lib:AsyncFlow:findSinglePendingStep] Input', {
24
+ awaitingStepId
25
25
  });
26
26
 
27
27
  if (!awaitingStepId) {
28
- throw new NoRetryError("awaitingStepId is required");
28
+ throw new NoRetryError('awaitingStepId is required');
29
29
  }
30
30
 
31
31
  const { Items } = await dynamodbSharedLib.query(
32
32
  _izContext,
33
- dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
34
- { awaitingStepId },
33
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
34
+ { awaitingStepId }
35
35
  );
36
36
 
37
37
  if (Items.length !== 1) {
38
- throw new NoRetryError("listPendingSteps not equals 1");
38
+ throw new NoRetryError('listPendingSteps not equals 1');
39
39
  }
40
40
 
41
41
  return Items[0];
@@ -59,18 +59,18 @@ async function _findSinglePendingStep(_izContext, awaitingStepId) {
59
59
  * @param {object} [callingFlowConfig={}] - Calling flow configuration.
60
60
  * @returns {Promise<void>}
61
61
  */
62
- export async function createAwaitingStep(
62
+ async function createAwaitingStep(
63
63
  _izContext,
64
64
  awaitingStepId,
65
65
  pendingStepId,
66
66
  additionalAttributes = {},
67
- callingFlowConfig = {},
67
+ callingFlowConfig = {}
68
68
  ) {
69
- _izContext.logger.debug("[Lib:AsyncFlow:createAwaitingStep] Input", {
69
+ _izContext.logger.debug('[Lib:AsyncFlow:createAwaitingStep] Input', {
70
70
  awaitingStepId,
71
71
  pendingStepId,
72
72
  additionalAttributes,
73
- callingFlowConfig,
73
+ callingFlowConfig
74
74
  });
75
75
 
76
76
  const attributesWhenCreate = {
@@ -78,7 +78,7 @@ export async function createAwaitingStep(
78
78
  pendingStepId,
79
79
  timestamp: Date.now(),
80
80
  uniqueRequestId: _izContext.uniqueRequestId,
81
- ...additionalAttributes,
81
+ ...additionalAttributes
82
82
  };
83
83
 
84
84
  if (Object.keys(callingFlowConfig).length > 0) {
@@ -87,8 +87,8 @@ export async function createAwaitingStep(
87
87
 
88
88
  await dynamodbSharedLib.putItem(
89
89
  _izContext,
90
- dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
91
- attributesWhenCreate,
90
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
91
+ attributesWhenCreate
92
92
  );
93
93
  }
94
94
 
@@ -100,7 +100,7 @@ export async function createAwaitingStep(
100
100
  * @returns {Promise<object>} The found pending step record.
101
101
  * @throws {NoRetryError} If missing or if not exactly one record found.
102
102
  */
103
- export async function findPendingStep(_izContext, awaitingStepId) {
103
+ async function findPendingStep(_izContext, awaitingStepId) {
104
104
  return _findSinglePendingStep(_izContext, awaitingStepId);
105
105
  }
106
106
 
@@ -113,24 +113,20 @@ export async function findPendingStep(_izContext, awaitingStepId) {
113
113
  * @returns {Promise<void>}
114
114
  * @throws {NoRetryError} If awaitingStepId or pendingStepId is missing.
115
115
  */
116
- export async function removeAwaitingStep(
117
- _izContext,
118
- awaitingStepId,
119
- pendingStepId,
120
- ) {
121
- _izContext.logger.debug("[Lib:AsyncFlow:removeAwaitingStep] Input", {
116
+ async function removeAwaitingStep(_izContext, awaitingStepId, pendingStepId) {
117
+ _izContext.logger.debug('[Lib:AsyncFlow:removeAwaitingStep] Input', {
122
118
  awaitingStepId,
123
- pendingStepId,
119
+ pendingStepId
124
120
  });
125
121
 
126
122
  if (!awaitingStepId || !pendingStepId) {
127
- throw new NoRetryError("awaitingStepId, pendingStepId required");
123
+ throw new NoRetryError('awaitingStepId, pendingStepId required');
128
124
  }
129
125
 
130
126
  await dynamodbSharedLib.deleteItem(
131
127
  _izContext,
132
- dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
133
- { awaitingStepId, pendingStepId },
128
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
129
+ { awaitingStepId, pendingStepId }
134
130
  );
135
131
  }
136
132
 
@@ -145,21 +141,21 @@ export async function removeAwaitingStep(
145
141
  * @returns {Promise<void>}
146
142
  * @throws {NoRetryError} If required arguments are missing.
147
143
  */
148
- export async function removeAwaitingStepWithCheckUniqueRequestId(
144
+ async function removeAwaitingStepWithCheckUniqueRequestId(
149
145
  _izContext,
150
146
  awaitingStepId,
151
147
  pendingStepId,
152
148
  checkUniqueRequestId,
153
- prefix = "",
149
+ prefix = ''
154
150
  ) {
155
151
  _izContext.logger.debug(
156
- "[Lib:AsyncFlow:removeAwaitingStepWithCheckUniqueRequestId] Input",
157
- { awaitingStepId, pendingStepId, checkUniqueRequestId, prefix },
152
+ '[Lib:AsyncFlow:removeAwaitingStepWithCheckUniqueRequestId] Input',
153
+ { awaitingStepId, pendingStepId, checkUniqueRequestId, prefix }
158
154
  );
159
155
 
160
156
  if (!awaitingStepId || !pendingStepId || !checkUniqueRequestId) {
161
157
  throw new NoRetryError(
162
- "awaitingStepId, pendingStepId, checkUniqueRequestId required",
158
+ 'awaitingStepId, pendingStepId, checkUniqueRequestId required'
163
159
  );
164
160
  }
165
161
 
@@ -167,19 +163,26 @@ export async function removeAwaitingStepWithCheckUniqueRequestId(
167
163
  additionalAttributes: { checkUniqueRequestId },
168
164
  logicalElements: [
169
165
  {
170
- type: "logical",
171
- comparison: "equals",
166
+ type: 'logical',
167
+ comparison: 'equals',
172
168
  lhsAttribute: createFieldNameUniqueRequestId(prefix),
173
- rhsReference: "checkUniqueRequestId",
174
- },
175
- ],
169
+ rhsReference: 'checkUniqueRequestId'
170
+ }
171
+ ]
176
172
  };
177
173
 
178
174
  await dynamodbSharedLib.deleteItem(
179
175
  _izContext,
180
- dynamodbSharedLib.tableName(_izContext, "AwaitingStep"),
176
+ dynamodbSharedLib.tableName(_izContext, 'AwaitingStep'),
181
177
  { awaitingStepId, pendingStepId },
182
178
  queryElementsCondition,
183
- { errorOnConditionalExpNotPass: false },
179
+ { errorOnConditionalExpNotPass: false }
184
180
  );
185
181
  }
182
+
183
+ export {
184
+ createAwaitingStep,
185
+ findPendingStep,
186
+ removeAwaitingStep,
187
+ removeAwaitingStepWithCheckUniqueRequestId
188
+ };