@kumologica/sdk 3.0.0

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 (540) hide show
  1. package/README.md +1 -0
  2. package/bin/kl.js +3 -0
  3. package/cli/cli.js +6 -0
  4. package/cli/commands/build-commands/aws.js +49 -0
  5. package/cli/commands/build-commands/azure.js +43 -0
  6. package/cli/commands/build-commands/kumohub.js +7 -0
  7. package/cli/commands/build.js +6 -0
  8. package/cli/commands/create.js +32 -0
  9. package/cli/commands/deploy-commands/kumohub.js +114 -0
  10. package/cli/commands/deploy.js +6 -0
  11. package/cli/commands/doc-commands/html.js +61 -0
  12. package/cli/commands/doc.js +6 -0
  13. package/cli/commands/export-commands/cloudformation.js +338 -0
  14. package/cli/commands/export-commands/serverless.js +164 -0
  15. package/cli/commands/export-commands/terraform-commands/aws.js +193 -0
  16. package/cli/commands/export-commands/terraform-commands/azure.js +148 -0
  17. package/cli/commands/export-commands/terraform.js +6 -0
  18. package/cli/commands/export-commands/utils/validator.js +152 -0
  19. package/cli/commands/export.js +6 -0
  20. package/cli/commands/import-commands/mulesoft.js +61 -0
  21. package/cli/commands/import.js +6 -0
  22. package/cli/commands/open.js +46 -0
  23. package/cli/commands/test-utils/TestSuiteController.js +359 -0
  24. package/cli/commands/test-utils/TestSuiteController.test.js +171 -0
  25. package/cli/commands/test-utils/fixtures/example3-flow.json +148 -0
  26. package/cli/commands/test-utils/fixtures/package.json +6 -0
  27. package/cli/commands/test-utils/fixtures/s3-event.js +43 -0
  28. package/cli/commands/test-utils/util/output.js +14 -0
  29. package/cli/commands/test-utils/util/updates/index.js +17 -0
  30. package/cli/commands/test-utils/util/updates/pkg.js +13 -0
  31. package/cli/commands/test-utils/util/updates/templates/default-settings.js +209 -0
  32. package/cli/commands/test.js +66 -0
  33. package/cli/commands/utils.js +14 -0
  34. package/package.json +158 -0
  35. package/src/app/lib/aws/aws-profile.js +43 -0
  36. package/src/app/lib/aws/ca-alexa-api.js +29 -0
  37. package/src/app/lib/aws/ca-apigw-api.js +216 -0
  38. package/src/app/lib/aws/ca-cloudwatch-api.js +78 -0
  39. package/src/app/lib/aws/ca-codecommit-api.js +63 -0
  40. package/src/app/lib/aws/ca-dynamodb-api.js +27 -0
  41. package/src/app/lib/aws/ca-elb-api.js +44 -0
  42. package/src/app/lib/aws/ca-events-api.js +27 -0
  43. package/src/app/lib/aws/ca-iot-api.js +105 -0
  44. package/src/app/lib/aws/ca-s3-api.js +115 -0
  45. package/src/app/lib/aws/ca-sns-api.js +38 -0
  46. package/src/app/lib/aws/ca-sqs-api.js +51 -0
  47. package/src/app/lib/aws/cf.js +439 -0
  48. package/src/app/lib/aws/index.js +970 -0
  49. package/src/app/lib/aws/kl-iam-api.js +27 -0
  50. package/src/app/lib/aws/kl-rekognition-api.js +66 -0
  51. package/src/app/lib/aws/kl-ssm-api.js +24 -0
  52. package/src/app/lib/azure/index.js +80 -0
  53. package/src/app/lib/dependencies.js +50 -0
  54. package/src/app/lib/kumohub/index.js +201 -0
  55. package/src/app/lib/runtime-loader/index.js +42 -0
  56. package/src/app/lib/serverless/index.js +318 -0
  57. package/src/app/lib/stores/aws-cloud-config-store.js +35 -0
  58. package/src/app/lib/stores/azure-config-store.js +24 -0
  59. package/src/app/lib/stores/kumohub-config-store.js +24 -0
  60. package/src/app/lib/stores/project-info-config-store.js +26 -0
  61. package/src/app/lib/stores/settings-cloud-store.js +117 -0
  62. package/src/app/lib/stores/settings-cloud-store.spec.js +26 -0
  63. package/src/app/lib/stores/settings-network-store.js +119 -0
  64. package/src/app/lib/stores/settings-network-store.spec.js +27 -0
  65. package/src/app/lib/stores/store.js +97 -0
  66. package/src/app/lib/stores/test-config-store.js +26 -0
  67. package/src/app/lib/stores/user-preference-store.js +44 -0
  68. package/src/app/lib/utils/editor.js +98 -0
  69. package/src/app/lib/utils/fix-path.js +15 -0
  70. package/src/app/main-process/favicon.ico +0 -0
  71. package/src/app/main-process/main-window.js +209 -0
  72. package/src/app/main-process/menu.js +219 -0
  73. package/src/app/main-process/modal-home.js +118 -0
  74. package/src/app/main-process/modal-newproject.js +119 -0
  75. package/src/app/main-process/modal-nodelibrary.js +90 -0
  76. package/src/app/main-process/modal-welcome.js +114 -0
  77. package/src/app/main-process/runtime-manager.js +141 -0
  78. package/src/app/main.js +590 -0
  79. package/src/app/preload.js +633 -0
  80. package/src/app/ui/editor-api/lib/admin/context.js +42 -0
  81. package/src/app/ui/editor-api/lib/admin/flow.js +55 -0
  82. package/src/app/ui/editor-api/lib/admin/flows.js +53 -0
  83. package/src/app/ui/editor-api/lib/admin/index.js +155 -0
  84. package/src/app/ui/editor-api/lib/admin/nodes.js +164 -0
  85. package/src/app/ui/editor-api/lib/auth/clients.js +17 -0
  86. package/src/app/ui/editor-api/lib/auth/index.js +267 -0
  87. package/src/app/ui/editor-api/lib/auth/permissions.js +51 -0
  88. package/src/app/ui/editor-api/lib/auth/strategies.js +144 -0
  89. package/src/app/ui/editor-api/lib/auth/tokens.js +138 -0
  90. package/src/app/ui/editor-api/lib/auth/users.js +122 -0
  91. package/src/app/ui/editor-api/lib/editor/comms.js +247 -0
  92. package/src/app/ui/editor-api/lib/editor/credentials.js +22 -0
  93. package/src/app/ui/editor-api/lib/editor/index.js +234 -0
  94. package/src/app/ui/editor-api/lib/editor/library.js +69 -0
  95. package/src/app/ui/editor-api/lib/editor/locales.js +37 -0
  96. package/src/app/ui/editor-api/lib/editor/projects.js +497 -0
  97. package/src/app/ui/editor-api/lib/editor/settings.js +118 -0
  98. package/src/app/ui/editor-api/lib/editor/sshkeys.js +87 -0
  99. package/src/app/ui/editor-api/lib/editor/theme.js +184 -0
  100. package/src/app/ui/editor-api/lib/editor/ui.js +149 -0
  101. package/src/app/ui/editor-api/lib/index.js +149 -0
  102. package/src/app/ui/editor-api/lib/runner/index.js +81 -0
  103. package/src/app/ui/editor-api/lib/util.js +51 -0
  104. package/src/app/ui/editor-client/README.md +10 -0
  105. package/src/app/ui/editor-client/constants.js +5 -0
  106. package/src/app/ui/editor-client/index.js +3 -0
  107. package/src/app/ui/editor-client/public/favicon.ico +0 -0
  108. package/src/app/ui/editor-client/public/red/images/bolt.png +0 -0
  109. package/src/app/ui/editor-client/public/red/images/debugger/continue-full.png +0 -0
  110. package/src/app/ui/editor-client/public/red/images/debugger/continue-outline.png +0 -0
  111. package/src/app/ui/editor-client/public/red/images/debugger/pause.png +0 -0
  112. package/src/app/ui/editor-client/public/red/images/debugger/restart.png +0 -0
  113. package/src/app/ui/editor-client/public/red/images/debugger/stepover.png +0 -0
  114. package/src/app/ui/editor-client/public/red/images/debugger/stop.png +0 -0
  115. package/src/app/ui/editor-client/public/red/images/deploy-flows-o.png +0 -0
  116. package/src/app/ui/editor-client/public/red/images/deploy-flows.png +0 -0
  117. package/src/app/ui/editor-client/public/red/images/deploy-full-o.png +0 -0
  118. package/src/app/ui/editor-client/public/red/images/deploy-full.png +0 -0
  119. package/src/app/ui/editor-client/public/red/images/deploy-nodes-o.png +0 -0
  120. package/src/app/ui/editor-client/public/red/images/deploy-nodes.png +0 -0
  121. package/src/app/ui/editor-client/public/red/images/deploy-reload.png +0 -0
  122. package/src/app/ui/editor-client/public/red/images/grip.png +0 -0
  123. package/src/app/ui/editor-client/public/red/images/icons/arrow-in.png +0 -0
  124. package/src/app/ui/editor-client/public/red/images/icons/bolt.png +0 -0
  125. package/src/app/ui/editor-client/public/red/images/icons/node-changed.png +0 -0
  126. package/src/app/ui/editor-client/public/red/images/icons/node-error.png +0 -0
  127. package/src/app/ui/editor-client/public/red/images/icons/node-play.png +0 -0
  128. package/src/app/ui/editor-client/public/red/images/kumologica-app.png +0 -0
  129. package/src/app/ui/editor-client/public/red/images/node-red-256.png +0 -0
  130. package/src/app/ui/editor-client/public/red/images/node-red-icon-black.svg +9 -0
  131. package/src/app/ui/editor-client/public/red/images/node-red-icon.svg +33 -0
  132. package/src/app/ui/editor-client/public/red/images/node-red.png +0 -0
  133. package/src/app/ui/editor-client/public/red/images/pw_maze_white.png +0 -0
  134. package/src/app/ui/editor-client/public/red/images/spin.svg +41 -0
  135. package/src/app/ui/editor-client/public/red/images/spinner.gif +0 -0
  136. package/src/app/ui/editor-client/public/red/images/subflow_tab.png +0 -0
  137. package/src/app/ui/editor-client/public/red/images/test-icon.png +0 -0
  138. package/src/app/ui/editor-client/public/red/images/typedInput/09.png +0 -0
  139. package/src/app/ui/editor-client/public/red/images/typedInput/az.png +0 -0
  140. package/src/app/ui/editor-client/public/red/images/typedInput/bin.png +0 -0
  141. package/src/app/ui/editor-client/public/red/images/typedInput/bool.png +0 -0
  142. package/src/app/ui/editor-client/public/red/images/typedInput/env.png +0 -0
  143. package/src/app/ui/editor-client/public/red/images/typedInput/expr.png +0 -0
  144. package/src/app/ui/editor-client/public/red/images/typedInput/json.png +0 -0
  145. package/src/app/ui/editor-client/public/red/images/typedInput/re.png +0 -0
  146. package/src/app/ui/editor-client/public/red/keymap.json +54 -0
  147. package/src/app/ui/editor-client/public/red/main-modals.js +14 -0
  148. package/src/app/ui/editor-client/public/red/main-modals.min.js +16 -0
  149. package/src/app/ui/editor-client/public/red/main.js +10 -0
  150. package/src/app/ui/editor-client/public/red/main.min.js +16 -0
  151. package/src/app/ui/editor-client/public/red/red.js +44903 -0
  152. package/src/app/ui/editor-client/public/red/red.min.js +16 -0
  153. package/src/app/ui/editor-client/public/red/style.min.css +24 -0
  154. package/src/app/ui/editor-client/public/vendor/ace/LICENSE +24 -0
  155. package/src/app/ui/editor-client/public/vendor/ace/ace.js +17 -0
  156. package/src/app/ui/editor-client/public/vendor/ace/ext-language_tools.js +8 -0
  157. package/src/app/ui/editor-client/public/vendor/ace/ext-searchbox.js +8 -0
  158. package/src/app/ui/editor-client/public/vendor/ace/mode-css.js +8 -0
  159. package/src/app/ui/editor-client/public/vendor/ace/mode-handlebars.js +8 -0
  160. package/src/app/ui/editor-client/public/vendor/ace/mode-html.js +8 -0
  161. package/src/app/ui/editor-client/public/vendor/ace/mode-javascript.js +8 -0
  162. package/src/app/ui/editor-client/public/vendor/ace/mode-json.js +8 -0
  163. package/src/app/ui/editor-client/public/vendor/ace/mode-jsonata.js +1 -0
  164. package/src/app/ui/editor-client/public/vendor/ace/mode-markdown.js +8 -0
  165. package/src/app/ui/editor-client/public/vendor/ace/mode-properties.js +8 -0
  166. package/src/app/ui/editor-client/public/vendor/ace/mode-python.js +8 -0
  167. package/src/app/ui/editor-client/public/vendor/ace/mode-sql.js +8 -0
  168. package/src/app/ui/editor-client/public/vendor/ace/mode-swift.js +8 -0
  169. package/src/app/ui/editor-client/public/vendor/ace/mode-text.js +8 -0
  170. package/src/app/ui/editor-client/public/vendor/ace/mode-xml.js +8 -0
  171. package/src/app/ui/editor-client/public/vendor/ace/mode-yaml.js +8 -0
  172. package/src/app/ui/editor-client/public/vendor/ace/snippets/css.js +8 -0
  173. package/src/app/ui/editor-client/public/vendor/ace/snippets/handlebars.js +8 -0
  174. package/src/app/ui/editor-client/public/vendor/ace/snippets/html.js +8 -0
  175. package/src/app/ui/editor-client/public/vendor/ace/snippets/javascript.js +8 -0
  176. package/src/app/ui/editor-client/public/vendor/ace/snippets/json.js +8 -0
  177. package/src/app/ui/editor-client/public/vendor/ace/snippets/jsonata.js +1 -0
  178. package/src/app/ui/editor-client/public/vendor/ace/snippets/markdown.js +8 -0
  179. package/src/app/ui/editor-client/public/vendor/ace/snippets/properties.js +8 -0
  180. package/src/app/ui/editor-client/public/vendor/ace/snippets/python.js +8 -0
  181. package/src/app/ui/editor-client/public/vendor/ace/snippets/sql.js +8 -0
  182. package/src/app/ui/editor-client/public/vendor/ace/snippets/swift.js +8 -0
  183. package/src/app/ui/editor-client/public/vendor/ace/snippets/text.js +8 -0
  184. package/src/app/ui/editor-client/public/vendor/ace/snippets/xml.js +8 -0
  185. package/src/app/ui/editor-client/public/vendor/ace/snippets/yaml.js +8 -0
  186. package/src/app/ui/editor-client/public/vendor/ace/theme-chrome.js +8 -0
  187. package/src/app/ui/editor-client/public/vendor/ace/theme-tomorrow.js +8 -0
  188. package/src/app/ui/editor-client/public/vendor/ace/worker-css.js +1 -0
  189. package/src/app/ui/editor-client/public/vendor/ace/worker-html.js +1 -0
  190. package/src/app/ui/editor-client/public/vendor/ace/worker-javascript.js +1 -0
  191. package/src/app/ui/editor-client/public/vendor/ace/worker-json.js +1 -0
  192. package/src/app/ui/editor-client/public/vendor/ace/worker-jsonata.js +2140 -0
  193. package/src/app/ui/editor-client/public/vendor/ace/worker-xml.js +1 -0
  194. package/src/app/ui/editor-client/public/vendor/beautifyjs/beautify.min.js +1 -0
  195. package/src/app/ui/editor-client/public/vendor/bootstrap/css/bootstrap.min.css +9 -0
  196. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  197. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  198. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/active-line.js +72 -0
  199. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/coffeescript-lint.js +47 -0
  200. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-hint.js +157 -0
  201. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-lint.js +63 -0
  202. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/jshint.js +29591 -0
  203. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.css +73 -0
  204. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.js +252 -0
  205. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.css +36 -0
  206. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.js +460 -0
  207. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/sql-hint.js +304 -0
  208. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.css +350 -0
  209. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.js +9800 -0
  210. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/javascript.js +927 -0
  211. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/sql.js +494 -0
  212. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/base16-dark.css +38 -0
  213. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/monokai.css +42 -0
  214. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/solarized.css +168 -0
  215. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.css +43 -0
  216. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.js +87 -0
  217. package/src/app/ui/editor-client/public/vendor/easy-json-schema/index.js +88 -0
  218. package/src/app/ui/editor-client/public/vendor/font-awesome/css/font-awesome.min.css +4 -0
  219. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  220. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  221. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  222. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  223. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  224. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  225. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.eot +0 -0
  226. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.svg +2105 -0
  227. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.ttf +0 -0
  228. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff +0 -0
  229. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff2 +0 -0
  230. package/src/app/ui/editor-client/public/vendor/icofont/icofont.min.css +7 -0
  231. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  232. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  233. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  234. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  235. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  236. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  237. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  238. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  239. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  240. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  241. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  242. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  243. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  244. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  245. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +5 -0
  246. package/src/app/ui/editor-client/public/vendor/jsonata/jsonata.min.js +183 -0
  247. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.css +181 -0
  248. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.js +48 -0
  249. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.css +7 -0
  250. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.js +15 -0
  251. package/src/app/ui/editor-client/public/vendor/vendor.css +0 -0
  252. package/src/app/ui/editor-client/public/vendor/vendor.js +125 -0
  253. package/src/app/ui/editor-client/public/vendor/xterm/lib/xterm.js +2 -0
  254. package/src/app/ui/editor-client/src/ace/README.md +50 -0
  255. package/src/app/ui/editor-client/src/ace/mode/nrjavascript.js +35 -0
  256. package/src/app/ui/editor-client/src/ace/mode/nrjavascript_worker.js +189 -0
  257. package/src/app/ui/editor-client/src/favicon.ico +0 -0
  258. package/src/app/ui/editor-client/src/images/bolt.png +0 -0
  259. package/src/app/ui/editor-client/src/images/debugger/continue-full.png +0 -0
  260. package/src/app/ui/editor-client/src/images/debugger/continue-outline.png +0 -0
  261. package/src/app/ui/editor-client/src/images/debugger/pause.png +0 -0
  262. package/src/app/ui/editor-client/src/images/debugger/restart.png +0 -0
  263. package/src/app/ui/editor-client/src/images/debugger/stepover.png +0 -0
  264. package/src/app/ui/editor-client/src/images/debugger/stop.png +0 -0
  265. package/src/app/ui/editor-client/src/images/deploy-flows-o.png +0 -0
  266. package/src/app/ui/editor-client/src/images/deploy-flows.png +0 -0
  267. package/src/app/ui/editor-client/src/images/deploy-full-o.png +0 -0
  268. package/src/app/ui/editor-client/src/images/deploy-full.png +0 -0
  269. package/src/app/ui/editor-client/src/images/deploy-nodes-o.png +0 -0
  270. package/src/app/ui/editor-client/src/images/deploy-nodes.png +0 -0
  271. package/src/app/ui/editor-client/src/images/deploy-reload.png +0 -0
  272. package/src/app/ui/editor-client/src/images/grip.png +0 -0
  273. package/src/app/ui/editor-client/src/images/icons/arrow-in.png +0 -0
  274. package/src/app/ui/editor-client/src/images/icons/bolt.png +0 -0
  275. package/src/app/ui/editor-client/src/images/icons/node-changed.png +0 -0
  276. package/src/app/ui/editor-client/src/images/icons/node-error.png +0 -0
  277. package/src/app/ui/editor-client/src/images/icons/node-play.png +0 -0
  278. package/src/app/ui/editor-client/src/images/kumologica-app.png +0 -0
  279. package/src/app/ui/editor-client/src/images/node-red-256.png +0 -0
  280. package/src/app/ui/editor-client/src/images/node-red-icon-black.svg +9 -0
  281. package/src/app/ui/editor-client/src/images/node-red-icon.svg +33 -0
  282. package/src/app/ui/editor-client/src/images/node-red.png +0 -0
  283. package/src/app/ui/editor-client/src/images/pw_maze_white.png +0 -0
  284. package/src/app/ui/editor-client/src/images/spin.svg +41 -0
  285. package/src/app/ui/editor-client/src/images/spinner.gif +0 -0
  286. package/src/app/ui/editor-client/src/images/subflow_tab.png +0 -0
  287. package/src/app/ui/editor-client/src/images/test-icon.png +0 -0
  288. package/src/app/ui/editor-client/src/images/typedInput/09.png +0 -0
  289. package/src/app/ui/editor-client/src/images/typedInput/az.png +0 -0
  290. package/src/app/ui/editor-client/src/images/typedInput/bin.png +0 -0
  291. package/src/app/ui/editor-client/src/images/typedInput/bool.png +0 -0
  292. package/src/app/ui/editor-client/src/images/typedInput/env.png +0 -0
  293. package/src/app/ui/editor-client/src/images/typedInput/expr.png +0 -0
  294. package/src/app/ui/editor-client/src/images/typedInput/json.png +0 -0
  295. package/src/app/ui/editor-client/src/images/typedInput/re.png +0 -0
  296. package/src/app/ui/editor-client/src/js/comms.js +174 -0
  297. package/src/app/ui/editor-client/src/js/events.js +39 -0
  298. package/src/app/ui/editor-client/src/js/font-awesome.js +818 -0
  299. package/src/app/ui/editor-client/src/js/history.js +337 -0
  300. package/src/app/ui/editor-client/src/js/i18n.js +81 -0
  301. package/src/app/ui/editor-client/src/js/jquery-addons.js +21 -0
  302. package/src/app/ui/editor-client/src/js/keymap.json +54 -0
  303. package/src/app/ui/editor-client/src/js/main-modals.js +14 -0
  304. package/src/app/ui/editor-client/src/js/main.js +10 -0
  305. package/src/app/ui/editor-client/src/js/modals/modal-home.js +162 -0
  306. package/src/app/ui/editor-client/src/js/modals/modal-new-project.js +86 -0
  307. package/src/app/ui/editor-client/src/js/modals/modal-node-library.js +255 -0
  308. package/src/app/ui/editor-client/src/js/modals/modal-welcome.js +102 -0
  309. package/src/app/ui/editor-client/src/js/nodes.js +1736 -0
  310. package/src/app/ui/editor-client/src/js/red.js +704 -0
  311. package/src/app/ui/editor-client/src/js/settings.js +275 -0
  312. package/src/app/ui/editor-client/src/js/text/bidi.js +116 -0
  313. package/src/app/ui/editor-client/src/js/text/format.js +1316 -0
  314. package/src/app/ui/editor-client/src/js/ui/actions.js +39 -0
  315. package/src/app/ui/editor-client/src/js/ui/clipboard.js +510 -0
  316. package/src/app/ui/editor-client/src/js/ui/common/checkboxSet.js +117 -0
  317. package/src/app/ui/editor-client/src/js/ui/common/editableList.js +322 -0
  318. package/src/app/ui/editor-client/src/js/ui/common/menu.js +277 -0
  319. package/src/app/ui/editor-client/src/js/ui/common/panels.js +104 -0
  320. package/src/app/ui/editor-client/src/js/ui/common/popover.js +268 -0
  321. package/src/app/ui/editor-client/src/js/ui/common/searchBox.js +98 -0
  322. package/src/app/ui/editor-client/src/js/ui/common/stack.js +184 -0
  323. package/src/app/ui/editor-client/src/js/ui/common/tabs.js +730 -0
  324. package/src/app/ui/editor-client/src/js/ui/common/treeList.js +170 -0
  325. package/src/app/ui/editor-client/src/js/ui/common/typedInput.js +819 -0
  326. package/src/app/ui/editor-client/src/js/ui/common/typedInputLong.js +829 -0
  327. package/src/app/ui/editor-client/src/js/ui/deploy.js +422 -0
  328. package/src/app/ui/editor-client/src/js/ui/diff.js +2225 -0
  329. package/src/app/ui/editor-client/src/js/ui/editor.js +3020 -0
  330. package/src/app/ui/editor-client/src/js/ui/editors/buffer.js +195 -0
  331. package/src/app/ui/editor-client/src/js/ui/editors/expression.js +627 -0
  332. package/src/app/ui/editor-client/src/js/ui/editors/js.js +89 -0
  333. package/src/app/ui/editor-client/src/js/ui/editors/json.js +107 -0
  334. package/src/app/ui/editor-client/src/js/ui/editors/markdown.js +267 -0
  335. package/src/app/ui/editor-client/src/js/ui/editors/string.js +75 -0
  336. package/src/app/ui/editor-client/src/js/ui/event-log.js +107 -0
  337. package/src/app/ui/editor-client/src/js/ui/header.js +372 -0
  338. package/src/app/ui/editor-client/src/js/ui/keyboard.js +565 -0
  339. package/src/app/ui/editor-client/src/js/ui/library.js +570 -0
  340. package/src/app/ui/editor-client/src/js/ui/logviewer.js +116 -0
  341. package/src/app/ui/editor-client/src/js/ui/notifications.js +282 -0
  342. package/src/app/ui/editor-client/src/js/ui/palette-editor.js +1061 -0
  343. package/src/app/ui/editor-client/src/js/ui/palette.js +788 -0
  344. package/src/app/ui/editor-client/src/js/ui/project-info.js +232 -0
  345. package/src/app/ui/editor-client/src/js/ui/projects/projectSettings.js +1651 -0
  346. package/src/app/ui/editor-client/src/js/ui/projects/projectUserSettings.js +404 -0
  347. package/src/app/ui/editor-client/src/js/ui/projects/projects.js +2395 -0
  348. package/src/app/ui/editor-client/src/js/ui/projects/tab-versionControl.js +1383 -0
  349. package/src/app/ui/editor-client/src/js/ui/search.js +366 -0
  350. package/src/app/ui/editor-client/src/js/ui/sidebar.js +409 -0
  351. package/src/app/ui/editor-client/src/js/ui/state.js +14 -0
  352. package/src/app/ui/editor-client/src/js/ui/subflow.js +748 -0
  353. package/src/app/ui/editor-client/src/js/ui/tab-awsDeploy.js +1427 -0
  354. package/src/app/ui/editor-client/src/js/ui/tab-azure.js +852 -0
  355. package/src/app/ui/editor-client/src/js/ui/tab-config.js +452 -0
  356. package/src/app/ui/editor-client/src/js/ui/tab-context.js +406 -0
  357. package/src/app/ui/editor-client/src/js/ui/tab-info.js +661 -0
  358. package/src/app/ui/editor-client/src/js/ui/tab-kumohub.js +800 -0
  359. package/src/app/ui/editor-client/src/js/ui/tab-nodeInfo.js +60 -0
  360. package/src/app/ui/editor-client/src/js/ui/tab-test.js +915 -0
  361. package/src/app/ui/editor-client/src/js/ui/terminal.js +240 -0
  362. package/src/app/ui/editor-client/src/js/ui/touch/radialMenu.js +170 -0
  363. package/src/app/ui/editor-client/src/js/ui/tray.js +411 -0
  364. package/src/app/ui/editor-client/src/js/ui/typeSearch.js +411 -0
  365. package/src/app/ui/editor-client/src/js/ui/ui-settings.js +422 -0
  366. package/src/app/ui/editor-client/src/js/ui/update-panel.js +84 -0
  367. package/src/app/ui/editor-client/src/js/ui/userSettings.js +673 -0
  368. package/src/app/ui/editor-client/src/js/ui/utils.js +1287 -0
  369. package/src/app/ui/editor-client/src/js/ui/view-navigator.js +169 -0
  370. package/src/app/ui/editor-client/src/js/ui/view-tools.js +123 -0
  371. package/src/app/ui/editor-client/src/js/ui/view.js +5333 -0
  372. package/src/app/ui/editor-client/src/js/ui/workspaces.js +498 -0
  373. package/src/app/ui/editor-client/src/js/user.js +282 -0
  374. package/src/app/ui/editor-client/src/js/validators.js +54 -0
  375. package/src/app/ui/editor-client/src/kumologica-app.png +0 -0
  376. package/src/app/ui/editor-client/src/sass/ace.scss +29 -0
  377. package/src/app/ui/editor-client/src/sass/bootstrap.scss +21 -0
  378. package/src/app/ui/editor-client/src/sass/colors.scss +76 -0
  379. package/src/app/ui/editor-client/src/sass/debug.scss +383 -0
  380. package/src/app/ui/editor-client/src/sass/diff.scss +695 -0
  381. package/src/app/ui/editor-client/src/sass/dragdrop.scss +37 -0
  382. package/src/app/ui/editor-client/src/sass/dropdownMenu.scss +93 -0
  383. package/src/app/ui/editor-client/src/sass/editor.scss +683 -0
  384. package/src/app/ui/editor-client/src/sass/flow.scss +330 -0
  385. package/src/app/ui/editor-client/src/sass/forms.scss +1093 -0
  386. package/src/app/ui/editor-client/src/sass/header.scss +502 -0
  387. package/src/app/ui/editor-client/src/sass/jquery.scss +152 -0
  388. package/src/app/ui/editor-client/src/sass/keyboard.scss +136 -0
  389. package/src/app/ui/editor-client/src/sass/library.scss +54 -0
  390. package/src/app/ui/editor-client/src/sass/mixins.scss +283 -0
  391. package/src/app/ui/editor-client/src/sass/modals/modalHome.scss +138 -0
  392. package/src/app/ui/editor-client/src/sass/modals/modalNewProject.scss +96 -0
  393. package/src/app/ui/editor-client/src/sass/modals/modalNodeLibrary.scss +131 -0
  394. package/src/app/ui/editor-client/src/sass/modals/modalWelcome.scss +102 -0
  395. package/src/app/ui/editor-client/src/sass/notifications.scss +118 -0
  396. package/src/app/ui/editor-client/src/sass/palette-editor.scss +275 -0
  397. package/src/app/ui/editor-client/src/sass/palette.scss +279 -0
  398. package/src/app/ui/editor-client/src/sass/panels.scss +61 -0
  399. package/src/app/ui/editor-client/src/sass/popover.scss +166 -0
  400. package/src/app/ui/editor-client/src/sass/project-info.scss +74 -0
  401. package/src/app/ui/editor-client/src/sass/projects.scss +875 -0
  402. package/src/app/ui/editor-client/src/sass/search.scss +201 -0
  403. package/src/app/ui/editor-client/src/sass/sidebar.scss +201 -0
  404. package/src/app/ui/editor-client/src/sass/style.scss +170 -0
  405. package/src/app/ui/editor-client/src/sass/tab-azure.scss +68 -0
  406. package/src/app/ui/editor-client/src/sass/tab-cloud.scss +67 -0
  407. package/src/app/ui/editor-client/src/sass/tab-config.scss +100 -0
  408. package/src/app/ui/editor-client/src/sass/tab-context.scss +54 -0
  409. package/src/app/ui/editor-client/src/sass/tab-info.scss +307 -0
  410. package/src/app/ui/editor-client/src/sass/tab-kumohub.scss +68 -0
  411. package/src/app/ui/editor-client/src/sass/tab-test.scss +257 -0
  412. package/src/app/ui/editor-client/src/sass/tabs.scss +395 -0
  413. package/src/app/ui/editor-client/src/sass/terminal.scss +246 -0
  414. package/src/app/ui/editor-client/src/sass/ui/common/checkboxSet.scss +29 -0
  415. package/src/app/ui/editor-client/src/sass/ui/common/editableList.scss +81 -0
  416. package/src/app/ui/editor-client/src/sass/ui/common/nodeList.scss +65 -0
  417. package/src/app/ui/editor-client/src/sass/ui/common/searchBox.scss +77 -0
  418. package/src/app/ui/editor-client/src/sass/ui/common/stack.scss +26 -0
  419. package/src/app/ui/editor-client/src/sass/ui/common/treeList.scss +108 -0
  420. package/src/app/ui/editor-client/src/sass/ui/common/typedInput.scss +181 -0
  421. package/src/app/ui/editor-client/src/sass/ui/common/typedInputLong.scss +183 -0
  422. package/src/app/ui/editor-client/src/sass/ui-settings.scss +119 -0
  423. package/src/app/ui/editor-client/src/sass/update-panel.scss +18 -0
  424. package/src/app/ui/editor-client/src/sass/userSettings.scss +93 -0
  425. package/src/app/ui/editor-client/src/sass/widgetStyle.scss +23 -0
  426. package/src/app/ui/editor-client/src/sass/workspace.scss +123 -0
  427. package/src/app/ui/editor-client/src/sass/workspaceToolbar.scss +85 -0
  428. package/src/app/ui/editor-client/src/vendor/ace/LICENSE +24 -0
  429. package/src/app/ui/editor-client/src/vendor/ace/ace.js +17 -0
  430. package/src/app/ui/editor-client/src/vendor/ace/ext-language_tools.js +8 -0
  431. package/src/app/ui/editor-client/src/vendor/ace/ext-searchbox.js +8 -0
  432. package/src/app/ui/editor-client/src/vendor/ace/mode-css.js +8 -0
  433. package/src/app/ui/editor-client/src/vendor/ace/mode-handlebars.js +8 -0
  434. package/src/app/ui/editor-client/src/vendor/ace/mode-html.js +8 -0
  435. package/src/app/ui/editor-client/src/vendor/ace/mode-javascript.js +8 -0
  436. package/src/app/ui/editor-client/src/vendor/ace/mode-json.js +8 -0
  437. package/src/app/ui/editor-client/src/vendor/ace/mode-markdown.js +8 -0
  438. package/src/app/ui/editor-client/src/vendor/ace/mode-properties.js +8 -0
  439. package/src/app/ui/editor-client/src/vendor/ace/mode-python.js +8 -0
  440. package/src/app/ui/editor-client/src/vendor/ace/mode-sql.js +8 -0
  441. package/src/app/ui/editor-client/src/vendor/ace/mode-swift.js +8 -0
  442. package/src/app/ui/editor-client/src/vendor/ace/mode-text.js +8 -0
  443. package/src/app/ui/editor-client/src/vendor/ace/mode-xml.js +8 -0
  444. package/src/app/ui/editor-client/src/vendor/ace/mode-yaml.js +8 -0
  445. package/src/app/ui/editor-client/src/vendor/ace/snippets/css.js +8 -0
  446. package/src/app/ui/editor-client/src/vendor/ace/snippets/handlebars.js +8 -0
  447. package/src/app/ui/editor-client/src/vendor/ace/snippets/html.js +8 -0
  448. package/src/app/ui/editor-client/src/vendor/ace/snippets/javascript.js +8 -0
  449. package/src/app/ui/editor-client/src/vendor/ace/snippets/json.js +8 -0
  450. package/src/app/ui/editor-client/src/vendor/ace/snippets/markdown.js +8 -0
  451. package/src/app/ui/editor-client/src/vendor/ace/snippets/properties.js +8 -0
  452. package/src/app/ui/editor-client/src/vendor/ace/snippets/python.js +8 -0
  453. package/src/app/ui/editor-client/src/vendor/ace/snippets/sql.js +8 -0
  454. package/src/app/ui/editor-client/src/vendor/ace/snippets/swift.js +8 -0
  455. package/src/app/ui/editor-client/src/vendor/ace/snippets/text.js +8 -0
  456. package/src/app/ui/editor-client/src/vendor/ace/snippets/xml.js +8 -0
  457. package/src/app/ui/editor-client/src/vendor/ace/snippets/yaml.js +8 -0
  458. package/src/app/ui/editor-client/src/vendor/ace/theme-chrome.js +8 -0
  459. package/src/app/ui/editor-client/src/vendor/ace/theme-tomorrow.js +8 -0
  460. package/src/app/ui/editor-client/src/vendor/ace/worker-css.js +1 -0
  461. package/src/app/ui/editor-client/src/vendor/ace/worker-html.js +1 -0
  462. package/src/app/ui/editor-client/src/vendor/ace/worker-javascript.js +1 -0
  463. package/src/app/ui/editor-client/src/vendor/ace/worker-json.js +1 -0
  464. package/src/app/ui/editor-client/src/vendor/ace/worker-xml.js +1 -0
  465. package/src/app/ui/editor-client/src/vendor/beautifyjs/beautify.min.js +1 -0
  466. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.css +5406 -0
  467. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.min.css +9 -0
  468. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  469. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  470. package/src/app/ui/editor-client/src/vendor/bootstrap/js/bootstrap.min.js +6 -0
  471. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/active-line.js +72 -0
  472. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/coffeescript-lint.js +47 -0
  473. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-hint.js +157 -0
  474. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-lint.js +63 -0
  475. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/jshint.js +29591 -0
  476. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.css +73 -0
  477. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.js +252 -0
  478. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.css +36 -0
  479. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.js +460 -0
  480. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/sql-hint.js +304 -0
  481. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.css +350 -0
  482. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.js +9800 -0
  483. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/javascript.js +927 -0
  484. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/sql.js +494 -0
  485. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/base16-dark.css +38 -0
  486. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/monokai.css +42 -0
  487. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/solarized.css +168 -0
  488. package/src/app/ui/editor-client/src/vendor/d3/d3.v3.min.js +4 -0
  489. package/src/app/ui/editor-client/src/vendor/d3/d3.v4.min.js +2 -0
  490. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.css +43 -0
  491. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.js +87 -0
  492. package/src/app/ui/editor-client/src/vendor/easy-json-schema/index.js +88 -0
  493. package/src/app/ui/editor-client/src/vendor/font-awesome/css/font-awesome.min.css +4 -0
  494. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  495. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  496. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  497. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  498. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  499. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  500. package/src/app/ui/editor-client/src/vendor/i18next/i18next.min.js +5 -0
  501. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.eot +0 -0
  502. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.svg +2105 -0
  503. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.ttf +0 -0
  504. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff +0 -0
  505. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff2 +0 -0
  506. package/src/app/ui/editor-client/src/vendor/icofont/icofont.min.css +7 -0
  507. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  508. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  509. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  510. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  511. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  512. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  513. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  514. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  515. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  516. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  517. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  518. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  519. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  520. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  521. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +5 -0
  522. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-1.11.3.min.js +5 -0
  523. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js +7 -0
  524. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery.ui.touch-punch.min.js +11 -0
  525. package/src/app/ui/editor-client/src/vendor/jsonata/formatter.js +183 -0
  526. package/src/app/ui/editor-client/src/vendor/jsonata/mode-jsonata.js +134 -0
  527. package/src/app/ui/editor-client/src/vendor/jsonata/snippets-jsonata.js +11 -0
  528. package/src/app/ui/editor-client/src/vendor/jsonata/worker-jsonata.js +2140 -0
  529. package/src/app/ui/editor-client/src/vendor/marked/marked.min.js +6 -0
  530. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.css +181 -0
  531. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.js +48 -0
  532. package/src/app/ui/editor-client/templates/index.mst +314 -0
  533. package/src/app/ui/editor-client/templates/modals/modalHome.mst +107 -0
  534. package/src/app/ui/editor-client/templates/modals/modalNewProject.mst +104 -0
  535. package/src/app/ui/editor-client/templates/modals/modalNodeLibrary.mst +72 -0
  536. package/src/app/ui/editor-client/templates/modals/modalWelcome.mst +111 -0
  537. package/src/assets/eula.txt +170 -0
  538. package/src/assets/icon.icns +0 -0
  539. package/src/assets/kumologica-app.png +0 -0
  540. package/src/assets/license_en.txt +170 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # kumologica-designer
package/bin/kl.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ require('../cli/cli.js');
package/cli/cli.js ADDED
@@ -0,0 +1,6 @@
1
+ require('yargs/yargs')(process.argv.slice(2))
2
+ .commandDir('commands')
3
+ .demandCommand()
4
+ .help()
5
+ // .epilog("copyright 2021")
6
+ .argv
@@ -0,0 +1,49 @@
1
+ exports.command = 'aws';
2
+ exports.desc = `Builds aws lambda binaries:
3
+ * generates aws lambda artefacts
4
+ * runs npm install
5
+ * creates zip file
6
+
7
+ Documentation:
8
+ https://docs.kumologica.com/docs/references/cli/BuildAws.html`;
9
+
10
+ exports.builder = {
11
+ "flow-file-name": {
12
+ describe: "The name of kumologica flow file.\n Auto search if not provided.\n ",
13
+ type: 'string',
14
+ alias: 'f',
15
+ nargs: 1
16
+ },
17
+ "project-directory": {
18
+ describe: "The root directory of project.\n Current working directory if not provided.\n",
19
+ type: 'string',
20
+ alias: 'd',
21
+ nargs: 1
22
+ },
23
+ "zip-file-name": {
24
+ describe: "The name of zip file to be created",
25
+ type: 'string',
26
+ default: 'lambda.zip',
27
+ alias: 'z',
28
+ nargs: 1
29
+ }
30
+ }
31
+
32
+ function display(argv) {
33
+ console.log(`\nBuilding aws lambda artefacts with following parameters: \n`);
34
+ console.log('project-directory: %s', argv["project-directory"]||'');
35
+ console.log('flow-file-name: %s', argv["flow-file-name"]||'');
36
+ console.log('zip-file-name: %s', argv["zip-file-name"]||'');
37
+ }
38
+
39
+ exports.handler = function (argv) {
40
+ display(argv);
41
+
42
+ try {
43
+ const { build } = require('@kumologica/builder');
44
+ build('aws', argv);
45
+ } catch (e) {
46
+ console.log(`${e.message}`);
47
+ process.exit(1);
48
+ }
49
+ }
@@ -0,0 +1,43 @@
1
+ exports.command = 'azure';
2
+ exports.desc = `Generate azure function artefacts and build zip file`;
3
+
4
+ exports.builder = {
5
+ "flow-file-name": {
6
+ describe: "The name of kumologica flow file.\n Auto search if not provided.",
7
+ type: 'string',
8
+ alias: 'f',
9
+ nargs: 1
10
+ },
11
+ "project-directory": {
12
+ describe: "The root directory of project.\n Process directory if not provided.",
13
+ type: 'string',
14
+ alias: 'd',
15
+ nargs: 1
16
+ },
17
+ "zip-file-name": {
18
+ describe: "The name of zip file name",
19
+ type: 'string',
20
+ default: 'azure.zip',
21
+ alias: 'z',
22
+ nargs: 1
23
+ }
24
+ }
25
+
26
+ function display(argv) {
27
+ console.log(`\nBuilding azure function artefacts with following parameters: \n`);
28
+ console.log('project-directory: %s', argv["project-directory"] || '');
29
+ console.log('flow-file-name: %s', argv["flow-file-name"] || '');
30
+ console.log('zip-file-name: %s', argv["zip-file-name"] || '');
31
+ }
32
+
33
+ exports.handler = function (argv) {
34
+ display(argv);
35
+
36
+ try {
37
+ const { build } = require('@kumologica/builder');
38
+ build('azure', argv);
39
+ } catch (e) {
40
+ console.log(`${e.message}`);
41
+ process.exit(1);
42
+ }
43
+ }
@@ -0,0 +1,7 @@
1
+ exports.command = 'kumohub '
2
+ exports.desc = 'Build kumohub artefacrs remote named <name> for repo at url <url>'
3
+ exports.builder = {}
4
+
5
+ exports.handler = function (argv) {
6
+ console.log('adding remote %s at url %s', argv.name, argv.url)
7
+ }
@@ -0,0 +1,6 @@
1
+ exports.command = 'build <provider>'
2
+ exports.desc = 'Build kumologica flow binaries'
3
+ exports.builder = function (yargs) {
4
+ return yargs.commandDir('build-commands')
5
+ }
6
+ exports.handler = function (argv) {}
@@ -0,0 +1,32 @@
1
+ const pathlib = require('path');
2
+ const { logNotice, logError } = require('./utils');
3
+ const { codegen } = require('@kumologica/builder');
4
+
5
+ exports.command = "create"
6
+ exports.builder = (yargs) => {
7
+ yargs.option(`path`, {
8
+ describe: "The path where project will be created.",
9
+ demandOption: "The path is required.",
10
+ type: 'string',
11
+ alias: 'p',
12
+ nargs: 1
13
+ });
14
+ }
15
+
16
+ exports.desc = 'Create a kumologica project'
17
+ exports.handler = ({ path }) => {
18
+ const { version } = require('../../package.json');
19
+ try{
20
+ codegen.generateBoilerplateProject({
21
+ basePath :process.cwd(),
22
+ projectName: path,
23
+ runtimeVersion: version });
24
+
25
+ logNotice(`Successfully created project: ${ pathlib.join(process.cwd(), path)}`);
26
+ } catch(e) {
27
+ logError(e.toString());
28
+ process.exit(1);
29
+ }
30
+
31
+
32
+ }
@@ -0,0 +1,114 @@
1
+ exports.command = 'kumohub';
2
+ exports.desc = `Deploy kumologica flow to kumohub.io account`;
3
+
4
+ exports.builder = {
5
+ "flow-file-name": {
6
+ describe: "The name of kumologica flow file.\n Auto search if not provided.\n",
7
+ type: 'string',
8
+ alias: 'f',
9
+ nargs: 1
10
+ },
11
+ "service-name": {
12
+ describe: "The name of service.\n flow file name without extension if not provided.\n Service name will be sanitized to be compatible with aws lambda name restrictions.\n",
13
+ type: 'string',
14
+ nargs: 1
15
+ },
16
+ "project-directory": {
17
+ describe: "The root directory of project.\n Process working directory if not provided.\n",
18
+ type: 'string',
19
+ alias: 'd',
20
+ nargs: 1
21
+ },
22
+ "environment": {
23
+ describe: `Environment variables, JSON Syntax: '{"Variables": {"key": "value", ...}}'\n`,
24
+ type: 'string',
25
+ nargs: 1
26
+ },
27
+ "account": {
28
+ describe: "The name of kumohub.io account\n",
29
+ type: 'string',
30
+ required: true,
31
+ alias: 'a',
32
+ nargs: 1
33
+ },
34
+ "username": {
35
+ describe: "The username to login to kumohub.io account\n",
36
+ type: 'string',
37
+ required: true,
38
+ alias: 'u',
39
+ nargs: 1
40
+ },
41
+ "password": {
42
+ describe: "The username password to login to kumohub.io account\n",
43
+ type: 'string',
44
+ required: true,
45
+ alias: 'p',
46
+ nargs: 1
47
+ },
48
+ "workspace": {
49
+ describe: "The name of the workspace where flow to be deployed.\n",
50
+ type: 'string',
51
+ required: true,
52
+ alias: 'w',
53
+ nargs: 1
54
+ },
55
+ "stage": {
56
+ describe: "The name of the stage where flow to be deployed\n",
57
+ type: 'string',
58
+ required: true,
59
+ alias: 's',
60
+ nargs: 1
61
+ },
62
+ "policy": {
63
+ describe: "The name of security policy to assign to the flow.\n",
64
+ type: 'string',
65
+ required: true,
66
+ default: "Public",
67
+ nargs: 1
68
+ },
69
+ "memory": {
70
+ describe: "The amount of memory (MB) to be allocated to the flow. 128 MB to 10240 MB\n",
71
+ type: 'string',
72
+ nargs: 1,
73
+ default: "512"
74
+ },
75
+ "timeout": {
76
+ describe: "The amount of seconds flow should be run before timing out. Up to 900 seconds\n",
77
+ type: 'string',
78
+ nargs: 1,
79
+ default: "30"
80
+ },
81
+ "description": {
82
+ describe: "The description of function.\n",
83
+ type: 'string',
84
+ nargs: 1
85
+ }
86
+ }
87
+
88
+ function display(argv) {
89
+ console.log(`\nDeploying flow to kumohub.io with following parameters: \n`);
90
+ console.log('project-directory: %s', argv["project-directory"] || '');
91
+ console.log('flow-file-name: %s', argv["flow-file-name"] || '');
92
+ console.log('service-name: %s', argv["service-name"] || '');
93
+ console.log('environment vars: %s', argv["environment"] || '');
94
+ console.log('username: %s', argv["username"] || '');
95
+ console.log('password: %s', argv["password"]? "provided": "missing");
96
+ console.log('workspace: %s', argv["workspace"] || '');
97
+ console.log('stage: %s', argv["stage"] || '');
98
+ console.log('policy: %s', argv["policy"] || '');
99
+ console.log('memory: %s', argv["memory"] || '');
100
+ console.log('timeout: %s', argv["timeout"] || '');
101
+ console.log('description: %s', argv["description"] || '');
102
+ }
103
+
104
+ exports.handler = function (argv) {
105
+ display(argv);
106
+
107
+ try {
108
+ const { deploy } = require('@kumologica/builder');
109
+ deploy('kumohub', argv);
110
+ } catch (e) {
111
+ console.log(`${e.message}`);
112
+ process.exit(1);
113
+ }
114
+ }
@@ -0,0 +1,6 @@
1
+ exports.command = 'deploy <provider>'
2
+ exports.desc = 'Deploy kumologica flow binaries'
3
+ exports.builder = function (yargs) {
4
+ return yargs.commandDir('deploy-commands')
5
+ }
6
+ exports.handler = function (argv) {}
@@ -0,0 +1,61 @@
1
+ exports.command = 'html';
2
+ exports.desc = `Generates html documentation of kumologica flow.`;
3
+
4
+ exports.builder = {
5
+ "documentation-directory": {
6
+ describe: "The directory where documentation will be created.",
7
+ demandOption: "The documentation directory is required.",
8
+ type: 'string',
9
+ alias: 'd',
10
+ nargs: 1
11
+ },
12
+ "kumologica-project-directory": {
13
+ describe: "The directory where kumologica project to be created",
14
+ demandOption: "The kumologica project directory is required.",
15
+ type: 'string',
16
+ alias: 'k',
17
+ nargs: 1
18
+ },
19
+ "kumologica-flow-file-name": {
20
+ describe: "The name of kumologica flow file to be created, must end with .json extension",
21
+ demandOption: "The kumologica flow file name is required.",
22
+ type: 'string',
23
+ alias: 'f',
24
+ nargs: 1
25
+ }
26
+ }
27
+
28
+ function validate(argv) {
29
+ const chalk = require('chalk');
30
+
31
+ if (!argv["kumologica-flow-file-name"].endsWith('.json')) {
32
+ console.log(`${chalk.redBright("Validation Error: kumologica-flow-file-name must end with .json extension.")}`);
33
+ process.exit(1);
34
+ }
35
+ }
36
+ function display(argv) {
37
+ console.log('Parameters:');
38
+ console.log(' documentation-directory: %s', argv["documentation-directory"]||'');
39
+ console.log(' kumologica-project-directory: %s', argv["kumologica-project-directory"]||'');
40
+ console.log(' kumologica-flow-file-name: %s', argv["kumologica-flow-file-name"]||'');
41
+ }
42
+
43
+ exports.handler = async function (argv) {
44
+ console.log('\nGenerating documentation\n');
45
+ display(argv);
46
+ validate(argv);
47
+
48
+ const chalk = require('chalk');
49
+
50
+ try {
51
+ const { doc } = require('@kumologica/builder');
52
+ doc("html", argv);
53
+ console.log(chalk.greenBright('Documentation generated succesfully.'));
54
+
55
+ process.exit(0);
56
+ } catch (e) {
57
+
58
+ console.log(`${chalk.redBright(e.message)}`);
59
+ process.exit(1);
60
+ }
61
+ }
@@ -0,0 +1,6 @@
1
+ exports.command = 'doc'
2
+ exports.desc = 'Generate documentation for kumologica flow'
3
+ exports.builder = function (yargs) {
4
+ return yargs.commandDir('doc-commands')
5
+ }
6
+ exports.handler = function (argv) {}
@@ -0,0 +1,338 @@
1
+ const { boolean } = require('yargs');
2
+
3
+ exports.command = 'cloudformation';
4
+ exports.desc = `Build aws cloud formation script. \n Parameters are equivalent of command: "aws lambda create-function"`;
5
+
6
+ exports.builder = {
7
+ "flow-file-name": {
8
+ describe: "The name of kumologica flow file.\n Auto search if not provided.",
9
+ type: 'string',
10
+ alias: 'f',
11
+ nargs: 1
12
+ },
13
+ "lambda-name": {
14
+ describe: "The name of lambda function,\n default to flow name",
15
+ type: 'string',
16
+ alias: 'l',
17
+ nargs: 1
18
+ },
19
+ "zip-file-name": {
20
+ describe: "The name of zip file of built lambda",
21
+ demandOption: "The name of zip file is required.",
22
+ type: 'string',
23
+ alias: 'z',
24
+ nargs: 1
25
+ },
26
+ "role-name": {
27
+ describe: "The name of lambda role, default to {lambda-name}-role",
28
+ type: 'string',
29
+ alias: 'o',
30
+ nargs: 1
31
+ },
32
+ "bucket-name": {
33
+ describe: "The name of bucket where zipped lambda is loaded from",
34
+ demandOption: "The name of s3 bucket is required.",
35
+ type: 'string',
36
+ alias: 'b',
37
+ nargs: 1
38
+ },
39
+ timeout: {
40
+ describe: "The time in seconds flow lambda is allowed to run, default: 3, max: 900",
41
+ type: 'number',
42
+ alias: 't',
43
+ nargs: 1
44
+ },
45
+ "memory-size": {
46
+ describe: "The amount of memory allocated to function, default 128 (MB), must be multiple of 64 (MB)",
47
+ type: 'number',
48
+ alias: 'm',
49
+ nargs: 1
50
+ },
51
+ description: {
52
+ describe: "The description of a function",
53
+ type: 'string',
54
+ alias: 'd',
55
+ nargs: 1
56
+ },
57
+ environment: {
58
+ describe: `Environment variables, JSON Syntax: '{"Variables": {"string": "string" ...}'}`,
59
+ type: 'string',
60
+ alias: 'e',
61
+ nargs: 1
62
+ },
63
+ tags: {
64
+ describe: `Tags, JSON Syntax: '{"string": "string" ...}'`,
65
+ type: 'string',
66
+ alias: 'g',
67
+ nargs: 1
68
+ },
69
+ "tracing-config": {
70
+ describe: `X-Ray config, JSON Syntax: '{"Mode": "Active"|"PassThrough"}' `,
71
+ type: 'string',
72
+ alias: 'x',
73
+ nargs: 1
74
+ },
75
+ "kms-key-arn": {
76
+ describe: "The ARN of KMS key to encrypt env variables",
77
+ type: 'string',
78
+ alias: 'k',
79
+ nargs: 1
80
+ },
81
+ "vpc-config": {
82
+ describe: `The list of security groups and subnets of VPC, JSON syntax: '{ "SubnetIds": ["string", ...],"SecurityGroupIds": ["string", ...]}'`,
83
+ type: 'string',
84
+ alias: 'v',
85
+ nargs: 1
86
+ },
87
+ architectures: {
88
+ describe: "The instruction set architecture that the function supports, a string array with one of x86_64, arm64. The default value is [x86_64]",
89
+ type: 'string',
90
+ nargs: 1
91
+ },
92
+ runtime: {
93
+ describe: "The runtime, only nodejs runtimes allowed: nodejs|nodejs4.3|nodejs6.10|nodejs8.10|nodejs10.x|nodejs12.x|...",
94
+ type: 'string',
95
+ alias: 'r',
96
+ nargs: 1
97
+ },
98
+ "dead-letter-config": {
99
+ describe: `The arn of the dead letter queue or topic JSON Syntax: '{"TargetArn": "string"}'`,
100
+ type: 'string',
101
+ alias: 'q',
102
+ nargs: 1
103
+ },
104
+ "file-system-configs": {
105
+ describe: `AWS EFS config details, JSON Syntax: '[{"Arn": "string","LocalMountPath": "string"} ...]'`,
106
+ type: 'string',
107
+ nargs: 1
108
+ },
109
+ "log-retention-days": {
110
+ describe: 'Number of days logs to be retained',
111
+ type: 'number',
112
+ nargs: 1
113
+ },
114
+ "role-arn": {
115
+ describe: `The ARM of IAM role to assign to lambda, otherwise this command will generate role. \n Important!\n This parameter should only be used if this command is not able to generate sufficient role based on flow details.`,
116
+ type: 'string',
117
+ nargs: 1
118
+ },
119
+ "policy": {
120
+ describe: `Additional iam policy to add to the role. It must be valid aws policy format, for example: '{"Effect": "Allow", "Resource": ["*"],"Action": ["sns:Publish"]}'. if policy is invalid, cloudformation stack will fail. The value can be single policy statement or array of statements if required. This parameter is ignored if role-arn is provided.`,
121
+ type: 'string',
122
+ nargs: 1
123
+ },
124
+ "strict-mode": {
125
+ describe: 'Fails script creation if insufficient resource definition is provided (string values or environment reference). If false, then resource will be substituted with "*" if missing.',
126
+ type: boolean,
127
+ nargs: 1,
128
+ default: true
129
+ },
130
+ triggers: {
131
+ describe: `Array of lambda triggers, JSON Syntax: '[{"api": {"apiId": "..",..}]'}
132
+
133
+ Supported triggers:
134
+
135
+ Cloudwatch Event:\n-----------------
136
+ * schedule - cron expression (minutes hours days-of-month month days-of-week year) or fixed rate expression, required.\n See more: https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html
137
+ * name - the name of event, optional, default value: Event+timestamp if not provided
138
+ * nodeId - the id of event listener node that should handle event. Optional
139
+
140
+ Examples:
141
+ 1. Creates event trigger using cron expression that runs at 10am UTC every day:\n
142
+ {"event": {"expression": "cron(0 10 * * ? *)"}}
143
+
144
+ 2. Creates event trigger using rate expression that runs every minute:\n
145
+ {"event": {"expression": "rate(1 minute)"}}\n
146
+
147
+ 3. Creates event trigger using rate expression that runs every minute for event listener id "53bdf34.df2dfa42":\n
148
+ {"event": {"expression": "rate(1 minute)", "nodeId": "53bdf34.df2dfa42"}}\n
149
+
150
+ SQS:\n----
151
+ * queueArn - the ARN of sqs queue, required
152
+ * batchSize - the size of batch, optional
153
+
154
+ Example:
155
+ {"sqs": {"queueArn": "arn:aws: ..."}}
156
+
157
+ DynamoDB Stream:\n----
158
+ * streamArn - the ARN of dynamodb stream, required
159
+ * batchSize - the size of batch, optional
160
+ * batchWindow - maximum batching window in seconds, optional
161
+ * startingPosition - either LATEST or TRIM_HORIZON, optional
162
+ Example:
163
+ {"dynamodb": {"streamArn": "arn:aws: ...", "startingPosition": "LATEST"}}
164
+
165
+ Kinesis Stream:\n---------------
166
+ * streamArn - the ARN of kinesis stream, required
167
+ * batchSize - the size of batch, optional
168
+ * batchWindow - maximum batching window in seconds, optional
169
+ * startingPosition - either LATEST or TRIM_HORIZON, optional
170
+ Example:
171
+ {"kinesis": {"streamArn": "arn:aws: ...", "startingPosition": "LATEST"}}
172
+
173
+ S3:\n---
174
+ * bucket - the name of the bucket, required
175
+ * sourceAccount - the account id
176
+ * eventType - the size of batch, optional
177
+ * prefix - maximum batching window in seconds, optional
178
+ * suffix - either LATEST or TRIM_HORIZON, optional
179
+ Example:
180
+ {"s3": {"bucket": "testBucket", "eventType": "ObjectCreated.*"}}
181
+
182
+ Rest api gateway:\n-----------------
183
+ * apiId: the id of rest api, required
184
+ * stage: the stage name of api gateway, required
185
+ * parentId: the id of parent resource where lambda {proxy+} should be added, required
186
+ * resource: the name of resource linked to lambda, required if parentId is not root or lambda linked to non root in api gw
187
+ * authorizerType: the type of authorizer: TOKEN, COGNITO_USER_POOLS, REQUEST
188
+ * authorizerId: the if of authorizer, optional
189
+ * apiKeyRequired: true if api key is required. default false
190
+ * scopes: array of scopes, optional
191
+
192
+ Examples:
193
+
194
+ 1. Creates new api gateway, default: 'test' stage and root proxy resource:
195
+
196
+ {"api": {
197
+ "apiId": "create new",
198
+ "apiName": "booking api"\n}
199
+
200
+ 2. Creates new api gateway, default: 'test' stage and proxy resource under /users resource:
201
+
202
+ {"api": {
203
+ "apiId": "create new",
204
+ "apiName": "users api",
205
+ "resource": "users"\n}\n}
206
+
207
+ 3. Uses existing api gateway, 'test' stage, creates proxy resource under /users resource, attaches request authorizer to proxy and required OAuth scopes:
208
+ {"api": {
209
+ "apiId": "fg4wsf",
210
+ "stage": "test",
211
+ "parentId": "vfgd24d",
212
+ "resource": "users",
213
+ "authorizerId": "3dgfd42",
214
+ "authorizerType": "REQUEST",
215
+ "scopes": ["users", "admins"]\n}
216
+
217
+ 4. Uses existing api gateway, 'test' stage, creates proxy resource under specified parent id:
218
+ {"api": {
219
+ \t"apiId": "fg4wsf",
220
+ \t"stage": "test",
221
+ \t"parentId": "vfgd24d"\n}
222
+
223
+ 5. Creates new api gateway, default: 'test' stage, proxy resource under /users resource with required api key:
224
+
225
+ {"api": {
226
+ "apiId": "create new",
227
+ "apiName": "users api",
228
+ "resource": "users",
229
+ "apiKeyRequired: true\n}\n}
230
+ `,
231
+ type: 'string',
232
+ nargs: 1
233
+ },
234
+
235
+ }
236
+
237
+ function display(argv) {
238
+ console.log('Parameters:');
239
+ console.log(' flow-file-name: %s', argv["flow-file-name"]||'');
240
+ console.log(' zip-file-name: %s', argv["zip-file-name"]||'');
241
+ console.log(' lambda-name: %s', argv["lambda-name"]||'');
242
+ console.log(' role-name: %s', argv["role-name"]||'');
243
+ console.log(' bucket-name: %s', argv["bucket-name"]);
244
+ console.log(' timeout: %s', argv.timeout||'');
245
+ console.log(' memory-size: %s', argv["memory-size"]||'');
246
+ console.log(' description: %s', argv.description||'');
247
+ console.log(' environment: %s', argv.environment||'');
248
+ console.log(' tags: %s', argv["tags"]||'');
249
+ console.log(' tracing-config: %s', argv["tracing-config"]||'');
250
+ console.log(' kms-key-arn: %s', argv["kms-key-arn"]||'');
251
+ console.log(' vpc-config: %s', argv["vpc-config"]||'');
252
+ console.log(' architectures: %s', argv.architectures || '');
253
+ console.log(' runtime: %s', argv.runtime||'');
254
+ console.log(' dead-letter-config: %s', argv["dead-letter-config"]||'');
255
+ console.log(' file-system-configs: %s', argv["file-system-configs"]||'');
256
+ console.log(' log-retention-days: %s', argv["log-retention-days"]||'');
257
+ console.log(' role-arn: %s', argv["role-arn"]||'');
258
+ console.log(' policy %s', argv["policy"] || '');
259
+ console.log(' strict-mode %s', argv["strict-mode"] || '');
260
+ console.log(' triggers: %s', argv.triggers||'');
261
+ }
262
+
263
+ function validateJson(name, s) {
264
+ if (typeof s !== 'string') {
265
+ throw new Error (`Validation error: parameter '${name}' value is not string: '${s}'`);
266
+ }
267
+
268
+ let type;
269
+ try {
270
+ const result = JSON.parse(s);
271
+ type = Object.prototype.toString.call(result);
272
+ } catch (e) {
273
+ throw new Error (`Validation error: parameter '${name}': ${e.message}`);
274
+ }
275
+
276
+ if (!(type === '[object Object]' || type === '[object Array]')) {
277
+ throw new Error (`Validation error: parameter '${name}' value is not in JSON format: '${s}'`);
278
+ }
279
+ }
280
+
281
+ function validate(argv) {
282
+
283
+ const validator = require('./utils/validator');
284
+
285
+ if (argv.environment) {
286
+ validateJson("environment", argv.environment);
287
+ }
288
+ if (argv.tags) {
289
+ validateJson("tags", argv.tags);
290
+ }
291
+ if (argv["tracing-config"]) {
292
+ validateJson("tracing-config", argv["tracing-config"]);
293
+ }
294
+ if (argv["vpc-config"]) {
295
+ validateJson("vpc-config", argv["vpc-config"]);
296
+ }
297
+ if (argv["dead-letter-config"]) {
298
+ validateJson("dead-letter-config", argv["dead-letter-config"]);
299
+ }
300
+ if (argv["file-system-configs"]) {
301
+ validateJson("file-system-configs", argv["file-system-configs"]);
302
+ }
303
+ if (argv.triggers) {
304
+ validateJson("triggers", argv.triggers);
305
+ validator.validate("triggers", JSON.parse(argv.triggers));
306
+ }
307
+ if (argv.runtime) {
308
+ if (!argv.runtime.startsWith("nodejs")) {
309
+ throw new Error (`Validation error: parameter 'runtime' must be one of supported nodejs values: nodejs|nodejs4.3|nodejs6.10|nodejs8.10|nodejs10.x|nodejs12.x|...`);
310
+ }
311
+ }
312
+ if (argv.architectures ) {
313
+ if (!argv.architectures.length || argv.architectures.length != 1 || !["x86_64","arm64"].includes(argv.architectures[0])) {
314
+ throw new Error (`Validation error: parameter 'architectures' must be an array with one element, either x86_64 or arm64`);
315
+ }
316
+ }
317
+ }
318
+
319
+ exports.handler = function (argv) {
320
+ console.log('\nGenerating AWS Cloud Formation script\n');
321
+ display(argv);
322
+ const chalk = require('chalk');
323
+
324
+ try {
325
+ validate(argv);
326
+
327
+ const { exp } = require('@kumologica/builder');
328
+
329
+ exp('cloudformation', 'aws', argv);
330
+ console.log(chalk.greenBright('AWS Cloud Formation script created successfully.'));
331
+
332
+ process.exit(0);
333
+ } catch (e) {
334
+
335
+ console.log(`${chalk.redBright(e.message)}`);
336
+ process.exit(1);
337
+ }
338
+ }