@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,1762 +0,0 @@
1
- RED.nodes = (function () {
2
- var node_defs = {};
3
- var nodes = [];
4
- var configNodes = {};
5
- var links = [];
6
- var defaultWorkspace;
7
- var workspaces = {};
8
- var workspacesOrder = [];
9
- var subflows = {};
10
- var loadedFlowVersion = null;
11
-
12
- var initialLoad;
13
-
14
- var dirty = false;
15
-
16
- function setDirty(d) {
17
- dirty = d;
18
- RED.events.emit('nodes:change', { dirty: dirty });
19
- }
20
-
21
- var registry = (function () {
22
- var moduleList = {};
23
- var nodeList = [];
24
- var nodeSets = {};
25
- var typeToId = {};
26
- var nodeDefinitions = {};
27
- var iconSets = {};
28
-
29
- nodeDefinitions['tab'] = {
30
- defaults: {
31
- label: { value: '' },
32
- disabled: { value: false },
33
- info: { value: '' },
34
- },
35
- };
36
-
37
- var exports = {
38
- setModulePendingUpdated: function (module, version) {
39
- moduleList[module].pending_version = version;
40
- RED.events.emit('registry:module-updated', {
41
- module: module,
42
- version: version,
43
- });
44
- },
45
- getModule: function (module) {
46
- return moduleList[module];
47
- },
48
- getNodeSetForType: function (nodeType) {
49
- return exports.getNodeSet(typeToId[nodeType]);
50
- },
51
- getModuleList: function () {
52
- return moduleList;
53
- },
54
- getNodeList: function () {
55
- return nodeList;
56
- },
57
- getNodeTypes: function () {
58
- return Object.keys(nodeDefinitions);
59
- },
60
- setNodeList: function (list) {
61
- nodeList = [];
62
- for (var i = 0; i < list.length; i++) {
63
- var ns = list[i];
64
- exports.addNodeSet(ns);
65
- }
66
- },
67
- addNodeSet: function (ns) {
68
- ns.added = false;
69
- nodeSets[ns.id] = ns;
70
- for (var j = 0; j < ns.types.length; j++) {
71
- typeToId[ns.types[j]] = ns.id;
72
- }
73
- nodeList.push(ns);
74
-
75
- moduleList[ns.module] = moduleList[ns.module] || {
76
- name: ns.module,
77
- version: ns.version,
78
- local: ns.local,
79
- sets: {},
80
- };
81
- if (ns.pending_version) {
82
- moduleList[ns.module].pending_version = ns.pending_version;
83
- }
84
- moduleList[ns.module].sets[ns.name] = ns;
85
- RED.events.emit('registry:node-set-added', ns);
86
- },
87
- removeNodeSet: function (id) {
88
- var ns = nodeSets[id];
89
- for (var j = 0; j < ns.types.length; j++) {
90
- delete typeToId[ns.types[j]];
91
- }
92
- delete nodeSets[id];
93
- for (var i = 0; i < nodeList.length; i++) {
94
- if (nodeList[i].id === id) {
95
- nodeList.splice(i, 1);
96
- break;
97
- }
98
- }
99
- delete moduleList[ns.module].sets[ns.name];
100
- if (Object.keys(moduleList[ns.module].sets).length === 0) {
101
- delete moduleList[ns.module];
102
- }
103
- RED.events.emit('registry:node-set-removed', ns);
104
- return ns;
105
- },
106
- getNodeSet: function (id) {
107
- return nodeSets[id];
108
- },
109
- enableNodeSet: function (id) {
110
- var ns = nodeSets[id];
111
- ns.enabled = true;
112
- RED.events.emit('registry:node-set-enabled', ns);
113
- },
114
- disableNodeSet: function (id) {
115
- var ns = nodeSets[id];
116
- ns.enabled = false;
117
- RED.events.emit('registry:node-set-disabled', ns);
118
- },
119
- registerNodeType: function (nt, def) {
120
- nodeDefinitions[nt] = def;
121
- def.type = nt;
122
- if (nt.substring(0, 8) != 'subflow:') {
123
- def.set = nodeSets[typeToId[nt]];
124
- nodeSets[typeToId[nt]].added = true;
125
- nodeSets[typeToId[nt]].enabled = true;
126
-
127
- var ns;
128
- if (def.set.module === 'kumologica-core') {
129
- ns = 'kumologica-core';
130
- } else {
131
- ns = def.set.id;
132
- }
133
- def['_'] = function () {
134
- var args = Array.prototype.slice.call(arguments, 0);
135
- var original = args[0];
136
- if (args[0].indexOf(':') === -1) {
137
- args[0] = ns + ':' + args[0];
138
- }
139
- var result = RED._.apply(null, args);
140
- if (result === args[0]) {
141
- result = original;
142
- }
143
- return result;
144
- };
145
-
146
- // TODO: too tightly coupled into palette UI
147
- }
148
-
149
- RED.events.emit('registry:node-type-added', nt);
150
-
151
- },
152
- removeNodeType: function (nt) {
153
- if (nt.substring(0, 8) != 'subflow:') {
154
- // NON-NLS - internal debug message
155
- throw new Error('this api is subflow only. called with:', nt);
156
- }
157
- delete nodeDefinitions[nt];
158
- RED.events.emit('registry:node-type-removed', nt);
159
- },
160
- getNodeType: function (nt) {
161
- return nodeDefinitions[nt];
162
- },
163
- setIconSets: function (sets) {
164
- iconSets = sets;
165
- iconSets['font-awesome'] = RED.nodes.fontAwesome.getIconList();
166
- },
167
- getIconSets: function () {
168
- return iconSets;
169
- },
170
- };
171
- return exports;
172
- })();
173
-
174
- function getID() {
175
- return (1 + Math.random() * 4294967295).toString(16);
176
- }
177
-
178
- function addNode(n) {
179
- if (n.type.indexOf('subflow') !== 0) {
180
- n['_'] = n._def._;
181
- } else {
182
- n['_'] = RED._;
183
- }
184
- if (n._def.category == 'config') {
185
- configNodes[n.id] = n;
186
- } else {
187
- n.ports = [];
188
- if (n.wires && n.wires.length > n.outputs) {
189
- n.outputs = n.wires.length;
190
- }
191
- if (n.outputs) {
192
- for (var i = 0; i < n.outputs; i++) {
193
- n.ports.push(i);
194
- }
195
- }
196
- n.dirty = true;
197
- updateConfigNodeUsers(n);
198
- if (n._def.category == 'subflows' && typeof n.i === 'undefined') {
199
- var nextId = 0;
200
- RED.nodes.eachNode(function (node) {
201
- nextId = Math.max(nextId, node.i || 0);
202
- });
203
- n.i = nextId + 1;
204
- }
205
- nodes.push(n);
206
- }
207
- RED.events.emit('nodes:add', n);
208
- }
209
- function addLink(l) {
210
- links.push(l);
211
- }
212
-
213
- function getNode(id) {
214
- if (id in configNodes) {
215
- return configNodes[id];
216
- } else {
217
- for (var n in nodes) {
218
- if (nodes[n].id == id) {
219
- return nodes[n];
220
- }
221
- }
222
- }
223
- return null;
224
- }
225
-
226
- function removeNode(id) {
227
- var removedLinks = [];
228
- var removedNodes = [];
229
- var node;
230
- if (id in configNodes) {
231
- node = configNodes[id];
232
- delete configNodes[id];
233
- RED.events.emit('nodes:remove', node);
234
- RED.workspaces.refresh();
235
- } else {
236
- node = getNode(id);
237
- if (node) {
238
- nodes.splice(nodes.indexOf(node), 1);
239
- removedLinks = links.filter(function (l) {
240
- return l.source === node || l.target === node;
241
- });
242
- removedLinks.forEach(function (l) {
243
- links.splice(links.indexOf(l), 1);
244
- });
245
- var updatedConfigNode = false;
246
- for (var d in node._def.defaults) {
247
- if (node._def.defaults.hasOwnProperty(d)) {
248
- var property = node._def.defaults[d];
249
- if (property.type) {
250
- var type = registry.getNodeType(property.type);
251
- if (type && type.category == 'config') {
252
- var configNode = configNodes[node[d]];
253
- if (configNode) {
254
- updatedConfigNode = true;
255
- if (configNode._def.exclusive) {
256
- removeNode(node[d]);
257
- removedNodes.push(configNode);
258
- } else {
259
- var users = configNode.users;
260
- users.splice(users.indexOf(node), 1);
261
- }
262
- }
263
- }
264
- }
265
- }
266
- }
267
- if (updatedConfigNode) {
268
- RED.workspaces.refresh();
269
- }
270
- try {
271
- if (node._def.oneditdelete) {
272
- node._def.oneditdelete.call(node);
273
- }
274
- } catch (err) {
275
- console.log('oneditdelete', node.id, node.type, err.toString());
276
- }
277
- RED.events.emit('nodes:remove', node);
278
- }
279
- }
280
- if (node && node._def.onremove) {
281
- // Deprecated: never documented but used by some early nodes
282
- console.log(
283
- 'Deprecated API warning: node type ',
284
- node.type,
285
- ' has an onremove function - should be oneditremove - please report'
286
- );
287
- node._def.onremove.call(n);
288
- }
289
- return { links: removedLinks, nodes: removedNodes };
290
- }
291
-
292
- function removeLink(l) {
293
- var index = links.indexOf(l);
294
- if (index != -1) {
295
- links.splice(index, 1);
296
- }
297
- }
298
-
299
- function addWorkspace(ws, targetIndex) {
300
- workspaces[ws.id] = ws;
301
- ws._def = RED.nodes.getType('tab');
302
- if (targetIndex === undefined) {
303
- workspacesOrder.push(ws.id);
304
- } else {
305
- workspacesOrder.splice(targetIndex, 0, ws.id);
306
- }
307
- }
308
- function getWorkspace(id) {
309
- return workspaces[id];
310
- }
311
- function removeWorkspace(id) {
312
- delete workspaces[id];
313
- workspacesOrder.splice(workspacesOrder.indexOf(id), 1);
314
-
315
- var removedNodes = [];
316
- var removedLinks = [];
317
- var n;
318
- var node;
319
- for (n = 0; n < nodes.length; n++) {
320
- node = nodes[n];
321
- if (node.z == id) {
322
- removedNodes.push(node);
323
- }
324
- }
325
- for (n in configNodes) {
326
- if (configNodes.hasOwnProperty(n)) {
327
- node = configNodes[n];
328
- if (node.z == id) {
329
- removedNodes.push(node);
330
- }
331
- }
332
- }
333
- for (n = 0; n < removedNodes.length; n++) {
334
- var result = removeNode(removedNodes[n].id);
335
- removedLinks = removedLinks.concat(result.links);
336
- }
337
- return { nodes: removedNodes, links: removedLinks };
338
- }
339
-
340
- function addSubflow(sf, createNewIds) {
341
- if (createNewIds) {
342
- var subflowNames = Object.keys(subflows).map(function (sfid) {
343
- return subflows[sfid].name;
344
- });
345
-
346
- subflowNames.sort();
347
- var copyNumber = 1;
348
- var subflowName = sf.name;
349
- subflowNames.forEach(function (name) {
350
- if (subflowName == name) {
351
- copyNumber++;
352
- subflowName = sf.name + ' (' + copyNumber + ')';
353
- }
354
- });
355
- sf.name = subflowName;
356
- }
357
- subflows[sf.id] = sf;
358
- RED.nodes.registerType('subflow:' + sf.id, {
359
- defaults: {
360
- name: { value: '' },
361
- env: { value: [] },
362
- },
363
- icon: function () {
364
- return sf.icon || 'subflow.png';
365
- },
366
- category: sf.category || 'subflows',
367
- inputs: sf.in.length,
368
- outputs: sf.out.length,
369
- color: '#da9',
370
- label: function () {
371
- return this.name || RED.nodes.subflow(sf.id).name;
372
- },
373
- labelStyle: function () {
374
- return this.name ? 'node_label_italic' : '';
375
- },
376
- paletteLabel: function () {
377
- return RED.nodes.subflow(sf.id).name;
378
- },
379
- inputLabels: function (i) {
380
- return sf.inputLabels ? sf.inputLabels[i] : null;
381
- },
382
- outputLabels: function (i) {
383
- return sf.outputLabels ? sf.outputLabels[i] : null;
384
- },
385
- oneditresize: function (size) {
386
- var rows = $('#dialog-form>div:not(.node-input-env-container-row)');
387
- var height = size.height;
388
- for (var i = 0; i < rows.size(); i++) {
389
- height -= $(rows[i]).outerHeight(true);
390
- }
391
- var editorRow = $('#dialog-form>div.node-input-env-container-row');
392
- height -=
393
- parseInt(editorRow.css('marginTop')) +
394
- parseInt(editorRow.css('marginBottom'));
395
- $('#node-input-env-container').editableList('height', height - 80);
396
- },
397
- set: {
398
- module: 'kumologica-core',
399
- },
400
- });
401
- sf._def = RED.nodes.getType('subflow:' + sf.id);
402
- }
403
- function getSubflow(id) {
404
- return subflows[id];
405
- }
406
- function removeSubflow(sf) {
407
- delete subflows[sf.id];
408
- registry.removeNodeType('subflow:' + sf.id);
409
- }
410
-
411
- function subflowContains(sfid, nodeid) {
412
- for (var i = 0; i < nodes.length; i++) {
413
- var node = nodes[i];
414
- if (node.z === sfid) {
415
- var m = /^subflow:(.+)$/.exec(node.type);
416
- if (m) {
417
- if (m[1] === nodeid) {
418
- return true;
419
- } else {
420
- var result = subflowContains(m[1], nodeid);
421
- if (result) {
422
- return true;
423
- }
424
- }
425
- }
426
- }
427
- }
428
- return false;
429
- }
430
-
431
- function getAllFlowNodes(node) {
432
- var visited = {};
433
- visited[node.id] = true;
434
- var nns = [node];
435
- var stack = [node];
436
- while (stack.length !== 0) {
437
- var n = stack.shift();
438
- var childLinks = links.filter(function (d) {
439
- return d.source === n || d.target === n;
440
- });
441
- for (var i = 0; i < childLinks.length; i++) {
442
- var child =
443
- childLinks[i].source === n
444
- ? childLinks[i].target
445
- : childLinks[i].source;
446
- var id = child.id;
447
- if (!id) {
448
- id = child.direction + ':' + child.i;
449
- }
450
- if (!visited[id]) {
451
- visited[id] = true;
452
- nns.push(child);
453
- stack.push(child);
454
- }
455
- }
456
- }
457
- return nns;
458
- }
459
-
460
- function convertWorkspace(n) {
461
- var node = {};
462
- node.id = n.id;
463
- node.type = n.type;
464
- for (var d in n._def.defaults) {
465
- if (n._def.defaults.hasOwnProperty(d)) {
466
- node[d] = n[d];
467
- }
468
- }
469
- return node;
470
- }
471
- /**
472
- * Converts a node to an exportable JSON Object
473
- **/
474
- function convertNode(n, exportCreds) {
475
- if (n.type === 'tab') {
476
- return convertWorkspace(n);
477
- }
478
- exportCreds = exportCreds || false;
479
- var node = {};
480
- node.id = n.id;
481
- node.type = n.type;
482
- node.z = n.z;
483
-
484
- if (node.type == 'unknown') {
485
- for (var p in n._orig) {
486
- if (n._orig.hasOwnProperty(p)) {
487
- node[p] = n._orig[p];
488
- }
489
- }
490
- } else {
491
- for (var d in n._def.defaults) {
492
- if (n._def.defaults.hasOwnProperty(d)) {
493
- node[d] = n[d];
494
- }
495
- }
496
- if (exportCreds && n.credentials) {
497
- var credentialSet = {};
498
- node.credentials = {};
499
- for (var cred in n._def.credentials) {
500
- if (n._def.credentials.hasOwnProperty(cred)) {
501
- if (n._def.credentials[cred].type == 'password') {
502
- if (
503
- !n.credentials._ ||
504
- n.credentials['has_' + cred] !=
505
- n.credentials._['has_' + cred] ||
506
- (n.credentials['has_' + cred] && n.credentials[cred])
507
- ) {
508
- credentialSet[cred] = n.credentials[cred];
509
- }
510
- } else if (
511
- n.credentials[cred] != null &&
512
- (!n.credentials._ || n.credentials[cred] != n.credentials._[cred])
513
- ) {
514
- credentialSet[cred] = n.credentials[cred];
515
- }
516
- }
517
- }
518
- if (Object.keys(credentialSet).length > 0) {
519
- node.credentials = credentialSet;
520
- }
521
- }
522
- }
523
- if (n._def.category != 'config') {
524
- node.x = n.x;
525
- node.y = n.y;
526
- node.wires = [];
527
- for (var i = 0; i < n.outputs; i++) {
528
- node.wires.push([]);
529
- }
530
- var wires = links.filter(function (d) {
531
- return d.source === n;
532
- });
533
- for (var j = 0; j < wires.length; j++) {
534
- var w = wires[j];
535
- if (w.target.type != 'subflow') {
536
- if (w.sourcePort < node.wires.length) {
537
- node.wires[w.sourcePort].push(w.target.id);
538
- }
539
- }
540
- }
541
-
542
- if (
543
- n.inputs > 0 &&
544
- n.inputLabels &&
545
- !/^\s*$/.test(n.inputLabels.join(''))
546
- ) {
547
- node.inputLabels = n.inputLabels.slice();
548
- }
549
- if (
550
- n.outputs > 0 &&
551
- n.outputLabels &&
552
- !/^\s*$/.test(n.outputLabels.join(''))
553
- ) {
554
- node.outputLabels = n.outputLabels.slice();
555
- }
556
- if (
557
- (!n._def.defaults || !n._def.defaults.hasOwnProperty('icon')) &&
558
- n.icon
559
- ) {
560
- var defIcon = RED.utils.getDefaultNodeIcon(n._def, n);
561
- if (n.icon !== defIcon.module + '/' + defIcon.file) {
562
- node.icon = n.icon;
563
- }
564
- }
565
- if (
566
- (!n._def.defaults || !n._def.defaults.hasOwnProperty('l')) &&
567
- n.hasOwnProperty('l')
568
- ) {
569
-
570
- // var isLink = /^link (in|out)$/.test(node.type);
571
- // if (isLink == n.l) {
572
- // node.l = n.l;
573
- // }
574
- }
575
- }
576
- if (n.info) {
577
- node.info = n.info;
578
- }
579
- if (n._def.set) {
580
- if (n._def.set.name) {
581
- node.caname = n._def.set.name;
582
- }
583
- if (n._def.category) {
584
- node.category = n._def.category;
585
- }
586
- } else {
587
- node.caname = '_error_unknown';
588
- node.category = '_error_unknown'
589
- }
590
-
591
- return node;
592
- }
593
-
594
- function convertSubflow(n) {
595
- var node = {};
596
- node.id = n.id;
597
- node.type = n.type;
598
- node.name = n.name;
599
- node.info = n.info;
600
- node.category = n.category;
601
- node.in = [];
602
- node.out = [];
603
- node.env = n.env;
604
-
605
- n.in.forEach(function (p) {
606
- var nIn = { x: p.x, y: p.y, wires: [] };
607
- var wires = links.filter(function (d) {
608
- return d.source === p;
609
- });
610
- for (var i = 0; i < wires.length; i++) {
611
- var w = wires[i];
612
- if (w.target.type != 'subflow') {
613
- nIn.wires.push({ id: w.target.id });
614
- }
615
- }
616
- node.in.push(nIn);
617
- });
618
- n.out.forEach(function (p, c) {
619
- var nOut = { x: p.x, y: p.y, wires: [] };
620
- var wires = links.filter(function (d) {
621
- return d.target === p;
622
- });
623
- for (i = 0; i < wires.length; i++) {
624
- if (wires[i].source.type != 'subflow') {
625
- nOut.wires.push({
626
- id: wires[i].source.id,
627
- port: wires[i].sourcePort,
628
- });
629
- } else {
630
- nOut.wires.push({ id: n.id, port: 0 });
631
- }
632
- }
633
- node.out.push(nOut);
634
- });
635
-
636
- if (
637
- node.in.length > 0 &&
638
- n.inputLabels &&
639
- !/^\s*$/.test(n.inputLabels.join(''))
640
- ) {
641
- node.inputLabels = n.inputLabels.slice();
642
- }
643
- if (
644
- node.out.length > 0 &&
645
- n.outputLabels &&
646
- !/^\s*$/.test(n.outputLabels.join(''))
647
- ) {
648
- node.outputLabels = n.outputLabels.slice();
649
- }
650
- if (n.icon) {
651
- if (n.icon !== 'kumologica-core/subflow.png') {
652
- node.icon = n.icon;
653
- }
654
- }
655
- if (n.status) {
656
- node.status = { x: n.status.x, y: n.status.y, wires: [] };
657
- links.forEach(function (d) {
658
- if (d.target === n.status) {
659
- if (d.source.type != 'subflow') {
660
- node.status.wires.push({ id: d.source.id, port: d.sourcePort });
661
- } else {
662
- node.status.wires.push({ id: n.id, port: 0 });
663
- }
664
- }
665
- });
666
- }
667
-
668
- return node;
669
- }
670
- /**
671
- * Converts the current node selection to an exportable JSON Object
672
- **/
673
- function createExportableNodeSet(set, exportedSubflows, exportedConfigNodes) {
674
- var nns = [];
675
- exportedConfigNodes = exportedConfigNodes || {};
676
- exportedSubflows = exportedSubflows || {};
677
- for (var n = 0; n < set.length; n++) {
678
- var node = set[n];
679
- if (node.type.substring(0, 8) == 'subflow:') {
680
- var subflowId = node.type.substring(8);
681
- if (!exportedSubflows[subflowId]) {
682
- exportedSubflows[subflowId] = true;
683
- var subflow = getSubflow(subflowId);
684
- var subflowSet = [subflow];
685
- RED.nodes.eachNode(function (n) {
686
- if (n.z == subflowId) {
687
- subflowSet.push(n);
688
- }
689
- });
690
- var exportableSubflow = createExportableNodeSet(
691
- subflowSet,
692
- exportedSubflows,
693
- exportedConfigNodes
694
- );
695
- nns = exportableSubflow.concat(nns);
696
- }
697
- }
698
- if (node.type != 'subflow') {
699
- var convertedNode = RED.nodes.convertNode(node);
700
- for (var d in node._def.defaults) {
701
- if (node._def.defaults[d].type && node[d] in configNodes) {
702
- var confNode = configNodes[node[d]];
703
- var exportable = registry.getNodeType(node._def.defaults[d].type)
704
- .exportable;
705
- if (exportable == null || exportable) {
706
- if (!(node[d] in exportedConfigNodes)) {
707
- exportedConfigNodes[node[d]] = true;
708
- set.push(confNode);
709
- }
710
- } else {
711
- convertedNode[d] = '';
712
- }
713
- }
714
- }
715
- nns.push(convertedNode);
716
- } else {
717
- var convertedSubflow = convertSubflow(node);
718
- nns.push(convertedSubflow);
719
- }
720
- }
721
- return nns;
722
- }
723
-
724
- function createCompleteNodeSet(exportCredentials) {
725
- if (exportCredentials === undefined) {
726
- exportCredentials = true;
727
- }
728
- var nns = [];
729
- var i;
730
-
731
- for (i = 0; i < workspacesOrder.length; i++) {
732
- if (workspaces[workspacesOrder[i]].type == 'tab') {
733
- nns.push(convertWorkspace(workspaces[workspacesOrder[i]]));
734
- }
735
- }
736
- for (i in subflows) {
737
- if (subflows.hasOwnProperty(i)) {
738
- nns.push(convertSubflow(subflows[i]));
739
- }
740
- }
741
- for (i in configNodes) {
742
- if (configNodes.hasOwnProperty(i)) {
743
- nns.push(convertNode(configNodes[i], exportCredentials));
744
- }
745
- }
746
- for (i = 0; i < nodes.length; i++) {
747
- var node = nodes[i];
748
- let n = convertNode(node, exportCredentials);
749
- // check if we need to report an error with node convertion
750
- if (n.caname === '_error_unknown' && n.category === '_error_unknown'){
751
- RED.notify(`<strong>Error</strong>: Invalid flow due to node type unknown [${n.type}]`, 'error');
752
- }
753
- nns.push(n);
754
- }
755
- return nns;
756
- }
757
-
758
- function checkForMatchingSubflow(subflow, subflowNodes) {
759
- subflowNodes = subflowNodes || [];
760
- var i;
761
- var match = null;
762
- RED.nodes.eachSubflow(function (sf) {
763
- if (
764
- sf.name != subflow.name ||
765
- sf.info != subflow.info ||
766
- sf.in.length != subflow.in.length ||
767
- sf.out.length != subflow.out.length
768
- ) {
769
- return;
770
- }
771
- var sfNodes = RED.nodes.filterNodes({ z: sf.id });
772
- if (sfNodes.length != subflowNodes.length) {
773
- return;
774
- }
775
-
776
- var subflowNodeSet = [subflow].concat(subflowNodes);
777
- var sfNodeSet = [sf].concat(sfNodes);
778
-
779
- var exportableSubflowNodes = JSON.stringify(subflowNodeSet);
780
- var exportableSFNodes = JSON.stringify(
781
- createExportableNodeSet(sfNodeSet)
782
- );
783
- var nodeMap = {};
784
- for (i = 0; i < sfNodes.length; i++) {
785
- exportableSubflowNodes = exportableSubflowNodes.replace(
786
- new RegExp('"' + subflowNodes[i].id + '"', 'g'),
787
- '"' + sfNodes[i].id + '"'
788
- );
789
- }
790
- exportableSubflowNodes = exportableSubflowNodes.replace(
791
- new RegExp('"' + subflow.id + '"', 'g'),
792
- '"' + sf.id + '"'
793
- );
794
-
795
- if (exportableSubflowNodes !== exportableSFNodes) {
796
- return;
797
- }
798
-
799
- match = sf;
800
- return false;
801
- });
802
- return match;
803
- }
804
- function compareNodes(nodeA, nodeB, idMustMatch) {
805
- if (idMustMatch && nodeA.id != nodeB.id) {
806
- return false;
807
- }
808
- if (nodeA.type != nodeB.type) {
809
- return false;
810
- }
811
- var def = nodeA._def;
812
- for (var d in def.defaults) {
813
- if (def.defaults.hasOwnProperty(d)) {
814
- var vA = nodeA[d];
815
- var vB = nodeB[d];
816
- if (typeof vA !== typeof vB) {
817
- return false;
818
- }
819
- if (vA === null || typeof vA === 'string' || typeof vA === 'number') {
820
- if (vA !== vB) {
821
- return false;
822
- }
823
- } else {
824
- if (JSON.stringify(vA) !== JSON.stringify(vB)) {
825
- return false;
826
- }
827
- }
828
- }
829
- }
830
- return true;
831
- }
832
-
833
- function importNodes(newNodesObj, createNewIds, createMissingWorkspace) {
834
- var i;
835
- var n;
836
- var newNodes;
837
- var nodeZmap = {};
838
- if (typeof newNodesObj === 'string') {
839
- if (newNodesObj === '') {
840
- return;
841
- }
842
- try {
843
- newNodes = JSON.parse(newNodesObj);
844
- } catch (err) {
845
- var e = new Error(`Invalid flow: ${err.message}`);
846
- e.code = 'NODE_RED';
847
- throw e;
848
- }
849
- } else {
850
- newNodes = newNodesObj;
851
- }
852
-
853
- if (!$.isArray(newNodes)) {
854
- newNodes = [newNodes];
855
- }
856
-
857
- // Scan for any duplicate nodes and remove them. This is a temporary
858
- // fix to help resolve corrupted flows caused by 0.20.0 where multiple
859
- // copies of the flow would get loaded at the same time.
860
- // If the user hit deploy they would have saved those duplicates.
861
- var seenIds = {};
862
- newNodes = newNodes.filter(function (n) {
863
- if (seenIds[n.id]) {
864
- return false;
865
- }
866
- seenIds[n.id] = true;
867
- return true;
868
- });
869
-
870
- var isInitialLoad = false;
871
- if (!initialLoad) {
872
- isInitialLoad = true;
873
- initialLoad = JSON.parse(JSON.stringify(newNodes));
874
- }
875
- var unknownTypes = [];
876
- for (i = 0; i < newNodes.length; i++) {
877
- n = newNodes[i];
878
- // TODO: remove workspace in next release+1
879
- if (
880
- n.type != 'workspace' &&
881
- n.type != 'tab' &&
882
- n.type != 'subflow' &&
883
- !registry.getNodeType(n.type) &&
884
- n.type.substring(0, 8) != 'subflow:' &&
885
- unknownTypes.indexOf(n.type) == -1
886
- ) {
887
- unknownTypes.push(n.type);
888
- }
889
- if (n.z) {
890
- nodeZmap[n.z] = nodeZmap[n.z] || [];
891
- nodeZmap[n.z].push(n);
892
- }
893
- }
894
- if (!isInitialLoad && unknownTypes.length > 0) {
895
- var typeList = '<ul><li>' + unknownTypes.join('</li><li>') + '</li></ul>';
896
- RED.notify(
897
- '<p>' +
898
- 'Imported unrecognised type:' +
899
- '</p>' +
900
- typeList,
901
- 'error',
902
- false,
903
- 10000
904
- );
905
- }
906
-
907
- var activeWorkspace = RED.workspaces.active();
908
- //TODO: check the z of the subflow instance and check _that_ if it exists
909
- var activeSubflow = getSubflow(activeWorkspace);
910
- for (i = 0; i < newNodes.length; i++) {
911
- var m = /^subflow:(.+)$/.exec(newNodes[i].type);
912
- if (m) {
913
- var subflowId = m[1];
914
- var parent = getSubflow(newNodes[i].z || activeWorkspace);
915
- if (parent) {
916
- var err;
917
- if (subflowId === parent.id) {
918
- err = new Error('Cannot add subflow to itself');
919
- }
920
- if (subflowContains(subflowId, parent.id)) {
921
- err = new Error('Cannot add subflow - circular reference detected');
922
- }
923
- if (err) {
924
- // TODO: standardise error codes
925
- err.code = 'NODE_RED';
926
- throw err;
927
- }
928
- }
929
- }
930
- }
931
-
932
- var new_workspaces = [];
933
- var workspace_map = {};
934
- var new_subflows = [];
935
- var subflow_map = {};
936
- var subflow_blacklist = {};
937
- var node_map = {};
938
- var new_nodes = [];
939
- var new_links = [];
940
- var nid;
941
- var def;
942
- var configNode;
943
- var missingWorkspace = null;
944
- var d;
945
-
946
- // Find all tabs and subflow templates
947
- for (i = 0; i < newNodes.length; i++) {
948
- n = newNodes[i];
949
- // TODO: remove workspace in next release+1
950
- if (n.type === 'workspace' || n.type === 'tab') {
951
- if (n.type === 'workspace') {
952
- n.type = 'tab';
953
- }
954
- if (defaultWorkspace == null) {
955
- defaultWorkspace = n;
956
- }
957
- if (createNewIds) {
958
- nid = getID();
959
- workspace_map[n.id] = nid;
960
- n.id = nid;
961
- }
962
- addWorkspace(n);
963
- RED.workspaces.add(n);
964
- new_workspaces.push(n);
965
- } else if (n.type === 'subflow') {
966
- var matchingSubflow = checkForMatchingSubflow(n, nodeZmap[n.id]);
967
- if (matchingSubflow) {
968
- subflow_blacklist[n.id] = matchingSubflow;
969
- } else {
970
- subflow_map[n.id] = n;
971
- if (createNewIds) {
972
- nid = getID();
973
- n.id = nid;
974
- }
975
- // TODO: handle createNewIds - map old to new subflow ids
976
- n.in.forEach(function (input, i) {
977
- input.type = 'subflow';
978
- input.direction = 'in';
979
- input.z = n.id;
980
- input.i = i;
981
- input.id = getID();
982
- });
983
- n.out.forEach(function (output, i) {
984
- output.type = 'subflow';
985
- output.direction = 'out';
986
- output.z = n.id;
987
- output.i = i;
988
- output.id = getID();
989
- });
990
- if (n.status) {
991
- n.status.type = 'subflow';
992
- n.status.direction = 'status';
993
- n.status.z = n.id;
994
- n.status.id = getID();
995
- }
996
- new_subflows.push(n);
997
- addSubflow(n, createNewIds);
998
- }
999
- }
1000
- }
1001
-
1002
- // Add a tab if there isn't one there already
1003
- if (defaultWorkspace == null) {
1004
- defaultWorkspace = {
1005
- type: 'tab',
1006
- id: getID(),
1007
- disabled: false,
1008
- info: '',
1009
- label: `Flow ${number}`,
1010
- };
1011
- addWorkspace(defaultWorkspace);
1012
- RED.workspaces.add(defaultWorkspace);
1013
- new_workspaces.push(defaultWorkspace);
1014
- activeWorkspace = RED.workspaces.active();
1015
- }
1016
-
1017
- // Find all config nodes and add them
1018
- for (i = 0; i < newNodes.length; i++) {
1019
- n = newNodes[i];
1020
- def = registry.getNodeType(n.type);
1021
- if (def && def.category == 'config') {
1022
- var existingConfigNode = null;
1023
- if (createNewIds) {
1024
- if (n.z) {
1025
- if (subflow_blacklist[n.z]) {
1026
- continue;
1027
- } else if (subflow_map[n.z]) {
1028
- n.z = subflow_map[n.z].id;
1029
- } else {
1030
- n.z = workspace_map[n.z];
1031
- if (!workspaces[n.z]) {
1032
- if (createMissingWorkspace) {
1033
- if (missingWorkspace === null) {
1034
- missingWorkspace = RED.workspaces.add(null, true);
1035
- new_workspaces.push(missingWorkspace);
1036
- }
1037
- n.z = missingWorkspace.id;
1038
- } else {
1039
- n.z = activeWorkspace;
1040
- }
1041
- }
1042
- }
1043
- }
1044
- existingConfigNode = RED.nodes.node(n.id);
1045
- if (existingConfigNode) {
1046
- if (n.z && existingConfigNode.z !== n.z) {
1047
- existingConfigNode = null;
1048
- // Check the config nodes on n.z
1049
- for (var cn in configNodes) {
1050
- if (configNodes.hasOwnProperty(cn)) {
1051
- if (
1052
- configNodes[cn].z === n.z &&
1053
- compareNodes(configNodes[cn], n, false)
1054
- ) {
1055
- existingConfigNode = configNodes[cn];
1056
- node_map[n.id] = configNodes[cn];
1057
- break;
1058
- }
1059
- }
1060
- }
1061
- }
1062
- }
1063
- }
1064
-
1065
- if (!existingConfigNode || existingConfigNode._def.exclusive) {
1066
- //} || !compareNodes(existingConfigNode,n,true) || existingConfigNode.z !== n.z) {
1067
- configNode = {
1068
- id: n.id,
1069
- z: n.z,
1070
- type: n.type,
1071
- info: n.info,
1072
- users: [],
1073
- _config: {},
1074
- };
1075
- for (d in def.defaults) {
1076
- if (def.defaults.hasOwnProperty(d)) {
1077
- configNode[d] = n[d];
1078
- configNode._config[d] = JSON.stringify(n[d]);
1079
- }
1080
- }
1081
- if (
1082
- def.hasOwnProperty('credentials') &&
1083
- n.hasOwnProperty('credentials')
1084
- ) {
1085
- configNode.credentials = {};
1086
- for (d in def.credentials) {
1087
- if (
1088
- def.credentials.hasOwnProperty(d) &&
1089
- n.credentials.hasOwnProperty(d)
1090
- ) {
1091
- configNode.credentials[d] = n.credentials[d];
1092
- }
1093
- }
1094
- }
1095
- configNode.label = def.label;
1096
- configNode._def = def;
1097
- if (createNewIds) {
1098
- configNode.id = getID();
1099
- }
1100
- node_map[n.id] = configNode;
1101
- new_nodes.push(configNode);
1102
- RED.nodes.add(configNode);
1103
- }
1104
- }
1105
- }
1106
-
1107
- // Find regular flow nodes and subflow instances
1108
- for (i = 0; i < newNodes.length; i++) {
1109
- n = newNodes[i];
1110
- // TODO: remove workspace in next release+1
1111
- if (n.type !== 'workspace' && n.type !== 'tab' && n.type !== 'subflow') {
1112
- def = registry.getNodeType(n.type);
1113
- if (!def || def.category != 'config') {
1114
- var node = {
1115
- x: parseFloat(n.x || 0),
1116
- y: parseFloat(n.y || 0),
1117
- z: n.z,
1118
- type: 0,
1119
- wires: n.wires || [],
1120
- inputLabels: n.inputLabels,
1121
- outputLabels: n.outputLabels,
1122
- icon: n.icon,
1123
- info: n.info,
1124
- changed: false,
1125
- _config: {},
1126
- };
1127
- // if (n.hasOwnProperty('l')) {
1128
- // node.l = n.l;
1129
- // }
1130
- if (createNewIds) {
1131
- if (subflow_blacklist[n.z]) {
1132
- continue;
1133
- } else if (subflow_map[node.z]) {
1134
- node.z = subflow_map[node.z].id;
1135
- } else {
1136
- node.z = workspace_map[node.z];
1137
- if (!workspaces[node.z]) {
1138
- if (createMissingWorkspace) {
1139
- if (missingWorkspace === null) {
1140
- missingWorkspace = RED.workspaces.add(null, true);
1141
- new_workspaces.push(missingWorkspace);
1142
- }
1143
- node.z = missingWorkspace.id;
1144
- } else {
1145
- node.z = activeWorkspace;
1146
- }
1147
- }
1148
- }
1149
- node.id = getID();
1150
- } else {
1151
- node.id = n.id;
1152
- if (
1153
- node.z == null ||
1154
- (!workspaces[node.z] && !subflow_map[node.z])
1155
- ) {
1156
- if (createMissingWorkspace) {
1157
- if (missingWorkspace === null) {
1158
- missingWorkspace = RED.workspaces.add(null, true);
1159
- new_workspaces.push(missingWorkspace);
1160
- }
1161
- node.z = missingWorkspace.id;
1162
- } else {
1163
- node.z = activeWorkspace;
1164
- }
1165
- }
1166
- }
1167
- node.type = n.type;
1168
- node._def = def;
1169
- if (n.type.substring(0, 7) === 'subflow') {
1170
- var parentId = n.type.split(':')[1];
1171
- var subflow =
1172
- subflow_blacklist[parentId] ||
1173
- subflow_map[parentId] ||
1174
- getSubflow(parentId);
1175
- if (createNewIds) {
1176
- parentId = subflow.id;
1177
- node.type = 'subflow:' + parentId;
1178
- node._def = registry.getNodeType(node.type);
1179
- delete node.i;
1180
- }
1181
- node.name = n.name;
1182
- node.outputs = subflow.out.length;
1183
- node.inputs = subflow.in.length;
1184
- node.env = n.env;
1185
- } else {
1186
- if (!node._def) {
1187
- if (node.x && node.y) {
1188
- node._def = {
1189
- color: '#fee',
1190
- defaults: {},
1191
- label: 'unknown: ' + n.type,
1192
- labelStyle: 'node_label_italic',
1193
- outputs: n.outputs || n.wires.length,
1194
- set: registry.getNodeSet('kumologica-core/unknown'),
1195
- };
1196
- } else {
1197
- node._def = {
1198
- category: 'config',
1199
- set: registry.getNodeSet('kumologica-core/unknown'),
1200
- };
1201
- node.users = [];
1202
- // This is a config node, so delete the default
1203
- // non-config node properties
1204
- delete node.x;
1205
- delete node.y;
1206
- delete node.wires;
1207
- delete node.inputLabels;
1208
- delete node.outputLabels;
1209
- }
1210
- var orig = {};
1211
- for (var p in n) {
1212
- if (
1213
- n.hasOwnProperty(p) &&
1214
- p != 'x' &&
1215
- p != 'y' &&
1216
- p != 'z' &&
1217
- p != 'id' &&
1218
- p != 'wires'
1219
- ) {
1220
- orig[p] = n[p];
1221
- }
1222
- }
1223
- node._orig = orig;
1224
- node.name = n.type;
1225
- node.type = 'unknown';
1226
- }
1227
- if (node._def.category != 'config') {
1228
- if (n.hasOwnProperty('inputs')) {
1229
- node.inputs = n.inputs;
1230
- node._config.inputs = JSON.stringify(n.inputs);
1231
- } else {
1232
- node.inputs = node._def.inputs;
1233
- }
1234
- if (n.hasOwnProperty('outputs')) {
1235
- node.outputs = n.outputs;
1236
- node._config.outputs = JSON.stringify(n.outputs);
1237
- } else {
1238
- node.outputs = node._def.outputs;
1239
- }
1240
- if (
1241
- node.hasOwnProperty('wires') &&
1242
- node.wires.length > node.outputs
1243
- ) {
1244
- if (
1245
- !node._def.defaults.hasOwnProperty('outputs') ||
1246
- !isNaN(parseInt(n.outputs))
1247
- ) {
1248
- // If 'wires' is longer than outputs, clip wires
1249
- console.log(
1250
- 'Warning: node.wires longer than node.outputs - trimming wires:',
1251
- node.id,
1252
- ' wires:',
1253
- node.wires.length,
1254
- ' outputs:',
1255
- node.outputs
1256
- );
1257
- node.wires = node.wires.slice(0, node.outputs);
1258
- } else {
1259
- // The node declares outputs in its defaults, but has not got a valid value
1260
- // Defer to the length of the wires array
1261
- node.outputs = node.wires.length;
1262
- }
1263
- }
1264
- for (d in node._def.defaults) {
1265
- if (
1266
- node._def.defaults.hasOwnProperty(d) &&
1267
- d !== 'inputs' &&
1268
- d !== 'outputs'
1269
- ) {
1270
- node[d] = n[d];
1271
- node._config[d] = JSON.stringify(n[d]);
1272
- }
1273
- }
1274
- node._config.x = node.x;
1275
- node._config.y = node.y;
1276
- if (
1277
- node._def.hasOwnProperty('credentials') &&
1278
- n.hasOwnProperty('credentials')
1279
- ) {
1280
- node.credentials = {};
1281
- for (d in node._def.credentials) {
1282
- if (
1283
- node._def.credentials.hasOwnProperty(d) &&
1284
- n.credentials.hasOwnProperty(d)
1285
- ) {
1286
- node.credentials[d] = n.credentials[d];
1287
- }
1288
- }
1289
- }
1290
- }
1291
- }
1292
- addNode(node);
1293
- RED.editor.validateNode(node);
1294
- node_map[n.id] = node;
1295
- // If an 'unknown' config node, it will not have been caught by the
1296
- // proper config node handling, so needs adding to new_nodes here
1297
- if (node.type === 'unknown' || node._def.category !== 'config') {
1298
- new_nodes.push(node);
1299
- }
1300
- }
1301
- }
1302
- }
1303
- // TODO: make this a part of the node definition so it doesn't have to
1304
- // be hardcoded here
1305
- var nodeTypeArrayReferences = {
1306
- catch: 'scope',
1307
- status: 'scope',
1308
- 'link in': 'links',
1309
- 'link out': 'links',
1310
- };
1311
-
1312
- // Remap all wires and config node references
1313
- for (i = 0; i < new_nodes.length; i++) {
1314
- n = new_nodes[i];
1315
- if (n.wires) {
1316
- for (var w1 = 0; w1 < n.wires.length; w1++) {
1317
- var wires =
1318
- n.wires[w1] instanceof Array ? n.wires[w1] : [n.wires[w1]];
1319
- for (var w2 = 0; w2 < wires.length; w2++) {
1320
- if (node_map.hasOwnProperty(wires[w2])) {
1321
- if (n.z === node_map[wires[w2]].z) {
1322
- var link = {
1323
- source: n,
1324
- sourcePort: w1,
1325
- target: node_map[wires[w2]],
1326
- };
1327
- addLink(link);
1328
- new_links.push(link);
1329
- } else {
1330
- console.log(
1331
- 'Warning: dropping link that crosses tabs:',
1332
- n.id,
1333
- '->',
1334
- node_map[wires[w2]].id
1335
- );
1336
- }
1337
- }
1338
- }
1339
- }
1340
- delete n.wires;
1341
- }
1342
- for (var d3 in n._def.defaults) {
1343
- if (n._def.defaults.hasOwnProperty(d3)) {
1344
- if (n._def.defaults[d3].type && node_map[n[d3]]) {
1345
- n[d3] = node_map[n[d3]].id;
1346
- configNode = RED.nodes.node(n[d3]);
1347
- if (configNode && configNode.users.indexOf(n) === -1) {
1348
- configNode.users.push(n);
1349
- }
1350
- } else if (
1351
- nodeTypeArrayReferences.hasOwnProperty(n.type) &&
1352
- nodeTypeArrayReferences[n.type] === d3 &&
1353
- n[d3] !== undefined &&
1354
- n[d3] !== null
1355
- ) {
1356
- for (var j = 0; j < n[d3].length; j++) {
1357
- if (node_map[n[d3][j]]) {
1358
- n[d3][j] = node_map[n[d3][j]].id;
1359
- }
1360
- }
1361
- }
1362
- }
1363
- }
1364
- // If importing into a subflow, ensure an outbound-link doesn't
1365
- // get added
1366
- if (activeSubflow && /^link /.test(n.type) && n.links) {
1367
- n.links = n.links.filter(function (id) {
1368
- var otherNode = RED.nodes.node(id);
1369
- return otherNode && otherNode.z === activeWorkspace;
1370
- });
1371
- }
1372
-
1373
- // With all properties now remapped to point at valid nodes,
1374
- // we can validate the node
1375
- RED.editor.validateNode(n);
1376
- }
1377
- for (i = 0; i < new_subflows.length; i++) {
1378
- n = new_subflows[i];
1379
- n.in.forEach(function (input) {
1380
- input.wires.forEach(function (wire) {
1381
- var link = {
1382
- source: input,
1383
- sourcePort: 0,
1384
- target: node_map[wire.id],
1385
- };
1386
- addLink(link);
1387
- new_links.push(link);
1388
- });
1389
- delete input.wires;
1390
- });
1391
- n.out.forEach(function (output) {
1392
- output.wires.forEach(function (wire) {
1393
- var link;
1394
- if (subflow_map[wire.id] && subflow_map[wire.id].id == n.id) {
1395
- link = {
1396
- source: n.in[wire.port],
1397
- sourcePort: wire.port,
1398
- target: output,
1399
- };
1400
- } else {
1401
- link = {
1402
- source: node_map[wire.id] || subflow_map[wire.id],
1403
- sourcePort: wire.port,
1404
- target: output,
1405
- };
1406
- }
1407
- addLink(link);
1408
- new_links.push(link);
1409
- });
1410
- delete output.wires;
1411
- });
1412
- if (n.status) {
1413
- n.status.wires.forEach(function (wire) {
1414
- var link;
1415
- if (subflow_map[wire.id] && subflow_map[wire.id].id == n.id) {
1416
- link = {
1417
- source: n.in[wire.port],
1418
- sourcePort: wire.port,
1419
- target: n.status,
1420
- };
1421
- } else {
1422
- link = {
1423
- source: node_map[wire.id] || subflow_map[wire.id],
1424
- sourcePort: wire.port,
1425
- target: n.status,
1426
- };
1427
- }
1428
- addLink(link);
1429
- new_links.push(link);
1430
- });
1431
- delete n.status.wires;
1432
- }
1433
- }
1434
-
1435
- RED.workspaces.refresh();
1436
- return [
1437
- new_nodes,
1438
- new_links,
1439
- new_workspaces,
1440
- new_subflows,
1441
- missingWorkspace,
1442
- ];
1443
- }
1444
-
1445
- function getTabLabel(id){
1446
- let tabs = listWorkspaces();
1447
- for (tab in tabs){
1448
- if (tabs[tab].id === id) {
1449
- return tabs[tab].label;
1450
- }
1451
- }
1452
- return "";
1453
- }
1454
-
1455
- function listNodes() {
1456
- var result = [];
1457
- for (var n = 0; n < nodes.length; n++) {
1458
- result.push(nodes[n]);
1459
- }
1460
- return result;
1461
- }
1462
-
1463
- // TODO: supports properties: "z", "type", "selected"
1464
- function filterNodes(filter) {
1465
- var result = [];
1466
-
1467
- for (var n = 0; n < nodes.length; n++) {
1468
- var node = nodes[n];
1469
- if (
1470
- (filter.hasOwnProperty('z') && node.z !== filter.z) ||
1471
- (filter.hasOwnProperty('type') && node.type !== filter.type) ||
1472
- (filter.hasOwnProperty('selected') && node.selected !== filter.selected) ||
1473
- (filter.hasOwnProperty('id') && !filter.id.includes(node.id))
1474
- ) {
1475
- continue;
1476
- }
1477
- result.push(node);
1478
- }
1479
- return result;
1480
- }
1481
- function filterLinks(filter) {
1482
- var result = [];
1483
-
1484
- for (var n = 0; n < links.length; n++) {
1485
- var link = links[n];
1486
- if (filter.source) {
1487
- if (
1488
- filter.source.hasOwnProperty('id') &&
1489
- link.source.id !== filter.source.id
1490
- ) {
1491
- continue;
1492
- }
1493
- if (
1494
- filter.source.hasOwnProperty('z') &&
1495
- link.source.z !== filter.source.z
1496
- ) {
1497
- continue;
1498
- }
1499
- }
1500
- if (filter.target) {
1501
- if (
1502
- filter.target.hasOwnProperty('id') &&
1503
- link.target.id !== filter.target.id
1504
- ) {
1505
- continue;
1506
- }
1507
- if (
1508
- filter.target.hasOwnProperty('z') &&
1509
- link.target.z !== filter.target.z
1510
- ) {
1511
- continue;
1512
- }
1513
- }
1514
- if (
1515
- filter.hasOwnProperty('sourcePort') &&
1516
- link.sourcePort !== filter.sourcePort
1517
- ) {
1518
- continue;
1519
- }
1520
- result.push(link);
1521
- }
1522
- return result;
1523
- }
1524
-
1525
- // Update any config nodes referenced by the provided node to ensure their 'users' list is correct
1526
- function updateConfigNodeUsers(n) {
1527
- for (var d in n._def.defaults) {
1528
- if (n._def.defaults.hasOwnProperty(d)) {
1529
- var property = n._def.defaults[d];
1530
- if (property.type) {
1531
- var type = registry.getNodeType(property.type);
1532
- if (type && type.category == 'config') {
1533
- var configNode = configNodes[n[d]];
1534
- if (configNode) {
1535
- if (configNode.users.indexOf(n) === -1) {
1536
- configNode.users.push(n);
1537
- }
1538
- }
1539
- }
1540
- }
1541
- }
1542
- }
1543
- }
1544
-
1545
- function flowVersion(version) {
1546
- if (version !== undefined) {
1547
- loadedFlowVersion = version;
1548
- } else {
1549
- return loadedFlowVersion;
1550
- }
1551
- }
1552
-
1553
- function clear() {
1554
- nodes = [];
1555
- links = [];
1556
- configNodes = {};
1557
- workspacesOrder = [];
1558
- var subflowIds = Object.keys(subflows);
1559
- subflowIds.forEach(function (id) {
1560
- RED.subflow.removeSubflow(id);
1561
- });
1562
- var workspaceIds = Object.keys(workspaces);
1563
- workspaceIds.forEach(function (id) {
1564
- RED.workspaces.remove(workspaces[id]);
1565
- });
1566
- defaultWorkspace = null;
1567
- initialLoad = null;
1568
- RED.nodes.dirty(false);
1569
- RED.view.redraw(true);
1570
- RED.palette.nodes.refresh();
1571
- RED.workspaces.refresh();
1572
- RED.sidebar.config.refresh();
1573
- RED.sidebar.info.refresh();
1574
-
1575
- // var node_defs = {};
1576
- // var nodes = [];
1577
- // var configNodes = {};
1578
- // var links = [];
1579
- // var defaultWorkspace;
1580
- // var workspaces = {};
1581
- // var workspacesOrder =[];
1582
- // var subflows = {};
1583
- // var loadedFlowVersion = null;
1584
- }
1585
-
1586
- function eachWorkspace(cb) {
1587
- for (var i = 0; i < workspacesOrder.length; i++) {
1588
- if (cb(workspaces[workspacesOrder[i]]) === false) {
1589
- break;
1590
- }
1591
- }
1592
- }
1593
-
1594
- function listWorkspaces() {
1595
- return workspaces || [];
1596
- }
1597
-
1598
- return {
1599
- init: function () {
1600
- RED.events.on('registry:node-type-added', function (type) {
1601
- var def = registry.getNodeType(type);
1602
- var replaced = false;
1603
- var replaceNodes = {};
1604
- RED.nodes.eachNode(function (n) {
1605
- if (n.type === 'unknown' && n.name === type) {
1606
- replaceNodes[n.id] = n;
1607
- }
1608
- });
1609
- RED.nodes.eachConfig(function (n) {
1610
- if (n.type === 'unknown' && n.name === type) {
1611
- replaceNodes[n.id] = n;
1612
- }
1613
- });
1614
-
1615
- var replaceNodeIds = Object.keys(replaceNodes);
1616
- if (replaceNodeIds.length > 0) {
1617
- var reimportList = [];
1618
- replaceNodeIds.forEach(function (id) {
1619
- var n = replaceNodes[id];
1620
- if (configNodes.hasOwnProperty(n.id)) {
1621
- delete configNodes[n.id];
1622
- } else {
1623
- nodes.splice(nodes.indexOf(n), 1);
1624
- }
1625
- reimportList.push(convertNode(n));
1626
- });
1627
-
1628
- // Remove any links between nodes that are going to be reimported.
1629
- // This prevents a duplicate link from being added.
1630
- var removeLinks = [];
1631
- RED.nodes.eachLink(function (l) {
1632
- if (
1633
- replaceNodes.hasOwnProperty(l.source.id) &&
1634
- replaceNodes.hasOwnProperty(l.target.id)
1635
- ) {
1636
- removeLinks.push(l);
1637
- }
1638
- });
1639
- removeLinks.forEach(removeLink);
1640
-
1641
- RED.view.redraw(true);
1642
- var result = importNodes(reimportList, false);
1643
- var newNodeMap = {};
1644
- result[0].forEach(function (n) {
1645
- newNodeMap[n.id] = n;
1646
- });
1647
- RED.nodes.eachLink(function (l) {
1648
- if (newNodeMap.hasOwnProperty(l.source.id)) {
1649
- l.source = newNodeMap[l.source.id];
1650
- }
1651
- if (newNodeMap.hasOwnProperty(l.target.id)) {
1652
- l.target = newNodeMap[l.target.id];
1653
- }
1654
- });
1655
- RED.view.redraw(true);
1656
- }
1657
- });
1658
- },
1659
- registry: registry,
1660
- setNodeList: registry.setNodeList,
1661
-
1662
- getNodeSet: registry.getNodeSet,
1663
- addNodeSet: registry.addNodeSet,
1664
- removeNodeSet: registry.removeNodeSet,
1665
- enableNodeSet: registry.enableNodeSet,
1666
- disableNodeSet: registry.disableNodeSet,
1667
-
1668
- setIconSets: registry.setIconSets,
1669
- getIconSets: registry.getIconSets,
1670
-
1671
- registerType: registry.registerNodeType,
1672
- getType: registry.getNodeType,
1673
- convertNode: convertNode,
1674
-
1675
- add: addNode,
1676
- remove: removeNode,
1677
- clear: clear,
1678
-
1679
- addLink: addLink,
1680
- removeLink: removeLink,
1681
-
1682
- addWorkspace: addWorkspace,
1683
- removeWorkspace: removeWorkspace,
1684
- getWorkspaceOrder: function () {
1685
- return workspacesOrder;
1686
- },
1687
- setWorkspaceOrder: function (order) {
1688
- workspacesOrder = order;
1689
- },
1690
- workspace: getWorkspace,
1691
-
1692
- addSubflow: addSubflow,
1693
- removeSubflow: removeSubflow,
1694
- subflow: getSubflow,
1695
- subflowContains: subflowContains,
1696
-
1697
- eachNode: function (cb) {
1698
- for (var n = 0; n < nodes.length; n++) {
1699
- if (cb(nodes[n]) === false) {
1700
- break;
1701
- }
1702
- }
1703
- },
1704
- eachLink: function (cb) {
1705
- for (var l = 0; l < links.length; l++) {
1706
- if (cb(links[l]) === false) {
1707
- break;
1708
- }
1709
- }
1710
- },
1711
- eachConfig: function (cb) {
1712
- for (var id in configNodes) {
1713
- if (configNodes.hasOwnProperty(id)) {
1714
- if (cb(configNodes[id]) === false) {
1715
- break;
1716
- }
1717
- }
1718
- }
1719
- },
1720
- eachSubflow: function (cb) {
1721
- for (var id in subflows) {
1722
- if (subflows.hasOwnProperty(id)) {
1723
- if (cb(subflows[id]) === false) {
1724
- break;
1725
- }
1726
- }
1727
- }
1728
- },
1729
- eachWorkspace: eachWorkspace,
1730
-
1731
- listWorkspaces: listWorkspaces,
1732
-
1733
- node: getNode,
1734
-
1735
- version: flowVersion,
1736
- originalFlow: function (flow) {
1737
- if (flow === undefined) {
1738
- return initialLoad;
1739
- } else {
1740
- initialLoad = flow;
1741
- }
1742
- },
1743
- listNodes: listNodes,
1744
- filterNodes: filterNodes,
1745
- filterLinks: filterLinks,
1746
-
1747
- import: importNodes,
1748
- getTabLabel: getTabLabel,
1749
- getAllFlowNodes: getAllFlowNodes,
1750
- createExportableNodeSet: createExportableNodeSet,
1751
- createCompleteNodeSet: createCompleteNodeSet,
1752
- updateConfigNodeUsers: updateConfigNodeUsers,
1753
- id: getID,
1754
- dirty: function (d) {
1755
- if (d == null) {
1756
- return dirty;
1757
- } else {
1758
- setDirty(d);
1759
- }
1760
- },
1761
- };
1762
- })();