n8n-nodes-soar 0.1.21 → 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 +47 -58
  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
@@ -0,0 +1,403 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ listProperties: function() {
13
+ return listProperties;
14
+ },
15
+ submitProperties: function() {
16
+ return submitProperties;
17
+ }
18
+ });
19
+ const _lodash = require("lodash");
20
+ const listProperties = [
21
+ {
22
+ displayName: "Vulnerability Type",
23
+ name: "vulType",
24
+ type: "options",
25
+ noDataExpression: true,
26
+ default: 0,
27
+ displayOptions: {
28
+ show: {
29
+ resource: [
30
+ "vulnerability"
31
+ ]
32
+ }
33
+ },
34
+ options: [
35
+ {
36
+ name: "Ordinary",
37
+ value: 0
38
+ },
39
+ {
40
+ name: "Enterprise",
41
+ value: 9
42
+ },
43
+ {
44
+ name: "Private",
45
+ value: 3
46
+ }
47
+ ]
48
+ },
49
+ {
50
+ displayName: "Page",
51
+ name: "page",
52
+ type: "number",
53
+ default: 1
54
+ },
55
+ {
56
+ displayName: "Size",
57
+ name: "per_page",
58
+ type: "number",
59
+ default: 100
60
+ },
61
+ {
62
+ displayName: "Search",
63
+ name: "search_value",
64
+ type: "string",
65
+ default: ""
66
+ },
67
+ {
68
+ displayName: "Return Full Response",
69
+ name: "full",
70
+ type: "boolean",
71
+ default: false
72
+ }
73
+ ].map((p)=>{
74
+ (0, _lodash.set)(p, "displayOptions.show.operation", [
75
+ "list"
76
+ ]);
77
+ return p;
78
+ });
79
+ const submitProperties = [
80
+ {
81
+ displayName: "项目 Task",
82
+ name: "task",
83
+ type: "resourceLocator",
84
+ default: {
85
+ mode: "list",
86
+ value: 0
87
+ },
88
+ required: true,
89
+ modes: [
90
+ {
91
+ displayName: "From List",
92
+ name: "list",
93
+ type: "list",
94
+ placeholder: "Select a task",
95
+ typeOptions: {
96
+ searchListMethod: "listTasks",
97
+ searchable: true
98
+ }
99
+ }
100
+ ]
101
+ },
102
+ {
103
+ displayName: "漏洞标题 Bug Title",
104
+ name: "bug_title",
105
+ type: "string",
106
+ default: "",
107
+ required: true
108
+ },
109
+ {
110
+ displayName: "漏洞类别 Bug Category",
111
+ name: "bug_category",
112
+ type: "options",
113
+ default: 1,
114
+ required: true,
115
+ options: [
116
+ {
117
+ name: "事件型漏洞",
118
+ value: 1
119
+ },
120
+ {
121
+ name: "通用型漏洞",
122
+ value: 2
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ displayName: "参与评定 Vulnerability Star",
128
+ name: "bug_star",
129
+ type: "options",
130
+ default: 0,
131
+ required: true,
132
+ options: [
133
+ {
134
+ name: "普通漏洞",
135
+ value: 0
136
+ },
137
+ {
138
+ name: "星选漏洞",
139
+ value: 1
140
+ }
141
+ ]
142
+ },
143
+ {
144
+ displayName: "厂商名称 Business Name",
145
+ name: "business",
146
+ type: "resourceLocator",
147
+ default: {
148
+ mode: "list",
149
+ value: ""
150
+ },
151
+ required: true,
152
+ modes: [
153
+ {
154
+ displayName: "From List",
155
+ name: "list",
156
+ type: "list",
157
+ placeholder: "Select a business",
158
+ typeOptions: {
159
+ searchListMethod: "listBusinesses",
160
+ searchable: true
161
+ }
162
+ },
163
+ {
164
+ displayName: "Others",
165
+ name: "id",
166
+ type: "string"
167
+ }
168
+ ],
169
+ displayOptions: {
170
+ show: {
171
+ operation: [
172
+ "submit"
173
+ ]
174
+ }
175
+ }
176
+ },
177
+ {
178
+ displayName: "厂商域名 Domain",
179
+ name: "domain",
180
+ type: "string",
181
+ default: "={{ JSON.parse($parameter.business).bus_url }}",
182
+ placeholder: "https://www.example.com"
183
+ },
184
+ {
185
+ displayName: "一级漏洞类型 Top Level Bug Type Name or ID",
186
+ name: "bug_type_top",
187
+ type: "options",
188
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
189
+ default: "",
190
+ required: true,
191
+ typeOptions: {
192
+ loadOptionsMethod: "listTopLevelBugTypes"
193
+ }
194
+ },
195
+ {
196
+ displayName: "二级漏洞类型 Bug Type Name or ID",
197
+ name: "bug_type",
198
+ type: "options",
199
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
200
+ default: "",
201
+ required: true,
202
+ typeOptions: {
203
+ loadOptionsMethod: "listBugTypes"
204
+ },
205
+ displayOptions: {
206
+ hide: {
207
+ bug_type_top: [
208
+ "智能硬件",
209
+ "其他",
210
+ "其它"
211
+ ]
212
+ }
213
+ }
214
+ },
215
+ {
216
+ displayName: "漏洞等级 Bug Level",
217
+ name: "bug_level",
218
+ type: "options",
219
+ default: 1,
220
+ required: true,
221
+ options: [
222
+ {
223
+ name: "低危",
224
+ value: 1
225
+ },
226
+ {
227
+ name: "中危",
228
+ value: 2
229
+ },
230
+ {
231
+ name: "高危",
232
+ value: 3
233
+ },
234
+ {
235
+ name: "严重",
236
+ value: 4
237
+ }
238
+ ]
239
+ },
240
+ {
241
+ displayName: "漏洞简述 Bug Paper",
242
+ name: "bug_paper",
243
+ type: "string",
244
+ default: "",
245
+ typeOptions: {
246
+ rows: 8
247
+ }
248
+ },
249
+ {
250
+ displayName: "厂商截图 Bug Star Description",
251
+ name: "bug_star_desc",
252
+ type: "string",
253
+ default: "",
254
+ typeOptions: {
255
+ editor: "htmlEditor",
256
+ rows: 8
257
+ },
258
+ displayOptions: {
259
+ show: {
260
+ bug_star: [
261
+ 1
262
+ ]
263
+ }
264
+ }
265
+ },
266
+ {
267
+ displayName: "漏洞URL Bug URL",
268
+ name: "bug_url",
269
+ type: "string",
270
+ default: "",
271
+ displayOptions: {
272
+ show: {
273
+ bug_type_top: [
274
+ "Web漏洞"
275
+ ]
276
+ }
277
+ }
278
+ },
279
+ {
280
+ displayName: "漏洞参数 Bug Parameter",
281
+ name: "bug_parameter",
282
+ type: "string",
283
+ default: "",
284
+ displayOptions: {
285
+ show: {
286
+ bug_type_top: [
287
+ "Web漏洞"
288
+ ]
289
+ }
290
+ }
291
+ },
292
+ {
293
+ displayName: "设备 Bug Equipment",
294
+ name: "bug_equipment",
295
+ type: "string",
296
+ default: "",
297
+ displayOptions: {
298
+ show: {
299
+ bug_type_top: [
300
+ "移动客户端漏洞"
301
+ ]
302
+ }
303
+ }
304
+ },
305
+ {
306
+ displayName: "平台 Bug Platform",
307
+ name: "bug_platform",
308
+ type: "string",
309
+ default: "",
310
+ displayOptions: {
311
+ show: {
312
+ bug_type_top: [
313
+ "移动客户端漏洞"
314
+ ]
315
+ }
316
+ }
317
+ },
318
+ {
319
+ displayName: "版本 Bug Version",
320
+ name: "bug_version",
321
+ type: "string",
322
+ default: "",
323
+ displayOptions: {
324
+ show: {
325
+ bug_type_top: [
326
+ "移动客户端漏洞"
327
+ ]
328
+ }
329
+ }
330
+ },
331
+ {
332
+ displayName: "漏洞POC Bug POC",
333
+ name: "bug_poc",
334
+ type: "string",
335
+ default: ""
336
+ },
337
+ {
338
+ displayName: "复现步骤 Repetition Step",
339
+ name: "repetition_step",
340
+ type: "string",
341
+ default: "",
342
+ typeOptions: {
343
+ editor: "htmlEditor",
344
+ rows: 8
345
+ },
346
+ required: true
347
+ },
348
+ {
349
+ displayName: "修复建议 Fix Plan",
350
+ name: "fix_plan",
351
+ type: "string",
352
+ default: "",
353
+ typeOptions: {
354
+ editor: "htmlEditor",
355
+ rows: 8
356
+ },
357
+ required: true
358
+ },
359
+ {
360
+ displayName: "地区 Area Name or ID",
361
+ name: "area",
362
+ type: "options",
363
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
364
+ default: "",
365
+ required: true,
366
+ typeOptions: {
367
+ loadOptionsMethod: "listAreas"
368
+ }
369
+ },
370
+ {
371
+ displayName: "行业 Industry Name or ID",
372
+ name: "industry",
373
+ type: "options",
374
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
375
+ default: "",
376
+ required: true,
377
+ typeOptions: {
378
+ loadOptionsMethod: "listIndustries"
379
+ }
380
+ },
381
+ {
382
+ displayName: "Industry Category Name or ID",
383
+ name: "industry_category",
384
+ type: "options",
385
+ description: 'Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>',
386
+ default: "",
387
+ required: true,
388
+ typeOptions: {
389
+ loadOptionsMethod: "listIndustryCategories"
390
+ }
391
+ },
392
+ {
393
+ displayName: "是否匿名 Bug Anonymous",
394
+ name: "bug_display",
395
+ type: "boolean",
396
+ default: false
397
+ }
398
+ ].map((p)=>{
399
+ (0, _lodash.set)(p, "displayOptions.show.operation", [
400
+ "submit"
401
+ ]);
402
+ return p;
403
+ });
@@ -0,0 +1,18 @@
1
+ <svg width="32px" height="32px" viewBox="-2.835 0 29.165 32" version="1.1" xmlns="http://www.w3.org/2000/svg"
2
+ xmlns:xlink="http://www.w3.org/1999/xlink" style="display:inline-block;vertical-align:middle;" data-v-2f95c8dd="">
3
+ <polygon id="Fill-1" fill="#2A98CC"
4
+ points="13.1114323 4.03361345e-05 0.0227870968 8.01671261 13.1114323 15.8635697 26.3147871 7.91573782">
5
+ </polygon>
6
+ <polygon id="Fill-2" fill="#1D7EB7"
7
+ points="0 23.9524437 13.1114839 31.9430319 13.1114839 15.8650487 0.0227096774 8.01671261"></polygon>
8
+ <polygon id="Fill-3" fill="#1366A3"
9
+ points="13.1114323 15.863637 13.1114323 31.961116 26.3147871 24.0056202 26.3147871 7.91567059"></polygon>
10
+ <polygon id="Fill-4" fill="#AFDAEB"
11
+ points="20.4230194 11.5270588 20.4230194 20.4123025 13.1320516 24.8051765 13.1320516 15.9160336">
12
+ </polygon>
13
+ <polyline id="Fill-5" fill="#C4E2F0"
14
+ points="5.90436129 11.5831261 5.8915871 20.3823193 13.1321032 24.7953613 13.1321032 15.916437"></polyline>
15
+ <polygon id="Fill-6" fill="#FEFEFE"
16
+ points="13.1320645 7.15599328 5.90432258 11.5831529 13.1320645 15.9160605 20.4230323 11.5270857">
17
+ </polygon>
18
+ </svg>
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Cmd", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return Cmd;
9
+ }
10
+ });
11
+ const _connectionType = require("../../../common/connectionType");
12
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
13
+ const _containerrunner = require("../../../common/runner/container.runner");
14
+ const _decorator = require("../../../common/runner/decorator");
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 _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 CmdRunner = class CmdRunner extends _containerrunner.ContainerRunner {
35
+ async run(collector) {
36
+ const cmd = this.func.getNodeParameter("cmd", this.itemIndex);
37
+ return this.constructData(-1, [
38
+ await this.runCmd(collector, cmd, this.getOptions())
39
+ ]);
40
+ }
41
+ };
42
+ CmdRunner = _ts_decorate([
43
+ (0, _decorator.Priority)(_decorator.DEFAULT_PRIORITY)
44
+ ], CmdRunner);
45
+ class Cmd {
46
+ async supplyData(itemIndex) {
47
+ return {
48
+ response: [
49
+ (0, _runnerproxy.proxyRunner)(new CmdRunner(this, itemIndex))
50
+ ]
51
+ };
52
+ }
53
+ constructor(){
54
+ _define_property(this, "description", {
55
+ displayName: "Runner: Cmd",
56
+ name: "cmd",
57
+ icon: "fa:terminal",
58
+ group: [
59
+ "transform"
60
+ ],
61
+ codex: {
62
+ alias: [
63
+ "Cmd"
64
+ ],
65
+ categories: [
66
+ "SOAR"
67
+ ],
68
+ subcategories: {
69
+ SOAR: [
70
+ "runner"
71
+ ]
72
+ }
73
+ },
74
+ version: 1,
75
+ description: "Run cmd",
76
+ defaults: {
77
+ name: "Cmd"
78
+ },
79
+ subtitle: '={{$parameter["cmd"]}}',
80
+ // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
81
+ inputs: [],
82
+ // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
83
+ outputs: [
84
+ _connectionType.NodeConnectionType.Runner
85
+ ],
86
+ properties: [
87
+ {
88
+ displayName: "Cmd",
89
+ name: "cmd",
90
+ type: "json",
91
+ default: "={{['ls']}}",
92
+ required: true
93
+ },
94
+ ..._containerrunner.advancedOptions,
95
+ {
96
+ displayName: "Debug Mode",
97
+ name: "debug",
98
+ type: "boolean",
99
+ default: false,
100
+ description: "Whether open to see more information in node input & output"
101
+ }
102
+ ]
103
+ });
104
+ }
105
+ }
@@ -12,8 +12,9 @@ const _nodefs = require("node:fs");
12
12
  const _nodepath = require("node:path");
13
13
  const _script = require("./script");
14
14
  const _connectionType = require("../../../common/connectionType");
15
+ const _runnerproxy = require("../../../common/proxy/runner.proxy");
15
16
  const _containerrunner = require("../../../common/runner/container.runner");
16
- const _priority = require("../../../common/runner/priority");
17
+ const _decorator = require("../../../common/runner/decorator");
17
18
  function _define_property(obj, key, value) {
18
19
  if (key in obj) {
19
20
  Object.defineProperty(obj, key, {
@@ -27,38 +28,45 @@ function _define_property(obj, key, value) {
27
28
  }
28
29
  return obj;
29
30
  }
30
- class DnsRunner extends _containerrunner.ContainerRunner {
31
- cmd() {
32
- return [
33
- "node",
34
- "/tmp/entry.js"
35
- ];
36
- }
37
- options(assets) {
38
- const options = super.options(assets);
31
+ function _ts_decorate(decorators, target, key, desc) {
32
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34
+ 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;
35
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36
+ }
37
+ let DnsRunner = class DnsRunner extends _containerrunner.ContainerRunner {
38
+ async run(collector, inputs) {
39
+ const assets = inputs.map((n)=>n.json);
40
+ const options = super.getOptions();
39
41
  const dnsOptions = {
40
42
  queryTypes: this.func.getNodeParameter("queryType", 0, []),
41
43
  resolvers: this.func.getNodeParameter("resolvers.resolvers", 0).map((n)=>n.resolver),
42
44
  timeout: this.func.getNodeParameter("timeout", 0)
43
45
  };
44
- options.image = _containerrunner.IMAGE.SCRIPT;
45
- options.files["/tmp/dns.js"] = Buffer.from((0, _nodefs.readFileSync)((0, _nodepath.join)(__dirname, "script.js"))).toString("base64");
46
- options.files["/tmp/entry.js"] = Buffer.from(`const {resolve} = require("/tmp/dns.js");(async()=> {const hosts=${JSON.stringify(assets.map((n)=>n.getDomain()).filter(Boolean))};console.log(JSON.stringify(await Promise.all(hosts.map(async (host) => resolve(host, ${JSON.stringify(dnsOptions)})))));process.exit(0);})();`).toString("base64");
47
- return options;
48
- }
49
- process(rawAssets, stdout) {
50
- return JSON.parse(stdout).flatMap((n, idx)=>{
51
- rawAssets[idx].dnsRecord = n;
52
- rawAssets[idx].success = true;
53
- return rawAssets[idx].splitBySubdomains();
46
+ options.files["/tmp/dns.js"] = (0, _nodefs.readFileSync)((0, _nodepath.join)(__dirname, "script.js")).toString();
47
+ options.files["/tmp/entry.js"] = `const {resolve} = require("/tmp/dns.js");(async()=> {const hosts=${JSON.stringify(assets.map((n)=>n.getDomain()).filter(Boolean))};console.log(JSON.stringify(await Promise.all(hosts.map(async (host) => resolve(host, ${JSON.stringify(dnsOptions)})))));process.exit(0);})();`;
48
+ const { stdout } = await this.runCmd(collector, [
49
+ "node",
50
+ "/tmp/entry.js"
51
+ ], options);
52
+ const records = JSON.parse(stdout);
53
+ return records.flatMap((n, idx)=>{
54
+ if (Object.keys(n).length) {
55
+ return this.constructData(inputs[idx].sourceInputIndex, inputs[idx].json.splitByDnsRecords(n), true);
56
+ }
57
+ return inputs[idx];
54
58
  });
55
59
  }
56
- }
60
+ };
61
+ DnsRunner = _ts_decorate([
62
+ (0, _decorator.Priority)(_decorator.DNS_RUNNER_PRIORITY),
63
+ _decorator.AssetRunner
64
+ ], DnsRunner);
57
65
  class Dns {
58
66
  async supplyData(itemIndex) {
59
67
  return {
60
68
  response: [
61
- new DnsRunner("dns", _priority.DNS_RUNNER_PRIORITY, this, itemIndex)
69
+ (0, _runnerproxy.proxyRunner)(new DnsRunner(this, itemIndex))
62
70
  ]
63
71
  };
64
72
  }
@@ -192,6 +200,14 @@ class Dns {
192
200
  ]
193
201
  }
194
202
  ]
203
+ },
204
+ ..._containerrunner.advancedOptions,
205
+ {
206
+ displayName: "Debug Mode",
207
+ name: "debug",
208
+ type: "boolean",
209
+ default: false,
210
+ description: "Whether open to see more information in node input & output"
195
211
  }
196
212
  ]
197
213
  });