@izara_project/izara-core-generate-service-code 1.0.65 → 1.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -11
- package/index.js +0 -5
- package/package.json +7 -6
- package/src/compile/compileProject.js +26 -0
- package/src/compile/loadSchemas.js +28 -0
- package/src/emit/crud/dynamicCrudFlowSchemaTemplate.js +11 -0
- package/src/emit/crud/emitCrudApplicationArtifacts.js +157 -0
- package/src/emit/crud/emitDynamicCrudFlowSchemas.js +84 -0
- package/src/emit/crud/generateCrudApplicationArtifacts.js +16 -0
- package/src/emit/crud/generateDynamicCrudFlowSchemas.js +21 -0
- package/src/emit/crud/loadLocalSchemaArrays.js +8 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/CreateEndpoint_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/DeleteEndpoint_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step → emit/crud/templates}/FlowEndpointBeforeLogical_Main.ejs +2 -2
- package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +75 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowEndpoint_HdrWbs.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_HdrSqs.ejs → emit/crud/templates/FlowHandler_HdrSqs.ejs} +52 -56
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/crud/templates}/FlowMain_Wbs.ejs +1 -3
- package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +127 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/UpdateEndpoint_Main.ejs +1 -1
- package/src/emit/custom/customFlows.js +70 -0
- package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +308 -0
- package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +22 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint → emit/custom/templates}/FlowEndpoint_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step → emit/custom/templates}/FlowStep_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_Main.ejs +5 -5
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_HdrWbs.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreateObject_Main.ejs +3 -3
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_Main.ejs +4 -5
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/FlowHandler_HdrS3.ejs +2 -8
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ProcessS3File_Main.ejs +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_Main.ejs +5 -6
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +32 -0
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +63 -0
- package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +35 -0
- package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +16 -0
- package/src/emit/function/functionYamlArtifact.js +111 -0
- package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +117 -0
- package/src/emit/rbac/emitRbacApplicationArtifacts.js +256 -0
- package/src/emit/rbac/generateCreateTargetRoleHandler.js +19 -0
- package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +21 -0
- package/src/emit/rbac/rbacFlowTag.js +7 -0
- package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +24 -0
- package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +25 -0
- package/src/emit/rbac/templates/DynamicRbacFlowSchema.ejs +5 -0
- package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +17 -0
- package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +13 -0
- package/src/emit/rbac/templates/ListRbac_Main.ejs +29 -0
- package/src/emit/rbac/templates/RbacMutation_Main.ejs +22 -0
- package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +10 -0
- package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +44 -0
- package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +33 -0
- package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +11 -0
- package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +66 -0
- package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +147 -0
- package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +23 -0
- package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +22 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationshipComplete_Main.ejs → emit/relationship/templates/ChangeRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessChangeRelationship_Main.ejs → emit/relationship/templates/ChangeRelationship_Main.ejs} +10 -2
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationshipComplete_Main.ejs → emit/relationship/templates/CreateRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessCreateRelationship_Main.ejs → emit/relationship/templates/CreateRelationship_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationshipComplete_Main.ejs → emit/relationship/templates/DeleteRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessDeleteRelationship_Main.ejs → emit/relationship/templates/DeleteRelationship_Main.ejs} +1 -1
- package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +51 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrDsq.ejs +1 -1
- package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +45 -0
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationshipComplete_Main.ejs → emit/relationship/templates/GetRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessGetRelationship_Main.ejs → emit/relationship/templates/GetRelationship_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationship_Main.ejs → emit/relationship/templates/MoveRelationship_Main.ejs} +9 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationshipComplete_Main.ejs → emit/relationship/templates/UpdateRelationshipComplete_Main.ejs} +1 -1
- package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessUpdateRelationship_Main.ejs → emit/relationship/templates/UpdateRelationship_Main.ejs} +1 -1
- package/src/emit/resource/emitResourceArtifacts.js +300 -0
- package/src/emit/resource/generateResourceArtifacts.js +20 -0
- package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceBeforeLogicalYaml.ejs +1 -1
- package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceSqsYaml.ejs +6 -6
- package/src/{codeGenerators/app/sls_yaml → emit/resource}/templates/SharedResource_Yaml.ejs +8 -8
- package/src/emit/system/emitSystemWebSocketArtifacts.js +182 -0
- package/src/generate.js +60 -126
- package/src/output/commitArtifacts.js +213 -0
- package/src/output/mergeHooks.js +55 -0
- package/src/output/validateArtifacts.js +62 -0
- package/src/plan/buildGenerationPlan.js +50 -0
- package/test/core.test.js +159 -0
- package/test/createTargetRoleHandler.test.js +68 -0
- package/test/crudApplicationArtifacts.test.js +107 -0
- package/test/customFlowApplicationArtifacts.test.js +294 -0
- package/test/dynamicCrudFlowSchemas.test.js +136 -0
- package/test/dynamicRbacFlowSchemas.test.js +101 -0
- package/test/dynamicRelationshipFlowSchemas.test.js +99 -0
- package/test/functionYamlArtifact.test.js +34 -0
- package/test/intTestApi.test.js +29 -0
- package/test/publicApi.test.js +209 -0
- package/test/relationshipApplicationArtifacts.test.js +68 -0
- package/test/resourceArtifacts.test.js +121 -0
- package/jsconfig.json +0 -9
- package/src/__tests__/getIntTestConfig.test.js +0 -51
- package/src/__tests__/intTestGeneratorShared.test.cjs +0 -169
- package/src/__tests__/pathIntTest.test.js +0 -103
- package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +0 -199
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_LambdaRole.ejs +0 -50
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_SnsService.ejs +0 -15
- package/src/codeGenerators/app/initial_setup/templates/InitialSetup_TableName.ejs +0 -9
- package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +0 -23
- package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +0 -332
- package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +0 -21
- package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +0 -48
- package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +0 -503
- package/src/codeGenerators/app/sls_yaml/__tests__/SharedResourceYamlGenerator.test.js +0 -235
- package/src/codeGenerators/app/sls_yaml/_policy/PolicyRegistry.js +0 -56
- package/src/codeGenerators/app/sls_yaml/_policy/__tests__/PolicyRegistry.test.js +0 -33
- package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +0 -13
- package/src/codeGenerators/app/sls_yaml/templates/FindData_Yaml.ejs +0 -10
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Api.ejs +0 -21
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_EventBridge.ejs +0 -14
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Inv.ejs +0 -6
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Sqs.ejs +0 -11
- package/src/codeGenerators/app/sls_yaml/templates/FunctionYaml_Wbs.ejs +0 -11
- package/src/codeGenerators/app/sls_yaml/templates/ProcessLogical_Yaml.ejs +0 -32
- package/src/codeGenerators/app/sls_yaml/templates/RoleNameConfig_Yaml.ejs +0 -5
- package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +0 -238
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_HdrSqs.ejs +0 -87
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/FindData_Main.ejs +0 -108
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByDynamo.ejs +0 -32
- package/src/codeGenerators/app/src/generatedCode/FindData/templates/GetByStorage/getByGraph.ejs +0 -87
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/.gitkeep +0 -0
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/EndpointsGenerator.js +0 -120
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/step/FlowEndpointComplete_Main.ejs +0 -313
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +0 -116
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateRolePermissions.ejs +0 -135
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateTargetRole.ejs +0 -131
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/CreateUserRole.ejs +0 -150
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteRolePermissions.ejs +0 -132
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteTargetRole.ejs +0 -132
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/DeleteUserFromRole.ejs +0 -150
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/FlowRbac_Main.ejs +0 -252
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListRolePermissions.ejs +0 -120
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListTargetRole.ejs +0 -122
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/templates/rbac/ListUserInRoles.ejs +0 -117
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationships/RelationshipFlowGenerator.js +0 -148
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/.gitkeep +0 -0
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +0 -109
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +0 -122
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/endpoint/FlowEntryPoint_Main.ejs +0 -38
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusFieldSns_Yaml.ejs +0 -52
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_HdrSqs.ejs +0 -84
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/statusField/CompleteStatusField_Main.ejs +0 -78
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -123
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -59
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -72
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -76
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateAwaitingStep.ejs +0 -41
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/step/plugIns/templateSendPlugin.ejs +0 -18
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketFlow_Yaml.ejs +0 -26
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocketSub_Yaml.ejs +0 -7
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_HdrSqs.ejs +0 -66
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Main.ejs +0 -115
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/ProcessWebSocket_Yaml.ejs +0 -36
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Main.ejs +0 -52
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketConnect_Yaml.ejs +0 -13
- package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/webSocket/WebSocketDynamoDb_Yaml.ejs +0 -28
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseDsqHandler.js +0 -63
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/BaseSqsHandler.js +0 -66
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/__tests__/BaseDsqHandler.test.js +0 -94
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/dsq.js +0 -5
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/eventBridge.js +0 -33
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/extTopic.js +0 -6
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncApi.js +0 -51
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/lambdaSyncInv.js +0 -51
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/ownTopic.js +0 -54
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/registry.js +0 -17
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3.js +0 -56
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ConfirmAfterUploadS3Generator.js +0 -46
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreateObjectGenerator.js +0 -50
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/CreatePreSignUrlGenerator.js +0 -48
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ProcessAfterUploadS3Generator.js +0 -49
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/events/s3Components/ReservedLimitGenerator.js +0 -47
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/eventTypes.js +0 -23
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowClassifier.js +0 -50
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowEntryPointBase.js +0 -106
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowMainFunctionBase.js +0 -172
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowNaming.js +0 -37
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowSelection.js +0 -19
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepBase.js +0 -235
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowStepNormalizer.js +0 -75
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/flowValidator.js +0 -267
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/propertyNormalizer.js +0 -18
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/registry.js +0 -7
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/roleNameDetection.js +0 -49
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/shared/triggerCacheBase.js +0 -177
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -89
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/CheckTriggerCache_Main.ejs +0 -83
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -103
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/ProcessTriggerCache_Main.ejs +0 -58
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -104
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -88
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheComplete_Main.ejs +0 -80
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -36
- package/src/codeGenerators/app/src/generatedCode/Flow/_shared/yaml/SharedFunctionSqs_Yaml.ejs +0 -13
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +0 -29
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrDsq.ejs +0 -177
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_HdrSqs.ejs +0 -155
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/PaginateProcessLogical_Main.ejs +0 -268
- package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/ProcessLogical_Main.ejs +0 -450
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +0 -149
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_HdrSqs.ejs +0 -85
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/RegisterComplete_Main.ejs +0 -176
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_HdrWbs.ejs +0 -80
- package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/templates/register/Register_Main.ejs +0 -164
- package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +0 -28
- package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +0 -28
- package/src/codeGenerators/app/src/generatedCode/libs/templates/Consts.ejs +0 -448
- package/src/codeGenerators/app/src/generatedCode/libs/templates/GenerateCodeLibs.ejs +0 -124
- package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +0 -87
- package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +0 -70
- package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +0 -182
- package/src/core/renderTemplateFile.js +0 -22
- package/src/core/validate.js +0 -165
- package/src/generateCode.js +0 -357
- package/src/generateSchema.js +0 -123
- package/src/parsers/flowSchemaParser.js +0 -112
- package/src/parsers/objectSchemaParser.js +0 -39
- package/src/parsers/relationshipSchemaParser.js +0 -51
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/FlowSchemaGenerator.js +0 -107
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/RbacFlowSchemaGenerator.js +0 -98
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/RelationshipFlowSchemaGenerator.js +0 -89
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +0 -41
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicRbacFlowSchemaTemplate.ejs +0 -20
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +0 -33
- package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/UserRbacFlowSchemaTemplate.ejs +0 -22
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/AttributeTreeSchemaGenerator.js +0 -124
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/PropertyValueSchemaGenerator.js +0 -119
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeManagerSchemaTemplate.ejs +0 -14
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicAttributeTreeStandardSchemaTemplate.ejs +0 -13
- package/src/schemaGenerators/app/src/schemas/ObjectSchemas/templates/DynamicPropertyValueSchemaTemplate.ejs +0 -15
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/AttributeTreeRelationshipSchemaGenerator.js +0 -109
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/PropertyValueRelationshipSchemaGenerator.js +0 -103
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/__tests__/relationshipSchemaHelpers.test.js +0 -38
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/relationshipSchemaHelpers.js +0 -40
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicAttributeTreeRelationshipSchemaTemplate.ejs +0 -7
- package/src/schemaGenerators/app/src/schemas/RelationshipSchemas/templates/DynamicPropertyValueRelationshipSchemaTemplate.ejs +0 -7
- package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/SystemTextGenerator.js +0 -102
- package/src/schemaGenerators/app/src/schemas/SystemTextSchemas/templates/SystemText_Template.ejs +0 -10
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrApi.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/crud/templates}/FlowHandler_HdrInv.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowObjects/templates/crud → emit/crud/templates}/GetEndpoint_Main.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ConfirmReserved_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/CreatePreSignUrl_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowSchemas → emit/custom}/templates/s3/ReservedLimit_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/_shared/handlers → emit/relationship/templates}/FlowHandler_HdrSqs.ejs +0 -0
- /package/src/{codeGenerators/app/src/generatedCode/Flow/FlowRelationships/templates/relationship/ProcessMoveRelationshipComplete_Main.ejs → emit/relationship/templates/MoveRelationshipComplete_Main.ejs} +0 -0
- /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/DynamoDBTable_Yaml.ejs +0 -0
- /package/src/{codeGenerators/resource/sls_yaml → emit/resource}/templates/FlowOut_Yaml.ejs +0 -0
- /package/src/{codeGenerators/resource/sls_yaml/templates/crud → emit/resource/templates}/ResourceYaml.ejs +0 -0
- /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
|
-
}
|