@izara_project/izara-core-generate-service-code 1.0.67 → 1.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierrc +11 -0
- package/package.json +16 -12
- package/scripts/format-ejs.js +104 -0
- package/src/compile/compileProject.js +40 -9
- package/src/compile/loadSchemas.js +120 -11
- package/src/emit/crud/emitCrudApplicationArtifacts.js +188 -41
- package/src/emit/crud/emitDynamicCrudFlowSchemas.js +34 -18
- package/src/emit/crud/generateCrudApplicationArtifacts.js +14 -6
- package/src/emit/crud/generateDynamicCrudFlowSchemas.js +4 -1
- package/src/emit/crud/templates/CreateEndpoint_Main.ejs +296 -105
- package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +222 -144
- package/src/emit/crud/templates/FlowEndpointBeforeLogical_Main.ejs +22 -6
- package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +134 -43
- package/src/emit/crud/templates/FlowEndpoint_HdrWbs.ejs +51 -31
- package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +53 -45
- package/src/emit/crud/templates/FlowHandler_HdrInv.ejs +28 -26
- package/src/emit/crud/templates/FlowHandler_HdrSqs.ejs +15 -11
- package/src/emit/crud/templates/FlowMain_Wbs.ejs +53 -38
- package/src/emit/crud/templates/GetEndpoint_Main.ejs +6 -3
- package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +2 -2
- package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +402 -249
- package/src/emit/custom/customFlows.js +68 -28
- package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +520 -123
- package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +28 -8
- package/src/emit/custom/templates/FlowEndpoint_Main.ejs +48 -36
- package/src/emit/custom/templates/FlowStep_Main.ejs +7 -9
- package/src/emit/custom/templates/s3/ConfirmReserved_HdrSqs.ejs +59 -54
- package/src/emit/custom/templates/s3/ConfirmReserved_Main.ejs +33 -23
- package/src/emit/custom/templates/s3/CreateObject_HdrWbs.ejs +30 -23
- package/src/emit/custom/templates/s3/CreateObject_Main.ejs +56 -39
- package/src/emit/custom/templates/s3/CreatePreSignUrl_HdrSqs.ejs +56 -51
- package/src/emit/custom/templates/s3/CreatePreSignUrl_Main.ejs +112 -75
- package/src/emit/custom/templates/s3/FlowHandler_HdrS3.ejs +14 -9
- package/src/emit/custom/templates/s3/ProcessS3File_Main.ejs +11 -8
- package/src/emit/custom/templates/s3/ReservedLimit_HdrSqs.ejs +65 -56
- package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +74 -52
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +58 -14
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +12 -17
- package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +20 -13
- package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +4 -1
- package/src/emit/function/functionYamlArtifact.js +272 -79
- package/src/emit/function/templates/ApiFunction_Yaml.ejs +7 -0
- package/src/emit/function/templates/EventBridgeFunction_Yaml.ejs +6 -0
- package/src/emit/function/templates/InvFunction_Yaml.ejs +5 -0
- package/src/emit/function/templates/S3Function_Yaml.ejs +16 -0
- package/src/emit/function/templates/SqsFunction_Yaml.ejs +10 -0
- package/src/emit/function/templates/WbsFunction_Yaml.ejs +10 -0
- package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +40 -29
- package/src/emit/rbac/emitRbacApplicationArtifacts.js +171 -72
- package/src/emit/rbac/generateCreateTargetRoleHandler.js +6 -4
- package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +8 -2
- package/src/emit/rbac/rbacFlowTag.js +3 -1
- package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +41 -18
- package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +23 -3
- package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +27 -5
- package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +41 -8
- package/src/emit/rbac/templates/ListRbac_Main.ejs +26 -6
- package/src/emit/rbac/templates/RbacMutation_Main.ejs +23 -3
- package/src/emit/rbac/templates/UserRbacFlow_HdrSqs.ejs +46 -0
- package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +152 -33
- package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +24 -4
- package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +26 -11
- package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +179 -37
- package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +8 -2
- package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +15 -6
- package/src/emit/relationship/templates/ChangeRelationshipComplete_Main.ejs +64 -37
- package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +258 -142
- package/src/emit/relationship/templates/CreateRelationshipComplete_Main.ejs +68 -43
- package/src/emit/relationship/templates/CreateRelationship_Main.ejs +315 -171
- package/src/emit/relationship/templates/DeleteRelationshipComplete_Main.ejs +67 -41
- package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +226 -115
- package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +41 -33
- package/src/emit/relationship/templates/FlowHandler_HdrDsq.ejs +15 -11
- package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +28 -26
- package/src/emit/relationship/templates/FlowHandler_HdrSqs.ejs +15 -11
- package/src/emit/relationship/templates/GetRelationshipComplete_Main.ejs +46 -26
- package/src/emit/relationship/templates/GetRelationship_Main.ejs +233 -126
- package/src/emit/relationship/templates/MoveRelationshipComplete_Main.ejs +72 -44
- package/src/emit/relationship/templates/MoveRelationship_Main.ejs +266 -150
- package/src/emit/relationship/templates/UpdateRelationshipComplete_Main.ejs +74 -45
- package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +285 -152
- package/src/emit/resource/emitResourceArtifacts.js +274 -105
- package/src/emit/resource/generateResourceArtifacts.js +15 -6
- package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +139 -0
- package/src/emit/resource/templates/S3Bucket_Yaml.ejs +19 -0
- package/src/emit/resource/templates/S3Subscription_Yaml.ejs +7 -0
- package/src/emit/resource/templates/WebSocketSubscription_Yaml.ejs +7 -0
- package/src/emit/system/emitSystemWebSocketArtifacts.js +61 -165
- package/src/emit/system/templates/WebSocketComplete_HdrSqs.ejs +32 -0
- package/src/emit/system/templates/WebSocketComplete_Main.ejs +46 -0
- package/src/emit/system/templates/WebSocketComplete_Yaml.ejs +19 -0
- package/src/emit/system/templates/WebSocketConnect.ejs +25 -0
- package/src/emit/system/templates/WebSocketConnect_Yaml.ejs +11 -0
- package/src/generate.js +141 -34
- package/src/generateIntTest.js +76 -28
- package/src/generateResourceIntTest.js +35 -12
- package/src/generateResources/IntTest/generateResources/generateResources.js +5 -2
- package/src/generateResources/IntTest/generateResources/templateResources.ejs +18 -30
- package/src/generateResources/IntTest/generateTests/events/events.js +1 -1
- package/src/generateResources/IntTest/generateTests/events/templateEvents.ejs +13 -10
- package/src/generateResources/IntTest/generateTests/generateTemplate.js +2 -2
- package/src/generateResources/IntTest/generateTests/pathIntTest/pathIntTest.js +2 -1
- package/src/generateResources/IntTest/generateTests/pathIntTest/template.ejs +1 -3
- package/src/generateResources/IntTest/generateTests/tests/templateTests.ejs +1 -1
- package/src/generateResources/IntTest/generateTests/tests/tests.js +7 -3
- package/src/generateResources/IntTest/libs/{libs.js → IntTestGenerateLib.js} +34 -23
- package/src/generateResources/IntTest/upload/uploadIntTest.js +33 -19
- package/src/intTestGeneratorShared.js +15 -10
- package/src/output/commitArtifacts.js +99 -39
- package/src/output/mergeHooks.js +24 -10
- package/src/output/validateArtifacts.js +37 -27
- package/src/plan/buildGenerationPlan.js +24 -13
- package/test/core.test.js +116 -49
- package/test/createTargetRoleHandler.test.js +63 -14
- package/test/crudApplicationArtifacts.test.js +128 -23
- package/test/customFlowApplicationArtifacts.test.js +391 -84
- package/test/dynamicCrudFlowSchemas.test.js +74 -26
- package/test/dynamicRbacFlowSchemas.test.js +63 -20
- package/test/dynamicRelationshipFlowSchemas.test.js +65 -18
- package/test/functionYamlArtifact.test.js +67 -10
- package/test/intTestApi.test.js +9 -10
- package/test/publicApi.test.js +184 -44
- package/test/relationshipApplicationArtifacts.test.js +90 -19
- package/test/resourceArtifacts.test.js +183 -33
- package/docs/test.png +0 -0
- package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +0 -10
- package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +0 -11
- /package/docs/{test.mmd → TriggeredCacheFlow.mmd} +0 -0
|
@@ -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,26 +30,54 @@ 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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
{
|
|
45
|
-
flow,
|
|
46
|
-
step,
|
|
47
|
-
flowTag: upperFirst(flow.flowTag),
|
|
48
|
-
stepName: upperFirst(step.stepName)
|
|
49
|
-
}
|
|
50
|
-
]
|
|
51
|
-
: []
|
|
37
|
+
const hasTriggerFlowTypes =
|
|
38
|
+
Array.isArray(flow.triggerFlowTypes) && flow.triggerFlowTypes.length > 0;
|
|
39
|
+
const steps = flow.flowSteps ?? [];
|
|
40
|
+
const hasCheckStep = steps.some(
|
|
41
|
+
(step) =>
|
|
42
|
+
typeof step?.stepName === 'string' &&
|
|
43
|
+
step.stepName.toLowerCase().includes('checktrigger')
|
|
52
44
|
);
|
|
45
|
+
|
|
46
|
+
const result = steps.flatMap((step) => {
|
|
47
|
+
if (
|
|
48
|
+
typeof step?.stepName !== 'string' ||
|
|
49
|
+
step.stepName === '' ||
|
|
50
|
+
step.stepName.toLowerCase() === 'start' ||
|
|
51
|
+
!Array.isArray(step.event) ||
|
|
52
|
+
!step.event.includes('extTopic')
|
|
53
|
+
) {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
const isCheckStep = step.stepName.toLowerCase().includes('checktrigger');
|
|
57
|
+
if (isCheckStep && !hasTriggerFlowTypes) {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
return [
|
|
61
|
+
{
|
|
62
|
+
flow,
|
|
63
|
+
step,
|
|
64
|
+
flowTag: upperFirst(flow.flowTag),
|
|
65
|
+
stepName: upperFirst(step.stepName)
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
if (hasTriggerFlowTypes && !hasCheckStep) {
|
|
71
|
+
const defaultStepName = 'CheckTriggerFlows';
|
|
72
|
+
result.push({
|
|
73
|
+
flow,
|
|
74
|
+
step: { stepName: defaultStepName, event: ['extTopic'] },
|
|
75
|
+
flowTag: upperFirst(flow.flowTag),
|
|
76
|
+
stepName: defaultStepName
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return result;
|
|
53
81
|
});
|
|
54
82
|
}
|
|
55
83
|
|
|
@@ -57,11 +85,11 @@ export function flowDsqSteps(flows) {
|
|
|
57
85
|
if (!Array.isArray(flows)) {
|
|
58
86
|
throw new TypeError('flows must be an array');
|
|
59
87
|
}
|
|
60
|
-
return flows.flatMap(flow => {
|
|
88
|
+
return flows.flatMap((flow) => {
|
|
61
89
|
if (typeof flow?.flowTag !== 'string' || flow.flowTag === '') {
|
|
62
90
|
return [];
|
|
63
91
|
}
|
|
64
|
-
return (flow.flowSteps ?? []).flatMap(step =>
|
|
92
|
+
return (flow.flowSteps ?? []).flatMap((step) =>
|
|
65
93
|
typeof step?.stepName === 'string' &&
|
|
66
94
|
step.stepName !== '' &&
|
|
67
95
|
step.stepName.toLowerCase() !== 'start' &&
|
|
@@ -85,7 +113,7 @@ export function generatedOwnTopicFlows(flows) {
|
|
|
85
113
|
throw new TypeError('flows must be an array');
|
|
86
114
|
}
|
|
87
115
|
return flows.filter(
|
|
88
|
-
flow =>
|
|
116
|
+
(flow) =>
|
|
89
117
|
typeof flow?.flowTag === 'string' &&
|
|
90
118
|
flow.flowTag !== '' &&
|
|
91
119
|
flow.generatedCodeConfig &&
|
|
@@ -103,7 +131,7 @@ export function triggerCacheFlows(flows) {
|
|
|
103
131
|
throw new TypeError('flows must be an array');
|
|
104
132
|
}
|
|
105
133
|
return flows.filter(
|
|
106
|
-
flow =>
|
|
134
|
+
(flow) =>
|
|
107
135
|
typeof flow?.flowTag === 'string' &&
|
|
108
136
|
flow.flowTag !== '' &&
|
|
109
137
|
flow.statusType === 'triggerCache'
|
|
@@ -112,10 +140,22 @@ export function triggerCacheFlows(flows) {
|
|
|
112
140
|
|
|
113
141
|
export function triggerCacheQueueNames(flow) {
|
|
114
142
|
const tag = upperFirst(flow.flowTag);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
143
|
+
const queues = [`TriggerCache${tag}HdrDsq`];
|
|
144
|
+
if (
|
|
145
|
+
Array.isArray(flow.triggerFlowTypes) &&
|
|
146
|
+
flow.triggerFlowTypes.length > 0
|
|
147
|
+
) {
|
|
148
|
+
const customCheckStep = (flow.flowSteps ?? []).find(
|
|
149
|
+
(s) =>
|
|
150
|
+
typeof s?.stepName === 'string' &&
|
|
151
|
+
s.stepName.toLowerCase().includes('checktrigger')
|
|
152
|
+
);
|
|
153
|
+
const checkStepName = customCheckStep
|
|
154
|
+
? upperFirst(customCheckStep.stepName).startsWith(tag)
|
|
155
|
+
? upperFirst(customCheckStep.stepName)
|
|
156
|
+
: `${tag}${upperFirst(customCheckStep.stepName)}`
|
|
157
|
+
: `${tag}CheckTriggerFlows`;
|
|
158
|
+
queues.push(`${checkStepName}HdrSqs`);
|
|
159
|
+
}
|
|
160
|
+
return queues;
|
|
121
161
|
}
|