@izara_project/izara-core-generate-service-code 1.0.65 → 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 (254) 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 -332
  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 -503
  108. package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
  109. package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -56
  110. package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -33
  111. package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
  112. package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
  113. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
  114. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
  115. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
  116. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
  117. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
  118. package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
  119. package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
  120. package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
  121. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
  122. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
  123. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
  124. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
  125. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
  126. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
  127. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
  128. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
  129. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
  130. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
  131. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
  132. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
  133. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
  134. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
  135. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
  136. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
  137. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
  138. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
  139. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
  140. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
  141. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
  142. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
  143. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
  144. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
  145. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
  146. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
  147. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
  148. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
  149. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
  150. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
  151. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
  152. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
  153. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
  154. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
  155. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
  156. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
  157. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
  158. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
  159. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
  160. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
  161. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -63
  162. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
  163. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -94
  164. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
  165. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -33
  166. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
  167. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -51
  168. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -51
  169. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
  170. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
  171. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
  172. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
  173. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
  174. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
  175. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
  176. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
  177. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
  178. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
  179. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
  180. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
  181. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
  182. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
  183. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
  184. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
  185. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -267
  186. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -18
  187. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
  188. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
  189. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
  190. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
  191. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
  192. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
  193. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
  194. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
  195. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
  196. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
  197. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
  198. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
  199. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
  200. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
  201. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
  202. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
  203. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
  204. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
  205. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
  206. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
  207. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
  208. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
  209. package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
  210. package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
  211. package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
  212. package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
  213. package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
  214. package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
  215. package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
  216. package/src/core/renderTemplateFile.js +0 -22
  217. package/src/core/validate.js +0 -165
  218. package/src/generateCode.js +0 -357
  219. package/src/generateSchema.js +0 -123
  220. package/src/parsers/flowSchemaParser.js +0 -112
  221. package/src/parsers/objectSchemaParser.js +0 -39
  222. package/src/parsers/relationshipSchemaParser.js +0 -51
  223. package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
  224. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
  225. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
  226. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
  227. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
  228. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
  229. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
  230. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
  231. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
  232. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
  233. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
  234. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
  235. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -109
  236. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -103
  237. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/__tests__/relationshipSchemaHelpers.test.js +0 -38
  238. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/relationshipSchemaHelpers.js +0 -40
  239. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
  240. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
  241. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
  242. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
  243. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrApi.ejs +0 -0
  244. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
  245. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.ejs +0 -0
  246. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_HdrSqs.ejs +0 -0
  247. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_HdrSqs.ejs +0 -0
  248. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_HdrSqs.ejs +0 -0
  249. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrSqs.ejs +0 -0
  250. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
  251. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
  252. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
  253. /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
  254. /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
- }