@kumologica/sdk 3.2.0-beta9 → 4.0.0-alpha2

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 (570) hide show
  1. package/bin/kl.js +1 -1
  2. package/cli/cli.js +0 -2
  3. package/cli/commands/create-commands/create-project-iteratively.js +14 -7
  4. package/cli/commands/create.js +16 -15
  5. package/cli/commands/open.js +12 -5
  6. package/cli/commands/start.js +165 -0
  7. package/cli/commands/test/TestSuiteRunner.js +76 -0
  8. package/cli/commands/test.js +92 -120
  9. package/cli/utils/fs/parse.js +1 -1
  10. package/cli/utils/logger.js +9 -3
  11. package/package.json +12 -114
  12. package/src/api/core/comms.js +141 -0
  13. package/src/api/core/context.js +296 -0
  14. package/src/api/core/flows.js +286 -0
  15. package/src/api/core/index.js +29 -0
  16. package/src/api/core/library.js +106 -0
  17. package/src/api/core/nodes.js +476 -0
  18. package/src/api/core/projects.js +426 -0
  19. package/src/{app/ui/editor-api/lib/admin → api/core/rest}/context.js +1 -1
  20. package/src/{app/ui/editor-api/lib/admin → api/core/rest}/flow.js +2 -4
  21. package/src/{app/ui/editor-api/lib/admin → api/core/rest}/flows.js +1 -1
  22. package/src/{app/ui/editor-api/lib/admin → api/core/rest}/index.js +43 -27
  23. package/src/{app/ui/editor-api/lib/admin → api/core/rest}/nodes.js +1 -1
  24. package/src/{app/ui/editor-api/lib → api/core/rest}/util.js +6 -4
  25. package/src/api/core/settings.js +287 -0
  26. package/src/api/tools/base/DesignerTool.js +108 -0
  27. package/src/api/tools/core/flow.js +58 -0
  28. package/src/api/tools/core/index.js +18 -0
  29. package/src/api/tools/core/node.js +77 -0
  30. package/src/api/tools/debugger/index.js +193 -0
  31. package/src/api/tools/filemanager/index.js +127 -0
  32. package/src/api/tools/git/index.js +103 -0
  33. package/src/api/tools/index.js +13 -0
  34. package/src/api/tools/test/index.js +56 -0
  35. package/src/api/tools/test/lib/TestCaseRunner.js +105 -0
  36. package/src/api/tools/test/lib/reporters/index.js +120 -0
  37. package/src/server/DesignerServer.js +141 -0
  38. package/cli/.DS_Store +0 -0
  39. package/cli/commands/test-utils/TestSuiteController.js +0 -363
  40. package/cli/commands/test-utils/TestSuiteController.test.js +0 -171
  41. package/cli/commands/test-utils/util/output.js +0 -14
  42. package/cli/commands/test-utils/util/updates/index.js +0 -17
  43. package/cli/commands/test-utils/util/updates/pkg.js +0 -13
  44. package/cli/commands/test-utils/util/updates/templates/default-settings.js +0 -209
  45. package/src/app/lib/aws/aws-profile.js +0 -43
  46. package/src/app/lib/aws/ca-alexa-api.js +0 -29
  47. package/src/app/lib/aws/ca-apigw-api.js +0 -216
  48. package/src/app/lib/aws/ca-cloudwatch-api.js +0 -78
  49. package/src/app/lib/aws/ca-codecommit-api.js +0 -63
  50. package/src/app/lib/aws/ca-dynamodb-api.js +0 -27
  51. package/src/app/lib/aws/ca-elb-api.js +0 -44
  52. package/src/app/lib/aws/ca-events-api.js +0 -27
  53. package/src/app/lib/aws/ca-iot-api.js +0 -105
  54. package/src/app/lib/aws/ca-s3-api.js +0 -115
  55. package/src/app/lib/aws/ca-sns-api.js +0 -38
  56. package/src/app/lib/aws/ca-sqs-api.js +0 -51
  57. package/src/app/lib/aws/cf.js +0 -449
  58. package/src/app/lib/aws/index.js +0 -988
  59. package/src/app/lib/aws/kl-iam-api.js +0 -27
  60. package/src/app/lib/aws/kl-rekognition-api.js +0 -66
  61. package/src/app/lib/aws/kl-ssm-api.js +0 -24
  62. package/src/app/lib/azure/index.js +0 -80
  63. package/src/app/lib/dependencies.js +0 -50
  64. package/src/app/lib/kumohub/index.js +0 -201
  65. package/src/app/lib/runtime-loader/index.js +0 -42
  66. package/src/app/lib/serverless/index.js +0 -318
  67. package/src/app/lib/stores/aws-cloud-config-store.js +0 -35
  68. package/src/app/lib/stores/azure-config-store.js +0 -24
  69. package/src/app/lib/stores/kumohub-config-store.js +0 -24
  70. package/src/app/lib/stores/project-info-config-store.js +0 -26
  71. package/src/app/lib/stores/settings-cloud-store.js +0 -120
  72. package/src/app/lib/stores/settings-cloud-store.spec.js +0 -26
  73. package/src/app/lib/stores/settings-network-store.js +0 -118
  74. package/src/app/lib/stores/settings-network-store.spec.js +0 -27
  75. package/src/app/lib/stores/store.js +0 -97
  76. package/src/app/lib/stores/test-config-store.js +0 -159
  77. package/src/app/lib/stores/user-preference-store.js +0 -44
  78. package/src/app/lib/stores/util/iniParser.js +0 -46
  79. package/src/app/lib/stores/util/iniParser.spec.js +0 -72
  80. package/src/app/lib/utils/editor.js +0 -98
  81. package/src/app/lib/utils/fix-path.js +0 -15
  82. package/src/app/main-process/editor-manager.js +0 -177
  83. package/src/app/main-process/favicon.ico +0 -0
  84. package/src/app/main-process/main-window.js +0 -214
  85. package/src/app/main-process/menu.js +0 -420
  86. package/src/app/main-process/modal-home.js +0 -122
  87. package/src/app/main-process/modal-newproject.js +0 -123
  88. package/src/app/main-process/modal-newtab.js +0 -96
  89. package/src/app/main-process/modal-nodelibrary.js +0 -94
  90. package/src/app/main-process/modal-welcome.js +0 -119
  91. package/src/app/main.js +0 -620
  92. package/src/app/preload.js +0 -649
  93. package/src/app/ui/editor-api/lib/auth/clients.js +0 -17
  94. package/src/app/ui/editor-api/lib/auth/index.js +0 -269
  95. package/src/app/ui/editor-api/lib/auth/permissions.js +0 -51
  96. package/src/app/ui/editor-api/lib/auth/strategies.js +0 -144
  97. package/src/app/ui/editor-api/lib/auth/tokens.js +0 -138
  98. package/src/app/ui/editor-api/lib/auth/users.js +0 -122
  99. package/src/app/ui/editor-api/lib/editor/comms.js +0 -247
  100. package/src/app/ui/editor-api/lib/editor/credentials.js +0 -22
  101. package/src/app/ui/editor-api/lib/editor/index.js +0 -242
  102. package/src/app/ui/editor-api/lib/editor/library.js +0 -69
  103. package/src/app/ui/editor-api/lib/editor/locales.js +0 -37
  104. package/src/app/ui/editor-api/lib/editor/projects.js +0 -497
  105. package/src/app/ui/editor-api/lib/editor/settings.js +0 -118
  106. package/src/app/ui/editor-api/lib/editor/sshkeys.js +0 -87
  107. package/src/app/ui/editor-api/lib/editor/theme.js +0 -184
  108. package/src/app/ui/editor-api/lib/editor/ui.js +0 -170
  109. package/src/app/ui/editor-api/lib/index.js +0 -149
  110. package/src/app/ui/editor-api/lib/runner/index.js +0 -81
  111. package/src/app/ui/editor-client/README.md +0 -10
  112. package/src/app/ui/editor-client/constants.js +0 -5
  113. package/src/app/ui/editor-client/index.js +0 -3
  114. package/src/app/ui/editor-client/public/favicon.ico +0 -0
  115. package/src/app/ui/editor-client/public/red/images/bolt.png +0 -0
  116. package/src/app/ui/editor-client/public/red/images/debugger/continue-full.png +0 -0
  117. package/src/app/ui/editor-client/public/red/images/debugger/continue-outline.png +0 -0
  118. package/src/app/ui/editor-client/public/red/images/debugger/pause.png +0 -0
  119. package/src/app/ui/editor-client/public/red/images/debugger/restart.png +0 -0
  120. package/src/app/ui/editor-client/public/red/images/debugger/stepover.png +0 -0
  121. package/src/app/ui/editor-client/public/red/images/debugger/stop.png +0 -0
  122. package/src/app/ui/editor-client/public/red/images/deploy-flows-o.png +0 -0
  123. package/src/app/ui/editor-client/public/red/images/deploy-flows.png +0 -0
  124. package/src/app/ui/editor-client/public/red/images/deploy-full-o.png +0 -0
  125. package/src/app/ui/editor-client/public/red/images/deploy-full.png +0 -0
  126. package/src/app/ui/editor-client/public/red/images/deploy-nodes-o.png +0 -0
  127. package/src/app/ui/editor-client/public/red/images/deploy-nodes.png +0 -0
  128. package/src/app/ui/editor-client/public/red/images/deploy-reload.png +0 -0
  129. package/src/app/ui/editor-client/public/red/images/grip.png +0 -0
  130. package/src/app/ui/editor-client/public/red/images/icons/arrow-in.png +0 -0
  131. package/src/app/ui/editor-client/public/red/images/icons/bolt.png +0 -0
  132. package/src/app/ui/editor-client/public/red/images/icons/node-changed.png +0 -0
  133. package/src/app/ui/editor-client/public/red/images/icons/node-error.png +0 -0
  134. package/src/app/ui/editor-client/public/red/images/icons/node-play.png +0 -0
  135. package/src/app/ui/editor-client/public/red/images/kumologica-app.png +0 -0
  136. package/src/app/ui/editor-client/public/red/images/node-red-256.png +0 -0
  137. package/src/app/ui/editor-client/public/red/images/node-red-icon-black.svg +0 -9
  138. package/src/app/ui/editor-client/public/red/images/node-red-icon.svg +0 -33
  139. package/src/app/ui/editor-client/public/red/images/node-red.png +0 -0
  140. package/src/app/ui/editor-client/public/red/images/pw_maze_white.png +0 -0
  141. package/src/app/ui/editor-client/public/red/images/spin.svg +0 -41
  142. package/src/app/ui/editor-client/public/red/images/spinner.gif +0 -0
  143. package/src/app/ui/editor-client/public/red/images/subflow_tab.png +0 -0
  144. package/src/app/ui/editor-client/public/red/images/test-icon.png +0 -0
  145. package/src/app/ui/editor-client/public/red/images/typedInput/09.png +0 -0
  146. package/src/app/ui/editor-client/public/red/images/typedInput/az.png +0 -0
  147. package/src/app/ui/editor-client/public/red/images/typedInput/bin.png +0 -0
  148. package/src/app/ui/editor-client/public/red/images/typedInput/bool.png +0 -0
  149. package/src/app/ui/editor-client/public/red/images/typedInput/env.png +0 -0
  150. package/src/app/ui/editor-client/public/red/images/typedInput/expr.png +0 -0
  151. package/src/app/ui/editor-client/public/red/images/typedInput/json.png +0 -0
  152. package/src/app/ui/editor-client/public/red/images/typedInput/re.png +0 -0
  153. package/src/app/ui/editor-client/public/red/keymap.json +0 -54
  154. package/src/app/ui/editor-client/public/red/main-modals.js +0 -14
  155. package/src/app/ui/editor-client/public/red/main-modals.min.js +0 -1
  156. package/src/app/ui/editor-client/public/red/main.js +0 -10
  157. package/src/app/ui/editor-client/public/red/main.min.js +0 -1
  158. package/src/app/ui/editor-client/public/red/red.js +0 -45913
  159. package/src/app/ui/editor-client/public/red/red.min.js +0 -19
  160. package/src/app/ui/editor-client/public/red/style.min.css +0 -9
  161. package/src/app/ui/editor-client/public/vendor/ace/LICENSE +0 -24
  162. package/src/app/ui/editor-client/public/vendor/ace/ace.js +0 -17
  163. package/src/app/ui/editor-client/public/vendor/ace/ext-language_tools.js +0 -8
  164. package/src/app/ui/editor-client/public/vendor/ace/ext-searchbox.js +0 -8
  165. package/src/app/ui/editor-client/public/vendor/ace/mode-css.js +0 -8
  166. package/src/app/ui/editor-client/public/vendor/ace/mode-handlebars.js +0 -8
  167. package/src/app/ui/editor-client/public/vendor/ace/mode-html.js +0 -8
  168. package/src/app/ui/editor-client/public/vendor/ace/mode-javascript.js +0 -8
  169. package/src/app/ui/editor-client/public/vendor/ace/mode-json.js +0 -8
  170. package/src/app/ui/editor-client/public/vendor/ace/mode-jsonata.js +0 -1
  171. package/src/app/ui/editor-client/public/vendor/ace/mode-markdown.js +0 -8
  172. package/src/app/ui/editor-client/public/vendor/ace/mode-properties.js +0 -8
  173. package/src/app/ui/editor-client/public/vendor/ace/mode-python.js +0 -8
  174. package/src/app/ui/editor-client/public/vendor/ace/mode-sql.js +0 -8
  175. package/src/app/ui/editor-client/public/vendor/ace/mode-swift.js +0 -8
  176. package/src/app/ui/editor-client/public/vendor/ace/mode-text.js +0 -8
  177. package/src/app/ui/editor-client/public/vendor/ace/mode-xml.js +0 -8
  178. package/src/app/ui/editor-client/public/vendor/ace/mode-yaml.js +0 -8
  179. package/src/app/ui/editor-client/public/vendor/ace/snippets/css.js +0 -8
  180. package/src/app/ui/editor-client/public/vendor/ace/snippets/handlebars.js +0 -8
  181. package/src/app/ui/editor-client/public/vendor/ace/snippets/html.js +0 -8
  182. package/src/app/ui/editor-client/public/vendor/ace/snippets/javascript.js +0 -8
  183. package/src/app/ui/editor-client/public/vendor/ace/snippets/json.js +0 -8
  184. package/src/app/ui/editor-client/public/vendor/ace/snippets/jsonata.js +0 -1
  185. package/src/app/ui/editor-client/public/vendor/ace/snippets/markdown.js +0 -8
  186. package/src/app/ui/editor-client/public/vendor/ace/snippets/properties.js +0 -8
  187. package/src/app/ui/editor-client/public/vendor/ace/snippets/python.js +0 -8
  188. package/src/app/ui/editor-client/public/vendor/ace/snippets/sql.js +0 -8
  189. package/src/app/ui/editor-client/public/vendor/ace/snippets/swift.js +0 -8
  190. package/src/app/ui/editor-client/public/vendor/ace/snippets/text.js +0 -8
  191. package/src/app/ui/editor-client/public/vendor/ace/snippets/xml.js +0 -8
  192. package/src/app/ui/editor-client/public/vendor/ace/snippets/yaml.js +0 -8
  193. package/src/app/ui/editor-client/public/vendor/ace/theme-chrome.js +0 -8
  194. package/src/app/ui/editor-client/public/vendor/ace/theme-tomorrow.js +0 -8
  195. package/src/app/ui/editor-client/public/vendor/ace/worker-css.js +0 -1
  196. package/src/app/ui/editor-client/public/vendor/ace/worker-html.js +0 -1
  197. package/src/app/ui/editor-client/public/vendor/ace/worker-javascript.js +0 -1
  198. package/src/app/ui/editor-client/public/vendor/ace/worker-json.js +0 -1
  199. package/src/app/ui/editor-client/public/vendor/ace/worker-jsonata.js +0 -2140
  200. package/src/app/ui/editor-client/public/vendor/ace/worker-xml.js +0 -1
  201. package/src/app/ui/editor-client/public/vendor/beautifyjs/beautify.min.js +0 -1
  202. package/src/app/ui/editor-client/public/vendor/bootstrap/css/bootstrap.min.css +0 -9
  203. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  204. package/src/app/ui/editor-client/public/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  205. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/active-line.js +0 -72
  206. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/coffeescript-lint.js +0 -47
  207. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-hint.js +0 -157
  208. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/javascript-lint.js +0 -63
  209. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/jshint.js +0 -29591
  210. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.css +0 -73
  211. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/lint.js +0 -252
  212. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.css +0 -36
  213. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/show-hint.js +0 -460
  214. package/src/app/ui/editor-client/public/vendor/code-mirror/addon/sql-hint.js +0 -304
  215. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.css +0 -350
  216. package/src/app/ui/editor-client/public/vendor/code-mirror/lib/codemirror.js +0 -9800
  217. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/javascript.js +0 -927
  218. package/src/app/ui/editor-client/public/vendor/code-mirror/mode/sql.js +0 -494
  219. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/base16-dark.css +0 -38
  220. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/monokai.css +0 -42
  221. package/src/app/ui/editor-client/public/vendor/code-mirror/theme/solarized.css +0 -168
  222. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.css +0 -43
  223. package/src/app/ui/editor-client/public/vendor/d3-context-menu/d3-context-menu.js +0 -86
  224. package/src/app/ui/editor-client/public/vendor/easy-json-schema/index.js +0 -88
  225. package/src/app/ui/editor-client/public/vendor/electron-tabs/electron-tabs.js +0 -2907
  226. package/src/app/ui/editor-client/public/vendor/font-awesome/css/font-awesome.min.css +0 -4
  227. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  228. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  229. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  230. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  231. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  232. package/src/app/ui/editor-client/public/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  233. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.eot +0 -0
  234. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.svg +0 -2105
  235. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.ttf +0 -0
  236. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff +0 -0
  237. package/src/app/ui/editor-client/public/vendor/icofont/fonts/icofont.woff2 +0 -0
  238. package/src/app/ui/editor-client/public/vendor/icofont/icofont.min.css +0 -7
  239. package/src/app/ui/editor-client/public/vendor/jqtree/tree.jquery.js +0 -119
  240. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  241. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  242. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  243. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  244. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  245. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  246. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  247. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  248. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  249. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  250. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  251. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  252. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  253. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  254. package/src/app/ui/editor-client/public/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +0 -5
  255. package/src/app/ui/editor-client/public/vendor/jsonata/jsonata.min.js +0 -190
  256. package/src/app/ui/editor-client/public/vendor/kumologica/http-test-case.js +0 -131
  257. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.css +0 -181
  258. package/src/app/ui/editor-client/public/vendor/misc/toggleswitch.js +0 -48
  259. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.css +0 -7
  260. package/src/app/ui/editor-client/public/vendor/simplemde/simplemde.min.js +0 -15
  261. package/src/app/ui/editor-client/public/vendor/vendor.css +0 -517
  262. package/src/app/ui/editor-client/public/vendor/vendor.js +0 -2769
  263. package/src/app/ui/editor-client/public/vendor/xterm/lib/xterm.js +0 -2
  264. package/src/app/ui/editor-client/src/ace/README.md +0 -50
  265. package/src/app/ui/editor-client/src/ace/mode/nrjavascript.js +0 -35
  266. package/src/app/ui/editor-client/src/ace/mode/nrjavascript_worker.js +0 -189
  267. package/src/app/ui/editor-client/src/favicon.ico +0 -0
  268. package/src/app/ui/editor-client/src/images/bolt.png +0 -0
  269. package/src/app/ui/editor-client/src/images/debugger/continue-full.png +0 -0
  270. package/src/app/ui/editor-client/src/images/debugger/continue-outline.png +0 -0
  271. package/src/app/ui/editor-client/src/images/debugger/pause.png +0 -0
  272. package/src/app/ui/editor-client/src/images/debugger/restart.png +0 -0
  273. package/src/app/ui/editor-client/src/images/debugger/stepover.png +0 -0
  274. package/src/app/ui/editor-client/src/images/debugger/stop.png +0 -0
  275. package/src/app/ui/editor-client/src/images/deploy-flows-o.png +0 -0
  276. package/src/app/ui/editor-client/src/images/deploy-flows.png +0 -0
  277. package/src/app/ui/editor-client/src/images/deploy-full-o.png +0 -0
  278. package/src/app/ui/editor-client/src/images/deploy-full.png +0 -0
  279. package/src/app/ui/editor-client/src/images/deploy-nodes-o.png +0 -0
  280. package/src/app/ui/editor-client/src/images/deploy-nodes.png +0 -0
  281. package/src/app/ui/editor-client/src/images/deploy-reload.png +0 -0
  282. package/src/app/ui/editor-client/src/images/grip.png +0 -0
  283. package/src/app/ui/editor-client/src/images/icons/arrow-in.png +0 -0
  284. package/src/app/ui/editor-client/src/images/icons/bolt.png +0 -0
  285. package/src/app/ui/editor-client/src/images/icons/node-changed.png +0 -0
  286. package/src/app/ui/editor-client/src/images/icons/node-error.png +0 -0
  287. package/src/app/ui/editor-client/src/images/icons/node-play.png +0 -0
  288. package/src/app/ui/editor-client/src/images/kumologica-app.png +0 -0
  289. package/src/app/ui/editor-client/src/images/node-red-256.png +0 -0
  290. package/src/app/ui/editor-client/src/images/node-red-icon-black.svg +0 -9
  291. package/src/app/ui/editor-client/src/images/node-red-icon.svg +0 -33
  292. package/src/app/ui/editor-client/src/images/node-red.png +0 -0
  293. package/src/app/ui/editor-client/src/images/pw_maze_white.png +0 -0
  294. package/src/app/ui/editor-client/src/images/spin.svg +0 -41
  295. package/src/app/ui/editor-client/src/images/spinner.gif +0 -0
  296. package/src/app/ui/editor-client/src/images/subflow_tab.png +0 -0
  297. package/src/app/ui/editor-client/src/images/test-icon.png +0 -0
  298. package/src/app/ui/editor-client/src/images/typedInput/09.png +0 -0
  299. package/src/app/ui/editor-client/src/images/typedInput/az.png +0 -0
  300. package/src/app/ui/editor-client/src/images/typedInput/bin.png +0 -0
  301. package/src/app/ui/editor-client/src/images/typedInput/bool.png +0 -0
  302. package/src/app/ui/editor-client/src/images/typedInput/env.png +0 -0
  303. package/src/app/ui/editor-client/src/images/typedInput/expr.png +0 -0
  304. package/src/app/ui/editor-client/src/images/typedInput/json.png +0 -0
  305. package/src/app/ui/editor-client/src/images/typedInput/re.png +0 -0
  306. package/src/app/ui/editor-client/src/js/comms.js +0 -174
  307. package/src/app/ui/editor-client/src/js/events.js +0 -39
  308. package/src/app/ui/editor-client/src/js/font-awesome.js +0 -818
  309. package/src/app/ui/editor-client/src/js/history.js +0 -337
  310. package/src/app/ui/editor-client/src/js/i18n.js +0 -81
  311. package/src/app/ui/editor-client/src/js/jquery-addons.js +0 -21
  312. package/src/app/ui/editor-client/src/js/keymap.json +0 -54
  313. package/src/app/ui/editor-client/src/js/main-modals.js +0 -14
  314. package/src/app/ui/editor-client/src/js/main.js +0 -10
  315. package/src/app/ui/editor-client/src/js/modals/modal-home.js +0 -162
  316. package/src/app/ui/editor-client/src/js/modals/modal-new-project.js +0 -86
  317. package/src/app/ui/editor-client/src/js/modals/modal-new-tab.js +0 -58
  318. package/src/app/ui/editor-client/src/js/modals/modal-node-library.js +0 -255
  319. package/src/app/ui/editor-client/src/js/modals/modal-welcome.js +0 -102
  320. package/src/app/ui/editor-client/src/js/nodes.js +0 -1762
  321. package/src/app/ui/editor-client/src/js/red.js +0 -707
  322. package/src/app/ui/editor-client/src/js/settings.js +0 -275
  323. package/src/app/ui/editor-client/src/js/text/bidi.js +0 -116
  324. package/src/app/ui/editor-client/src/js/text/format.js +0 -1316
  325. package/src/app/ui/editor-client/src/js/ui/actions.js +0 -39
  326. package/src/app/ui/editor-client/src/js/ui/clipboard.js +0 -510
  327. package/src/app/ui/editor-client/src/js/ui/common/checkboxSet.js +0 -117
  328. package/src/app/ui/editor-client/src/js/ui/common/editableList.js +0 -322
  329. package/src/app/ui/editor-client/src/js/ui/common/menu.js +0 -277
  330. package/src/app/ui/editor-client/src/js/ui/common/panels.js +0 -104
  331. package/src/app/ui/editor-client/src/js/ui/common/popover.js +0 -268
  332. package/src/app/ui/editor-client/src/js/ui/common/searchBox.js +0 -98
  333. package/src/app/ui/editor-client/src/js/ui/common/stack.js +0 -184
  334. package/src/app/ui/editor-client/src/js/ui/common/tabs.js +0 -805
  335. package/src/app/ui/editor-client/src/js/ui/common/treeList.js +0 -170
  336. package/src/app/ui/editor-client/src/js/ui/common/typedInput.js +0 -819
  337. package/src/app/ui/editor-client/src/js/ui/common/typedInputLong.js +0 -829
  338. package/src/app/ui/editor-client/src/js/ui/deploy.js +0 -422
  339. package/src/app/ui/editor-client/src/js/ui/diff.js +0 -2225
  340. package/src/app/ui/editor-client/src/js/ui/editor.js +0 -3021
  341. package/src/app/ui/editor-client/src/js/ui/editors/buffer.js +0 -195
  342. package/src/app/ui/editor-client/src/js/ui/editors/expression.js +0 -655
  343. package/src/app/ui/editor-client/src/js/ui/editors/js.js +0 -90
  344. package/src/app/ui/editor-client/src/js/ui/editors/json.js +0 -107
  345. package/src/app/ui/editor-client/src/js/ui/editors/markdown.js +0 -267
  346. package/src/app/ui/editor-client/src/js/ui/editors/string.js +0 -75
  347. package/src/app/ui/editor-client/src/js/ui/event-log.js +0 -107
  348. package/src/app/ui/editor-client/src/js/ui/header.js +0 -373
  349. package/src/app/ui/editor-client/src/js/ui/keyboard.js +0 -565
  350. package/src/app/ui/editor-client/src/js/ui/library.js +0 -570
  351. package/src/app/ui/editor-client/src/js/ui/logviewer.js +0 -137
  352. package/src/app/ui/editor-client/src/js/ui/notifications.js +0 -282
  353. package/src/app/ui/editor-client/src/js/ui/palette-editor.js +0 -1061
  354. package/src/app/ui/editor-client/src/js/ui/palette-navigator.js +0 -144
  355. package/src/app/ui/editor-client/src/js/ui/palette-nodes.js +0 -789
  356. package/src/app/ui/editor-client/src/js/ui/palette.js +0 -62
  357. package/src/app/ui/editor-client/src/js/ui/project-info.js +0 -234
  358. package/src/app/ui/editor-client/src/js/ui/projects/projectSettings.js +0 -1651
  359. package/src/app/ui/editor-client/src/js/ui/projects/projectUserSettings.js +0 -404
  360. package/src/app/ui/editor-client/src/js/ui/projects/projects.js +0 -2395
  361. package/src/app/ui/editor-client/src/js/ui/projects/tab-versionControl.js +0 -1383
  362. package/src/app/ui/editor-client/src/js/ui/search.js +0 -374
  363. package/src/app/ui/editor-client/src/js/ui/sidebar.js +0 -341
  364. package/src/app/ui/editor-client/src/js/ui/state.js +0 -14
  365. package/src/app/ui/editor-client/src/js/ui/subflow.js +0 -748
  366. package/src/app/ui/editor-client/src/js/ui/tab-awsDeploy.js +0 -1427
  367. package/src/app/ui/editor-client/src/js/ui/tab-azure.js +0 -852
  368. package/src/app/ui/editor-client/src/js/ui/tab-config.js +0 -452
  369. package/src/app/ui/editor-client/src/js/ui/tab-context.js +0 -406
  370. package/src/app/ui/editor-client/src/js/ui/tab-git.js +0 -320
  371. package/src/app/ui/editor-client/src/js/ui/tab-info.js +0 -661
  372. package/src/app/ui/editor-client/src/js/ui/tab-kumohub.js +0 -827
  373. package/src/app/ui/editor-client/src/js/ui/tab-nodeInfo.js +0 -60
  374. package/src/app/ui/editor-client/src/js/ui/tab-test.js +0 -987
  375. package/src/app/ui/editor-client/src/js/ui/terminal.js +0 -240
  376. package/src/app/ui/editor-client/src/js/ui/touch/radialMenu.js +0 -170
  377. package/src/app/ui/editor-client/src/js/ui/tray.js +0 -411
  378. package/src/app/ui/editor-client/src/js/ui/typeSearch.js +0 -411
  379. package/src/app/ui/editor-client/src/js/ui/ui-settings.js +0 -499
  380. package/src/app/ui/editor-client/src/js/ui/update-panel.js +0 -84
  381. package/src/app/ui/editor-client/src/js/ui/userSettings.js +0 -673
  382. package/src/app/ui/editor-client/src/js/ui/utils.js +0 -1287
  383. package/src/app/ui/editor-client/src/js/ui/view-navigator.js +0 -169
  384. package/src/app/ui/editor-client/src/js/ui/view-tools.js +0 -123
  385. package/src/app/ui/editor-client/src/js/ui/view.js +0 -5428
  386. package/src/app/ui/editor-client/src/js/ui/workspaces.js +0 -555
  387. package/src/app/ui/editor-client/src/js/user.js +0 -282
  388. package/src/app/ui/editor-client/src/js/validators.js +0 -54
  389. package/src/app/ui/editor-client/src/kumologica-app.png +0 -0
  390. package/src/app/ui/editor-client/src/sass/ace.scss +0 -29
  391. package/src/app/ui/editor-client/src/sass/bootstrap.scss +0 -21
  392. package/src/app/ui/editor-client/src/sass/colors.scss +0 -78
  393. package/src/app/ui/editor-client/src/sass/debug.scss +0 -383
  394. package/src/app/ui/editor-client/src/sass/diff.scss +0 -695
  395. package/src/app/ui/editor-client/src/sass/dragdrop.scss +0 -37
  396. package/src/app/ui/editor-client/src/sass/dropdownMenu.scss +0 -93
  397. package/src/app/ui/editor-client/src/sass/editor.scss +0 -691
  398. package/src/app/ui/editor-client/src/sass/flow.scss +0 -330
  399. package/src/app/ui/editor-client/src/sass/forms.scss +0 -1093
  400. package/src/app/ui/editor-client/src/sass/header.scss +0 -524
  401. package/src/app/ui/editor-client/src/sass/jquery.scss +0 -152
  402. package/src/app/ui/editor-client/src/sass/keyboard.scss +0 -136
  403. package/src/app/ui/editor-client/src/sass/library.scss +0 -54
  404. package/src/app/ui/editor-client/src/sass/mixins.scss +0 -283
  405. package/src/app/ui/editor-client/src/sass/modals/modalHome.scss +0 -138
  406. package/src/app/ui/editor-client/src/sass/modals/modalNewProject.scss +0 -96
  407. package/src/app/ui/editor-client/src/sass/modals/modalNewTab.scss +0 -96
  408. package/src/app/ui/editor-client/src/sass/modals/modalNodeLibrary.scss +0 -131
  409. package/src/app/ui/editor-client/src/sass/modals/modalWelcome.scss +0 -102
  410. package/src/app/ui/editor-client/src/sass/notifications.scss +0 -118
  411. package/src/app/ui/editor-client/src/sass/palette-editor.scss +0 -275
  412. package/src/app/ui/editor-client/src/sass/palette.scss +0 -383
  413. package/src/app/ui/editor-client/src/sass/panels.scss +0 -61
  414. package/src/app/ui/editor-client/src/sass/popover.scss +0 -166
  415. package/src/app/ui/editor-client/src/sass/project-info.scss +0 -74
  416. package/src/app/ui/editor-client/src/sass/projects.scss +0 -875
  417. package/src/app/ui/editor-client/src/sass/search.scss +0 -201
  418. package/src/app/ui/editor-client/src/sass/sidebar.scss +0 -201
  419. package/src/app/ui/editor-client/src/sass/style.scss +0 -172
  420. package/src/app/ui/editor-client/src/sass/tab-azure.scss +0 -68
  421. package/src/app/ui/editor-client/src/sass/tab-cloud.scss +0 -67
  422. package/src/app/ui/editor-client/src/sass/tab-config.scss +0 -100
  423. package/src/app/ui/editor-client/src/sass/tab-context.scss +0 -54
  424. package/src/app/ui/editor-client/src/sass/tab-git.scss +0 -54
  425. package/src/app/ui/editor-client/src/sass/tab-info.scss +0 -307
  426. package/src/app/ui/editor-client/src/sass/tab-kumohub.scss +0 -68
  427. package/src/app/ui/editor-client/src/sass/tab-test.scss +0 -262
  428. package/src/app/ui/editor-client/src/sass/tabs.scss +0 -420
  429. package/src/app/ui/editor-client/src/sass/terminal.scss +0 -247
  430. package/src/app/ui/editor-client/src/sass/ui/common/checkboxSet.scss +0 -29
  431. package/src/app/ui/editor-client/src/sass/ui/common/editableList.scss +0 -81
  432. package/src/app/ui/editor-client/src/sass/ui/common/nodeList.scss +0 -65
  433. package/src/app/ui/editor-client/src/sass/ui/common/searchBox.scss +0 -78
  434. package/src/app/ui/editor-client/src/sass/ui/common/stack.scss +0 -26
  435. package/src/app/ui/editor-client/src/sass/ui/common/treeList.scss +0 -108
  436. package/src/app/ui/editor-client/src/sass/ui/common/typedInput.scss +0 -181
  437. package/src/app/ui/editor-client/src/sass/ui/common/typedInputLong.scss +0 -183
  438. package/src/app/ui/editor-client/src/sass/ui-settings.scss +0 -125
  439. package/src/app/ui/editor-client/src/sass/update-panel.scss +0 -18
  440. package/src/app/ui/editor-client/src/sass/userSettings.scss +0 -93
  441. package/src/app/ui/editor-client/src/sass/widgetStyle.scss +0 -23
  442. package/src/app/ui/editor-client/src/sass/workspace.scss +0 -123
  443. package/src/app/ui/editor-client/src/sass/workspaceToolbar.scss +0 -85
  444. package/src/app/ui/editor-client/src/vendor/ace/LICENSE +0 -24
  445. package/src/app/ui/editor-client/src/vendor/ace/ace.js +0 -17
  446. package/src/app/ui/editor-client/src/vendor/ace/ext-language_tools.js +0 -8
  447. package/src/app/ui/editor-client/src/vendor/ace/ext-searchbox.js +0 -8
  448. package/src/app/ui/editor-client/src/vendor/ace/mode-css.js +0 -8
  449. package/src/app/ui/editor-client/src/vendor/ace/mode-handlebars.js +0 -8
  450. package/src/app/ui/editor-client/src/vendor/ace/mode-html.js +0 -8
  451. package/src/app/ui/editor-client/src/vendor/ace/mode-javascript.js +0 -8
  452. package/src/app/ui/editor-client/src/vendor/ace/mode-json.js +0 -8
  453. package/src/app/ui/editor-client/src/vendor/ace/mode-markdown.js +0 -8
  454. package/src/app/ui/editor-client/src/vendor/ace/mode-properties.js +0 -8
  455. package/src/app/ui/editor-client/src/vendor/ace/mode-python.js +0 -8
  456. package/src/app/ui/editor-client/src/vendor/ace/mode-sql.js +0 -8
  457. package/src/app/ui/editor-client/src/vendor/ace/mode-swift.js +0 -8
  458. package/src/app/ui/editor-client/src/vendor/ace/mode-text.js +0 -8
  459. package/src/app/ui/editor-client/src/vendor/ace/mode-xml.js +0 -8
  460. package/src/app/ui/editor-client/src/vendor/ace/mode-yaml.js +0 -8
  461. package/src/app/ui/editor-client/src/vendor/ace/snippets/css.js +0 -8
  462. package/src/app/ui/editor-client/src/vendor/ace/snippets/handlebars.js +0 -8
  463. package/src/app/ui/editor-client/src/vendor/ace/snippets/html.js +0 -8
  464. package/src/app/ui/editor-client/src/vendor/ace/snippets/javascript.js +0 -8
  465. package/src/app/ui/editor-client/src/vendor/ace/snippets/json.js +0 -8
  466. package/src/app/ui/editor-client/src/vendor/ace/snippets/markdown.js +0 -8
  467. package/src/app/ui/editor-client/src/vendor/ace/snippets/properties.js +0 -8
  468. package/src/app/ui/editor-client/src/vendor/ace/snippets/python.js +0 -8
  469. package/src/app/ui/editor-client/src/vendor/ace/snippets/sql.js +0 -8
  470. package/src/app/ui/editor-client/src/vendor/ace/snippets/swift.js +0 -8
  471. package/src/app/ui/editor-client/src/vendor/ace/snippets/text.js +0 -8
  472. package/src/app/ui/editor-client/src/vendor/ace/snippets/xml.js +0 -8
  473. package/src/app/ui/editor-client/src/vendor/ace/snippets/yaml.js +0 -8
  474. package/src/app/ui/editor-client/src/vendor/ace/theme-chrome.js +0 -8
  475. package/src/app/ui/editor-client/src/vendor/ace/theme-tomorrow.js +0 -8
  476. package/src/app/ui/editor-client/src/vendor/ace/worker-css.js +0 -1
  477. package/src/app/ui/editor-client/src/vendor/ace/worker-html.js +0 -1
  478. package/src/app/ui/editor-client/src/vendor/ace/worker-javascript.js +0 -1
  479. package/src/app/ui/editor-client/src/vendor/ace/worker-json.js +0 -1
  480. package/src/app/ui/editor-client/src/vendor/ace/worker-xml.js +0 -1
  481. package/src/app/ui/editor-client/src/vendor/beautifyjs/beautify.min.js +0 -1
  482. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.css +0 -5406
  483. package/src/app/ui/editor-client/src/vendor/bootstrap/css/bootstrap.min.css +0 -9
  484. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings-white.png +0 -0
  485. package/src/app/ui/editor-client/src/vendor/bootstrap/img/glyphicons-halflings.png +0 -0
  486. package/src/app/ui/editor-client/src/vendor/bootstrap/js/bootstrap.min.js +0 -6
  487. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/active-line.js +0 -72
  488. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/coffeescript-lint.js +0 -47
  489. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-hint.js +0 -157
  490. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/javascript-lint.js +0 -63
  491. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/jshint.js +0 -29591
  492. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.css +0 -73
  493. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/lint.js +0 -252
  494. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.css +0 -36
  495. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/show-hint.js +0 -460
  496. package/src/app/ui/editor-client/src/vendor/code-mirror/addon/sql-hint.js +0 -304
  497. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.css +0 -350
  498. package/src/app/ui/editor-client/src/vendor/code-mirror/lib/codemirror.js +0 -9800
  499. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/javascript.js +0 -927
  500. package/src/app/ui/editor-client/src/vendor/code-mirror/mode/sql.js +0 -494
  501. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/base16-dark.css +0 -38
  502. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/monokai.css +0 -42
  503. package/src/app/ui/editor-client/src/vendor/code-mirror/theme/solarized.css +0 -168
  504. package/src/app/ui/editor-client/src/vendor/d3/d3.v3.min.js +0 -4
  505. package/src/app/ui/editor-client/src/vendor/d3/d3.v4.min.js +0 -2
  506. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.css +0 -43
  507. package/src/app/ui/editor-client/src/vendor/d3-context-menu/d3-context-menu.js +0 -86
  508. package/src/app/ui/editor-client/src/vendor/easy-json-schema/index.js +0 -88
  509. package/src/app/ui/editor-client/src/vendor/electron-tabs/electron-tabs.js +0 -2907
  510. package/src/app/ui/editor-client/src/vendor/font-awesome/css/font-awesome.min.css +0 -4
  511. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/FontAwesome.otf +0 -0
  512. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  513. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.svg +0 -2671
  514. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  515. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  516. package/src/app/ui/editor-client/src/vendor/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  517. package/src/app/ui/editor-client/src/vendor/i18next/i18next.min.js +0 -5
  518. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.eot +0 -0
  519. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.svg +0 -2105
  520. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.ttf +0 -0
  521. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff +0 -0
  522. package/src/app/ui/editor-client/src/vendor/icofont/fonts/icofont.woff2 +0 -0
  523. package/src/app/ui/editor-client/src/vendor/icofont/icofont.min.css +0 -7
  524. package/src/app/ui/editor-client/src/vendor/jqtree/jqTreeContextMenu.js +0 -98
  525. package/src/app/ui/editor-client/src/vendor/jqtree/jqtree.css +0 -209
  526. package/src/app/ui/editor-client/src/vendor/jqtree/tree.jquery.js +0 -21
  527. package/src/app/ui/editor-client/src/vendor/jqtree/tree.jquery.js.map +0 -1
  528. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/animated-overlay.gif +0 -0
  529. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  530. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  531. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  532. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  533. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  534. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  535. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  536. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  537. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  538. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  539. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  540. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  541. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  542. package/src/app/ui/editor-client/src/vendor/jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css +0 -5
  543. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-1.11.3.min.js +0 -5
  544. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery-ui-1.10.3.custom.min.js +0 -7
  545. package/src/app/ui/editor-client/src/vendor/jquery/js/jquery.ui.touch-punch.min.js +0 -11
  546. package/src/app/ui/editor-client/src/vendor/jquery-contextMenu/jquery-contextMenu.css +0 -309
  547. package/src/app/ui/editor-client/src/vendor/jquery-contextMenu/jquery-contextMenu.js +0 -2134
  548. package/src/app/ui/editor-client/src/vendor/jquery-contextMenu/jquery-ui-position.js +0 -513
  549. package/src/app/ui/editor-client/src/vendor/jsonata/formatter.js +0 -190
  550. package/src/app/ui/editor-client/src/vendor/jsonata/mode-jsonata.js +0 -134
  551. package/src/app/ui/editor-client/src/vendor/jsonata/snippets-jsonata.js +0 -11
  552. package/src/app/ui/editor-client/src/vendor/jsonata/worker-jsonata.js +0 -2140
  553. package/src/app/ui/editor-client/src/vendor/kumologica/http-test-case.js +0 -131
  554. package/src/app/ui/editor-client/src/vendor/marked/marked.min.js +0 -6
  555. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.css +0 -181
  556. package/src/app/ui/editor-client/src/vendor/misc/toggleswitch.js +0 -48
  557. package/src/app/ui/editor-client/templates/index.mst +0 -284
  558. package/src/app/ui/editor-client/templates/modals/modalHome.mst +0 -107
  559. package/src/app/ui/editor-client/templates/modals/modalNewProject.mst +0 -104
  560. package/src/app/ui/editor-client/templates/modals/modalNewTab.mst +0 -78
  561. package/src/app/ui/editor-client/templates/modals/modalNodeLibrary.mst +0 -72
  562. package/src/app/ui/editor-client/templates/modals/modalWelcome.mst +0 -111
  563. package/src/app/util.js +0 -9
  564. package/src/assets/eula.txt +0 -170
  565. package/src/assets/icon.icns +0 -0
  566. package/src/assets/kumologica-app.png +0 -0
  567. package/src/assets/license_en.txt +0 -170
  568. /package/{cli/commands/test-utils → src/api/tools/test/lib}/fixtures/example3-flow.json +0 -0
  569. /package/{cli/commands/test-utils → src/api/tools/test/lib}/fixtures/package.json +0 -0
  570. /package/{cli/commands/test-utils → src/api/tools/test/lib}/fixtures/s3-event.js +0 -0
@@ -1,988 +0,0 @@
1
- const fs = require('fs-extra');
2
- const path = require('path');
3
- const AWS = require('aws-sdk');
4
- const AdmZip = require('adm-zip');
5
- const util = require('util');
6
- const exec = util.promisify(require('child_process').exec);
7
- const rimraf = require('rimraf');
8
- const { codegen } = require('@kumologica/builder');
9
- const AWSCFTemplate = require('./cf');
10
- const CAAWSCloudWatch = require('./ca-cloudwatch-api');
11
- const CAAWSIot = require('./ca-iot-api');
12
- const CAS3 = require('./ca-s3-api');
13
- const CASNS = require('./ca-sns-api');
14
- const CASQS = require('./ca-sqs-api');
15
- const CAAWSApiGateway = require('./ca-apigw-api');
16
- const CADynamoDb = require('./ca-dynamodb-api');
17
- const CAElb = require('./ca-elb-api');
18
- const CAEvents = require('./ca-events-api');
19
- const CAAlexa = require('./ca-alexa-api');
20
- const CACodeCommit = require('./ca-codecommit-api');
21
- const AWSProfile = require('./aws-profile');
22
- const KLIAM = require('./kl-iam-api');
23
- const { openFileOnEditor } = require('../utils/editor');
24
-
25
- /**
26
- * sample events:
27
- * https://docs.aws.amazon.com/lambda/latest/dg/lambda-services.html
28
- */
29
- class AWSDeployer {
30
- constructor(terminal) {
31
- this.term = terminal;
32
- this.awsProfile = new AWSProfile();
33
-
34
- AWS.config.apiVersions = {
35
- cloudformation: '2010-05-15',
36
- };
37
- }
38
-
39
- async initAWS(profile) {
40
- AWS.config.credentials = new AWS.SharedIniFileCredentials({profile: profile});
41
- AWS.config.profile = profile; // this is not AWS property
42
-
43
- const region = await this.awsProfile.getRegion(profile);
44
- AWS.config.update({region: region});
45
-
46
- this.cw = false;
47
-
48
- this.iot = new CAAWSIot(this.log.bind(this));
49
- this.apiGateway = new CAAWSApiGateway(this.log.bind(this));
50
- this.dynamoDb = new CADynamoDb(this.log.bind(this));
51
- this.cf = new AWS.CloudFormation();
52
- this.s3 = new CAS3(this.log.bind(this));
53
- this.sns = new CASNS(this.log.bind(this));
54
- this.sqs = new CASQS(this.log.bind(this));
55
- this.lambdaApi = new AWS.Lambda();
56
- this.cfTemplate = new AWSCFTemplate();
57
- this.cwLogs = new CAAWSCloudWatch(this.logCloud.bind(this));
58
- this.cwevents = new AWS.CloudWatchEvents();
59
- this.cognito = new AWS.CognitoIdentityServiceProvider();
60
- this.elb = new CAElb(this.log.bind(this));
61
- this.events = new CAEvents(this.log.bind(this));
62
- this.alexa = new CAAlexa(this.log.bind(this));
63
- this.codecommit = new CACodeCommit(this.log.bind(this));
64
- this.iam = new KLIAM(this.log.bind(this));
65
- }
66
-
67
- chalk(c, t) {
68
- if (c == 'whiteBright') {
69
- c = '#FFFFFF';
70
- } else if (c == 'redBright') {
71
- c = '#FF0000';
72
- } else if (c == 'yellowBright') {
73
- c = '#FFFF00';
74
- } else if (c == 'greenBright') {
75
- c = '#00FF00';
76
- }
77
-
78
- return `<span style="color: ${c}">${t}</span>`;
79
- }
80
-
81
- log(text, calog = true) {
82
- var t = text;
83
-
84
- if (calog && this.chalk) {
85
- t = `Kumologica: ${this.chalk('#F5DEB3', text)}`;
86
- }
87
-
88
- if (this.term) {
89
- this.term.emit('terminal-output', t);
90
- }
91
- }
92
-
93
- logCloud(text) {
94
- if (this.term) {
95
- this.term.emit('terminal-cloud', `${text}`);
96
- }
97
- }
98
-
99
- sanitizeLambdaName(name) {
100
-
101
- return name
102
- .replace('.json', '')
103
- .trim()
104
- .replace(/^@/, '')
105
- .replace(/[^a-zA-Z0-9-]/g, '-')
106
- .substr(0, 140);
107
- }
108
-
109
- prepare(projectDir, flowFileName, originaLambdaName) {
110
- const deployDir = projectDir + '/deploy';
111
-
112
- const flowName = flowFileName.replace('.json', '');
113
-
114
- // setup deployment directory
115
- fs.ensureDirSync(deployDir);
116
- fs.emptyDirSync(deployDir);
117
- fs.ensureDirSync(deployDir + '/node_modules');
118
-
119
- // copy project files
120
- codegen.generateProjectCode(
121
- deployDir,
122
- flowFileName
123
- );
124
-
125
- this.processPackageJson(projectDir, deployDir);
126
-
127
- const zipFileName = `${flowName}/lambda${Date.now()}.zip`;
128
- const lambdaName = this.sanitizeLambdaName(originaLambdaName);
129
-
130
- const functionName = `kumologica-${lambdaName}-lambda`;
131
- const stackName = `kumologica-${lambdaName}-stack`;
132
- const roleName = `kumologica-${lambdaName}-role`;
133
- return {
134
- deployDir,
135
- flowName,
136
- zipFileName,
137
- functionName,
138
- stackName,
139
- roleName,
140
- lambdaName,
141
- };
142
- }
143
-
144
- processPackageJson(projectDir, deployDir) {
145
-
146
- const pckg = this.loadJsonFile(path.join(projectDir, 'package.json'));
147
-
148
- // ensure dependencies contain runtime
149
- if (!pckg.dependencies["@kumologica/runtime"]) {
150
- pckg.dependencies["@kumologica/runtime"] = `^${pckg.version.substr(0, 1)}`;
151
- this.createFile(deployDir, 'package.json', JSON.stringify(pckg));
152
-
153
- } else {
154
- fs.copySync(
155
- path.join(projectDir, 'package.json'),
156
- path.join(deployDir, 'package.json')
157
- );
158
- }
159
-
160
- if (pckg.files) {
161
- pckg.files.forEach(f => {
162
-
163
- if (!["node_modules/**/*", "lambda.js" ].includes(f)) {
164
- fs.copySync(
165
- path.join(projectDir, f),
166
- path.join(deployDir, f)
167
- );
168
- }
169
- });
170
- }
171
- }
172
-
173
- /**
174
- *
175
- * @param {String} flowName
176
- */
177
- async prepareS3Bucket(flowName) {
178
- let bucketName = undefined;
179
-
180
- // find bucket
181
- const buckets = await this.s3.getBuckets();
182
-
183
- if (buckets) {
184
- bucketName = buckets.find(function (b) {
185
- return b.id.startsWith('kumologica-designer-deploy');
186
- });
187
- }
188
- // if not found create bucket
189
-
190
- if (!bucketName) {
191
- const ts = Date.now();
192
- let uniqueId = Math.random().toString(36).substring(2) + ts.toString(36);
193
- bucketName = `kumologica-designer-deploy-${uniqueId}-${ts}`;
194
- await this.s3.createS3Bucket(bucketName);
195
- } else {
196
- bucketName = bucketName.id;
197
- await this.s3.deleteS3Objects(bucketName, `${flowName}/`);
198
- }
199
-
200
- return bucketName;
201
- }
202
- /*
203
- * Main function orchestrating build and deployment of lambda to aws.
204
- */
205
- async deploy(projectInfo, params, profile) {
206
- if (!profile) {
207
- throw new Error(
208
- 'AWS profile has not been provided, unable to deploy kumologica flow into AWS. Select correct profile from list.'
209
- );
210
- }
211
-
212
- const deploymentStart = Date.now();
213
- var lambdaArn;
214
-
215
- this.log(`Deployment to AWS Started:`);
216
- this.log(` ${this.chalk('#F5DEB3', 'flow:')} ${this.chalk('whiteBright', projectInfo.projectFlowName)}`, false);
217
- this.log(` ${this.chalk('#F5DEB3', 'working directory:')} ${this.chalk('whiteBright', projectInfo.projectDir + "/deploy")}`, false);
218
- this.log(` ${this.chalk('#F5DEB3', 'lambda parameters:')} ${this.chalk('whiteBright', JSON.stringify(params))}`, false);
219
- this.log(` ${this.chalk('#F5DEB3', 'AWS profile:')} ${this.chalk('whiteBright', AWS.config.profile)}`, false);
220
-
221
- await this.initAWS(profile);
222
- this.log(` ${this.chalk('#F5DEB3', 'AWS region:')} ${this.chalk('whiteBright', AWS.config.region)}`, false);
223
- this.log('', false);
224
-
225
- const settings = this.prepare(
226
- projectInfo.projectDir,
227
- projectInfo.projectFlowName,
228
- params.functionName
229
- );
230
-
231
- let flowListeners = null;
232
-
233
- try {
234
- settings.deploymentBucketName = await this.prepareS3Bucket(
235
- settings.flowName
236
- );
237
- await this.buildLambda(settings);
238
-
239
- const nodes = this.loadJsonFile(
240
- path.join(projectInfo.projectDir, projectInfo.projectFlowName)
241
- );
242
-
243
- flowListeners = this.processFlow(nodes);
244
-
245
- const stackDetails = await this.executeStack(
246
- settings,
247
- params,
248
- deploymentStart,
249
- nodes
250
- );
251
- lambdaArn = stackDetails.Stacks[0].Outputs[0].OutputValue;
252
-
253
- this.log(`${this.chalk('greenBright', 'Deployment successful.')}`);
254
- this.log(
255
- ` ${this.chalk('#F5DEB3', 'StackId:')} ${this.chalk('whiteBright',
256
- stackDetails.Stacks[0].StackId
257
- )}`,
258
- false
259
- );
260
- this.log(` ${this.chalk('#F5DEB3', 'LambdaArn:')} ${this.chalk('whiteBright',lambdaArn)}`, false);
261
- this.log('', false);
262
-
263
- // this call to be moved out to the terminals panel
264
- /*if (this.cw == false) {
265
- this.cwLogs.startCWLogs(settings.functionName, AWS.config.region);
266
- this.cw = true;
267
- }*/
268
- } catch (error) {
269
- this.log(`${this.chalk('redBright', 'Deployment failed.')}`);
270
- this.log(` ${this.chalk('redBright', error)}`);
271
- } finally {
272
- //this.s3.deleteS3Bucket(deploymentBucketName);
273
- }
274
-
275
- let response = {};
276
- if (lambdaArn) {
277
- try {
278
- response = await this.runTriggers(params, settings, lambdaArn);
279
- if (response) {
280
- const url = `https://${response.apiId}.execute-api.${AWS.config.region}.amazonaws.com/${response.stage}`;
281
- this.printSignature(url, flowListeners, params);
282
- }
283
- } catch (error) {
284
- this.log(`${this.chalk('redBright', 'Trigger creation failed.')}`);
285
- this.log(` ${this.chalk('redBright', error)}`);
286
- }
287
- }
288
- return response;
289
- }
290
-
291
- printSignature(url, s, p) {
292
- this.log(' ')
293
-
294
- if (s.api && s.api.length > 0) {
295
- this.log('API Gateway:');
296
- s.api.forEach(a => this.log(` ${(' ' + a.verb.toUpperCase()).slice(-6)} ${url}${a.url}`), this);
297
- this.log('');
298
- }
299
-
300
- if (s.dynamodb && s.dynamodb.length > 0) {
301
- this.log('DynamoDB Streams:');
302
- s.dynamodb.forEach(a => this.log(` ${a.startingPosition} ${a.stream}`), this);
303
- this.log('');
304
- }
305
-
306
- if (s.s3 && s.s3.length > 0) {
307
- this.log('S3:');
308
- s.s3.forEach(a => this.log(` ${a.eventType} ${a.bucket}`), this);
309
- this.log('');
310
- }
311
-
312
- if (s.sns && s.sns.length > 0) {
313
- this.log('SNS Topics:');
314
- s.sns.forEach(a => this.log(` ${a.topic}`), this);
315
- this.log('');
316
- }
317
-
318
- if (s.iot && s.iot.length > 0) {
319
- this.log('IOT:');
320
- s.iot.forEach(a => this.log(` ${a.rule} ${a.query}`), this);
321
- this.log('');
322
- }
323
-
324
- if (s.alb && s.alb.length > 0) {
325
- this.log('Application Load Balancer:');
326
- s.alb.forEach(a => this.log(` ${a.alb} ${a.listener}`), this);
327
- this.log('');
328
- }
329
-
330
- if (p.events && p.events.length > 0) {
331
- const sqs = p.events.filter(i => i.source == 'sqs');
332
- if (sqs && sqs.length > 0) {
333
- this.log('SQS URL:');
334
- sqs.forEach(a => this.log(` ${a.url}`), this);
335
- this.log('');
336
- }
337
- }
338
-
339
- if (s.alexa && s.alexa.length > 0) {
340
- this.log('Alexa Skills:');
341
- s.alexa.forEach(a => this.log(` ${a.skillId}`), this);
342
- this.log('');
343
- }
344
-
345
- if (s.kinesis && s.kinesis.length > 0) {
346
- this.log('Kinesis:');
347
- s.kinesis.forEach(a => this.log(` ${a.startingPosition} ${a.stream}`), this);
348
- this.log('');
349
- }
350
-
351
- if (s.cwevents && s.cwevents.length > 0) {
352
- this.log('Cloud Watch Events Rules:');
353
- s.cwevents.forEach(a => this.log(` ${a.rule}`), this);
354
- this.log('');
355
- }
356
- }
357
-
358
- processFlow(flow) {
359
-
360
- const listener = flow.filter(i => i.type == "EventListener");
361
- if (!listener || listener.length == 0) {
362
- throw new Error("Flow has no EventListener defined, unable to deploy to aws account.");
363
- }
364
-
365
- const nonAWSlisteners = flow.filter(i => i.type == "EventListener" && i.provider != "aws");
366
- if (nonAWSlisteners && nonAWSlisteners.length > 0) {
367
- const names = nonAWSlisteners.map(l => l.name).concat();
368
- this.log(`${this.chalk('yellowBright', `Warning (Invalid provider): Kumohub API Gateway Event Listeners found ${names} for AWS Account deployment.`)}`);
369
- }
370
-
371
- if (nonAWSlisteners && nonAWSlisteners.length >= 0 && listener.length == nonAWSlisteners.length) {
372
- throw new Error("Flow has no EventListener for AWS defined, unable to deploy to aws account.");
373
- }
374
-
375
- // api
376
- const apis = listener.filter(i => i.eventSource == 'api' && i.provider == 'aws')
377
- .map(a => {return {url: a.apiUrl, verb: a.apiMethod}});
378
-
379
- // validate if aws nodes got explicit credentials only
380
- /*const awsNodes = flow.filter(i => ['Rekognition', 'S3', 'SQS', 'Cloudwatch', 'Dynamo DB', 'SNS', 'SES', 'SSM'].includes(i.type));
381
- if (awsNodes && awsNodes.length > 0) {
382
- awsNodes.forEach(n => {
383
- if (!n.securitytype || n.securitytype != 'Credentials') {
384
- throw new Error (`AWS Node ${n.name} must have explicit credentials set. Open this node and choose Credentials option.`);
385
- }
386
- });
387
- }*/
388
-
389
- const dynamodb = listener.filter(i => i.eventSource == 'dynamodb')
390
- .map(a => {return {stream: a.stream, startingPosition: a.startingPosition}});
391
- const s3 = listener.filter(i => i.eventSource == 's3')
392
- .map(a => {return {bucket: a.bucket, eventType: a.eventType}});
393
- const sns = listener.filter(i => i.eventSource == 'sns')
394
- .map(a => {return {topic: a.topic}});
395
- const iot = listener.filter(i => i.eventSource == 'iot')
396
- .map(a => {return {rule: a.rule, query: a.query}});
397
- const alb = listener.filter(i => i.eventSource == 'alb')
398
- .map(a => {return {alb: a.alb, listener: a.listener}});
399
- const sqs = listener.filter(i => i.eventSource == 'sqs')
400
- .map(a => {return {queueUrl: a.stream}});
401
- const alexa = listener.filter(i => i.eventSource == 'alexa')
402
- .map(a => {return {skillId: a.skillId}});
403
- const kinesis = listener.filter(i => i.eventSource == 'kinesis')
404
- .map(a => {return {stream: a.stream, startingPosition: a.startingPosition}});
405
- const cwevents = listener.filter(i => i.eventSource == 'cwevents')
406
- .map(a => {return {rule: a.rule}});
407
-
408
- return {
409
- api: apis,
410
- dynamodb: dynamodb,
411
- s3: s3,
412
- sns: sns,
413
- iot: iot,
414
- alb: alb,
415
- sqs: sqs,
416
- alexa: alexa,
417
- kinesis: kinesis,
418
- cwevents: cwevents
419
- // cron: listener.filter(l => l.eventSource == 'cwevents')
420
- // .map(l => {return {type: "cron", expression: l.cronexpression, id: l.id}})
421
- };
422
- }
423
-
424
- async generateScript(projectInfo, params, profile) {
425
- if (!profile) {
426
- throw new Error(
427
- 'AWS profile has not been provided, unable to generate cloud formation script. Select correct profile from list.'
428
- );
429
- }
430
-
431
- try {
432
- this.log('Generating cloud formation script');
433
- this.log(
434
- ` ${this.chalk('#F5DEB3', 'AWS profile:')} ${this.chalk('whiteBright', AWS.config.profile)}`,
435
- false
436
- );
437
-
438
- await this.initAWS(profile);
439
-
440
- this.log(` ${this.chalk('#F5DEB3', 'AWS region:')} ${this.chalk('whiteBright', AWS.config.region)}`, false);
441
-
442
- const settings = this.prepare(projectInfo.projectDir, projectInfo.projectFlowName, params.functionName, params.description);
443
- const nodes = await this.prepareNodes(this.loadJsonFile(path.join(projectInfo.projectDir, projectInfo.projectFlowName)));
444
-
445
- settings.deploymentBucketName = await this.prepareS3Bucket(
446
- settings.flowName
447
- );
448
-
449
- const lambdaCfTemplate = JSON.stringify(
450
- this.cfTemplate.createCfTemplate(
451
- params,
452
- settings,
453
- nodes,
454
- AWS.config.region
455
- ),
456
- null,
457
- 2
458
- );
459
-
460
- this.createFile(
461
- settings.deployDir,
462
- `cf-${projectInfo.projectFlowName}`,
463
- lambdaCfTemplate
464
- );
465
-
466
- const scriptFileName = path.join(
467
- settings.deployDir,
468
- `cf-${projectInfo.projectFlowName}`
469
- );
470
- this.log(`Cloud formation script created: ${scriptFileName}`);
471
- openFileOnEditor(scriptFileName);
472
- } catch (Error) {
473
- this.log(`${this.chalk('redBright', 'Script creation failed.')}`);
474
- this.log(` ${this.chalk('redBright', Error)}`);
475
- throw Error;
476
- }
477
- }
478
-
479
-
480
- /*
481
- * Builds lambda and zips all sources.
482
- */
483
- async buildLambda(settings) {
484
- this.log('Building lambda...');
485
-
486
- const npmCmd = `npm install --production --prefix "${settings.deployDir}"`;
487
- const response = await exec(npmCmd, { cwd: settings.deployDir });
488
-
489
- if (response) {
490
- this.log('', false);
491
- const lines = response.stdout.split('\n');
492
- for (var i = 0; i < lines.length; i++) {
493
- if (lines[i]) {
494
- this.log(lines[i], false);
495
- }
496
- }
497
- this.log('', false);
498
- }
499
-
500
- this.log('Excluding optional dependencies...');
501
-
502
- // for npm 8 on windows is creating symlink that causes recursions and zip to fail
503
- const splitdir = path.dirname(settings.deployDir).split(path.sep);
504
- const linkname = splitdir[splitdir.length-1];
505
- try {
506
- fs.unlinkSync(path.join(settings.deployDir, 'node_modules', linkname));
507
- } catch (e) {
508
- // ignore ENOENT
509
- if (e.code !== "ENOENT") {
510
- throw e;
511
- }
512
- }
513
-
514
- // Remove aws-sdk library as it is provided by aws nodejs runtime.
515
- // Reducing the resulting lambda zip file by more than 70%
516
- rimraf.sync(path.join(settings.deployDir, 'node_modules', 'aws-sdk'));
517
-
518
- this.log('Zipping lambda...');
519
- const zip = new AdmZip();
520
- zip.addLocalFolder(settings.deployDir);
521
- zip.writeZip(path.join(settings.deployDir, settings.zipFileName));
522
- }
523
-
524
- /*
525
- * Uploads lambda zip file to s3 bucket, creates cloud formation template for lambda
526
- * and executes create or update stack.
527
- * Returns stack id
528
- */
529
- async executeStack(settings, params, deploymentStartTimestamp, nodes) {
530
- this.log(`Uploading zip file to bucket...`);
531
- var body = fs.createReadStream(
532
- path.join(settings.deployDir, settings.zipFileName)
533
- );
534
-
535
- await this.s3.upload({
536
- Bucket: settings.deploymentBucketName,
537
- Key: settings.zipFileName,
538
- Body: body,
539
- });
540
-
541
- params = await this.prepareParams(params);
542
- nodes = await this.prepareNodes(nodes);
543
-
544
- const lambdaCfTemplate = this.cfTemplate.createCfTemplate(
545
- params,
546
- settings,
547
- nodes,
548
- AWS.config.region
549
- );
550
-
551
- const stackParams = {
552
- StackName: settings.stackName,
553
- Capabilities: ['CAPABILITY_NAMED_IAM'],
554
- TemplateBody: JSON.stringify(lambdaCfTemplate),
555
- };
556
-
557
- this.log('Starting cloudformation stack...');
558
-
559
- let stack = {};
560
- try {
561
- stack = await this.cf.createStack(stackParams).promise();
562
- this.log('Waiting for stack create complete...');
563
- await this.cf
564
- .waitFor('stackCreateComplete', { StackName: stackParams.StackName })
565
- .promise();
566
- } catch (error) {
567
- if (error.code == 'AlreadyExistsException') {
568
- stack = await this.cf.updateStack(stackParams).promise();
569
- this.log('Waiting for stack update complete...');
570
-
571
- try {
572
- await this.cf
573
- .waitFor('stackUpdateComplete', {
574
- StackName: stackParams.StackName,
575
- })
576
- .promise();
577
- } catch (error) {
578
- await this.describeStackEvents(
579
- stackParams.StackName,
580
- deploymentStartTimestamp
581
- );
582
- throw Error(error);
583
- }
584
- } else {
585
- await this.describeStackEvents(
586
- stackParams.StackName,
587
- deploymentStartTimestamp
588
- );
589
- throw Error(error);
590
- }
591
- }
592
-
593
- return this.describeStack(stackParams.StackName);
594
- }
595
-
596
- /**
597
- * Function links additional details for parameters that are not needed
598
- * in ui but are required by cloud formation
599
- *
600
- * @param {*} params
601
- */
602
- async prepareParams(params) {
603
- for (var i = 0; i < params.events.length; i++) {
604
- if (params.events[i].source === 'sqs') {
605
- if (!params.events[i].stream) {
606
- throw Error(`Missing Trigger Parameter: SQS Queue Url.`);
607
- }
608
- params.events[i].url = params.events[i].stream;
609
- params.events[i].stream = await this.sqs.getQueueArn(
610
- params.events[i].stream
611
- );
612
- } else if (params.events[i].source === 'codecommit') {
613
- if (!params.events[i].repository) {
614
- throw Error(`Missing Trigger Parameter: CodeCommit Repository.`);
615
- }
616
- const repository = await this.codecommit.getRepository(
617
- params.events[i].repository
618
- );
619
- params.events[i].repositoryArn = repository.Arn;
620
- params.events[i].account = repository.accountId;
621
- }
622
- }
623
- return params;
624
- }
625
-
626
- async prepareNodes(nodes) {
627
- for (var i = 0; i < nodes.length; i++) {
628
- if (nodes[i].type === 'SQS') {
629
- if (!nodes[i].QueueUrl) {
630
- throw Error(`Missing Node Parameter: SQS Queue Url.`);
631
- }
632
- nodes[i].QueueArn = await this.sqs.getQueueArn(nodes[i].QueueUrl);
633
- }
634
- }
635
- return nodes;
636
- }
637
-
638
- async runTriggers(params, settings, lambdaArn) {
639
- let response = {};
640
-
641
- if (params.events) {
642
- this.log('Adding flow triggers ...');
643
-
644
- for (var i = 0; i < params.events.length; i++) {
645
- if (params.events[i].source === 's3') {
646
- await this.addS3Event(
647
- params.events[i],
648
- settings.functionName,
649
- lambdaArn
650
- );
651
- } else if (params.events[i].source === 'sns') {
652
- await this.addSNSEvent(
653
- params.events[i],
654
- settings.functionName,
655
- lambdaArn
656
- );
657
- } else if (params.events[i].source === 'cwevents') {
658
- await this.addCWEvent(
659
- params.events[i],
660
- settings.functionName,
661
- lambdaArn
662
- );
663
- } else if (params.events[i].source === 'cwlogs') {
664
- await this.addCWLogsEvent(
665
- params.events[i],
666
- settings.functionName,
667
- lambdaArn
668
- );
669
- } else if (params.events[i].source === 'cognito') {
670
- await this.addCognitoEvent(
671
- params.events[i],
672
- settings.functionName,
673
- lambdaArn
674
- );
675
- } else if (params.events[i].source === 'alexa') {
676
- await this.addAlexaEvent(
677
- params.events[i],
678
- settings.functionName,
679
- lambdaArn
680
- );
681
- } else if (params.events[i].source === 'codecommit') {
682
- await this.addCodeCommitEvent(
683
- params.events[i],
684
- settings.functionName,
685
- lambdaArn
686
- );
687
- } else if (params.events[i].source === 'iot') {
688
- var rule = await this.iot.addTrigger(
689
- params.events[i],
690
- settings.functionName,
691
- lambdaArn
692
- );
693
- if (rule) {
694
- await this.addLambdaPermission(
695
- 'iot.amazonaws.com',
696
- settings.functionName,
697
- null,
698
- rule.ruleArn
699
- );
700
- }
701
- } else if (params.events[i].source === 'api') {
702
- const newApiId = await this.apiGateway.addTrigger(
703
- params.events[i],
704
- settings.functionName,
705
- lambdaArn
706
- );
707
-
708
- response.apiId = newApiId? newApiId: params.events[i].api;
709
- response.stage = params.events[i].stage;
710
-
711
- //arn:aws:lambda:ap-southeast-2:640233474616:function:kumologica-aws-inbound-test-flow-lambda
712
- const lambdaArnParts = lambdaArn.split(':');
713
- const apiArn = `arn:aws:execute-api:${lambdaArnParts[3]}:${lambdaArnParts[4]}:${params.events[i].api}/*/*/{proxy+}`;
714
- await this.addLambdaPermission(
715
- 'apigateway.amazonaws.com',
716
- settings.functionName,
717
- null,
718
- apiArn
719
- );
720
- }
721
- }
722
- this.log(`${this.chalk('greenBright', 'All triggers added successfully:')}`);
723
- }
724
- return response;
725
- }
726
-
727
- async describeStack(stackName) {
728
- return this.cf.describeStacks({ StackName: stackName }).promise();
729
- }
730
-
731
- /*
732
- * Returns events created by cloud formation for current run.
733
- */
734
- async describeStackEvents(stackName, deploymentStartTimestamp) {
735
- this.log('Calling describe stack events...');
736
-
737
- const events = await this.cf
738
- .describeStackEvents({ StackName: stackName })
739
- .promise();
740
- if (!events || events == undefined) {
741
- return;
742
- }
743
-
744
- var deploymentEvents = events.StackEvents.filter(
745
- (event) => event.Timestamp > deploymentStartTimestamp
746
- ).sort((a, b) => a.Timestamp - b.Timestamp);
747
- if (deploymentEvents == undefined || deploymentEvents.length == 0) {
748
- return;
749
- }
750
-
751
- const formatStatus = function (status, chalk) {
752
- if (['CREATE_COMPLETE', 'UPDATE_COMPLETE'].includes(status)) {
753
- return chalk('greenBright', status);
754
- } else if (status.endsWith('_FAILED') || status.includes('ROLLBACK')) {
755
- return chalk('redBright', status);
756
- } else {
757
- return status;
758
- }
759
- };
760
-
761
- this.log('', false);
762
- for (var i = 0; i < deploymentEvents.length; i++) {
763
- this.log(
764
- `${deploymentEvents[i].Timestamp.toLocaleTimeString()} - ${formatStatus(
765
- deploymentEvents[i].ResourceStatus
766
- , this.chalk.bind(this))} - ${deploymentEvents[i].ResourceType || ''} - ${
767
- deploymentEvents[i].ResourceStatusReason || ''
768
- }`,
769
- false
770
- );
771
- }
772
- this.log('', false);
773
- }
774
-
775
- loadJsonFile(flowFileName) {
776
- return JSON.parse(fs.readFileSync(flowFileName));
777
- }
778
-
779
- createFile(baseDir, fileName, content) {
780
- fs.outputFileSync(path.join(baseDir, fileName), content, 'utf-8');
781
- }
782
-
783
- async addLambdaPermission(
784
- principal,
785
- lambdaName,
786
- sourceAccount,
787
- sourceArn,
788
- eventSourceToken
789
- ) {
790
- var request = {
791
- Action: 'lambda:InvokeFunction',
792
- FunctionName: lambdaName,
793
- Principal: principal,
794
- SourceAccount: sourceAccount,
795
- SourceArn: sourceArn,
796
- EventSourceToken: eventSourceToken,
797
- StatementId: `${lambdaName}-${Date.now()}`,
798
- };
799
-
800
- // wait for response, the subsequent calls require permissions to be present.
801
- await this.lambdaApi.addPermission(request).promise();
802
- }
803
-
804
- async addS3Event(event, lambdaName, lambdaArn) {
805
- if (!event.bucket) {
806
- throw Error(`Missing Trigger Parameter: Bucket Name.`);
807
- }
808
-
809
- this.log(
810
- `Setting lambda execution permissions for bucket ${event.bucket} ...`
811
- );
812
- await this.addLambdaPermission(
813
- 's3.amazonaws.com',
814
- lambdaName,
815
- event.sourceAccount,
816
- `arn:aws:s3:::${event.bucket}`
817
- );
818
-
819
- await this.s3.bucketNotificationConfiguration(
820
- lambdaArn,
821
- event.bucket,
822
- event.eventType,
823
- event.prefix,
824
- event.suffix
825
- );
826
- }
827
-
828
- async addAlexaEvent(event, lambdaName, lambdaArn) {
829
- this.log(`Setting configuration for alexa skill id ${event.skillID} ...`);
830
- await this.addLambdaPermission(
831
- 'alexa-appkit.amazon.com',
832
- lambdaName,
833
- null,
834
- null,
835
- event.skillID
836
- );
837
- }
838
-
839
- async addCodeCommitEvent(event, lambdaName, lambdaArn) {
840
- this.log(
841
- `Setting configuration for code commit repository ${event.repository} ...`
842
- );
843
-
844
- await this.addLambdaPermission(
845
- 'codecommit.amazon.com',
846
- lambdaName,
847
- event.account,
848
- event.repositoryArn
849
- );
850
-
851
- this.log('Adding permissions for lambda to call codecommit.');
852
- await this.codecommit.addLambdaPermissions(event, lambdaArn);
853
- }
854
-
855
- async addSNSEvent(event, lambdaName, lambdaArn) {
856
- await this.addLambdaPermission(
857
- 'sns.amazonaws.com',
858
- lambdaName,
859
- null,
860
- event.topic
861
- );
862
-
863
- this.log(`Setting notification configuration for topic ${event.topic} ...`);
864
- await this.sns.subscribe(event.topic, lambdaArn);
865
- }
866
-
867
- async addCWEvent(event, lambdaName, lambdaArn) {
868
- await this.addLambdaPermission(
869
- 'events.amazonaws.com',
870
- lambdaName,
871
- null,
872
- event.rule
873
- );
874
-
875
- const ruleName = event.rule.split('rule/').pop();
876
-
877
- this.log(
878
- `Setting notification configuration for cloudwatch event ${ruleName} ...`
879
- );
880
-
881
- var params = {
882
- Rule: ruleName,
883
- Targets: [
884
- {
885
- Arn: lambdaArn,
886
- Id: `${lambdaName}`,
887
- },
888
- ],
889
- };
890
-
891
- await this.cwevents.putTargets(params).promise();
892
- }
893
-
894
- /**
895
- * https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CloudWatchLogs.html#putSubscriptionFilter-property
896
- *
897
- * @param {*} event
898
- * @param {*} lambdaName
899
- * @param {*} lambdaArn
900
- */
901
- async addCWLogsEvent(event, lambdaName, lambdaArn) {
902
- //await this.addLambdaPermission("events.amazonaws.com",
903
- // lambdaName, null, event.rule);
904
-
905
- /*this.log(`Setting notification configuration for cloudwatch event ${ruleName} ...`);
906
- var params = {
907
- destinationArn: 'STRING_VALUE', // required
908
- filterName: 'STRING_VALUE', // required
909
- filterPattern: 'STRING_VALUE', // required
910
- logGroupName: 'STRING_VALUE', // required
911
- distribution: Random | ByLogStream,
912
- roleArn: 'STRING_VALUE'
913
- };*/
914
- await this.cwLogs.putSubscriptionFilter(params).promise();
915
- }
916
-
917
- async addCognitoEvent(event, lambdaName, lambdaArn) {
918
- await this.addLambdaPermission(
919
- 'cognito-idp.amazonaws.com',
920
- lambdaName,
921
- null,
922
- event.identityPool
923
- );
924
-
925
- const ruleName = event.rule.split('rule/').pop();
926
-
927
- // TODO: add cognito implementation
928
- //this.log(`Setting notification configuration for cloudwatch event ${ruleName} ...`);
929
- var params = {};
930
-
931
- await this.cognito.updateUserPool(params).promise();
932
- }
933
-
934
- async listServices(type, profile) {
935
- if (!profile) {
936
- throw new Error(
937
- `AWS profile has not been provided, unable to return list of ${type}. Select correct profile from list.`
938
- );
939
- }
940
-
941
- await this.initAWS(profile);
942
-
943
- let res = null;
944
- switch (type) {
945
- case 'api':
946
- res = await this.apiGateway.getApiGateways();
947
- break;
948
- case 's3':
949
- res = await this.s3.getBuckets();
950
- break;
951
- case 'sns':
952
- res = await this.sns.getTopics();
953
- break;
954
- case 'sqs':
955
- res = await this.sqs.getQueues();
956
- break;
957
- case 'dynamodb':
958
- res = await this.dynamoDb.listStreams();
959
- break;
960
- case 'cwlogs':
961
- res = await this.cwLogs.listLogGroups();
962
- break;
963
- case 'alb':
964
- res = await this.elb.listElbs();
965
- break;
966
- case 'cwevents':
967
- res = await this.events.listRules();
968
- break;
969
- case 'iot':
970
- res = await this.iot.listTopicRules();
971
- break;
972
- case 'alexa':
973
- res = await this.alexa.listSkills();
974
- break;
975
- case 'codecommit':
976
- res = await this.codecommit.listRepositories();
977
- break;
978
- case 'iamroles':
979
- res = await this.iam.listRoles();
980
- break;
981
- default:
982
- res = [];
983
- }
984
- return res;
985
- }
986
- }
987
-
988
- module.exports = AWSDeployer;