@izara_project/izara-core-generate-service-code 1.0.64 → 1.0.66

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 (256) hide show
  1. package/README.md +73 -11
  2. package/index.js +0 -5
  3. package/package.json +7 -6
  4. package/src/compile/compileProject.js +26 -0
  5. package/src/compile/loadSchemas.js +28 -0
  6. package/src/emit/crud/dynamicCrudFlowSchemaTemplate.js +11 -0
  7. package/src/emit/crud/emitCrudApplicationArtifacts.js +157 -0
  8. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +84 -0
  9. package/src/emit/crud/generateCrudApplicationArtifacts.js +16 -0
  10. package/src/emit/crud/generateDynamicCrudFlowSchemas.js +21 -0
  11. package/src/emit/crud/loadLocalSchemaArrays.js +8 -0
  12. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/CreateEndpoint_Main.ejs +1 -1
  13. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/DeleteEndpoint_Main.ejs +1 -1
  14. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step → emit/crud/templates}/FlowEndpointBeforeLogical_Main.ejs +2 -2
  15. package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +75 -0
  16. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowEndpoint_HdrWbs.ejs +1 -1
  17. package/src/{codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_HdrSqs.ejs → emit/crud/templates/FlowHandler_HdrSqs.ejs} +52 -56
  18. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowMain_Wbs.ejs +1 -3
  19. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +127 -0
  20. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/UpdateEndpoint_Main.ejs +1 -1
  21. package/src/emit/custom/customFlows.js +70 -0
  22. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +308 -0
  23. package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +22 -0
  24. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/custom/templates}/FlowEndpoint_Main.ejs +1 -1
  25. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step → emit/custom/templates}/FlowStep_Main.ejs +1 -1
  26. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_Main.ejs +5 -5
  27. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_HdrWbs.ejs +1 -1
  28. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_Main.ejs +3 -3
  29. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_Main.ejs +4 -5
  30. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/FlowHandler_HdrS3.ejs +2 -8
  31. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ProcessS3File_Main.ejs +1 -1
  32. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_Main.ejs +5 -6
  33. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +32 -0
  34. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +63 -0
  35. package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +35 -0
  36. package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +16 -0
  37. package/src/emit/function/functionYamlArtifact.js +111 -0
  38. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +117 -0
  39. package/src/emit/rbac/emitRbacApplicationArtifacts.js +256 -0
  40. package/src/emit/rbac/generateCreateTargetRoleHandler.js +19 -0
  41. package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +21 -0
  42. package/src/emit/rbac/rbacFlowTag.js +7 -0
  43. package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +24 -0
  44. package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +25 -0
  45. package/src/emit/rbac/templates/DynamicRbacFlowSchema.ejs +5 -0
  46. package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +17 -0
  47. package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +13 -0
  48. package/src/emit/rbac/templates/ListRbac_Main.ejs +29 -0
  49. package/src/emit/rbac/templates/RbacMutation_Main.ejs +22 -0
  50. package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +10 -0
  51. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +44 -0
  52. package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +33 -0
  53. package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +11 -0
  54. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +66 -0
  55. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +147 -0
  56. package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +23 -0
  57. package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +22 -0
  58. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationshipComplete_Main.ejs → emit/relationship/templates/ChangeRelationshipComplete_Main.ejs} +1 -1
  59. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationship_Main.ejs → emit/relationship/templates/ChangeRelationship_Main.ejs} +10 -2
  60. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationshipComplete_Main.ejs → emit/relationship/templates/CreateRelationshipComplete_Main.ejs} +1 -1
  61. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationship_Main.ejs → emit/relationship/templates/CreateRelationship_Main.ejs} +1 -1
  62. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationshipComplete_Main.ejs → emit/relationship/templates/DeleteRelationshipComplete_Main.ejs} +1 -1
  63. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationship_Main.ejs → emit/relationship/templates/DeleteRelationship_Main.ejs} +1 -1
  64. package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +51 -0
  65. package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrDsq.ejs +1 -1
  66. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +45 -0
  67. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationshipComplete_Main.ejs → emit/relationship/templates/GetRelationshipComplete_Main.ejs} +1 -1
  68. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationship_Main.ejs → emit/relationship/templates/GetRelationship_Main.ejs} +1 -1
  69. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationship_Main.ejs → emit/relationship/templates/MoveRelationship_Main.ejs} +9 -1
  70. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationshipComplete_Main.ejs → emit/relationship/templates/UpdateRelationshipComplete_Main.ejs} +1 -1
  71. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationship_Main.ejs → emit/relationship/templates/UpdateRelationship_Main.ejs} +1 -1
  72. package/src/emit/resource/emitResourceArtifacts.js +300 -0
  73. package/src/emit/resource/generateResourceArtifacts.js +20 -0
  74. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceBeforeLogicalYaml.ejs +1 -1
  75. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceSqsYaml.ejs +6 -6
  76. package/src/{codeGenerators/app/sls_yaml → emit/resource}/templates/SharedResource_Yaml.ejs +8 -8
  77. package/src/emit/system/emitSystemWebSocketArtifacts.js +182 -0
  78. package/src/generate.js +60 -126
  79. package/src/output/commitArtifacts.js +213 -0
  80. package/src/output/mergeHooks.js +55 -0
  81. package/src/output/validateArtifacts.js +62 -0
  82. package/src/plan/buildGenerationPlan.js +50 -0
  83. package/test/core.test.js +159 -0
  84. package/test/createTargetRoleHandler.test.js +68 -0
  85. package/test/crudApplicationArtifacts.test.js +107 -0
  86. package/test/customFlowApplicationArtifacts.test.js +294 -0
  87. package/test/dynamicCrudFlowSchemas.test.js +136 -0
  88. package/test/dynamicRbacFlowSchemas.test.js +101 -0
  89. package/test/dynamicRelationshipFlowSchemas.test.js +99 -0
  90. package/test/functionYamlArtifact.test.js +34 -0
  91. package/test/intTestApi.test.js +29 -0
  92. package/test/publicApi.test.js +209 -0
  93. package/test/relationshipApplicationArtifacts.test.js +68 -0
  94. package/test/resourceArtifacts.test.js +121 -0
  95. package/jsconfig.json +0 -9
  96. package/src/__tests__/getIntTestConfig.test.js +0 -51
  97. package/src/__tests__/intTestGeneratorShared.test.cjs +0 -169
  98. package/src/__tests__/pathIntTest.test.js +0 -103
  99. package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +0 -199
  100. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_LambdaRole.ejs +0 -50
  101. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_SnsService.ejs +0 -15
  102. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_TableName.ejs +0 -9
  103. package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +0 -23
  104. package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +0 -322
  105. package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +0 -21
  106. package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +0 -48
  107. package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +0 -504
  108. package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
  109. package/src/codeGenerators/app/sls_yaml/_policy/PolicyEmitter.js +0 -46
  110. package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -94
  111. package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyEmitter.test.js +0 -55
  112. package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -48
  113. package/src/codeGenerators/app/sls_yaml/_policy/templates/ManagedPolicy_Yaml.ejs +0 -22
  114. package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
  115. package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
  116. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
  117. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
  118. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
  119. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
  120. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
  121. package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
  122. package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
  123. package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
  124. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
  125. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
  126. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
  127. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
  128. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
  129. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
  130. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
  131. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
  132. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
  133. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
  134. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
  135. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
  136. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
  137. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
  138. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
  139. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
  140. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
  141. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
  142. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
  143. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
  144. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
  145. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
  146. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
  147. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
  148. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
  149. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
  150. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
  151. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
  152. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
  153. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
  154. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
  155. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
  156. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
  157. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
  158. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
  159. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
  160. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
  161. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
  162. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
  163. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
  164. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -55
  165. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
  166. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -93
  167. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
  168. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -25
  169. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
  170. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -43
  171. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -43
  172. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
  173. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
  174. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
  175. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
  176. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
  177. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
  178. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
  179. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
  180. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
  181. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
  182. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
  183. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
  184. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
  185. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
  186. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
  187. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
  188. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -236
  189. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -15
  190. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
  191. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
  192. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
  193. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
  194. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
  195. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
  196. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
  197. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
  198. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
  199. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
  200. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
  201. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
  202. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
  203. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
  204. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
  205. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
  206. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
  207. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
  208. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
  209. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
  210. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
  211. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
  212. package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
  213. package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
  214. package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
  215. package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
  216. package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
  217. package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
  218. package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
  219. package/src/core/renderTemplateFile.js +0 -22
  220. package/src/core/validate.js +0 -165
  221. package/src/generateCode.js +0 -358
  222. package/src/generateSchema.js +0 -123
  223. package/src/parsers/flowSchemaParser.js +0 -112
  224. package/src/parsers/objectSchemaParser.js +0 -39
  225. package/src/parsers/relationshipSchemaParser.js +0 -51
  226. package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
  227. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
  228. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
  229. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
  230. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
  231. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
  232. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
  233. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
  234. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
  235. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
  236. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
  237. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
  238. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -149
  239. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -143
  240. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
  241. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
  242. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
  243. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
  244. package/test_schema.js +0 -2
  245. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrApi.ejs +0 -0
  246. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
  247. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.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_HdrSqs.ejs +0 -0
  252. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
  253. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
  254. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
  255. /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
  256. /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
+ }
@@ -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
+ }
@@ -508,4 +508,4 @@ export default async function <%- flowTag %>(
508
508
  _izContext.logger.error('error updateMain:', err);
509
509
  throw err;
510
510
  }
511
- }
511
+ }
@@ -0,0 +1,70 @@
1
+ const SUPPORTED_EVENTS = new Set(['eventBridge', 'extTopic', 'lambdaSyncInv', 'lambdaSyncApi', 'ownTopic', 's3']);
2
+
3
+ export function supportedCustomFlows(flows) {
4
+ if (!Array.isArray(flows)) {
5
+ throw new TypeError('flows must be an array');
6
+ }
7
+ return flows.filter(flow => (
8
+ typeof flow?.flowTag === 'string' && flow.flowTag !== '' &&
9
+ !flow.generatedCodeConfig &&
10
+ Array.isArray(flow.event) &&
11
+ flow.event.some(event => SUPPORTED_EVENTS.has(event))
12
+ ));
13
+ }
14
+
15
+ export function customFlowRoleName(flowTag) {
16
+ return `${upperFirst(flowTag)}Role`;
17
+ }
18
+
19
+ export function flowExtTopicSteps(flows) {
20
+ if (!Array.isArray(flows)) {
21
+ throw new TypeError('flows must be an array');
22
+ }
23
+ return flows.flatMap(flow => {
24
+ if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
25
+ return [];
26
+ }
27
+ return (flow.flowSteps ?? []).flatMap(step => (
28
+ typeof step?.stepName === 'string' && step.stepName !== '' &&
29
+ step.stepName.toLowerCase() !== 'start' &&
30
+ Array.isArray(step.event) && step.event.includes('extTopic')
31
+ ? [{ flow, step, flowTag: upperFirst(flow.flowTag), stepName: upperFirst(step.stepName) }]
32
+ : []
33
+ ));
34
+ });
35
+ }
36
+
37
+ export function generatedOwnTopicFlows(flows) {
38
+ if (!Array.isArray(flows)) {
39
+ throw new TypeError('flows must be an array');
40
+ }
41
+ return flows.filter(flow => (
42
+ typeof flow?.flowTag === 'string' && flow.flowTag !== '' &&
43
+ flow.generatedCodeConfig &&
44
+ Array.isArray(flow.event) && flow.event.includes('ownTopic')
45
+ ));
46
+ }
47
+
48
+ export function triggerCacheFlows(flows) {
49
+ if (!Array.isArray(flows)) {
50
+ throw new TypeError('flows must be an array');
51
+ }
52
+ return flows.filter(flow => (
53
+ typeof flow?.flowTag === 'string' && flow.flowTag !== '' &&
54
+ flow.statusType === 'triggerCache'
55
+ ));
56
+ }
57
+
58
+ export function triggerCacheQueueNames(flow) {
59
+ const tag = upperFirst(flow.flowTag);
60
+ return [
61
+ `TriggerCache${tag}HdrDsq`,
62
+ `CheckTriggerCache${tag}CompleteHdrSqs`,
63
+ `TriggerCache${tag}CompleteHdrSqs`,
64
+ `TriggerCache${tag}CompleteHdrDsq`
65
+ ];
66
+ }
67
+
68
+ export function upperFirst(value) {
69
+ return value[0].toUpperCase() + value.slice(1);
70
+ }