melperjs 7.2.0 → 8.1.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.
- package/README.md +86 -80
- package/{cjs → lib/cjs}/index.js +25 -19
- package/{cjs → lib/cjs}/node.js +4 -5
- package/{mjs → lib/esm}/index.js +24 -17
- package/{mjs → lib/esm}/node.js +2 -3
- package/package.json +16 -13
- package/.babelrc +0 -52
- package/cjs/index.js.map +0 -1
- package/cjs/node.js.map +0 -1
- package/mjs/index.js.map +0 -1
- package/mjs/node.js.map +0 -1
- package/src/index.js +0 -263
- package/src/node.js +0 -155
- package/test/script.js +0 -82
- /package/{LISENCE → LICENSE} +0 -0
- /package/{cjs → lib/cjs}/package.json +0 -0
package/README.md
CHANGED
|
@@ -13,90 +13,96 @@ npm i melperjs
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
15
|
```javascript
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
// const helper = require("melperjs");
|
|
17
|
+
// const nodeHelper = require("melperjs/node");
|
|
18
|
+
// const axios = require("axios");
|
|
19
|
+
import * as helper from "melperjs";
|
|
20
|
+
import * as nodeHelper from "melperjs/node";
|
|
21
|
+
import axios from "axios";
|
|
22
22
|
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
2.line
|
|
23
|
+
console.log(helper.CONSTANTS);
|
|
24
|
+
console.log(helper.Exception("something went wrong", {status: 400}, "bad request error"));
|
|
25
|
+
console.log(helper.time());
|
|
26
|
+
await helper.sleepMs(1000);
|
|
27
|
+
console.log(helper.time());
|
|
28
|
+
await helper.sleep(1);
|
|
29
|
+
console.log(helper.time());
|
|
30
|
+
try {
|
|
31
|
+
await helper.promiseTimeout(1000, helper.sleepMs(2000));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
console.error(e.message);
|
|
34
|
+
console.log("Timeout, Internal Error ?", helper.isIntlError(e));
|
|
35
|
+
}
|
|
36
|
+
console.log(helper.splitClear(`
|
|
37
|
+
2.satır
|
|
39
38
|
|
|
40
|
-
4.
|
|
39
|
+
4.satır
|
|
41
40
|
`))
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
41
|
+
console.log(helper.findKeyNode("c", {
|
|
42
|
+
a: {
|
|
43
|
+
b: {
|
|
44
|
+
x: 1,
|
|
45
|
+
y: 2,
|
|
46
|
+
c: {
|
|
47
|
+
d: true
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
console.log("'' empty ?", helper.checkEmpty(''));
|
|
53
|
+
console.log("1 empty ?", helper.checkEmpty(1));
|
|
54
|
+
console.log("0 empty ?", helper.checkEmpty(1));
|
|
55
|
+
console.log("[] empty ?", helper.checkEmpty([]));
|
|
56
|
+
console.log(helper.pascalCase("pascal case"));
|
|
57
|
+
console.log(helper.titleCase("THIS mUsT be Title"));
|
|
58
|
+
console.log(helper.objectStringify({
|
|
59
|
+
a: "hello",
|
|
60
|
+
b: 1,
|
|
61
|
+
c: undefined,
|
|
62
|
+
d: null,
|
|
63
|
+
e: {
|
|
64
|
+
ea: 2
|
|
65
|
+
},
|
|
66
|
+
f: [3, 4, 5],
|
|
67
|
+
g: false
|
|
68
|
+
}));
|
|
69
|
+
console.log(helper.limitString("LONG TEXT", 7));
|
|
70
|
+
console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
|
|
71
|
+
console.log(helper.randomString(32, true, true));
|
|
72
|
+
console.log(helper.randomHex(8));
|
|
73
|
+
console.log(helper.randomInteger(100, 1000));
|
|
74
|
+
console.log(helper.randomUuid(true));
|
|
75
|
+
console.log(helper.randomWeighted({strongProbability: 1000, lowProbability: 1}));
|
|
76
|
+
console.log(nodeHelper.tokenString(32, true, true));
|
|
77
|
+
console.log(nodeHelper.tokenHex(8));
|
|
78
|
+
console.log(nodeHelper.tokenUuid(true));
|
|
79
|
+
console.log(nodeHelper.tokenWeighted({strongProbability: 1000, lowProbability: 1}));
|
|
80
|
+
console.log(nodeHelper.md5("data"));
|
|
81
|
+
const password = nodeHelper.hashBcrypt("plain", "encryptionKey");
|
|
82
|
+
console.log(password)
|
|
83
|
+
console.log("passwordHash verified ?", nodeHelper.verifyBcrypt("plain", password, "encryptionKey"));
|
|
84
|
+
const cookies = helper.cookieDict(await axios.get("https://google.com"));
|
|
85
|
+
console.log(cookies);
|
|
86
|
+
console.log(helper.cookieHeader(cookies));
|
|
87
|
+
const proxy = nodeHelper.formatProxy("127.0.0.1:8080:id:pw-{SESSION}");
|
|
88
|
+
console.log(proxy);
|
|
89
|
+
console.log(nodeHelper.proxyObject(proxy));
|
|
90
|
+
console.log(nodeHelper.proxyValue(proxy));
|
|
91
|
+
console.log(nodeHelper.serverIp());
|
|
92
|
+
console.log("HTTP CODE: 400 (Bad Request) ?", helper.isIntlHttpCode(401));
|
|
93
|
+
console.log("HTTP CODE: 407 (Failed Proxy Auth) ?", helper.isIntlHttpCode(407));
|
|
94
|
+
nodeHelper.createNumDir("test");
|
|
95
|
+
console.log("VERSIONED BY .GIT", "v" + nodeHelper.getVersion());
|
|
96
|
+
await helper.forever(1000, async () => {
|
|
97
|
+
await helper.sleep(1);
|
|
98
|
+
console.log("Do something!")
|
|
99
|
+
}, (e) => {
|
|
100
|
+
console.error("Error!", e);
|
|
101
|
+
return 5000
|
|
102
|
+
}, () => {
|
|
103
|
+
console.log("Run this process forever!")
|
|
104
|
+
}
|
|
105
|
+
);
|
|
100
106
|
|
|
101
107
|
/*
|
|
102
108
|
{
|
|
@@ -172,4 +178,4 @@ VERSIONED BY .GIT v2310.15182
|
|
|
172
178
|
|
|
173
179
|
## License
|
|
174
180
|
|
|
175
|
-
The MIT License (MIT). Please see [License File](
|
|
181
|
+
The MIT License (MIT). Please see [License File](LICENSE) for more information.
|
package/{cjs → lib/cjs}/index.js
RENAMED
|
@@ -9,10 +9,10 @@ exports.checkEmpty = checkEmpty;
|
|
|
9
9
|
exports.cookieDict = cookieDict;
|
|
10
10
|
exports.cookieHeader = cookieHeader;
|
|
11
11
|
exports.findKeyNode = findKeyNode;
|
|
12
|
+
exports.forever = forever;
|
|
12
13
|
exports.isIntlError = isIntlError;
|
|
13
14
|
exports.isIntlHttpCode = isIntlHttpCode;
|
|
14
15
|
exports.limitString = limitString;
|
|
15
|
-
exports.lowerCaseFirst = lowerCaseFirst;
|
|
16
16
|
exports.objectStringify = objectStringify;
|
|
17
17
|
exports.pascalCase = pascalCase;
|
|
18
18
|
exports.promiseTimeout = promiseTimeout;
|
|
@@ -27,11 +27,10 @@ exports.sleepMs = sleepMs;
|
|
|
27
27
|
exports.splitClear = splitClear;
|
|
28
28
|
exports.time = time;
|
|
29
29
|
exports.titleCase = titleCase;
|
|
30
|
-
exports.upperCaseFirst = upperCaseFirst;
|
|
31
30
|
var _xss = _interopRequireDefault(require("xss"));
|
|
32
31
|
var _setCookieParser = _interopRequireDefault(require("set-cookie-parser"));
|
|
33
32
|
var _camelCase = _interopRequireDefault(require("lodash/camelCase.js"));
|
|
34
|
-
var
|
|
33
|
+
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst.js"));
|
|
35
34
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty.js"));
|
|
36
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
36
|
const CONSTANTS = exports.CONSTANTS = {
|
|
@@ -51,6 +50,23 @@ function Exception(message, response = {}, name = null) {
|
|
|
51
50
|
}
|
|
52
51
|
return new ExceptionClass(message, response, name);
|
|
53
52
|
}
|
|
53
|
+
async function forever(cooldown, onSuccess, onError = null, onCompleted = null) {
|
|
54
|
+
const checkCooldown = value => value && !isNaN(value) && value > 0;
|
|
55
|
+
if (!checkCooldown(cooldown)) throw new Error("Cooldown must be a positive number");
|
|
56
|
+
while (true) {
|
|
57
|
+
try {
|
|
58
|
+
const value = await onSuccess();
|
|
59
|
+
if (checkCooldown(value)) cooldown = value;
|
|
60
|
+
} catch (e) {
|
|
61
|
+
const value = onError && (await onError(e));
|
|
62
|
+
if (checkCooldown(value)) cooldown = value;
|
|
63
|
+
} finally {
|
|
64
|
+
const value = onCompleted && (await onCompleted());
|
|
65
|
+
if (checkCooldown(value)) cooldown = value;
|
|
66
|
+
await sleepMs(cooldown);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
54
70
|
function time() {
|
|
55
71
|
return Math.floor(Date.now() / 1000);
|
|
56
72
|
}
|
|
@@ -74,7 +90,8 @@ function promiseTimeout(milliseconds, promise) {
|
|
|
74
90
|
});
|
|
75
91
|
});
|
|
76
92
|
}
|
|
77
|
-
function splitClear(rawText, separator =
|
|
93
|
+
function splitClear(rawText, separator = null) {
|
|
94
|
+
separator = separator ?? /\r?\n/;
|
|
78
95
|
return rawText.split(separator).map(item => item.trim()).filter(item => !(0, _isEmpty.default)(item));
|
|
79
96
|
}
|
|
80
97
|
function findKeyNode(key, node, pair = null) {
|
|
@@ -97,22 +114,12 @@ function checkEmpty(value) {
|
|
|
97
114
|
return (0, _isEmpty.default)(value);
|
|
98
115
|
}
|
|
99
116
|
}
|
|
100
|
-
function upperCaseFirst(str) {
|
|
101
|
-
str = str || "";
|
|
102
|
-
if (str.length < 1) return "";
|
|
103
|
-
return str[0].toUpperCase() + str.slice(1);
|
|
104
|
-
}
|
|
105
|
-
function lowerCaseFirst(str) {
|
|
106
|
-
str = str || "";
|
|
107
|
-
if (str.length < 1) return "";
|
|
108
|
-
return str[0].toLowerCase() + str.slice(1);
|
|
109
|
-
}
|
|
110
117
|
function pascalCase(str) {
|
|
111
|
-
return
|
|
118
|
+
return (0, _upperFirst.default)((0, _camelCase.default)(str));
|
|
112
119
|
}
|
|
113
120
|
function titleCase(str) {
|
|
114
121
|
str = str || "";
|
|
115
|
-
return str.
|
|
122
|
+
return str.replace(/\b\w/g, char => char.toUpperCase());
|
|
116
123
|
}
|
|
117
124
|
function objectStringify(obj) {
|
|
118
125
|
for (let key in obj) {
|
|
@@ -225,9 +232,8 @@ function cookieHeader(cookieDict) {
|
|
|
225
232
|
return Object.entries(cookieDict).map(([key, value]) => `${key}=${value}`).join(';');
|
|
226
233
|
}
|
|
227
234
|
function isIntlHttpCode(httpCode) {
|
|
228
|
-
return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
|
|
235
|
+
return httpCode === undefined || httpCode === null || isNaN(httpCode) || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
|
|
229
236
|
}
|
|
230
237
|
function isIntlError(e) {
|
|
231
238
|
return e?.message?.toLowerCase?.()?.includes?.("timeout") || e?.message?.toLowerCase?.()?.includes?.("aborted") || e?.message?.toLowerCase?.()?.includes?.("tls connection") || e?.message?.toLowerCase?.()?.includes?.("socket hang") || isIntlHttpCode(e?.response?.status);
|
|
232
|
-
}
|
|
233
|
-
//# sourceMappingURL=index.js.map
|
|
239
|
+
}
|
package/{cjs → lib/cjs}/node.js
RENAMED
|
@@ -21,7 +21,7 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
21
21
|
var _crypto = _interopRequireDefault(require("crypto"));
|
|
22
22
|
var _os = require("os");
|
|
23
23
|
var _child_process = require("child_process");
|
|
24
|
-
var
|
|
24
|
+
var _bcryptjs = _interopRequireDefault(require("bcryptjs"));
|
|
25
25
|
var _index = require("./index.js");
|
|
26
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
27
|
function tokenString(length, useNumbers = true, useUppercase = false) {
|
|
@@ -92,10 +92,10 @@ function md5(data) {
|
|
|
92
92
|
return _crypto.default.createHash('md5').update(data).digest("hex");
|
|
93
93
|
}
|
|
94
94
|
function hashBcrypt(plainText, encryptionKey = "") {
|
|
95
|
-
return
|
|
95
|
+
return _bcryptjs.default.hashSync(plainText + encryptionKey, _bcryptjs.default.genSaltSync(10));
|
|
96
96
|
}
|
|
97
97
|
function verifyBcrypt(plainText, hash, encryptionKey = "") {
|
|
98
|
-
return
|
|
98
|
+
return _bcryptjs.default.compareSync(plainText + encryptionKey, hash);
|
|
99
99
|
}
|
|
100
100
|
function formatProxy(proxy, protocol = "http") {
|
|
101
101
|
proxy = proxy.trim();
|
|
@@ -148,5 +148,4 @@ function proxyValue(proxies) {
|
|
|
148
148
|
proxy = formatProxy(proxy);
|
|
149
149
|
proxy = proxy.replace("{SESSION}", tokenHex(8));
|
|
150
150
|
return proxy || null;
|
|
151
|
-
}
|
|
152
|
-
//# sourceMappingURL=node.js.map
|
|
151
|
+
}
|
package/{mjs → lib/esm}/index.js
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import xss from "xss";
|
|
2
2
|
import setCookieParser from "set-cookie-parser";
|
|
3
3
|
import camelCase from "lodash/camelCase.js";
|
|
4
|
-
import
|
|
4
|
+
import upperFirst from "lodash/upperFirst.js";
|
|
5
5
|
import isEmpty from "lodash/isEmpty.js";
|
|
6
6
|
export const CONSTANTS = {
|
|
7
7
|
LOWER_CASE: "abcdefghijklmnopqrstuvwxyz",
|
|
@@ -20,6 +20,23 @@ export function Exception(message, response = {}, name = null) {
|
|
|
20
20
|
}
|
|
21
21
|
return new ExceptionClass(message, response, name);
|
|
22
22
|
}
|
|
23
|
+
export async function forever(cooldown, onSuccess, onError = null, onCompleted = null) {
|
|
24
|
+
const checkCooldown = value => value && !isNaN(value) && value > 0;
|
|
25
|
+
if (!checkCooldown(cooldown)) throw new Error("Cooldown must be a positive number");
|
|
26
|
+
while (true) {
|
|
27
|
+
try {
|
|
28
|
+
const value = await onSuccess();
|
|
29
|
+
if (checkCooldown(value)) cooldown = value;
|
|
30
|
+
} catch (e) {
|
|
31
|
+
const value = onError && (await onError(e));
|
|
32
|
+
if (checkCooldown(value)) cooldown = value;
|
|
33
|
+
} finally {
|
|
34
|
+
const value = onCompleted && (await onCompleted());
|
|
35
|
+
if (checkCooldown(value)) cooldown = value;
|
|
36
|
+
await sleepMs(cooldown);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
23
40
|
export function time() {
|
|
24
41
|
return Math.floor(Date.now() / 1000);
|
|
25
42
|
}
|
|
@@ -43,7 +60,8 @@ export function promiseTimeout(milliseconds, promise) {
|
|
|
43
60
|
});
|
|
44
61
|
});
|
|
45
62
|
}
|
|
46
|
-
export function splitClear(rawText, separator =
|
|
63
|
+
export function splitClear(rawText, separator = null) {
|
|
64
|
+
separator = separator ?? /\r?\n/;
|
|
47
65
|
return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));
|
|
48
66
|
}
|
|
49
67
|
export function findKeyNode(key, node, pair = null) {
|
|
@@ -66,22 +84,12 @@ export function checkEmpty(value) {
|
|
|
66
84
|
return isEmpty(value);
|
|
67
85
|
}
|
|
68
86
|
}
|
|
69
|
-
export function upperCaseFirst(str) {
|
|
70
|
-
str = str || "";
|
|
71
|
-
if (str.length < 1) return "";
|
|
72
|
-
return str[0].toUpperCase() + str.slice(1);
|
|
73
|
-
}
|
|
74
|
-
export function lowerCaseFirst(str) {
|
|
75
|
-
str = str || "";
|
|
76
|
-
if (str.length < 1) return "";
|
|
77
|
-
return str[0].toLowerCase() + str.slice(1);
|
|
78
|
-
}
|
|
79
87
|
export function pascalCase(str) {
|
|
80
|
-
return
|
|
88
|
+
return upperFirst(camelCase(str));
|
|
81
89
|
}
|
|
82
90
|
export function titleCase(str) {
|
|
83
91
|
str = str || "";
|
|
84
|
-
return str.
|
|
92
|
+
return str.replace(/\b\w/g, char => char.toUpperCase());
|
|
85
93
|
}
|
|
86
94
|
export function objectStringify(obj) {
|
|
87
95
|
for (let key in obj) {
|
|
@@ -194,9 +202,8 @@ export function cookieHeader(cookieDict) {
|
|
|
194
202
|
return Object.entries(cookieDict).map(([key, value]) => `${key}=${value}`).join(';');
|
|
195
203
|
}
|
|
196
204
|
export function isIntlHttpCode(httpCode) {
|
|
197
|
-
return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
|
|
205
|
+
return httpCode === undefined || httpCode === null || isNaN(httpCode) || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
|
|
198
206
|
}
|
|
199
207
|
export function isIntlError(e) {
|
|
200
208
|
return e?.message?.toLowerCase?.()?.includes?.("timeout") || e?.message?.toLowerCase?.()?.includes?.("aborted") || e?.message?.toLowerCase?.()?.includes?.("tls connection") || e?.message?.toLowerCase?.()?.includes?.("socket hang") || isIntlHttpCode(e?.response?.status);
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=index.js.map
|
|
209
|
+
}
|
package/{mjs → lib/esm}/node.js
RENAMED
|
@@ -3,7 +3,7 @@ import path from "path";
|
|
|
3
3
|
import crypto from "crypto";
|
|
4
4
|
import { networkInterfaces } from "os";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
|
-
import bcrypt from "
|
|
6
|
+
import bcrypt from "bcryptjs";
|
|
7
7
|
import { CONSTANTS, randomWeighted, splitClear } from "./index.js";
|
|
8
8
|
export function tokenString(length, useNumbers = true, useUppercase = false) {
|
|
9
9
|
const lowercaseChars = CONSTANTS.LOWER_CASE;
|
|
@@ -129,5 +129,4 @@ export function proxyValue(proxies) {
|
|
|
129
129
|
proxy = formatProxy(proxy);
|
|
130
130
|
proxy = proxy.replace("{SESSION}", tokenHex(8));
|
|
131
131
|
return proxy || null;
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=node.js.map
|
|
132
|
+
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melperjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.1.0",
|
|
4
4
|
"description": "Javascript module to use predefined common functions and utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"melperjs",
|
|
7
7
|
"melper js",
|
|
8
8
|
"helper js",
|
|
9
9
|
"helper",
|
|
10
|
-
"
|
|
10
|
+
"utils",
|
|
11
11
|
"common functions",
|
|
12
12
|
"javascript helper",
|
|
13
13
|
"nodejs helper"
|
|
@@ -19,34 +19,37 @@
|
|
|
19
19
|
"author": "Mahmuthan Elbir",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"type": "module",
|
|
22
|
+
"files": [
|
|
23
|
+
"lib/**/*"
|
|
24
|
+
],
|
|
22
25
|
"exports": {
|
|
23
26
|
".": {
|
|
24
|
-
"import": "./
|
|
25
|
-
"require": "./cjs/index.js"
|
|
27
|
+
"import": "./lib/esm/index.js",
|
|
28
|
+
"require": "./lib/cjs/index.js"
|
|
26
29
|
},
|
|
27
30
|
"./node": {
|
|
28
|
-
"import": "./
|
|
29
|
-
"require": "./cjs/node.js"
|
|
31
|
+
"import": "./lib/esm/node.js",
|
|
32
|
+
"require": "./lib/cjs/node.js"
|
|
30
33
|
}
|
|
31
34
|
},
|
|
32
35
|
"scripts": {
|
|
33
|
-
"build
|
|
34
|
-
"build
|
|
35
|
-
"build": "
|
|
36
|
+
"build": "npm run build:esm && npm run build:cjs",
|
|
37
|
+
"build:esm": "cross-env BABEL_ENV=esm babel ./src --out-dir ./lib/esm",
|
|
38
|
+
"build:cjs": "cross-env BABEL_ENV=cjs babel ./src --out-dir ./lib/cjs",
|
|
36
39
|
"test": "node test/script.js"
|
|
37
40
|
},
|
|
38
41
|
"dependencies": {
|
|
39
|
-
"
|
|
42
|
+
"bcryptjs": "^2.4.3",
|
|
40
43
|
"hpagent": "^1.2.0",
|
|
41
44
|
"lodash": "^4.17.21",
|
|
42
45
|
"set-cookie-parser": "^2.6.0",
|
|
43
|
-
"xss": "^1.0.
|
|
46
|
+
"xss": "^1.0.15"
|
|
44
47
|
},
|
|
45
48
|
"devDependencies": {
|
|
46
49
|
"@babel/cli": "^7.23.4",
|
|
47
50
|
"@babel/core": "^7.23.3",
|
|
48
51
|
"@babel/preset-env": "^7.23.3",
|
|
49
|
-
"
|
|
50
|
-
"
|
|
52
|
+
"axios": "^1.6.8",
|
|
53
|
+
"cross-env": "^7.0.3"
|
|
51
54
|
}
|
|
52
55
|
}
|
package/.babelrc
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"env": {
|
|
3
|
-
"development": {
|
|
4
|
-
"presets": [
|
|
5
|
-
[
|
|
6
|
-
"@babel/preset-env",
|
|
7
|
-
{
|
|
8
|
-
"targets": {
|
|
9
|
-
"node": "18"
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
]
|
|
13
|
-
],
|
|
14
|
-
"plugins": [
|
|
15
|
-
]
|
|
16
|
-
},
|
|
17
|
-
"module": {
|
|
18
|
-
"presets": [
|
|
19
|
-
[
|
|
20
|
-
"@babel/preset-env",
|
|
21
|
-
{
|
|
22
|
-
"targets": {
|
|
23
|
-
"node": "18"
|
|
24
|
-
},
|
|
25
|
-
"modules": false
|
|
26
|
-
}
|
|
27
|
-
]
|
|
28
|
-
],
|
|
29
|
-
"plugins": [
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"browser": {
|
|
33
|
-
"presets": [
|
|
34
|
-
[
|
|
35
|
-
"@babel/preset-env",
|
|
36
|
-
{
|
|
37
|
-
"targets": {
|
|
38
|
-
"browsers": "last 2 versions, ie 10-11"
|
|
39
|
-
},
|
|
40
|
-
"modules": false
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
],
|
|
44
|
-
"plugins": [
|
|
45
|
-
],
|
|
46
|
-
"ignore": [
|
|
47
|
-
"./src/node.js"
|
|
48
|
-
]
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"sourceMaps": true
|
|
52
|
-
}
|
package/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_xss","_interopRequireDefault","require","_setCookieParser","_camelCase","_capitalize","_isEmpty","obj","__esModule","default","CONSTANTS","exports","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","ExceptionClass","Error","constructor","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","then","value","clearTimeout","catch","reason","splitClear","rawText","separator","split","map","item","trim","filter","isEmpty","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","camelCase","titleCase","word","capitalize","join","objectStringify","toString","String","limitString","limit","omission","substring","safeString","xss","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","replaceAll","randomWeighted","dict","randomFunc","totalWeight","elements","Object","keys","weights","values","reduce","sum","weight","randomNum","weightSum","cookieDict","res","decodeValues","cookies","setCookieParser","parse","cookie","cookieHeader","entries","isIntlHttpCode","httpCode","undefined","isIntlError","e","includes"],"sources":["../src/index.js"],"sourcesContent":["import xss from \"xss\";\r\nimport setCookieParser from \"set-cookie-parser\";\r\nimport camelCase from \"lodash/camelCase.js\";\r\nimport capitalize from \"lodash/capitalize.js\";\r\nimport isEmpty from \"lodash/isEmpty.js\";\r\n\r\n\r\nexport const CONSTANTS = {\r\n LOWER_CASE: \"abcdefghijklmnopqrstuvwxyz\",\r\n UPPER_CASE: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n HEXADECIMAL: \"0123456789abcdef\",\r\n NUMBERS: \"0123456789\",\r\n};\r\n\r\nexport function Exception(message, response = {}, name = null) {\r\n class ExceptionClass extends Error {\r\n constructor(message, response, name) {\r\n super(message);\r\n response.status = response.status || 400;\r\n this.response = response;\r\n this.name = name ? pascalCase(name) : \"Exception\";\r\n }\r\n }\r\n\r\n return new ExceptionClass(message, response, name);\r\n}\r\n\r\nexport function time() {\r\n return Math.floor(Date.now() / 1000);\r\n}\r\n\r\nexport async function sleepMs(milliseconds) {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds));\r\n}\r\n\r\nexport async function sleep(seconds) {\r\n return await sleepMs(seconds * 1000);\r\n}\r\n\r\nexport function promiseTimeout(milliseconds, promise) {\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('Promise timed out after ' + milliseconds + 'ms'));\r\n }, milliseconds);\r\n\r\n promise\r\n .then(value => {\r\n clearTimeout(timer);\r\n resolve(value);\r\n })\r\n .catch(reason => {\r\n clearTimeout(timer);\r\n reject(reason);\r\n });\r\n });\r\n}\r\n\r\nexport function splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function objectStringify(obj) {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object' && obj[key] !== null) {\r\n objectStringify(obj[key]);\r\n } else {\r\n if (obj[key]?.toString) {\r\n obj[key] = obj[key].toString();\r\n } else {\r\n obj[key] = String(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"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"}
|
package/cjs/node.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["_fs","_interopRequireDefault","require","_path","_crypto","_os","_child_process","_bcrypt","_index","obj","__esModule","default","tokenString","length","useNumbers","useUppercase","lowercaseChars","CONSTANTS","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","crypto","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomWeighted","randomInt","serverIp","interfaces","networkInterfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","execSync","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","fs","mkdirSync","recursive","path","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","bcrypt","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","splitClear","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}${day}.${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
package/mjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["xss","setCookieParser","camelCase","capitalize","isEmpty","CONSTANTS","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","ExceptionClass","Error","constructor","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","then","value","clearTimeout","catch","reason","splitClear","rawText","separator","split","map","item","trim","filter","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleCase","word","join","objectStringify","obj","toString","String","limitString","limit","omission","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","replaceAll","randomWeighted","dict","randomFunc","totalWeight","elements","Object","keys","weights","values","reduce","sum","weight","randomNum","weightSum","cookieDict","res","decodeValues","cookies","parse","cookie","cookieHeader","entries","isIntlHttpCode","httpCode","undefined","isIntlError","e","includes"],"sources":["../src/index.js"],"sourcesContent":["import xss from \"xss\";\r\nimport setCookieParser from \"set-cookie-parser\";\r\nimport camelCase from \"lodash/camelCase.js\";\r\nimport capitalize from \"lodash/capitalize.js\";\r\nimport isEmpty from \"lodash/isEmpty.js\";\r\n\r\n\r\nexport const CONSTANTS = {\r\n LOWER_CASE: \"abcdefghijklmnopqrstuvwxyz\",\r\n UPPER_CASE: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n HEXADECIMAL: \"0123456789abcdef\",\r\n NUMBERS: \"0123456789\",\r\n};\r\n\r\nexport function Exception(message, response = {}, name = null) {\r\n class ExceptionClass extends Error {\r\n constructor(message, response, name) {\r\n super(message);\r\n response.status = response.status || 400;\r\n this.response = response;\r\n this.name = name ? pascalCase(name) : \"Exception\";\r\n }\r\n }\r\n\r\n return new ExceptionClass(message, response, name);\r\n}\r\n\r\nexport function time() {\r\n return Math.floor(Date.now() / 1000);\r\n}\r\n\r\nexport async function sleepMs(milliseconds) {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds));\r\n}\r\n\r\nexport async function sleep(seconds) {\r\n return await sleepMs(seconds * 1000);\r\n}\r\n\r\nexport function promiseTimeout(milliseconds, promise) {\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('Promise timed out after ' + milliseconds + 'ms'));\r\n }, milliseconds);\r\n\r\n promise\r\n .then(value => {\r\n clearTimeout(timer);\r\n resolve(value);\r\n })\r\n .catch(reason => {\r\n clearTimeout(timer);\r\n reject(reason);\r\n });\r\n });\r\n}\r\n\r\nexport function splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function objectStringify(obj) {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object' && obj[key] !== null) {\r\n objectStringify(obj[key]);\r\n } else {\r\n if (obj[key]?.toString) {\r\n obj[key] = obj[key].toString();\r\n } else {\r\n obj[key] = String(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"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"}
|
package/mjs/node.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["fs","path","crypto","networkInterfaces","execSync","bcrypt","CONSTANTS","randomWeighted","splitClear","tokenString","length","useNumbers","useUppercase","lowercaseChars","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomInt","serverIp","interfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","mkdirSync","recursive","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}${day}.${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
package/src/index.js
DELETED
|
@@ -1,263 +0,0 @@
|
|
|
1
|
-
import xss from "xss";
|
|
2
|
-
import setCookieParser from "set-cookie-parser";
|
|
3
|
-
import camelCase from "lodash/camelCase.js";
|
|
4
|
-
import capitalize from "lodash/capitalize.js";
|
|
5
|
-
import isEmpty from "lodash/isEmpty.js";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export const CONSTANTS = {
|
|
9
|
-
LOWER_CASE: "abcdefghijklmnopqrstuvwxyz",
|
|
10
|
-
UPPER_CASE: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
|
11
|
-
HEXADECIMAL: "0123456789abcdef",
|
|
12
|
-
NUMBERS: "0123456789",
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export function Exception(message, response = {}, name = null) {
|
|
16
|
-
class ExceptionClass extends Error {
|
|
17
|
-
constructor(message, response, name) {
|
|
18
|
-
super(message);
|
|
19
|
-
response.status = response.status || 400;
|
|
20
|
-
this.response = response;
|
|
21
|
-
this.name = name ? pascalCase(name) : "Exception";
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return new ExceptionClass(message, response, name);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function time() {
|
|
29
|
-
return Math.floor(Date.now() / 1000);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export async function sleepMs(milliseconds) {
|
|
33
|
-
return new Promise(resolve => setTimeout(resolve, milliseconds));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export async function sleep(seconds) {
|
|
37
|
-
return await sleepMs(seconds * 1000);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function promiseTimeout(milliseconds, promise) {
|
|
41
|
-
return new Promise((resolve, reject) => {
|
|
42
|
-
const timer = setTimeout(() => {
|
|
43
|
-
reject(new Error('Promise timed out after ' + milliseconds + 'ms'));
|
|
44
|
-
}, milliseconds);
|
|
45
|
-
|
|
46
|
-
promise
|
|
47
|
-
.then(value => {
|
|
48
|
-
clearTimeout(timer);
|
|
49
|
-
resolve(value);
|
|
50
|
-
})
|
|
51
|
-
.catch(reason => {
|
|
52
|
-
clearTimeout(timer);
|
|
53
|
-
reject(reason);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function splitClear(rawText, separator = /\r?\n/) {
|
|
59
|
-
return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function findKeyNode(key, node, pair = null) {
|
|
63
|
-
if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {
|
|
64
|
-
return node;
|
|
65
|
-
} else if (typeof node === 'object') {
|
|
66
|
-
for (let index in node) {
|
|
67
|
-
const result = findKeyNode(key, node[index], pair);
|
|
68
|
-
if (result) {
|
|
69
|
-
return result;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export function checkEmpty(value) {
|
|
77
|
-
if (typeof value === "number") {
|
|
78
|
-
return value === 0;
|
|
79
|
-
} else {
|
|
80
|
-
return isEmpty(value);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export function upperCaseFirst(str) {
|
|
85
|
-
str = str || "";
|
|
86
|
-
if (str.length < 1)
|
|
87
|
-
return "";
|
|
88
|
-
return str[0].toUpperCase() + str.slice(1);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export function lowerCaseFirst(str) {
|
|
92
|
-
str = str || "";
|
|
93
|
-
if (str.length < 1)
|
|
94
|
-
return "";
|
|
95
|
-
return str[0].toLowerCase() + str.slice(1);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export function pascalCase(str) {
|
|
99
|
-
return upperCaseFirst(camelCase(str));
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export function titleCase(str) {
|
|
103
|
-
str = str || "";
|
|
104
|
-
return str
|
|
105
|
-
.split(' ')
|
|
106
|
-
.map(word => capitalize(word))
|
|
107
|
-
.join(' ');
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export function objectStringify(obj) {
|
|
111
|
-
for (let key in obj) {
|
|
112
|
-
if (obj.hasOwnProperty(key)) {
|
|
113
|
-
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
114
|
-
objectStringify(obj[key]);
|
|
115
|
-
} else {
|
|
116
|
-
if (obj[key]?.toString) {
|
|
117
|
-
obj[key] = obj[key].toString();
|
|
118
|
-
} else {
|
|
119
|
-
obj[key] = String(obj[key]);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return obj;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export function limitString(str, limit = 35, omission = "...") {
|
|
128
|
-
str = str || "";
|
|
129
|
-
if (str.length <= limit) {
|
|
130
|
-
return str;
|
|
131
|
-
} else {
|
|
132
|
-
return str.substring(0, limit - omission.length) + omission;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export function safeString(str) {
|
|
137
|
-
str = str || "";
|
|
138
|
-
return xss(str, {
|
|
139
|
-
whiteList: {},
|
|
140
|
-
stripIgnoreTag: true,
|
|
141
|
-
stripIgnoreTagBody: ["script"]
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export function randomString(length, useNumbers = true, useUppercase = false) {
|
|
146
|
-
|
|
147
|
-
let characters = CONSTANTS.LOWER_CASE;
|
|
148
|
-
if (useUppercase) characters += CONSTANTS.UPPER_CASE;
|
|
149
|
-
if (useNumbers) characters += CONSTANTS.NUMBERS;
|
|
150
|
-
|
|
151
|
-
let randomString = '';
|
|
152
|
-
for (let i = 0; i < length; i++) {
|
|
153
|
-
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
154
|
-
randomString += characters[randomIndex];
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
return randomString;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export function randomHex(length) {
|
|
161
|
-
let result = '';
|
|
162
|
-
for (let i = 0; i < length; i++) {
|
|
163
|
-
const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);
|
|
164
|
-
result += CONSTANTS.HEXADECIMAL[randomIndex];
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return result;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export function randomInteger(min, max, callback) {
|
|
171
|
-
const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';
|
|
172
|
-
|
|
173
|
-
if (minNotSpecified) {
|
|
174
|
-
callback = max;
|
|
175
|
-
max = min;
|
|
176
|
-
min = 0;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
const isSync = typeof callback === 'undefined';
|
|
180
|
-
|
|
181
|
-
if (typeof min !== 'number' || typeof max !== 'number') {
|
|
182
|
-
throw new Error('min and max must be numerical values');
|
|
183
|
-
}
|
|
184
|
-
if (max <= min) {
|
|
185
|
-
throw new Error('max must be greater than min');
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
const randomNumber = Math.floor(Math.random() * (max - min)) + min;
|
|
189
|
-
|
|
190
|
-
if (isSync) {
|
|
191
|
-
return randomNumber;
|
|
192
|
-
} else {
|
|
193
|
-
if (typeof callback !== 'function') {
|
|
194
|
-
throw new Error('callback must be a function');
|
|
195
|
-
}
|
|
196
|
-
callback(randomNumber);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export function randomUuid(useDashes = true) {
|
|
201
|
-
let d = Date.now();
|
|
202
|
-
const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
203
|
-
const r = (d + Math.random() * 16) % 16 | 0;
|
|
204
|
-
d = Math.floor(d / 16);
|
|
205
|
-
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
206
|
-
});
|
|
207
|
-
return useDashes ? uuid : uuid.replaceAll("-", "");
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
export function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {
|
|
211
|
-
let elements = Object.keys(dict);
|
|
212
|
-
let weights = Object.values(dict);
|
|
213
|
-
|
|
214
|
-
let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);
|
|
215
|
-
|
|
216
|
-
let randomNum = randomFunc(totalWeight);
|
|
217
|
-
let weightSum = 0;
|
|
218
|
-
|
|
219
|
-
for (let i = 0; i < elements.length; i++) {
|
|
220
|
-
weightSum += weights[i];
|
|
221
|
-
if (randomNum <= weightSum) {
|
|
222
|
-
return elements[i];
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export function cookieDict(res, decodeValues = false) {
|
|
228
|
-
let dict = {};
|
|
229
|
-
const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});
|
|
230
|
-
for (let cookie of cookies) {
|
|
231
|
-
dict[cookie.name] = cookie.value;
|
|
232
|
-
}
|
|
233
|
-
return dict;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
export function cookieHeader(cookieDict) {
|
|
237
|
-
return Object.entries(cookieDict)
|
|
238
|
-
.map(([key, value]) => `${key}=${value}`)
|
|
239
|
-
.join(';')
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
export function isIntlHttpCode(httpCode) {
|
|
243
|
-
return (
|
|
244
|
-
httpCode === undefined ||
|
|
245
|
-
httpCode === null ||
|
|
246
|
-
httpCode === 0 ||
|
|
247
|
-
httpCode === 100 ||
|
|
248
|
-
httpCode === 402 ||
|
|
249
|
-
httpCode === 407 ||
|
|
250
|
-
(460 <= httpCode && httpCode < 470) ||
|
|
251
|
-
500 <= httpCode
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
export function isIntlError(e) {
|
|
256
|
-
return (
|
|
257
|
-
e?.message?.toLowerCase?.()?.includes?.("timeout") ||
|
|
258
|
-
e?.message?.toLowerCase?.()?.includes?.("aborted") ||
|
|
259
|
-
e?.message?.toLowerCase?.()?.includes?.("tls connection") ||
|
|
260
|
-
e?.message?.toLowerCase?.()?.includes?.("socket hang") ||
|
|
261
|
-
isIntlHttpCode(e?.response?.status)
|
|
262
|
-
)
|
|
263
|
-
}
|
package/src/node.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import crypto from "crypto";
|
|
4
|
-
import {networkInterfaces} from "os";
|
|
5
|
-
import {execSync} from "child_process";
|
|
6
|
-
|
|
7
|
-
import bcrypt from "bcrypt";
|
|
8
|
-
|
|
9
|
-
import {CONSTANTS, randomWeighted, splitClear} from "./index.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export function tokenString(length, useNumbers = true, useUppercase = false) {
|
|
13
|
-
const lowercaseChars = CONSTANTS.LOWER_CASE;
|
|
14
|
-
const uppercaseChars = CONSTANTS.UPPER_CASE;
|
|
15
|
-
const numbers = CONSTANTS.NUMBERS;
|
|
16
|
-
|
|
17
|
-
let characters = lowercaseChars;
|
|
18
|
-
if (useUppercase) characters += uppercaseChars;
|
|
19
|
-
if (useNumbers) characters += numbers;
|
|
20
|
-
|
|
21
|
-
let randomString = '';
|
|
22
|
-
while (randomString.length < length) {
|
|
23
|
-
const byte = crypto.randomBytes(1)[0];
|
|
24
|
-
const index = byte % characters.length;
|
|
25
|
-
if (byte < (256 - (256 % characters.length))) {
|
|
26
|
-
randomString += characters[index];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return randomString;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function tokenHex(length) {
|
|
34
|
-
return crypto
|
|
35
|
-
.randomBytes(Math.ceil(length / 2))
|
|
36
|
-
.toString('hex')
|
|
37
|
-
.slice(0, length);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function tokenUuid(useDashes = true) {
|
|
41
|
-
const uuid = crypto.randomUUID().toString();
|
|
42
|
-
return useDashes ? uuid : uuid.replaceAll("-", "")
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export function tokenWeighted(dict) {
|
|
46
|
-
return randomWeighted(dict, crypto.randomInt);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export function serverIp() {
|
|
50
|
-
const interfaces = networkInterfaces();
|
|
51
|
-
for (const devName in interfaces) {
|
|
52
|
-
const interfaceValue = interfaces[devName];
|
|
53
|
-
for (let i = 0; i < interfaceValue.length; i++) {
|
|
54
|
-
const alias = interfaceValue[i];
|
|
55
|
-
if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith("192.168.") && !alias.internal)
|
|
56
|
-
return alias.address;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return '127.0.0.1';
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function getVersion() {
|
|
63
|
-
try {
|
|
64
|
-
const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());
|
|
65
|
-
const formatDatePart = (value) => value.toString().padStart(2, '0');
|
|
66
|
-
const year = date.getFullYear().toString().slice(-2);
|
|
67
|
-
const month = formatDatePart(date.getMonth() + 1);
|
|
68
|
-
const day = formatDatePart(date.getDate());
|
|
69
|
-
const hour = formatDatePart(date.getHours());
|
|
70
|
-
const minute = formatDatePart(date.getMinutes());
|
|
71
|
-
return parseFloat(`${year}${month}${day}.${hour}${minute}`);
|
|
72
|
-
} catch {
|
|
73
|
-
return 1.0;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export function createNumDir(mainDirectory) {
|
|
78
|
-
fs.mkdirSync(mainDirectory, {recursive: true});
|
|
79
|
-
for (let i = 0; i <= 9; i++) {
|
|
80
|
-
try {
|
|
81
|
-
fs.mkdirSync(path.join(mainDirectory, i.toString()));
|
|
82
|
-
} catch (e) {
|
|
83
|
-
console.error(`createNumDir:${i}`, e.message);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export function md5(data) {
|
|
89
|
-
return crypto.createHash('md5').update(data).digest("hex");
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function hashBcrypt(plainText, encryptionKey = "") {
|
|
93
|
-
return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export function verifyBcrypt(plainText, hash, encryptionKey = "") {
|
|
97
|
-
return bcrypt.compareSync(plainText + encryptionKey, hash);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export function formatProxy(proxy, protocol = "http") {
|
|
101
|
-
proxy = proxy.trim();
|
|
102
|
-
const splitByProtocol = proxy.split("://");
|
|
103
|
-
if (1 < splitByProtocol.length)
|
|
104
|
-
protocol = splitByProtocol[0];
|
|
105
|
-
proxy = splitByProtocol[splitByProtocol.length - 1];
|
|
106
|
-
if (!proxy.includes("@")) {
|
|
107
|
-
const proxyParts = proxy.split(":");
|
|
108
|
-
if (4 <= proxyParts.length) {
|
|
109
|
-
proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;
|
|
110
|
-
proxyParts.pop();
|
|
111
|
-
proxyParts.pop();
|
|
112
|
-
proxy += proxyParts.join(":");
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
const proxyParts = proxy.split(':');
|
|
116
|
-
const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);
|
|
117
|
-
const proxyStart = proxyParts[proxyParts.length - 2];
|
|
118
|
-
if (!proxyStart.includes(".")) {
|
|
119
|
-
proxyParts.pop();
|
|
120
|
-
proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();
|
|
121
|
-
}
|
|
122
|
-
return protocol + "://" + proxyParts.join(':');
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export function proxyObject(...args) {
|
|
126
|
-
let proxy = formatProxy(...args);
|
|
127
|
-
const splitByProtocol = proxy.split('://');
|
|
128
|
-
const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');
|
|
129
|
-
const splitByConn = splitById[splitById.length - 1].split(':');
|
|
130
|
-
proxy = {
|
|
131
|
-
protocol: splitByProtocol[0],
|
|
132
|
-
host: splitByConn[0],
|
|
133
|
-
port: parseInt(splitByConn[1]),
|
|
134
|
-
};
|
|
135
|
-
if (1 < splitById.length) {
|
|
136
|
-
const splitByAuth = splitById[0].split(':');
|
|
137
|
-
proxy.auth = {
|
|
138
|
-
username: splitByAuth[0],
|
|
139
|
-
password: splitByAuth[1]
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
return proxy;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export function proxyValue(proxies) {
|
|
146
|
-
let proxy;
|
|
147
|
-
proxies = proxies || "";
|
|
148
|
-
proxies = splitClear(proxies);
|
|
149
|
-
if (proxies.length < 1)
|
|
150
|
-
return null;
|
|
151
|
-
proxy = proxies[crypto.randomInt(0, proxies.length)];
|
|
152
|
-
proxy = formatProxy(proxy);
|
|
153
|
-
proxy = proxy.replace("{SESSION}", tokenHex(8));
|
|
154
|
-
return proxy || null;
|
|
155
|
-
}
|
package/test/script.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import axios from "axios"
|
|
2
|
-
import * as helper from "../src/index.js";
|
|
3
|
-
import * as nodeHelper from "../src/node.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
(async () => {
|
|
7
|
-
console.log(helper.CONSTANTS);
|
|
8
|
-
console.log(helper.Exception("something went wrong", {status: 400}, "bad request error"));
|
|
9
|
-
console.log(helper.time());
|
|
10
|
-
await helper.sleepMs(1000);
|
|
11
|
-
console.log(helper.time());
|
|
12
|
-
await helper.sleep(1);
|
|
13
|
-
console.log(helper.time());
|
|
14
|
-
try {
|
|
15
|
-
await helper.promiseTimeout(1000, helper.sleepMs(2000));
|
|
16
|
-
} catch (e) {
|
|
17
|
-
console.error(e.message);
|
|
18
|
-
console.log("Timeout, Internal Error ?", helper.isIntlError(e));
|
|
19
|
-
}
|
|
20
|
-
console.log(helper.splitClear(`
|
|
21
|
-
2.satır
|
|
22
|
-
|
|
23
|
-
4.satır
|
|
24
|
-
`))
|
|
25
|
-
console.log(helper.findKeyNode("c", {
|
|
26
|
-
a: {
|
|
27
|
-
b: {
|
|
28
|
-
x: 1,
|
|
29
|
-
y: 2,
|
|
30
|
-
c: {
|
|
31
|
-
d: true
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}));
|
|
36
|
-
console.log("'' empty ?", helper.checkEmpty(''));
|
|
37
|
-
console.log("1 empty ?", helper.checkEmpty(1));
|
|
38
|
-
console.log("0 empty ?", helper.checkEmpty(1));
|
|
39
|
-
console.log("[] empty ?", helper.checkEmpty([]));
|
|
40
|
-
console.log(helper.pascalCase("pascal case"));
|
|
41
|
-
console.log(helper.upperCaseFirst("first letter upper"));
|
|
42
|
-
console.log(helper.lowerCaseFirst("First Letter Lower"));
|
|
43
|
-
console.log(helper.titleCase("THIS mUsT be Title"));
|
|
44
|
-
console.log(helper.objectStringify({
|
|
45
|
-
a: "hello",
|
|
46
|
-
b: 1,
|
|
47
|
-
c: undefined,
|
|
48
|
-
d: null,
|
|
49
|
-
e: {
|
|
50
|
-
ea: 2
|
|
51
|
-
},
|
|
52
|
-
f: [3,4,5],
|
|
53
|
-
g: false
|
|
54
|
-
}));
|
|
55
|
-
console.log(helper.limitString("LONG TEXT", 7));
|
|
56
|
-
console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
|
|
57
|
-
console.log(helper.randomString(32, true, true));
|
|
58
|
-
console.log(helper.randomHex(8));
|
|
59
|
-
console.log(helper.randomInteger(100, 1000));
|
|
60
|
-
console.log(helper.randomUuid(true));
|
|
61
|
-
console.log(helper.randomWeighted({strongProbability: 1000, lowProbability: 1}));
|
|
62
|
-
console.log(nodeHelper.tokenString(32, true, true));
|
|
63
|
-
console.log(nodeHelper.tokenHex(8));
|
|
64
|
-
console.log(nodeHelper.tokenUuid(true));
|
|
65
|
-
console.log(nodeHelper.tokenWeighted({strongProbability: 1000, lowProbability: 1}));
|
|
66
|
-
console.log(nodeHelper.md5("data"));
|
|
67
|
-
const password = nodeHelper.hashBcrypt("plain", "encryptionKey");
|
|
68
|
-
console.log(password)
|
|
69
|
-
console.log("passwordHash verified ?", nodeHelper.verifyBcrypt("plain", password, "encryptionKey"));
|
|
70
|
-
const cookies = helper.cookieDict(await axios.get("https://google.com"));
|
|
71
|
-
console.log(cookies);
|
|
72
|
-
console.log(helper.cookieHeader(cookies));
|
|
73
|
-
const proxy = nodeHelper.formatProxy("127.0.0.1:8080:id:pw-{SESSION}");
|
|
74
|
-
console.log(proxy);
|
|
75
|
-
console.log(nodeHelper.proxyObject(proxy));
|
|
76
|
-
console.log(nodeHelper.proxyValue(proxy));
|
|
77
|
-
console.log(nodeHelper.serverIp());
|
|
78
|
-
console.log("HTTP CODE: 400 (Bad Request) ?", helper.isIntlHttpCode(401));
|
|
79
|
-
console.log("HTTP CODE: 407 (Failed Proxy Auth) ?", helper.isIntlHttpCode(407));
|
|
80
|
-
nodeHelper.createNumDir("test");
|
|
81
|
-
console.log("VERSIONED BY .GIT", "v" + nodeHelper.getVersion());
|
|
82
|
-
})();
|
/package/{LISENCE → LICENSE}
RENAMED
|
File without changes
|
|
File without changes
|