@izara_project/izara-core-generate-service-code 1.0.65 → 1.0.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/README.md +73 -11
  2. package/docs/TriggeredCache Flow.drawio +193 -0
  3. package/docs/test.mmd +47 -0
  4. package/docs/test.png +0 -0
  5. package/index.js +0 -5
  6. package/package.json +7 -6
  7. package/src/compile/compileProject.js +26 -0
  8. package/src/compile/loadSchemas.js +50 -0
  9. package/src/emit/crud/dynamicCrudFlowSchemaTemplate.js +11 -0
  10. package/src/emit/crud/emitCrudApplicationArtifacts.js +161 -0
  11. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +84 -0
  12. package/src/emit/crud/generateCrudApplicationArtifacts.js +16 -0
  13. package/src/emit/crud/generateDynamicCrudFlowSchemas.js +21 -0
  14. package/src/emit/crud/loadLocalSchemaArrays.js +8 -0
  15. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/CreateEndpoint_Main.ejs +6 -6
  16. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/DeleteEndpoint_Main.ejs +6 -6
  17. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step → emit/crud/templates}/FlowEndpointBeforeLogical_Main.ejs +2 -2
  18. package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +96 -0
  19. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowEndpoint_HdrWbs.ejs +1 -1
  20. package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +69 -0
  21. package/src/{codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_HdrSqs.ejs → emit/crud/templates/FlowHandler_HdrSqs.ejs} +52 -56
  22. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowMain_Wbs.ejs +1 -3
  23. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.ejs +2 -2
  24. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +127 -0
  25. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/UpdateEndpoint_Main.ejs +11 -9
  26. package/src/emit/custom/customFlows.js +121 -0
  27. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +325 -0
  28. package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +22 -0
  29. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/custom/templates}/FlowEndpoint_Main.ejs +5 -5
  30. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step → emit/custom/templates}/FlowStep_Main.ejs +1 -1
  31. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_Main.ejs +5 -5
  32. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_HdrWbs.ejs +1 -1
  33. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_Main.ejs +3 -3
  34. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_Main.ejs +4 -5
  35. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/FlowHandler_HdrS3.ejs +2 -8
  36. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ProcessS3File_Main.ejs +1 -1
  37. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_Main.ejs +5 -6
  38. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +32 -0
  39. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +63 -0
  40. package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +35 -0
  41. package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +16 -0
  42. package/src/emit/function/functionYamlArtifact.js +125 -0
  43. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +117 -0
  44. package/src/emit/rbac/emitRbacApplicationArtifacts.js +270 -0
  45. package/src/emit/rbac/generateCreateTargetRoleHandler.js +19 -0
  46. package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +21 -0
  47. package/src/emit/rbac/rbacFlowTag.js +7 -0
  48. package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +24 -0
  49. package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +25 -0
  50. package/src/emit/rbac/templates/DynamicRbacFlowSchema.ejs +5 -0
  51. package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +17 -0
  52. package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +13 -0
  53. package/src/emit/rbac/templates/ListRbac_Main.ejs +29 -0
  54. package/src/emit/rbac/templates/RbacMutation_Main.ejs +22 -0
  55. package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +10 -0
  56. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +44 -0
  57. package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +33 -0
  58. package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +11 -0
  59. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +66 -0
  60. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +148 -0
  61. package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +23 -0
  62. package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +22 -0
  63. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationshipComplete_Main.ejs → emit/relationship/templates/ChangeRelationshipComplete_Main.ejs} +1 -1
  64. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationship_Main.ejs → emit/relationship/templates/ChangeRelationship_Main.ejs} +12 -4
  65. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationshipComplete_Main.ejs → emit/relationship/templates/CreateRelationshipComplete_Main.ejs} +1 -1
  66. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationship_Main.ejs → emit/relationship/templates/CreateRelationship_Main.ejs} +1 -1
  67. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationshipComplete_Main.ejs → emit/relationship/templates/DeleteRelationshipComplete_Main.ejs} +1 -1
  68. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationship_Main.ejs → emit/relationship/templates/DeleteRelationship_Main.ejs} +1 -1
  69. package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrDsq.ejs +1 -1
  70. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +45 -0
  71. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationshipComplete_Main.ejs → emit/relationship/templates/GetRelationshipComplete_Main.ejs} +1 -1
  72. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationship_Main.ejs → emit/relationship/templates/GetRelationship_Main.ejs} +1 -1
  73. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationship_Main.ejs → emit/relationship/templates/MoveRelationship_Main.ejs} +9 -1
  74. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationshipComplete_Main.ejs → emit/relationship/templates/UpdateRelationshipComplete_Main.ejs} +1 -1
  75. package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationship_Main.ejs → emit/relationship/templates/UpdateRelationship_Main.ejs} +1 -1
  76. package/src/emit/resource/emitResourceArtifacts.js +595 -0
  77. package/src/emit/resource/generateResourceArtifacts.js +20 -0
  78. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceBeforeLogicalYaml.ejs +1 -1
  79. package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceSqsYaml.ejs +6 -6
  80. package/src/{codeGenerators/app/sls_yaml → emit/resource}/templates/SharedResource_Yaml.ejs +8 -8
  81. package/src/emit/system/emitSystemWebSocketArtifacts.js +183 -0
  82. package/src/generate.js +60 -126
  83. package/src/output/commitArtifacts.js +213 -0
  84. package/src/output/mergeHooks.js +55 -0
  85. package/src/output/validateArtifacts.js +62 -0
  86. package/src/plan/buildGenerationPlan.js +50 -0
  87. package/test/core.test.js +159 -0
  88. package/test/createTargetRoleHandler.test.js +68 -0
  89. package/test/crudApplicationArtifacts.test.js +107 -0
  90. package/test/customFlowApplicationArtifacts.test.js +297 -0
  91. package/test/dynamicCrudFlowSchemas.test.js +136 -0
  92. package/test/dynamicRbacFlowSchemas.test.js +101 -0
  93. package/test/dynamicRelationshipFlowSchemas.test.js +99 -0
  94. package/test/functionYamlArtifact.test.js +34 -0
  95. package/test/intTestApi.test.js +29 -0
  96. package/test/publicApi.test.js +209 -0
  97. package/test/relationshipApplicationArtifacts.test.js +68 -0
  98. package/test/resourceArtifacts.test.js +121 -0
  99. package/jsconfig.json +0 -9
  100. package/src/__tests__/getIntTestConfig.test.js +0 -51
  101. package/src/__tests__/intTestGeneratorShared.test.cjs +0 -169
  102. package/src/__tests__/pathIntTest.test.js +0 -103
  103. package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +0 -199
  104. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_LambdaRole.ejs +0 -50
  105. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_SnsService.ejs +0 -15
  106. package/src/codeGenerators/app/initial_setup/templates/InitialSetup_TableName.ejs +0 -9
  107. package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +0 -23
  108. package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +0 -332
  109. package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +0 -21
  110. package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +0 -48
  111. package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +0 -503
  112. package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
  113. package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -56
  114. package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -33
  115. package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
  116. package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
  117. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
  118. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
  119. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
  120. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
  121. package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
  122. package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
  123. package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
  124. package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
  125. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
  126. package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
  127. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
  128. package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
  129. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
  130. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
  131. package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
  132. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
  133. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
  134. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
  135. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
  136. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
  137. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
  138. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
  139. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
  140. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
  141. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
  142. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
  143. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
  144. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
  145. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
  146. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
  147. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
  148. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
  149. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
  150. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
  151. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
  152. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
  153. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
  154. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
  155. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
  156. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
  157. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
  158. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
  159. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
  160. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
  161. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
  162. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
  163. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
  164. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
  165. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -63
  166. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
  167. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -94
  168. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
  169. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -33
  170. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
  171. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -51
  172. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -51
  173. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
  174. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
  175. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
  176. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
  177. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
  178. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
  179. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
  180. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
  181. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
  182. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
  183. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
  184. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
  185. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
  186. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
  187. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
  188. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
  189. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -267
  190. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -18
  191. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
  192. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
  193. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
  194. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
  195. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
  196. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
  197. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
  198. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
  199. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
  200. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
  201. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
  202. package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
  203. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
  204. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
  205. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
  206. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
  207. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
  208. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
  209. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
  210. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
  211. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
  212. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
  213. package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
  214. package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
  215. package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
  216. package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
  217. package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
  218. package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
  219. package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
  220. package/src/core/renderTemplateFile.js +0 -22
  221. package/src/core/validate.js +0 -165
  222. package/src/generateCode.js +0 -357
  223. package/src/generateSchema.js +0 -123
  224. package/src/parsers/flowSchemaParser.js +0 -112
  225. package/src/parsers/objectSchemaParser.js +0 -39
  226. package/src/parsers/relationshipSchemaParser.js +0 -51
  227. package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
  228. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
  229. package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
  230. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
  231. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
  232. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
  233. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
  234. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
  235. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
  236. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
  237. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
  238. package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
  239. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -109
  240. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -103
  241. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/__tests__/relationshipSchemaHelpers.test.js +0 -38
  242. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/relationshipSchemaHelpers.js +0 -40
  243. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
  244. package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
  245. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
  246. package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
  247. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
  248. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_HdrSqs.ejs +0 -0
  249. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_HdrSqs.ejs +0 -0
  250. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_HdrSqs.ejs +0 -0
  251. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrApi.ejs +0 -0
  252. /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrSqs.ejs +0 -0
  253. /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
  254. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
  255. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
  256. /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
  257. /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/SystemDynamoDB_Yaml.ejs +0 -0
@@ -1,448 +0,0 @@
1
- /*
2
- Copyright (C) 2020 Sven Mason <http://izara.io>
3
-
4
- This program is free software: you can redistribute it and/or modify
5
- it under the terms of the GNU Affero General Public License as
6
- published by the Free Software Foundation, either version 3 of the
7
- License, or (at your option) any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU Affero General Public License for more details.
13
-
14
- You should have received a copy of the GNU Affero General Public License
15
- along with this program. If not, see <http://www.gnu.org/licenses/>.
16
- */
17
-
18
- // Flattened from legacy src/libs/consts/*.js
19
- // Keep the key shape IDENTICAL to legacy so runtime imports continue to work.
20
-
21
- const HANDLER = {
22
- hdrApi: 'hdrApi',
23
- hdrSqs: 'hdrSqs',
24
- hdrDsq: 'hdrDsq',
25
- hdrInv: 'hdrInv',
26
- hdrWbs: 'hdrWbs',
27
- hdrS3: 'hdrS3'
28
- };
29
-
30
- const ACTIONS = {
31
- create: 'create',
32
- update: 'update',
33
- get: 'get',
34
- delete: 'delete',
35
- change: 'change',
36
- move: 'move'
37
- };
38
-
39
- const STORAGE_TYPES = {
40
- dynamoDB: 'dynamoDB',
41
- graph: 'graph',
42
- lambda: 'lambda',
43
- externalTopic: 'externalTopic',
44
- propertyValue: 'propertyValue'
45
- };
46
-
47
- const DEFAULT_HANDLER_PER_ACTION = {
48
- [ACTIONS.create]: [HANDLER.hdrApi, HANDLER.hdrSqs, HANDLER.hdrInv],
49
- [ACTIONS.update]: [HANDLER.hdrApi, HANDLER.hdrSqs, HANDLER.hdrInv],
50
- [ACTIONS.get]: [HANDLER.hdrApi, HANDLER.hdrInv],
51
- [ACTIONS.delete]: [HANDLER.hdrApi, HANDLER.hdrSqs]
52
- };
53
-
54
- const DEFAULT_LAMBDA_ROLE_PER_ACTION = {
55
- [ACTIONS.create]: {
56
- dynamoDbPermission: 'PutItem',
57
- httpMethod: 'put'
58
- },
59
- [ACTIONS.update]: {
60
- dynamoDbPermission: 'UpdateItem',
61
- httpMethod: 'post'
62
- },
63
- [ACTIONS.get]: {
64
- dynamoDbPermission: 'GetItem',
65
- httpMethod: 'post'
66
- },
67
- [ACTIONS.delete]: {
68
- dynamoDbPermission: 'DeleteItem',
69
- httpMethod: 'delete'
70
- }
71
- };
72
-
73
- const SOURCE_PATH = {
74
- appYaml: `/sls_yaml/generatedCode/source/`,
75
- resourceYaml: `../resource/sls_yaml/generatedCode/source/`,
76
- externalService: '/initial_setup/generatedCode/source/',
77
- lambdaPerAction: '/src/generatedCode/ObjectTypePerActionEndpoint/source/',
78
- outPerActionComplete: '/src/generatedCode/OutPerActionComplete/source/',
79
- resourceLocationOutPerActionComplete:
80
- 'src/generatedCode/OutPerActionComplete/source/',
81
- relationshipPerAction: '/src/generatedCode/RelationshipPerAction/source/',
82
- findData: '/src/generatedCode/FindData/source/',
83
- translateIdsRequestFile: '/src/generatedCode/TranslateId/source/',
84
- processLogical: '/src/generatedCode/ProcessLogical/source/',
85
- resourceLocationPerAction:
86
- 'src/generatedCode/ObjectTypePerActionEndpoint/source/',
87
- resourceLocationFindData: 'src/generatedCode/FindData/source/',
88
- resourceLocationRelationshipPerAction:
89
- 'src/generatedCode/RelationshipPerAction/source/',
90
- resourceLocationTranslateId: 'src/generatedCode/TranslateId/source/',
91
- resourceLocationProcessLogical: 'src/generatedCode/ProcessLogical/source/',
92
- // ** FlowSchemas (plural — post-refactor)
93
- webSocket: '/src/generatedCode/FlowSchemas/UploadS3/',
94
- resourceLocationWebSocket: 'src/generatedCode/FlowSchemas/UploadS3/',
95
- // * FlowSchemas event
96
- flowSchema: '/src/generatedCode/FlowSchemas/',
97
- resourceLocationFlowSchema: 'src/generatedCode/FlowSchema/',
98
- // * FlowSchema eventBridge
99
- flowSchemaEventBridge: '/src/generatedCode/FlowSchema/EventBridge/',
100
- resourceLocationFlowSchemaEventBridge:
101
- 'src/generatedCode/FlowSchema/EventBridge/',
102
- // * FlowSchema lambdaSync
103
- flowSchemaLambdaSync: '/src/generatedCode/FlowSchema/lambdaSync/',
104
- resourceLocationFlowSchemaLambdaSync:
105
- 'src/generatedCode/FlowSchema/lambdaSync/',
106
- // * FlowSchema Register
107
- flowSchemaRegister: '/src/generatedCode/FlowSchema/Register/',
108
- resourceLocationFlowSchemaRegister: 'src/generatedCode/FlowSchema/Register/',
109
- //* WebSocket Main
110
- WebSocketMain: '/src/generatedCode/FlowSchema/WebSocketMain/source/',
111
- resourceLocationWebSocketMain:
112
- 'src/generatedCode/FlowSchema/WebSocketMain/source/',
113
- generateCodeLib: '/src/generatedCode/libs/source/',
114
- generatedCodeHookFunction:
115
- '/src/generatedCode/WebSocket/source/FlowSchemaHook/HookFunctionGeneratedCode/source/',
116
- resourceLocationGeneratedCodeHookFunction:
117
- 'src/generatedCode/WebSocket/source/FlowSchemaHook/HookFunctionGeneratedCode/source/',
118
- endpointPerService: '/src/generatedCode/ActionEndpoint/source/',
119
- resourceLocationHandlerEndpointPerService:
120
- 'src/generatedCode/ActionEndpoint/source/',
121
- createRecordComplete: '/src/generatedCode/CreateRecordComplete/',
122
- resourceLocationCreateRecordComplete:
123
- 'src/generatedCode/CreateRecordComplete/',
124
- // systemText
125
- systemTextSchema: 'SystemTextSchemas/generatedCode/',
126
- // rbac
127
- rbac: '/src/generatedCode/Rbac/source/',
128
- resourceLocationRbac: 'src/generatedCode/Rbac/source/',
129
- generatedAttributeTree: 'generatedCode/attributeTree/',
130
- generatedPropertyValue: 'generatedCode/propertyValue/'
131
- };
132
-
133
- const SAVE_FILE_NAME = {
134
- dynamoDbYaml: 'generated-dynamoDB-table',
135
- snsInSqsYaml: 'generated-sns-in-sqs',
136
- snsOutYaml: 'generated-sns-out',
137
- functionRelationshipYaml: 'relationship-per-action',
138
- functionPerActionYaml: 'per-action-function',
139
- processLogicalYaml: 'process-logical',
140
- flowSchemaYaml: 'flow-schema',
141
- roleNameConfigYaml: 'role-name-config',
142
- sharedResourceYaml: 'generate-shared-resource',
143
- authorizerYaml: 'authorizer',
144
- findData: 'find-data',
145
- rbac: 'rbac',
146
- externalLambdaRole: 'generatedLambdaRoleServiceConfig',
147
- snsSubscription: 'generatedSnsServiceConfig',
148
- tableName: 'generatedTableNameConfig',
149
- S3Bucket: 'generated-s3-bucket',
150
- objectRelationship: 'ObjectRelationships',
151
- refObjectRelationship: 'RefObjectRelationships',
152
- objectSchema: 'ObjectFieldSchema',
153
- roleNameConfig: 'RoleNameConfig',
154
- systemTextSchema: 'SystemTextSchemas'
155
- };
156
-
157
- const FUNCTION_NAME = {
158
- updateRel: 'updateRelationship',
159
- createRel: 'createRelationship',
160
- updateRelComplete: 'updateRelationshipComplete',
161
- createRelComplete: 'createRelationshipComplete',
162
- deleteRel: 'deleteRelationship',
163
- deleteRelComplete: 'deleteRelationshipComplete',
164
- translateId: 'translateIdsRequest',
165
- translateIdsProcess: 'processTranslateIds',
166
- outTranslateIds: 'processTranslateIdsComplete',
167
- findData: 'findData',
168
- processLogical: 'processLogical',
169
- updateNodeComplete: 'updateComplete',
170
- createObjectComplete: 'createComplete',
171
- getNodeComplete: 'getComplete',
172
- paginateProcessLogical: 'paginateProcessLogical',
173
- deleteNode: 'deleteNode',
174
- deleteNodeComplete: 'deleteComplete',
175
- createObjectS3: 'createObjectS3',
176
- createObjectS3Complete: 'webSocketTaskComplete',
177
- processAfterUploadS3: 'processAfterUploadS3',
178
- getRel: 'getRelationship',
179
- getRelComplete: 'getRelationshipComplete',
180
- reservedLimit: 'reservedLimit',
181
- createPreSignUrl: 'createPreSignUrl',
182
- flowSchemaOwnTopic: 'flowSchemaOwnTopic',
183
- flowSchemaOwnTopicComplete: 'flowSchemaOwnTopicComplete',
184
- flowSchemaOwnTopicEndpoint: 'flowSchemaOwnTopicEndpoint',
185
- flowSchemaOwnTopicEndpointComplete: 'flowSchemaOwnTopicEndpointComplete',
186
- flowSchemaExternalTopic: 'externalTopic',
187
- flowSchemaEventBridge: 'EventBridge',
188
- createRecordComplete: 'createRecordComplete',
189
- flowSchemaRegister: 'register',
190
- changeRel: 'changeRelationship',
191
- changeRelComplete: 'changeRelationshipComplete',
192
- moveRel: 'moveRelationship',
193
- moveRelComplete: 'moveRelationshipComplete'
194
- };
195
-
196
- const SHORT_FUNCTION_NAME = functionName => {
197
- return {
198
- [FUNCTION_NAME.updateRel]: 'updateRel',
199
- [FUNCTION_NAME.createRel]: 'createRel',
200
- [FUNCTION_NAME.updateRelComplete]: 'updateRelComp',
201
- [FUNCTION_NAME.createRelComplete]: 'createRelComp',
202
- [FUNCTION_NAME.deleteRel]: 'deleteRel',
203
- [FUNCTION_NAME.deleteRelComplete]: 'deleteRelComp',
204
- [FUNCTION_NAME.findData]: 'findData',
205
- [FUNCTION_NAME.processLogical]: 'processLogical',
206
- [FUNCTION_NAME.updateNodeComplete]: 'updateComp',
207
- [FUNCTION_NAME.createObjectComplete]: 'createComp',
208
- [FUNCTION_NAME.getNodeComplete]: 'getComp',
209
- [FUNCTION_NAME.paginateProcessLogical]: 'paginateProLogical',
210
- [FUNCTION_NAME.deleteNode]: 'deleteNode',
211
- [FUNCTION_NAME.deleteNodeComplete]: 'deleteComp',
212
- [FUNCTION_NAME.createObjectS3Complete]: 'webSocketTaskComp',
213
- [FUNCTION_NAME.getRel]: 'getRel',
214
- [FUNCTION_NAME.getRelComplete]: 'getRelComp',
215
- [FUNCTION_NAME.changeRel]: 'changeRel',
216
- [FUNCTION_NAME.changeRelComplete]: 'changeRelComp',
217
- [FUNCTION_NAME.moveRel]: 'moveRel',
218
- [FUNCTION_NAME.moveRelComplete]: 'moveRelComp'
219
- }[functionName];
220
- };
221
-
222
- const PREFIX = {
223
- updateRel: 'updateRelationshipEndpoint',
224
- createRel: 'createRelationshipEndpoint',
225
- deleteRel: 'deleteRelationshipEndpoint',
226
- updateNode: 'updateNodeEndpoint',
227
- createNode: 'createNodeEndpoint',
228
- getRel: 'getRelationshipEndpoint',
229
- changeRel: 'changeRelationshipEndpoint',
230
- ONE: 'one',
231
- MANY: 'many',
232
- CREATE_OBJECT_ASYNC: 'createObjectAsync',
233
- CREATE_OBJECT_ASYNC_COMPLETE: 'createObjectAsyncComplete',
234
- CREATE_OBJECT_EXTERNAL_TOPIC: 'createObjectExternalTopic'
235
- };
236
-
237
- const SOURCE_GENERATE_IAM_ROLE = {
238
- ProcessFindDataRole: 'ProcFindData',
239
- ObjectCompleteRole: 'ObjectCom',
240
- NodeCompleteRole: 'NodeCom',
241
- FlowRelationshipRole: 'Relationship',
242
- RelationshipCompleteRole: 'RelationshipCom',
243
- FlowSchemaUploadS3Role: 'FlowSchemaUploadS3',
244
- FlowSchemaOwnTopic: 'FlowSchemaOwnTopic',
245
- PerActionEndpoint: 'PerActionEndpoint',
246
- ExternalTopicRole: 'ExternalTopic',
247
- EventBridge: 'EventBridge',
248
- CreateRecordComplete: 'CreateRecordComplete',
249
- RegisterRole: 'Register'
250
- };
251
-
252
- const RESOURCE_CLASSES = {
253
- sqs: 'sqs',
254
- s3: 's3',
255
- dynamoDbTable: 'dynamodb',
256
- dynamoDbAcrossService: 'dynamodb',
257
- sns: 'sns',
258
- lambda: 'lambda',
259
- webSocket: 'webSocket'
260
- };
261
-
262
- const SQS_RESOURCE = {
263
- sendMessage: 'SendMessage',
264
- receiveMessage: 'ReceiveMessage',
265
- deleteMessage: 'DeleteMessage',
266
- getQueueAttributes: 'GetQueueAttributes',
267
- deleteMessageBatch: 'DeleteMessageBatch',
268
- getQueueUrl: 'GetQueueUrl'
269
- };
270
-
271
- const SNS_RESOURCE = {
272
- publish: 'Publish',
273
- subscribe: 'Subscribe'
274
- };
275
-
276
- const DYNAMO_RESOURCE = {
277
- putItem: 'PutItem',
278
- getItem: 'GetItem',
279
- query: 'Query',
280
- updateItem: 'UpdateItem',
281
- deleteItem: 'DeleteItem'
282
- };
283
-
284
- const LAMBDA_RESOURCE = {
285
- invokeFunction: 'InvokeFunction'
286
- };
287
-
288
- const S3_RESOURCE = {
289
- getObject: 'GetObject',
290
- getObjectTagging: 'GetObjectTagging',
291
- deleteObject: 'DeleteObject',
292
- deleteObjectTagging: 'DeleteObjectTagging',
293
- putObject: 'PutObject',
294
- putObjectTagging: 'PutObjectTagging',
295
- getObjectVersion: 'GetObjectVersion',
296
- listBucket: 'ListBucket'
297
- };
298
-
299
- const TOPIC_NAME_GRAPH_HANDLER = {
300
- inUpdateRel: 'UpdateRelationship_In',
301
- inCreateRel: 'CreateRelationship_In',
302
- outUpdateRel: 'UpdateRelationship_Out',
303
- outCreateRel: 'CreateRelationship_Out',
304
- inDeleteRel: 'DeleteRelationship_In',
305
- outDeleteRel: 'DeleteRelationship_Out',
306
- inUpdateNode: 'UpdateNode_In',
307
- outUpdateNode: 'UpdateNode_Out',
308
- inCreateNode: 'CreateNode_In',
309
- outCreateNode: 'CreateNode_Out',
310
- inDeleteNode: 'DeleteNode_In',
311
- outDeleteNode: 'DeleteNode_Out',
312
- inChangeRelationship: 'ChangeRelationshipType_In',
313
- outChangeRelationship: 'ChangeRelationshipType_Out',
314
- inMoveRelationship: 'MoveRelationship_In',
315
- outMoveRelationship: 'MoveRelationship_Out'
316
- };
317
-
318
- const TOPIC_NAME_GENERATE_CODE = {
319
- updateRelComplete: 'UpdateRelationshipCompleteHdrSqs',
320
- createRelComplete: 'CreateRelationshipCompleteHdrSqs',
321
- deleteRelComplete: 'DeleteRelationshipCompleteHdrSqs',
322
- getRelComplete: 'GetRelationshipCompleteHdrSqs',
323
- outUpdateRelComplete: 'UpdateRelationship_Out',
324
- outCreateRelComplete: 'CreateRelationship_Out',
325
- outDeleteRelComplete: 'DeleteRelationship_Out',
326
- outGetRelComplete: 'GetRelationship_Out',
327
- updateNodeComplete: 'UpdateCompleteHdrSqs',
328
- outUpdateNodeComplete: 'Update_Out',
329
- createNodeComplete: 'CreateCompleteHdrSqs',
330
- outCreateNodeComplete: 'Create_Out',
331
- deleteNodeComplete: 'DeleteCompleteHdrSqs',
332
- outDeleteNodeComplete: 'Delete_Out',
333
- getNodeComplete: 'GetCompleteHdrSqs',
334
- outGetNodeComplete: 'Get_Out',
335
- reservedLimitComplete: 'ReservedLimitComplete',
336
- createPreSignUrl: 'CreatePreSignUrl',
337
- flowSchemaOwnTopicComplete: 'FlowSchemaOwnTopicComplete',
338
- flowSchemaOwnTopicEndpointComplete: 'FlowSchemaOwnTopicEndpointComplete',
339
- createRecordComplete: 'CreateRecordComplete',
340
- changeRelationshipComplete: 'ChangeRelationshipCompleteHdrSqs',
341
- outChangeRelationshipComplete: 'ChangeRelationship_Out',
342
- moveRelationshipComplete: 'MoveRelationshipCompleteHdrSqs',
343
- outMoveRelationshipComplete: 'MoveRelationship_Out'
344
- };
345
-
346
- const GRAPH_HANDLER_SERVICE_NAME = {
347
- graphHandler: 'GraphHandler'
348
- };
349
-
350
- const TOPIC_NAME_EXTERNAL_SERVICE = {
351
- staticLimitProcessComplete: 'StaticLimitProcessComplete_Out',
352
- reservedDynamicUsageComplete: 'ReservedDynamicUsageComplete_Out'
353
- };
354
-
355
- const EXTERNAL_SERVICE_NAME = {
356
- accountLimits: 'AccountLimits'
357
- };
358
-
359
- const ADD_ON_DATA_STRUCTURE_TYPE = {
360
- versionedData: 'versionedData',
361
- attributeTree: 'attributeTree',
362
- propertyValue: 'propertyValue',
363
- translation: 'translation'
364
- };
365
-
366
- const ATTRIBUTE_TAG = {
367
- attributeTagValue: 'Value',
368
- attributeTagLabel: 'Label',
369
- attributeTagLink: 'Link',
370
- attributeTagValueStandard: 'ValueStandard',
371
- attributeTagProperty: 'Property',
372
- attributeTagPropertyLabel: 'PropertyLabel'
373
- };
374
-
375
- const PROPERTY_VALUE_TAG = {
376
- property: 'PropertyValue',
377
- propertyLabel: 'PropertyLabel'
378
- };
379
-
380
- const FIELD_NAME_TYPE = {
381
- identifiers: 'identifiers',
382
- nonIdentifiers: 'nonIdentifiers',
383
- requiredOnCreateFieldName: 'requiredOnCreateFieldName',
384
- randomOnCreateFieldName: 'randomOnCreateFieldName',
385
- optionalOnCreate: 'optionalOnCreate'
386
- };
387
-
388
- const GENERATE_SEED_DATA_TYPE = {
389
- RANDOM_ON_CREATE_IDENTIFIERS: 'randomOnCreateIdentifier',
390
- NON_RANDOM_ON_CREATE_IDENTIFIERS: 'notRandomOnIdentifier',
391
- RELATIONSHIPS: 'relationships'
392
- };
393
-
394
- const SEED_DATA_TAG = {
395
- dynamoDBSeedDataTags: 'dynamoDBSeedDataTags',
396
- graphSeedDataTags: 'graphSeedDataTags',
397
- cleaningDynamoOneRecordsTags: 'cleaningDynamoOneRecordsTags',
398
- cleaningDynamoManyRecordsTags: 'cleaningDynamoManyRecordsTags'
399
- };
400
-
401
- const ACCOUNTLIMIT_TAG = {
402
- staticLimit: 'staticLimit',
403
- reservedDynamic: 'reservedDynamic'
404
- };
405
-
406
- const LIMIT_TAG = {
407
- uploadImage: 'uploadImageS3',
408
- uploadData: 'uploadDataS3'
409
- };
410
-
411
- const RBAC_TYPE = {
412
- appLevel: 'AppLevel',
413
- userLevel: 'UserLevel'
414
- };
415
-
416
- export default {
417
- HANDLER,
418
- STORAGE_TYPES,
419
- ACTIONS,
420
- DEFAULT_HANDLER_PER_ACTION,
421
- RESOURCE_CLASSES,
422
- SOURCE_PATH,
423
- DEFAULT_LAMBDA_ROLE_PER_ACTION,
424
- SQS_RESOURCE,
425
- SNS_RESOURCE,
426
- DYNAMO_RESOURCE,
427
- LAMBDA_RESOURCE,
428
- SAVE_FILE_NAME,
429
- FUNCTION_NAME,
430
- SHORT_FUNCTION_NAME,
431
- S3_RESOURCE,
432
- SOURCE_GENERATE_IAM_ROLE,
433
- FIELD_NAME_TYPE,
434
- ADD_ON_DATA_STRUCTURE_TYPE,
435
- ATTRIBUTE_TAG,
436
- PROPERTY_VALUE_TAG,
437
- GENERATE_SEED_DATA_TYPE,
438
- SEED_DATA_TAG,
439
- TOPIC_NAME_GENERATE_CODE,
440
- TOPIC_NAME_GRAPH_HANDLER,
441
- PREFIX,
442
- GRAPH_HANDLER_SERVICE_NAME,
443
- ACCOUNTLIMIT_TAG,
444
- LIMIT_TAG,
445
- RBAC_TYPE,
446
- TOPIC_NAME_EXTERNAL_SERVICE,
447
- EXTERNAL_SERVICE_NAME
448
- };
@@ -1,124 +0,0 @@
1
- /*
2
- Copyright (C) 2021 Sven Mason <http://izara.io>
3
-
4
- This program is free software: you can redistribute it and/or modify
5
- it under the terms of the GNU Affero General Public License as
6
- published by the Free Software Foundation, either version 3 of the
7
- License, or (at your option) any later version.
8
-
9
- This program is distributed in the hope that it will be useful,
10
- but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- GNU Affero General Public License for more details.
13
-
14
- You should have received a copy of the GNU Affero General Public License
15
- along with this program. If not, see <http://www.gnu.org/licenses/>.
16
- */
17
-
18
- import { lambda } from '@izara_project/izara-core-library-external-request';
19
- import {
20
- ApiGatewayManagementApiClient,
21
- PostToConnectionCommand
22
- } from '@aws-sdk/client-apigatewaymanagementapi';
23
- import { objectHash as hash } from '@izara_project/izara-shared-core';
24
-
25
- import {
26
- NoRetryError,
27
- inMemoryCacheLib
28
- } from '@izara_project/izara-core-library-core';
29
-
30
- const client = new ApiGatewayManagementApiClient({
31
- endpoint: `https://${process.env.iz_webSocketEndpoint}`
32
- });
33
-
34
- async function postToConnection(message, connectionId) {
35
- try {
36
- const messageParams = JSON.stringify(message);
37
- const command = new PostToConnectionCommand({
38
- ConnectionId: connectionId,
39
- Data: Buffer.from(messageParams)
40
- });
41
- // console.log("command::", command)
42
- // console.log("client::", client)
43
- await client.send(command);
44
- console.log(
45
- `send Message: ${JSON.stringify(message)} to ${connectionId} 1`
46
- );
47
- } catch (err) {
48
- if (err.name === 'GoneException') {
49
- console.log(
50
- `message send to connectionIds ${connectionId} is no longer connect`
51
- );
52
- } else {
53
- console.error(`Error post message: ${err}`);
54
- }
55
- }
56
- }
57
-
58
- /**
59
- *
60
- * @param {Object} _izContext
61
- * @param {string} functionName
62
- * @param {Object} payload
63
- */
64
- async function processStaticLimit(_izContext, functionName, payload) {
65
- return await lambda.invokeSync(_izContext, functionName, payload);
66
- }
67
-
68
- const processStaticLimitWithCache = inMemoryCacheLib(processStaticLimit, {
69
- max: 100,
70
- maxAge: 86400000,
71
- promise: true,
72
- profileName: 'processStaticLimit',
73
- normalizer: function (args) {
74
- return hash(args[1], args[2]);
75
- }
76
- });
77
-
78
- /**
79
- *
80
- * @param {Object} _izContext
81
- * @param {Object} nestedObj - source Object
82
- * @param {String[]} paths - path to get value
83
- */
84
- function getNestObject(_izContext, nestedObj, paths) {
85
- _izContext.logger.debug('function getNestObject', { nestedObj, paths });
86
- let data;
87
-
88
- if (typeof nestedObj === 'object' && Array.isArray(paths)) {
89
- data = paths.reduce(
90
- (obj, key) =>
91
- obj && typeof obj[key] !== 'undefined' ? obj[key] : undefined,
92
- nestedObj
93
- );
94
- } else {
95
- throw new NoRetryError('Type error: Invalid type in getNestObject');
96
- }
97
-
98
- return data;
99
- }
100
-
101
- /**
102
- * Function to extract a specific part of the Resource name from an ARN string
103
- * @param {string} arnString - The full ARN string
104
- * @param {number} index - The index of the segment after splitting by '_' (starting at 0)
105
- * @returns {string|null}
106
- */
107
- function getResourcePart(arnString, index) {
108
- try {
109
- const resourceId = arnString.split(':').pop();
110
- const parts = resourceId.split('_');
111
- return parts[index] || null;
112
- } catch (error) {
113
- console.error('Invalid ARN format', error);
114
- return null;
115
- }
116
- }
117
-
118
- export {
119
- postToConnection,
120
- processStaticLimit,
121
- processStaticLimitWithCache,
122
- getNestObject,
123
- getResourcePart
124
- };
@@ -1,87 +0,0 @@
1
- import path from 'path';
2
- import fs from 'fs/promises';
3
- import { fileURLToPath } from 'url';
4
- import ejs from 'ejs';
5
-
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
-
9
- export async function generateDynamoDBTables(allSchemas, options) {
10
- console.log(' [DynamoDBGenerator] Generating DynamoDB Tables...');
11
-
12
- const resourceYamlDir = path.join(options.outputPath, 'resource', 'sls_yaml', 'generatedCode', 'source');
13
- await fs.mkdir(resourceYamlDir, { recursive: true });
14
-
15
- const yamlTplPath = path.join(__dirname, 'templates', 'DynamoDBTable_Yaml.ejs');
16
- const yamlTpl = await fs.readFile(yamlTplPath, 'utf-8');
17
-
18
- // Collect all unique table names and their key schemas
19
- const tables = new Map(); // key: tableName, value: { pk, sk }
20
-
21
- const extractKeyName = (identifier) => {
22
- if (identifier.name) return identifier.name;
23
- if (identifier.fieldName) return identifier.fieldName;
24
- if (identifier.fieldNames) return identifier.fieldNames.join(identifier.deliminator || '_');
25
- return null;
26
- };
27
-
28
- const processSchemaForTables = (schema) => {
29
- if (!schema.storageResources) return;
30
-
31
- // Find pk and sk from identifiers
32
- let pk = 'PK';
33
- let sk = null;
34
- if (schema.identifiers && Array.isArray(schema.identifiers)) {
35
- const pkId = schema.identifiers.find(i => i.type === 'partitionKey' || i.type === 'identifier');
36
- if (pkId) pk = extractKeyName(pkId) || 'PK';
37
-
38
- const skId = schema.identifiers.find(i => i.type === 'sortKey');
39
- if (skId) sk = extractKeyName(skId);
40
- }
41
-
42
- for (const key of Object.keys(schema.storageResources)) {
43
- const resource = schema.storageResources[key];
44
- if (resource.storageType === 'dynamoDB' && resource.tableName) {
45
- if (!tables.has(resource.tableName)) {
46
- tables.set(resource.tableName, { pk, sk });
47
- }
48
- }
49
- }
50
- };
51
-
52
- // From objects
53
- if (allSchemas.objects) {
54
- for (const obj of allSchemas.objects) {
55
- processSchemaForTables(obj);
56
- }
57
- }
58
-
59
- // From relationships
60
- if (allSchemas.relationships) {
61
- for (const rel of allSchemas.relationships) {
62
- processSchemaForTables(rel);
63
- }
64
- }
65
-
66
- let generatedCount = 0;
67
- const yamlOutputPath = path.join(resourceYamlDir, 'generated-dynamoDB-table.yml');
68
-
69
- // Generate system tables first
70
- const systemYamlTplPath = path.join(__dirname, 'templates', 'SystemDynamoDB_Yaml.ejs');
71
- const systemYamlTpl = await fs.readFile(systemYamlTplPath, 'utf-8');
72
- const systemYamlContent = ejs.render(systemYamlTpl, {});
73
- await fs.writeFile(yamlOutputPath, `${systemYamlContent}\n`, 'utf-8');
74
- generatedCount += 12; // 12 system tables
75
-
76
- for (const [tableName, keys] of tables.entries()) {
77
- const yamlContent = ejs.render(yamlTpl, {
78
- tableName: tableName,
79
- pk: keys.pk,
80
- sk: keys.sk
81
- });
82
- await fs.appendFile(yamlOutputPath, `${yamlContent}\n`, 'utf-8');
83
- generatedCount++;
84
- }
85
-
86
- console.log(` [DynamoDBGenerator] Generated ${generatedCount} DynamoDB Tables (including system tables).`);
87
- }