n8n-nodes-soar 0.1.16 → 0.1.18
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/dist/common/asset.js +141 -0
- package/dist/common/collector.js +32 -0
- package/dist/common/connectionType.js +15 -0
- package/dist/common/executor/docker.executor.js +97 -0
- package/dist/common/executor/executor.js +48 -0
- package/dist/common/executor/k8s.executor.js +190 -0
- package/dist/common/runner/container.runner.js +174 -0
- package/dist/common/runner/priority.js +44 -0
- package/dist/common/runner/priority.runner.js +38 -0
- package/dist/common/runner/runner.js +57 -0
- package/dist/credentials/Docker/Docker.credentials.js +149 -0
- package/dist/credentials/Docker/docker.svg +7 -0
- package/dist/credentials/{FofaCredentials.credentials.js → FofaApi/FofaApi.credentials.js} +5 -5
- package/dist/credentials/Kubernetes/Kubernetes.credentials.js +82 -0
- package/dist/credentials/Kubernetes/k8s.svg +1 -0
- package/dist/nodes/Asset/SplitAsset/SplitAsset.node.js +110 -0
- package/dist/nodes/Asset/SplitAsset/split.svg +13 -0
- package/dist/nodes/Collector/Collector.node.js +123 -0
- package/dist/nodes/Executor/DockerExecutor/DockerExecutor.node.js +59 -0
- package/dist/nodes/Executor/DockerExecutor/docker.svg +7 -0
- package/dist/nodes/Executor/KubernetesExecutor/KubernetesExecutor.node.js +59 -0
- package/dist/nodes/Executor/KubernetesExecutor/k8s.svg +1 -0
- package/dist/nodes/Fofa/Fofa.node.js +20 -7
- package/dist/nodes/Katana/Katana.node.js +1 -1
- package/dist/nodes/Nuclei/Nuclei.node.js +1 -1
- package/dist/nodes/Runner/Dns/Dns.node.js +199 -0
- package/dist/nodes/Runner/Dns/script.js +81 -0
- package/dist/nodes/Runner/Httpx/Httpx.node.js +830 -0
- package/dist/nodes/Runner/Httpx/httpx.svg +3 -0
- package/dist/nodes/Runner/Katana/Katana.node.js +521 -0
- package/dist/nodes/Runner/Katana/a.json +30 -0
- package/dist/nodes/Runner/Katana/katana.svg +3 -0
- package/dist/nodes/Runner/Masscan/Masscan.node.js +151 -0
- package/dist/nodes/Runner/Masscan/masscan.svg +70 -0
- package/dist/nodes/{Naabu → Runner/Naabu}/Naabu.node.js +86 -48
- package/dist/nodes/Runner/Naabu/naabu.svg +3 -0
- package/dist/nodes/Runner/Nuclei/Nuclei.node.js +1057 -0
- package/dist/nodes/Runner/Nuclei/a.json +48 -0
- package/dist/nodes/Runner/Nuclei/nuclei.svg +3 -0
- package/dist/nodes/Runner/Priority/Priority.node.js +110 -0
- package/dist/nodes/Runner/PriorityAdd/PriorityAdd.node.js +97 -0
- package/dist/nodes/Runner/Router/SwitchRouter/SwitchRouter.node.js +101 -0
- package/dist/nodes/{Subfinder → Runner/Subfinder}/Subfinder.node.js +74 -43
- package/dist/nodes/Runner/Subfinder/subfinder.svg +3 -0
- package/dist/nodes/Runner/Unauthor/Unauthor.node.js +169 -0
- package/package.json +63 -59
- package/dist/nodes/Cdncheck/Cdncheck.node.json +0 -9
- package/dist/nodes/Fofa/Fofa.node.json +0 -9
- package/dist/nodes/Httpx/Httpx.node.json +0 -9
- package/dist/nodes/Naabu/Naabu.node.json +0 -9
- package/dist/nodes/Subfinder/Subfinder.node.json +0 -9
- package/dist/utils/executor.js +0 -233
- package/dist/utils/interface.js +0 -4
- package/dist/utils/runner/docker.runner.js +0 -72
- package/dist/utils/runner/k8s.runner.js +0 -167
- package/dist/utils/runner/runner.js +0 -11
- /package/dist/credentials/{fofa.svg → FofaApi/fofa.svg} +0 -0
@@ -1,72 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
3
|
-
value: true
|
4
|
-
});
|
5
|
-
Object.defineProperty(exports, "DockerRuneer", {
|
6
|
-
enumerable: true,
|
7
|
-
get: function() {
|
8
|
-
return DockerRuneer;
|
9
|
-
}
|
10
|
-
});
|
11
|
-
const _nodestream = require("node:stream");
|
12
|
-
const _dockerode = /*#__PURE__*/ _interop_require_default(require("dockerode"));
|
13
|
-
const _n8nworkflow = require("n8n-workflow");
|
14
|
-
const _runner = require("./runner");
|
15
|
-
function _define_property(obj, key, value) {
|
16
|
-
if (key in obj) {
|
17
|
-
Object.defineProperty(obj, key, {
|
18
|
-
value: value,
|
19
|
-
enumerable: true,
|
20
|
-
configurable: true,
|
21
|
-
writable: true
|
22
|
-
});
|
23
|
-
} else {
|
24
|
-
obj[key] = value;
|
25
|
-
}
|
26
|
-
return obj;
|
27
|
-
}
|
28
|
-
function _interop_require_default(obj) {
|
29
|
-
return obj && obj.__esModule ? obj : {
|
30
|
-
default: obj
|
31
|
-
};
|
32
|
-
}
|
33
|
-
class DockerRuneer {
|
34
|
-
async run(cmd, env, image = _runner.IMAGE) {
|
35
|
-
let stdout = "";
|
36
|
-
let stderr = "";
|
37
|
-
const outStream = new _nodestream.Writable({
|
38
|
-
write (chunk, encoding, done) {
|
39
|
-
stdout += chunk.toString();
|
40
|
-
done();
|
41
|
-
}
|
42
|
-
});
|
43
|
-
const errStream = new _nodestream.Writable({
|
44
|
-
write (chunk, encoding, done) {
|
45
|
-
stderr += chunk.toString();
|
46
|
-
done();
|
47
|
-
}
|
48
|
-
});
|
49
|
-
await this.docker.pull(image);
|
50
|
-
await this.docker.run(image, cmd, [
|
51
|
-
outStream,
|
52
|
-
errStream
|
53
|
-
], {
|
54
|
-
Tty: false,
|
55
|
-
HostConfig: {
|
56
|
-
AutoRemove: false
|
57
|
-
},
|
58
|
-
Env: Object.entries(env || {}).map(([key, value])=>`${key}=${value}`)
|
59
|
-
}, {});
|
60
|
-
stderr;
|
61
|
-
return JSON.parse(stdout);
|
62
|
-
}
|
63
|
-
constructor(credentials, func){
|
64
|
-
_define_property(this, "func", void 0);
|
65
|
-
_define_property(this, "docker", void 0);
|
66
|
-
this.func = func;
|
67
|
-
if (credentials === undefined) {
|
68
|
-
throw new _n8nworkflow.NodeOperationError(func.getNode(), "No credentials got returned!");
|
69
|
-
}
|
70
|
-
this.docker = new _dockerode.default(credentials);
|
71
|
-
}
|
72
|
-
}
|
@@ -1,167 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
3
|
-
value: true
|
4
|
-
});
|
5
|
-
Object.defineProperty(exports, "K8sRunner", {
|
6
|
-
enumerable: true,
|
7
|
-
get: function() {
|
8
|
-
return K8sRunner;
|
9
|
-
}
|
10
|
-
});
|
11
|
-
const _stream = require("stream");
|
12
|
-
const _clientnode = /*#__PURE__*/ _interop_require_wildcard(require("@kubernetes/client-node"));
|
13
|
-
const _n8nworkflow = require("n8n-workflow");
|
14
|
-
const _runner = require("./runner");
|
15
|
-
function _define_property(obj, key, value) {
|
16
|
-
if (key in obj) {
|
17
|
-
Object.defineProperty(obj, key, {
|
18
|
-
value: value,
|
19
|
-
enumerable: true,
|
20
|
-
configurable: true,
|
21
|
-
writable: true
|
22
|
-
});
|
23
|
-
} else {
|
24
|
-
obj[key] = value;
|
25
|
-
}
|
26
|
-
return obj;
|
27
|
-
}
|
28
|
-
function _getRequireWildcardCache(nodeInterop) {
|
29
|
-
if (typeof WeakMap !== "function") return null;
|
30
|
-
var cacheBabelInterop = new WeakMap();
|
31
|
-
var cacheNodeInterop = new WeakMap();
|
32
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
33
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
34
|
-
})(nodeInterop);
|
35
|
-
}
|
36
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
37
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
38
|
-
return obj;
|
39
|
-
}
|
40
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
41
|
-
return {
|
42
|
-
default: obj
|
43
|
-
};
|
44
|
-
}
|
45
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
46
|
-
if (cache && cache.has(obj)) {
|
47
|
-
return cache.get(obj);
|
48
|
-
}
|
49
|
-
var newObj = {};
|
50
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
51
|
-
for(var key in obj){
|
52
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
53
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
54
|
-
if (desc && (desc.get || desc.set)) {
|
55
|
-
Object.defineProperty(newObj, key, desc);
|
56
|
-
} else {
|
57
|
-
newObj[key] = obj[key];
|
58
|
-
}
|
59
|
-
}
|
60
|
-
}
|
61
|
-
newObj.default = obj;
|
62
|
-
if (cache) {
|
63
|
-
cache.set(obj, newObj);
|
64
|
-
}
|
65
|
-
return newObj;
|
66
|
-
}
|
67
|
-
class K8sRunner {
|
68
|
-
async run(cmd, env, image = _runner.IMAGE) {
|
69
|
-
const kc = this.kubeConfig;
|
70
|
-
const k8sCoreApi = kc.makeApiClient(_clientnode.CoreV1Api);
|
71
|
-
const watch = new _clientnode.Watch(kc);
|
72
|
-
const podName = `n8n-soar-pod-${Date.now()}`;
|
73
|
-
const podSpec = {
|
74
|
-
metadata: {
|
75
|
-
name: podName
|
76
|
-
},
|
77
|
-
spec: {
|
78
|
-
restartPolicy: "Never",
|
79
|
-
containers: [
|
80
|
-
{
|
81
|
-
name: "main-container",
|
82
|
-
image,
|
83
|
-
imagePullPolicy: "Always",
|
84
|
-
args: cmd,
|
85
|
-
env: Object.entries(env ?? {}).map(([name, value])=>({
|
86
|
-
name,
|
87
|
-
value
|
88
|
-
})),
|
89
|
-
lifecycle: {}
|
90
|
-
}
|
91
|
-
]
|
92
|
-
}
|
93
|
-
};
|
94
|
-
this.func.logger.debug("Creating pod " + JSON.stringify(podSpec));
|
95
|
-
const namespace = "default";
|
96
|
-
await k8sCoreApi.createNamespacedPod(namespace, podSpec);
|
97
|
-
try {
|
98
|
-
return await new Promise(async (resolve, reject)=>{
|
99
|
-
const watchReq = await watch.watch(`/api/v1/namespaces/${namespace}/pods`, {}, (type, obj)=>{
|
100
|
-
if (obj.metadata?.name !== podName) {
|
101
|
-
return;
|
102
|
-
}
|
103
|
-
const phase = obj.status?.phase;
|
104
|
-
if (phase === "Succeeded" || phase === "Failed") {
|
105
|
-
let logs = "";
|
106
|
-
const logStream = new _stream.Writable({
|
107
|
-
write (chunk, encoding, callback) {
|
108
|
-
logs += chunk.toString();
|
109
|
-
callback();
|
110
|
-
}
|
111
|
-
});
|
112
|
-
const logApi = new _clientnode.Log(kc);
|
113
|
-
logApi.log(namespace, podName, "main-container", logStream).then((req)=>{
|
114
|
-
req.on("error", reject);
|
115
|
-
req.on("complete", ()=>{
|
116
|
-
watchReq?.abort();
|
117
|
-
resolve(JSON.parse(logs));
|
118
|
-
});
|
119
|
-
}).catch((err)=>{
|
120
|
-
watchReq?.abort();
|
121
|
-
reject(err);
|
122
|
-
});
|
123
|
-
}
|
124
|
-
}, (err)=>{
|
125
|
-
reject(err);
|
126
|
-
});
|
127
|
-
});
|
128
|
-
} catch (e) {
|
129
|
-
if (e.message === "aborted") {
|
130
|
-
// This is fine
|
131
|
-
} else {
|
132
|
-
throw e;
|
133
|
-
}
|
134
|
-
} finally{
|
135
|
-
await k8sCoreApi.deleteNamespacedPod(podName, namespace);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
constructor(credentials, func){
|
139
|
-
_define_property(this, "func", void 0);
|
140
|
-
_define_property(this, "kubeConfig", void 0);
|
141
|
-
this.func = func;
|
142
|
-
if (credentials === undefined) {
|
143
|
-
throw new _n8nworkflow.NodeOperationError(func.getNode(), "No credentials got returned!");
|
144
|
-
}
|
145
|
-
const kubeConfig = new _clientnode.KubeConfig();
|
146
|
-
switch(credentials.loadFrom){
|
147
|
-
case "automatic":
|
148
|
-
kubeConfig.loadFromDefault();
|
149
|
-
break;
|
150
|
-
case "file":
|
151
|
-
if (typeof credentials.filePath !== "string" || credentials.filePath === "") {
|
152
|
-
throw new _n8nworkflow.NodeOperationError(func.getNode(), "File path not set!");
|
153
|
-
}
|
154
|
-
kubeConfig.loadFromFile(credentials.filePath);
|
155
|
-
break;
|
156
|
-
case "content":
|
157
|
-
if (typeof credentials.content !== "string" || credentials.content === "") {
|
158
|
-
throw new _n8nworkflow.NodeOperationError(func.getNode(), "Content not set!");
|
159
|
-
}
|
160
|
-
kubeConfig.loadFromString(credentials.content);
|
161
|
-
break;
|
162
|
-
default:
|
163
|
-
throw new _n8nworkflow.NodeOperationError(func.getNode(), "Load from value not set!");
|
164
|
-
}
|
165
|
-
this.kubeConfig = kubeConfig;
|
166
|
-
}
|
167
|
-
}
|
@@ -1,11 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
3
|
-
value: true
|
4
|
-
});
|
5
|
-
Object.defineProperty(exports, "IMAGE", {
|
6
|
-
enumerable: true,
|
7
|
-
get: function() {
|
8
|
-
return IMAGE;
|
9
|
-
}
|
10
|
-
});
|
11
|
-
const IMAGE = "registry.yoshino-s.xyz/yoshino-s/soar-image:dev";
|
File without changes
|