@izara_project/izara-core-generate-service-code 1.0.65 → 1.0.67

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.
Files changed (257) hide show
  1. package/README.md +73 -11
  2. package/docs/TriggeredCache Flow.drawio +193 -0
  3. package/docs/test.mmd +47 -0
  4. package/docs/test.png +0 -0
  5. package/index.js +0 -5
  6. package/package.json +7 -6
  7. package/src/compile/compileProject.js +26 -0
  8. package/src/compile/loadSchemas.js +50 -0
  9. package/src/emit/crud/dynamicCrudFlowSchemaTemplate.js +11 -0
  10. package/src/emit/crud/emitCrudApplicationArtifacts.js +161 -0
  11. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +84 -0
  12. package/src/emit/crud/generateCrudApplicationArtifacts.js +16 -0
  13. package/src/emit/crud/generateDynamicCrudFlowSchemas.js +21 -0
  14. package/src/emit/crud/loadLocalSchemaArrays.js +8 -0
  15. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/CreateEndpoint_Main.ejs +6 -6
  16. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/DeleteEndpoint_Main.ejs +6 -6
  17. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step → emit/crud/templates}/FlowEndpointBeforeLogical_Main.ejs +2 -2
  18. package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +96 -0
  19. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowEndpoint_HdrWbs.ejs +1 -1
  20. package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +69 -0
  21. package/src/{codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_HdrSqs.ejs → emit/crud/templates/FlowHandler_HdrSqs.ejs} +52 -56
  22. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowMain_Wbs.ejs +1 -3
  23. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.ejs +2 -2
  24. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +127 -0
  25. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/UpdateEndpoint_Main.ejs +11 -9
  26. package/src/emit/custom/customFlows.js +121 -0
  27. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +325 -0
  28. package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +22 -0
  29. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/custom/templates}/FlowEndpoint_Main.ejs +5 -5
  30. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step → emit/custom/templates}/FlowStep_Main.ejs +1 -1
  31. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_Main.ejs +5 -5
  32. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_HdrWbs.ejs +1 -1
  33. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_Main.ejs +3 -3
  34. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_Main.ejs +4 -5
  35. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/FlowHandler_HdrS3.ejs +2 -8
  36. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ProcessS3File_Main.ejs +1 -1
  37. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_Main.ejs +5 -6
  38. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +32 -0
  39. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +63 -0
  40. package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +35 -0
  41. package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +16 -0
  42. package/src/emit/function/functionYamlArtifact.js +125 -0
  43. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +117 -0
  44. package/src/emit/rbac/emitRbacApplicationArtifacts.js +270 -0
  45. package/src/emit/rbac/generateCreateTargetRoleHandler.js +19 -0
  46. package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +21 -0
  47. package/src/emit/rbac/rbacFlowTag.js +7 -0
  48. package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +24 -0
  49. package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +25 -0
  50. package/src/emit/rbac/templates/DynamicRbacFlowSchema.ejs +5 -0
  51. package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +17 -0
  52. package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +13 -0
  53. package/src/emit/rbac/templates/ListRbac_Main.ejs +29 -0
  54. package/src/emit/rbac/templates/RbacMutation_Main.ejs +22 -0
  55. package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +10 -0
  56. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +44 -0
  57. package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +33 -0
  58. package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +11 -0
  59. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +66 -0
  60. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +148 -0
  61. package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +23 -0
  62. package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +22 -0
  63. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationshipComplete_Main.ejs → emit/relationship/templates/ChangeRelationshipComplete_Main.ejs} +1 -1
  64. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationship_Main.ejs → emit/relationship/templates/ChangeRelationship_Main.ejs} +12 -4
  65. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationshipComplete_Main.ejs → emit/relationship/templates/CreateRelationshipComplete_Main.ejs} +1 -1
  66. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationship_Main.ejs → emit/relationship/templates/CreateRelationship_Main.ejs} +1 -1
  67. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationshipComplete_Main.ejs → emit/relationship/templates/DeleteRelationshipComplete_Main.ejs} +1 -1
  68. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationship_Main.ejs → emit/relationship/templates/DeleteRelationship_Main.ejs} +1 -1
  69. package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrDsq.ejs +1 -1
  70. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +45 -0
  71. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationshipComplete_Main.ejs → emit/relationship/templates/GetRelationshipComplete_Main.ejs} +1 -1
  72. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationship_Main.ejs → emit/relationship/templates/GetRelationship_Main.ejs} +1 -1
  73. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationship_Main.ejs → emit/relationship/templates/MoveRelationship_Main.ejs} +9 -1
  74. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationshipComplete_Main.ejs → emit/relationship/templates/UpdateRelationshipComplete_Main.ejs} +1 -1
  75. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationship_Main.ejs → emit/relationship/templates/UpdateRelationship_Main.ejs} +1 -1
  76. package/src/emit/resource/emitResourceArtifacts.js +595 -0
  77. package/src/emit/resource/generateResourceArtifacts.js +20 -0
  78. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceBeforeLogicalYaml.ejs +1 -1
  79. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceSqsYaml.ejs +6 -6
  80. package/src/{codeGenerators/app/sls_yaml → emit/resource}/templates/SharedResource_Yaml.ejs +8 -8
  81. package/src/emit/system/emitSystemWebSocketArtifacts.js +183 -0
  82. package/src/generate.js +60 -126
  83. package/src/output/commitArtifacts.js +213 -0
  84. package/src/output/mergeHooks.js +55 -0
  85. package/src/output/validateArtifacts.js +62 -0
  86. package/src/plan/buildGenerationPlan.js +50 -0
  87. package/test/core.test.js +159 -0
  88. package/test/createTargetRoleHandler.test.js +68 -0
  89. package/test/crudApplicationArtifacts.test.js +107 -0
  90. package/test/customFlowApplicationArtifacts.test.js +297 -0
  91. package/test/dynamicCrudFlowSchemas.test.js +136 -0
  92. package/test/dynamicRbacFlowSchemas.test.js +101 -0
  93. package/test/dynamicRelationshipFlowSchemas.test.js +99 -0
  94. package/test/functionYamlArtifact.test.js +34 -0
  95. package/test/intTestApi.test.js +29 -0
  96. package/test/publicApi.test.js +209 -0
  97. package/test/relationshipApplicationArtifacts.test.js +68 -0
  98. package/test/resourceArtifacts.test.js +121 -0
  99. package/jsconfig.json +0 -9
  100. package/src/__tests__/getIntTestConfig.test.js +0 -51
  101. package/src/__tests__/intTestGeneratorShared.test.cjs +0 -169
  102. package/src/__tests__/pathIntTest.test.js +0 -103
  103. package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +0 -199
  104. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_LambdaRole.ejs +0 -50
  105. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_SnsService.ejs +0 -15
  106. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_TableName.ejs +0 -9
  107. package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +0 -23
  108. package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +0 -332
  109. package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +0 -21
  110. package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +0 -48
  111. package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +0 -503
  112. package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
  113. package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -56
  114. package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -33
  115. package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
  116. package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
  117. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
  118. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
  119. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
  120. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
  121. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
  122. package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
  123. package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
  124. package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
  125. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
  126. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
  127. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
  128. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
  129. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
  130. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
  131. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
  132. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
  133. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
  134. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
  135. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
  136. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
  137. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
  138. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
  139. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
  140. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
  141. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
  142. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
  143. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
  144. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
  145. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
  146. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
  147. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
  148. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
  149. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
  150. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
  151. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
  152. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
  153. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
  154. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
  155. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
  156. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
  157. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
  158. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
  159. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
  160. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
  161. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
  162. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
  163. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
  164. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
  165. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -63
  166. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
  167. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -94
  168. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
  169. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -33
  170. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
  171. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -51
  172. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -51
  173. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
  174. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
  175. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
  176. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
  177. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
  178. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
  179. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
  180. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
  181. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
  182. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
  183. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
  184. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
  185. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
  186. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
  187. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
  188. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
  189. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -267
  190. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -18
  191. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
  192. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
  193. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
  194. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
  195. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
  196. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
  197. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
  198. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
  199. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
  200. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
  201. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
  202. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
  203. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
  204. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
  205. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
  206. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
  207. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
  208. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
  209. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
  210. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
  211. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
  212. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
  213. package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
  214. package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
  215. package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
  216. package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
  217. package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
  218. package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
  219. package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
  220. package/src/core/renderTemplateFile.js +0 -22
  221. package/src/core/validate.js +0 -165
  222. package/src/generateCode.js +0 -357
  223. package/src/generateSchema.js +0 -123
  224. package/src/parsers/flowSchemaParser.js +0 -112
  225. package/src/parsers/objectSchemaParser.js +0 -39
  226. package/src/parsers/relationshipSchemaParser.js +0 -51
  227. package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
  228. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
  229. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
  230. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
  231. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
  232. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
  233. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
  234. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
  235. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
  236. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
  237. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
  238. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
  239. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -109
  240. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -103
  241. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/__tests__/relationshipSchemaHelpers.test.js +0 -38
  242. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/relationshipSchemaHelpers.js +0 -40
  243. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
  244. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
  245. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
  246. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
  247. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
  248. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_HdrSqs.ejs +0 -0
  249. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_HdrSqs.ejs +0 -0
  250. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_HdrSqs.ejs +0 -0
  251. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrApi.ejs +0 -0
  252. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrSqs.ejs +0 -0
  253. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
  254. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
  255. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
  256. /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
  257. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/SystemDynamoDB_Yaml.ejs +0 -0
@@ -16,61 +16,45 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
  */
17
17
 
18
18
  import { middlewareHandler as middleware } from '@izara_project/izara-middleware';
19
- import Logger from '@izara_project/izara-core-library-logger';
20
19
  import { recordHandlerSharedLib } from '@izara_project/izara-core-library-record-handler';
20
+ import Logger from '@izara_project/izara-core-library-logger';
21
21
  import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
22
-
23
- import processLogical from './ProcessLogical_Main.js';
22
+ import <%= functionName %> from './<%= mainFileName %>.js';
24
23
 
25
24
  // validate event properties in body.Message of sqs event
26
- middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
25
+ let perRecordsValidatorSchema = {
26
+ //(<validatorSchema>)
27
+ <% if (typeof startConfig !== 'undefined' && startConfig !== null && startConfig.properties && startConfig.properties.length > 0) { -%>
28
+ type: 'object',
29
+ properties: {
30
+ <% startConfig.properties.forEach((prop, index) => { %> <%- prop.propertyName %>: { type: '<%- prop.type || 'string' %>' }<%= index < startConfig.properties.length - 1 ? ',' : '' %>
31
+ <% }) %> },
32
+ required: [<%- startConfig.properties.filter(p => p.required !== false).map(p => `'${p.propertyName}'`).join(', ') %>]
33
+ <% } -%>
34
+ //(</validatorSchema>)
35
+ };
27
36
 
28
- // set schema for record.body.Message
29
- const perRecordsValidatorSchema = {
37
+ <% if (typeof startConfig !== 'undefined' && startConfig !== null && startConfig.messageAttributes && startConfig.messageAttributes.length > 0) { -%>
38
+ let messageAttributeValidatorSchema = {
30
39
  type: 'object',
31
- required: ['objType', 'element', 'overWriteCache'],
32
40
  properties: {
33
- objType: {
41
+ <% startConfig.messageAttributes.forEach((prop, index) => { %> '<%- prop.propertyName %>': {
34
42
  type: 'object',
35
- required: ['serviceTag', 'objectType'],
36
43
  properties: {
37
- serviceTag: {
38
- type: 'string',
39
- enum: [process.env.iz_serviceTag]
40
- },
41
- objectType: {
42
- type: 'string'
43
- }
44
- }
45
- },
46
- element: {
47
- type: 'object'
48
- },
49
- overWriteCache: {
50
- type: 'boolean'
51
- },
52
- callingFlow: {
53
- type: 'string',
54
- default: ''
55
- }
56
- }
44
+ Type: { type: 'string' },
45
+ Value: { type: '<%- prop.type || 'string' %>' }
46
+ },
47
+ required: ['Type', 'Value']
48
+ }<%= index < startConfig.messageAttributes.length - 1 ? ',' : '' %>
49
+ <% }) %> },
50
+ required: [<%- startConfig.messageAttributes.filter(p => p.required !== false).map(p => `'${p.propertyName}'`).join(', ') %>]
57
51
  };
52
+ <% } else { -%>
53
+ let messageAttributeValidatorSchema = null;
54
+ <% } -%>
55
+ middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
58
56
 
59
- // set schema for record.body.MessageAttributes
60
- // const messageAttributeValidatorSchema = {
61
- // type: "object",
62
- // required: ['msgAtrrParam1', 'msgAtrrParam2'],
63
- // properties: {
64
- // msgAtrrParam1: {
65
- // type: "string"
66
- // },
67
- // msgAtrrParam2: {
68
- // type: "object"
69
- // }
70
- // }
71
- // };
72
-
73
- export const main = middleware.wrap(async (event, context, callback) => {
57
+ export const main = middleware.wrap(async (event, context) => {
74
58
  try {
75
59
  let recordPromises = [];
76
60
 
@@ -82,19 +66,31 @@ export const main = middleware.wrap(async (event, context, callback) => {
82
66
  let passOnProperties = [];
83
67
  record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
84
68
 
85
- // validate message (and MessageAttributes)
69
+ //validate message (and MessageAttributes)
86
70
  await recordHandlerSharedLib.validateRecord(
87
71
  record, // one record will send to mainFunction
88
- 'ProcessLogicalHdrSqs', // queue name that need to retry or send to dlq
89
- perRecordsValidatorSchema // schema for record.Message
90
- // messageAttributeValidatorSchema // ----- for msgAttr default is null -> do not send this parameter if not want to validate msgAtt
72
+ '<%= queueName %>', // queue name that need to retry or send to dlq
73
+ perRecordsValidatorSchema, // schema for record.Message
74
+ messageAttributeValidatorSchema
91
75
  );
92
76
 
93
77
  // add argument (to invoke lambda) to passOnProperties[]
94
- passOnProperties.push(record.body.Message.objType);
95
- passOnProperties.push(record.body.Message.element);
96
- passOnProperties.push(record.body.Message.overWriteCache);
97
- passOnProperties.push(record.body.Message.callingFlow);
78
+ passOnProperties.push(record.body.Message);
79
+ <% if (typeof usePassBack === 'undefined' ? functionName.endsWith('Complete') : usePassBack) { %>
80
+ passOnProperties.push(
81
+ callingFlowSharedLib.addPassBackPropertiesToPassOnProperties(
82
+ record.body.Message
83
+ )
84
+ );
85
+ <% } else { %>
86
+ passOnProperties.push(
87
+ callingFlowSharedLib.addCallingFlowToPassOnProperties(
88
+ record.body.Message
89
+ )
90
+ );
91
+ <% } %>
92
+ //(<additionalParams>)
93
+ //(</additionalParams>)
98
94
  record._izContext.logger.debug(
99
95
  'passOnProperties in handler',
100
96
  passOnProperties
@@ -103,8 +99,8 @@ export const main = middleware.wrap(async (event, context, callback) => {
103
99
  // call recordHandlerSharedLib.recordHandler with 3 parameters and return promise(resolve)
104
100
  let recordPromise = recordHandlerSharedLib.recordHandler(
105
101
  record, // one record will send to mainFunction
106
- processLogical, // mainFunction that need to invoke.
107
- 'ProcessLogicalHdrSqs', // queue name that need to retry or send to dlq
102
+ <%= functionName %>, // mainFunction that need to invoke.
103
+ '<%= queueName %>', // queue name that need to retry or send to dlq
108
104
  passOnProperties // all parameters that mainFunction needed.
109
105
  );
110
106
  record._izContext.logger.debug('after recordPromise in handler');
@@ -125,7 +121,7 @@ export const main = middleware.wrap(async (event, context, callback) => {
125
121
  }
126
122
  Logger.debug('after Promise.all(recordPromises) in handler');
127
123
  } catch (err) {
128
- Logger.error('Unhandled Error, ProcessLogicalHdrSqs: ', err);
124
+ Logger.error('Unhandled Error, LambdaFunctionHdrSqs: ', err);
129
125
  throw err;
130
126
  }
131
- });
127
+ });
@@ -27,8 +27,6 @@ import { sns, webSocket } from '@izara_project/izara-core-library-external-reque
27
27
 
28
28
  import { NoRetryError } from '@izara_project/izara-core-library-core';
29
29
  import { consts as coreConsts } from "@izara_project/izara-middleware";
30
- import { consts as generateCodeConsts } from '@izara_project/izara-core-generate-service-code';
31
- const { TOPIC_NAME_GENERATE_CODE } = generateCodeConsts;
32
30
  const { postToConnection } = webSocket;
33
31
 
34
32
  //(<optionalRequire>)
@@ -107,4 +105,4 @@ export default async function <%- typeof functionName !== 'undefined' ? function
107
105
  _izContext.logger.error('error WebSocketInvoke: ', err)
108
106
  throw (err)
109
107
  }
110
- }
108
+ }
@@ -25,7 +25,7 @@ import {
25
25
  utils,
26
26
  dataDetailsLib
27
27
  } from '@izara_project/izara-core-library-service-schemas';
28
- const { getObjSchemaS3WithHierarchy } = getObjectSchema;
28
+ const { getObjectSchemaCombineFieldNamesWithCache } = getObjectSchema;
29
29
  const { getGraphServiceTagWithCache } = serviceConfig;
30
30
  const { objInstanceFromObjInstanceBase, dynamoDbIdentifiersByStorageResource } =
31
31
  identifiersObject;
@@ -81,7 +81,7 @@ export default async function <%- flowTag %>(
81
81
  const objType = createObjType(requestParams.objectType);
82
82
 
83
83
  // ── Load schema ───────────────────────────────────────────────────────────
84
- const objectSchema = await getObjSchemaS3WithHierarchy(_izContext, objType);
84
+ const objectSchema = await getObjectSchemaCombineFieldNamesWithCache(_izContext, objType);
85
85
  _izContext.logger.debug('objectSchema:', objectSchema);
86
86
 
87
87
  // ── Build getDataDetails ──────────────────────────────────────────────────
@@ -0,0 +1,127 @@
1
+ /*
2
+ Copyright (C) 2020 Sven Mason <http: //izara.io>
3
+
4
+ This program is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU Affero General Public License as
6
+ published by the Free Software Foundation, either version 3 of the
7
+ License, or (at your option) any later version.
8
+
9
+ This program is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU Affero General Public License for more details.
13
+
14
+ You should have received a copy of the GNU Affero General Public License
15
+ along with this program. If not, see
16
+ <http: //www.gnu.org/licenses />.
17
+ */
18
+
19
+ // ==================== Izara Core Service Schemas ====================
20
+ import {
21
+ getObjectSchema,
22
+ consts,
23
+ utils,
24
+ dataDetailsLib
25
+ } from '@izara_project/izara-core-library-service-schemas';
26
+ const { getObjSchemaS3WithHierarchy } = getObjectSchema;
27
+ const { createObjType } = utils;
28
+ const { createGetDataDetails } = dataDetailsLib;
29
+
30
+ // ==================== Shared Utility Libraries ====================
31
+ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
32
+
33
+ //(<optionalRequire>)
34
+ //(</optionalRequire>)
35
+
36
+ /**
37
+ * Gets a range of objects by processing DynamoDB query
38
+ * @param {Object} _izContext - Context object with logger
39
+ * @param {Object} requestParams - { objectType, pk, sk, itemNum, additionalParams }
40
+ * @param {Object} callingFlowConfig - Calling flow configuration
41
+ * @returns {Promise<Object>} DynamoDB query result (Items, LastEvaluatedKey, etc.)
42
+ */
43
+ export default async function <%- mainFileName %>(
44
+ _izContext,
45
+ requestParams,
46
+ callingFlowConfig = {}
47
+ //(<additionalParams>)
48
+ //(</additionalParams>)
49
+ ) {
50
+ try {
51
+ _izContext.logger.debug('function <%- mainFileName %>:', {
52
+ requestParams,
53
+ callingFlowConfig
54
+ });
55
+
56
+ const objType = createObjType(requestParams.objectType);
57
+
58
+ // ── Load schema ───────────────────────────────────────────────────────────
59
+ const objectSchema = await getObjSchemaS3WithHierarchy(_izContext, objType);
60
+ _izContext.logger.debug('objectSchema:', objectSchema);
61
+
62
+ // ── Build getDataDetails ──────────────────────────────────────────────────
63
+ const getDataDetails = await createGetDataDetails(_izContext, objectSchema);
64
+ _izContext.logger.debug('getDataDetails:', getDataDetails);
65
+
66
+ const { pk, sk, itemNum } = requestParams;
67
+
68
+ if (!pk) {
69
+ throw new Error('Partition key (pk) is required for getRange');
70
+ }
71
+
72
+ const queryElements = {};
73
+ if (itemNum) {
74
+ queryElements.limit = parseInt(itemNum, 10);
75
+ }
76
+
77
+ if (sk) {
78
+ if (typeof sk === 'object') {
79
+ queryElements.exclusiveStartKey = sk;
80
+ } else {
81
+ queryElements.exclusiveStartKey = { pk: pk, sk: sk };
82
+ }
83
+ }
84
+
85
+ //(<beforeQuery>)
86
+ //(</beforeQuery>)
87
+
88
+ // ── Process storage resources (DynamoDB only for getRange) ────────────────
89
+ let queryResult = null;
90
+
91
+ await Promise.all(
92
+ Object.entries(getDataDetails).map(async ([, getDataDetail]) => {
93
+ if (getDataDetail.storageType !== consts.STORAGE_TYPES.graph) {
94
+ const tableName = await dynamodbSharedLib.tableName(
95
+ _izContext,
96
+ getDataDetail.tableName,
97
+ getDataDetail.serviceTag
98
+ );
99
+
100
+ const pkName = getDataDetail.partitionKey || 'pk';
101
+ const partitionKeyValue = { [pkName]: pk };
102
+
103
+ //(<beforeGetRangeDynamoDb>)
104
+ //(</beforeGetRangeDynamoDb>)
105
+
106
+ let dataFromDynamoDb = await dynamodbSharedLib.query(
107
+ _izContext,
108
+ tableName,
109
+ partitionKeyValue,
110
+ queryElements
111
+ );
112
+ _izContext.logger.debug('dataFromDynamoDb:', dataFromDynamoDb);
113
+
114
+ queryResult = dataFromDynamoDb;
115
+
116
+ //(<afterGetRangeDynamoDb>)
117
+ //(</afterGetRangeDynamoDb>)
118
+ }
119
+ })
120
+ );
121
+
122
+ return queryResult;
123
+ } catch (err) {
124
+ _izContext.logger.error('error <%- mainFileName %>:', err);
125
+ throw err;
126
+ }
127
+ }
@@ -57,7 +57,7 @@ export async function <%- flowTag %>MainLogical(
57
57
  beforeLogicalResults = {}
58
58
  ) {
59
59
  try {
60
- _izContext.logger.debug('updateMainLogical:', { requestParams, callingFlowConfig, beforeLogicalResults });
60
+ _izContext.logger.debug('[<%- flowTag %>MainLogical] started', { requestParams, callingFlowConfig, beforeLogicalResults });
61
61
 
62
62
  //(<beforeUpdateMainLogical>)
63
63
  //(</beforeUpdateMainLogical>)
@@ -192,7 +192,7 @@ export async function <%- flowTag %>MainLogical(
192
192
  //(</additionalAttributes>)
193
193
 
194
194
 
195
- records = awaitingStepIds.lenght === 0 ? listOfRecords : [];
195
+ const records = awaitingStepIds.length === 0 ? listOfRecords : [];
196
196
  awaitingStepIds.push({
197
197
  awaitingStepId: asyncFlowSharedLib.createAwaitingStepId(
198
198
  parentFlowId,
@@ -202,10 +202,12 @@ export async function <%- flowTag %>MainLogical(
202
202
  });
203
203
 
204
204
  if (awaitingStepIds.length) {
205
- const awaitingMultipleStep = await asyncFlowSharedLib.createAwaitingMultipleStepsWithAdditionalAttributes(
205
+ const awaitingMultipleStep = await asyncFlowSharedLib.createAwaitingMultipleSteps(
206
206
  _izContext,
207
- awaitingStepIds,
208
- asyncFlowSharedLib.createPendingStepId(_izContext.uniqueRequestId)
207
+ asyncFlowSharedLib.createPendingStepId(
208
+ _izContext.uniqueRequestId
209
+ ),
210
+ awaitingStepIds
209
211
  );
210
212
  _izContext.logger.debug('awaitingMultipleStep', awaitingMultipleStep);
211
213
  }
@@ -315,7 +317,7 @@ export async function <%- flowTag %>MainLogical(
315
317
  };
316
318
 
317
319
  } catch (err) {
318
- _izContext.logger.error('error updateMainLogical:', err);
320
+ _izContext.logger.error('[<%- flowTag %>MainLogical] error:', err);
319
321
  throw err;
320
322
  }
321
323
  }
@@ -335,7 +337,7 @@ export default async function <%- flowTag %>(
335
337
  //(</additionalParams>)
336
338
  ) {
337
339
  try {
338
- _izContext.logger.debug('updateMain:', { requestParams, callingFlowConfig });
340
+ _izContext.logger.debug('[<%- flowTag %>] started', { requestParams, callingFlowConfig });
339
341
 
340
342
  // ── Build identifiers (used for hash in beforeLogical) ──────────────────
341
343
  const identifiers = requestParams.objInstanceFull.identifiers;
@@ -505,7 +507,7 @@ export default async function <%- flowTag %>(
505
507
  );
506
508
 
507
509
  } catch (err) {
508
- _izContext.logger.error('error updateMain:', err);
510
+ _izContext.logger.error('[<%- flowTag %>] error:', err);
509
511
  throw err;
510
512
  }
511
- }
513
+ }
@@ -0,0 +1,121 @@
1
+ const SUPPORTED_EVENTS = new Set([
2
+ 'eventBridge',
3
+ 'extTopic',
4
+ 'lambdaSyncInv',
5
+ 'lambdaSyncApi',
6
+ 'ownTopic',
7
+ 's3',
8
+ 'dsq'
9
+ ]);
10
+
11
+ export function supportedCustomFlows(flows) {
12
+ if (!Array.isArray(flows)) {
13
+ throw new TypeError('flows must be an array');
14
+ }
15
+ return flows.filter(
16
+ flow =>
17
+ typeof flow?.flowTag === 'string' &&
18
+ flow.flowTag !== '' &&
19
+ !flow.generatedCodeConfig &&
20
+ Array.isArray(flow.event) &&
21
+ flow.event.some(event => SUPPORTED_EVENTS.has(event))
22
+ );
23
+ }
24
+
25
+ export function customFlowRoleName(flowTag) {
26
+ return `${upperFirst(flowTag)}Role`;
27
+ }
28
+
29
+ export function flowExtTopicSteps(flows) {
30
+ if (!Array.isArray(flows)) {
31
+ throw new TypeError('flows must be an array');
32
+ }
33
+ return flows.flatMap(flow => {
34
+ if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
35
+ return [];
36
+ }
37
+ return (flow.flowSteps ?? []).flatMap(step =>
38
+ typeof step?.stepName === 'string' &&
39
+ step.stepName !== '' &&
40
+ step.stepName.toLowerCase() !== 'start' &&
41
+ Array.isArray(step.event) &&
42
+ step.event.includes('extTopic')
43
+ ? [
44
+ {
45
+ flow,
46
+ step,
47
+ flowTag: upperFirst(flow.flowTag),
48
+ stepName: upperFirst(step.stepName)
49
+ }
50
+ ]
51
+ : []
52
+ );
53
+ });
54
+ }
55
+
56
+ export function flowDsqSteps(flows) {
57
+ if (!Array.isArray(flows)) {
58
+ throw new TypeError('flows must be an array');
59
+ }
60
+ return flows.flatMap(flow => {
61
+ if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
62
+ return [];
63
+ }
64
+ return (flow.flowSteps ?? []).flatMap(step =>
65
+ typeof step?.stepName === 'string' &&
66
+ step.stepName !== '' &&
67
+ step.stepName.toLowerCase() !== 'start' &&
68
+ Array.isArray(step.event) &&
69
+ step.event.includes('dsq')
70
+ ? [
71
+ {
72
+ flow,
73
+ step,
74
+ flowTag: upperFirst(flow.flowTag),
75
+ stepName: upperFirst(step.stepName)
76
+ }
77
+ ]
78
+ : []
79
+ );
80
+ });
81
+ }
82
+
83
+ export function generatedOwnTopicFlows(flows) {
84
+ if (!Array.isArray(flows)) {
85
+ throw new TypeError('flows must be an array');
86
+ }
87
+ return flows.filter(
88
+ flow =>
89
+ typeof flow?.flowTag === 'string' &&
90
+ flow.flowTag !== '' &&
91
+ flow.generatedCodeConfig &&
92
+ Array.isArray(flow.event) &&
93
+ flow.event.includes('ownTopic')
94
+ );
95
+ }
96
+
97
+ export function upperFirst(value) {
98
+ return value[0].toUpperCase() + value.slice(1);
99
+ }
100
+
101
+ export function triggerCacheFlows(flows) {
102
+ if (!Array.isArray(flows)) {
103
+ throw new TypeError('flows must be an array');
104
+ }
105
+ return flows.filter(
106
+ flow =>
107
+ typeof flow?.flowTag === 'string' &&
108
+ flow.flowTag !== '' &&
109
+ flow.statusType === 'triggerCache'
110
+ );
111
+ }
112
+
113
+ export function triggerCacheQueueNames(flow) {
114
+ const tag = upperFirst(flow.flowTag);
115
+ return [
116
+ `TriggerCache${tag}HdrDsq`,
117
+ `CheckTriggerCache${tag}CompleteHdrSqs`,
118
+ `TriggerCache${tag}CompleteHdrSqs`,
119
+ `TriggerCache${tag}CompleteHdrDsq`
120
+ ];
121
+ }