@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
@@ -16,17 +16,17 @@ along with this program. If not, see
16
16
  <http: //www.gnu.org/licenses />.
17
17
  */
18
18
 
19
-
20
-
21
19
  import { getObjectSchema } from '@izara_project/izara-core-library-service-schemas';
22
-
23
20
  import snsSharedLib from '@izara_project/izara-core-library-sns';
24
21
  import callingFlowSharedLib from '@izara_project/izara-core-library-calling-flow';
25
22
  import lambdaSharedLib from '@izara_project/izara-core-library-lambda';
26
- import { sns, webSocket } from '@izara_project/izara-core-library-external-request';
23
+ import {
24
+ sns,
25
+ webSocket
26
+ } from '@izara_project/izara-core-library-external-request';
27
27
 
28
28
  import { NoRetryError } from '@izara_project/izara-core-library-core';
29
- import { consts as coreConsts } from "@izara_project/izara-middleware";
29
+ import { consts as coreConsts } from '@izara_project/izara-middleware';
30
30
  const { postToConnection } = webSocket;
31
31
 
32
32
  //(<optionalRequire>)
@@ -51,58 +51,73 @@ export default async function <%- typeof functionName !== 'undefined' ? function
51
51
  requestParams,
52
52
  //(<additionalParams>)
53
53
  //(</additionalParams>)
54
- callingFlowConfig = {},
54
+ callingFlowConfig = {}
55
55
  ) {
56
-
57
56
  try {
58
- _izContext.logger.debug("<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> _izContext", _izContext)
59
- _izContext.logger.debug("<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> requestParams", requestParams)
60
- _izContext.logger.debug("<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> callingFlowConfig", callingFlowConfig)
61
-
62
- let flowSchema = await getObjectSchema.getFlowSchemaS3WithCache(_izContext, {
63
- flowTag: "<%- flowTag %>",
64
- serviceTag: process.env.iz_serviceTag,
65
- })
66
-
67
- _izContext.logger.debug("flowSchema", flowSchema);
57
+ _izContext.logger.debug('<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> _izContext', _izContext);
58
+ _izContext.logger.debug('<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> requestParams', requestParams);
59
+ _izContext.logger.debug(
60
+ '<%- typeof functionName !== 'undefined' ? functionName : upperCaseFlowTag %> callingFlowConfig',
61
+ callingFlowConfig
62
+ );
63
+
64
+ let flowSchema = await getObjectSchema.getFlowSchemaS3WithCache(
65
+ _izContext,
66
+ {
67
+ flowTag: '<%- flowTag %>',
68
+ serviceTag: process.env.iz_serviceTag
69
+ }
70
+ );
71
+
72
+ _izContext.logger.debug('flowSchema', flowSchema);
68
73
 
69
74
  if (flowSchema.initiateBy === 'user') {
70
75
  _izContext.correlationIds.set(coreConsts.USER_AGENT, 'webSocket');
71
- };
76
+ }
72
77
 
73
78
  let connectionId = _izContext.correlationIds.get(coreConsts.CONNECTION_ID);
74
79
 
75
80
  if (!flowSchema) {
76
- await postToConnection({
77
- message: {
78
- error: `flowTag not found ${requestParams.action}`
79
- }
80
- }, connectionId)
81
+ await postToConnection(
82
+ {
83
+ message: {
84
+ error: `flowTag not found ${requestParams.action}`
85
+ }
86
+ },
87
+ connectionId
88
+ );
81
89
  throw new NoRetryError(`flowTag not found ${requestParams.action}`);
82
90
  }
83
91
 
84
- let messageObject = requestParams
92
+ let messageObject = requestParams;
85
93
 
86
94
  // create callingFlow
87
- messageObject = callingFlowSharedLib.addCallingFlowToSnsRequestMessageObject(
88
- messageObject,
89
- callingFlowSharedLib.addParentCallingFlowConfig(
90
- callingFlowConfig,
91
- callingFlowSharedLib.createCallingFlowConfig(
92
- await lambdaSharedLib.lambdaFunctionName(_izContext, "WebSocketComplete"), {}
95
+ messageObject =
96
+ callingFlowSharedLib.addCallingFlowToSnsRequestMessageObject(
97
+ messageObject,
98
+ callingFlowSharedLib.addParentCallingFlowConfig(
99
+ callingFlowConfig,
100
+ callingFlowSharedLib.createCallingFlowConfig(
101
+ await lambdaSharedLib.lambdaFunctionName(
102
+ _izContext,
103
+ 'WebSocketComplete'
104
+ ),
105
+ {}
106
+ )
93
107
  )
94
- )
95
- )
108
+ );
96
109
 
97
110
  let sendMessageToEndpoint = {
98
111
  Message: JSON.stringify(messageObject),
99
- TopicArn: await snsSharedLib.snsTopicArnByFlowSchema(_izContext, "<%- upperCaseFlowTag %>_In")
100
- }
101
- _izContext.logger.debug("sendMessageToEndpoint", sendMessageToEndpoint);
112
+ TopicArn: snsSharedLib.snsTopicArnByFlowSchema(
113
+ _izContext,
114
+ '<%- upperCaseFlowTag %>_In'
115
+ )
116
+ };
117
+ _izContext.logger.debug('sendMessageToEndpoint', sendMessageToEndpoint);
102
118
  await sns.publishAsync(_izContext, sendMessageToEndpoint);
103
-
104
119
  } catch (err) {
105
- _izContext.logger.error('error WebSocketInvoke: ', err)
106
- throw (err)
120
+ _izContext.logger.error('error WebSocketInvoke: ', err);
121
+ throw err;
107
122
  }
108
123
  }
@@ -81,7 +81,10 @@ export default async function <%- flowTag %>(
81
81
  const objType = createObjType(requestParams.objectType);
82
82
 
83
83
  // ── Load schema ───────────────────────────────────────────────────────────
84
- const objectSchema = await getObjectSchemaCombineFieldNamesWithCache(_izContext, objType);
84
+ const objectSchema = await getObjectSchemaCombineFieldNamesWithCache(
85
+ _izContext,
86
+ objType
87
+ );
85
88
  _izContext.logger.debug('objectSchema:', objectSchema);
86
89
 
87
90
  // ── Build getDataDetails ──────────────────────────────────────────────────
@@ -91,7 +94,7 @@ export default async function <%- flowTag %>(
91
94
  // ── Process storage resources ─────────────────────────────────────────────
92
95
  const getResults = [];
93
96
  const recordStatus = { foundAtLeastOne: false, missingAtLeastOne: false };
94
- let lastObjInstanceFull = undefined;
97
+ let lastObjInstanceFull = null;
95
98
 
96
99
  await Promise.all(
97
100
  Object.entries(getDataDetails).map(async ([, getDataDetail]) => {
@@ -208,7 +211,7 @@ export default async function <%- flowTag %>(
208
211
  callingFlowConfig,
209
212
  {}
210
213
  );
211
- const topicArn = await snsSharedLib.snsTopicArnByFlowSchema(
214
+ const topicArn = snsSharedLib.snsTopicArnByFlowSchema(
212
215
  _izContext,
213
216
  TOPIC_NAME_GENERATE_CODE.outGetNodeComplete
214
217
  );
@@ -64,7 +64,7 @@ export default async function <%- mainFileName %>(
64
64
  _izContext.logger.debug('getDataDetails:', getDataDetails);
65
65
 
66
66
  const { pk, sk, itemNum } = requestParams;
67
-
67
+
68
68
  if (!pk) {
69
69
  throw new Error('Partition key (pk) is required for getRange');
70
70
  }
@@ -110,7 +110,7 @@ export default async function <%- mainFileName %>(
110
110
  queryElements
111
111
  );
112
112
  _izContext.logger.debug('dataFromDynamoDb:', dataFromDynamoDb);
113
-
113
+
114
114
  queryResult = dataFromDynamoDb;
115
115
 
116
116
  //(<afterGetRangeDynamoDb>)