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

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