@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
@@ -1,238 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import ejs from 'ejs';
4
- import { fileURLToPath } from 'url';
5
- import { writeRenderedTemplate } from '../../../../../core/renderTemplateFile.js';
6
-
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
9
-
10
- const STORAGE_TYPES = {
11
- dynamoDB: 'dynamoDB',
12
- graph: 'graph'
13
- };
14
-
15
- export async function generateFindData(allSchemas, generatorOptions) {
16
- console.log(' [FindDataGenerator] Generating FindData logic...');
17
-
18
- const outputPath = path.join(
19
- generatorOptions.outputPath,
20
- 'app',
21
- 'src',
22
- 'generatedCode',
23
- 'FindData',
24
- 'source'
25
- );
26
- await fs.mkdir(outputPath, { recursive: true });
27
-
28
- const datas = [];
29
-
30
- // Parse allSchemas.objects to extract fields for FindData
31
- if (allSchemas && allSchemas.objects) {
32
- allSchemas.objects.forEach(obj => {
33
- const objectType = obj.objectType;
34
- let fieldNameDatas = [];
35
-
36
- // Identify identifiers for checking 'getInIdentifiers'
37
- const identifierFields = [];
38
- if (obj.identifiers) {
39
- obj.identifiers.forEach(id => {
40
- if (id.fieldName) identifierFields.push(id.fieldName);
41
- if (id.fieldNames) identifierFields.push(...id.fieldNames);
42
- });
43
- }
44
-
45
- if (obj.fieldNames) {
46
- Object.entries(obj.fieldNames).forEach(([field, schemas]) => {
47
- if (schemas.type === 'string' || schemas.type === 'number') {
48
- let collectStorageDetail = {};
49
- let storageResourceTags = schemas.storageResourceTags || [];
50
-
51
- storageResourceTags.forEach(tag => {
52
- if (obj.storageResources && obj.storageResources[tag]) {
53
- let storageDetail = obj.storageResources[tag];
54
-
55
- if (storageDetail.storageType === STORAGE_TYPES.graph) {
56
- if (!collectStorageDetail[STORAGE_TYPES.graph]) {
57
- collectStorageDetail[STORAGE_TYPES.graph] = {
58
- graphServerTag: storageDetail.graphServerTag,
59
- getInIdentifiers: identifierFields.includes(field)
60
- };
61
- }
62
- } else if (
63
- storageDetail.storageType === STORAGE_TYPES.dynamoDB
64
- ) {
65
- if (!collectStorageDetail[STORAGE_TYPES.dynamoDB]) {
66
- collectStorageDetail[STORAGE_TYPES.dynamoDB] = {
67
- tableName: storageDetail.tableName
68
- };
69
- }
70
- }
71
- }
72
- });
73
-
74
- // Priority: DynamoDB over Graph
75
- if (
76
- collectStorageDetail[STORAGE_TYPES.graph] &&
77
- collectStorageDetail[STORAGE_TYPES.dynamoDB]
78
- ) {
79
- delete collectStorageDetail[STORAGE_TYPES.graph];
80
- }
81
-
82
- if (Object.keys(collectStorageDetail).length > 0) {
83
- fieldNameDatas.push({ [field]: collectStorageDetail });
84
- }
85
- }
86
- });
87
- }
88
-
89
- // Parse addOnDataStructure for versionedData
90
- if (obj.addOnDataStructure) {
91
- obj.addOnDataStructure.forEach(versionedData => {
92
- if (
93
- versionedData.type === 'versionedData' &&
94
- versionedData.fieldNames
95
- ) {
96
- let versionedStorageDetail = {};
97
- let storageTag = versionedData.storageResourceTag;
98
-
99
- if (obj.storageResources && obj.storageResources[storageTag]) {
100
- let storageDetail = obj.storageResources[storageTag];
101
- if (storageDetail.storageType === STORAGE_TYPES.graph) {
102
- versionedStorageDetail = {
103
- [STORAGE_TYPES.graph]: {
104
- graphServerTag: storageDetail.graphServerTag,
105
- versionedDataLabel: versionedData.versionedDataLabel
106
- }
107
- };
108
- }
109
- }
110
-
111
- Object.entries(versionedData.fieldNames).forEach(
112
- ([key, schema]) => {
113
- if (schema.type === 'string' || schema.type === 'number') {
114
- if (Object.keys(versionedStorageDetail).length > 0) {
115
- fieldNameDatas.push({ [key]: versionedStorageDetail });
116
- }
117
- }
118
- }
119
- );
120
- }
121
- });
122
- }
123
-
124
- if (fieldNameDatas.length > 0) {
125
- datas.push({
126
- objectType: objectType,
127
- fieldNames: fieldNameDatas
128
- });
129
- }
130
- });
131
- }
132
-
133
- // Pre-build the if-else-if blocks as a string, then pass to template
134
- const getByDynamoTemplate = await fs.readFile(
135
- path.join(__dirname, 'templates', 'GetByStorage', 'getByDynamo.ejs'),
136
- 'utf8'
137
- );
138
- const getByGraphTemplate = await fs.readFile(
139
- path.join(__dirname, 'templates', 'GetByStorage', 'getByGraph.ejs'),
140
- 'utf8'
141
- );
142
- const templateViews = [path.join(__dirname, 'templates')];
143
-
144
- // Helper: prefix every line of a block with `spaces`
145
- const indent = (str, spaces) => {
146
- const pad = ' '.repeat(spaces);
147
- return str
148
- .split('\n')
149
- .map(line => (line.trim() === '' ? '' : pad + line))
150
- .join('\n');
151
- };
152
-
153
- let objectTypeBlocks = '';
154
- if (datas.length === 0) {
155
- objectTypeBlocks = [
156
- ' //(<additionalObjectType>)',
157
- ' //(</additionalObjectType>)',
158
- " errorsFound.push('unrecognized objectType');",
159
- ' standardErrorParams.push(errorsFound);',
160
- ' await findDataSharedLib.completeFindDataMain(...standardErrorParams);',
161
- " return { returnResponse: 'Function FindData Error' };"
162
- ].join('\n');
163
- } else {
164
- const objBlocks = datas.map((data, idx) => {
165
- const objectType = data.objectType;
166
- const fieldNames = data.fieldNames;
167
- const keyword = idx === 0 ? 'if' : '} else if';
168
-
169
- let fieldBlocks = '';
170
- if (fieldNames && fieldNames.length > 0) {
171
- const fBlocks = fieldNames.map((fieldEntry, fIdx) => {
172
- const fieldObj = Object.keys(fieldEntry)[0];
173
- const storageDetails = Object.values(fieldEntry)[0];
174
- const fKeyword = fIdx === 0 ? 'if' : '} else if';
175
-
176
- let storageCode = '';
177
- for (const [storage, details] of Object.entries(storageDetails)) {
178
- const versionedDataLabel =
179
- storage === STORAGE_TYPES.graph && details.versionedDataLabel
180
- ? [details.versionedDataLabel]
181
- : [];
182
- if (storage === STORAGE_TYPES.dynamoDB) {
183
- const raw = ejs.render(
184
- getByDynamoTemplate,
185
- {
186
- tableName: details.tableName,
187
- fieldName: { fieldName: fieldObj },
188
- objectType
189
- },
190
- { views: templateViews }
191
- );
192
- storageCode += indent(raw.trimStart(), 8);
193
- }
194
- if (storage === STORAGE_TYPES.graph) {
195
- const raw = ejs.render(
196
- getByGraphTemplate,
197
- {
198
- graphServerTag: details.graphServerTag,
199
- versionedDataLabel,
200
- fieldName: { fieldName: fieldObj },
201
- objectType,
202
- getInIdentifiers: details.getInIdentifiers
203
- },
204
- { views: templateViews }
205
- );
206
- storageCode += indent(raw.trimStart(), 8);
207
- }
208
- }
209
-
210
- return ` ${fKeyword} (fieldName.fieldName == ${JSON.stringify(fieldObj)}) {\n _izContext.logger.debug('fieldName: ', fieldName.fieldName);\n${storageCode}`;
211
- });
212
-
213
- fieldBlocks = fBlocks.join('\n');
214
- fieldBlocks += `\n }\n //(<additional${objectType}FieldNames>)\n //(</additional${objectType}FieldNames>)\n else {\n errorsFound.push('unrecognized fieldName');\n standardErrorParams.push(errorsFound);\n await findDataSharedLib.completeFindDataMain(...standardErrorParams);\n return;\n }`;
215
- }
216
-
217
- return ` ${keyword} (objType.objectType === ${JSON.stringify(objectType)}) {\n _izContext.logger.debug('objectType: ', objType.objectType);\n\n${fieldBlocks}`;
218
- });
219
-
220
- objectTypeBlocks = objBlocks.join('\n');
221
- objectTypeBlocks += `\n }\n //(<additionalObjectType>)\n //(</additionalObjectType>)\n else {\n errorsFound.push('unrecognized objectType');\n standardErrorParams.push(errorsFound);\n await findDataSharedLib.completeFindDataMain(...standardErrorParams);\n return { returnResponse: 'Function FindData Error' };\n }`;
222
- }
223
-
224
- await writeRenderedTemplate(
225
- path.join(__dirname, 'templates', 'FindData_Main.ejs'),
226
- path.join(outputPath, 'FindData_Main.js'),
227
- { objectTypeBlocks }
228
- );
229
- await writeRenderedTemplate(
230
- path.join(__dirname, 'templates', 'FindData_HdrSqs.ejs'),
231
- path.join(outputPath, 'FindData_HdrSqs.js'),
232
- {}
233
- );
234
-
235
-
236
-
237
- console.log(' [FindDataGenerator] Finished generating FindData logic.');
238
- }
@@ -1,87 +0,0 @@
1
- import { middlewareHandler as middleware, validatorSchema } from '@izara_project/izara-middleware';
2
- import { recordHandlerSharedLib } from '@izara_project/izara-core-library-record-handler';
3
- import Logger from '@izara_project/izara-core-library-logger';
4
-
5
- import findData from './FindData_Main.js';
6
-
7
- // validate event properties in body.Message of sqs event
8
- middleware.setValidatorSchema(recordHandlerSharedLib.baseValidatorSchema());
9
-
10
- // set schema for record.body.Message
11
- const perRecordsValidatorSchema = {
12
- type: 'object',
13
- required: ['fieldName', 'objType', 'identifiers', 'overWriteCache'],
14
- properties: {
15
- fieldName: {
16
- type: 'object'
17
- },
18
- objType: {
19
- type: 'object',
20
- required: ['serviceTag', 'objectType'],
21
- properties: {
22
- serviceTag: {
23
- type: 'string',
24
- enum: [process.env.iz_serviceTag]
25
- },
26
- objectType: validatorSchema.stringNotEmpty()
27
- }
28
- },
29
- identifiers: {
30
- type: 'object'
31
- },
32
- overWriteCache: {
33
- type: 'boolean'
34
- },
35
- callingFlow: {
36
- type: 'string',
37
- default: ''
38
- }
39
- }
40
- };
41
-
42
- export const main = middleware.wrap(async (event, context) => {
43
- try {
44
- let recordPromises = [];
45
-
46
- await Promise.all(
47
- event.Records.map(async record => {
48
- let passOnProperties = [];
49
- record._izContext.logger.debug('record ReceiveMsgOutHdrSqs', record);
50
-
51
- await recordHandlerSharedLib.validateRecord(
52
- record,
53
- 'FindDataHdrSqs',
54
- perRecordsValidatorSchema
55
- );
56
-
57
- passOnProperties.push(record.body.Message.fieldName);
58
- passOnProperties.push(record.body.Message.objType);
59
- passOnProperties.push(record.body.Message.identifiers);
60
- passOnProperties.push(record.body.Message.overWriteCache);
61
- passOnProperties.push(record.body.Message.callingFlow);
62
- record._izContext.logger.debug('passOnProperties in handler', passOnProperties);
63
-
64
- let recordPromise = recordHandlerSharedLib.recordHandler(
65
- record,
66
- findData,
67
- 'FindDataHdrSqs',
68
- passOnProperties
69
- );
70
- record._izContext.logger.debug('after recordPromise in handler');
71
- recordPromises.push(recordPromise);
72
- })
73
- );
74
-
75
- Logger.debug('before Promise.all(recordPromises) in handler');
76
- try {
77
- await Promise.all(recordPromises);
78
- return event.Records;
79
- } catch {
80
- Logger.debug('Promise.all(recordPromises) in handler threw error');
81
- }
82
- Logger.debug('after Promise.all(recordPromises) in handler');
83
- } catch (err) {
84
- Logger.error('Unhandled Error, FindDataHdrSqs: ', err);
85
- throw err;
86
- }
87
- });
@@ -1,108 +0,0 @@
1
- import findDataSharedLib from '@izara_project/izara-core-library-find-data';
2
- import graphSharedLib from '@izara_project/izara-core-library-graph-service';
3
- import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
4
-
5
- import { serviceConfig, identifiersObject as identifierObj } from '@izara_project/izara-core-library-service-schemas';
6
-
7
- //(<additionalModule>)
8
- //(</additionalModule>)
9
-
10
- /**
11
- * triggered from searchResult for each requiredData field per one identifiers
12
- */
13
- async function _getValueFromDynamo(_izContext, fieldName, objType, identifiers, tableName, errorsFound, standardErrorParams, findDataSharedLib, dynamodbSharedLib, identifierObj) {
14
- const identifiersBase = await identifierObj.identifiersBaseFromIdentifiers(_izContext, objType, identifiers);
15
- _izContext.logger.debug('create identifiersBase from identifiers: ', identifiersBase);
16
-
17
- const objInstanceBase = await dynamodbSharedLib.getItem(
18
- _izContext,
19
- await dynamodbSharedLib.tableName(_izContext, tableName),
20
- identifiersBase
21
- );
22
- _izContext.logger.debug('objInstanceBase: ', objInstanceBase);
23
-
24
- if (!objInstanceBase) {
25
- errorsFound.push(`can't get data in dynamo by ${identifiersBase}`);
26
- standardErrorParams.push(errorsFound);
27
- await findDataSharedLib.completeFindDataMain(...standardErrorParams);
28
- return { _error: 'FindData cannot get data in dynamo' };
29
- }
30
-
31
- if (!objInstanceBase.hasOwnProperty(fieldName)) {
32
- errorsFound.push(`data in dynamoDB have no ${fieldName}`);
33
- standardErrorParams.push(errorsFound);
34
- await findDataSharedLib.completeFindDataMain(...standardErrorParams);
35
- return { _error: 'Data have no fieldName' };
36
- }
37
-
38
- return { _value: objInstanceBase[fieldName] };
39
- }
40
-
41
- export default async function findData(
42
- _izContext,
43
- fieldName,
44
- objType,
45
- identifiers,
46
- overWriteCache,
47
- callingFlow,
48
-
49
- //(<additionalParams>)
50
- //(</additionalParams>)
51
- ) {
52
- try {
53
- _izContext.logger.debug('----- findData event params -----', {
54
- fieldName: fieldName,
55
- objType: objType,
56
- identifiers: identifiers,
57
- overWriteCache: overWriteCache,
58
- callingFlow: callingFlow
59
- });
60
-
61
- let removeAttributes = [];
62
- //(<removeAttributes>)
63
- //(</removeAttributes>)
64
-
65
- let deleteDataTableOnExpired = [];
66
-
67
- let [findDataMainStatus, findDataId, findDataMain] = await findDataSharedLib.checkFindDataMainStatus(
68
- _izContext,
69
- fieldName,
70
- objType,
71
- identifiers,
72
- callingFlow,
73
- removeAttributes,
74
- overWriteCache
75
- );
76
-
77
- _izContext.logger.debug('result after checkFindDataMainStatus is', {
78
- findDataMainStatus: findDataMainStatus,
79
- findDataId: findDataId,
80
- findDataMain: findDataMain
81
- });
82
-
83
- if (findDataMainStatus != 'process') {
84
- _izContext.logger.debug(`findDataMainStatus status isn't process :${findDataMainStatus}`);
85
- return { returnResponse: 'Function FindData not process' };
86
- }
87
-
88
- let errorsFound = [];
89
- let standardErrorParams = [
90
- _izContext,
91
- fieldName,
92
- objType,
93
- identifiers,
94
- null,
95
- overWriteCache,
96
- callingFlow,
97
- 'error'
98
- ];
99
-
100
- <%- objectTypeBlocks %>
101
-
102
- return { returnResponse: 'Function FindData Finish' };
103
-
104
- } catch (err) {
105
- _izContext.logger.error('error FindDataMain: ', err);
106
- throw err;
107
- }
108
- }
@@ -1,32 +0,0 @@
1
- //(<beforeGetItem<%- objectType %><%- fieldName.fieldName %>>)
2
- //(</beforeGetItem<%- objectType %><%- fieldName.fieldName %>>)
3
-
4
- const _dynamo_<%- fieldName.fieldName %> = await _getValueFromDynamo(
5
- _izContext,
6
- '<%- fieldName.fieldName %>',
7
- objType,
8
- identifiers,
9
- '<%- tableName %>',
10
- errorsFound,
11
- standardErrorParams,
12
- findDataSharedLib,
13
- dynamodbSharedLib,
14
- identifierObj
15
- );
16
- if (_dynamo_<%- fieldName.fieldName %>._error) return { returnResponse: _dynamo_<%- fieldName.fieldName %>._error };
17
- const dataValue = _dynamo_<%- fieldName.fieldName %>._value;
18
- _izContext.logger.debug('dataValue: ', dataValue);
19
-
20
- //(<afterGetItem<%- objectType %><%- fieldName.fieldName %>>)
21
- //(</afterGetItem<%- objectType %><%- fieldName.fieldName %>>)
22
-
23
- await findDataSharedLib.completeFindDataMain(
24
- _izContext,
25
- findDataMain.fieldName,
26
- findDataMain.objType,
27
- findDataMain.identifiers,
28
- dataValue,
29
- overWriteCache,
30
- callingFlow,
31
- 'complete'
32
- );
@@ -1,87 +0,0 @@
1
- <%- createNameTagBefore(objectType, fieldName) %>
2
-
3
- const graphHandlerServiceTag = await serviceConfig.getGraphServiceTagWithCache(
4
- _izContext,
5
- <%- JSON.stringify(graphServerTag) %>,
6
- );
7
- _izContext.logger.debug('graphHandlerServiceTag: ', graphHandlerServiceTag)
8
-
9
- let getDataByGraph = await graphSharedLib.getNode(
10
- _izContext,
11
- graphHandlerServiceTag,
12
- objType,
13
- {
14
- identifiers:identifiers
15
- },
16
- <%- JSON.stringify(versionedDataLabel) %>
17
- );
18
-
19
- _izContext.logger.debug('getDataByGraph: ', getDataByGraph)
20
-
21
-
22
- if (!getDataByGraph) {
23
- errorsFound.push(`can't get data of ${objType.objectType} in graph`)
24
- standardErrorParams.push(errorsFound)
25
- await findDataSharedLib.completeFindDataMain(...standardErrorParams);
26
- return {
27
- returnResponse: 'FindData cannot get data in graph'
28
- }
29
- }
30
-
31
- <%- createNameTagAfter(objectType, fieldName) %>
32
-
33
- let objInstanceFull = getDataByGraph.returnValue.queryResults.refactoredNodes.objInstanceFull;
34
- _izContext.logger.debug('objInstanceFull: ', objInstanceFull)
35
-
36
-
37
- <% if (getInIdentifiers) { _%>
38
-
39
- // objInstanceFull.identifiers // Object
40
- if (!objInstanceFull.identifiers.hasOwnProperty(fieldName.fieldName)) {
41
- errorsFound.push(`nodeProperties have no this ${fieldName.fieldName}`)
42
- standardErrorParams.push(errorsFound)
43
- await findDataSharedLib.completeFindDataMain(...standardErrorParams);
44
- return {
45
- returnResponse: 'Data have no fieldName'
46
- }
47
- }
48
-
49
- let dataValue = objInstanceFull.identifiers[fieldName.fieldName];
50
- _izContext.logger.debug('this fieldName is identifier, get dataValue in identifiers: ', dataValue)
51
-
52
- <% } else { _%>
53
-
54
- // objInstanceFull.fields // Object
55
- if (!objInstanceFull.fields.hasOwnProperty(fieldName.fieldName)) {
56
- errorsFound.push(`nodeProperties have no this ${fieldName.fieldName}`)
57
- standardErrorParams.push(errorsFound)
58
- await findDataSharedLib.completeFindDataMain(...standardErrorParams);
59
- return {
60
- returnResponse: 'Data have no fieldName'
61
- }
62
- }
63
-
64
- let dataValue = objInstanceFull.fields[fieldName.fieldName];
65
- _izContext.logger.debug('this fieldName is not identifier, get dataValue in fields: ', dataValue)
66
-
67
- <% }_%>
68
-
69
- await findDataSharedLib.completeFindDataMain(
70
- _izContext,
71
- findDataMain.fieldName,
72
- findDataMain.objType,
73
- findDataMain.identifiers,
74
- dataValue,
75
- overWriteCache,
76
- callingFlow,
77
- 'complete'
78
- );
79
-
80
- <%_ function createNameTagBefore(objectType, fieldName){
81
- return `//(<beforeGetNode${objectType}${fieldName.fieldName}>)
82
- //(</beforeGetNode${objectType}${fieldName.fieldName}>)`
83
- } _%>
84
- <%_ function createNameTagAfter(objectType, fieldName){
85
- return `//(<afterGetNode${objectType}${fieldName.fieldName}>)
86
- //(</afterGetNode${objectType}${fieldName.fieldName}>)`
87
- } _%>
@@ -1,120 +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
- import { EVENT_HANDLERS } from '../_shared/events/registry.js';
7
- import { getGeneratedCodeConfigs } from '../_shared/shared/flowSelection.js';
8
-
9
- const CRUD_ACTIONS = ['Create', 'Update', 'Delete', 'Get'];
10
- const CRUD_ASYNC_ACTIONS = ['Create', 'Update', 'Delete'];
11
-
12
- const __filename = fileURLToPath(import.meta.url);
13
- const __dirname = path.dirname(__filename);
14
-
15
- export async function generateEndpointsFlow(allSchemas, options) {
16
- console.log(' [EndpointsGenerator] Generating CRUD Endpoint Flows...');
17
- const baseOutputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode');
18
- const templateDir = path.join(__dirname, 'templates');
19
-
20
- let generatedCount = 0;
21
-
22
- // We only generate CRUD if there's at least one applicable object
23
- const hasApplicableObject = (allSchemas.objects || []).some(
24
- obj => obj.generatedBy === 'userGenerated' || obj.generatedBy === 'systemGenerated'
25
- );
26
- if (!hasApplicableObject) return;
27
-
28
- const sharedTemplates = {
29
- sqs: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
30
- dsq: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrDsq.ejs'), 'utf-8'),
31
- api: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
32
- inv: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8'),
33
- wbsMain: await fs.readFile(path.join(__dirname, '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowMain_Wbs.ejs'), 'utf-8').catch(() => ''),
34
- endpointHdrWbs: await fs.readFile(path.join(__dirname, '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowEndpoint_HdrWbs.ejs'), 'utf-8').catch(() => '')
35
- };
36
-
37
- // We need to pass a mock flows array to getGeneratedCodeConfigs if it expects it
38
- // Since we are decoupling, we will just use allSchemas.flows for custom logic filtering
39
- const customFlows = allSchemas.flows || [];
40
-
41
- for (const action of CRUD_ACTIONS) {
42
- const isAsync = CRUD_ASYNC_ACTIONS.includes(action);
43
- const upperAction = upperFirst(action);
44
- const flowOutputDir = path.join(baseOutputDir, 'FlowObjects', upperAction, 'source');
45
- await fs.mkdir(flowOutputDir, { recursive: true });
46
-
47
- const mainFileName = processMainFileName(action);
48
- const processFunction = processFunctionName(action);
49
-
50
- // Mock flow object for registry handlers if needed
51
- const mockFlow = {
52
- flowTag: action,
53
- event: isAsync ? ['ownTopic'] : ['lambdaSyncInv', 'lambdaSyncApi']
54
- };
55
-
56
- const generateCode = getGeneratedCodeConfigs(customFlows, action, { includeFlowTag: true });
57
-
58
- // 1. Generate Main Logic File
59
- const mainTemplatePath = path.join(templateDir, 'crud', `${action}Endpoint_Main.ejs`);
60
- let mainTemplateStr;
61
- try {
62
- mainTemplateStr = await fs.readFile(mainTemplatePath, 'utf-8');
63
- } catch (err) {
64
- console.warn(` [EndpointsGenerator] Warning: Main template not found for ${action}.`);
65
- continue;
66
- }
67
-
68
- const mainContent = ejs.render(mainTemplateStr, {
69
- flowTag: action,
70
- upperCaseFlowTag: upperAction,
71
- topicArn: `${upperAction}_In`,
72
- generateCode: generateCode,
73
- flow: mockFlow,
74
- startConfig: null
75
- });
76
- await fs.writeFile(path.join(flowOutputDir, `${mainFileName}.js`), mainContent, 'utf-8');
77
- generatedCount++;
78
-
79
- // 2. Generate BeforeLogical Main Logic File if needed
80
- const beforeLogicalConfigs = generateCode.filter(c => c.codeHookTag === 'beforeLogical');
81
- if (beforeLogicalConfigs.length > 0) {
82
- const beforeLogicalTemplateStr = await fs.readFile(
83
- path.join(templateDir, 'step', 'FlowEndpointBeforeLogical_Main.ejs'),
84
- 'utf-8'
85
- );
86
- const beforeLogicalFileName = `${upperAction}BeforeLogical_Main`;
87
- const beforeLogicalContent = ejs.render(beforeLogicalTemplateStr, {
88
- flowTag: action,
89
- upperCaseFlowTag: upperAction,
90
- generateCode: generateCode,
91
- flow: mockFlow,
92
- startConfig: null
93
- });
94
- await fs.writeFile(path.join(flowOutputDir, `${beforeLogicalFileName}.js`), beforeLogicalContent, 'utf-8');
95
- generatedCount++;
96
-
97
- // BeforeLogical SQS Handler
98
- const sqsContent = ejs.render(sharedTemplates.sqs, {
99
- flowTag: action,
100
- flowStepName: '',
101
- mainFileName: beforeLogicalFileName,
102
- functionName: `${action}BeforeLogicalMain`,
103
- queueName: `${action}BeforeLogicalHdrSqs`
104
- });
105
- await fs.writeFile(path.join(flowOutputDir, `${upperAction}BeforeLogical_HdrSqs.js`), sqsContent, 'utf-8');
106
- generatedCount++;
107
- }
108
-
109
- // 3. Generate Handlers based on event array using Registry
110
- for (const ev of mockFlow.event) {
111
- const handlerGenerator = EVENT_HANDLERS[ev];
112
- if (handlerGenerator) {
113
- await handlerGenerator(mockFlow, '', flowOutputDir, mainFileName, sharedTemplates, generateCode);
114
- generatedCount++;
115
- }
116
- }
117
- }
118
-
119
- console.log(` [EndpointsGenerator] Generated ${generatedCount} files for CRUD Endpoints.`);
120
- }