@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
@@ -1,166 +1,144 @@
1
1
  import path from 'path';
2
- import fs from 'fs/promises';
3
2
  import { fileURLToPath } from 'url';
4
- import ejs from 'ejs';
3
+ import {
4
+ appendRenderedTemplate,
5
+ writeRenderedTemplate
6
+ } from '../../../../../core/renderTemplateFile.js';
5
7
 
6
8
  const __filename = fileURLToPath(import.meta.url);
7
9
  const __dirname = path.dirname(__filename);
8
10
 
9
11
  function upperCase(str) {
10
- if (!str) return str;
11
- return str.charAt(0).toUpperCase() + str.slice(1);
12
+ if (!str) return str;
13
+ return str.charAt(0).toUpperCase() + str.slice(1);
12
14
  }
13
15
 
14
16
  function shortNameHandler(handlerType) {
15
- const map = {
16
- 'HdrSqs': 'Sqs',
17
- 'HdrApi': 'Api',
18
- 'HdrWbs': 'Wbs',
19
- 'HdrDsq': 'Dsq'
20
- };
21
- return map[handlerType] || handlerType;
17
+ return handlerType;
22
18
  }
23
19
 
24
- export async function generateRegisterFlow(allLocalFlowSchemas, appPath, outputBaseDir) {
25
- const hasRegisterFlow = allLocalFlowSchemas.some(flow => flow.flowTag === 'Register');
26
- if (!hasRegisterFlow) {
27
- console.log(' [RegisterGenerator] No Register flow descriptor found. Skipping.');
28
- return;
20
+ export async function generateRegisterFlow(allLocalFlowSchemas, _appPath, outputBaseDir) {
21
+ if (!allLocalFlowSchemas.some((flow) => flow.flowTag === 'Register')) {
22
+ console.log(' [RegisterGenerator] No Register flow descriptor found. Skipping.');
23
+ return;
24
+ }
25
+
26
+ console.log(' [RegisterGenerator] Generating Register flow files...');
27
+
28
+ const templatesDir = path.join(__dirname, 'templates', 'register');
29
+ const wsTemplatesDir = path.join(__dirname, '..', 'Flow', 'FlowSchemas', 'templates', 'webSocket');
30
+ const registerDir = path.join(
31
+ outputBaseDir,
32
+ 'app',
33
+ 'src',
34
+ 'generatedCode',
35
+ 'SystemFlowSchemas',
36
+ 'Register',
37
+ 'source'
38
+ );
39
+ const flowSchemaPath = path.join(
40
+ outputBaseDir,
41
+ 'app',
42
+ 'sls_yaml',
43
+ 'generatedCode',
44
+ 'source',
45
+ 'flow-schema.yml'
46
+ );
47
+ const resourceYamlPath = path.join(
48
+ outputBaseDir,
49
+ 'resource',
50
+ 'sls_yaml',
51
+ 'generatedCode',
52
+ 'source',
53
+ 'generated-sns-in-sqs.yml'
54
+ );
55
+
56
+ const wbsFunctionName = 'Register';
57
+ await writeRenderedTemplate(
58
+ path.join(templatesDir, 'Register_Main.ejs'),
59
+ path.join(registerDir, `${wbsFunctionName}_Main.js`),
60
+ { functionMain: `${wbsFunctionName}_Main` }
61
+ );
62
+ await writeRenderedTemplate(
63
+ path.join(templatesDir, 'Register_HdrWbs.ejs'),
64
+ path.join(registerDir, `${wbsFunctionName}_HdrWbs.js`),
65
+ { routeName: 'register' }
66
+ );
67
+ await appendRenderedTemplate(
68
+ path.join(__dirname, '..', '..', '..', 'sls_yaml', 'templates', 'FunctionYaml_Wbs.ejs'),
69
+ flowSchemaPath,
70
+ {
71
+ functionNameConfig: `${wbsFunctionName}Wbs`,
72
+ handlerPath: `src/generatedCode/SystemFlowSchemas/Register/source/${wbsFunctionName}_HdrWbs.main`,
73
+ roleName: 'RegisterRole',
74
+ routeName: 'register'
29
75
  }
30
-
31
- console.log(' [RegisterGenerator] Generating Register flow files...');
32
- const templatesDir = path.join(__dirname, 'templates', 'register');
33
- const wsTemplatesDir = path.join(__dirname, '..', 'Flow', 'FlowSchemas', 'templates', 'webSocket');
34
-
35
- // Output paths
36
- const registerDir = path.join(outputBaseDir, 'app', 'src', 'generatedCode', 'SystemFlowSchemas', 'Register', 'source');
37
- await fs.mkdir(registerDir, { recursive: true });
38
-
39
- const slsYamlDir = path.join(outputBaseDir, 'app', 'sls_yaml', 'generatedCode', 'source');
40
- await fs.mkdir(slsYamlDir, { recursive: true });
41
-
42
- const resourceYamlDir = path.join(outputBaseDir, 'resource', 'sls_yaml', 'generatedCode', 'source');
43
- await fs.mkdir(resourceYamlDir, { recursive: true });
44
-
45
- // Helper to render and write
46
- async function renderAndWrite(tplPath, outPath, data) {
47
- const tpl = await fs.readFile(tplPath, 'utf-8');
48
- const content = ejs.render(tpl, data);
49
- await fs.writeFile(outPath, content, 'utf-8');
76
+ );
77
+
78
+ const completeFunctionName = 'RegisterComplete';
79
+ const completeData = {
80
+ functionName: completeFunctionName,
81
+ handlerType: 'HdrSqs',
82
+ queueName: completeFunctionName,
83
+ handlerFilePath: `src/generatedCode/SystemFlowSchemas/Register/source/${completeFunctionName}_HdrSqs`,
84
+ roleName: 'RegisterComplete',
85
+ upperFunctionName: upperCase(completeFunctionName),
86
+ upperHandlerType: 'HDRSQS',
87
+ upperQueueName: upperCase(completeFunctionName),
88
+ functionNameConfig: `${upperCase(completeFunctionName)}${upperCase(shortNameHandler('HdrSqs'))}`
89
+ };
90
+
91
+ await writeRenderedTemplate(
92
+ path.join(templatesDir, 'RegisterComplete_Main.ejs'),
93
+ path.join(registerDir, `${completeFunctionName}_Main.js`),
94
+ completeData
95
+ );
96
+ await writeRenderedTemplate(
97
+ path.join(templatesDir, 'RegisterComplete_HdrSqs.ejs'),
98
+ path.join(registerDir, `${completeFunctionName}_HdrSqs.js`),
99
+ completeData
100
+ );
101
+ await writeRenderedTemplate(
102
+ path.join(templatesDir, 'RegisterComplete_HdrSqs.ejs'),
103
+ path.join(registerDir, `${completeFunctionName}_HdrDsq.js`),
104
+ { ...completeData, handlerType: 'HdrDsq' }
105
+ );
106
+ await appendRenderedTemplate(
107
+ path.join(wsTemplatesDir, 'ProcessWebSocketFlow_Yaml.ejs'),
108
+ flowSchemaPath,
109
+ completeData
110
+ );
111
+ await appendRenderedTemplate(
112
+ path.join(wsTemplatesDir, 'ProcessWebSocketFlow_Yaml.ejs'),
113
+ flowSchemaPath,
114
+ {
115
+ ...completeData,
116
+ handlerType: 'HdrDsq',
117
+ upperHandlerType: 'HDRDSQ',
118
+ functionNameConfig: `${upperCase(completeFunctionName)}Dsq`,
119
+ handlerFilePath: `src/generatedCode/SystemFlowSchemas/Register/source/${completeFunctionName}_HdrDsq`
50
120
  }
51
-
52
- async function renderAndAppend(tplPath, outPath, data) {
53
- const tpl = await fs.readFile(tplPath, 'utf-8');
54
- const content = ejs.render(tpl, data);
55
- await fs.appendFile(outPath, '\n' + content, 'utf-8');
56
- }
57
-
58
- // 1. WBS Handler and Main
59
- const wbsFunctionName = 'Register';
60
- await renderAndWrite(
61
- path.join(templatesDir, 'Register_Main.ejs'),
62
- path.join(registerDir, `${wbsFunctionName}_Main.js`),
63
- { functionMain: `${wbsFunctionName}_Main` }
121
+ );
122
+
123
+ await appendRenderedTemplate(
124
+ path.join(wsTemplatesDir, 'ProcessWebSocket_Yaml.ejs'),
125
+ resourceYamlPath,
126
+ completeData
127
+ );
128
+
129
+ for (const flowSchema of allLocalFlowSchemas) {
130
+ if (!flowSchema.outputTopic) continue;
131
+
132
+ await appendRenderedTemplate(
133
+ path.join(wsTemplatesDir, 'ProcessWebSocketSub_Yaml.ejs'),
134
+ resourceYamlPath,
135
+ {
136
+ subscribeTo: upperCase(flowSchema.flowTag),
137
+ queueName: completeFunctionName,
138
+ upperQueueName: upperCase(completeFunctionName)
139
+ }
64
140
  );
65
-
66
- await renderAndWrite(
67
- path.join(templatesDir, 'Register_HdrWbs.ejs'),
68
- path.join(registerDir, `${wbsFunctionName}_HdrWbs.js`),
69
- { routeName: 'register' }
70
- );
71
-
72
- const wbsYamlTemplatePath = path.join(__dirname, '..', '..', '..', 'sls_yaml', 'templates', 'FunctionYaml_Wbs.ejs');
73
- await renderAndAppend(
74
- wbsYamlTemplatePath,
75
- path.join(slsYamlDir, 'flow-schema.yml'),
76
- {
77
- functionNameConfig: wbsFunctionName + 'Wbs',
78
- handlerPath: `src/generatedCode/SystemFlowSchemas/Register/source/${wbsFunctionName}_HdrWbs.main`,
79
- roleName: 'RegisterRole',
80
- routeName: 'register'
81
- }
82
- );
83
-
84
- // 2. Complete Handler and Main
85
- const completeFunctionName = 'RegisterComplete';
86
- const processHandlerType = 'HdrSqs';
87
- const queueName = completeFunctionName;
88
-
89
- const completeData = {
90
- functionName: completeFunctionName,
91
- handlerType: processHandlerType,
92
- queueName: queueName,
93
- handlerFilePath: `src/generatedCode/SystemFlowSchemas/Register/source/${completeFunctionName}_${processHandlerType}`,
94
- roleName: 'RegisterComplete',
95
- upperFunctionName: upperCase(completeFunctionName),
96
- upperHandlerType: upperCase(processHandlerType),
97
- upperQueueName: upperCase(queueName),
98
- functionNameConfig: upperCase(completeFunctionName) + upperCase(shortNameHandler(processHandlerType))
99
- };
100
-
101
- await renderAndWrite(
102
- path.join(templatesDir, 'RegisterComplete_Main.ejs'),
103
- path.join(registerDir, `${completeFunctionName}_Main.js`),
104
- completeData
105
- );
106
-
107
- await renderAndWrite(
108
- path.join(templatesDir, 'RegisterComplete_HdrSqs.ejs'),
109
- path.join(registerDir, `${completeFunctionName}_${processHandlerType}.js`),
110
- completeData
111
- );
112
-
113
- // Also generate Dsq if needed, or legacy only had Sqs?
114
- // Legacy RegisterComplete_HdrSqs template does both Sqs and Dsq based on yaml, but here we just write HdrSqs and HdrDsq.
115
- await renderAndWrite(
116
- path.join(templatesDir, 'RegisterComplete_HdrSqs.ejs'),
117
- path.join(registerDir, `${completeFunctionName}_HdrDsq.js`),
118
- { ...completeData, handlerType: 'HdrDsq' }
119
- );
120
-
121
- // Append to flow-schema.yml
122
- await renderAndAppend(
123
- path.join(wsTemplatesDir, 'ProcessWebSocketFlow_Yaml.ejs'),
124
- path.join(slsYamlDir, 'flow-schema.yml'),
125
- completeData
126
- );
127
-
128
- // Append Dsq to flow-schema
129
- await renderAndAppend(
130
- path.join(wsTemplatesDir, 'ProcessWebSocketFlow_Yaml.ejs'),
131
- path.join(slsYamlDir, 'flow-schema.yml'),
132
- {
133
- ...completeData,
134
- handlerType: 'HdrDsq',
135
- upperHandlerType: 'HDRDSQ',
136
- functionNameConfig: upperCase(completeFunctionName) + 'Dsq',
137
- handlerFilePath: `src/generatedCode/SystemFlowSchemas/Register/source/${completeFunctionName}_HdrDsq`,
138
- }
139
- );
140
-
141
- // 3. SQS and SNS Subscriptions
142
- // We reuse ProcessWebSocket_Yaml.ejs which creates SQS queue
143
- await renderAndAppend(
144
- path.join(wsTemplatesDir, 'ProcessWebSocket_Yaml.ejs'),
145
- path.join(resourceYamlDir, 'generated-sns-in-sqs.yml'),
146
- completeData
147
- );
148
-
149
- // RegisterComplete subscribes to ALL output topics
150
- for (const flowSchema of allLocalFlowSchemas) {
151
- if (flowSchema.outputTopic) {
152
- const topicOut = upperCase(flowSchema.flowTag);
153
- await renderAndAppend(
154
- path.join(wsTemplatesDir, 'ProcessWebSocketSub_Yaml.ejs'),
155
- path.join(resourceYamlDir, 'generated-sns-in-sqs.yml'),
156
- {
157
- subscribeTo: topicOut,
158
- queueName: queueName,
159
- upperQueueName: upperCase(queueName)
160
- }
161
- );
162
- }
163
- }
141
+ }
164
142
 
165
- console.log(` [RegisterGenerator] Finished generating Register flow files.`);
143
+ console.log(' [RegisterGenerator] Finished generating Register flow files.');
166
144
  }
@@ -1,20 +1,28 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import ejs from 'ejs';
4
5
 
5
6
  const __filename = fileURLToPath(import.meta.url);
6
7
  const __dirname = path.dirname(__filename);
7
8
 
8
9
  export async function generateConsts(options) {
9
- console.log(' [ConstsGenerator] Generating Consts...');
10
+ console.log(' [ConstsGenerator] Generating Consts...');
10
11
 
11
- const outputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode', 'libs', 'source');
12
- await fs.mkdir(outputDir, { recursive: true });
12
+ const outputDir = path.join(
13
+ options.outputPath,
14
+ 'app',
15
+ 'src',
16
+ 'generatedCode',
17
+ 'libs',
18
+ 'source'
19
+ );
20
+ await fs.mkdir(outputDir, { recursive: true });
13
21
 
14
- const sourceFile = path.join(__dirname, 'templates', 'Consts.js');
15
- const destFile = path.join(outputDir, 'Consts.js');
22
+ const sourceFile = path.join(__dirname, 'templates', 'Consts.ejs');
23
+ const destFile = path.join(outputDir, 'Consts.js');
24
+ const template = await fs.readFile(sourceFile, 'utf8');
16
25
 
17
- await fs.copyFile(sourceFile, destFile);
18
-
19
- console.log(` [ConstsGenerator] Wrote Consts.js`);
26
+ await fs.writeFile(destFile, ejs.render(template, {}));
27
+ console.log(' [ConstsGenerator] Wrote Consts.js');
20
28
  }
@@ -1,20 +1,28 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
+ import ejs from 'ejs';
4
5
 
5
6
  const __filename = fileURLToPath(import.meta.url);
6
7
  const __dirname = path.dirname(__filename);
7
8
 
8
9
  export async function generateCodeLibs(options) {
9
- console.log(' [GenerateCodeLibsGenerator] Generating Code Libs...');
10
-
11
- const outputDir = path.join(options.outputPath, 'app', 'src', 'generatedCode', 'libs', 'source');
12
- await fs.mkdir(outputDir, { recursive: true });
10
+ console.log(' [GenerateCodeLibsGenerator] Generating Code Libs...');
13
11
 
14
- const sourceFile = path.join(__dirname, 'templates', 'GenerateCodeLibs.js');
15
- const destFile = path.join(outputDir, 'GenerateCodeLibs.js');
12
+ const outputDir = path.join(
13
+ options.outputPath,
14
+ 'app',
15
+ 'src',
16
+ 'generatedCode',
17
+ 'libs',
18
+ 'source'
19
+ );
20
+ await fs.mkdir(outputDir, { recursive: true });
16
21
 
17
- await fs.copyFile(sourceFile, destFile);
18
-
19
- console.log(` [GenerateCodeLibsGenerator] Wrote GenerateCodeLibs.js`);
22
+ const sourceFile = path.join(__dirname, 'templates', 'GenerateCodeLibs.ejs');
23
+ const destFile = path.join(outputDir, 'GenerateCodeLibs.js');
24
+ const template = await fs.readFile(sourceFile, 'utf8');
25
+
26
+ await fs.writeFile(destFile, ejs.render(template, {}));
27
+ console.log(' [GenerateCodeLibsGenerator] Wrote GenerateCodeLibs.js');
20
28
  }
@@ -72,15 +72,15 @@ export async function generateDynamoDBTables(allSchemas, options) {
72
72
  }
73
73
  }
74
74
 
75
- let generatedCount = 0;
76
- const yamlOutputPath = path.join(resourceYamlDir, 'generated-dynamoDB-table.yml');
75
+ let generatedCount = 0;
76
+ const yamlOutputPath = path.join(resourceYamlDir, 'generated-dynamoDB-table.yml');
77
77
 
78
- // Generate system tables first
79
- const systemYamlTplPath = path.join(__dirname, 'templates', 'SystemDynamoDB_Yaml.ejs');
80
- const systemYamlTpl = await fs.readFile(systemYamlTplPath, 'utf-8');
81
- const systemYamlContent = ejs.render(systemYamlTpl, {});
82
- await appendToFile(yamlOutputPath, systemYamlContent);
83
- generatedCount += 8; // 8 system tables
78
+ // Generate system tables first
79
+ const systemYamlTplPath = path.join(__dirname, 'templates', 'SystemDynamoDB_Yaml.ejs');
80
+ const systemYamlTpl = await fs.readFile(systemYamlTplPath, 'utf-8');
81
+ const systemYamlContent = ejs.render(systemYamlTpl, {});
82
+ await fs.writeFile(yamlOutputPath, `${systemYamlContent}\n`, 'utf-8');
83
+ generatedCount += 8; // 8 system tables
84
84
 
85
85
  for (const [tableName, keys] of tables.entries()) {
86
86
  const yamlContent = ejs.render(yamlTpl, {
@@ -2,63 +2,80 @@ 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 { getFlowsForGeneration } from '../../app/src/generatedCode/Flow/_internal/shared/flowSelection.js';
5
+
6
+ import { getFlowsForGeneration } from '../../app/src/generatedCode/Flow/_shared/shared/flowSelection.js';
6
7
 
7
8
  const __filename = fileURLToPath(import.meta.url);
8
9
  const __dirname = path.dirname(__filename);
9
10
 
10
11
  async function appendToFile(filePath, content) {
11
- try {
12
- await fs.mkdir(path.dirname(filePath), { recursive: true });
13
- await fs.appendFile(filePath, content + '\n', 'utf-8');
14
- } catch (error) {
15
- console.error(`[Error] Failed to append to file: ${filePath}`, error);
16
- }
12
+ try {
13
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
14
+ await fs.appendFile(filePath, `${content}\n`, 'utf-8');
15
+ } catch (error) {
16
+ console.error(`[Error] Failed to append file: ${filePath}`, error);
17
+ }
17
18
  }
18
19
 
19
20
  export async function generateFlowOut(allSchemas, options) {
20
- console.log(' [FlowOutGenerator] Generating Flow Out nodes (SNS Topics)...');
21
-
22
- const resourceYamlDir = path.join(options.outputPath, 'resource', 'sls_yaml', 'generatedCode', 'source');
23
- await fs.mkdir(resourceYamlDir, { recursive: true });
21
+ console.log(' [FlowOutGenerator] Generating Flow Out nodes (SNS Topics)...');
22
+
23
+ const resourceYamlDir = path.join(options.outputPath, 'resource', 'sls_yaml', 'generatedCode', 'source');
24
+ await fs.mkdir(resourceYamlDir, { recursive: true });
25
+
26
+ const yamlTplPath = path.join(__dirname, 'templates', 'FlowOut_Yaml.ejs');
27
+ const yamlTpl = await fs.readFile(yamlTplPath, 'utf-8');
24
28
 
25
- const yamlTplPath = path.join(__dirname, 'templates', 'FlowOut_Yaml.ejs');
26
- const yamlTpl = await fs.readFile(yamlTplPath, 'utf-8');
29
+ let generatedCount = 0;
30
+ const yamlOutputPath = path.join(resourceYamlDir, 'generated-sns-out.yml');
31
+ await fs.writeFile(yamlOutputPath, '', 'utf-8');
27
32
 
28
- let generatedCount = 0;
29
- const yamlOutputPath = path.join(resourceYamlDir, 'generated-sns-out.yml');
33
+ const generatedTopics = new Set();
30
34
 
31
- const flows = getFlowsForGeneration(allSchemas);
32
- for (const flow of flows) {
33
- if (flow.outputTopic === true) {
34
- const upperCase = (str) => str.charAt(0).toUpperCase() + str.slice(1);
35
- const topicName = upperCase(flow.flowTag);
35
+ async function appendTopic(topicName) {
36
+ if (generatedTopics.has(topicName)) return;
36
37
 
37
- const yamlContent = ejs.render(yamlTpl, {
38
- topicName: topicName
39
- });
38
+ generatedTopics.add(topicName);
39
+ const yamlContent = ejs.render(yamlTpl, { topicName });
40
+ await appendToFile(yamlOutputPath, yamlContent);
41
+ generatedCount++;
42
+ }
40
43
 
41
- await appendToFile(yamlOutputPath, yamlContent);
42
- generatedCount++;
43
- }
44
- }
44
+ const flows = getFlowsForGeneration(allSchemas);
45
+ for (const flow of flows) {
46
+ if (flow.outputTopic !== true) continue;
47
+ await appendTopic(flow.flowTag.charAt(0).toUpperCase() + flow.flowTag.slice(1));
48
+ }
45
49
 
46
- const systemTopics = [
47
- 'CreateObjectComplete',
48
- 'DeleteNodeComplete',
49
- 'UpdateNodeComplete',
50
- 'GetNodeComplete',
51
- 'ProcessLogicalComplete',
52
- 'FindDataComplete'
53
- ];
50
+ const systemTopics = [
51
+ 'CreateObjectComplete',
52
+ 'DeleteNodeComplete',
53
+ 'UpdateNodeComplete',
54
+ 'ProcessLogicalComplete',
55
+ 'FindDataComplete',
56
+ 'Create',
57
+ 'Update',
58
+ 'Delete',
59
+ 'CreateRelationship',
60
+ 'UpdateRelationship',
61
+ 'DeleteRelationship',
62
+ 'GetRelationship',
63
+ 'ChangeRelationship',
64
+ 'MoveRelationship',
65
+ 'CreateTargetRole',
66
+ 'ListTargetRole',
67
+ 'DeleteTargetRole',
68
+ 'CreateRolePermissions',
69
+ 'ListRolePermissions',
70
+ 'DeleteRolePermissions',
71
+ 'CreateUserRole',
72
+ 'ListUserInRoles',
73
+ 'DeleteUserFromRole'
74
+ ];
54
75
 
55
- for (const topic of systemTopics) {
56
- const yamlContent = ejs.render(yamlTpl, {
57
- topicName: topic
58
- });
59
- await appendToFile(yamlOutputPath, yamlContent);
60
- generatedCount++;
61
- }
76
+ for (const topic of systemTopics) {
77
+ await appendTopic(topic);
78
+ }
62
79
 
63
- console.log(` [FlowOutGenerator] Generated ${generatedCount} SNS Topics for Flow Out nodes.`);
80
+ console.log(` [FlowOutGenerator] Generated ${generatedCount} SNS Topics for Flow Out nodes.`);
64
81
  }