@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.
Files changed (128) hide show
  1. package/.prettierrc +11 -0
  2. package/package.json +16 -12
  3. package/scripts/format-ejs.js +104 -0
  4. package/src/compile/compileProject.js +40 -9
  5. package/src/compile/loadSchemas.js +120 -11
  6. package/src/emit/crud/emitCrudApplicationArtifacts.js +188 -41
  7. package/src/emit/crud/emitDynamicCrudFlowSchemas.js +34 -18
  8. package/src/emit/crud/generateCrudApplicationArtifacts.js +14 -6
  9. package/src/emit/crud/generateDynamicCrudFlowSchemas.js +4 -1
  10. package/src/emit/crud/templates/CreateEndpoint_Main.ejs +296 -105
  11. package/src/emit/crud/templates/DeleteEndpoint_Main.ejs +222 -144
  12. package/src/emit/crud/templates/FlowEndpointBeforeLogical_Main.ejs +22 -6
  13. package/src/emit/crud/templates/FlowEndpointComplete_Main.ejs +134 -43
  14. package/src/emit/crud/templates/FlowEndpoint_HdrWbs.ejs +51 -31
  15. package/src/emit/crud/templates/FlowHandler_HdrApi.ejs +53 -45
  16. package/src/emit/crud/templates/FlowHandler_HdrInv.ejs +28 -26
  17. package/src/emit/crud/templates/FlowHandler_HdrSqs.ejs +15 -11
  18. package/src/emit/crud/templates/FlowMain_Wbs.ejs +53 -38
  19. package/src/emit/crud/templates/GetEndpoint_Main.ejs +6 -3
  20. package/src/emit/crud/templates/GetRangeEndpoint_Main.ejs +2 -2
  21. package/src/emit/crud/templates/UpdateEndpoint_Main.ejs +402 -249
  22. package/src/emit/custom/customFlows.js +68 -28
  23. package/src/emit/custom/emitCustomFlowApplicationArtifacts.js +520 -123
  24. package/src/emit/custom/generateCustomFlowApplicationArtifacts.js +28 -8
  25. package/src/emit/custom/templates/FlowEndpoint_Main.ejs +48 -36
  26. package/src/emit/custom/templates/FlowStep_Main.ejs +7 -9
  27. package/src/emit/custom/templates/s3/ConfirmReserved_HdrSqs.ejs +59 -54
  28. package/src/emit/custom/templates/s3/ConfirmReserved_Main.ejs +33 -23
  29. package/src/emit/custom/templates/s3/CreateObject_HdrWbs.ejs +30 -23
  30. package/src/emit/custom/templates/s3/CreateObject_Main.ejs +56 -39
  31. package/src/emit/custom/templates/s3/CreatePreSignUrl_HdrSqs.ejs +56 -51
  32. package/src/emit/custom/templates/s3/CreatePreSignUrl_Main.ejs +112 -75
  33. package/src/emit/custom/templates/s3/FlowHandler_HdrS3.ejs +14 -9
  34. package/src/emit/custom/templates/s3/ProcessS3File_Main.ejs +11 -8
  35. package/src/emit/custom/templates/s3/ReservedLimit_HdrSqs.ejs +65 -56
  36. package/src/emit/custom/templates/s3/ReservedLimit_Main.ejs +74 -52
  37. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_HdrSqs.ejs +58 -14
  38. package/src/emit/custom/templates/triggerCache/CheckTriggerCache_Main.ejs +12 -17
  39. package/src/emit/custom/templates/triggerCache/TriggerCacheComplete_Main.ejs +20 -13
  40. package/src/emit/custom/templates/triggerCache/TriggerCache_Main.ejs +4 -1
  41. package/src/emit/function/functionYamlArtifact.js +272 -79
  42. package/src/emit/function/templates/ApiFunction_Yaml.ejs +7 -0
  43. package/src/emit/function/templates/EventBridgeFunction_Yaml.ejs +6 -0
  44. package/src/emit/function/templates/InvFunction_Yaml.ejs +5 -0
  45. package/src/emit/function/templates/S3Function_Yaml.ejs +16 -0
  46. package/src/emit/function/templates/SqsFunction_Yaml.ejs +10 -0
  47. package/src/emit/function/templates/WbsFunction_Yaml.ejs +10 -0
  48. package/src/emit/rbac/emitDynamicRbacFlowSchemas.js +40 -29
  49. package/src/emit/rbac/emitRbacApplicationArtifacts.js +171 -72
  50. package/src/emit/rbac/generateCreateTargetRoleHandler.js +6 -4
  51. package/src/emit/rbac/generateDynamicRbacFlowSchemas.js +8 -2
  52. package/src/emit/rbac/rbacFlowTag.js +3 -1
  53. package/src/emit/rbac/templates/CreateTargetRole_HdrSqs.ejs +41 -18
  54. package/src/emit/rbac/templates/CreateTargetRole_Main.ejs +23 -3
  55. package/src/emit/rbac/templates/ListRbac_HdrApi.ejs +27 -5
  56. package/src/emit/rbac/templates/ListRbac_HdrSqs.ejs +41 -8
  57. package/src/emit/rbac/templates/ListRbac_Main.ejs +26 -6
  58. package/src/emit/rbac/templates/RbacMutation_Main.ejs +23 -3
  59. package/src/emit/rbac/templates/UserRbacFlow_HdrSqs.ejs +46 -0
  60. package/src/emit/rbac/templates/UserRbacFlow_Main.ejs +152 -33
  61. package/src/emit/rbac/templates/UserRoleMutation_Main.ejs +24 -4
  62. package/src/emit/relationship/emitDynamicRelationshipFlowSchemas.js +26 -11
  63. package/src/emit/relationship/emitRelationshipApplicationArtifacts.js +179 -37
  64. package/src/emit/relationship/generateDynamicRelationshipFlowSchemas.js +8 -2
  65. package/src/emit/relationship/generateRelationshipApplicationArtifacts.js +15 -6
  66. package/src/emit/relationship/templates/ChangeRelationshipComplete_Main.ejs +64 -37
  67. package/src/emit/relationship/templates/ChangeRelationship_Main.ejs +258 -142
  68. package/src/emit/relationship/templates/CreateRelationshipComplete_Main.ejs +68 -43
  69. package/src/emit/relationship/templates/CreateRelationship_Main.ejs +315 -171
  70. package/src/emit/relationship/templates/DeleteRelationshipComplete_Main.ejs +67 -41
  71. package/src/emit/relationship/templates/DeleteRelationship_Main.ejs +226 -115
  72. package/src/emit/relationship/templates/FlowHandler_HdrApi.ejs +41 -33
  73. package/src/emit/relationship/templates/FlowHandler_HdrDsq.ejs +15 -11
  74. package/src/emit/relationship/templates/FlowHandler_HdrInv.ejs +28 -26
  75. package/src/emit/relationship/templates/FlowHandler_HdrSqs.ejs +15 -11
  76. package/src/emit/relationship/templates/GetRelationshipComplete_Main.ejs +46 -26
  77. package/src/emit/relationship/templates/GetRelationship_Main.ejs +233 -126
  78. package/src/emit/relationship/templates/MoveRelationshipComplete_Main.ejs +72 -44
  79. package/src/emit/relationship/templates/MoveRelationship_Main.ejs +266 -150
  80. package/src/emit/relationship/templates/UpdateRelationshipComplete_Main.ejs +74 -45
  81. package/src/emit/relationship/templates/UpdateRelationship_Main.ejs +285 -152
  82. package/src/emit/resource/emitResourceArtifacts.js +274 -105
  83. package/src/emit/resource/generateResourceArtifacts.js +15 -6
  84. package/src/emit/resource/templates/GeneratedLambdaRoleServiceConfig.ejs +139 -0
  85. package/src/emit/resource/templates/S3Bucket_Yaml.ejs +19 -0
  86. package/src/emit/resource/templates/S3Subscription_Yaml.ejs +7 -0
  87. package/src/emit/resource/templates/WebSocketSubscription_Yaml.ejs +7 -0
  88. package/src/emit/system/emitSystemWebSocketArtifacts.js +61 -165
  89. package/src/emit/system/templates/WebSocketComplete_HdrSqs.ejs +32 -0
  90. package/src/emit/system/templates/WebSocketComplete_Main.ejs +46 -0
  91. package/src/emit/system/templates/WebSocketComplete_Yaml.ejs +19 -0
  92. package/src/emit/system/templates/WebSocketConnect.ejs +25 -0
  93. package/src/emit/system/templates/WebSocketConnect_Yaml.ejs +11 -0
  94. package/src/generate.js +141 -34
  95. package/src/generateIntTest.js +76 -28
  96. package/src/generateResourceIntTest.js +35 -12
  97. package/src/generateResources/IntTest/generateResources/generateResources.js +5 -2
  98. package/src/generateResources/IntTest/generateResources/templateResources.ejs +18 -30
  99. package/src/generateResources/IntTest/generateTests/events/events.js +1 -1
  100. package/src/generateResources/IntTest/generateTests/events/templateEvents.ejs +13 -10
  101. package/src/generateResources/IntTest/generateTests/generateTemplate.js +2 -2
  102. package/src/generateResources/IntTest/generateTests/pathIntTest/pathIntTest.js +2 -1
  103. package/src/generateResources/IntTest/generateTests/pathIntTest/template.ejs +1 -3
  104. package/src/generateResources/IntTest/generateTests/tests/templateTests.ejs +1 -1
  105. package/src/generateResources/IntTest/generateTests/tests/tests.js +7 -3
  106. package/src/generateResources/IntTest/libs/{libs.js → IntTestGenerateLib.js} +34 -23
  107. package/src/generateResources/IntTest/upload/uploadIntTest.js +33 -19
  108. package/src/intTestGeneratorShared.js +15 -10
  109. package/src/output/commitArtifacts.js +99 -39
  110. package/src/output/mergeHooks.js +24 -10
  111. package/src/output/validateArtifacts.js +37 -27
  112. package/src/plan/buildGenerationPlan.js +24 -13
  113. package/test/core.test.js +116 -49
  114. package/test/createTargetRoleHandler.test.js +63 -14
  115. package/test/crudApplicationArtifacts.test.js +128 -23
  116. package/test/customFlowApplicationArtifacts.test.js +391 -84
  117. package/test/dynamicCrudFlowSchemas.test.js +74 -26
  118. package/test/dynamicRbacFlowSchemas.test.js +63 -20
  119. package/test/dynamicRelationshipFlowSchemas.test.js +65 -18
  120. package/test/functionYamlArtifact.test.js +67 -10
  121. package/test/intTestApi.test.js +9 -10
  122. package/test/publicApi.test.js +184 -44
  123. package/test/relationshipApplicationArtifacts.test.js +90 -19
  124. package/test/resourceArtifacts.test.js +183 -33
  125. package/docs/test.png +0 -0
  126. package/src/emit/rbac/templates/UserRbacFlow_HdrInv.ejs +0 -10
  127. package/src/emit/relationship/dynamicRelationshipFlowSchemaTemplate.js +0 -11
  128. /package/docs/{test.mmd → TriggeredCacheFlow.mmd} +0 -0
@@ -18,18 +18,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18
18
  import { objectHash as hash } from '@izara_project/izara-shared-core';
19
19
 
20
20
  import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
21
- import snsSharedLib from "@izara_project/izara-core-library-sns";
22
- import dynamodbSharedLib from "@izara_project/izara-core-library-dynamodb";
23
- import asyncFlowSharedLib from "@izara_project/izara-core-library-asynchronous-flow";
24
-
25
- import { sns } from "@izara_project/izara-core-library-external-request";
26
- import { utils, consts } from '@izara_project/izara-core-library-service-schemas';
21
+ import snsSharedLib from '@izara_project/izara-core-library-sns';
22
+ import dynamodbSharedLib from '@izara_project/izara-core-library-dynamodb';
23
+ import asyncFlowSharedLib from '@izara_project/izara-core-library-asynchronous-flow';
24
+
25
+ import { sns } from '@izara_project/izara-core-library-external-request';
26
+ import {
27
+ utils,
28
+ consts
29
+ } from '@izara_project/izara-core-library-service-schemas';
27
30
  const { createLinkTypeId } = utils;
28
31
 
29
- const {
30
- TOPIC_NAME_GENERATE_CODE,
31
- PREFIX
32
- } = consts;
32
+ const { TOPIC_NAME_GENERATE_CODE, PREFIX } = consts;
33
33
 
34
34
  //(<optionalRequire>)
35
35
  //(</optionalRequire>)
@@ -40,22 +40,25 @@ export default async function updateRelationshipComplete(
40
40
  status,
41
41
  errorsFound,
42
42
  graphServiceTag,
43
- passBackProperties = {},
43
+ passBackProperties = {}
44
44
  // callingFlowConfig = {}
45
45
  ) {
46
46
  try {
47
- _izContext.logger.debug("Function:updateRelationshipComplete", {
47
+ _izContext.logger.debug('Function:updateRelationshipComplete', {
48
48
  returnValue: returnValue,
49
49
  status: status,
50
50
  errorsFound: errorsFound,
51
51
  graphServiceTag: graphServiceTag,
52
- passBackProperties: passBackProperties,
52
+ passBackProperties: passBackProperties
53
53
  // callingFlowConfig: callingFlowConfig
54
54
  });
55
55
 
56
56
  let linkTypeId;
57
57
  // start create awaitingStepId
58
- if (returnValue.requestParams.hasOwnProperty("secondObject") && Object.values(returnValue.requestParams.secondObject.objType).length > 0) {
58
+ if (
59
+ returnValue.requestParams.hasOwnProperty('secondObject') &&
60
+ Object.values(returnValue.requestParams.secondObject.objType).length > 0
61
+ ) {
59
62
  linkTypeId = createLinkTypeId(
60
63
  _izContext,
61
64
  returnValue.requestParams.firstObject.objType,
@@ -66,41 +69,44 @@ export default async function updateRelationshipComplete(
66
69
  } else {
67
70
  linkTypeId = hash({
68
71
  firstObject: returnValue.requestParams.firstObject.objType,
69
- relType: returnValue.requestParams.relType,
72
+ relType: returnValue.requestParams.relType
70
73
  });
71
- };
74
+ }
72
75
 
73
76
  let awaitingStepId = asyncFlowSharedLib.createAwaitingStepId(
74
77
  hash({
75
78
  linkTypeId,
76
79
  relId: returnValue.requestParams.relId,
77
- relationshipProperties: returnValue.requestParams.relationshipProperties,
80
+ relationshipProperties:
81
+ returnValue.requestParams.relationshipProperties,
78
82
  graphServiceTag: graphServiceTag
79
83
  }), // hash id
80
84
  PREFIX.updateRel // prefix, use constant further
81
- )
82
-
85
+ );
83
86
 
84
87
  let updateRelPendingObjects = await dynamodbSharedLib.query(
85
88
  _izContext,
86
- await dynamodbSharedLib.tableName(_izContext, "AwaitingMultipleSteps"),
89
+ await dynamodbSharedLib.tableName(_izContext, 'AwaitingMultipleSteps'),
87
90
  {
88
91
  awaitingStepId: awaitingStepId
89
92
  }
90
93
  );
91
- _izContext.logger.debug("record of updateRelPendingObjects ::", updateRelPendingObjects);
92
-
93
-
94
+ _izContext.logger.debug(
95
+ 'record of updateRelPendingObjects ::',
96
+ updateRelPendingObjects
97
+ );
94
98
 
95
99
  await Promise.all(
96
100
  updateRelPendingObjects.Items.map(async ({ pendingStepId }) => {
97
- if (await asyncFlowSharedLib.checkAllAwaitingStepsFinished(
98
- _izContext,
99
- pendingStepId, // task waiting
100
- awaitingStepId,
101
- errorsFound
102
- )) {
103
- _izContext.logger.debug("finished all awaitingStep");
101
+ if (
102
+ await asyncFlowSharedLib.checkAllAwaitingStepsFinished(
103
+ _izContext,
104
+ pendingStepId, // task waiting
105
+ awaitingStepId,
106
+ errorsFound
107
+ )
108
+ ) {
109
+ _izContext.logger.debug('finished all awaitingStep');
104
110
 
105
111
  let updateCompleteMsg = {
106
112
  relId: returnValue.requestParams.relId,
@@ -111,20 +117,45 @@ export default async function updateRelationshipComplete(
111
117
  //(</inUpdateCompleteMsg>)
112
118
  };
113
119
 
114
- updateCompleteMsg = callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(passBackProperties, updateCompleteMsg);
115
- _izContext.logger.debug("After addCallingFlowToSnsResponseMessageObject", updateCompleteMsg);
116
-
117
- let messageAttributes = callingFlowSharedLib.addParentPassBackCallingFlowToSnsResponseMessageAttributes(passBackProperties, {});
118
- _izContext.logger.debug("After addCallingFlowToSnsResponseMessageAttributes", updateCompleteMsg);
120
+ updateCompleteMsg =
121
+ callingFlowSharedLib.addParentPassBackPropertiesToSnsResponseMessageObject(
122
+ passBackProperties,
123
+ updateCompleteMsg
124
+ );
125
+ _izContext.logger.debug(
126
+ 'After addCallingFlowToSnsResponseMessageObject',
127
+ updateCompleteMsg
128
+ );
129
+
130
+ let messageAttributes =
131
+ callingFlowSharedLib.addParentPassBackCallingFlowToSnsResponseMessageAttributes(
132
+ passBackProperties,
133
+ {}
134
+ );
135
+ _izContext.logger.debug(
136
+ 'After addCallingFlowToSnsResponseMessageAttributes',
137
+ updateCompleteMsg
138
+ );
119
139
 
120
140
  let sendMessageToOutUpdateRelationshipComplete = {
121
141
  Message: JSON.stringify(updateCompleteMsg),
122
- MessageAttributes: sns.createStringMessageAttributes(_izContext, messageAttributes),
123
- TopicArn: await snsSharedLib.snsTopicArnByFlowSchema(_izContext, TOPIC_NAME_GENERATE_CODE.outUpdateRelComplete)
142
+ MessageAttributes: sns.createStringMessageAttributes(
143
+ _izContext,
144
+ messageAttributes
145
+ ),
146
+ TopicArn: snsSharedLib.snsTopicArnByFlowSchema(
147
+ _izContext,
148
+ TOPIC_NAME_GENERATE_CODE.outUpdateRelComplete
149
+ )
124
150
  };
125
- _izContext.logger.debug("Send message to OutUpdateRelationshipComplete :::>", sendMessageToOutUpdateRelationshipComplete);
126
- await sns.publishAsync(_izContext, sendMessageToOutUpdateRelationshipComplete);
127
-
151
+ _izContext.logger.debug(
152
+ 'Send message to OutUpdateRelationshipComplete :::>',
153
+ sendMessageToOutUpdateRelationshipComplete
154
+ );
155
+ await sns.publishAsync(
156
+ _izContext,
157
+ sendMessageToOutUpdateRelationshipComplete
158
+ );
128
159
  } // check pendingStepId finished
129
160
 
130
161
  // remove awaitingMultipleStep after finished
@@ -137,15 +168,13 @@ export default async function updateRelationshipComplete(
137
168
  }) // end per pendingStep
138
169
  );
139
170
 
140
-
141
171
  return {
142
172
  returnValue,
143
173
  status,
144
174
  errorsFound
145
- }
146
-
175
+ };
147
176
  } catch (err) {
148
- _izContext.logger.error('error updateRelationshipComplete:', err)
149
- throw (err)
177
+ _izContext.logger.error('error updateRelationshipComplete:', err);
178
+ throw err;
150
179
  }
151
180
  }