@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.
- package/package.json +1 -1
- package/scripts/format-ejs.js +36 -32
- package/src/compile/compileProject.js +26 -10
- package/src/compile/loadSchemas.js +122 -59
- package/src/emit/coreFunction/emitCoreFunctionArtifacts.js +163 -0
- package/src/emit/coreFunction/templates/CoreFunction_Yaml.ejs +38 -0
- package/src/emit/coreFunction/templates/CoreResource_Yaml.ejs +235 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataDynamo_HdrInv.ejs +16 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataDynamo_Main.ejs +38 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataGraphData_HdrInv.ejs +16 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataGraphData_Main.ejs +32 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_HdrInv.ejs +16 -0
- package/src/emit/coreFunction/templates/GenerateSeedDataGraphSchema_Main.ejs +71 -0
- package/src/emit/coreFunction/templates/GeneratedGraphNodeSchemas.ejs +47 -0
- package/src/emit/coreFunction/templates/GeneratedGraphRelSchemas.ejs +27 -0
- package/src/emit/coreFunction/templates/GeneratedTableConfigs.ejs +34 -0
- package/src/emit/coreFunction/templates/InitialSetupConfig.ejs +108 -0
- package/src/emit/coreFunction/templates/InitialSetup_HdrInv.ejs +12 -0
- package/src/emit/coreFunction/templates/InitialSetup_Main.ejs +51 -0
- package/src/emit/coreFunction/templates/RemoveSeedDataDynamo_HdrInv.ejs +16 -0
- package/src/emit/coreFunction/templates/RemoveSeedDataDynamo_Main.ejs +31 -0
- package/src/emit/coreFunction/templates/UploadSchema_HdrInv.ejs +37 -0
- package/src/emit/coreFunction/templates/UploadSchema_Main.ejs +52 -0
- package/src/emit/crud/emitCrudApplicationArtifacts.js +194 -41
- package/src/emit/crud/emitDynamicCrudFlowSchemas.js +34 -17
- package/src/emit/crud/generateCrudApplicationArtifacts.js +14 -6
- package/src/emit/crud/generateDynamicCrudFlowSchemas.js +4 -1
- package/src/emit/crud/templates/CreateEndpoint_Main.ejs +1 -1
- package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +1 -1
- package/src/emit/crud/templates/GetEndpoint_Main.ejs +2 -2
- package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +1 -1
- package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +1 -1
- package/src/emit/custom/customFlows.js +23 -13
- package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +535 -114
- package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +28 -8
- package/src/emit/custom/templates/FlowEndpoint_Main.ejs +2 -2
- package/src/emit/custom/templates/FlowStep_Main.ejs +1 -1
- package/src/emit/custom/templates/s3/CreateObject_Main.ejs +1 -1
- package/src/emit/custom/templates/s3/FlowHandler_HdrS3.ejs +2 -2
- package/src/emit/custom/templates/s3/ReservedLimit_HdrSqs.ejs +1 -1
- package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +1 -1
- package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +4 -4
- package/src/emit/function/functionYamlArtifact.js +273 -97
- 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 +28 -30
- package/src/emit/rbac/emitRbacApplicationArtifacts.js +6 -6
- 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/UserRbacFlow_Main.ejs +1 -1
- package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +26 -10
- package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +189 -37
- package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +8 -2
- package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +15 -6
- package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +1 -1
- package/src/emit/relationship/templates/CreateRelationship_Main.ejs +1 -1
- package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +1 -1
- package/src/emit/relationship/templates/GetRelationship_Main.ejs +1 -1
- package/src/emit/relationship/templates/MoveRelationship_Main.ejs +1 -1
- package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +1 -1
- package/src/emit/resource/emitResourceArtifacts.js +249 -123
- package/src/emit/resource/generateResourceArtifacts.js +15 -6
- package/src/emit/resource/templates/DynamoDBTable_Yaml.ejs +18 -18
- package/src/emit/resource/templates/FlowOut_Yaml.ejs +5 -5
- package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +10 -9
- package/src/emit/resource/templates/ResourceBeforeLogicalYaml.ejs +44 -44
- package/src/emit/resource/templates/ResourceSqsYaml.ejs +36 -36
- package/src/emit/resource/templates/ResourceYaml.ejs +48 -48
- package/src/emit/resource/templates/S3Subscription_Yaml.ejs +7 -0
- package/src/emit/resource/templates/SharedResource_Yaml.ejs +11 -11
- package/src/emit/resource/templates/SystemDynamoDB_Yaml.ejs +122 -105
- package/src/emit/resource/templates/WebSocketSubscription_Yaml.ejs +7 -0
- package/src/emit/shared/templates/FindData_HdrSqs.ejs +120 -0
- package/src/emit/shared/templates/FindData_Main.ejs +345 -0
- package/src/emit/{crud → shared}/templates/FlowHandler_HdrApi.ejs +1 -1
- package/src/emit/{relationship → shared}/templates/FlowHandler_HdrDsq.ejs +4 -4
- package/src/emit/{crud → shared}/templates/FlowHandler_HdrInv.ejs +1 -1
- package/src/emit/{crud → shared}/templates/FlowHandler_HdrSqs.ejs +4 -4
- package/src/emit/shared/templates/PaginateProcessLogical_HdrDsq.ejs +162 -0
- package/src/emit/shared/templates/PaginateProcessLogical_HdrSqs.ejs +140 -0
- package/src/emit/shared/templates/PaginateProcessLogical_Main.ejs +268 -0
- package/src/emit/{relationship/templates/FlowHandler_HdrSqs.ejs → shared/templates/ProcessLogical_HdrSqs.ejs} +40 -55
- package/src/emit/shared/templates/ProcessLogical_Main.ejs +448 -0
- package/src/emit/system/emitSystemFindDataArtifacts.js +266 -0
- package/src/emit/system/emitSystemWebSocketArtifacts.js +61 -165
- package/src/emit/system/templates/WebSocketComplete_HdrSqs.ejs +48 -0
- package/src/emit/system/templates/WebSocketComplete_Main.ejs +91 -0
- package/src/emit/system/templates/WebSocketComplete_Yaml.ejs +19 -0
- package/src/emit/system/templates/WebSocketConnect.ejs +45 -0
- package/src/emit/system/templates/WebSocketConnect_Yaml.ejs +11 -0
- package/src/generate.js +166 -36
- 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 +34 -21
- package/src/output/validateArtifacts.js +37 -27
- package/src/plan/buildGenerationPlan.js +24 -13
- package/test/core.test.js +117 -58
- package/test/createTargetRoleHandler.test.js +1 -1
- package/test/crudApplicationArtifacts.test.js +132 -31
- package/test/customFlowApplicationArtifacts.test.js +353 -71
- package/test/dynamicCrudFlowSchemas.test.js +74 -26
- package/test/dynamicRbacFlowSchemas.test.js +61 -14
- 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 +178 -36
- package/test/relationshipApplicationArtifacts.test.js +90 -19
- package/test/resourceArtifacts.test.js +173 -33
- package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +0 -11
- package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +0 -59
- package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +0 -47
|
@@ -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 =
|
|
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
|
) {
|
|
@@ -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 =
|
|
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 =>
|
|
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 (
|
|
144
|
+
if (
|
|
145
|
+
Array.isArray(flow.triggerFlowTypes) &&
|
|
146
|
+
flow.triggerFlowTypes.length > 0
|
|
147
|
+
) {
|
|
142
148
|
const customCheckStep = (flow.flowSteps ?? []).find(
|
|
143
|
-
s =>
|
|
149
|
+
(s) =>
|
|
150
|
+
typeof s?.stepName === 'string' &&
|
|
151
|
+
s.stepName.toLowerCase().includes('checktrigger')
|
|
144
152
|
);
|
|
145
153
|
const checkStepName = customCheckStep
|
|
146
|
-
?
|
|
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
|
}
|