n8n-nodes-soar 0.1.22 → 0.1.23

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 (76) hide show
  1. package/dist/common/asset.js +42 -56
  2. package/dist/common/connectionType.js +3 -2
  3. package/dist/common/executor/abstract.executor.js +51 -0
  4. package/dist/common/executor/docker.executor.js +57 -31
  5. package/dist/common/executor/jsonrpc.executor.js +123 -0
  6. package/dist/common/executor/{k8s.executor.js → kubernetes.executor.js} +56 -33
  7. package/dist/common/interface.js +4 -0
  8. package/dist/common/memorizer/abstract.memorizer.js +49 -0
  9. package/dist/common/memorizer/asset.memorizer.js +16 -0
  10. package/dist/common/memorizer/general.memorizer.js +17 -0
  11. package/dist/common/memorizer/storage/redis.storage.js +71 -0
  12. package/dist/common/proxy/abstract.proxy.js +4 -0
  13. package/dist/common/proxy/executor.proxy.js +50 -0
  14. package/dist/common/proxy/memorizer.proxy.js +51 -0
  15. package/dist/common/proxy/runner.proxy.js +60 -0
  16. package/dist/common/runner/container.runner.js +93 -108
  17. package/dist/common/runner/decorator/assetRunner.js +26 -0
  18. package/dist/common/runner/decorator/index.js +20 -0
  19. package/dist/common/runner/decorator/onlySuccess.js +20 -0
  20. package/dist/common/runner/{priority.js → decorator/priority.js} +16 -8
  21. package/dist/common/runner/priority.runner.js +6 -7
  22. package/dist/common/runner/runner.js +10 -29
  23. package/dist/constants/image.js +11 -0
  24. package/dist/credentials/SoarRunner/SoarRunner.credentials.js +73 -0
  25. package/dist/credentials/SoarRunner/icon.svg +8 -0
  26. package/dist/credentials/VulboxApi/VulboxApi.credentials.js +157 -0
  27. package/dist/credentials/VulboxApi/vulbox.svg +18 -0
  28. package/dist/nodes/Collector/Collector.node.js +56 -47
  29. package/dist/nodes/EmptyCheck/EmptyCheck.node.js +69 -0
  30. package/dist/nodes/Executor/DockerExecutor/DockerExecutor.node.js +80 -3
  31. package/dist/nodes/Executor/JsonRpcExecutor/JsonRpcExecutor.node.js +69 -0
  32. package/dist/nodes/Executor/JsonRpcExecutor/icon.svg +8 -0
  33. package/dist/nodes/Executor/KubernetesExecutor/KubernetesExecutor.node.js +112 -4
  34. package/dist/nodes/Fofa/Fofa.node.js +23 -14
  35. package/dist/nodes/Memorizer/Redis/RedisMemorizer.node.js +127 -0
  36. package/dist/nodes/Memorizer/Redis/redis.svg +1 -0
  37. package/dist/nodes/Platform/Vulbox/Vulbox.node.js +166 -0
  38. package/dist/nodes/Platform/Vulbox/api.js +211 -0
  39. package/dist/nodes/Platform/Vulbox/methods.js +124 -0
  40. package/dist/nodes/Platform/Vulbox/properties.js +403 -0
  41. package/dist/nodes/Platform/Vulbox/vulbox.svg +18 -0
  42. package/dist/nodes/Runner/Cmd/Cmd.node.js +105 -0
  43. package/dist/nodes/Runner/Dns/Dns.node.js +38 -22
  44. package/dist/nodes/Runner/Httpx/Httpx.node.js +147 -18
  45. package/dist/nodes/Runner/IcpLookup/IcpLookup.node.js +166 -0
  46. package/dist/nodes/Runner/IcpLookup/icp.svg +3 -0
  47. package/dist/nodes/Runner/Katana/Katana.node.js +42 -29
  48. package/dist/nodes/Runner/Masscan/Masscan.node.js +51 -29
  49. package/dist/nodes/Runner/Naabu/Naabu.node.js +35 -17
  50. package/dist/nodes/Runner/Nuclei/Nuclei.node.js +32 -14
  51. package/dist/nodes/Runner/Priority/Priority.node.js +2 -1
  52. package/dist/nodes/Runner/Subfinder/Subfinder.node.js +38 -15
  53. package/dist/nodes/Runner/Unauthor/Unauthor.node.js +32 -14
  54. package/dist/utils/decorator.js +22 -0
  55. package/package.json +19 -5
  56. package/dist/common/executor/executor.js +0 -48
  57. package/dist/nodes/Asset/SplitAsset/SplitAsset.node.js +0 -110
  58. package/dist/nodes/Asset/SplitAsset/split.svg +0 -13
  59. package/dist/nodes/Cdncheck/Cdncheck.node.js +0 -229
  60. package/dist/nodes/Httpx/Httpx.node.js +0 -754
  61. package/dist/nodes/Katana/Katana.node.js +0 -456
  62. package/dist/nodes/Katana/Katana.node.json +0 -9
  63. package/dist/nodes/Nuclei/Nuclei.node.js +0 -1024
  64. package/dist/nodes/Nuclei/Nuclei.node.json +0 -9
  65. package/dist/nodes/Runner/Katana/a.json +0 -30
  66. package/dist/nodes/Runner/Nuclei/a.json +0 -48
  67. package/dist/nodes/Runner/PriorityAdd/PriorityAdd.node.js +0 -97
  68. package/dist/nodes/Runner/Router/SwitchRouter/SwitchRouter.node.js +0 -101
  69. package/dist/nodes/Tshark/Tshark.node.js +0 -104
  70. package/dist/nodes/Tshark/Tshark.node.json +0 -9
  71. package/dist/nodes/Tshark/tshark.svg +0 -64
  72. package/dist/nodes/Unauthor/Unauthor.node.js +0 -135
  73. package/dist/nodes/Unauthor/Unauthor.node.json +0 -9
  74. package/dist/nodes/Unauthor/unauthor.svg +0 -7
  75. package/dist/nodes/Uncover/Uncover.node.js +0 -280
  76. package/dist/nodes/Uncover/Uncover.node.json +0 -9
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "Naabu", {
9
9
  }
10
10
  });
11
11
  const _connectionType = require("../../../common/connectionType");
12
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
12
13
  const _containerrunner = require("../../../common/runner/container.runner");
13
- const _priority = require("../../../common/runner/priority");
14
+ const _decorator = require("../../../common/runner/decorator");
14
15
  function _define_property(obj, key, value) {
15
16
  if (key in obj) {
16
17
  Object.defineProperty(obj, key, {
@@ -24,9 +25,16 @@ function _define_property(obj, key, value) {
24
25
  }
25
26
  return obj;
26
27
  }
27
- class NaabuRunner extends _containerrunner.ContainerRunner {
28
- cmd(assets) {
29
- return [
28
+ function _ts_decorate(decorators, target, key, desc) {
29
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
33
+ }
34
+ let NaabuRunner = class NaabuRunner extends _containerrunner.ContainerRunner {
35
+ async run(collector, inputs) {
36
+ const assets = inputs.map((n)=>n.json);
37
+ const cmd = [
30
38
  "naabu",
31
39
  "-disable-update-check",
32
40
  "-json",
@@ -35,9 +43,9 @@ class NaabuRunner extends _containerrunner.ContainerRunner {
35
43
  "4,6",
36
44
  "-host",
37
45
  [
38
- ...new Set(assets.map((n)=>n.getHost()).filter(Boolean))
46
+ ...new Set(assets.map((n)=>n.getHost()))
39
47
  ].join(","),
40
- ...this.collectGeneratedOptions([
48
+ ...this.collectGeneratedCmdOptions([
41
49
  "options.input",
42
50
  "options.port",
43
51
  "options.rateLimit",
@@ -47,11 +55,9 @@ class NaabuRunner extends _containerrunner.ContainerRunner {
47
55
  "options.optimization"
48
56
  ])
49
57
  ];
50
- }
51
- process(rawAssets, stdout) {
58
+ const { stdout } = await this.runCmd(collector, cmd, this.getOptions());
52
59
  const ports = new Map();
53
- for (const line of stdout.trim().split("\n")){
54
- const json = JSON.parse(line);
60
+ for (const json of stdout.trim().split("\n").filter(Boolean).map((n)=>JSON.parse(n))){
55
61
  ports.set(json.ip, [
56
62
  ...ports.get(json.ip) ?? [],
57
63
  {
@@ -60,21 +66,25 @@ class NaabuRunner extends _containerrunner.ContainerRunner {
60
66
  }
61
67
  ]);
62
68
  }
63
- return rawAssets.flatMap((a)=>{
64
- const result = ports.get(a.getHost());
69
+ return inputs.flatMap((a)=>{
70
+ const result = ports.get(a.json.getHost());
65
71
  if (result) {
66
- a.ports = result;
67
- a.success = true;
72
+ return this.constructData(a.sourceInputIndex, a.json.splitByPorts(result), true);
73
+ } else {
74
+ return a;
68
75
  }
69
- return a.splitByPorts();
70
76
  });
71
77
  }
72
- }
78
+ };
79
+ NaabuRunner = _ts_decorate([
80
+ (0, _decorator.Priority)(_decorator.PORT_RUNNER_PRIORITY),
81
+ _decorator.AssetRunner
82
+ ], NaabuRunner);
73
83
  class Naabu {
74
84
  async supplyData(itemIndex) {
75
85
  return {
76
86
  response: [
77
- new NaabuRunner("naabu", _priority.PORT_RUNNER_PRIORITY, this, itemIndex)
87
+ (0, _runnerproxy.proxyRunner)(new NaabuRunner(this, itemIndex))
78
88
  ]
79
89
  };
80
90
  }
@@ -475,6 +485,14 @@ class Naabu {
475
485
  ]
476
486
  }
477
487
  ]
488
+ },
489
+ ..._containerrunner.advancedOptions,
490
+ {
491
+ displayName: "Debug Mode",
492
+ name: "debug",
493
+ type: "boolean",
494
+ default: false,
495
+ description: "Whether open to see more information in node input & output"
478
496
  }
479
497
  ]
480
498
  });
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "Nuclei", {
9
9
  }
10
10
  });
11
11
  const _connectionType = require("../../../common/connectionType");
12
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
12
13
  const _containerrunner = require("../../../common/runner/container.runner");
13
- const _priority = require("../../../common/runner/priority");
14
+ const _decorator = require("../../../common/runner/decorator");
14
15
  function _define_property(obj, key, value) {
15
16
  if (key in obj) {
16
17
  Object.defineProperty(obj, key, {
@@ -24,16 +25,23 @@ function _define_property(obj, key, value) {
24
25
  }
25
26
  return obj;
26
27
  }
27
- class NucleiRunner extends _containerrunner.ContainerRunner {
28
- cmd(assets) {
29
- return [
28
+ function _ts_decorate(decorators, target, key, desc) {
29
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
33
+ }
34
+ let NucleiRunner = class NucleiRunner extends _containerrunner.ContainerRunner {
35
+ async run(collector, inputs) {
36
+ const assets = inputs.map((n)=>n.json);
37
+ const cmd = [
30
38
  "nuclei",
31
39
  "-silent",
32
40
  "-jsonl",
33
41
  "-disable-update-check",
34
42
  "-target",
35
43
  assets.map((a)=>a.getHostAndPort()).join(","),
36
- ...this.collectGeneratedOptions([
44
+ ...this.collectGeneratedCmdOptions([
37
45
  "options.target",
38
46
  "options.templates",
39
47
  "options.filtering",
@@ -49,28 +57,30 @@ class NucleiRunner extends _containerrunner.ContainerRunner {
49
57
  "options.cloud"
50
58
  ])
51
59
  ];
52
- }
53
- process(rawAssets, stdout) {
60
+ const { stdout } = await this.runCmd(collector, cmd, this.getOptions());
54
61
  const result = new Map();
55
- for (const line of stdout.trim().split("\n")){
56
- const json = JSON.parse(line);
62
+ for (const json of stdout.trim().split("\n").filter(Boolean).map((n)=>JSON.parse(n))){
57
63
  result.set(json.host, (result.get(json.host) || []).concat(json));
58
64
  }
59
- return rawAssets.map((a)=>{
60
- const res = result.get(a.getHostAndPort());
65
+ return inputs.map((a)=>{
66
+ const res = result.get(a.json.getHostAndPort());
61
67
  if (res) {
62
- a.response = res;
68
+ a.json.response = res;
63
69
  a.success = true;
64
70
  }
65
71
  return a;
66
72
  });
67
73
  }
68
- }
74
+ };
75
+ NucleiRunner = _ts_decorate([
76
+ (0, _decorator.Priority)(_decorator.EXPLOIT_RUNNER_PRIORITY),
77
+ _decorator.AssetRunner
78
+ ], NucleiRunner);
69
79
  class Nuclei {
70
80
  async supplyData(itemIndex) {
71
81
  return {
72
82
  response: [
73
- new NucleiRunner("nuclei", _priority.EXPLOIT_RUNNER_PRIORITY, this, itemIndex)
83
+ (0, _runnerproxy.proxyRunner)(new NucleiRunner(this, itemIndex))
74
84
  ]
75
85
  };
76
86
  }
@@ -1050,6 +1060,14 @@ class Nuclei {
1050
1060
  ]
1051
1061
  }
1052
1062
  ]
1063
+ },
1064
+ ..._containerrunner.advancedOptions,
1065
+ {
1066
+ displayName: "Debug Mode",
1067
+ name: "debug",
1068
+ type: "boolean",
1069
+ default: false,
1070
+ description: "Whether open to see more information in node input & output"
1053
1071
  }
1054
1072
  ]
1055
1073
  });
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "Priority", {
9
9
  }
10
10
  });
11
11
  const _connectionType = require("../../../common/connectionType");
12
+ const _decorator = require("../../../common/runner/decorator");
12
13
  const _priorityrunner = require("../../../common/runner/priority.runner");
13
14
  function _define_property(obj, key, value) {
14
15
  if (key in obj) {
@@ -39,7 +40,7 @@ class Priority {
39
40
  }
40
41
  };
41
42
  return {
42
- response: runners.map((r)=>new _priorityrunner.PriorityRunner(r, modifyFunc(r.priority)))
43
+ response: runners.map((r)=>new _priorityrunner.PriorityRunner(r, modifyFunc((0, _decorator.getPriority)(r))))
43
44
  };
44
45
  }
45
46
  constructor(){
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "Subfinder", {
9
9
  }
10
10
  });
11
11
  const _connectionType = require("../../../common/connectionType");
12
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
12
13
  const _containerrunner = require("../../../common/runner/container.runner");
13
- const _priority = require("../../../common/runner/priority");
14
+ const _decorator = require("../../../common/runner/decorator");
14
15
  function _define_property(obj, key, value) {
15
16
  if (key in obj) {
16
17
  Object.defineProperty(obj, key, {
@@ -24,16 +25,23 @@ function _define_property(obj, key, value) {
24
25
  }
25
26
  return obj;
26
27
  }
27
- class SubfinderRunner extends _containerrunner.ContainerRunner {
28
- cmd(assets) {
29
- return [
28
+ function _ts_decorate(decorators, target, key, desc) {
29
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
33
+ }
34
+ let SubfinderRunner = class SubfinderRunner extends _containerrunner.ContainerRunner {
35
+ async run(collector, inputs) {
36
+ const assets = inputs.map((n)=>n.json);
37
+ const cmd = [
30
38
  "subfinder",
31
39
  "-disable-update-check",
32
40
  "-json",
33
41
  "-silent",
34
42
  "-domain",
35
43
  assets.map((a)=>a.getDomain()).join(","),
36
- ...this.collectGeneratedOptions([
44
+ ...this.collectGeneratedCmdOptions([
37
45
  "options.source",
38
46
  "options.filter",
39
47
  "options.rateLimit",
@@ -42,27 +50,34 @@ class SubfinderRunner extends _containerrunner.ContainerRunner {
42
50
  "options.optimization"
43
51
  ])
44
52
  ];
45
- }
46
- process(rawAssets, stdout) {
53
+ const { stdout } = await this.runCmd(collector, cmd, this.getOptions());
47
54
  const subdomains = new Map();
48
- for (const line of stdout.trim().split("\n")){
49
- const json = JSON.parse(line);
55
+ for (const json of stdout.trim().split("\n").filter(Boolean).map((n)=>JSON.parse(n))){
50
56
  subdomains.set(json.input, [
51
57
  ...subdomains.get(json.input) ?? [],
52
58
  json.host
53
59
  ]);
54
60
  }
55
- return rawAssets.flatMap((a)=>{
56
- a.subdomains = subdomains.get(a.getDomain());
57
- a.success = true;
58
- return a.splitBySubdomains();
61
+ return inputs.flatMap((a)=>{
62
+ const subdomain = subdomains.get(a.json.getDomain());
63
+ if (subdomain) {
64
+ return this.constructData(a.sourceInputIndex, a.json.splitBySubdomains(subdomain), true);
65
+ } else {
66
+ return a;
67
+ }
59
68
  });
60
69
  }
61
- }
70
+ };
71
+ SubfinderRunner = _ts_decorate([
72
+ (0, _decorator.Priority)(_decorator.DOMAIN_RUNNER_PRIORITY),
73
+ _decorator.AssetRunner
74
+ ], SubfinderRunner);
62
75
  class Subfinder {
63
76
  async supplyData(itemIndex) {
64
77
  return {
65
- response: new SubfinderRunner("subfinder", _priority.DOMAIN_RUNNER_PRIORITY, this, itemIndex)
78
+ response: [
79
+ (0, _runnerproxy.proxyRunner)(new SubfinderRunner(this, itemIndex))
80
+ ]
66
81
  };
67
82
  }
68
83
  constructor(){
@@ -335,6 +350,14 @@ class Subfinder {
335
350
  ]
336
351
  }
337
352
  ]
353
+ },
354
+ ..._containerrunner.advancedOptions,
355
+ {
356
+ displayName: "Debug Mode",
357
+ name: "debug",
358
+ type: "boolean",
359
+ default: false,
360
+ description: "Whether open to see more information in node input & output"
338
361
  }
339
362
  ]
340
363
  });
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "Unauthor", {
9
9
  }
10
10
  });
11
11
  const _connectionType = require("../../../common/connectionType");
12
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
12
13
  const _containerrunner = require("../../../common/runner/container.runner");
13
- const _priority = require("../../../common/runner/priority");
14
+ const _decorator = require("../../../common/runner/decorator");
14
15
  function _define_property(obj, key, value) {
15
16
  if (key in obj) {
16
17
  Object.defineProperty(obj, key, {
@@ -24,41 +25,50 @@ function _define_property(obj, key, value) {
24
25
  }
25
26
  return obj;
26
27
  }
27
- class UnauthorRunner extends _containerrunner.ContainerRunner {
28
- cmd(assets) {
28
+ function _ts_decorate(decorators, target, key, desc) {
29
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
32
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
33
+ }
34
+ let UnauthorRunner = class UnauthorRunner extends _containerrunner.ContainerRunner {
35
+ async run(collector, inputs) {
36
+ const assets = inputs.map((n)=>n.json);
29
37
  const type = this.func.getNodeParameter("type", this.itemIndex);
30
- return [
38
+ const cmd = [
31
39
  "unauthor",
32
40
  "--type",
33
41
  type,
34
42
  "-t",
35
43
  assets.map((a)=>a.getHostAndPort()).join(","),
36
- ...this.collectGeneratedOptions([
44
+ ...this.collectGeneratedCmdOptions([
37
45
  "options.option"
38
46
  ])
39
47
  ];
40
- }
41
- process(rawAssets, stdout) {
48
+ const { stdout } = await this.runCmd(collector, cmd, this.getOptions());
42
49
  const result = new Map();
43
- for (const line of stdout.trim().split("\n")){
44
- const json = JSON.parse(line);
50
+ for (const json of stdout.trim().split("\n").filter(Boolean).map((n)=>JSON.parse(n))){
45
51
  result.set(json.target, json);
46
52
  }
47
- return rawAssets.map((a)=>{
48
- const res = result.get(a.getHostAndPort());
53
+ return inputs.map((a)=>{
54
+ const res = result.get(a.json.getHostAndPort());
49
55
  if (res) {
50
- a.response = res;
56
+ a.json.response = res;
51
57
  a.success = res.success;
52
58
  }
53
59
  return a;
54
60
  });
55
61
  }
56
- }
62
+ };
63
+ UnauthorRunner = _ts_decorate([
64
+ (0, _decorator.Priority)(_decorator.EXPLOIT_RUNNER_PRIORITY),
65
+ _decorator.AssetRunner
66
+ ], UnauthorRunner);
57
67
  class Unauthor {
58
68
  async supplyData(itemIndex) {
59
69
  return {
60
70
  response: [
61
- new UnauthorRunner("unauthor", _priority.APP_RUNNER_PRIORITY, this, itemIndex)
71
+ (0, _runnerproxy.proxyRunner)(new UnauthorRunner(this, itemIndex))
62
72
  ]
63
73
  };
64
74
  }
@@ -162,6 +172,14 @@ class Unauthor {
162
172
  ]
163
173
  }
164
174
  ]
175
+ },
176
+ ..._containerrunner.advancedOptions,
177
+ {
178
+ displayName: "Debug Mode",
179
+ name: "debug",
180
+ type: "boolean",
181
+ default: false,
182
+ description: "Whether open to see more information in node input & output"
165
183
  }
166
184
  ]
167
185
  });
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "declareClassDecorator", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return declareClassDecorator;
9
+ }
10
+ });
11
+ function declareClassDecorator(name, defaultValue) {
12
+ return [
13
+ (value)=>(target)=>Reflect.defineMetadata(name, value ?? defaultValue, target),
14
+ (target)=>{
15
+ if (target instanceof Function) {
16
+ return Reflect.getMetadata(name, target) ?? defaultValue;
17
+ } else {
18
+ return Reflect.getMetadata(name, target.constructor) ?? defaultValue;
19
+ }
20
+ }
21
+ ];
22
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-soar",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "n8n-community-node-package"
@@ -24,21 +24,29 @@
24
24
  "credentials": [
25
25
  "dist/credentials/FofaApi/FofaApi.credentials.js",
26
26
  "dist/credentials/Docker/Docker.credentials.js",
27
- "dist/credentials/Kubernetes/Kubernetes.credentials.js"
27
+ "dist/credentials/Kubernetes/Kubernetes.credentials.js",
28
+ "dist/credentials/SoarRunner/SoarRunner.credentials.js",
29
+ "dist/credentials/VulboxApi/VulboxApi.credentials.js"
28
30
  ],
29
31
  "nodes": [
32
+ "dist/nodes/Collector/Collector.node.js",
30
33
  "dist/nodes/Executor/DockerExecutor/DockerExecutor.node.js",
34
+ "dist/nodes/Executor/JsonRpcExecutor/JsonRpcExecutor.node.js",
31
35
  "dist/nodes/Executor/KubernetesExecutor/KubernetesExecutor.node.js",
32
- "dist/nodes/Collector/Collector.node.js",
36
+ "dist/nodes/Runner/Cmd/Cmd.node.js",
33
37
  "dist/nodes/Runner/Dns/Dns.node.js",
34
38
  "dist/nodes/Runner/Httpx/Httpx.node.js",
39
+ "dist/nodes/Runner/IcpLookup/IcpLookup.node.js",
35
40
  "dist/nodes/Runner/Masscan/Masscan.node.js",
36
41
  "dist/nodes/Runner/Naabu/Naabu.node.js",
37
42
  "dist/nodes/Runner/Nuclei/Nuclei.node.js",
38
43
  "dist/nodes/Runner/Subfinder/Subfinder.node.js",
39
44
  "dist/nodes/Runner/Priority/Priority.node.js",
40
45
  "dist/nodes/Runner/Unauthor/Unauthor.node.js",
41
- "dist/nodes/Fofa/Fofa.node.js"
46
+ "dist/nodes/Memorizer/Redis/RedisMemorizer.node.js",
47
+ "dist/nodes/Fofa/Fofa.node.js",
48
+ "dist/nodes/EmptyCheck/EmptyCheck.node.js",
49
+ "dist/nodes/Platform/Vulbox/Vulbox.node.js"
42
50
  ]
43
51
  },
44
52
  "devDependencies": {
@@ -47,12 +55,14 @@
47
55
  "@swc/cli": "^0.1.63",
48
56
  "@swc/core": "^1.3.96",
49
57
  "@swc/jest": "^0.2.29",
58
+ "@types/async-lock": "^1.4.2",
50
59
  "@types/dockerode": "^3.3.23",
51
60
  "@types/glob": "^8.1.0",
52
61
  "@types/inquirer": "^9.0.7",
53
62
  "@types/jest": "^29.5.8",
54
63
  "@types/lodash": "^4.14.201",
55
64
  "@types/request-promise-native": "^1.0.21",
65
+ "@types/ws": "^8.5.10",
56
66
  "@typescript-eslint/eslint-plugin": "^6.11.0",
57
67
  "@typescript-eslint/parser": "^6.11.0",
58
68
  "chalk": "^5.3.0",
@@ -92,11 +102,15 @@
92
102
  },
93
103
  "dependencies": {
94
104
  "@kubernetes/client-node": "^0.20.0",
105
+ "async-lock": "^1.4.0",
95
106
  "class-transformer": "^0.5.1",
96
107
  "dockerode": "^4.0.0",
97
108
  "lodash": "^4.17.21",
98
109
  "n8n-workflow": "^1.14.1",
99
- "reflect-metadata": "^0.1.13"
110
+ "node-cache": "^5.1.2",
111
+ "redis": "^4.6.11",
112
+ "reflect-metadata": "^0.1.13",
113
+ "ws": "^8.14.2"
100
114
  },
101
115
  "scripts": {
102
116
  "build": "swc src -d dist && tsx ./scripts/copy.ts",
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Executor", {
6
- enumerable: true,
7
- get: function() {
8
- return Executor;
9
- }
10
- });
11
- const _connectionType = require("../connectionType");
12
- function _define_property(obj, key, value) {
13
- if (key in obj) {
14
- Object.defineProperty(obj, key, {
15
- value: value,
16
- enumerable: true,
17
- configurable: true,
18
- writable: true
19
- });
20
- } else {
21
- obj[key] = value;
22
- }
23
- return obj;
24
- }
25
- class Executor {
26
- async run(cmd, image, env) {
27
- const { index } = this.func.addInputData(_connectionType.NodeConnectionType.Executor, [
28
- [
29
- {
30
- json: {
31
- cmd,
32
- image,
33
- env
34
- }
35
- }
36
- ]
37
- ]);
38
- const resp = await this.__run(cmd, image, env);
39
- this.func.addOutputData(_connectionType.NodeConnectionType.Executor, index, [
40
- this.func.helpers.returnJsonArray(resp)
41
- ]);
42
- return resp;
43
- }
44
- constructor(func){
45
- _define_property(this, "func", void 0);
46
- this.func = func;
47
- }
48
- }
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "SplitAsset", {
6
- enumerable: true,
7
- get: function() {
8
- return SplitAsset;
9
- }
10
- });
11
- const _classtransformer = require("class-transformer");
12
- const _n8nworkflow = require("n8n-workflow");
13
- const _asset = require("../../../common/asset");
14
- function _define_property(obj, key, value) {
15
- if (key in obj) {
16
- Object.defineProperty(obj, key, {
17
- value: value,
18
- enumerable: true,
19
- configurable: true,
20
- writable: true
21
- });
22
- } else {
23
- obj[key] = value;
24
- }
25
- return obj;
26
- }
27
- class SplitAsset {
28
- async execute() {
29
- const mode = this.getNodeParameter("mode", 0);
30
- let assets = this.getInputData().map((n)=>(0, _classtransformer.plainToInstance)(_asset.Asset, n.json));
31
- if (mode === "all") {
32
- assets = assets.flatMap((n)=>n.splitBySubdomains());
33
- } else if (mode === "by_field") {
34
- const field = this.getNodeParameter("field", 0);
35
- switch(field){
36
- case "subdomain":
37
- assets = assets.flatMap((n)=>n.splitBySubdomains());
38
- break;
39
- }
40
- }
41
- return [
42
- assets.map((n)=>{
43
- return {
44
- json: (0, _classtransformer.instanceToPlain)(n)
45
- };
46
- })
47
- ];
48
- }
49
- constructor(){
50
- _define_property(this, "description", {
51
- displayName: "Split Asset",
52
- name: "splitAsset",
53
- icon: "file:split.svg",
54
- group: [
55
- "transform"
56
- ],
57
- version: 1,
58
- description: "Split assets",
59
- defaults: {
60
- name: "Split Asset"
61
- },
62
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
63
- inputs: [
64
- _n8nworkflow.NodeConnectionType.Main
65
- ],
66
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
67
- outputs: [
68
- _n8nworkflow.NodeConnectionType.Main
69
- ],
70
- credentials: [],
71
- properties: [
72
- {
73
- displayName: "Split Mode",
74
- name: "mode",
75
- type: "options",
76
- default: "all",
77
- options: [
78
- {
79
- name: "All",
80
- value: "all"
81
- },
82
- {
83
- name: "By Field",
84
- value: "by_field"
85
- }
86
- ]
87
- },
88
- {
89
- displayName: "Field",
90
- name: "field",
91
- type: "options",
92
- displayOptions: {
93
- show: {
94
- mode: [
95
- "by_field"
96
- ]
97
- }
98
- },
99
- default: "subdomain",
100
- options: [
101
- {
102
- name: "Subdomain",
103
- value: "subdomain"
104
- }
105
- ]
106
- }
107
- ]
108
- });
109
- }
110
- }
@@ -1,13 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 24.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <svg version="1.1" id="Layer_1" focusable="false" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 210 210" width="60" height="60" xml:space="preserve">
4
- <style type="text/css">
5
- .st0{fill:#FF6D5A;}
6
- </style>
7
- <path class="st0" d="M18.8,18.8C8.4,18.8,0,27.1,0,37.5s8.4,18.8,18.8,18.8s18.8-8.4,18.8-18.8S29.1,18.8,18.8,18.8z M18.8,81.2
8
- C8.4,81.2,0,89.6,0,100s8.4,18.8,18.8,18.8s18.8-8.4,18.8-18.8S29.1,81.2,18.8,81.2z M18.8,143.8C8.4,143.8,0,152.1,0,162.5
9
- s8.4,18.8,18.8,18.8s18.8-8.4,18.8-18.8S29.1,143.8,18.8,143.8z M193.8,150h-125c-3.5,0-6.2,2.8-6.2,6.2v12.5c0,3.5,2.8,6.2,6.2,6.2
10
- h125c3.5,0,6.2-2.8,6.2-6.2v-12.5C200,152.8,197.2,150,193.8,150z M193.8,25h-125c-3.5,0-6.2,2.8-6.2,6.2v12.5
11
- c0,3.5,2.8,6.2,6.2,6.2h125c3.5,0,6.2-2.8,6.2-6.2V31.2C200,27.8,197.2,25,193.8,25z M193.8,87.5h-125c-3.5,0-6.2,2.8-6.2,6.2v12.5
12
- c0,3.5,2.8,6.2,6.2,6.2h125c3.5,0,6.2-2.8,6.2-6.2V93.8C200,90.3,197.2,87.5,193.8,87.5z"/>
13
- </svg>