@izara_project/izara-core-generate-service-code 1.0.68 → 1.0.70

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 (129) hide show
  1. package/package.json +1 -1
  2. package/scripts/format-ejs.js +36 -32
  3. package/src/compile/compileProject.js +26 -10
  4. package/src/compile/loadSchemas.js +122 -59
  5. package/src/emit/coreFunction/emitCoreFunctionArtifacts.js +163 -0
  6. package/src/emit/coreFunction/templates/CoreFunction_Yaml.ejs +38 -0
  7. package/src/emit/coreFunction/templates/CoreResource_Yaml.ejs +235 -0
  8. package/src/emit/coreFunction/templates/GenerateSeedDataDynamo_HdrInv.ejs +16 -0
  9. package/src/emit/coreFunction/templates/GenerateSeedDataDynamo_Main.ejs +38 -0
  10. package/src/emit/coreFunction/templates/GenerateSeedDataGraphData_HdrInv.ejs +16 -0
  11. package/src/emit/coreFunction/templates/GenerateSeedDataGraphData_Main.ejs +32 -0
  12. package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_HdrInv.ejs +16 -0
  13. package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_Main.ejs +71 -0
  14. package/src/emit/coreFunction/templates/GeneratedGraphNodeSchemas.ejs +47 -0
  15. package/src/emit/coreFunction/templates/GeneratedGraphRelSchemas.ejs +27 -0
  16. package/src/emit/coreFunction/templates/GeneratedTableConfigs.ejs +34 -0
  17. package/src/emit/coreFunction/templates/InitialSetupConfig.ejs +108 -0
  18. package/src/emit/coreFunction/templates/InitialSetup_HdrInv.ejs +12 -0
  19. package/src/emit/coreFunction/templates/InitialSetup_Main.ejs +51 -0
  20. package/src/emit/coreFunction/templates/RemoveSeedDataDynamo_HdrInv.ejs +16 -0
  21. package/src/emit/coreFunction/templates/RemoveSeedDataDynamo_Main.ejs +31 -0
  22. package/src/emit/coreFunction/templates/UploadSchema_HdrInv.ejs +37 -0
  23. package/src/emit/coreFunction/templates/UploadSchema_Main.ejs +52 -0
  24. package/src/emit/crud/emitCrudApplicationArtifacts.js +194 -41
  25. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +34 -17
  26. package/src/emit/crud/generateCrudApplicationArtifacts.js +14 -6
  27. package/src/emit/crud/generateDynamicCrudFlowSchemas.js +4 -1
  28. package/src/emit/crud/templates/CreateEndpoint_Main.ejs +1 -1
  29. package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +1 -1
  30. package/src/emit/crud/templates/GetEndpoint_Main.ejs +2 -2
  31. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +1 -1
  32. package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +1 -1
  33. package/src/emit/custom/customFlows.js +23 -13
  34. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +535 -114
  35. package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +28 -8
  36. package/src/emit/custom/templates/FlowEndpoint_Main.ejs +2 -2
  37. package/src/emit/custom/templates/FlowStep_Main.ejs +1 -1
  38. package/src/emit/custom/templates/s3/CreateObject_Main.ejs +1 -1
  39. package/src/emit/custom/templates/s3/FlowHandler_HdrS3.ejs +2 -2
  40. package/src/emit/custom/templates/s3/ReservedLimit_HdrSqs.ejs +1 -1
  41. package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +1 -1
  42. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +4 -4
  43. package/src/emit/function/functionYamlArtifact.js +273 -97
  44. package/src/emit/function/templates/ApiFunction_Yaml.ejs +7 -0
  45. package/src/emit/function/templates/EventBridgeFunction_Yaml.ejs +6 -0
  46. package/src/emit/function/templates/InvFunction_Yaml.ejs +5 -0
  47. package/src/emit/function/templates/S3Function_Yaml.ejs +16 -0
  48. package/src/emit/function/templates/SqsFunction_Yaml.ejs +10 -0
  49. package/src/emit/function/templates/WbsFunction_Yaml.ejs +10 -0
  50. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +28 -30
  51. package/src/emit/rbac/emitRbacApplicationArtifacts.js +6 -6
  52. package/src/emit/rbac/generateCreateTargetRoleHandler.js +6 -4
  53. package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +8 -2
  54. package/src/emit/rbac/rbacFlowTag.js +3 -1
  55. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +1 -1
  56. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +26 -10
  57. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +189 -37
  58. package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +8 -2
  59. package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +15 -6
  60. package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +1 -1
  61. package/src/emit/relationship/templates/CreateRelationship_Main.ejs +1 -1
  62. package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +1 -1
  63. package/src/emit/relationship/templates/GetRelationship_Main.ejs +1 -1
  64. package/src/emit/relationship/templates/MoveRelationship_Main.ejs +1 -1
  65. package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +1 -1
  66. package/src/emit/resource/emitResourceArtifacts.js +249 -123
  67. package/src/emit/resource/generateResourceArtifacts.js +15 -6
  68. package/src/emit/resource/templates/DynamoDBTable_Yaml.ejs +18 -18
  69. package/src/emit/resource/templates/FlowOut_Yaml.ejs +5 -5
  70. package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +10 -9
  71. package/src/emit/resource/templates/ResourceBeforeLogicalYaml.ejs +44 -44
  72. package/src/emit/resource/templates/ResourceSqsYaml.ejs +36 -36
  73. package/src/emit/resource/templates/ResourceYaml.ejs +48 -48
  74. package/src/emit/resource/templates/S3Subscription_Yaml.ejs +7 -0
  75. package/src/emit/resource/templates/SharedResource_Yaml.ejs +11 -11
  76. package/src/emit/resource/templates/SystemDynamoDB_Yaml.ejs +122 -105
  77. package/src/emit/resource/templates/WebSocketSubscription_Yaml.ejs +7 -0
  78. package/src/emit/shared/templates/FindData_HdrSqs.ejs +120 -0
  79. package/src/emit/shared/templates/FindData_Main.ejs +345 -0
  80. package/src/emit/{crud → shared}/templates/FlowHandler_HdrApi.ejs +1 -1
  81. package/src/emit/{relationship → shared}/templates/FlowHandler_HdrDsq.ejs +4 -4
  82. package/src/emit/{crud → shared}/templates/FlowHandler_HdrInv.ejs +1 -1
  83. package/src/emit/{crud → shared}/templates/FlowHandler_HdrSqs.ejs +4 -4
  84. package/src/emit/shared/templates/PaginateProcessLogical_HdrDsq.ejs +162 -0
  85. package/src/emit/shared/templates/PaginateProcessLogical_HdrSqs.ejs +140 -0
  86. package/src/emit/shared/templates/PaginateProcessLogical_Main.ejs +268 -0
  87. package/src/emit/{relationship/templates/FlowHandler_HdrSqs.ejs → shared/templates/ProcessLogical_HdrSqs.ejs} +40 -55
  88. package/src/emit/shared/templates/ProcessLogical_Main.ejs +448 -0
  89. package/src/emit/system/emitSystemFindDataArtifacts.js +266 -0
  90. package/src/emit/system/emitSystemWebSocketArtifacts.js +61 -165
  91. package/src/emit/system/templates/WebSocketComplete_HdrSqs.ejs +48 -0
  92. package/src/emit/system/templates/WebSocketComplete_Main.ejs +91 -0
  93. package/src/emit/system/templates/WebSocketComplete_Yaml.ejs +19 -0
  94. package/src/emit/system/templates/WebSocketConnect.ejs +45 -0
  95. package/src/emit/system/templates/WebSocketConnect_Yaml.ejs +11 -0
  96. package/src/generate.js +166 -36
  97. package/src/generateIntTest.js +76 -28
  98. package/src/generateResourceIntTest.js +35 -12
  99. package/src/generateResources/IntTest/generateResources/generateResources.js +5 -2
  100. package/src/generateResources/IntTest/generateResources/templateResources.ejs +18 -30
  101. package/src/generateResources/IntTest/generateTests/events/events.js +1 -1
  102. package/src/generateResources/IntTest/generateTests/events/templateEvents.ejs +13 -10
  103. package/src/generateResources/IntTest/generateTests/generateTemplate.js +2 -2
  104. package/src/generateResources/IntTest/generateTests/pathIntTest/pathIntTest.js +2 -1
  105. package/src/generateResources/IntTest/generateTests/pathIntTest/template.ejs +1 -3
  106. package/src/generateResources/IntTest/generateTests/tests/templateTests.ejs +1 -1
  107. package/src/generateResources/IntTest/generateTests/tests/tests.js +7 -3
  108. package/src/generateResources/IntTest/libs/{libs.js → IntTestGenerateLib.js} +34 -23
  109. package/src/generateResources/IntTest/upload/uploadIntTest.js +33 -19
  110. package/src/intTestGeneratorShared.js +15 -10
  111. package/src/output/commitArtifacts.js +99 -39
  112. package/src/output/mergeHooks.js +34 -21
  113. package/src/output/validateArtifacts.js +37 -27
  114. package/src/plan/buildGenerationPlan.js +24 -13
  115. package/test/core.test.js +117 -58
  116. package/test/createTargetRoleHandler.test.js +1 -1
  117. package/test/crudApplicationArtifacts.test.js +132 -31
  118. package/test/customFlowApplicationArtifacts.test.js +353 -71
  119. package/test/dynamicCrudFlowSchemas.test.js +74 -26
  120. package/test/dynamicRbacFlowSchemas.test.js +61 -14
  121. package/test/dynamicRelationshipFlowSchemas.test.js +65 -18
  122. package/test/functionYamlArtifact.test.js +67 -10
  123. package/test/intTestApi.test.js +9 -10
  124. package/test/publicApi.test.js +178 -36
  125. package/test/relationshipApplicationArtifacts.test.js +90 -19
  126. package/test/resourceArtifacts.test.js +173 -33
  127. package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +0 -11
  128. package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +0 -59
  129. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +0 -47
@@ -541,7 +541,7 @@ export async function <%- flowTag %>MainLogical(
541
541
  export default async function <%- flowTag %>(
542
542
  _izContext,
543
543
  requestParams,
544
- callingFlowConfig = {}
544
+ callingFlowConfig = {},
545
545
  //(<additionalParams>)
546
546
  //(</additionalParams>)
547
547
  ) {
@@ -220,7 +220,7 @@ export async function <%- flowTag %>MainLogical(
220
220
  export default async function <%- flowTag %>(
221
221
  _izContext,
222
222
  requestParams,
223
- callingFlowConfig = {}
223
+ callingFlowConfig = {},
224
224
  //(<additionalParams>)
225
225
  //(</additionalParams>)
226
226
  ) {
@@ -58,7 +58,7 @@ import { sns } from '@izara_project/izara-core-library-external-request';
58
58
  export default async function <%- flowTag %>(
59
59
  _izContext,
60
60
  requestParams,
61
- callingFlowConfig = {}
61
+ callingFlowConfig = {},
62
62
  //(<additionalParams>)
63
63
  //(</additionalParams>)
64
64
  ) {
@@ -94,7 +94,7 @@ export default async function <%- flowTag %>(
94
94
  // ── Process storage resources ─────────────────────────────────────────────
95
95
  const getResults = [];
96
96
  const recordStatus = { foundAtLeastOne: false, missingAtLeastOne: false };
97
- let lastObjInstanceFull = undefined;
97
+ let lastObjInstanceFull = null;
98
98
 
99
99
  await Promise.all(
100
100
  Object.entries(getDataDetails).map(async ([, getDataDetail]) => {
@@ -43,7 +43,7 @@ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
43
43
  export default async function <%- mainFileName %>(
44
44
  _izContext,
45
45
  requestParams,
46
- callingFlowConfig = {}
46
+ callingFlowConfig = {},
47
47
  //(<additionalParams>)
48
48
  //(</additionalParams>)
49
49
  ) {
@@ -479,7 +479,7 @@ export async function <%- flowTag %>MainLogical(
479
479
  export default async function <%- flowTag %>(
480
480
  _izContext,
481
481
  requestParams,
482
- callingFlowConfig = {}
482
+ callingFlowConfig = {},
483
483
  //(<additionalParams>)
484
484
  //(</additionalParams>)
485
485
  ) {
@@ -13,12 +13,12 @@ export function supportedCustomFlows(flows) {
13
13
  throw new TypeError('flows must be an array');
14
14
  }
15
15
  return flows.filter(
16
- flow =>
16
+ (flow) =>
17
17
  typeof flow?.flowTag === 'string' &&
18
18
  flow.flowTag !== '' &&
19
19
  !flow.generatedCodeConfig &&
20
20
  Array.isArray(flow.event) &&
21
- flow.event.some(event => SUPPORTED_EVENTS.has(event))
21
+ flow.event.some((event) => SUPPORTED_EVENTS.has(event))
22
22
  );
23
23
  }
24
24
 
@@ -30,17 +30,20 @@ export function flowExtTopicSteps(flows) {
30
30
  if (!Array.isArray(flows)) {
31
31
  throw new TypeError('flows must be an array');
32
32
  }
33
- return flows.flatMap(flow => {
33
+ return flows.flatMap((flow) => {
34
34
  if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
35
35
  return [];
36
36
  }
37
- const hasTriggerFlowTypes = Array.isArray(flow.triggerFlowTypes) && flow.triggerFlowTypes.length > 0;
37
+ const hasTriggerFlowTypes =
38
+ Array.isArray(flow.triggerFlowTypes) && flow.triggerFlowTypes.length > 0;
38
39
  const steps = flow.flowSteps ?? [];
39
40
  const hasCheckStep = steps.some(
40
- step => typeof step?.stepName === 'string' && step.stepName.toLowerCase().includes('checktrigger')
41
+ (step) =>
42
+ typeof step?.stepName === 'string' &&
43
+ step.stepName.toLowerCase().includes('checktrigger')
41
44
  );
42
45
 
43
- const result = steps.flatMap(step => {
46
+ const result = steps.flatMap((step) => {
44
47
  if (
45
48
  typeof step?.stepName !== 'string' ||
46
49
  step.stepName === '' ||
@@ -82,11 +85,11 @@ export function flowDsqSteps(flows) {
82
85
  if (!Array.isArray(flows)) {
83
86
  throw new TypeError('flows must be an array');
84
87
  }
85
- return flows.flatMap(flow => {
88
+ return flows.flatMap((flow) => {
86
89
  if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
87
90
  return [];
88
91
  }
89
- return (flow.flowSteps ?? []).flatMap(step =>
92
+ return (flow.flowSteps ?? []).flatMap((step) =>
90
93
  typeof step?.stepName === 'string' &&
91
94
  step.stepName !== '' &&
92
95
  step.stepName.toLowerCase() !== 'start' &&
@@ -110,7 +113,7 @@ export function generatedOwnTopicFlows(flows) {
110
113
  throw new TypeError('flows must be an array');
111
114
  }
112
115
  return flows.filter(
113
- flow =>
116
+ (flow) =>
114
117
  typeof flow?.flowTag === 'string' &&
115
118
  flow.flowTag !== '' &&
116
119
  flow.generatedCodeConfig &&
@@ -128,7 +131,7 @@ export function triggerCacheFlows(flows) {
128
131
  throw new TypeError('flows must be an array');
129
132
  }
130
133
  return flows.filter(
131
- flow =>
134
+ (flow) =>
132
135
  typeof flow?.flowTag === 'string' &&
133
136
  flow.flowTag !== '' &&
134
137
  flow.statusType === 'triggerCache'
@@ -138,12 +141,19 @@ export function triggerCacheFlows(flows) {
138
141
  export function triggerCacheQueueNames(flow) {
139
142
  const tag = upperFirst(flow.flowTag);
140
143
  const queues = [`TriggerCache${tag}HdrDsq`];
141
- if (Array.isArray(flow.triggerFlowTypes) && flow.triggerFlowTypes.length > 0) {
144
+ if (
145
+ Array.isArray(flow.triggerFlowTypes) &&
146
+ flow.triggerFlowTypes.length > 0
147
+ ) {
142
148
  const customCheckStep = (flow.flowSteps ?? []).find(
143
- s => typeof s?.stepName === 'string' && s.stepName.toLowerCase().includes('checktrigger')
149
+ (s) =>
150
+ typeof s?.stepName === 'string' &&
151
+ s.stepName.toLowerCase().includes('checktrigger')
144
152
  );
145
153
  const checkStepName = customCheckStep
146
- ? (upperFirst(customCheckStep.stepName).startsWith(tag) ? upperFirst(customCheckStep.stepName) : `${tag}${upperFirst(customCheckStep.stepName)}`)
154
+ ? upperFirst(customCheckStep.stepName).startsWith(tag)
155
+ ? upperFirst(customCheckStep.stepName)
156
+ : `${tag}${upperFirst(customCheckStep.stepName)}`
147
157
  : `${tag}CheckTriggerFlows`;
148
158
  queues.push(`${checkStepName}HdrSqs`);
149
159
  }