@bbk47/toolbox 1.0.7 → 2.0.0

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 (90) hide show
  1. package/lib/deferred.d.ts +7 -0
  2. package/lib/deferred.d.ts.map +1 -0
  3. package/lib/deferred.js +8 -4
  4. package/lib/deferred.js.map +1 -0
  5. package/lib/encrypt.d.ts +19 -0
  6. package/lib/encrypt.d.ts.map +1 -0
  7. package/lib/encrypt.js +78 -79
  8. package/lib/encrypt.js.map +1 -0
  9. package/lib/index.d.ts +19 -0
  10. package/lib/index.d.ts.map +1 -0
  11. package/lib/index.js +58 -8
  12. package/lib/index.js.map +1 -0
  13. package/lib/logger.d.ts +11 -0
  14. package/lib/logger.d.ts.map +1 -0
  15. package/lib/logger.js +23 -14
  16. package/lib/logger.js.map +1 -0
  17. package/lib/md5.d.ts +2 -0
  18. package/lib/md5.d.ts.map +1 -0
  19. package/lib/md5.js +9 -6
  20. package/lib/md5.js.map +1 -0
  21. package/lib/merge.d.ts +2 -0
  22. package/lib/merge.d.ts.map +1 -0
  23. package/lib/merge.js +7 -8
  24. package/lib/merge.js.map +1 -0
  25. package/lib/proxy.d.ts +6 -0
  26. package/lib/proxy.d.ts.map +1 -0
  27. package/lib/proxy.js +65 -0
  28. package/lib/proxy.js.map +1 -0
  29. package/lib/retry.d.ts +6 -0
  30. package/lib/retry.d.ts.map +1 -0
  31. package/lib/retry.js +11 -13
  32. package/lib/retry.js.map +1 -0
  33. package/lib/server.d.ts +14 -0
  34. package/lib/server.d.ts.map +1 -0
  35. package/lib/server.js +71 -0
  36. package/lib/server.js.map +1 -0
  37. package/lib/socks5.d.ts +8 -0
  38. package/lib/socks5.d.ts.map +1 -0
  39. package/lib/socks5.js +24 -27
  40. package/lib/socks5.js.map +1 -0
  41. package/lib/timeout.d.ts +2 -0
  42. package/lib/timeout.d.ts.map +1 -0
  43. package/lib/timeout.js +7 -0
  44. package/lib/timeout.js.map +1 -0
  45. package/lib/transport/creater.d.ts +14 -0
  46. package/lib/transport/creater.d.ts.map +1 -0
  47. package/lib/transport/creater.js +72 -0
  48. package/lib/transport/creater.js.map +1 -0
  49. package/lib/transport/helper.d.ts +14 -0
  50. package/lib/transport/helper.d.ts.map +1 -0
  51. package/lib/transport/helper.js +63 -0
  52. package/lib/transport/helper.js.map +1 -0
  53. package/lib/transport/index.d.ts +6 -0
  54. package/lib/transport/index.d.ts.map +1 -0
  55. package/lib/transport/index.js +43 -0
  56. package/lib/transport/index.js.map +1 -0
  57. package/lib/transport/transport.d.ts +23 -0
  58. package/lib/transport/transport.d.ts.map +1 -0
  59. package/lib/transport/transport.js +41 -0
  60. package/lib/transport/transport.js.map +1 -0
  61. package/lib/uuid.d.ts +2 -0
  62. package/lib/uuid.d.ts.map +1 -0
  63. package/lib/uuid.js +14 -20
  64. package/lib/uuid.js.map +1 -0
  65. package/package.json +18 -4
  66. package/src/deferred.ts +14 -0
  67. package/src/encrypt.ts +119 -0
  68. package/src/index.ts +29 -0
  69. package/src/logger.ts +59 -0
  70. package/src/md5.ts +5 -0
  71. package/src/merge.ts +16 -0
  72. package/src/proxy.ts +65 -0
  73. package/src/retry.ts +32 -0
  74. package/src/server.ts +77 -0
  75. package/src/socks5.ts +46 -0
  76. package/src/timeout.ts +3 -0
  77. package/src/transport/creater.ts +88 -0
  78. package/src/transport/helper.ts +73 -0
  79. package/src/transport/index.ts +6 -0
  80. package/src/transport/transport.ts +54 -0
  81. package/src/uuid.ts +37 -0
  82. package/.github/workflows/test.yml +0 -30
  83. package/.prettierrc +0 -11
  84. package/test/deferred.js +0 -24
  85. package/test/encrypt.js +0 -25
  86. package/test/md5.js +0 -9
  87. package/test/merge.js +0 -11
  88. package/test/retry.js +0 -61
  89. package/test/socks5.js +0 -42
  90. package/test/uuid.js +0 -11
@@ -0,0 +1,7 @@
1
+ export interface Deferred<T = any> {
2
+ promise: Promise<T>;
3
+ resolve: (value: T | PromiseLike<T>) => void;
4
+ reject: (reason?: any) => void;
5
+ }
6
+ export default function deferred<T = any>(): Deferred<T>;
7
+ //# sourceMappingURL=deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,GAAG,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAOvD"}
package/lib/deferred.js CHANGED
@@ -1,8 +1,12 @@
1
- module.exports = function deferred(){
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = deferred;
4
+ function deferred() {
2
5
  const defer = {};
3
- defer.promise = new Promise((resolve,reject)=>{
4
- defer.resolve=resolve;
5
- defer.reject=reject;
6
+ defer.promise = new Promise((resolve, reject) => {
7
+ defer.resolve = resolve;
8
+ defer.reject = reject;
6
9
  });
7
10
  return defer;
8
11
  }
12
+ //# sourceMappingURL=deferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.js","sourceRoot":"","sources":["../src/deferred.ts"],"names":[],"mappings":";;AAMA,2BAOC;AAPD,SAAwB,QAAQ;IAC5B,MAAM,KAAK,GAAG,EAAiB,CAAC;IAChC,KAAK,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/C,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ type CipherKey = string;
2
+ interface KeyIV {
3
+ key: Buffer;
4
+ iv: Buffer;
5
+ }
6
+ export type CipherMethod = 'aes-128-cfb' | 'aes-192-cfb' | 'aes-256-cfb' | 'bf-cfb' | 'camellia-128-cfb' | 'camellia-192-cfb' | 'camellia-256-cfb' | 'cast5-cfb' | 'des-cfb' | 'idea-cfb' | 'rc2-cfb' | 'rc4' | 'seed-cfb';
7
+ export declare class Encryptor {
8
+ key: CipherKey;
9
+ method: CipherMethod;
10
+ _EVP_KEY: Buffer;
11
+ _IV: Buffer;
12
+ constructor(key?: string, method?: CipherMethod);
13
+ get_cipher_len(method: string): [number, number];
14
+ getKeyIV(password: string, method: string): KeyIV;
15
+ encrypt(buf: Buffer): Buffer;
16
+ decrypt(buf: Buffer): Buffer;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=encrypt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypt.d.ts","sourceRoot":"","sources":["../src/encrypt.ts"],"names":[],"mappings":"AAEA,KAAK,SAAS,GAAG,MAAM,CAAC;AAIxB,UAAU,KAAK;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACd;AAmCD,MAAM,MAAM,YAAY,GAClB,aAAa,GACb,aAAa,GACb,aAAa,GACb,QAAQ,GACR,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,WAAW,GACX,SAAS,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,UAAU,CAAC;AAkBjB,qBAAa,SAAS;IAClB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;gBAEA,GAAG,GAAE,MAAiB,EAAE,MAAM,GAAE,YAA4B;IAWxE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKhD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;IAQjD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAO5B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAM/B"}
package/lib/encrypt.js CHANGED
@@ -1,87 +1,86 @@
1
- const crypto = require("crypto");
2
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Encryptor = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
3
8
  const bytes_to_key_results = {};
4
-
5
9
  const EVP_BytesToKey = function (password, key_len, iv_len) {
6
- var count, d, data, i, iv, key, m, md5, ms;
7
- if (bytes_to_key_results["" + password + ":" + key_len + ":" + iv_len]) {
8
- return bytes_to_key_results["" + password + ":" + key_len + ":" + iv_len];
9
- }
10
- m = [];
11
- i = 0;
12
- count = 0;
13
- while (count < key_len + iv_len) {
14
- md5 = crypto.createHash("md5");
15
- data = password;
16
- if (i > 0) {
17
- data = Buffer.concat([m[i - 1], password]);
10
+ const cacheKey = `${password}:${key_len}:${iv_len}`;
11
+ if (bytes_to_key_results[cacheKey]) {
12
+ return bytes_to_key_results[cacheKey];
13
+ }
14
+ const m = [];
15
+ let i = 0;
16
+ let count = 0;
17
+ while (count < key_len + iv_len) {
18
+ const md5hash = crypto_1.default.createHash('md5');
19
+ let data = password;
20
+ if (i > 0) {
21
+ data = Buffer.concat([m[i - 1], password]);
22
+ }
23
+ md5hash.update(data);
24
+ const d = md5hash.digest();
25
+ m.push(d);
26
+ count += d.length;
27
+ i += 1;
18
28
  }
19
- md5.update(data);
20
- d = md5.digest();
21
- m.push(d);
22
- count += d.length;
23
- i += 1;
24
- }
25
- ms = Buffer.concat(m);
26
- key = ms.slice(0, key_len);
27
- iv = ms.slice(key_len, key_len + iv_len);
28
- bytes_to_key_results[password] = [key, iv];
29
- return [key, iv];
29
+ const ms = Buffer.concat(m);
30
+ const key = ms.slice(0, key_len);
31
+ const iv = ms.slice(key_len, key_len + iv_len);
32
+ bytes_to_key_results[cacheKey] = [key, iv];
33
+ return [key, iv];
30
34
  };
31
-
32
35
  const method_supported = {
33
- "aes-128-cfb": [16, 16],
34
- "aes-192-cfb": [24, 16],
35
- "aes-256-cfb": [32, 16],
36
- "bf-cfb": [16, 8],
37
- "camellia-128-cfb": [16, 16],
38
- "camellia-192-cfb": [24, 16],
39
- "camellia-256-cfb": [32, 16],
40
- "cast5-cfb": [16, 8],
41
- "des-cfb": [8, 8],
42
- "idea-cfb": [16, 8],
43
- "rc2-cfb": [16, 8],
44
- rc4: [16, 0],
45
- "seed-cfb": [16, 16],
36
+ 'aes-128-cfb': [16, 16],
37
+ 'aes-192-cfb': [24, 16],
38
+ 'aes-256-cfb': [32, 16],
39
+ 'bf-cfb': [16, 8],
40
+ 'camellia-128-cfb': [16, 16],
41
+ 'camellia-192-cfb': [24, 16],
42
+ 'camellia-256-cfb': [32, 16],
43
+ 'cast5-cfb': [16, 8],
44
+ 'des-cfb': [8, 8],
45
+ 'idea-cfb': [16, 8],
46
+ 'rc2-cfb': [16, 8],
47
+ rc4: [16, 0],
48
+ 'seed-cfb': [16, 16],
46
49
  };
47
-
48
- function Encryptor(key, method) {
49
- this.key = key || "MVP123";
50
- this.method = method || "aes-256-cfb";
51
- if (!method_supported[this.method]) {
52
- throw Error("Not support method!");
53
- }
54
- const keyIV = this.getKeyIV(key, method);
55
- this._EVP_KEY = keyIV.key;
56
- this._IV = keyIV.iv;
50
+ class Encryptor {
51
+ constructor(key = 'MVP123', method = 'aes-256-cfb') {
52
+ this.key = key;
53
+ this.method = method;
54
+ if (!method_supported[this.method]) {
55
+ throw new Error('Not support method!');
56
+ }
57
+ const keyIV = this.getKeyIV(key, method);
58
+ this._EVP_KEY = keyIV.key;
59
+ this._IV = keyIV.iv;
60
+ }
61
+ get_cipher_len(method) {
62
+ const m = method.toLowerCase();
63
+ return method_supported[m];
64
+ }
65
+ getKeyIV(password, method) {
66
+ const m = method.toLowerCase();
67
+ const passwordBuf = Buffer.from(password, 'ascii');
68
+ const [keyLen, ivLen] = this.get_cipher_len(m);
69
+ const ref = EVP_BytesToKey(passwordBuf, keyLen, ivLen);
70
+ return { key: ref[0], iv: ref[1] };
71
+ }
72
+ encrypt(buf) {
73
+ const cipher = crypto_1.default.createCipheriv(this.method, this._EVP_KEY, this._IV);
74
+ const encrypted = cipher.update(buf);
75
+ const result = cipher.final();
76
+ return Buffer.concat([encrypted, result]);
77
+ }
78
+ decrypt(buf) {
79
+ const decipher = crypto_1.default.createDecipheriv(this.method, this._EVP_KEY, this._IV);
80
+ const decrypted = decipher.update(buf);
81
+ const result = decipher.final();
82
+ return Buffer.concat([decrypted, result]);
83
+ }
57
84
  }
58
-
59
- Encryptor.prototype.get_cipher_len = function (method) {
60
- method = method.toLowerCase();
61
- return method_supported[method];
62
- };
63
-
64
- Encryptor.prototype.getKeyIV = function (password, method) {
65
- method = method.toLowerCase();
66
- password = Buffer.from(password, "ascii");
67
- var m = this.get_cipher_len(method);
68
- var _ref = EVP_BytesToKey(password, m[0], m[1]);
69
- return { key: _ref[0], iv: _ref[1] };
70
- };
71
-
72
- Encryptor.prototype.encrypt = function (buf) {
73
- const cipher = crypto.createCipheriv(this.method, this._EVP_KEY, this._IV);
74
- let encrypted = cipher.update(buf);
75
- let result = cipher.final();
76
-
77
- let resultBuf = Buffer.concat([encrypted, result]);
78
- return resultBuf;
79
- };
80
-
81
- Encryptor.prototype.decrypt = function (buf) {
82
- let decipher = crypto.createDecipheriv(this.method, this._EVP_KEY, this._IV);
83
- let decrypted = decipher.update(buf);
84
- let result = decipher.final();
85
- return Buffer.concat([decrypted, result]);
86
- };
87
85
  exports.Encryptor = Encryptor;
86
+ //# sourceMappingURL=encrypt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypt.js","sourceRoot":"","sources":["../src/encrypt.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export { default as deferred } from './deferred';
2
+ export type { Deferred } from './deferred';
3
+ export * as encrypt from './encrypt';
4
+ export type { CipherMethod } from './encrypt';
5
+ export { default as logger } from './logger';
6
+ export type { LogLevel, Logger } from './logger';
7
+ export { default as md5 } from './md5';
8
+ export { default as merge } from './merge';
9
+ export * as proxy from './proxy';
10
+ export type { OnConnect, ConnectCallback } from './proxy';
11
+ export { default as retry } from './retry';
12
+ export type { RetryOptions } from './retry';
13
+ export * as server from './server';
14
+ export * as socks5 from './socks5';
15
+ export type { Socks5AddrInfo } from './socks5';
16
+ export * as timeout from './timeout';
17
+ export * as transport from './transport';
18
+ export { default as uuid } from './uuid';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC"}
package/lib/index.js CHANGED
@@ -1,8 +1,58 @@
1
- exports.encrypt = require('./encrypt');
2
- exports.logger = require('./logger');
3
- exports.md5 = require('./md5');
4
- exports.socks5 = require('./socks5');
5
- exports.uuid = require('./uuid');
6
- exports.retry = require('./retry');
7
- exports.deferred = require('./deferred');
8
- exports.merge = require('./merge');
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.uuid = exports.transport = exports.timeout = exports.socks5 = exports.server = exports.retry = exports.proxy = exports.merge = exports.md5 = exports.logger = exports.encrypt = exports.deferred = void 0;
40
+ var deferred_1 = require("./deferred");
41
+ Object.defineProperty(exports, "deferred", { enumerable: true, get: function () { return __importDefault(deferred_1).default; } });
42
+ exports.encrypt = __importStar(require("./encrypt"));
43
+ var logger_1 = require("./logger");
44
+ Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return __importDefault(logger_1).default; } });
45
+ var md5_1 = require("./md5");
46
+ Object.defineProperty(exports, "md5", { enumerable: true, get: function () { return __importDefault(md5_1).default; } });
47
+ var merge_1 = require("./merge");
48
+ Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return __importDefault(merge_1).default; } });
49
+ exports.proxy = __importStar(require("./proxy"));
50
+ var retry_1 = require("./retry");
51
+ Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return __importDefault(retry_1).default; } });
52
+ exports.server = __importStar(require("./server"));
53
+ exports.socks5 = __importStar(require("./socks5"));
54
+ exports.timeout = __importStar(require("./timeout"));
55
+ exports.transport = __importStar(require("./transport"));
56
+ var uuid_1 = require("./uuid");
57
+ Object.defineProperty(exports, "uuid", { enumerable: true, get: function () { return __importDefault(uuid_1).default; } });
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAG5B,qDAAqC;AAGrC,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAG1B,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AAEvB,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AAEzB,iDAAiC;AAGjC,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AAGzB,mDAAmC;AAEnC,mDAAmC;AAGnC,qDAAqC;AAErC,yDAAyC;AAEzC,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ"}
@@ -0,0 +1,11 @@
1
+ export type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'log' | 'debug';
2
+ export interface Logger {
3
+ fatal: (msg: string) => void;
4
+ error: (msg: string) => void;
5
+ warn: (msg: string) => void;
6
+ info: (msg: string) => void;
7
+ log: (msg: string) => void;
8
+ debug: (msg: string) => void;
9
+ }
10
+ export default function getCustomLogger(label: string, level: LogLevel, _logFile?: string): Logger;
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7E,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAqBD,MAAM,CAAC,OAAO,UAAU,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,QAAQ,EACf,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAwBR"}
package/lib/logger.js CHANGED
@@ -1,5 +1,6 @@
1
- const dateFormat = require('date-format');
2
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = getCustomLogger;
3
4
  const levelVal = {
4
5
  fatal: { piv: 1, colour: '\x1b[31m%s\x1b[0m' },
5
6
  error: { piv: 2, colour: '\x1b[31m%s\x1b[0m' },
@@ -8,23 +9,31 @@ const levelVal = {
8
9
  log: { piv: 5, colour: '\x1b[37m%s\x1b[0m' },
9
10
  debug: { piv: 6, colour: '\x1b[35m%s\x1b[0m' },
10
11
  };
11
-
12
- function getCustomLogger(label, level) {
13
- const noop = () => void 0;
12
+ function formatDate(date) {
13
+ const pad = (n) => String(n).padStart(2, '0');
14
+ return `${date.getFullYear()}/${pad(date.getMonth() + 1)}/${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
15
+ }
16
+ function getCustomLogger(label, level, _logFile) {
17
+ const noop = () => undefined;
14
18
  const setPiv = levelVal[level].piv;
15
- function getter(target, key, handler) {
19
+ function makeLogFn(key) {
16
20
  if (levelVal[key].piv <= setPiv) {
17
21
  const colour = levelVal[key].colour;
18
- return function (msg) {
19
- let date = dateFormat('yyyy/MM/dd hh:mm:ss', new Date());
20
- var prefix = `${date} [${key[0].toUpperCase()}] ${label} `;
22
+ return (msg) => {
23
+ const date = formatDate(new Date());
24
+ const prefix = `${date} [${key[0].toUpperCase()}] ${label} `;
21
25
  console.log(colour, prefix, msg);
22
26
  };
23
- } else {
24
- return noop;
25
27
  }
28
+ return noop;
26
29
  }
27
- return new Proxy({}, { get: getter });
30
+ return {
31
+ fatal: makeLogFn('fatal'),
32
+ error: makeLogFn('error'),
33
+ warn: makeLogFn('warn'),
34
+ info: makeLogFn('info'),
35
+ log: makeLogFn('log'),
36
+ debug: makeLogFn('debug'),
37
+ };
28
38
  }
29
-
30
- module.exports = getCustomLogger;
39
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;AA8BA,kCA4BC;AA1CD,MAAM,QAAQ,GAAkC;IAC5C,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC9C,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC9C,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC7C,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC7C,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC5C,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE;CACjD,CAAC;AAEF,SAAS,UAAU,CAAC,IAAU;IAC1B,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAClK,CAAC;AAED,SAAwB,eAAe,CACnC,KAAa,EACb,KAAe,EACf,QAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;IAEnC,SAAS,SAAS,CAAC,GAAa;QAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YACpC,OAAO,CAAC,GAAW,EAAE,EAAE;gBACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO;QACH,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;QACzB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;QACvB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;QACrB,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC;KAC5B,CAAC;AACN,CAAC"}
package/lib/md5.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export default function md5(s: string | number): string;
2
+ //# sourceMappingURL=md5.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md5.d.ts","sourceRoot":"","sources":["../src/md5.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEtD"}
package/lib/md5.js CHANGED
@@ -1,8 +1,11 @@
1
- const crypto = require('crypto');
2
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = md5;
7
+ const crypto_1 = __importDefault(require("crypto"));
3
8
  function md5(s) {
4
- //注意参数需要为string类型,否则会报错
5
- return crypto.createHash('md5').update(String(s)).digest('hex');
9
+ return crypto_1.default.createHash('md5').update(String(s)).digest('hex');
6
10
  }
7
-
8
- module.exports = md5;
11
+ //# sourceMappingURL=md5.js.map
package/lib/md5.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md5.js","sourceRoot":"","sources":["../src/md5.ts"],"names":[],"mappings":";;;;;AAEA,sBAEC;AAJD,oDAA4B;AAE5B,SAAwB,GAAG,CAAC,CAAkB;IAC1C,OAAO,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC"}
package/lib/merge.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export default function merge<T extends Record<string, any>>(target: T, ...sources: (Record<string, any> | null | undefined)[]): T & Record<string, any>;
2
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvD,MAAM,EAAE,CAAC,EACT,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GACvD,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAYzB"}
package/lib/merge.js CHANGED
@@ -1,10 +1,12 @@
1
- function merge(target) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = merge;
4
+ function merge(target, ...sources) {
2
5
  target = target || {};
3
- var args = [].slice.call(arguments, 1);
4
- args.forEach((temp) => {
6
+ sources.forEach((temp) => {
5
7
  if (temp) {
6
8
  Object.keys(temp).forEach((key) => {
7
- if (temp[key]) {
9
+ if (temp[key] !== null && temp[key] !== undefined) {
8
10
  target[key] = temp[key];
9
11
  }
10
12
  });
@@ -12,7 +14,4 @@ function merge(target) {
12
14
  });
13
15
  return target;
14
16
  }
15
-
16
- module.exports = merge;
17
-
18
- // console.log(merge({}, { sss: 123 }, { bb: 456 },{sss:null}));
17
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../src/merge.ts"],"names":[],"mappings":";;AAAA,wBAeC;AAfD,SAAwB,KAAK,CACzB,MAAS,EACT,GAAG,OAAmD;IAEtD,MAAM,GAAG,MAAM,IAAK,EAAQ,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC/C,MAA8B,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAClB,CAAC"}
package/lib/proxy.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import net from 'net';
2
+ export type ConnectCallback = (err?: Error | null) => void;
3
+ export type OnConnect = (addr: Buffer, callback: ConnectCallback) => void;
4
+ export declare function createSocks5Proxy(cSock: net.Socket, onConnect: OnConnect): void;
5
+ export declare function createConnectProxy(cSock: net.Socket, onConnect: OnConnect): void;
6
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;AAE1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAyB/E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CA+BhF"}
package/lib/proxy.js ADDED
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSocks5Proxy = createSocks5Proxy;
4
+ exports.createConnectProxy = createConnectProxy;
5
+ const socks5_1 = require("./socks5");
6
+ function createSocks5Proxy(cSock, onConnect) {
7
+ let stage = 'INIT';
8
+ cSock.on('data', function dataListener(data) {
9
+ if (stage === 'INIT') {
10
+ cSock.write('\x05\x00');
11
+ stage = 'ADDR';
12
+ return;
13
+ }
14
+ else if (stage === 'ADDR') {
15
+ onConnect(data.slice(3), (err) => {
16
+ if (!err) {
17
+ stage = 'STREAM';
18
+ cSock.write('\x05\x00\x00\x01\x00\x00\x00\x00\x00\x00');
19
+ cSock.removeAllListeners('data');
20
+ cSock.pause();
21
+ }
22
+ else {
23
+ cSock.destroy();
24
+ }
25
+ });
26
+ return;
27
+ }
28
+ });
29
+ cSock.on('error', () => {
30
+ cSock.destroy();
31
+ });
32
+ }
33
+ function createConnectProxy(cSock, onConnect) {
34
+ let stage = 'INIT';
35
+ cSock.on('data', (data) => {
36
+ if (stage === 'INIT') {
37
+ const str = data.toString('ascii');
38
+ const lines = str.split(/\s/g);
39
+ if (lines[0] !== 'CONNECT') {
40
+ cSock.destroy();
41
+ return;
42
+ }
43
+ const hoststr = lines[1];
44
+ const reqhost = hoststr.split(':');
45
+ const hostname = reqhost[0];
46
+ const port = Number(reqhost[1]);
47
+ const socksAddrInfo = (0, socks5_1.buildSocks5Addr)(hostname, port);
48
+ onConnect(socksAddrInfo, (err) => {
49
+ if (!err) {
50
+ cSock.write(Buffer.from('HTTP/1.1 200 Connection Established\r\n\r\n'));
51
+ stage = 'STREAM';
52
+ cSock.removeAllListeners('data');
53
+ cSock.pause();
54
+ }
55
+ else {
56
+ cSock.destroy();
57
+ }
58
+ });
59
+ }
60
+ });
61
+ cSock.on('error', () => {
62
+ cSock.destroy();
63
+ });
64
+ }
65
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";;AAMA,8CAyBC;AAED,gDA+BC;AA/DD,qCAA2C;AAK3C,SAAgB,iBAAiB,CAAC,KAAiB,EAAE,SAAoB;IACrE,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,YAAY,CAAC,IAAY;QAC/C,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxB,KAAK,GAAG,MAAM,CAAC;YACf,OAAO;QACX,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACP,KAAK,GAAG,QAAQ,CAAC;oBACjB,KAAK,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACxD,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBACjC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO;QACX,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAiB,EAAE,SAAoB;IACtE,IAAI,KAAK,GAAG,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO;YACX,CAAC;YACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,aAAa,GAAG,IAAA,wBAAe,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACtD,SAAS,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;oBACP,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,CAAC;oBACxE,KAAK,GAAG,QAAQ,CAAC;oBACjB,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBACjC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACJ,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC"}
package/lib/retry.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export interface RetryOptions {
2
+ times?: number;
3
+ interval?: number;
4
+ }
5
+ export default function retryPromise<T>(fn: () => Promise<T>, opts?: RetryOptions, errcall?: (err: Error) => void): Promise<T>;
6
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,CAAC,EAClC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,YAAiB,EACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC/B,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
package/lib/retry.js CHANGED
@@ -1,25 +1,23 @@
1
- var timeoutPromise = (time) =>
2
- new Promise((resolve) => setTimeout(resolve, time));
3
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = retryPromise;
4
+ const delay = (time) => new Promise((resolve) => setTimeout(resolve, time));
4
5
  function retryPromise(fn, opts = {}, errcall) {
5
- var retryCount = opts.times || 5;
6
-
6
+ const retryCount = opts.times !== undefined ? opts.times : 5;
7
7
  function invoker(idx) {
8
8
  if (idx >= retryCount) {
9
- return Promise.reject(
10
- Error(`expect retryCount ${retryCount} is attached!`)
11
- );
9
+ return Promise.reject(new Error(`expect retryCount ${retryCount} is attached!`));
12
10
  }
13
- return fn.call(null).catch((err) => {
11
+ return fn().catch((err) => {
14
12
  errcall && errcall(err);
15
13
  if (opts.interval) {
16
- return timeoutPromise(opts.interval).then(() => invoker(idx + 1));
17
- } else {
14
+ return delay(opts.interval).then(() => invoker(idx + 1));
15
+ }
16
+ else {
18
17
  return invoker(idx + 1);
19
18
  }
20
19
  });
21
20
  }
22
21
  return invoker(0);
23
22
  }
24
-
25
- module.exports = retryPromise;
23
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":";;AAQA,+BAuBC;AA/BD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAiB,EAAE,CAC1C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAOxD,SAAwB,YAAY,CAChC,EAAoB,EACpB,OAAqB,EAAE,EACvB,OAA8B;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7D,SAAS,OAAO,CAAC,GAAW;QACxB,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CACjB,IAAI,KAAK,CAAC,qBAAqB,UAAU,eAAe,CAAC,CAC5D,CAAC;QACN,CAAC;QACD,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YAC7B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,OAAO,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import net from 'net';
2
+ import http from 'http';
3
+ import tls from 'tls';
4
+ import http2 from 'http2';
5
+ import WebSocket from 'ws';
6
+ export type HttpHandler = (req: http.IncomingMessage, res: http.ServerResponse) => void;
7
+ export type WsHandler = (ws: WebSocket) => void;
8
+ export type StreamHandler = (stream: net.Socket | http2.ServerHttp2Stream) => void;
9
+ export type ConnHandler = (conn: net.Socket | tls.TLSSocket) => void;
10
+ export declare function createWsServer(workPath: string, handler: WsHandler, httpHandler?: HttpHandler): http.Server;
11
+ export declare function createHttp2Server(tlsOpts: tls.TlsOptions, workPath: string, handler: (stream: http2.ServerHttp2Stream) => void, httpHandler?: (req: http2.Http2ServerRequest, res: http2.Http2ServerResponse) => void): http2.Http2SecureServer;
12
+ export declare function createTcpServer(handler: ConnHandler): net.Server;
13
+ export declare function createTlsServer(tlsOpts: tls.TlsOptions, handler: ConnHandler): tls.Server;
14
+ //# sourceMappingURL=server.d.ts.map