@izara_project/izara-core-generate-service-code 1.0.53 → 1.0.55

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 (146) hide show
  1. package/package.json +1 -2
  2. package/src/codeGenerators/app/initial_setup/InitialSetupGenerator.js +1 -1
  3. package/src/codeGenerators/app/sls_yaml/FindDataYamlGenerator.js +23 -0
  4. package/src/codeGenerators/app/sls_yaml/FunctionYamlGenerator.js +16 -16
  5. package/src/codeGenerators/app/sls_yaml/ProcessLogicalYamlGenerator.js +11 -25
  6. package/src/codeGenerators/app/sls_yaml/RoleNameConfigGenerator.js +1 -1
  7. package/src/codeGenerators/app/sls_yaml/SharedResourceYamlGenerator.js +3 -3
  8. package/src/codeGenerators/app/sls_yaml/renderYamlTemplate.js +13 -0
  9. package/src/codeGenerators/app/sls_yaml/templates/SharedResource_Yaml.ejs +6 -2
  10. package/src/codeGenerators/app/src/generatedCode/FindData/FindDataGenerator.js +10 -44
  11. package/src/codeGenerators/app/src/generatedCode/Flow/FlowEndpoints/EndpointsGenerator.js +119 -0
  12. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRbac/RbacFlowGenerator.js +91 -52
  13. package/src/codeGenerators/app/src/generatedCode/Flow/FlowRelationshipEndpoints/RelationshipFlowGenerator.js +20 -16
  14. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/StatusFieldGenerator.js +2 -9
  15. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/WebSocketGenerator.js +1 -7
  16. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/BaseSqsHandler.js +3 -3
  17. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3Components/ConfirmAfterUploadS3Generator.js +2 -4
  18. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3Components/CreateObjectGenerator.js +2 -4
  19. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3Components/CreatePreSignUrlGenerator.js +2 -4
  20. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3Components/ProcessAfterUploadS3Generator.js +5 -5
  21. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3Components/ReservedLimitGenerator.js +2 -4
  22. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowEntryPointBase.js +6 -6
  23. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowMainFunctionBase.js +3 -3
  24. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowStepBase.js +11 -11
  25. package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/triggerCacheBase.js +1 -7
  26. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/ProcessLogicalGenerator.js +18 -15
  27. package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/{PaginateProcessLogical_HdrDsq.js → PaginateProcessLogical_HdrDsq.ejs} +1 -1
  28. package/src/codeGenerators/app/src/generatedCode/SystemFlowSchemas/RegisterGenerator.js +127 -149
  29. package/src/codeGenerators/app/src/generatedCode/libs/ConstsGenerator.js +16 -8
  30. package/src/codeGenerators/app/src/generatedCode/libs/GenerateCodeLibsGenerator.js +17 -9
  31. package/src/codeGenerators/resource/sls_yaml/DynamoDBGenerator.js +8 -8
  32. package/src/codeGenerators/resource/sls_yaml/FlowOutGenerator.js +60 -43
  33. package/src/codeGenerators/resource/sls_yaml/FlowResourceYamlGenerator.js +151 -151
  34. package/src/codeGenerators/resource/sls_yaml/templates/crud/ResourceYaml.ejs +10 -10
  35. package/src/core/renderTemplateFile.js +22 -0
  36. package/src/generateCode.js +146 -81
  37. package/src/generateIntTest.js +45 -69
  38. package/src/generateResourceIntTest.js +22 -47
  39. package/src/intTestGeneratorShared.js +36 -0
  40. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/DynamicFlowSchemaTemplate.ejs +12 -10
  41. package/src/schemaGenerators/app/src/schemas/FlowSchemas/templates/RelationshipFlowSchemaTemplate.ejs +6 -5
  42. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/flowSchemaMainFunction/data.js +0 -119
  43. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/flowSchemaMainFunction/template.ejs +0 -89
  44. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/flowSchemaMainFunction/templateByStatusType/statusFieldTemplate.ejs +0 -30
  45. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/flowSchemaMainFunction/templateByStatusType/storedCacheTemplate.ejs +0 -26
  46. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/flowSchemaMainFunction/templateByStatusType/triggerCacheTemplate.ejs +0 -44
  47. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/index.js +0 -80
  48. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/functionYaml/data.js +0 -129
  49. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/functionYaml/template.ejs +0 -17
  50. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/handler/data.js +0 -63
  51. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/mainFunction/data.js +0 -54
  52. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/mainFunction/template.ejs +0 -129
  53. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/queue/data.js +0 -63
  54. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/confirmReserved/queue/template.ejs +0 -45
  55. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObject/functionYaml/data.js +0 -117
  56. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObject/functionYaml/template.ejs +0 -20
  57. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObject/handler/data.js +0 -64
  58. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObject/mainFunction/data.js +0 -64
  59. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObject/mainFunction/template.ejs +0 -131
  60. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/functionYaml/data.js +0 -122
  61. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/functionYaml/template.ejs +0 -17
  62. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/handler/data.js +0 -66
  63. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/handler/template.ejs +0 -99
  64. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/mainFunction/data.js +0 -64
  65. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/mainFunction/template.ejs +0 -82
  66. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/sns-sqs/data.js +0 -70
  67. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/createObjectComplete/sns-sqs/template.ejs +0 -49
  68. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/functionYaml/data.js +0 -139
  69. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/functionYaml/template.ejs +0 -18
  70. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/handler/data.js +0 -63
  71. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/mainFunction/data.js +0 -63
  72. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/mainFunction/template.ejs +0 -262
  73. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/queue/data.js +0 -63
  74. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/createPreSignUrl/queue/template.ejs +0 -45
  75. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/functionYaml/data.js +0 -146
  76. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/functionYaml/template.ejs +0 -14
  77. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/handler/data.js +0 -64
  78. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/mainFunction/data.js +0 -59
  79. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/mainFunction/template.ejs +0 -173
  80. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/sqs/data.js +0 -67
  81. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/preSignUrl/reservedLimit/sqs/template.ejs +0 -53
  82. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/functionYml/HdrS3/data.js +0 -140
  83. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/functionYml/HdrS3/template.ejs +0 -25
  84. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/handler/handlerS3/data.js +0 -49
  85. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/handler/handlerS3/template.ejs +0 -50
  86. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/mainFunction/ProcessCsvtemplate.ejs +0 -182
  87. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/mainFunction/data.js +0 -49
  88. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/mainFunction/template.ejs +0 -66
  89. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/queue/data.js +0 -77
  90. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/queue/dsqTemplatePath.ejs +0 -32
  91. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/processFile/queue/s3Template.ejs +0 -59
  92. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/relate/S3/data.js +0 -61
  93. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/relate/S3/template.ejs +0 -13
  94. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/upload/relate/sns-out/data.js +0 -70
  95. package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/s3Legacy/websocket/dynamoDb/ReservedTableData.js +0 -69
  96. package/src/codeGenerators/app/src/generatedCode/Flow/SystemFlowDescriptorBuilder.js +0 -151
  97. /package/src/codeGenerators/app/{src/generatedCode/FindData → sls_yaml}/templates/FindData_Yaml.ejs +0 -0
  98. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared/endpoint → FlowEndpoints/templates}/FlowEndpointBeforeLogical_Main.ejs +0 -0
  99. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/endpoint/FlowEndpoint_HdrWbs.ejs +0 -0
  100. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/endpoint/FlowEndpoint_Main.ejs +0 -0
  101. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/endpoint/FlowEntryPoint_Main.ejs +0 -0
  102. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/endpoint/FlowMain_Wbs.ejs +0 -0
  103. /package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/{s3Legacy/upload/confirmReserved/handler/template.ejs → s3/ConfirmReserved_HdrSqs.ejs} +0 -0
  104. /package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/{s3Legacy/upload/createObject/handler/template.ejs → s3/CreateObject_HdrWbs.ejs} +0 -0
  105. /package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/{s3Legacy/upload/preSignUrl/createPreSignUrl/handler/template.ejs → s3/CreatePreSignUrl_HdrSqs.ejs} +0 -0
  106. /package/src/codeGenerators/app/src/generatedCode/Flow/FlowSchemas/templates/{s3Legacy/upload/preSignUrl/reservedLimit/handler/template.ejs → s3/ReservedLimit_HdrSqs.ejs} +0 -0
  107. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/FlowEndpointComplete_Main.ejs +0 -0
  108. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/FlowStep_Main.ejs +0 -0
  109. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/FlowStep_ByConfig_Awaiting_Main.ejs +0 -0
  110. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/FlowStep_ByConfig_Paginated_Main.ejs +0 -0
  111. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/FlowStep_PlugIn_Main.ejs +0 -0
  112. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/FlowStep_RecievePlugIn_Main.ejs +0 -0
  113. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/templateAwaitingStep.ejs +0 -0
  114. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → FlowSchemas/templates}/step/plugIns/templateSendPlugin.ejs +0 -0
  115. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/eventBridge.js +0 -0
  116. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/extTopic.js +0 -0
  117. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/lambdaSyncApi.js +0 -0
  118. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/lambdaSyncInv.js +0 -0
  119. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/ownTopic.js +0 -0
  120. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/registry.js +0 -0
  121. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/events/s3.js +0 -0
  122. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/handlers/FlowHandler_HdrApi.ejs +0 -0
  123. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/handlers/FlowHandler_HdrInv.ejs +0 -0
  124. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/handlers/FlowHandler_HdrSqs.ejs +0 -0
  125. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/eventTypes.js +0 -0
  126. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowClassifier.js +0 -0
  127. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowNaming.js +0 -0
  128. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowSelection.js +0 -0
  129. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowStepNormalizer.js +0 -0
  130. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/flowValidator.js +0 -0
  131. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal → _shared}/shared/registry.js +0 -0
  132. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/CheckTriggerCache_HdrSqs.ejs +0 -0
  133. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/CheckTriggerCache_Main.ejs +0 -0
  134. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/ProcessTriggerCache_HdrSqs.ejs +0 -0
  135. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/ProcessTriggerCache_Main.ejs +0 -0
  136. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/TriggerCacheComplete_HdrDsq.ejs +0 -0
  137. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/TriggerCacheComplete_HdrSqs.ejs +0 -0
  138. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/TriggerCacheComplete_Main.ejs +0 -0
  139. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/triggerCache/TriggerCacheQueue_Yaml.ejs +0 -0
  140. /package/src/codeGenerators/app/src/generatedCode/Flow/{_internal/_shared → _shared}/yaml/SharedFunctionSqs_Yaml.ejs +0 -0
  141. /package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/{PaginateProcessLogical_HdrSqs.js → PaginateProcessLogical_HdrSqs.ejs} +0 -0
  142. /package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/{PaginateProcessLogical_Main.js → PaginateProcessLogical_Main.ejs} +0 -0
  143. /package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/{ProcessLogical_HdrSqs.js → ProcessLogical_HdrSqs.ejs} +0 -0
  144. /package/src/codeGenerators/app/src/generatedCode/ProcessLogical/templates/{ProcessLogical_Main.js → ProcessLogical_Main.ejs} +0 -0
  145. /package/src/codeGenerators/app/src/generatedCode/libs/templates/{Consts.js → Consts.ejs} +0 -0
  146. /package/src/codeGenerators/app/src/generatedCode/libs/templates/{GenerateCodeLibs.js → GenerateCodeLibs.ejs} +0 -0
@@ -2,10 +2,16 @@ import path from 'path';
2
2
  import fs from 'fs/promises';
3
3
  import { fileURLToPath } from 'url';
4
4
  import ejs from 'ejs';
5
- import { isRelationshipFlow } from '../_internal/shared/flowClassifier.js';
6
- import { hasFlowStep } from '../_internal/shared/flowStepNormalizer.js';
7
- import { getFlowsForGeneration } from '../_internal/shared/flowSelection.js';
8
- import { processFunctionName, processMainFileName, upperFirst } from '../_internal/shared/flowNaming.js';
5
+ import { processFunctionName, processMainFileName, upperFirst } from '../_shared/shared/flowNaming.js';
6
+
7
+ const RELATIONSHIP_ACTIONS = [
8
+ 'CreateRelationship',
9
+ 'UpdateRelationship',
10
+ 'DeleteRelationship',
11
+ 'GetRelationship',
12
+ 'ChangeRelationship',
13
+ 'MoveRelationship'
14
+ ];
9
15
 
10
16
  const __filename = fileURLToPath(import.meta.url);
11
17
  const __dirname = path.dirname(__filename);
@@ -18,22 +24,19 @@ export async function generateRelationshipFlows(allSchemas, options) {
18
24
 
19
25
  // Read standard handler templates for reuse
20
26
  const templates = {
21
- sqs: await fs.readFile(path.join(templateDir, 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
22
- api: await fs.readFile(path.join(templateDir, 'FlowHandler_HdrApi.ejs'), 'utf-8'),
23
- inv: await fs.readFile(path.join(templateDir, 'FlowHandler_HdrInv.ejs'), 'utf-8')
27
+ sqs: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
28
+ api: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
29
+ inv: await fs.readFile(path.join(templateDir, '..', '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8')
24
30
  };
25
31
 
26
32
  let generatedCount = 0;
27
33
 
28
- const flows = getFlowsForGeneration(allSchemas);
34
+ if (!allSchemas.relationships || allSchemas.relationships.length === 0) return;
29
35
 
30
- for (const flow of flows) {
31
- const flowTag = flow.flowTag;
36
+ for (const flowTag of RELATIONSHIP_ACTIONS) {
32
37
  const upperFlowTag = upperFirst(flowTag);
33
38
  const processFunction = processFunctionName(flowTag);
34
39
 
35
- if (!isRelationshipFlow(flowTag)) continue;
36
-
37
40
  const flowOutputDir = path.join(baseOutputDir, 'FlowRelationshipEndpoints', upperFlowTag, 'source');
38
41
  await fs.mkdir(flowOutputDir, { recursive: true });
39
42
 
@@ -53,8 +56,9 @@ export async function generateRelationshipFlows(allSchemas, options) {
53
56
  console.warn(` [RelationshipFlowGenerator] Warning: Action template not found for ${flowTag}. Skipping.`);
54
57
  }
55
58
 
56
- // 2. Generate Action Step Handlers (based on flow.event)
57
- for (const event of flow.event || []) {
59
+ // 2. Generate Action Step Handlers (based on fixed event ['ownTopic'])
60
+ const events = ['ownTopic'];
61
+ for (const event of events) {
58
62
  let handlerFileName, handlerContent, handlerFunctionName;
59
63
  if (event === 'ownTopic' || event === 'extTopic') {
60
64
  handlerFunctionName = `${processFunction}_HdrSqs`;
@@ -90,8 +94,8 @@ export async function generateRelationshipFlows(allSchemas, options) {
90
94
  }
91
95
  }
92
96
 
93
- // 3. Generate Complete Step (if any)
94
- if (hasFlowStep(flow.flowSteps, 'Complete')) {
97
+ // 3. Generate Complete Step (Always generated for Relationship flows)
98
+ if (true) {
95
99
  const completeFunction = `${processFunction}Complete`;
96
100
  const completeFileName = `${completeFunction}_Main`;
97
101
  const completeTemplatePath = path.join(templateDir, 'relationship', `${completeFileName}.ejs`);
@@ -17,14 +17,7 @@ function lowerCase(str) {
17
17
  }
18
18
 
19
19
  function shortNameHandler(handlerType) {
20
- // Basic mapping for short names
21
- const map = {
22
- 'HdrSqs': 'Sqs',
23
- 'HdrApi': 'Api',
24
- 'HdrWbs': 'Wbs',
25
- 'HdrDsq': 'Dsq'
26
- };
27
- return map[handlerType] || handlerType;
20
+ return handlerType;
28
21
  }
29
22
 
30
23
  export async function generateStatusField(flowSchema, appPath, outputBaseDir) {
@@ -38,7 +31,7 @@ export async function generateStatusField(flowSchema, appPath, outputBaseDir) {
38
31
  const templatesDir = path.join(__dirname, 'templates', 'statusField');
39
32
  const mainTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusField_Main.ejs'), 'utf-8');
40
33
  const handlerTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusField_HdrSqs.ejs'), 'utf-8');
41
- const yamlTpl = await fs.readFile(path.join(__dirname, '..', '_internal', '_shared', 'yaml', 'SharedFunctionSqs_Yaml.ejs'), 'utf-8');
34
+ const yamlTpl = await fs.readFile(path.join(__dirname, '..', '_shared', 'yaml', 'SharedFunctionSqs_Yaml.ejs'), 'utf-8');
42
35
  const snsTpl = await fs.readFile(path.join(templatesDir, 'CompleteStatusFieldSns_Yaml.ejs'), 'utf-8');
43
36
 
44
37
  // Shared variables
@@ -12,13 +12,7 @@ function upperCase(str) {
12
12
  }
13
13
 
14
14
  function shortNameHandler(handlerType) {
15
- const map = {
16
- 'HdrSqs': 'Sqs',
17
- 'HdrApi': 'Api',
18
- 'HdrWbs': 'Wbs',
19
- 'HdrDsq': 'Dsq'
20
- };
21
- return map[handlerType] || handlerType;
15
+ return handlerType;
22
16
  }
23
17
 
24
18
  export async function generateWebSocket(allLocalFlowSchemas, appPath, outputBaseDir) {
@@ -14,9 +14,9 @@ export async function generateSqsHandler(flow, stepName, suffix, flowOutputDir,
14
14
  // For steps: ${flowTag}${flowStepName} (e.g. OwnTopicFlowProcess)
15
15
  const functionName = stepName ? `${flowTag}${stepName}` : `Process${upperCase(flowTag)}`;
16
16
 
17
- // Queue name: match the ARN generated in FunctionYamlGenerator
18
- // suffix e.g. HdrSqs -> Sqs
19
- const queueNameSuffix = suffix.replace('Hdr', '');
17
+ // Queue name: keep the full handler suffix so handler code matches
18
+ // the generated queue/resource names.
19
+ const queueNameSuffix = suffix;
20
20
  let queueName = '';
21
21
  if (stepName) {
22
22
  queueName = `${flowTag}${stepName}${queueNameSuffix}`;
@@ -15,12 +15,10 @@ export default async function generateConfirmAfterUploadS3(flow, flowOutputDir)
15
15
  const handlerFileName = `${functionName}_${handlerType}`;
16
16
 
17
17
  const mainTemplatePath = path.join(
18
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
19
- 'upload', 'confirmReserved', 'mainFunction', 'template.ejs'
18
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'ConfirmReserved_Main.ejs'
20
19
  );
21
20
  const handlerTemplatePath = path.join(
22
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
23
- 'upload', 'confirmReserved', 'handler', 'template.ejs'
21
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'ConfirmReserved_HdrSqs.ejs'
24
22
  );
25
23
 
26
24
  let mainTemplateStr, handlerTemplateStr;
@@ -16,12 +16,10 @@ export default async function generateCreateObject(flow, flowOutputDir) {
16
16
  const handlerFileName = `${functionName}_${handlerType}`;
17
17
 
18
18
  const mainTemplatePath = path.join(
19
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
20
- 'upload', 'createObject', 'mainFunction', 'template.ejs'
19
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'CreateObject_Main.ejs'
21
20
  );
22
21
  const handlerTemplatePath = path.join(
23
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
24
- 'upload', 'createObject', 'handler', 'template.ejs'
22
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'CreateObject_HdrWbs.ejs'
25
23
  );
26
24
 
27
25
  let mainTemplateStr, handlerTemplateStr;
@@ -15,12 +15,10 @@ export default async function generateCreatePreSignUrl(flow, flowOutputDir) {
15
15
  const handlerFileName = `${functionName}_${handlerType}`;
16
16
 
17
17
  const mainTemplatePath = path.join(
18
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
19
- 'upload', 'preSignUrl', 'createPreSignUrl', 'mainFunction', 'template.ejs'
18
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'CreatePreSignUrl_Main.ejs'
20
19
  );
21
20
  const handlerTemplatePath = path.join(
22
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
23
- 'upload', 'preSignUrl', 'createPreSignUrl', 'handler', 'template.ejs'
21
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'CreatePreSignUrl_HdrSqs.ejs'
24
22
  );
25
23
 
26
24
  let mainTemplateStr, handlerTemplateStr;
@@ -15,12 +15,10 @@ export default async function generateProcessAfterUploadS3(flow, flowOutputDir)
15
15
  const handlerFileName = `${functionName}_${handlerType}`;
16
16
 
17
17
  const mainTemplatePath = path.join(
18
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
19
- 'upload', 'processFile', 'mainFunction', 'template.ejs'
18
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'ProcessS3File_Main.ejs'
20
19
  );
21
20
  const handlerTemplatePath = path.join(
22
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
23
- 'upload', 'processFile', 'handler', 'handlerS3', 'template.ejs'
21
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'FlowHandler_HdrS3.ejs'
24
22
  );
25
23
 
26
24
  let mainTemplateStr, handlerTemplateStr;
@@ -37,8 +35,10 @@ export default async function generateProcessAfterUploadS3(flow, flowOutputDir)
37
35
  });
38
36
 
39
37
  const handlerContent = ejs.render(handlerTemplateStr, {
38
+ flowTag: flow.flowTag,
40
39
  functionName: functionName,
41
- handlerType: handlerType
40
+ mainFileName,
41
+ s3Bucket: flow.bucketName || ''
42
42
  });
43
43
 
44
44
  const targetMainPath = path.join(flowOutputDir, `${mainFileName}.js`);
@@ -15,12 +15,10 @@ export default async function generateReservedLimit(flow, flowOutputDir) {
15
15
  const handlerFileName = `${functionName}_${handlerType}`;
16
16
 
17
17
  const mainTemplatePath = path.join(
18
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
19
- 'upload', 'preSignUrl', 'reservedLimit', 'mainFunction', 'template.ejs'
18
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'ReservedLimit_Main.ejs'
20
19
  );
21
20
  const handlerTemplatePath = path.join(
22
- __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3Legacy',
23
- 'upload', 'preSignUrl', 'reservedLimit', 'handler', 'template.ejs'
21
+ __dirname, '..', '..', '..', 'FlowSchemas', 'templates', 's3', 'ReservedLimit_HdrSqs.ejs'
24
22
  );
25
23
 
26
24
  let mainTemplateStr, handlerTemplateStr;
@@ -17,12 +17,12 @@ export async function generateFlowEntryPoint(allSchemas, options) {
17
17
  const baseOutputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode');
18
18
 
19
19
  const templates = {
20
- sqs: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
21
- api: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
22
- inv: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8'),
23
- endpointMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'endpoint', 'FlowEndpoint_Main.ejs'), 'utf-8'),
24
- wbsMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'endpoint', 'FlowMain_Wbs.ejs'), 'utf-8'),
25
- endpointHdrWbs: await fs.readFile(path.join(__dirname, '..', '_shared', 'endpoint', 'FlowEndpoint_HdrWbs.ejs'), 'utf-8')
20
+ sqs: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
21
+ api: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
22
+ inv: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8'),
23
+ endpointMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowEndpoint_Main.ejs'), 'utf-8'),
24
+ wbsMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowMain_Wbs.ejs'), 'utf-8'),
25
+ endpointHdrWbs: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowEndpoint_HdrWbs.ejs'), 'utf-8')
26
26
  };
27
27
 
28
28
  let generatedCount = 0;
@@ -62,7 +62,7 @@ export async function generateFlowMainFunction(allSchemas, options) {
62
62
  // shared endpoint templates (FlowEndpoint_Main, FlowMain_Wbs) live under _internal/_shared/endpoint
63
63
  const templateBaseDir = templateName.startsWith('crud/') || ['CreateEndpoint_Main.ejs', 'UpdateEndpoint_Main.ejs', 'DeleteEndpoint_Main.ejs', 'GetEndpoint_Main.ejs'].includes(templateName)
64
64
  ? path.join(__dirname, '..', '..', 'FlowEndpoints', 'templates', 'crud')
65
- : path.join(__dirname, '..', '_shared', 'endpoint');
65
+ : path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'endpoint');
66
66
  const mainTemplateStr = await fs.readFile(
67
67
  path.join(templateBaseDir, templateName),
68
68
  'utf-8'
@@ -109,7 +109,7 @@ export async function generateFlowMainFunction(allSchemas, options) {
109
109
  // For ownTopic flows: also generate Process${FlowTag}_Main.js (simple endpoint, triggered from SQS)
110
110
  if (isOwnTopic) {
111
111
  const processMainTemplateStr = await fs.readFile(
112
- path.join(__dirname, '..', '_shared', 'endpoint', 'FlowEndpoint_Main.ejs'),
112
+ path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'endpoint', 'FlowEndpoint_Main.ejs'),
113
113
  'utf-8'
114
114
  );
115
115
  const processMainContent = ejs.render(processMainTemplateStr, {
@@ -130,7 +130,7 @@ export async function generateFlowMainFunction(allSchemas, options) {
130
130
  const beforeLogicalConfigs = generateCode.filter(c => c.codeHookTag === 'beforeLogical');
131
131
  if (isCrud && beforeLogicalConfigs.length > 0) {
132
132
  const beforeLogicalTemplateStr = await fs.readFile(
133
- path.join(__dirname, '..', '_shared', 'endpoint', 'FlowEndpointBeforeLogical_Main.ejs'),
133
+ path.join(__dirname, '..', '..', 'FlowEndpoints', 'templates', 'FlowEndpointBeforeLogical_Main.ejs'),
134
134
  'utf-8'
135
135
  );
136
136
 
@@ -17,19 +17,19 @@ export async function generateFlowSteps(allSchemas, options) {
17
17
 
18
18
  // Read templates
19
19
  const templates = {
20
- main: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'FlowStep_Main.ejs'), 'utf-8'),
21
- complete: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'FlowEndpointComplete_Main.ejs'), 'utf-8'),
22
- sqs: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
23
- api: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
24
- inv: await fs.readFile(path.join(__dirname, '..', '_shared', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8'),
20
+ main: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'FlowStep_Main.ejs'), 'utf-8'),
21
+ complete: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'FlowEndpointComplete_Main.ejs'), 'utf-8'),
22
+ sqs: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrSqs.ejs'), 'utf-8'),
23
+ api: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrApi.ejs'), 'utf-8'),
24
+ inv: await fs.readFile(path.join(__dirname, '..', 'handlers', 'FlowHandler_HdrInv.ejs'), 'utf-8'),
25
25
 
26
26
  // Advanced Custom Flow Logic Templates
27
- pluginMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'FlowStep_PlugIn_Main.ejs'), 'utf-8').catch(() => ''),
28
- recievePluginMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'FlowStep_RecievePlugIn_Main.ejs'), 'utf-8').catch(() => ''),
29
- byConfigAwaitingMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'FlowStep_ByConfig_Awaiting_Main.ejs'), 'utf-8').catch(() => ''),
30
- byConfigPaginatedMain: await fs.readFile(path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'FlowStep_ByConfig_Paginated_Main.ejs'), 'utf-8').catch(() => ''),
31
- templateAwaitingStep: path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'templateAwaitingStep.ejs'),
32
- templateSendPlugin: path.join(__dirname, '..', '_shared', 'step', 'plugIns', 'templateSendPlugin.ejs')
27
+ pluginMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'FlowStep_PlugIn_Main.ejs'), 'utf-8').catch(() => ''),
28
+ recievePluginMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'FlowStep_RecievePlugIn_Main.ejs'), 'utf-8').catch(() => ''),
29
+ byConfigAwaitingMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'FlowStep_ByConfig_Awaiting_Main.ejs'), 'utf-8').catch(() => ''),
30
+ byConfigPaginatedMain: await fs.readFile(path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'FlowStep_ByConfig_Paginated_Main.ejs'), 'utf-8').catch(() => ''),
31
+ templateAwaitingStep: path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'templateAwaitingStep.ejs'),
32
+ templateSendPlugin: path.join(__dirname, '..', '..', 'FlowSchemas', 'templates', 'step', 'plugIns', 'templateSendPlugin.ejs')
33
33
  };
34
34
 
35
35
  let generatedCount = 0;
@@ -13,13 +13,7 @@ function upperCase(str) {
13
13
  }
14
14
 
15
15
  function shortNameHandler(handlerType) {
16
- const map = {
17
- 'HdrSqs': 'Sqs',
18
- 'HdrApi': 'Api',
19
- 'HdrWbs': 'Wbs',
20
- 'HdrDsq': 'Dsq'
21
- };
22
- return map[handlerType] || handlerType;
16
+ return handlerType;
23
17
  }
24
18
 
25
19
  export async function generateTriggerCache(flowSchema, appPath, outputBaseDir) {
@@ -1,26 +1,29 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import { writeRenderedTemplate } from '../../../../../core/renderTemplateFile.js';
4
5
 
5
6
  const __filename = fileURLToPath(import.meta.url);
6
7
  const __dirname = path.dirname(__filename);
7
8
 
8
9
  export async function generateProcessLogical(options) {
9
- console.log(' [ProcessLogicalGenerator] Generating ProcessLogical flows...');
10
-
11
- const outputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode', 'ProcessLogical', 'source');
12
- await fs.mkdir(outputDir, { recursive: true });
10
+ console.log(' [ProcessLogicalGenerator] Generating ProcessLogical flows...');
13
11
 
14
- const templatesDir = path.join(__dirname, 'templates');
15
- const files = await fs.readdir(templatesDir);
12
+ const outputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode', 'ProcessLogical', 'source');
13
+ const templatesDir = path.join(__dirname, 'templates');
14
+ const files = await fs.readdir(templatesDir);
16
15
 
17
- for (const file of files) {
18
- if (file.endsWith('.js')) {
19
- const sourceFile = path.join(templatesDir, file);
20
- const destFile = path.join(outputDir, file);
21
- await fs.copyFile(sourceFile, destFile);
22
- }
23
- }
24
-
25
- console.log(` [ProcessLogicalGenerator] Wrote ${files.length} ProcessLogical files.`);
16
+ let count = 0;
17
+ for (const file of files) {
18
+ if (!file.endsWith('.ejs')) continue;
19
+
20
+ await writeRenderedTemplate(
21
+ path.join(templatesDir, file),
22
+ path.join(outputDir, file.replace(/\.ejs$/, '.js')),
23
+ {}
24
+ );
25
+ count++;
26
+ }
27
+
28
+ console.log(` [ProcessLogicalGenerator] Wrote ${count} ProcessLogical files.`);
26
29
  }
@@ -174,4 +174,4 @@ export const main = middleware.wrap(async (event, context, callback) => {
174
174
  Logger.error('Unhandled Error, PaginateProcessLogicalHdrDsq: ', err);
175
175
  throw err;
176
176
  }
177
- });
177
+ });