fcdns 0.3.15 → 0.3.16
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/CHANGELOG.md +2 -0
- package/README.md +7 -10
- package/lib/router.js +36 -28
- package/lib/router.js.map +1 -1
- package/lib/server.js +7 -6
- package/lib/server.js.map +1 -1
- package/lib/utils/map-file.js.map +1 -1
- package/package.json +16 -16
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.3.16](https://github.com/BlackGlory/fcdns/compare/v0.3.15...v0.3.16) (2022-07-25)
|
|
6
|
+
|
|
5
7
|
### [0.3.15](https://github.com/BlackGlory/fcdns/compare/v0.3.14...v0.3.15) (2022-04-16)
|
|
6
8
|
|
|
7
9
|
|
package/README.md
CHANGED
|
@@ -39,7 +39,7 @@ fcdns \
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
## 原理
|
|
42
|
-

|
|
43
43
|
|
|
44
44
|
## 必要条件
|
|
45
45
|
使用fcdns需要指定3个服务器地址, 1份IP地址白名单, 1份主机名白名单.
|
|
@@ -174,17 +174,14 @@ fcdns的内存缓存受V8引擎的实现限制, 且缓存是只增不减的.
|
|
|
174
174
|
如果有非常大量完全不同域名的查询, 则内存缓存可能导致内存占用增加, 但在大部分场景下应该无需担心.
|
|
175
175
|
|
|
176
176
|
## 针对fcdns的攻击
|
|
177
|
-
### DNS
|
|
177
|
+
### 以黑名单/白名单形式污染DNS服务器
|
|
178
178
|
禁止向非DNS服务器发送DNS数据包将会破坏fcdns的投毒测试功能.
|
|
179
179
|
|
|
180
|
-
###
|
|
181
|
-
禁止发送ping(echo request)或丢弃reply(echo reply)将会破坏fcdns的投毒测试功能.
|
|
182
|
-
|
|
183
|
-
### 无差别污染
|
|
180
|
+
### 无差别污染主机名
|
|
184
181
|
劫持所有DNS响应将会破坏fcdns的投毒测试功能.
|
|
185
182
|
|
|
186
|
-
###
|
|
187
|
-
|
|
183
|
+
### 随机投毒
|
|
184
|
+
随机投毒将会使fcdns生成错误的缓存记录.
|
|
188
185
|
|
|
189
|
-
|
|
190
|
-
|
|
186
|
+
### 禁止ping
|
|
187
|
+
禁止发送ping(echo request)或丢弃reply(echo reply)将会破坏fcdns的投毒测试功能.
|
package/lib/router.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Router = exports.
|
|
3
|
+
exports.Router = exports.RouteResult = void 0;
|
|
4
4
|
const map_file_1 = require("./utils/map-file");
|
|
5
5
|
const resolve_a_1 = require("./utils/resolve-a");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const extra_promise_1 = require("extra-promise");
|
|
7
|
+
var RouteResult;
|
|
8
|
+
(function (RouteResult) {
|
|
9
|
+
RouteResult[RouteResult["UntrustedServer"] = 0] = "UntrustedServer";
|
|
10
|
+
RouteResult[RouteResult["TrustedServer"] = 1] = "TrustedServer";
|
|
11
|
+
RouteResult[RouteResult["Unresolved"] = 2] = "Unresolved";
|
|
12
|
+
})(RouteResult = exports.RouteResult || (exports.RouteResult = {}));
|
|
11
13
|
class Router {
|
|
12
14
|
constructor(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist, hostnameBlacklist) {
|
|
13
15
|
this.cacheFilename = cacheFilename;
|
|
@@ -18,6 +20,21 @@ class Router {
|
|
|
18
20
|
this.ipWhitelist = ipWhitelist;
|
|
19
21
|
this.hostnameWhitelist = hostnameWhitelist;
|
|
20
22
|
this.hostnameBlacklist = hostnameBlacklist;
|
|
23
|
+
this.route = (0, extra_promise_1.reusePendingPromise)(async (hostname) => {
|
|
24
|
+
const result = await this.routeByLocal(hostname);
|
|
25
|
+
if (result) {
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if (this.looseMode) {
|
|
30
|
+
queueMicrotask(() => this.routeByNetwork(hostname));
|
|
31
|
+
return RouteResult.UntrustedServer;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return await this.routeByNetwork(hostname);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
21
38
|
}
|
|
22
39
|
static async create(options) {
|
|
23
40
|
const tester = options.tester;
|
|
@@ -31,43 +48,34 @@ class Router {
|
|
|
31
48
|
await (0, map_file_1.writeMapFile)(cacheFilename, cache);
|
|
32
49
|
return new Router(cacheFilename, cache, looseMode, tester, untrustedResolver, ipWhitelist, hostnameWhitelist, hostnameBlacklist);
|
|
33
50
|
}
|
|
34
|
-
async
|
|
51
|
+
async routeByLocal(hostname) {
|
|
35
52
|
if (this.inHostnameWhitelist(hostname))
|
|
36
|
-
return
|
|
53
|
+
return RouteResult.UntrustedServer;
|
|
37
54
|
if (this.inHostnameBlacklist(hostname))
|
|
38
|
-
return
|
|
39
|
-
if (this.cache.has(hostname))
|
|
55
|
+
return RouteResult.TrustedServer;
|
|
56
|
+
if (this.cache.has(hostname))
|
|
40
57
|
return this.cache.get(hostname);
|
|
41
|
-
|
|
42
|
-
else {
|
|
43
|
-
if (this.looseMode) {
|
|
44
|
-
queueMicrotask(() => this.getTargetWithoutCache(hostname));
|
|
45
|
-
return Target.Untrusted;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return await this.getTargetWithoutCache(hostname);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
58
|
+
return null;
|
|
51
59
|
}
|
|
52
|
-
async
|
|
60
|
+
async routeByNetwork(hostname) {
|
|
53
61
|
if (await this.tester.isPoisoned(hostname)) {
|
|
54
|
-
this.setCache(hostname,
|
|
55
|
-
return
|
|
62
|
+
this.setCache(hostname, RouteResult.TrustedServer);
|
|
63
|
+
return RouteResult.TrustedServer;
|
|
56
64
|
}
|
|
57
65
|
else {
|
|
58
66
|
const addresses = await (0, resolve_a_1.resolveA)(this.untrustedResolver, hostname);
|
|
59
67
|
if (addresses.length > 0) {
|
|
60
68
|
if (this.inIPWhitelist(addresses)) {
|
|
61
|
-
this.setCache(hostname,
|
|
62
|
-
return
|
|
69
|
+
this.setCache(hostname, RouteResult.UntrustedServer);
|
|
70
|
+
return RouteResult.UntrustedServer;
|
|
63
71
|
}
|
|
64
72
|
else {
|
|
65
|
-
this.setCache(hostname,
|
|
66
|
-
return
|
|
73
|
+
this.setCache(hostname, RouteResult.TrustedServer);
|
|
74
|
+
return RouteResult.TrustedServer;
|
|
67
75
|
}
|
|
68
76
|
}
|
|
69
77
|
else {
|
|
70
|
-
return
|
|
78
|
+
return RouteResult.Unresolved;
|
|
71
79
|
}
|
|
72
80
|
}
|
|
73
81
|
}
|
package/lib/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;AAIA,8CAA0E;AAC1E,gDAA2C;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;AAIA,8CAA0E;AAC1E,gDAA2C;AAC3C,iDAAmD;AAEnD,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,mEAAmB,CAAA;IACnB,+DAAiB,CAAA;IACjB,yDAAc,CAAA;AAChB,CAAC,EAJW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAItB;AAED,MAAa,MAAM;IACjB,YACU,aAAqB,EACrB,KAA+B,EAC/B,SAAkB,EAClB,MAAc,EACd,iBAA+B,EAC/B,WAAwB,EACxB,iBAA+B,EAC/B,iBAA+B;QAP/B,kBAAa,GAAb,aAAa,CAAQ;QACrB,UAAK,GAAL,KAAK,CAA0B;QAC/B,cAAS,GAAT,SAAS,CAAS;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,sBAAiB,GAAjB,iBAAiB,CAAc;QAC/B,gBAAW,GAAX,WAAW,CAAa;QACxB,sBAAiB,GAAjB,iBAAiB,CAAc;QAC/B,sBAAiB,GAAjB,iBAAiB,CAAc;QAqCzC,UAAK,GAAG,IAAA,mCAAmB,EAAC,KAAK,EAAE,QAAgB,EAAwB,EAAE;YAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YAChD,IAAI,MAAM,EAAE;gBACV,OAAO,MAAM,CAAA;aACd;iBAAM;gBACL,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;oBACnD,OAAO,WAAW,CAAC,eAAe,CAAA;iBACnC;qBAAM;oBACL,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;iBAC3C;aACF;QACH,CAAC,CAAC,CAAA;IAhDC,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAQnB;QACC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QACnD,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;QACnD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAEnC,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAW,EAAsB,aAAa,CAAC,CAAA;QAGnE,MAAM,IAAA,uBAAY,EAAC,aAAa,EAAE,KAAK,CAAC,CAAA;QAExC,OAAO,IAAI,MAAM,CACf,aAAa,EACb,KAAK,EACL,SAAS,EACT,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,CAClB,CAAA;IACH,CAAC;IAgBO,KAAK,CAAC,YAAY,CAAC,QAAgB;QACzC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAAE,OAAO,WAAW,CAAC,eAAe,CAAA;QAC1E,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAAE,OAAO,WAAW,CAAC,aAAa,CAAA;QACxE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAA;QAE9D,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,QAAgB;QAC3C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;YAClD,OAAO,WAAW,CAAC,aAAa,CAAA;SACjC;aAAM;YACL,MAAM,SAAS,GAAG,MAAM,IAAA,oBAAQ,EAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;YAClE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;oBACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;oBACpD,OAAO,WAAW,CAAC,eAAe,CAAA;iBACnC;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;oBAClD,OAAO,WAAW,CAAC,aAAa,CAAA;iBACjC;aACF;iBAAM;gBAEL,OAAO,WAAW,CAAC,UAAU,CAAA;aAC9B;SACF;IACH,CAAC;IAEO,aAAa,CAAC,SAAmB;QACvC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEO,QAAQ,CAAC,QAAgB,EAAE,MAAmB;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAChC,IAAA,wBAAa,EAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IACrD,CAAC;CACF;AAzGD,wBAyGC"}
|
package/lib/server.js
CHANGED
|
@@ -33,6 +33,7 @@ const return_style_1 = require("return-style");
|
|
|
33
33
|
const ms_1 = __importDefault(require("ms"));
|
|
34
34
|
const chalk_1 = __importDefault(require("chalk"));
|
|
35
35
|
const record_types_1 = require("./record-types");
|
|
36
|
+
const extra_promise_1 = require("extra-promise");
|
|
36
37
|
function startServer({ logger, port, router, trustedServer, untrustedServer }) {
|
|
37
38
|
const server = dns.createServer();
|
|
38
39
|
server.on('error', console.error);
|
|
@@ -42,14 +43,14 @@ function startServer({ logger, port, router, trustedServer, untrustedServer }) {
|
|
|
42
43
|
res.header.rcode = dns.consts.NAME_TO_RCODE.SERVFAIL;
|
|
43
44
|
const startTime = Date.now();
|
|
44
45
|
const question = req.question[0];
|
|
45
|
-
var [err,
|
|
46
|
+
var [err, result] = await (0, return_style_1.getErrorResultAsync)(() => router.route(question.name));
|
|
46
47
|
if (err) {
|
|
47
48
|
logger.error(`${formatHostname(question.name)} ${err}`, getElapsed(startTime));
|
|
48
49
|
logger.trace(`response: ${JSON.stringify(res)}`);
|
|
49
50
|
return res.send();
|
|
50
51
|
}
|
|
51
|
-
logger.debug(`${formatHostname(question.name)} ${router_1.
|
|
52
|
-
const server =
|
|
52
|
+
logger.debug(`${formatHostname(question.name)} ${router_1.RouteResult[result]}`, getElapsed(startTime));
|
|
53
|
+
const server = result === router_1.RouteResult.TrustedServer ? trustedServer : untrustedServer;
|
|
53
54
|
var [err, response] = await (0, return_style_1.getErrorResultAsync)(() => resolve(server, question));
|
|
54
55
|
if (err) {
|
|
55
56
|
logger.error(`${formatHostname(question.name)} ${err}`, getElapsed(startTime));
|
|
@@ -63,10 +64,10 @@ function startServer({ logger, port, router, trustedServer, untrustedServer }) {
|
|
|
63
64
|
logger.trace(`response: ${JSON.stringify(res)}`);
|
|
64
65
|
res.send();
|
|
65
66
|
});
|
|
66
|
-
|
|
67
|
+
server.serve(port);
|
|
67
68
|
}
|
|
68
69
|
exports.startServer = startServer;
|
|
69
|
-
|
|
70
|
+
const resolve = (0, extra_promise_1.reusePendingPromise)(function (server, question) {
|
|
70
71
|
return new Promise((resolve, reject) => {
|
|
71
72
|
let response;
|
|
72
73
|
const request = dns.Request({
|
|
@@ -97,7 +98,7 @@ function resolve(server, question) {
|
|
|
97
98
|
});
|
|
98
99
|
request.send();
|
|
99
100
|
});
|
|
100
|
-
}
|
|
101
|
+
});
|
|
101
102
|
function formatHostname(hostname) {
|
|
102
103
|
return chalk_1.default.cyan(hostname);
|
|
103
104
|
}
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-file.js","sourceRoot":"","sources":["../../src/utils/map-file.ts"],"names":[],"mappings":";;;AAAA,0EAA8E;AAC9E,2BAAmC;AACnC,uDAA6C;AAEtC,KAAK,UAAU,WAAW,CAC/B,QAAgB;IAEhB,MAAM,IAAA,6BAAU,EAAC,QAAQ,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,OAAO,GAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAVD,kCAUC;AAEM,KAAK,UAAU,YAAY,
|
|
1
|
+
{"version":3,"file":"map-file.js","sourceRoot":"","sources":["../../src/utils/map-file.ts"],"names":[],"mappings":";;;AAAA,0EAA8E;AAC9E,2BAAmC;AACnC,uDAA6C;AAEtC,KAAK,UAAU,WAAW,CAC/B,QAAgB;IAEhB,MAAM,IAAA,6BAAU,EAAC,QAAQ,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACjD,MAAM,OAAO,GAA8B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE1B,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAVD,kCAUC;AAEM,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,GAAc;IAEd,MAAM,IAAI,GAAG,IAAI,2BAAgB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC3B,OAAO,EAAE;SACT,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,CAAA;AAC3C,CAAC;AAVD,oCAUC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,GAAM,EACN,KAAQ;IAER,MAAM,aAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACpE,CAAC;AAND,sCAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fcdns",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.16",
|
|
4
4
|
"description": "DNS relay server with fact-checking.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dns"
|
|
@@ -32,42 +32,42 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@commitlint/cli": "^
|
|
36
|
-
"@commitlint/config-conventional": "^
|
|
35
|
+
"@commitlint/cli": "^17.0.3",
|
|
36
|
+
"@commitlint/config-conventional": "^17.0.3",
|
|
37
37
|
"@types/jest": "^27.4.1",
|
|
38
38
|
"@types/ms": "^0.7.31",
|
|
39
39
|
"@types/node": "14",
|
|
40
40
|
"@types/ping": "^0.4.1",
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
42
|
-
"@typescript-eslint/parser": "^5.
|
|
43
|
-
"eslint": "^8.
|
|
41
|
+
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
42
|
+
"@typescript-eslint/parser": "^5.30.7",
|
|
43
|
+
"eslint": "^8.20.0",
|
|
44
44
|
"husky": "4",
|
|
45
|
-
"internet-number": "^3.0.
|
|
45
|
+
"internet-number": "^3.0.2",
|
|
46
46
|
"jest": "^27.5.1",
|
|
47
47
|
"npm-run-all": "^4.1.5",
|
|
48
48
|
"rimraf": "^3.0.2",
|
|
49
|
-
"standard-version": "^9.
|
|
49
|
+
"standard-version": "^9.5.0",
|
|
50
50
|
"ts-jest": "^27.1.4",
|
|
51
51
|
"tsconfig-paths": "^3.14.1",
|
|
52
52
|
"tscpaths": "^0.0.9",
|
|
53
|
-
"typescript": "^4.
|
|
53
|
+
"typescript": "^4.7.4"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@blackglory/errors": "^2.2.1",
|
|
57
|
-
"@blackglory/go": "^1.
|
|
58
|
-
"@blackglory/types": "^1.1
|
|
57
|
+
"@blackglory/go": "^1.1.1",
|
|
58
|
+
"@blackglory/types": "^1.2.1",
|
|
59
59
|
"address-range": "^0.2.9",
|
|
60
60
|
"chalk": "^4.1.2",
|
|
61
|
-
"commander": "^9.
|
|
62
|
-
"extra-filesystem": "^0.4.
|
|
63
|
-
"extra-logger": "^0.6.
|
|
64
|
-
"extra-promise": "^
|
|
61
|
+
"commander": "^9.4.0",
|
|
62
|
+
"extra-filesystem": "^0.4.4",
|
|
63
|
+
"extra-logger": "^0.6.8",
|
|
64
|
+
"extra-promise": "^2.3.0",
|
|
65
65
|
"iterable-operator": "^1.1.0",
|
|
66
66
|
"ms": "^2.1.3",
|
|
67
67
|
"native-node-dns": "0.7.6",
|
|
68
68
|
"native-node-dns-packet": "0.1.5",
|
|
69
69
|
"patch-package": "^6.4.7",
|
|
70
|
-
"ping": "^0.4.
|
|
70
|
+
"ping": "^0.4.2",
|
|
71
71
|
"return-style": "^1.0.0"
|
|
72
72
|
}
|
|
73
73
|
}
|