melperjs 2.0.1 → 4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","Array","isArray","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","err","step","_e2","minLen","_arrayLikeToArray","toString","from","test","len","arr2","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","undefined","xss","camelCase","capitalize","isEmpty","setCookieParser","CONSTANTS","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","status","pascalCase","time","Math","floor","Date","now","sleepMs","_x","_sleepMs","_callee","milliseconds","_callee$","_context","setTimeout","sleep","_x2","_sleep","_callee2","seconds","_callee2$","_context2","promiseTimeout","promise","timer","clearTimeout","reason","splitLines","text","split","filter","item","checkEmpty","map","trim","findKeyNode","node","pair","index","result","str","upperCaseFirst","toUpperCase","lowerCaseFirst","toLowerCase","titleString","word","join","limitString","limit","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","randomIndex","random","randomHex","randomUuid","useDashes","uuid","replace","replaceAll","randomWeighted","dict","randomFunc","totalWeight","elements","weights","reduce","sum","weight","randomNum","weightSum","cookieDict","res","decodeValues","cookies","parse","_iterator","_step","cookie","cookieHeader","entries","_ref","_ref2","concat","isIntlHttpCode","httpCode","isIntlError","_e$message","_e$message$toLowerCas","_e$message$toLowerCas2","_e$message2","_e$message2$toLowerCa","_e$message2$toLowerCa2","_e$message3","_e$message3$toLowerCa","_e$message3$toLowerCa2","_e$message4","_e$message4$toLowerCa","_e$message4$toLowerCa2","_e$response","includes"],"sources":["../src/index.js"],"sourcesContent":["import xss from \"xss\";\r\nimport camelCase from \"lodash/camelCase.js\";\r\nimport capitalize from \"lodash/capitalize.js\";\r\nimport isEmpty from \"lodash/isEmpty.js\";\r\nimport setCookieParser from \"set-cookie-parser\";\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 response.status = response.status || 400;\r\n return {\r\n name: pascalCase(name),\r\n message,\r\n response,\r\n }\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 splitLines(text) {\r\n return text.split(/\\r?\\n/).filter(item => !checkEmpty(item)).map(item => item.trim());\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 pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function titleString(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 limitString(str, limit = 35) {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - 3) + \"...\";\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 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 === 402 ||\r\n httpCode === 407 ||\r\n httpCode === 466 ||\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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"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
package/package.json CHANGED
@@ -1,43 +1,43 @@
1
- {
2
- "name": "melperjs",
3
- "version": "2.0.1",
4
- "description": "Nodejs module to use predefined common functions and utilities",
5
- "keywords": [
6
- "helper",
7
- "mixins",
8
- "lodash",
9
- "common functions",
10
- "javascript helper"
11
- ],
12
- "repository": {
13
- "type": "git",
14
- "url": "https://github.com/mahelbir/melperjs.git"
15
- },
16
- "author": "Mahmuthan Elbir",
17
- "license": "MIT",
18
- "exports": {
19
- ".": "./lib/index.js",
20
- "./node": "./lib/node.js"
21
- },
22
- "scripts": {
23
- "build": "babel src --out-dir lib",
24
- "test": "node test/script.js"
25
- },
26
- "dependencies": {
27
- "axios": "^1.6.2",
28
- "bcrypt": "^5.1.1",
29
- "hpagent": "^1.2.0",
30
- "lodash": "^4.17.21",
31
- "set-cookie-parser": "^2.6.0",
32
- "xss": "^1.0.14"
33
- },
34
- "devDependencies": {
35
- "@babel/cli": "^7.23.4",
36
- "@babel/core": "^7.23.3",
37
- "@babel/preset-env": "^7.23.3",
38
- "babel-loader": "^9.1.3",
39
- "terser-webpack-plugin": "^5.3.9",
40
- "webpack": "^5.89.0",
41
- "webpack-cli": "^5.1.4"
42
- }
43
- }
1
+ {
2
+ "name": "melperjs",
3
+ "version": "4.0.0",
4
+ "description": "Javascript module to use predefined common functions and utilities",
5
+ "keywords": [
6
+ "helper",
7
+ "mixins",
8
+ "common functions",
9
+ "javascript helper"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/mahelbir/melperjs.git"
14
+ },
15
+ "author": "Mahmuthan Elbir",
16
+ "license": "MIT",
17
+ "type": "module",
18
+ "exports": {
19
+ ".": {
20
+ "import": "./mjs/index.js",
21
+ "require": "./cjs/index.js"
22
+ }
23
+ },
24
+ "scripts": {
25
+ "build-module": "cross-env BABEL_ENV=module babel ./src --out-dir ./mjs",
26
+ "build-node": "babel ./src --out-dir ./cjs",
27
+ "build": "npm run build-module && npm run build-node",
28
+ "test": "node test/script.js"
29
+ },
30
+ "dependencies": {
31
+ "lodash": "^4.17.21",
32
+ "set-cookie-parser": "^2.6.0",
33
+ "xss": "^1.0.14"
34
+ },
35
+ "devDependencies": {
36
+ "@babel/cli": "^7.23.4",
37
+ "@babel/core": "^7.23.3",
38
+ "@babel/preset-env": "^7.23.3",
39
+ "babel-preset-env": "^1.7.0",
40
+ "cross-env": "^7.0.3",
41
+ "axios": "^1.6.2"
42
+ }
43
+ }
package/src/index.js CHANGED
@@ -1,13 +1,23 @@
1
- import * as _ from "lodash";
2
1
  import xss from "xss";
3
- import bcrypt from "bcrypt";
2
+ import camelCase from "lodash/camelCase.js";
3
+ import capitalize from "lodash/capitalize.js";
4
+ import isEmpty from "lodash/isEmpty.js";
4
5
  import setCookieParser from "set-cookie-parser";
5
6
 
6
- export function Exception(message, response = {}) {
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) {
7
16
  response.status = response.status || 400;
8
17
  return {
9
- message: message,
10
- response: response
18
+ name: pascalCase(name),
19
+ message,
20
+ response,
11
21
  }
12
22
  }
13
23
 
@@ -41,6 +51,10 @@ export function promiseTimeout(milliseconds, promise) {
41
51
  });
42
52
  }
43
53
 
54
+ export function splitLines(text) {
55
+ return text.split(/\r?\n/).filter(item => !checkEmpty(item)).map(item => item.trim());
56
+ }
57
+
44
58
  export function findKeyNode(key, node, pair = null) {
45
59
  if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {
46
60
  return node;
@@ -55,14 +69,36 @@ export function findKeyNode(key, node, pair = null) {
55
69
  return null;
56
70
  }
57
71
 
58
- export function isEmpty(value) {
72
+ export function checkEmpty(value) {
59
73
  if (typeof value === "number") {
60
74
  return value === 0;
61
75
  } else {
62
- return _.isEmpty(value);
76
+ return isEmpty(value);
63
77
  }
64
78
  }
65
79
 
80
+ export function pascalCase(str) {
81
+ return upperCaseFirst(camelCase(str));
82
+ }
83
+
84
+ export function upperCaseFirst(str) {
85
+ str = str || "";
86
+ return str[0].toUpperCase() + str.slice(1);
87
+ }
88
+
89
+ export function lowerCaseFirst(str) {
90
+ str = str || "";
91
+ return str[0].toLowerCase() + str.slice(1);
92
+ }
93
+
94
+ export function titleString(str) {
95
+ str = str || "";
96
+ return str
97
+ .split(' ')
98
+ .map(word => capitalize(word))
99
+ .join(' ');
100
+ }
101
+
66
102
  export function limitString(str, limit = 35) {
67
103
  str = str || "";
68
104
  if (str.length <= limit) {
@@ -72,8 +108,9 @@ export function limitString(str, limit = 35) {
72
108
  }
73
109
  }
74
110
 
75
- export function safeString(source) {
76
- return xss(source, {
111
+ export function safeString(str) {
112
+ str = str || "";
113
+ return xss(str, {
77
114
  whiteList: {},
78
115
  stripIgnoreTag: true,
79
116
  stripIgnoreTagBody: ["script"]
@@ -81,13 +118,10 @@ export function safeString(source) {
81
118
  }
82
119
 
83
120
  export function randomString(length, useNumbers = true, useUppercase = false) {
84
- const lowercaseChars = 'abcdefghijklmnopqrstuvwxyz';
85
- const uppercaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
86
- const numbers = '0123456789';
87
-
88
- let characters = lowercaseChars;
89
- if (useUppercase) characters += uppercaseChars;
90
- if (useNumbers) characters += numbers;
121
+
122
+ let characters = CONSTANTS.LOWER_CASE;
123
+ if (useUppercase) characters += CONSTANTS.UPPER_CASE;
124
+ if (useNumbers) characters += CONSTANTS.NUMBERS;
91
125
 
92
126
  let randomString = '';
93
127
  for (let i = 0; i < length; i++) {
@@ -100,11 +134,9 @@ export function randomString(length, useNumbers = true, useUppercase = false) {
100
134
 
101
135
  export function randomHex(length) {
102
136
  let result = '';
103
- const characters = '0123456789abcdef';
104
-
105
137
  for (let i = 0; i < length; i++) {
106
- const randomIndex = Math.floor(Math.random() * characters.length);
107
- result += characters[randomIndex];
138
+ const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);
139
+ result += CONSTANTS.HEXADECIMAL[randomIndex];
108
140
  }
109
141
 
110
142
  return result;
@@ -137,14 +169,6 @@ export function randomWeighted(dict, randomFunc = (totalWeight) => Math.random()
137
169
  }
138
170
  }
139
171
 
140
- export function hashBcrypt(plainText) {
141
- return bcrypt.hashSync(plainText, bcrypt.genSaltSync(10));
142
- }
143
-
144
- export function verifyBcrypt(plainText, hash) {
145
- return bcrypt.compareSync(plainText, hash);
146
- }
147
-
148
172
  export function cookieDict(res, decodeValues = false) {
149
173
  let dict = {};
150
174
  const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});
@@ -160,7 +184,7 @@ export function cookieHeader(cookieDict) {
160
184
  .join(';')
161
185
  }
162
186
 
163
- export function foreignHttpError(httpCode) {
187
+ export function isIntlHttpCode(httpCode) {
164
188
  return (
165
189
  httpCode === undefined ||
166
190
  httpCode === null ||
@@ -170,4 +194,14 @@ export function foreignHttpError(httpCode) {
170
194
  httpCode === 466 ||
171
195
  500 <= httpCode
172
196
  );
197
+ }
198
+
199
+ export function isIntlError(e) {
200
+ return (
201
+ e?.message?.toLowerCase?.()?.includes?.("timeout") ||
202
+ e?.message?.toLowerCase?.()?.includes?.("aborted") ||
203
+ e?.message?.toLowerCase?.()?.includes?.("tls connection") ||
204
+ e?.message?.toLowerCase?.()?.includes?.("socket hang") ||
205
+ isIntlHttpCode(e?.response?.status)
206
+ )
173
207
  }
package/test/script.js CHANGED
@@ -1,21 +1,36 @@
1
- import * as helper from "../src/index.js"
2
- import * as nodeHelper from "../src/node.js"
3
1
  import axios from "axios"
2
+ import {
3
+ checkEmpty, cookieDict, cookieHeader,
4
+ Exception,
5
+ findKeyNode, isIntlError, isIntlHttpCode, limitString, lowerCaseFirst,
6
+ promiseTimeout, randomHex, randomString, randomUuid, randomWeighted, safeString,
7
+ sleep,
8
+ sleepMs,
9
+ splitLines,
10
+ time, titleString,
11
+ upperCaseFirst
12
+ } from "../src/index.js";
4
13
 
5
14
 
6
15
  (async () => {
7
- console.log(helper.Exception("something went wrong"));
8
- console.log(helper.time());
9
- await helper.sleepMs(1000);
10
- console.log(helper.time());
11
- await helper.sleep(1);
12
- console.log(helper.time());
16
+ console.log(Exception("something went wrong", {status: 500}, "axios error"));
17
+ console.log(time());
18
+ await sleepMs(1000);
19
+ console.log(time());
20
+ await sleep(1);
21
+ console.log(time());
13
22
  try {
14
- await helper.promiseTimeout(1000, helper.sleepMs(2000));
23
+ await promiseTimeout(1000, sleepMs(2000));
15
24
  } catch (e) {
16
25
  console.error(e.message);
26
+ console.log("Internal Error", isIntlError(e));
17
27
  }
18
- console.log(helper.findKeyNode("c", {
28
+ console.log(splitLines(`1.satır
29
+
30
+ 3.satır
31
+ 4.satır
32
+ `))
33
+ console.log(findKeyNode("c", {
19
34
  a: {
20
35
  b: {
21
36
  x: 1,
@@ -26,33 +41,21 @@ import axios from "axios"
26
41
  }
27
42
  }
28
43
  }));
29
- console.log("1 empty", helper.isEmpty(1));
30
- console.log("[] empty", helper.isEmpty([]));
31
- console.log(helper.limitString("LONG TEXT", 7));
32
- console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
33
- console.log(helper.randomString(32, true, true));
34
- console.log(helper.randomHex(8));
35
- console.log(helper.randomUuid(true));
36
- console.log(helper.randomWeighted({strongProbability: 1000, lowProbability: 1}));
37
- console.log(nodeHelper.tokenString(32, true, true));
38
- console.log(nodeHelper.tokenHex(8));
39
- console.log(nodeHelper.tokenUuid(true));
40
- console.log(nodeHelper.tokenWeighted({strongProbability: 1000, lowProbability: 1}));
41
- console.log(nodeHelper.md5("data"));
42
- const password = helper.hashBcrypt("plain");
43
- console.log(password)
44
- console.log("passwordHash", helper.verifyBcrypt("plain", password));
45
- const cookies = helper.cookieDict(await axios.get("https://google.com"));
44
+ console.log("str empty", checkEmpty(""));
45
+ console.log("1 empty", checkEmpty(1));
46
+ console.log("[] empty", checkEmpty([]));
47
+ console.log(upperCaseFirst("first letter upper"));
48
+ console.log(lowerCaseFirst("First Letter Lower"));
49
+ console.log(titleString("THIS mUsT be Title"));
50
+ console.log(limitString("LONG TEXT", 7));
51
+ console.log(safeString("<strong>SAFE TEXT</strong>"));
52
+ console.log(randomString(32, true, true));
53
+ console.log(randomHex(8));
54
+ console.log(randomUuid(true));
55
+ console.log(randomWeighted({strongProbability: 1000, lowProbability: 1}));
56
+ const cookies = cookieDict(await axios.get("https://google.com"));
46
57
  console.log(cookies);
47
- console.log(helper.cookieHeader(cookies));
48
- const proxy = nodeHelper.formatProxy("127.0.0.1:8080:id:pw-{SESSION}");
49
- console.log(proxy);
50
- console.log(nodeHelper.proxyObject(proxy));
51
- console.log(await nodeHelper.proxify({mode: 4, proxy}));
52
- console.log(nodeHelper.serverIp());
53
- console.log("HTTP CODE: 401 FOREIGN", helper.foreignHttpError(401));
54
- console.log("HTTP CODE: 407 FOREIGN (Failed Proxy Auth)", helper.foreignHttpError(407));
55
- nodeHelper.createNumDir("test");
56
- nodeHelper.createDir("test");
57
- console.log("VERSIONED BY .GIT", "v" + nodeHelper.getVersion());
58
+ console.log(cookieHeader(cookies));
59
+ console.log("HTTP CODE: 400 (Bad Request)", isIntlHttpCode(400));
60
+ console.log("HTTP CODE: 407 (Failed Proxy Auth)", isIntlHttpCode(407));
58
61
  })();
package/lib/node.js DELETED
@@ -1,193 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createDir = createDir;
7
- exports.createNumDir = createNumDir;
8
- exports.formatProxy = formatProxy;
9
- exports.getVersion = getVersion;
10
- exports.md5 = md5;
11
- exports.proxify = proxify;
12
- exports.proxyObject = proxyObject;
13
- exports.serverIp = serverIp;
14
- exports.tokenHex = tokenHex;
15
- exports.tokenString = tokenString;
16
- exports.tokenUuid = tokenUuid;
17
- exports.tokenWeighted = tokenWeighted;
18
- var _fs = _interopRequireDefault(require("fs"));
19
- var _path = _interopRequireDefault(require("path"));
20
- var _crypto = _interopRequireDefault(require("crypto"));
21
- var _os = require("os");
22
- var _child_process = require("child_process");
23
- var _axios = _interopRequireDefault(require("axios"));
24
- var _hpagent = require("hpagent");
25
- var _index = require("./index.js");
26
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
- function tokenString(length, useNumbers = true, useUppercase = false) {
28
- const lowercaseChars = 'abcdefghijklmnopqrstuvwxyz';
29
- const uppercaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
30
- const numbers = '0123456789';
31
- let characters = lowercaseChars;
32
- if (useUppercase) characters += uppercaseChars;
33
- if (useNumbers) characters += numbers;
34
- let randomString = '';
35
- while (randomString.length < length) {
36
- const byte = _crypto.default.randomBytes(1)[0];
37
- const index = byte % characters.length;
38
- if (byte < 256 - 256 % characters.length) {
39
- randomString += characters[index];
40
- }
41
- }
42
- return randomString;
43
- }
44
- function tokenHex(length) {
45
- return _crypto.default.randomBytes(Math.ceil(length / 2)).toString('hex').slice(0, length);
46
- }
47
- function tokenUuid(useDashes = true) {
48
- const uuid = _crypto.default.randomUUID().toString();
49
- return useDashes ? uuid : uuid.replaceAll("-", "");
50
- }
51
- function tokenWeighted(dict) {
52
- return (0, _index.randomWeighted)(dict, _crypto.default.randomInt);
53
- }
54
- function serverIp() {
55
- const interfaces = (0, _os.networkInterfaces)();
56
- for (const devName in interfaces) {
57
- const interfaceValue = interfaces[devName];
58
- for (let i = 0; i < interfaceValue.length; i++) {
59
- const alias = interfaceValue[i];
60
- if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith("192.168.") && !alias.internal) return alias.address;
61
- }
62
- }
63
- return '127.0.0.1';
64
- }
65
- function getVersion() {
66
- try {
67
- const date = new Date((0, _child_process.execSync)('git show -s --format=%ci HEAD').toString().trim());
68
- const formatDatePart = value => value.toString().padStart(2, '0');
69
- const year = date.getFullYear().toString().slice(-2);
70
- const month = formatDatePart(date.getMonth() + 1);
71
- const day = formatDatePart(date.getDate());
72
- const hour = formatDatePart(date.getHours());
73
- const minute = formatDatePart(date.getMinutes());
74
- return parseFloat(`${year}${month}.${day}${hour}${minute}`);
75
- } catch {
76
- return 1.0;
77
- }
78
- }
79
- function createDir(directory) {
80
- if (!_fs.default.existsSync(directory)) {
81
- _fs.default.mkdirSync(directory, {
82
- recursive: true
83
- });
84
- return true;
85
- }
86
- return false;
87
- }
88
- function createNumDir(mainDirectory) {
89
- createDir(mainDirectory);
90
- for (let i = 0; i <= 9; i++) {
91
- try {
92
- createDir(_path.default.join(mainDirectory, i.toString()));
93
- } catch (e) {
94
- console.error(`createNumDir:${i}`, e.message);
95
- }
96
- }
97
- }
98
- function md5(data) {
99
- return _crypto.default.createHash('md5').update(data).digest("hex");
100
- }
101
- function formatProxy(proxy, protocol = "http") {
102
- proxy = proxy.trim();
103
- const splitByProtocol = proxy.split("://");
104
- if (1 < splitByProtocol.length) 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.default.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();
121
- }
122
- return protocol + "://" + proxyParts.join(':');
123
- }
124
- function proxyObject(...args) {
125
- let proxy = formatProxy(...args);
126
- const splitByProtocol = proxy.split('://');
127
- const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');
128
- const splitByConn = splitById[splitById.length - 1].split(':');
129
- proxy = {
130
- protocol: splitByProtocol[0],
131
- host: splitByConn[0],
132
- port: parseInt(splitByConn[1])
133
- };
134
- if (1 < splitById.length) {
135
- const splitByAuth = splitById[0].split(':');
136
- proxy.auth = {
137
- username: splitByAuth[0],
138
- password: splitByAuth[1]
139
- };
140
- }
141
- return proxy;
142
- }
143
- async function proxify(proxyConfig, callback = formatProxy) {
144
- proxyConfig = proxyConfig || {};
145
- const timeout = 7000;
146
- if (proxyConfig.mode === 1) {
147
- return callback(proxyConfig.proxy);
148
- } else if (proxyConfig.mode === 2) {
149
- const proxy = callback(proxyConfig.proxy);
150
- try {
151
- await _axios.default.get(proxyConfig.resetApi, {
152
- timeout
153
- });
154
- } catch {
155
- return false;
156
- }
157
- await (0, _index.sleep)(5);
158
- for (let i = 0; i < 5; i++) {
159
- try {
160
- const res = await _axios.default.get("https://api64.ipify.org", {
161
- timeout,
162
- httpsAgent: new _hpagent.HttpsProxyAgent({
163
- proxy,
164
- timeout: 7000
165
- })
166
- });
167
- if (res.status === 200) return proxy;
168
- } catch {
169
- await (0, _index.sleep)(3);
170
- }
171
- }
172
- } else if (proxyConfig.mode === 3) {
173
- try {
174
- const res = await _axios.default.get(proxyConfig.resetApi, {
175
- timeout
176
- });
177
- if (res.status === 200) return callback(proxyConfig.proxy);
178
- } catch {
179
- return false;
180
- }
181
- } else if (proxyConfig.mode === 4) {
182
- return callback(proxyConfig.proxy).replace("{SESSION}", tokenHex(8));
183
- } else if (proxyConfig.mode === 5) {
184
- try {
185
- const lines = proxyConfig.proxy.split("\n");
186
- const line = lines[_crypto.default.randomInt(0, lines.length)];
187
- return callback(line);
188
- } catch {
189
- return false;
190
- }
191
- }
192
- return null;
193
- }