melperjs 5.0.0 → 6.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 CHANGED
@@ -57,11 +57,12 @@ const axios = require("axios");
57
57
  console.log(helper.pascalCase("pascal case"));
58
58
  console.log(helper.upperCaseFirst("first letter upper"));
59
59
  console.log(helper.lowerCaseFirst("First Letter Lower"));
60
- console.log(helper.titleString("THIS mUsT be Title"));
60
+ console.log(helper.titleCase("THIS mUsT be Title"));
61
61
  console.log(helper.limitString("LONG TEXT", 7));
62
62
  console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
63
63
  console.log(helper.randomString(32, true, true));
64
64
  console.log(helper.randomHex(8));
65
+ console.log(helper.randomInteger(100, 1000));
65
66
  console.log(helper.randomUuid(true));
66
67
  console.log(helper.randomWeighted({strongProbability: 1000, lowProbability: 1}));
67
68
  console.log(nodeHelper.tokenString(32, true, true));
@@ -78,7 +79,7 @@ const axios = require("axios");
78
79
  const proxy = nodeHelper.formatProxy("127.0.0.1:8080:id:pw-{SESSION}");
79
80
  console.log(proxy);
80
81
  console.log(nodeHelper.proxyObject(proxy));
81
- console.log(await nodeHelper.proxify({mode: 4, proxy}));
82
+ console.log(nodeHelper.proxyValue(proxy));
82
83
  console.log(nodeHelper.serverIp());
83
84
  console.log("HTTP CODE: 400 (Bad Request) ?", helper.isIntlHttpCode(401));
84
85
  console.log("HTTP CODE: 407 (Failed Proxy Auth) ?", helper.isIntlHttpCode(407));
@@ -117,6 +118,7 @@ LONG...
117
118
  SAFE TEXT
118
119
  sP3jTNwe1rRrW1TVAPb4HAXNFjJB2mWb
119
120
  f70f7212
121
+ 376
120
122
  f07fe6b1-46d5-4f30-8138-f263f4916e65
121
123
  strongProbability
122
124
  JT4tXSI7YdIYDGbzLmHkItZ32vgi5aos
package/cjs/index.js CHANGED
@@ -16,6 +16,7 @@ exports.lowerCaseFirst = lowerCaseFirst;
16
16
  exports.pascalCase = pascalCase;
17
17
  exports.promiseTimeout = promiseTimeout;
18
18
  exports.randomHex = randomHex;
19
+ exports.randomInteger = randomInteger;
19
20
  exports.randomString = randomString;
20
21
  exports.randomUuid = randomUuid;
21
22
  exports.randomWeighted = randomWeighted;
@@ -24,13 +25,13 @@ exports.sleep = sleep;
24
25
  exports.sleepMs = sleepMs;
25
26
  exports.splitLines = splitLines;
26
27
  exports.time = time;
27
- exports.titleString = titleString;
28
+ exports.titleCase = titleCase;
28
29
  exports.upperCaseFirst = upperCaseFirst;
29
30
  var _xss = _interopRequireDefault(require("xss"));
31
+ var _setCookieParser = _interopRequireDefault(require("set-cookie-parser"));
30
32
  var _camelCase = _interopRequireDefault(require("lodash/camelCase.js"));
31
33
  var _capitalize = _interopRequireDefault(require("lodash/capitalize.js"));
32
34
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty.js"));
33
- var _setCookieParser = _interopRequireDefault(require("set-cookie-parser"));
34
35
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
36
  const CONSTANTS = exports.CONSTANTS = {
36
37
  LOWER_CASE: "abcdefghijklmnopqrstuvwxyz",
@@ -70,7 +71,7 @@ function promiseTimeout(milliseconds, promise) {
70
71
  });
71
72
  }
72
73
  function splitLines(text) {
73
- return text.split(/\r?\n/).filter(item => !checkEmpty(item)).map(item => item.trim());
74
+ return text.split(/\r?\n/).map(item => item.trim()).filter(item => !(0, _isEmpty.default)(item));
74
75
  }
75
76
  function findKeyNode(key, node, pair = null) {
76
77
  if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {
@@ -103,7 +104,7 @@ function lowerCaseFirst(str) {
103
104
  str = str || "";
104
105
  return str[0].toLowerCase() + str.slice(1);
105
106
  }
106
- function titleString(str) {
107
+ function titleCase(str) {
107
108
  str = str || "";
108
109
  return str.split(' ').map(word => (0, _capitalize.default)(word)).join(' ');
109
110
  }
@@ -142,6 +143,30 @@ function randomHex(length) {
142
143
  }
143
144
  return result;
144
145
  }
146
+ function randomInteger(min, max, callback) {
147
+ const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';
148
+ if (minNotSpecified) {
149
+ callback = max;
150
+ max = min;
151
+ min = 0;
152
+ }
153
+ const isSync = typeof callback === 'undefined';
154
+ if (typeof min !== 'number' || typeof max !== 'number') {
155
+ throw new Error('min and max must be numerical values');
156
+ }
157
+ if (max <= min) {
158
+ throw new Error('max must be greater than min');
159
+ }
160
+ const randomNumber = Math.floor(Math.random() * (max - min)) + min;
161
+ if (isSync) {
162
+ return randomNumber;
163
+ } else {
164
+ if (typeof callback !== 'function') {
165
+ throw new Error('callback must be a function');
166
+ }
167
+ callback(randomNumber);
168
+ }
169
+ }
145
170
  function randomUuid(useDashes = true) {
146
171
  let d = Date.now();
147
172
  const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
@@ -178,7 +203,7 @@ function cookieHeader(cookieDict) {
178
203
  return Object.entries(cookieDict).map(([key, value]) => `${key}=${value}`).join(';');
179
204
  }
180
205
  function isIntlHttpCode(httpCode) {
181
- return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 402 || httpCode === 407 || httpCode === 466 || 500 <= httpCode;
206
+ return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
182
207
  }
183
208
  function isIntlError(e) {
184
209
  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);
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_xss","_interopRequireDefault","require","_camelCase","_capitalize","_isEmpty","_setCookieParser","obj","__esModule","default","CONSTANTS","exports","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","Error","then","value","clearTimeout","catch","reason","splitLines","text","split","filter","item","checkEmpty","map","trim","findKeyNode","key","node","pair","hasOwnProperty","index","result","isEmpty","str","upperCaseFirst","camelCase","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleString","word","capitalize","join","limitString","limit","length","substring","safeString","xss","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomUuid","useDashes","d","uuid","replace","c","r","toString","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 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,gBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGzC,MAAMG,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACrBE,UAAU,EAAE,4BAA4B;EACxCC,UAAU,EAAE,4BAA4B;EACxCC,WAAW,EAAE,kBAAkB;EAC/BC,OAAO,EAAE;AACb,CAAC;AAEM,SAASC,SAASA,CAACC,OAAO,EAAEC,QAAQ,GAAG,CAAC,CAAC,EAAEC,IAAI,GAAG,IAAI,EAAE;EAC3DD,QAAQ,CAACE,MAAM,GAAGF,QAAQ,CAACE,MAAM,IAAI,GAAG;EACxC,OAAO;IACHD,IAAI,EAAEE,UAAU,CAACF,IAAI,CAAC;IACtBF,OAAO;IACPC;EACJ,CAAC;AACL;AAEO,SAASI,IAAIA,CAAA,EAAG;EACnB,OAAOC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC;AAEO,eAAeC,OAAOA,CAACC,YAAY,EAAE;EACxC,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEF,YAAY,CAAC,CAAC;AACpE;AAEO,eAAeI,KAAKA,CAACC,OAAO,EAAE;EACjC,OAAO,MAAMN,OAAO,CAACM,OAAO,GAAG,IAAI,CAAC;AACxC;AAEO,SAASC,cAAcA,CAACN,YAAY,EAAEO,OAAO,EAAE;EAClD,OAAO,IAAIN,OAAO,CAAC,CAACC,OAAO,EAAEM,MAAM,KAAK;IACpC,MAAMC,KAAK,GAAGN,UAAU,CAAC,MAAM;MAC3BK,MAAM,CAAC,IAAIE,KAAK,CAAC,0BAA0B,GAAGV,YAAY,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC,EAAEA,YAAY,CAAC;IAEhBO,OAAO,CACFI,IAAI,CAACC,KAAK,IAAI;MACXC,YAAY,CAACJ,KAAK,CAAC;MACnBP,OAAO,CAACU,KAAK,CAAC;IAClB,CAAC,CAAC,CACDE,KAAK,CAACC,MAAM,IAAI;MACbF,YAAY,CAACJ,KAAK,CAAC;MACnBD,MAAM,CAACO,MAAM,CAAC;IAClB,CAAC,CAAC;EACV,CAAC,CAAC;AACN;AAEO,SAASC,UAAUA,CAACC,IAAI,EAAE;EAC7B,OAAOA,IAAI,CAACC,KAAK,CAAC,OAAO,CAAC,CAACC,MAAM,CAACC,IAAI,IAAI,CAACC,UAAU,CAACD,IAAI,CAAC,CAAC,CAACE,GAAG,CAACF,IAAI,IAAIA,IAAI,CAACG,IAAI,CAAC,CAAC,CAAC;AACzF;AAEO,SAASC,WAAWA,CAACC,GAAG,EAAEC,IAAI,EAAEC,IAAI,GAAG,IAAI,EAAE;EAChD,IAAID,IAAI,IAAIA,IAAI,CAACE,cAAc,CAACH,GAAG,CAAC,KAAKE,IAAI,GAAGD,IAAI,CAACD,GAAG,CAAC,KAAKE,IAAI,GAAG,IAAI,CAAC,EAAE;IACxE,OAAOD,IAAI;EACf,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACjC,KAAK,IAAIG,KAAK,IAAIH,IAAI,EAAE;MACpB,MAAMI,MAAM,GAAGN,WAAW,CAACC,GAAG,EAAEC,IAAI,CAACG,KAAK,CAAC,EAAEF,IAAI,CAAC;MAClD,IAAIG,MAAM,EAAE;QACR,OAAOA,MAAM;MACjB;IACJ;EACJ;EACA,OAAO,IAAI;AACf;AAEO,SAAST,UAAUA,CAACT,KAAK,EAAE;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOA,KAAK,KAAK,CAAC;EACtB,CAAC,MAAM;IACH,OAAO,IAAAmB,gBAAO,EAACnB,KAAK,CAAC;EACzB;AACJ;AAEO,SAASnB,UAAUA,CAACuC,GAAG,EAAE;EAC5B,OAAOC,cAAc,CAAC,IAAAC,kBAAS,EAACF,GAAG,CAAC,CAAC;AACzC;AAEO,SAASC,cAAcA,CAACD,GAAG,EAAE;EAChCA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAOA,GAAG,CAAC,CAAC,CAAC,CAACG,WAAW,CAAC,CAAC,GAAGH,GAAG,CAACI,KAAK,CAAC,CAAC,CAAC;AAC9C;AAEO,SAASC,cAAcA,CAACL,GAAG,EAAE;EAChCA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAOA,GAAG,CAAC,CAAC,CAAC,CAACM,WAAW,CAAC,CAAC,GAAGN,GAAG,CAACI,KAAK,CAAC,CAAC,CAAC;AAC9C;AAEO,SAASG,WAAWA,CAACP,GAAG,EAAE;EAC7BA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAOA,GAAG,CACLd,KAAK,CAAC,GAAG,CAAC,CACVI,GAAG,CAACkB,IAAI,IAAI,IAAAC,mBAAU,EAACD,IAAI,CAAC,CAAC,CAC7BE,IAAI,CAAC,GAAG,CAAC;AAClB;AAEO,SAASC,WAAWA,CAACX,GAAG,EAAEY,KAAK,GAAG,EAAE,EAAE;EACzCZ,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,IAAIA,GAAG,CAACa,MAAM,IAAID,KAAK,EAAE;IACrB,OAAOZ,GAAG;EACd,CAAC,MAAM;IACH,OAAOA,GAAG,CAACc,SAAS,CAAC,CAAC,EAAEF,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK;EAC9C;AACJ;AAEO,SAASG,UAAUA,CAACf,GAAG,EAAE;EAC5BA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAO,IAAAgB,YAAG,EAAChB,GAAG,EAAE;IACZiB,SAAS,EAAE,CAAC,CAAC;IACbC,cAAc,EAAE,IAAI;IACpBC,kBAAkB,EAAE,CAAC,QAAQ;EACjC,CAAC,CAAC;AACN;AAEO,SAASC,YAAYA,CAACP,MAAM,EAAEQ,UAAU,GAAG,IAAI,EAAEC,YAAY,GAAG,KAAK,EAAE;EAE1E,IAAIC,UAAU,GAAGzE,SAAS,CAACE,UAAU;EACrC,IAAIsE,YAAY,EAAEC,UAAU,IAAIzE,SAAS,CAACG,UAAU;EACpD,IAAIoE,UAAU,EAAEE,UAAU,IAAIzE,SAAS,CAACK,OAAO;EAE/C,IAAIiE,YAAY,GAAG,EAAE;EACrB,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,MAAM,EAAEW,CAAC,EAAE,EAAE;IAC7B,MAAMC,WAAW,GAAG9D,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC+D,MAAM,CAAC,CAAC,GAAGH,UAAU,CAACV,MAAM,CAAC;IACjEO,YAAY,IAAIG,UAAU,CAACE,WAAW,CAAC;EAC3C;EAEA,OAAOL,YAAY;AACvB;AAEO,SAASO,SAASA,CAACd,MAAM,EAAE;EAC9B,IAAIf,MAAM,GAAG,EAAE;EACf,KAAK,IAAI0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,MAAM,EAAEW,CAAC,EAAE,EAAE;IAC7B,MAAMC,WAAW,GAAG9D,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC+D,MAAM,CAAC,CAAC,GAAG5E,SAAS,CAACI,WAAW,CAAC2D,MAAM,CAAC;IAC5Ef,MAAM,IAAIhD,SAAS,CAACI,WAAW,CAACuE,WAAW,CAAC;EAChD;EAEA,OAAO3B,MAAM;AACjB;AAEO,SAAS8B,UAAUA,CAACC,SAAS,GAAG,IAAI,EAAE;EACzC,IAAIC,CAAC,GAAGjE,IAAI,CAACC,GAAG,CAAC,CAAC;EAClB,MAAMiE,IAAI,GAAG,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC9E,MAAMC,CAAC,GAAG,CAACJ,CAAC,GAAGnE,IAAI,CAAC+D,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;IAC3CI,CAAC,GAAGnE,IAAI,CAACC,KAAK,CAACkE,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACG,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAG,GAAI,EAAEC,QAAQ,CAAC,EAAE,CAAC;EACzD,CAAC,CAAC;EACF,OAAON,SAAS,GAAGE,IAAI,GAAGA,IAAI,CAACK,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;AACtD;AAEO,SAASC,cAAcA,CAACC,IAAI,EAAEC,UAAU,GAAIC,WAAW,IAAK7E,IAAI,CAAC+D,MAAM,CAAC,CAAC,GAAGc,WAAW,EAAE;EAC5F,IAAIC,QAAQ,GAAGC,MAAM,CAACC,IAAI,CAACL,IAAI,CAAC;EAChC,IAAIM,OAAO,GAAGF,MAAM,CAACG,MAAM,CAACP,IAAI,CAAC;EAEjC,IAAIE,WAAW,GAAGI,OAAO,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAKD,GAAG,GAAGC,MAAM,EAAE,CAAC,CAAC;EAElE,IAAIC,SAAS,GAAGV,UAAU,CAACC,WAAW,CAAC;EACvC,IAAIU,SAAS,GAAG,CAAC;EAEjB,KAAK,IAAI1B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiB,QAAQ,CAAC5B,MAAM,EAAEW,CAAC,EAAE,EAAE;IACtC0B,SAAS,IAAIN,OAAO,CAACpB,CAAC,CAAC;IACvB,IAAIyB,SAAS,IAAIC,SAAS,EAAE;MACxB,OAAOT,QAAQ,CAACjB,CAAC,CAAC;IACtB;EACJ;AACJ;AAEO,SAAS2B,UAAUA,CAACC,GAAG,EAAEC,YAAY,GAAG,KAAK,EAAE;EAClD,IAAIf,IAAI,GAAG,CAAC,CAAC;EACb,MAAMgB,OAAO,GAAGC,wBAAe,CAACC,KAAK,CAACJ,GAAG,EAAE;IAACC,YAAY,EAAEA;EAAY,CAAC,CAAC;EACxE,KAAK,IAAII,MAAM,IAAIH,OAAO,EAAE;IACxBhB,IAAI,CAACmB,MAAM,CAAClG,IAAI,CAAC,GAAGkG,MAAM,CAAC7E,KAAK;EACpC;EACA,OAAO0D,IAAI;AACf;AAEO,SAASoB,YAAYA,CAACP,UAAU,EAAE;EACrC,OAAOT,MAAM,CAACiB,OAAO,CAACR,UAAU,CAAC,CAC5B7D,GAAG,CAAC,CAAC,CAACG,GAAG,EAAEb,KAAK,CAAC,KAAM,GAAEa,GAAI,IAAGb,KAAM,EAAC,CAAC,CACxC8B,IAAI,CAAC,GAAG,CAAC;AAClB;AAEO,SAASkD,cAAcA,CAACC,QAAQ,EAAE;EACrC,OACIA,QAAQ,KAAKC,SAAS,IACtBD,QAAQ,KAAK,IAAI,IACjBA,QAAQ,KAAK,CAAC,IACdA,QAAQ,KAAK,GAAG,IAChBA,QAAQ,KAAK,GAAG,IAChBA,QAAQ,KAAK,GAAG,IAChB,GAAG,IAAIA,QAAQ;AAEvB;AAEO,SAASE,WAAWA,CAACC,CAAC,EAAE;EAC3B,OACIA,CAAC,EAAE3G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE2D,QAAQ,GAAG,SAAS,CAAC,IAClDD,CAAC,EAAE3G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE2D,QAAQ,GAAG,SAAS,CAAC,IAClDD,CAAC,EAAE3G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE2D,QAAQ,GAAG,gBAAgB,CAAC,IACzDD,CAAC,EAAE3G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE2D,QAAQ,GAAG,aAAa,CAAC,IACtDL,cAAc,CAACI,CAAC,EAAE1G,QAAQ,EAAEE,MAAM,CAAC;AAE3C"}
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","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","Error","then","value","clearTimeout","catch","reason","splitLines","text","split","map","item","trim","filter","isEmpty","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","str","upperCaseFirst","camelCase","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleCase","word","capitalize","join","limitString","limit","length","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","toString","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 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/).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 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 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 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 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 CHANGED
@@ -8,8 +8,8 @@ exports.formatProxy = formatProxy;
8
8
  exports.getVersion = getVersion;
9
9
  exports.hashBcrypt = hashBcrypt;
10
10
  exports.md5 = md5;
11
- exports.proxify = proxify;
12
11
  exports.proxyObject = proxyObject;
12
+ exports.proxyValue = proxyValue;
13
13
  exports.serverIp = serverIp;
14
14
  exports.tokenHex = tokenHex;
15
15
  exports.tokenString = tokenString;
@@ -22,8 +22,6 @@ var _crypto = _interopRequireDefault(require("crypto"));
22
22
  var _os = require("os");
23
23
  var _child_process = require("child_process");
24
24
  var _bcrypt = _interopRequireDefault(require("bcrypt"));
25
- var _axios = _interopRequireDefault(require("axios"));
26
- var _hpagent = require("hpagent");
27
25
  var _index = require("./index.js");
28
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
27
  function tokenString(length, useNumbers = true, useUppercase = false) {
@@ -141,55 +139,14 @@ function proxyObject(...args) {
141
139
  }
142
140
  return proxy;
143
141
  }
144
- async function proxify(proxyConfig, callback = formatProxy) {
145
- proxyConfig = proxyConfig || {};
146
- const timeout = 7000;
147
- if (proxyConfig.mode === 1) {
148
- return callback(proxyConfig.proxy);
149
- } else if (proxyConfig.mode === 2) {
150
- const proxy = callback(proxyConfig.proxy);
151
- try {
152
- await _axios.default.get(proxyConfig.resetApi, {
153
- timeout
154
- });
155
- } catch {
156
- return false;
157
- }
158
- await (0, _index.sleep)(5);
159
- for (let i = 0; i < 5; i++) {
160
- try {
161
- const res = await _axios.default.get("https://api64.ipify.org", {
162
- timeout,
163
- httpsAgent: new _hpagent.HttpsProxyAgent({
164
- proxy,
165
- timeout: 7000
166
- })
167
- });
168
- if (res.status === 200) return proxy;
169
- } catch {
170
- await (0, _index.sleep)(3);
171
- }
172
- }
173
- } else if (proxyConfig.mode === 3) {
174
- try {
175
- const res = await _axios.default.get(proxyConfig.resetApi, {
176
- timeout
177
- });
178
- if (res.status === 200) return callback(proxyConfig.proxy);
179
- } catch {
180
- return false;
181
- }
182
- } else if (proxyConfig.mode === 4) {
183
- return callback(proxyConfig.proxy).replace("{SESSION}", tokenHex(8));
184
- } else if (proxyConfig.mode === 5) {
185
- try {
186
- const lines = proxyConfig.proxy.split("\n");
187
- const line = lines[_crypto.default.randomInt(0, lines.length)];
188
- return callback(line);
189
- } catch {
190
- return false;
191
- }
192
- }
193
- return null;
142
+ function proxyValue(proxies) {
143
+ let proxy;
144
+ proxies = proxies || "";
145
+ proxies = (0, _index.splitLines)(proxies);
146
+ if (proxies.length < 1) return null;
147
+ proxy = proxies[_crypto.default.randomInt(0, proxies.length)];
148
+ proxy = formatProxy(proxy);
149
+ proxy = proxy.replace("{SESSION}", tokenHex(8));
150
+ return proxy || null;
194
151
  }
195
152
  //# sourceMappingURL=node.js.map
package/cjs/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","names":["_fs","_interopRequireDefault","require","_path","_crypto","_os","_child_process","_bcrypt","_axios","_hpagent","_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","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","proxify","proxyConfig","callback","timeout","mode","axios","get","resetApi","sleep","res","httpsAgent","HttpsProxyAgent","status","replace","lines","line"],"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\nimport axios from \"axios\";\r\nimport {HttpsProxyAgent} from \"hpagent\";\r\n\r\nimport {CONSTANTS, randomWeighted, sleep} 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) {\r\n return bcrypt.hashSync(plainText, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash) {\r\n return bcrypt.compareSync(plainText, 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 async function proxify(proxyConfig, callback = formatProxy) {\r\n proxyConfig = proxyConfig || {};\r\n const timeout = 7000;\r\n if (proxyConfig.mode === 1) {\r\n return callback(proxyConfig.proxy);\r\n } else if (proxyConfig.mode === 2) {\r\n const proxy = callback(proxyConfig.proxy);\r\n try {\r\n await axios.get(proxyConfig.resetApi, {timeout});\r\n } catch {\r\n return false;\r\n }\r\n await sleep(5);\r\n for (let i = 0; i < 5; i++) {\r\n try {\r\n const res = await axios.get(\"https://api64.ipify.org\", {\r\n timeout,\r\n httpsAgent: new HttpsProxyAgent({proxy, timeout: 7000})\r\n });\r\n if (res.status === 200)\r\n return proxy;\r\n } catch {\r\n await sleep(3);\r\n }\r\n }\r\n } else if (proxyConfig.mode === 3) {\r\n try {\r\n const res = await axios.get(proxyConfig.resetApi, {timeout});\r\n if (res.status === 200)\r\n return callback(proxyConfig.proxy);\r\n } catch {\r\n return false;\r\n }\r\n } else if (proxyConfig.mode === 4) {\r\n return callback(proxyConfig.proxy).replace(\"{SESSION}\", tokenHex(8));\r\n } else if (proxyConfig.mode === 5) {\r\n try {\r\n const lines = proxyConfig.proxy.split(\"\\n\");\r\n const line = lines[crypto.randomInt(0, lines.length)];\r\n return callback(line);\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n return null;\r\n}"],"mappings":"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"}
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","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","splitLines","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, splitLines} 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) {\r\n return bcrypt.hashSync(plainText, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash) {\r\n return bcrypt.compareSync(plainText, 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 = splitLines(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/lib/index.js CHANGED
@@ -10,10 +10,10 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
10
10
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
11
11
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
12
12
  import xss from "xss";
13
+ import setCookieParser from "set-cookie-parser";
13
14
  import camelCase from "lodash/camelCase.js";
14
15
  import capitalize from "lodash/capitalize.js";
15
16
  import isEmpty from "lodash/isEmpty.js";
16
- import setCookieParser from "set-cookie-parser";
17
17
  export var CONSTANTS = {
18
18
  LOWER_CASE: "abcdefghijklmnopqrstuvwxyz",
19
19
  UPPER_CASE: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
@@ -87,10 +87,10 @@ export function promiseTimeout(milliseconds, promise) {
87
87
  });
88
88
  }
89
89
  export function splitLines(text) {
90
- return text.split(/\r?\n/).filter(function (item) {
91
- return !checkEmpty(item);
92
- }).map(function (item) {
90
+ return text.split(/\r?\n/).map(function (item) {
93
91
  return item.trim();
92
+ }).filter(function (item) {
93
+ return !isEmpty(item);
94
94
  });
95
95
  }
96
96
  export function findKeyNode(key, node) {
@@ -125,7 +125,7 @@ export function lowerCaseFirst(str) {
125
125
  str = str || "";
126
126
  return str[0].toLowerCase() + str.slice(1);
127
127
  }
128
- export function titleString(str) {
128
+ export function titleCase(str) {
129
129
  str = str || "";
130
130
  return str.split(' ').map(function (word) {
131
131
  return capitalize(word);
@@ -169,6 +169,30 @@ export function randomHex(length) {
169
169
  }
170
170
  return result;
171
171
  }
172
+ export function randomInteger(min, max, callback) {
173
+ var minNotSpecified = typeof max === 'undefined' || typeof max === 'function';
174
+ if (minNotSpecified) {
175
+ callback = max;
176
+ max = min;
177
+ min = 0;
178
+ }
179
+ var isSync = typeof callback === 'undefined';
180
+ if (typeof min !== 'number' || typeof max !== 'number') {
181
+ throw new Error('min and max must be numerical values');
182
+ }
183
+ if (max <= min) {
184
+ throw new Error('max must be greater than min');
185
+ }
186
+ var randomNumber = Math.floor(Math.random() * (max - min)) + min;
187
+ if (isSync) {
188
+ return randomNumber;
189
+ } else {
190
+ if (typeof callback !== 'function') {
191
+ throw new Error('callback must be a function');
192
+ }
193
+ callback(randomNumber);
194
+ }
195
+ }
172
196
  export function randomUuid() {
173
197
  var useDashes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
174
198
  var d = Date.now();
@@ -226,7 +250,7 @@ export function cookieHeader(cookieDict) {
226
250
  }).join(';');
227
251
  }
228
252
  export function isIntlHttpCode(httpCode) {
229
- return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 402 || httpCode === 407 || httpCode === 466 || 500 <= httpCode;
253
+ return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
230
254
  }
231
255
  export function isIntlError(e) {
232
256
  var _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;
package/lib/index.js.map CHANGED
@@ -1 +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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"}
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","setCookieParser","camelCase","capitalize","isEmpty","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","map","item","trim","filter","findKeyNode","node","pair","index","result","checkEmpty","str","upperCaseFirst","toUpperCase","lowerCaseFirst","toLowerCase","titleCase","word","join","limitString","limit","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","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 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 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/).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 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 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 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 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/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import xss from "xss";
2
+ import setCookieParser from "set-cookie-parser";
2
3
  import camelCase from "lodash/camelCase.js";
3
4
  import capitalize from "lodash/capitalize.js";
4
5
  import isEmpty from "lodash/isEmpty.js";
5
- import setCookieParser from "set-cookie-parser";
6
6
  export const CONSTANTS = {
7
7
  LOWER_CASE: "abcdefghijklmnopqrstuvwxyz",
8
8
  UPPER_CASE: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
@@ -41,7 +41,7 @@ export function promiseTimeout(milliseconds, promise) {
41
41
  });
42
42
  }
43
43
  export function splitLines(text) {
44
- return text.split(/\r?\n/).filter(item => !checkEmpty(item)).map(item => item.trim());
44
+ return text.split(/\r?\n/).map(item => item.trim()).filter(item => !isEmpty(item));
45
45
  }
46
46
  export function findKeyNode(key, node, pair = null) {
47
47
  if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {
@@ -74,7 +74,7 @@ export function lowerCaseFirst(str) {
74
74
  str = str || "";
75
75
  return str[0].toLowerCase() + str.slice(1);
76
76
  }
77
- export function titleString(str) {
77
+ export function titleCase(str) {
78
78
  str = str || "";
79
79
  return str.split(' ').map(word => capitalize(word)).join(' ');
80
80
  }
@@ -113,6 +113,30 @@ export function randomHex(length) {
113
113
  }
114
114
  return result;
115
115
  }
116
+ export function randomInteger(min, max, callback) {
117
+ const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';
118
+ if (minNotSpecified) {
119
+ callback = max;
120
+ max = min;
121
+ min = 0;
122
+ }
123
+ const isSync = typeof callback === 'undefined';
124
+ if (typeof min !== 'number' || typeof max !== 'number') {
125
+ throw new Error('min and max must be numerical values');
126
+ }
127
+ if (max <= min) {
128
+ throw new Error('max must be greater than min');
129
+ }
130
+ const randomNumber = Math.floor(Math.random() * (max - min)) + min;
131
+ if (isSync) {
132
+ return randomNumber;
133
+ } else {
134
+ if (typeof callback !== 'function') {
135
+ throw new Error('callback must be a function');
136
+ }
137
+ callback(randomNumber);
138
+ }
139
+ }
116
140
  export function randomUuid(useDashes = true) {
117
141
  let d = Date.now();
118
142
  const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
@@ -149,7 +173,7 @@ export function cookieHeader(cookieDict) {
149
173
  return Object.entries(cookieDict).map(([key, value]) => `${key}=${value}`).join(';');
150
174
  }
151
175
  export function isIntlHttpCode(httpCode) {
152
- return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 402 || httpCode === 407 || httpCode === 466 || 500 <= httpCode;
176
+ return httpCode === undefined || httpCode === null || httpCode === 0 || httpCode === 100 || httpCode === 402 || httpCode === 407 || 460 <= httpCode && httpCode < 470 || 500 <= httpCode;
153
177
  }
154
178
  export function isIntlError(e) {
155
179
  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);
package/mjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["xss","camelCase","capitalize","isEmpty","setCookieParser","CONSTANTS","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","Error","then","value","clearTimeout","catch","reason","splitLines","text","split","filter","item","checkEmpty","map","trim","findKeyNode","key","node","pair","hasOwnProperty","index","result","str","upperCaseFirst","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleString","word","join","limitString","limit","length","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomUuid","useDashes","d","uuid","replace","c","r","toString","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 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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"}
1
+ {"version":3,"file":"index.js","names":["xss","setCookieParser","camelCase","capitalize","isEmpty","CONSTANTS","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","Error","then","value","clearTimeout","catch","reason","splitLines","text","split","map","item","trim","filter","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","str","upperCaseFirst","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleCase","word","join","limitString","limit","length","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","toString","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 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/).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 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 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 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 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 CHANGED
@@ -4,9 +4,7 @@ import crypto from "crypto";
4
4
  import { networkInterfaces } from "os";
5
5
  import { execSync } from "child_process";
6
6
  import bcrypt from "bcrypt";
7
- import axios from "axios";
8
- import { HttpsProxyAgent } from "hpagent";
9
- import { CONSTANTS, randomWeighted, sleep } from "./index.js";
7
+ import { CONSTANTS, randomWeighted, splitLines } from "./index.js";
10
8
  export function tokenString(length, useNumbers = true, useUppercase = false) {
11
9
  const lowercaseChars = CONSTANTS.LOWER_CASE;
12
10
  const uppercaseChars = CONSTANTS.UPPER_CASE;
@@ -122,55 +120,14 @@ export function proxyObject(...args) {
122
120
  }
123
121
  return proxy;
124
122
  }
125
- export async function proxify(proxyConfig, callback = formatProxy) {
126
- proxyConfig = proxyConfig || {};
127
- const timeout = 7000;
128
- if (proxyConfig.mode === 1) {
129
- return callback(proxyConfig.proxy);
130
- } else if (proxyConfig.mode === 2) {
131
- const proxy = callback(proxyConfig.proxy);
132
- try {
133
- await axios.get(proxyConfig.resetApi, {
134
- timeout
135
- });
136
- } catch {
137
- return false;
138
- }
139
- await sleep(5);
140
- for (let i = 0; i < 5; i++) {
141
- try {
142
- const res = await axios.get("https://api64.ipify.org", {
143
- timeout,
144
- httpsAgent: new HttpsProxyAgent({
145
- proxy,
146
- timeout: 7000
147
- })
148
- });
149
- if (res.status === 200) return proxy;
150
- } catch {
151
- await sleep(3);
152
- }
153
- }
154
- } else if (proxyConfig.mode === 3) {
155
- try {
156
- const res = await axios.get(proxyConfig.resetApi, {
157
- timeout
158
- });
159
- if (res.status === 200) return callback(proxyConfig.proxy);
160
- } catch {
161
- return false;
162
- }
163
- } else if (proxyConfig.mode === 4) {
164
- return callback(proxyConfig.proxy).replace("{SESSION}", tokenHex(8));
165
- } else if (proxyConfig.mode === 5) {
166
- try {
167
- const lines = proxyConfig.proxy.split("\n");
168
- const line = lines[crypto.randomInt(0, lines.length)];
169
- return callback(line);
170
- } catch {
171
- return false;
172
- }
173
- }
174
- return null;
123
+ export function proxyValue(proxies) {
124
+ let proxy;
125
+ proxies = proxies || "";
126
+ proxies = splitLines(proxies);
127
+ if (proxies.length < 1) return null;
128
+ proxy = proxies[crypto.randomInt(0, proxies.length)];
129
+ proxy = formatProxy(proxy);
130
+ proxy = proxy.replace("{SESSION}", tokenHex(8));
131
+ return proxy || null;
175
132
  }
176
133
  //# sourceMappingURL=node.js.map
package/mjs/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","names":["fs","path","crypto","networkInterfaces","execSync","bcrypt","axios","HttpsProxyAgent","CONSTANTS","randomWeighted","sleep","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","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","proxify","proxyConfig","callback","timeout","mode","get","resetApi","res","httpsAgent","status","replace","lines","line"],"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\nimport axios from \"axios\";\r\nimport {HttpsProxyAgent} from \"hpagent\";\r\n\r\nimport {CONSTANTS, randomWeighted, sleep} 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) {\r\n return bcrypt.hashSync(plainText, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash) {\r\n return bcrypt.compareSync(plainText, 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 async function proxify(proxyConfig, callback = formatProxy) {\r\n proxyConfig = proxyConfig || {};\r\n const timeout = 7000;\r\n if (proxyConfig.mode === 1) {\r\n return callback(proxyConfig.proxy);\r\n } else if (proxyConfig.mode === 2) {\r\n const proxy = callback(proxyConfig.proxy);\r\n try {\r\n await axios.get(proxyConfig.resetApi, {timeout});\r\n } catch {\r\n return false;\r\n }\r\n await sleep(5);\r\n for (let i = 0; i < 5; i++) {\r\n try {\r\n const res = await axios.get(\"https://api64.ipify.org\", {\r\n timeout,\r\n httpsAgent: new HttpsProxyAgent({proxy, timeout: 7000})\r\n });\r\n if (res.status === 200)\r\n return proxy;\r\n } catch {\r\n await sleep(3);\r\n }\r\n }\r\n } else if (proxyConfig.mode === 3) {\r\n try {\r\n const res = await axios.get(proxyConfig.resetApi, {timeout});\r\n if (res.status === 200)\r\n return callback(proxyConfig.proxy);\r\n } catch {\r\n return false;\r\n }\r\n } else if (proxyConfig.mode === 4) {\r\n return callback(proxyConfig.proxy).replace(\"{SESSION}\", tokenHex(8));\r\n } else if (proxyConfig.mode === 5) {\r\n try {\r\n const lines = proxyConfig.proxy.split(\"\\n\");\r\n const line = lines[crypto.randomInt(0, lines.length)];\r\n return callback(line);\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n return null;\r\n}"],"mappings":"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"}
1
+ {"version":3,"file":"node.js","names":["fs","path","crypto","networkInterfaces","execSync","bcrypt","CONSTANTS","randomWeighted","splitLines","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","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, splitLines} 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) {\r\n return bcrypt.hashSync(plainText, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash) {\r\n return bcrypt.compareSync(plainText, 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 = splitLines(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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melperjs",
3
- "version": "5.0.0",
3
+ "version": "6.1.0",
4
4
  "description": "Javascript module to use predefined common functions and utilities",
5
5
  "keywords": [
6
6
  "helper",
package/src/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import xss from "xss";
2
+ import setCookieParser from "set-cookie-parser";
2
3
  import camelCase from "lodash/camelCase.js";
3
4
  import capitalize from "lodash/capitalize.js";
4
5
  import isEmpty from "lodash/isEmpty.js";
5
- import setCookieParser from "set-cookie-parser";
6
6
 
7
7
 
8
8
  export const CONSTANTS = {
@@ -17,8 +17,8 @@ export function Exception(message, response = {}, name = null) {
17
17
  return {
18
18
  name: pascalCase(name),
19
19
  message,
20
- response,
21
- }
20
+ response
21
+ };
22
22
  }
23
23
 
24
24
  export function time() {
@@ -91,7 +91,7 @@ export function lowerCaseFirst(str) {
91
91
  return str[0].toLowerCase() + str.slice(1);
92
92
  }
93
93
 
94
- export function titleString(str) {
94
+ export function titleCase(str) {
95
95
  str = str || "";
96
96
  return str
97
97
  .split(' ')
@@ -142,6 +142,36 @@ export function randomHex(length) {
142
142
  return result;
143
143
  }
144
144
 
145
+ export function randomInteger(min, max, callback) {
146
+ const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';
147
+
148
+ if (minNotSpecified) {
149
+ callback = max;
150
+ max = min;
151
+ min = 0;
152
+ }
153
+
154
+ const isSync = typeof callback === 'undefined';
155
+
156
+ if (typeof min !== 'number' || typeof max !== 'number') {
157
+ throw new Error('min and max must be numerical values');
158
+ }
159
+ if (max <= min) {
160
+ throw new Error('max must be greater than min');
161
+ }
162
+
163
+ const randomNumber = Math.floor(Math.random() * (max - min)) + min;
164
+
165
+ if (isSync) {
166
+ return randomNumber;
167
+ } else {
168
+ if (typeof callback !== 'function') {
169
+ throw new Error('callback must be a function');
170
+ }
171
+ callback(randomNumber);
172
+ }
173
+ }
174
+
145
175
  export function randomUuid(useDashes = true) {
146
176
  let d = Date.now();
147
177
  const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
@@ -189,9 +219,10 @@ export function isIntlHttpCode(httpCode) {
189
219
  httpCode === undefined ||
190
220
  httpCode === null ||
191
221
  httpCode === 0 ||
222
+ httpCode === 100 ||
192
223
  httpCode === 402 ||
193
224
  httpCode === 407 ||
194
- httpCode === 466 ||
225
+ (460 <= httpCode && httpCode < 470) ||
195
226
  500 <= httpCode
196
227
  );
197
228
  }
package/src/node.js CHANGED
@@ -5,10 +5,8 @@ import {networkInterfaces} from "os";
5
5
  import {execSync} from "child_process";
6
6
 
7
7
  import bcrypt from "bcrypt";
8
- import axios from "axios";
9
- import {HttpsProxyAgent} from "hpagent";
10
8
 
11
- import {CONSTANTS, randomWeighted, sleep} from "./index.js";
9
+ import {CONSTANTS, randomWeighted, splitLines} from "./index.js";
12
10
 
13
11
 
14
12
  export function tokenString(length, useNumbers = true, useUppercase = false) {
@@ -144,50 +142,14 @@ export function proxyObject(...args) {
144
142
  return proxy;
145
143
  }
146
144
 
147
- export async function proxify(proxyConfig, callback = formatProxy) {
148
- proxyConfig = proxyConfig || {};
149
- const timeout = 7000;
150
- if (proxyConfig.mode === 1) {
151
- return callback(proxyConfig.proxy);
152
- } else if (proxyConfig.mode === 2) {
153
- const proxy = callback(proxyConfig.proxy);
154
- try {
155
- await axios.get(proxyConfig.resetApi, {timeout});
156
- } catch {
157
- return false;
158
- }
159
- await sleep(5);
160
- for (let i = 0; i < 5; i++) {
161
- try {
162
- const res = await axios.get("https://api64.ipify.org", {
163
- timeout,
164
- httpsAgent: new HttpsProxyAgent({proxy, timeout: 7000})
165
- });
166
- if (res.status === 200)
167
- return proxy;
168
- } catch {
169
- await sleep(3);
170
- }
171
- }
172
- } else if (proxyConfig.mode === 3) {
173
- try {
174
- const res = await axios.get(proxyConfig.resetApi, {timeout});
175
- if (res.status === 200)
176
- return callback(proxyConfig.proxy);
177
- } catch {
178
- return false;
179
- }
180
- } else if (proxyConfig.mode === 4) {
181
- return callback(proxyConfig.proxy).replace("{SESSION}", tokenHex(8));
182
- } else if (proxyConfig.mode === 5) {
183
- try {
184
- const lines = proxyConfig.proxy.split("\n");
185
- const line = lines[crypto.randomInt(0, lines.length)];
186
- return callback(line);
187
- } catch {
188
- return false;
189
- }
190
- }
191
-
192
- return null;
145
+ export function proxyValue(proxies) {
146
+ let proxy;
147
+ proxies = proxies || "";
148
+ proxies = splitLines(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;
193
155
  }
package/test/script.js CHANGED
@@ -40,11 +40,12 @@ import * as nodeHelper from "../src/node.js";
40
40
  console.log(helper.pascalCase("pascal case"));
41
41
  console.log(helper.upperCaseFirst("first letter upper"));
42
42
  console.log(helper.lowerCaseFirst("First Letter Lower"));
43
- console.log(helper.titleString("THIS mUsT be Title"));
43
+ console.log(helper.titleCase("THIS mUsT be Title"));
44
44
  console.log(helper.limitString("LONG TEXT", 7));
45
45
  console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
46
46
  console.log(helper.randomString(32, true, true));
47
47
  console.log(helper.randomHex(8));
48
+ console.log(helper.randomInteger(100, 1000));
48
49
  console.log(helper.randomUuid(true));
49
50
  console.log(helper.randomWeighted({strongProbability: 1000, lowProbability: 1}));
50
51
  console.log(nodeHelper.tokenString(32, true, true));
@@ -61,7 +62,7 @@ import * as nodeHelper from "../src/node.js";
61
62
  const proxy = nodeHelper.formatProxy("127.0.0.1:8080:id:pw-{SESSION}");
62
63
  console.log(proxy);
63
64
  console.log(nodeHelper.proxyObject(proxy));
64
- console.log(await nodeHelper.proxify({mode: 4, proxy}));
65
+ console.log(nodeHelper.proxyValue(proxy));
65
66
  console.log(nodeHelper.serverIp());
66
67
  console.log("HTTP CODE: 400 (Bad Request) ?", helper.isIntlHttpCode(401));
67
68
  console.log("HTTP CODE: 407 (Failed Proxy Auth) ?", helper.isIntlHttpCode(407));