@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
@@ -1,148 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs/promises';
3
- import { fileURLToPath } from 'url';
4
- import ejs from 'ejs';
5
- import { processFunctionName, processMainFileName, upperFirst } from '../_shared/shared/flowNaming.js';
6
-
7
- const RELATIONSHIP_ACTIONS = [
8
- 'CreateRelationship',
9
- 'UpdateRelationship',
10
- 'DeleteRelationship',
11
- 'GetRelationship',
12
- 'ChangeRelationship',
13
- 'MoveRelationship'
14
- ];
15
-
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = path.dirname(__filename);
18
-
19
- export async function generateRelationshipFlows(allSchemas, options) {
20
- console.log(' [RelationshipFlowGenerator] Generating Custom Relationship Flows...');
21
- const baseOutputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode');
22
- // Local templates/ folder (4-way shared handlers via symlink + relationship/ specific templates)
23
- const templateDir = path.join(__dirname, 'templates');
24
-
25
- // Read standard handler templates for reuse
26
- const templates = {
27
- sqs: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
28
- dsq: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrDsq.ejs'), 'utf-8'),
29
- api: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
30
- inv: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8')
31
- };
32
-
33
- let generatedCount = 0;
34
-
35
- if (!allSchemas.relationships || allSchemas.relationships.length === 0) return;
36
-
37
- for (const flowTag of RELATIONSHIP_ACTIONS) {
38
- const upperFlowTag = upperFirst(flowTag);
39
- const processFunction = processFunctionName(flowTag);
40
-
41
- const flowOutputDir = path.join(baseOutputDir, 'FlowRelationships', upperFlowTag, 'source');
42
- await fs.mkdir(flowOutputDir, { recursive: true });
43
-
44
- // 1. Generate Action Step (In) Main Function
45
- const actionFileName = processMainFileName(flowTag);
46
- const actionTemplatePath = path.join(templateDir, 'relationship', `${actionFileName}.ejs`);
47
-
48
- try {
49
- const actionTemplateStr = await fs.readFile(actionTemplatePath, 'utf-8');
50
- const actionContent = ejs.render(actionTemplateStr, {
51
- functionName: processFunction,
52
- upperFunctionName: processFunction
53
- });
54
- await fs.writeFile(path.join(flowOutputDir, `${actionFileName}.js`), actionContent, 'utf-8');
55
- generatedCount++;
56
- } catch (err) {
57
- console.warn(` [RelationshipFlowGenerator] Warning: Action template not found for ${flowTag}. Skipping.`);
58
- }
59
-
60
- // 2. Generate Action Step Handlers
61
- const flowSchema = allSchemas.flows?.find(f => f.flowTag === flowTag);
62
- let events = ['ownTopic'];
63
- if (flowSchema && flowSchema.event) {
64
- events = Array.isArray(flowSchema.event) ? flowSchema.event : [flowSchema.event];
65
- }
66
-
67
- for (const event of events) {
68
- let handlerFileName, handlerContent, handlerFunctionName;
69
- if (event === 'ownTopic' || event === 'extTopic') {
70
- handlerFunctionName = `${processFunction}_HdrSqs`;
71
- handlerContent = ejs.render(templates.sqs, {
72
- flowTag: flowTag,
73
- flowStepName: '',
74
- mainFileName: actionFileName,
75
- functionName: processFunction,
76
- queueName: `${processFunction}HdrSqs`
77
- });
78
- await fs.writeFile(path.join(flowOutputDir, `${handlerFunctionName}.js`), handlerContent, 'utf-8');
79
- generatedCount++;
80
- } else if (event === 'lambdaSyncApi') {
81
- handlerFunctionName = `${processFunction}_HdrApi`;
82
- handlerContent = ejs.render(templates.api, {
83
- flowTag: flowTag,
84
- flowStepName: '',
85
- mainFileName: actionFileName,
86
- functionName: processFunction
87
- });
88
- await fs.writeFile(path.join(flowOutputDir, `${handlerFunctionName}.js`), handlerContent, 'utf-8');
89
- generatedCount++;
90
- } else if (event === 'lambdaSyncInv') {
91
- handlerFunctionName = `${processFunction}_HdrInv`;
92
- handlerContent = ejs.render(templates.inv, {
93
- flowTag: flowTag,
94
- flowStepName: '',
95
- mainFileName: actionFileName,
96
- functionName: processFunction
97
- });
98
- await fs.writeFile(path.join(flowOutputDir, `${handlerFunctionName}.js`), handlerContent, 'utf-8');
99
- generatedCount++;
100
- } else if (event === 'dsq') {
101
- handlerFunctionName = `${processFunction}_HdrDsq`;
102
- handlerContent = ejs.render(templates.dsq || templates.sqs, {
103
- flowTag: flowTag,
104
- flowStepName: '',
105
- mainFileName: actionFileName,
106
- functionName: processFunction,
107
- queueName: `${processFunction}HdrDsq`
108
- });
109
- await fs.writeFile(path.join(flowOutputDir, `${handlerFunctionName}.js`), handlerContent, 'utf-8');
110
- generatedCount++;
111
- }
112
- }
113
-
114
- // 3. Generate Complete Step (Always generated for Relationship flows)
115
- if (true) {
116
- const completeFunction = `${processFunction}Complete`;
117
- const completeFileName = `${completeFunction}_Main`;
118
- const completeTemplatePath = path.join(templateDir, 'relationship', `${completeFileName}.ejs`);
119
-
120
- try {
121
- const completeTemplateStr = await fs.readFile(completeTemplatePath, 'utf-8');
122
- const completeContent = ejs.render(completeTemplateStr, {
123
- functionName: completeFunction,
124
- upperFunctionName: completeFunction
125
- });
126
- await fs.writeFile(path.join(flowOutputDir, `${completeFileName}.js`), completeContent, 'utf-8');
127
- generatedCount++;
128
-
129
- // Complete Handler is always SQS typically in Izara
130
- const completeHandlerName = `${completeFunction}_HdrSqs`;
131
- const completeHandlerContent = ejs.render(templates.sqs, {
132
- flowTag: flowTag,
133
- flowStepName: 'Complete',
134
- mainFileName: completeFileName,
135
- functionName: completeFunction,
136
- queueName: `${completeFunction}HdrSqs`
137
- });
138
- await fs.writeFile(path.join(flowOutputDir, `${completeHandlerName}.js`), completeHandlerContent, 'utf-8');
139
- generatedCount++;
140
-
141
- } catch (err) {
142
- console.warn(` [RelationshipFlowGenerator] Warning: Complete template not found for ${flowTag}. Skipping.`);
143
- }
144
- }
145
- }
146
-
147
- console.log(` [RelationshipFlowGenerator] Generated ${generatedCount} files for Relationship Flows.`);
148
- }
@@ -1,109 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs/promises';
3
- import { fileURLToPath } from 'url';
4
- import ejs from 'ejs';
5
-
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
-
9
- function upperCase(str) {
10
- if (!str) return str;
11
- return str.charAt(0).toUpperCase() + str.slice(1);
12
- }
13
-
14
- function lowerCase(str) {
15
- if (!str) return str;
16
- return str.charAt(0).toLowerCase() + str.slice(1);
17
- }
18
-
19
- function shortNameHandler(handlerType) {
20
- return handlerType;
21
- }
22
-
23
- export async function generateStatusField(flowSchema, appPath, outputBaseDir) {
24
- const flowTag = flowSchema.flowTag;
25
- const upperFlowTag = upperCase(flowTag);
26
- const functionName = 'CompleteStatusField' + upperFlowTag;
27
- const handlerType = upperCase('hdrSqs'); // default in old system
28
- const queueName = functionName + handlerType;
29
-
30
- // Load templates
31
- const templatesDir = path.join(__dirname, 'templates', 'statusField');
32
- const mainTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusField_Main.ejs'), 'utf-8');
33
- const handlerTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusField_HdrSqs.ejs'), 'utf-8');
34
- const yamlTpl = await fs.readFile(path.join(__dirname, '..', '_shared', 'yaml', 'SharedFunctionSqs_Yaml.ejs'), 'utf-8');
35
- const snsTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusFieldSns_Yaml.ejs'), 'utf-8');
36
-
37
- // Shared variables
38
- const upperFunctionName = upperCase(functionName);
39
- const upperHandlerType = upperCase(handlerType);
40
- const upperQueueName = upperCase(queueName);
41
- const roleName = upperFlowTag;
42
- const upperRoleName = upperCase(roleName);
43
- const functionNameConfig = upperFunctionName + upperCase(shortNameHandler(handlerType));
44
- const upperFunctionNameConfig = upperCase(functionNameConfig);
45
- const resourceLocation = `src/generatedCode/FlowSchemas/${upperFlowTag}/source/`;
46
- const handlerPath = path.join(resourceLocation, `${functionName}_${upperHandlerType}.main`);
47
- const handlerPathUpperFunctionName = path.join(resourceLocation, `${upperFunctionName}_${upperHandlerType}.main`);
48
-
49
- // Placeholder for IAM permissions (simulating old defaultIamRolePerAction)
50
- const additionalResourcePermission = [];
51
-
52
- // 1. Output Main
53
- const flowOutputDir = path.join(outputBaseDir, 'app', 'src', 'generatedCode', 'FlowSchemas', upperFlowTag, 'source');
54
- await fs.mkdir(flowOutputDir, { recursive: true });
55
-
56
- const mainContent = ejs.render(mainTpl, {
57
- functionName,
58
- flowType: flowTag,
59
- upperFunctionName
60
- });
61
- await fs.writeFile(path.join(flowOutputDir, `${functionName}_Main.js`), mainContent, 'utf-8');
62
-
63
- // 2. Output Handler
64
- const handlerContent = ejs.render(handlerTpl, {
65
- functionName,
66
- handlerType,
67
- queueName,
68
- upperFunctionName,
69
- upperHandlerType,
70
- upperQueueName
71
- });
72
- await fs.writeFile(path.join(flowOutputDir, `${functionName}_${handlerType}.js`), handlerContent, 'utf-8');
73
-
74
- // 3. Output Yaml
75
- const slsYamlDir = path.join(outputBaseDir, 'app', 'sls_yaml', 'generatedCode', 'source');
76
- await fs.mkdir(slsYamlDir, { recursive: true });
77
-
78
- const yamlContent = ejs.render(yamlTpl, {
79
- resourceLocation,
80
- functionName,
81
- handlerType,
82
- additionalResourcePermission,
83
- functionNameConfig,
84
- roleName,
85
- queueName,
86
- upperFunctionName,
87
- upperHandlerType,
88
- upperFunctionNameConfig,
89
- upperRoleName,
90
- upperQueueName,
91
- handlerPath,
92
- handlerPathUpperFunctionName
93
- });
94
- // Append to flow-schema.yml (creating if not exist)
95
- const flowSchemaYamlPath = path.join(slsYamlDir, 'flow-schema.yml');
96
- await fs.appendFile(flowSchemaYamlPath, '\n' + yamlContent, 'utf-8');
97
-
98
- // 4. Output SNS
99
- const snsResourceDir = path.join(outputBaseDir, 'resource', 'sls_yaml', 'generatedCode', 'source');
100
- await fs.mkdir(snsResourceDir, { recursive: true });
101
-
102
- const snsContent = ejs.render(snsTpl, {
103
- queueName: 'CompleteStatusField' + upperFlowTag
104
- });
105
- const snsYamlPath = path.join(snsResourceDir, 'generated-sns-in-sqs.yml');
106
- await fs.appendFile(snsYamlPath, '\n' + snsContent, 'utf-8');
107
-
108
- console.log(` [StatusFieldGenerator] Generated statusField files for flow: ${flowTag}`);
109
- }
@@ -1,122 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs/promises';
3
- import { fileURLToPath } from 'url';
4
- import ejs from 'ejs';
5
-
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
-
9
- function upperCase(str) {
10
- if (!str) return str;
11
- return str.charAt(0).toUpperCase() + str.slice(1);
12
- }
13
-
14
- function shortNameHandler(handlerType) {
15
- return handlerType;
16
- }
17
-
18
- export async function generateWebSocket(allLocalFlowSchemas, appPath, outputBaseDir) {
19
- const hasOwnTopic = allLocalFlowSchemas.some(flow => flow.event && flow.event.includes('ownTopic'));
20
- if (!hasOwnTopic) {
21
- console.log(' [WebSocketGenerator] No flows use ownTopic. Skipping WebSocket generation.');
22
- return;
23
- }
24
-
25
- console.log(' [WebSocketGenerator] Generated WebSocket files with WebSocketComplete_Main convention.');
26
- const templatesDir = path.join(__dirname, 'templates', 'webSocket');
27
- const wsDir = path.join(outputBaseDir, 'app', 'src', 'generatedCode', 'SystemFlowSchemas', 'WebSocketMain', 'source');
28
- await fs.mkdir(wsDir, { recursive: true });
29
-
30
- const slsYamlDir = path.join(outputBaseDir, 'app', 'sls_yaml', 'generatedCode', 'source');
31
- await fs.mkdir(slsYamlDir, { recursive: true });
32
-
33
- const resourceYamlDir = path.join(outputBaseDir, 'resource', 'sls_yaml', 'generatedCode', 'source');
34
- await fs.mkdir(resourceYamlDir, { recursive: true });
35
-
36
- // Helper to render and write
37
- async function renderAndWrite(tplName, outPath, data) {
38
- const tpl = await fs.readFile(path.join(templatesDir, tplName), 'utf-8');
39
- const content = ejs.render(tpl, data);
40
- await fs.writeFile(outPath, content, 'utf-8');
41
- }
42
-
43
- async function renderAndAppend(tplName, outPath, data) {
44
- const tpl = await fs.readFile(path.join(templatesDir, tplName), 'utf-8');
45
- const content = ejs.render(tpl, data);
46
- await fs.appendFile(outPath, '\n' + content, 'utf-8');
47
- }
48
-
49
- // 1. DynamoDB Tables
50
- const webSocketTaskTable = {
51
- tableName: 'WebSocketTask',
52
- resourceName: 'WebSocketTask',
53
- ttl: true,
54
- ttlAttributeName: 'expirationTime',
55
- attributes: [
56
- { keyType: 'partitionKey', AttributeName: 'taskKey', AttributeType: 'S' },
57
- { keyType: 'sortKey', AttributeName: 'connectionId', AttributeType: 'S' }
58
- ]
59
- };
60
- const userUploadRecordsTable = {
61
- tableName: 'UserUploadRecords',
62
- resourceName: 'UserUploadRecords',
63
- attributes: [
64
- { keyType: 'partitionKey', AttributeName: 'connectionId', AttributeType: 'S' }
65
- ]
66
- };
67
-
68
- await renderAndAppend('WebSocketDynamoDb_Yaml.ejs', path.join(resourceYamlDir, 'generated-dynamoDB-table.yml'), webSocketTaskTable);
69
- await renderAndAppend('WebSocketDynamoDb_Yaml.ejs', path.join(resourceYamlDir, 'generated-dynamoDB-table.yml'), userUploadRecordsTable);
70
-
71
- // 2. WebSocketConnect
72
- const wsConnectName = 'WebSocketConnect';
73
- await renderAndWrite('WebSocketConnect_Main.ejs', path.join(wsDir, `${wsConnectName}.js`), {});
74
-
75
- await renderAndAppend('WebSocketConnect_Yaml.ejs', path.join(slsYamlDir, 'flow-schema.yml'), {
76
- functionName: wsConnectName,
77
- handlerFilePath: `src/generatedCode/SystemFlowSchemas/WebSocketMain/source/${wsConnectName}`,
78
- roleName: 'WebSocketMain',
79
- upperFunctionName: upperCase(wsConnectName)
80
- });
81
-
82
- // 3. WebSocketComplete
83
- const processFunctionName = 'WebSocketComplete';
84
- const processHandlerType = 'HdrSqs';
85
- const queueName = processFunctionName + shortNameHandler(processHandlerType);
86
-
87
- const processData = {
88
- functionName: processFunctionName,
89
- handlerType: processHandlerType,
90
- queueName: queueName,
91
- handlerFilePath: `src/generatedCode/SystemFlowSchemas/WebSocketMain/source/${upperCase(processFunctionName)}_${upperCase(processHandlerType)}`,
92
- roleName: 'WebSocketMain',
93
- upperFunctionName: upperCase(processFunctionName),
94
- upperHandlerType: upperCase(processHandlerType),
95
- upperQueueName: upperCase(queueName),
96
- functionNameConfig: upperCase(processFunctionName) + upperCase(shortNameHandler(processHandlerType))
97
- };
98
-
99
- await renderAndWrite('ProcessWebSocket_Main.ejs', path.join(wsDir, `${processFunctionName}_Main.js`), processData);
100
- await renderAndWrite('ProcessWebSocket_HdrSqs.ejs', path.join(wsDir, `${processFunctionName}_${processHandlerType}.js`), processData);
101
- await renderAndAppend('ProcessWebSocketFlow_Yaml.ejs', path.join(slsYamlDir, 'flow-schema.yml'), processData);
102
-
103
- // 4. SQS and SNS Subscriptions
104
- await renderAndAppend('ProcessWebSocket_Yaml.ejs', path.join(resourceYamlDir, 'generated-sns-in-sqs.yml'), processData);
105
-
106
- const processedTopics = new Set();
107
- for (const flowSchema of allLocalFlowSchemas) {
108
- if (flowSchema.outputTopic) {
109
- const topicOut = upperCase(flowSchema.flowTag);
110
- if (processedTopics.has(topicOut)) continue;
111
- processedTopics.add(topicOut);
112
-
113
- await renderAndAppend('ProcessWebSocketSub_Yaml.ejs', path.join(resourceYamlDir, 'generated-sns-in-sqs.yml'), {
114
- subscribeTo: topicOut,
115
- queueName: queueName,
116
- upperQueueName: upperCase(queueName)
117
- });
118
- }
119
- }
120
-
121
- console.log(` [WebSocketGenerator] Generated WebSocket files with WebSocketComplete_Main convention.`);
122
- }
@@ -1,38 +0,0 @@
1
- //(<optionalRequire>)
2
- //(</optionalRequire>)
3
-
4
- //(<helperFunctions>)
5
- //(</helperFunctions>)
6
-
7
- /**
8
- * GENERATED MAIN LOGIC: <%= flowTag %> (Entry Point / In Step)
9
- */
10
- export default async function <%= flowTag %>(
11
- _izContext,
12
- requestParams,
13
- //(<additionalParams>)
14
- //(</additionalParams>)
15
- callingFlowConfig = {}
16
- ) {
17
- _izContext?.logger?.debug("[<%= flowTag %>] _izContext", _izContext);
18
- _izContext?.logger?.debug("[<%= flowTag %>] requestParams", requestParams);
19
- _izContext?.logger?.debug("[<%= flowTag %>] callingFlowConfig", callingFlowConfig);
20
-
21
- try {
22
- //(<hookCode>)
23
- // TODO: Implement the initial validation, parsing, or preparation for this Flow
24
- //(</hookCode>)
25
-
26
- return {
27
- success: true,
28
- processedData: requestParams
29
- };
30
- } catch (err) {
31
- _izContext?.logger?.error('error <%= flowTag %> ActionEndpoint:', err);
32
-
33
- //(<errorHandling>)
34
- //(</errorHandling>)
35
-
36
- throw err;
37
- }
38
- }
@@ -1,52 +0,0 @@
1
- ##===== [Create topic in]
2
- In<%- queueName %>:
3
- Type: AWS::SNS::Topic
4
- Properties:
5
- DisplayName: "SNS Message in"
6
- TopicName: ${self:custom.iz_serviceTag}_${self:custom.iz_stage}_<%- queueName %>_In
7
- ##===== SNS Subscription
8
- ##===== [Topic In]
9
- SubscriptionIn<%- queueName %>:
10
- Type: AWS::SNS::Subscription
11
- Properties:
12
- TopicArn: !Ref In<%- queueName %>
13
- Endpoint: "arn:aws:sqs:${self:custom.iz_region}:${self:custom.iz_accountId}:${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs"
14
- Protocol: "sqs"
15
- ##===== [Queue]
16
- <%- queueName %>HdrSqs:
17
- Type: "AWS::SQS::Queue"
18
- Properties:
19
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqs
20
- RedrivePolicy:
21
- deadLetterTargetArn:
22
- # !GetAtt
23
- Fn::GetAtt:
24
- - <%- queueName %>HdrSqsDLQ
25
- - Arn
26
- maxReceiveCount: 3
27
- VisibilityTimeout: 120
28
- ##==== [QueueDLQ]
29
- <%- queueName %>HdrSqsDLQ:
30
- Type: AWS::SQS::Queue
31
- Properties:
32
- QueueName: ${self:custom.iz_resourcePrefix}<%- queueName %>HdrSqsDLQ
33
- ##==== [QueuePolicy]
34
- <%- queueName %>HdrSqsPolicy:
35
- Type: AWS::SQS::QueuePolicy
36
- Properties:
37
- PolicyDocument:
38
- Version: "2012-10-17"
39
- Statement:
40
- - Sid: "allow-sns-messages"
41
- Effect: Allow
42
- Principal: "*"
43
- Resource:
44
- # !GetAtt
45
- Fn::GetAtt:
46
- - <%- queueName %>HdrSqs
47
- - Arn
48
- Action: "SQS:SendMessage"
49
- Queues:
50
- - Ref: <%- queueName %>HdrSqs
51
- #<#<%- queueName %>QueueSetting#>
52
- #<#/<%- queueName %>QueueSetting#>
@@ -1,84 +0,0 @@
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 <http://www.gnu.org/licenses/>.
16
- */
17
-
18
- import { middlewareHandler as middleware } from "@izara_project/izara-middleware";
19
- import Logger from '@izara_project/izara-core-library-logger';
20
- import { recordHandlerSharedLib } from "@izara_project/izara-core-library-record-handler";
21
-
22
- import <%- functionName %> from './<%- functionName %>_Main.js';
23
-
24
- // validate event properties in body.Message of sqs event
25
- let perRecordsValidatorSchema = {
26
- //(<validatorSchema>)
27
- //(</validatorSchema>)
28
- }
29
- middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
30
-
31
- module.exports.main = middleware.wrap(async (event, context, callback) => {
32
-
33
- try {
34
-
35
- let recordPromises = [];
36
-
37
- // loop each record and send to mainFunction
38
- await Promise.all(event.Records.map(async record => { // promise.all for map() function
39
-
40
- let passOnProperties = []
41
- record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
42
-
43
- //validate message (and MessageAttributes)
44
- await recordHandlerSharedLib.validateRecord(
45
- record, // one record will send to mainFunction
46
- "<%- queueName %>", // queue name that need to retry or send to dlq
47
- perRecordsValidatorSchema, // schema for record.Message
48
- // messageAttributeValidatorSchema // ----- for msgAttr default is null -> do not send this parameter if not want to validate msgAtt
49
- );
50
-
51
- // add argument (to invoke lambda) to passOnProperties[]
52
- passOnProperties.push(record.body.Message)
53
- //(<additionalParams>)
54
- //(</additionalParams>)
55
- record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
56
-
57
- // call recordHandlerSharedLib.recordHandler with 3 parameters and return promise(resolve)
58
- let recordPromise = recordHandlerSharedLib.recordHandler(
59
- record, // one record will send to mainFunction
60
- <%- functionName %>, // mainFunction that need to invoke.
61
- "<%- queueName %>", // queue name that need to retry or send to dlq
62
- passOnProperties, // all parameters that mainFunction needed.
63
- );
64
- record._izContext.logger.debug('after recordPromise in handler');
65
- recordPromises.push(recordPromise); // push promise to recordPromises
66
- }))
67
-
68
- Logger.debug('before Promise.all(recordPromises) in handler');
69
- try {
70
- // --- main await all promises
71
- await Promise.all(recordPromises); // await all promises
72
-
73
- return event.Records // return all for local testing
74
-
75
- } catch {
76
- Logger.debug('Promise.all(recordPromises) in handler threw error (at least one record did no resolve)');
77
- }
78
- Logger.debug('after Promise.all(recordPromises) in handler');
79
-
80
- } catch (err) {
81
- Logger.error('Unhandled Error, <%- functionName %>: ', err);
82
- throw (err);
83
- }
84
- });
@@ -1,78 +0,0 @@
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
- import statusFieldSharedLib from '@izara_project/izara-core-library-status-field';
20
-
21
- //(<optionalRequire>)
22
- //(</optionalRequire>)
23
- /**
24
- *
25
- *
26
- * description of function.
27
- * @param {Object} _izContext
28
- * @param {CorrelationIds} _izContext.correlationIds - property of _izContext
29
- * @param {Logger} _izContext.logger - property of _izContext
30
- * @param {Object} requestParams - request params
31
- * @param {Object} requestParams.identifiers - identifiers for get data
32
- * @param {Object} requestParams.additionalRequest - additionalRequest
33
- *
34
- *
35
- * @returns {object} description of return value
36
- */
37
- export default async function <%- functionName %> (
38
- _izContext,
39
- identifiers,
40
- statusField,
41
- errorsFound,
42
- //(<additionalParams>)
43
- //(</additionalParams>)
44
- callingFlowConfig = {},
45
- ) {
46
-
47
- try {
48
- _izContext.logger.debug("<%- functionName %> _izContext", _izContext)
49
- _izContext.logger.debug("<%- functionName %> requestParams", requestParams)
50
- _izContext.logger.debug("<%- functionName %> callingFlowConfig", callingFlowConfig)
51
-
52
- //(<beforeCompleteStatusField>)
53
- //(</beforeCompleteStatusField>)
54
-
55
- await statusFieldSharedLib.completeStatusField(
56
- _izContext,
57
- {
58
- flowTag: "<%- flowType %>",
59
- serviceTag: process.env.iz_serviceTag
60
- },
61
- identifiers,
62
- statusField,
63
- errorsFound
64
- )
65
-
66
- //(<endpointHook>)
67
- //(</endpointHook>)
68
-
69
- } catch (err) {
70
- _izContext.logger.error('error <%- functionName %>: ', err)
71
- throw (err)
72
- }
73
- }
74
- module.exports.CompleteStatusFieldCreateOrder = async (
75
-
76
- ) => {
77
-
78
- }