@kumologica/sdk 3.0.21 → 3.0.25

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.
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "productName": "Kumologica Designer",
4
4
  "copyright": "Copyright 2020 Kumologica Pty Ltd, All Rights Reserved.",
5
5
  "author": "Kumologica Pty Ltd <contact@kumologica.com>",
6
- "version": "3.0.21",
6
+ "version": "3.0.25",
7
7
  "description": "Kumologica Designer, harnessing Serverless for your cloud integration needs",
8
8
  "main": "src/app/main.js",
9
9
  "files": [
@@ -65,9 +65,9 @@
65
65
  "license": "Proprietary",
66
66
  "dependencies": {
67
67
  "@electron/remote": "^2.0.8",
68
- "@kumologica/builder": "3.0.21",
69
- "@kumologica/devkit": "3.0.21",
70
- "@kumologica/runtime": "3.0.21",
68
+ "@kumologica/builder": "3.0.25",
69
+ "@kumologica/devkit": "3.0.25",
70
+ "@kumologica/runtime": "3.0.25",
71
71
  "adm-zip": "0.4.13",
72
72
  "ajv": "8.10.0",
73
73
  "aws-sdk": "2.513.0",
@@ -88,7 +88,7 @@
88
88
  "express": "4.17.3",
89
89
  "express-session": "1.16.2",
90
90
  "extract-json-from-string": "1.0.1",
91
- "fs-extra": "8.1.0",
91
+ "fs-extra": "10.1.0",
92
92
  "glob": "7.1.6",
93
93
  "got": "11.8.2",
94
94
  "hash-sum": "2.0.0",
@@ -25,13 +25,13 @@ let appTemplate = [
25
25
  label: 'Kumologica Designer', //app.name,
26
26
  submenu: [
27
27
  { role: 'about' },
28
- {
28
+ /* {
29
29
  label: 'Check for Updates',
30
30
  click() {
31
31
  ipcMain.emit('menu-check-for-updates');
32
32
  },
33
33
  },
34
- { type: 'separator' },
34
+ */ { type: 'separator' },
35
35
  { role: 'services' },
36
36
  { type: 'separator' },
37
37
  { role: 'hide' },
@@ -117,7 +117,7 @@ let appTemplate = [
117
117
  submenu: [
118
118
  { role: 'reload' },
119
119
  { role: 'forcereload' },
120
- /*{ role: 'toggledevtools' },*/
120
+ // { role: 'toggledevtools' },
121
121
  { type: 'separator' },
122
122
  { role: 'resetzoom' },
123
123
  { role: 'zoomin' },
@@ -42,7 +42,6 @@ const deployCli = require('@kumologica/builder');
42
42
  const Azure = require('./lib/azure');
43
43
 
44
44
  const { openFileOnEditor, openFolder } = require('./lib/utils/editor');
45
- const { removeRemote } = require('@kumologica/runtime/src/runtime/lib/storage/localfilesystem/projects');
46
45
 
47
46
  const terminalEmitter = new events.EventEmitter();
48
47
  const awsDeployer = new AWSDeployer(terminalEmitter);
@@ -9446,14 +9446,19 @@ RED.panels = (function() {
9446
9446
  return ul.find("a[href='#" + id + "']").length > 0;
9447
9447
  },
9448
9448
  renameTab: function (id, label) {
9449
- tabs[id].label = label;
9450
- var tab = ul.find("a[href='#" + id + "']");
9451
- tab.attr('title', label);
9452
- tab
9453
- .find('span.bidiAware')
9454
- .text(label)
9455
- .attr('dir', RED.text.bidi.resolveBaseTextDir(label));
9456
- updateTabWidths();
9449
+ if (tabs[id]){
9450
+ tabs[id].label = label;
9451
+ var tab = ul.find("a[href='#" + id + "']");
9452
+ tab.attr('title', label);
9453
+ tab
9454
+ .find('span.bidiAware')
9455
+ .text(label)
9456
+ .attr('dir', RED.text.bidi.resolveBaseTextDir(label));
9457
+ updateTabWidths();
9458
+ } else {
9459
+ console.log('[tabs] Tab not found')
9460
+ }
9461
+
9457
9462
  },
9458
9463
  selection: getSelection,
9459
9464
  order: function (order) {
@@ -17380,7 +17385,7 @@ RED.h = handlers;
17380
17385
  }
17381
17386
  }
17382
17387
  clipboard = JSON.stringify(nns);
17383
- RED.notify(`${nns.length} node copied`);
17388
+ // RED.notify(`${nns.length} node copied`);
17384
17389
  }
17385
17390
  }
17386
17391
 
@@ -19006,8 +19011,13 @@ RED.h = handlers;
19006
19011
  {
19007
19012
  title: 'Cut',
19008
19013
  shortcut: 'Ctrl+X',
19009
- action: async function(elm, d, i) {
19010
- RED.view.select(d.id);
19014
+ action: async function(elm, d, i, ctx) {
19015
+ if (ctx && ctx.nodes) {
19016
+ RED.view.select(ctx.nodes.map(n => n.id));
19017
+ } else {
19018
+ RED.view.select(d.id);
19019
+ }
19020
+
19011
19021
  copySelection();
19012
19022
  deleteSelection();
19013
19023
  }
@@ -19015,8 +19025,12 @@ RED.h = handlers;
19015
19025
  {
19016
19026
  title: 'Copy',
19017
19027
  shortcut: 'Ctrl+C',
19018
- action: async function(elm, d, i) {
19019
- RED.view.select(d.id);
19028
+ action: async function(elm, d, i, ctx) {
19029
+ if (ctx && ctx.nodes) {
19030
+ RED.view.select(ctx.nodes.map(n => n.id));
19031
+ } else {
19032
+ RED.view.select(d.id);
19033
+ }
19020
19034
  copySelection();
19021
19035
  }
19022
19036
  },
@@ -19030,8 +19044,12 @@ RED.h = handlers;
19030
19044
  {
19031
19045
  title: 'Delete',
19032
19046
  shortcut: 'Del',
19033
- action: async function(elm, d, i) {
19034
- RED.view.select(d.id);
19047
+ action: async function(elm, d, i, ctx) {
19048
+ if (ctx && ctx.nodes) {
19049
+ RED.view.select(ctx.nodes.map(n => n.id));
19050
+ } else {
19051
+ RED.view.select(d.id);
19052
+ }
19035
19053
  deleteSelection();
19036
19054
  redraw();
19037
19055
  }
@@ -19039,15 +19057,25 @@ RED.h = handlers;
19039
19057
  { separator: true },
19040
19058
  {
19041
19059
  title: 'Copy Node ID',
19042
- action: async function(elm, d, i) {
19043
- RED.clipboard.copyText(d.id);
19044
- RED.notify(`Node ID [ <b>${d.id}</b> ] copied to clipboard`)
19060
+ action: async function(elm, d, i, ctx) {
19061
+ if (ctx.nodes.length > 1){
19062
+ RED.notify('<strong>Error:</strong> This option requires selecing a single node', 'error');
19063
+ return;
19064
+ } else {
19065
+ RED.clipboard.copyText(d.id);
19066
+ RED.notify(`Node ID [ <b>${d.id}</b> ] copied to clipboard`)
19067
+ }
19045
19068
  }
19046
19069
  },
19047
19070
  {
19048
19071
  title: 'Settings...',
19049
- action: async function(elm, d, i) {
19050
- RED.editor.edit(d);
19072
+ action: async function(elm, d, i, ctx) {
19073
+ if (ctx.nodes.length > 1){
19074
+ RED.notify('<strong>Error:</strong> This options requires selecting a single node', 'error');
19075
+ return;
19076
+ } else {
19077
+ RED.editor.edit(d);
19078
+ }
19051
19079
  }
19052
19080
  }
19053
19081
  ];
@@ -19063,7 +19091,12 @@ RED.h = handlers;
19063
19091
 
19064
19092
 
19065
19093
  let nodeId = d.id.replace('.', '_');
19066
- node.on('contextmenu', d3.contextMenu(nodeId, menu, ()=> { zoomZero() }));
19094
+ node.on('contextmenu', d3.contextMenu(nodeId, menu, ()=> {
19095
+ console.log('[view] before context menu');
19096
+ console.log('[view] selection of nodes:', RED.view.selection());
19097
+ zoomZero()
19098
+ return RED.view.selection();
19099
+ }));
19067
19100
 
19068
19101
  contextMenuLayer
19069
19102
  .append('foreignObject')
@@ -20168,7 +20201,7 @@ RED.h = handlers;
20168
20201
  }
20169
20202
  if (counts.length > 0) {
20170
20203
  var countList = '<ul><li>' + counts.join('</li><li>') + '</li></ul>';
20171
- RED.notify(`<p>Imported:</p> ${countList}`)
20204
+ // RED.notify(`<p>Imported:</p> ${countList}`)
20172
20205
  }
20173
20206
  }
20174
20207
  } catch (error) {
@@ -20400,10 +20433,12 @@ RED.h = handlers;
20400
20433
  }
20401
20434
  }
20402
20435
  if (Array.isArray(selection)) {
20436
+ console.log('[view] selection pre=', selection);
20403
20437
  let selectionNodes =
20404
20438
  (selection.length === 0)?
20405
20439
  RED.nodes.filterNodes({ z: 'main.flow'}): RED.nodes.filterNodes({ id: selection });
20406
20440
 
20441
+ console.log('[view] selection nodes=', selectionNodes);
20407
20442
  if (selectionNodes && Array.isArray(selectionNodes)){
20408
20443
  moving_set = [];
20409
20444
  selectionNodes.forEach(sn => {