melperjs 7.0.0 → 7.2.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 +21 -0
- package/cjs/index.js +26 -6
- package/cjs/index.js.map +1 -1
- package/cjs/node.js +1 -1
- package/cjs/node.js.map +1 -1
- package/mjs/index.js +25 -6
- package/mjs/index.js.map +1 -1
- package/mjs/node.js +1 -1
- package/mjs/node.js.map +1 -1
- package/package.json +5 -3
- package/src/index.js +29 -8
- package/src/node.js +1 -1
- package/test/script.js +11 -0
package/README.md
CHANGED
|
@@ -58,6 +58,17 @@ const axios = require("axios");
|
|
|
58
58
|
console.log(helper.upperCaseFirst("first letter upper"));
|
|
59
59
|
console.log(helper.lowerCaseFirst("First Letter Lower"));
|
|
60
60
|
console.log(helper.titleCase("THIS mUsT be Title"));
|
|
61
|
+
console.log(helper.objectStringify({
|
|
62
|
+
a: "hello",
|
|
63
|
+
b: 1,
|
|
64
|
+
c: undefined,
|
|
65
|
+
d: null,
|
|
66
|
+
e: {
|
|
67
|
+
ea: 2
|
|
68
|
+
},
|
|
69
|
+
f: [3,4,5],
|
|
70
|
+
g: false
|
|
71
|
+
}));
|
|
61
72
|
console.log(helper.limitString("LONG TEXT", 7));
|
|
62
73
|
console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
|
|
63
74
|
console.log(helper.randomString(32, true, true));
|
|
@@ -114,6 +125,16 @@ PascalCase
|
|
|
114
125
|
First letter upper
|
|
115
126
|
first Letter Lower
|
|
116
127
|
This Must Be Title
|
|
128
|
+
{
|
|
129
|
+
a: 'hello',
|
|
130
|
+
b: '1',
|
|
131
|
+
c: 'undefined',
|
|
132
|
+
d: 'null',
|
|
133
|
+
e: { ea: '2' },
|
|
134
|
+
f: [ '3', '4', '5' ],
|
|
135
|
+
g: 'false'
|
|
136
|
+
}
|
|
137
|
+
|
|
117
138
|
LONG...
|
|
118
139
|
SAFE TEXT
|
|
119
140
|
sP3jTNwe1rRrW1TVAPb4HAXNFjJB2mWb
|
package/cjs/index.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.isIntlError = isIntlError;
|
|
|
13
13
|
exports.isIntlHttpCode = isIntlHttpCode;
|
|
14
14
|
exports.limitString = limitString;
|
|
15
15
|
exports.lowerCaseFirst = lowerCaseFirst;
|
|
16
|
+
exports.objectStringify = objectStringify;
|
|
16
17
|
exports.pascalCase = pascalCase;
|
|
17
18
|
exports.promiseTimeout = promiseTimeout;
|
|
18
19
|
exports.randomHex = randomHex;
|
|
@@ -40,12 +41,15 @@ const CONSTANTS = exports.CONSTANTS = {
|
|
|
40
41
|
NUMBERS: "0123456789"
|
|
41
42
|
};
|
|
42
43
|
function Exception(message, response = {}, name = null) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
class ExceptionClass extends Error {
|
|
45
|
+
constructor(message, response, name) {
|
|
46
|
+
super(message);
|
|
47
|
+
response.status = response.status || 400;
|
|
48
|
+
this.response = response;
|
|
49
|
+
this.name = name ? pascalCase(name) : "Exception";
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return new ExceptionClass(message, response, name);
|
|
49
53
|
}
|
|
50
54
|
function time() {
|
|
51
55
|
return Math.floor(Date.now() / 1000);
|
|
@@ -110,6 +114,22 @@ function titleCase(str) {
|
|
|
110
114
|
str = str || "";
|
|
111
115
|
return str.split(' ').map(word => (0, _capitalize.default)(word)).join(' ');
|
|
112
116
|
}
|
|
117
|
+
function objectStringify(obj) {
|
|
118
|
+
for (let key in obj) {
|
|
119
|
+
if (obj.hasOwnProperty(key)) {
|
|
120
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
121
|
+
objectStringify(obj[key]);
|
|
122
|
+
} else {
|
|
123
|
+
if (obj[key]?.toString) {
|
|
124
|
+
obj[key] = obj[key].toString();
|
|
125
|
+
} else {
|
|
126
|
+
obj[key] = String(obj[key]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return obj;
|
|
132
|
+
}
|
|
113
133
|
function limitString(str, limit = 35, omission = "...") {
|
|
114
134
|
str = str || "";
|
|
115
135
|
if (str.length <= limit) {
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","splitClear","rawText","separator","split","map","item","trim","filter","isEmpty","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","camelCase","titleCase","word","capitalize","join","limitString","limit","omission","substring","safeString","xss","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","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 splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if(str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if(str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_xss","_interopRequireDefault","require","_setCookieParser","_camelCase","_capitalize","_isEmpty","obj","__esModule","default","CONSTANTS","exports","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","ExceptionClass","Error","constructor","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","then","value","clearTimeout","catch","reason","splitClear","rawText","separator","split","map","item","trim","filter","isEmpty","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","camelCase","titleCase","word","capitalize","join","objectStringify","toString","String","limitString","limit","omission","substring","safeString","xss","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","replaceAll","randomWeighted","dict","randomFunc","totalWeight","elements","Object","keys","weights","values","reduce","sum","weight","randomNum","weightSum","cookieDict","res","decodeValues","cookies","setCookieParser","parse","cookie","cookieHeader","entries","isIntlHttpCode","httpCode","undefined","isIntlError","e","includes"],"sources":["../src/index.js"],"sourcesContent":["import xss from \"xss\";\r\nimport setCookieParser from \"set-cookie-parser\";\r\nimport camelCase from \"lodash/camelCase.js\";\r\nimport capitalize from \"lodash/capitalize.js\";\r\nimport isEmpty from \"lodash/isEmpty.js\";\r\n\r\n\r\nexport const CONSTANTS = {\r\n LOWER_CASE: \"abcdefghijklmnopqrstuvwxyz\",\r\n UPPER_CASE: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n HEXADECIMAL: \"0123456789abcdef\",\r\n NUMBERS: \"0123456789\",\r\n};\r\n\r\nexport function Exception(message, response = {}, name = null) {\r\n class ExceptionClass extends Error {\r\n constructor(message, response, name) {\r\n super(message);\r\n response.status = response.status || 400;\r\n this.response = response;\r\n this.name = name ? pascalCase(name) : \"Exception\";\r\n }\r\n }\r\n\r\n return new ExceptionClass(message, response, name);\r\n}\r\n\r\nexport function time() {\r\n return Math.floor(Date.now() / 1000);\r\n}\r\n\r\nexport async function sleepMs(milliseconds) {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds));\r\n}\r\n\r\nexport async function sleep(seconds) {\r\n return await sleepMs(seconds * 1000);\r\n}\r\n\r\nexport function promiseTimeout(milliseconds, promise) {\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('Promise timed out after ' + milliseconds + 'ms'));\r\n }, milliseconds);\r\n\r\n promise\r\n .then(value => {\r\n clearTimeout(timer);\r\n resolve(value);\r\n })\r\n .catch(reason => {\r\n clearTimeout(timer);\r\n reject(reason);\r\n });\r\n });\r\n}\r\n\r\nexport function splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function objectStringify(obj) {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object' && obj[key] !== null) {\r\n objectStringify(obj[key]);\r\n } else {\r\n if (obj[key]?.toString) {\r\n obj[key] = obj[key].toString();\r\n } else {\r\n obj[key] = String(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"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"}
|
package/cjs/node.js
CHANGED
|
@@ -71,7 +71,7 @@ function getVersion() {
|
|
|
71
71
|
const day = formatDatePart(date.getDate());
|
|
72
72
|
const hour = formatDatePart(date.getHours());
|
|
73
73
|
const minute = formatDatePart(date.getMinutes());
|
|
74
|
-
return parseFloat(`${year}${month}
|
|
74
|
+
return parseFloat(`${year}${month}${day}.${hour}${minute}`);
|
|
75
75
|
} catch {
|
|
76
76
|
return 1.0;
|
|
77
77
|
}
|
package/cjs/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["_fs","_interopRequireDefault","require","_path","_crypto","_os","_child_process","_bcrypt","_index","obj","__esModule","default","tokenString","length","useNumbers","useUppercase","lowercaseChars","CONSTANTS","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","crypto","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomWeighted","randomInt","serverIp","interfaces","networkInterfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","execSync","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","fs","mkdirSync","recursive","path","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","bcrypt","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","splitClear","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}.${day}${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","names":["_fs","_interopRequireDefault","require","_path","_crypto","_os","_child_process","_bcrypt","_index","obj","__esModule","default","tokenString","length","useNumbers","useUppercase","lowercaseChars","CONSTANTS","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","crypto","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomWeighted","randomInt","serverIp","interfaces","networkInterfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","execSync","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","fs","mkdirSync","recursive","path","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","bcrypt","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","splitClear","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}${day}.${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
package/mjs/index.js
CHANGED
|
@@ -10,12 +10,15 @@ export const CONSTANTS = {
|
|
|
10
10
|
NUMBERS: "0123456789"
|
|
11
11
|
};
|
|
12
12
|
export function Exception(message, response = {}, name = null) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
class ExceptionClass extends Error {
|
|
14
|
+
constructor(message, response, name) {
|
|
15
|
+
super(message);
|
|
16
|
+
response.status = response.status || 400;
|
|
17
|
+
this.response = response;
|
|
18
|
+
this.name = name ? pascalCase(name) : "Exception";
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return new ExceptionClass(message, response, name);
|
|
19
22
|
}
|
|
20
23
|
export function time() {
|
|
21
24
|
return Math.floor(Date.now() / 1000);
|
|
@@ -80,6 +83,22 @@ export function titleCase(str) {
|
|
|
80
83
|
str = str || "";
|
|
81
84
|
return str.split(' ').map(word => capitalize(word)).join(' ');
|
|
82
85
|
}
|
|
86
|
+
export function objectStringify(obj) {
|
|
87
|
+
for (let key in obj) {
|
|
88
|
+
if (obj.hasOwnProperty(key)) {
|
|
89
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
90
|
+
objectStringify(obj[key]);
|
|
91
|
+
} else {
|
|
92
|
+
if (obj[key]?.toString) {
|
|
93
|
+
obj[key] = obj[key].toString();
|
|
94
|
+
} else {
|
|
95
|
+
obj[key] = String(obj[key]);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return obj;
|
|
101
|
+
}
|
|
83
102
|
export function limitString(str, limit = 35, omission = "...") {
|
|
84
103
|
str = str || "";
|
|
85
104
|
if (str.length <= limit) {
|
package/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","splitClear","rawText","separator","split","map","item","trim","filter","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleCase","word","join","limitString","limit","omission","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","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 splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if(str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if(str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,KAAK;AACrB,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,sBAAsB;AAC7C,OAAOC,OAAO,MAAM,mBAAmB;AAGvC,OAAO,MAAMC,SAAS,GAAG;EACrBC,UAAU,EAAE,4BAA4B;EACxCC,UAAU,EAAE,4BAA4B;EACxCC,WAAW,EAAE,kBAAkB;EAC/BC,OAAO,EAAE;AACb,CAAC;AAED,OAAO,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;AAEA,OAAO,SAASI,IAAIA,CAAA,EAAG;EACnB,OAAOC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AACxC;AAEA,OAAO,eAAeC,OAAOA,CAACC,YAAY,EAAE;EACxC,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEF,YAAY,CAAC,CAAC;AACpE;AAEA,OAAO,eAAeI,KAAKA,CAACC,OAAO,EAAE;EACjC,OAAO,MAAMN,OAAO,CAACM,OAAO,GAAG,IAAI,CAAC;AACxC;AAEA,OAAO,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;AAEA,OAAO,SAASC,UAAUA,CAACC,OAAO,EAAEC,SAAS,GAAG,OAAO,EAAE;EACrD,OAAOD,OAAO,CAACE,KAAK,CAACD,SAAS,CAAC,CAACE,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,IAAI,CAAC,CAAC,CAAC,CAACC,MAAM,CAACF,IAAI,IAAI,CAACvC,OAAO,CAACuC,IAAI,CAAC,CAAC;AAC3F;AAEA,OAAO,SAASG,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;AAEA,OAAO,SAASC,UAAUA,CAACnB,KAAK,EAAE;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOA,KAAK,KAAK,CAAC;EACtB,CAAC,MAAM;IACH,OAAO9B,OAAO,CAAC8B,KAAK,CAAC;EACzB;AACJ;AAEA,OAAO,SAASoB,cAAcA,CAACC,GAAG,EAAE;EAChCA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,IAAGA,GAAG,CAACC,MAAM,GAAG,CAAC,EACb,OAAO,EAAE;EACb,OAAOD,GAAG,CAAC,CAAC,CAAC,CAACE,WAAW,CAAC,CAAC,GAAGF,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC;AAC9C;AAEA,OAAO,SAASC,cAAcA,CAACJ,GAAG,EAAE;EAChCA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,IAAGA,GAAG,CAACC,MAAM,GAAG,CAAC,EACb,OAAO,EAAE;EACb,OAAOD,GAAG,CAAC,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC,GAAGL,GAAG,CAACG,KAAK,CAAC,CAAC,CAAC;AAC9C;AAEA,OAAO,SAAS3C,UAAUA,CAACwC,GAAG,EAAE;EAC5B,OAAOD,cAAc,CAACpD,SAAS,CAACqD,GAAG,CAAC,CAAC;AACzC;AAEA,OAAO,SAASM,SAASA,CAACN,GAAG,EAAE;EAC3BA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAOA,GAAG,CACLd,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAACoB,IAAI,IAAI3D,UAAU,CAAC2D,IAAI,CAAC,CAAC,CAC7BC,IAAI,CAAC,GAAG,CAAC;AAClB;AAEA,OAAO,SAASC,WAAWA,CAACT,GAAG,EAAEU,KAAK,GAAG,EAAE,EAAEC,QAAQ,GAAG,KAAK,EAAE;EAC3DX,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,IAAIA,GAAG,CAACC,MAAM,IAAIS,KAAK,EAAE;IACrB,OAAOV,GAAG;EACd,CAAC,MAAM;IACH,OAAOA,GAAG,CAACY,SAAS,CAAC,CAAC,EAAEF,KAAK,GAAGC,QAAQ,CAACV,MAAM,CAAC,GAAGU,QAAQ;EAC/D;AACJ;AAEA,OAAO,SAASE,UAAUA,CAACb,GAAG,EAAE;EAC5BA,GAAG,GAAGA,GAAG,IAAI,EAAE;EACf,OAAOvD,GAAG,CAACuD,GAAG,EAAE;IACZc,SAAS,EAAE,CAAC,CAAC;IACbC,cAAc,EAAE,IAAI;IACpBC,kBAAkB,EAAE,CAAC,QAAQ;EACjC,CAAC,CAAC;AACN;AAEA,OAAO,SAASC,YAAYA,CAAChB,MAAM,EAAEiB,UAAU,GAAG,IAAI,EAAEC,YAAY,GAAG,KAAK,EAAE;EAE1E,IAAIC,UAAU,GAAGtE,SAAS,CAACC,UAAU;EACrC,IAAIoE,YAAY,EAAEC,UAAU,IAAItE,SAAS,CAACE,UAAU;EACpD,IAAIkE,UAAU,EAAEE,UAAU,IAAItE,SAAS,CAACI,OAAO;EAE/C,IAAI+D,YAAY,GAAG,EAAE;EACrB,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,MAAM,EAAEoB,CAAC,EAAE,EAAE;IAC7B,MAAMC,WAAW,GAAG5D,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC6D,MAAM,CAAC,CAAC,GAAGH,UAAU,CAACnB,MAAM,CAAC;IACjEgB,YAAY,IAAIG,UAAU,CAACE,WAAW,CAAC;EAC3C;EAEA,OAAOL,YAAY;AACvB;AAEA,OAAO,SAASO,SAASA,CAACvB,MAAM,EAAE;EAC9B,IAAIJ,MAAM,GAAG,EAAE;EACf,KAAK,IAAIwB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpB,MAAM,EAAEoB,CAAC,EAAE,EAAE;IAC7B,MAAMC,WAAW,GAAG5D,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC6D,MAAM,CAAC,CAAC,GAAGzE,SAAS,CAACG,WAAW,CAACgD,MAAM,CAAC;IAC5EJ,MAAM,IAAI/C,SAAS,CAACG,WAAW,CAACqE,WAAW,CAAC;EAChD;EAEA,OAAOzB,MAAM;AACjB;AAEA,OAAO,SAAS4B,aAAaA,CAACC,GAAG,EAAEC,GAAG,EAAEC,QAAQ,EAAE;EAC9C,MAAMC,eAAe,GAAG,OAAOF,GAAG,KAAK,WAAW,IAAI,OAAOA,GAAG,KAAK,UAAU;EAE/E,IAAIE,eAAe,EAAE;IACjBD,QAAQ,GAAGD,GAAG;IACdA,GAAG,GAAGD,GAAG;IACTA,GAAG,GAAG,CAAC;EACX;EAEA,MAAMI,MAAM,GAAG,OAAOF,QAAQ,KAAK,WAAW;EAE9C,IAAI,OAAOF,GAAG,KAAK,QAAQ,IAAI,OAAOC,GAAG,KAAK,QAAQ,EAAE;IACpD,MAAM,IAAIlD,KAAK,CAAC,sCAAsC,CAAC;EAC3D;EACA,IAAIkD,GAAG,IAAID,GAAG,EAAE;IACZ,MAAM,IAAIjD,KAAK,CAAC,8BAA8B,CAAC;EACnD;EAEA,MAAMsD,YAAY,GAAGrE,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC6D,MAAM,CAAC,CAAC,IAAII,GAAG,GAAGD,GAAG,CAAC,CAAC,GAAGA,GAAG;EAElE,IAAII,MAAM,EAAE;IACR,OAAOC,YAAY;EACvB,CAAC,MAAM;IACH,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAE;MAChC,MAAM,IAAInD,KAAK,CAAC,6BAA6B,CAAC;IAClD;IACAmD,QAAQ,CAACG,YAAY,CAAC;EAC1B;AACJ;AAEA,OAAO,SAASC,UAAUA,CAACC,SAAS,GAAG,IAAI,EAAE;EACzC,IAAIC,CAAC,GAAGtE,IAAI,CAACC,GAAG,CAAC,CAAC;EAClB,MAAMsE,IAAI,GAAG,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAE,UAAUC,CAAC,EAAE;IAC9E,MAAMC,CAAC,GAAG,CAACJ,CAAC,GAAGxE,IAAI,CAAC6D,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;IAC3CW,CAAC,GAAGxE,IAAI,CAACC,KAAK,CAACuE,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;AAEA,OAAO,SAASC,cAAcA,CAACC,IAAI,EAAEC,UAAU,GAAIC,WAAW,IAAKlF,IAAI,CAAC6D,MAAM,CAAC,CAAC,GAAGqB,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,IAAIjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwB,QAAQ,CAAC5C,MAAM,EAAEoB,CAAC,EAAE,EAAE;IACtCiC,SAAS,IAAIN,OAAO,CAAC3B,CAAC,CAAC;IACvB,IAAIgC,SAAS,IAAIC,SAAS,EAAE;MACxB,OAAOT,QAAQ,CAACxB,CAAC,CAAC;IACtB;EACJ;AACJ;AAEA,OAAO,SAASkC,UAAUA,CAACC,GAAG,EAAEC,YAAY,GAAG,KAAK,EAAE;EAClD,IAAIf,IAAI,GAAG,CAAC,CAAC;EACb,MAAMgB,OAAO,GAAGhH,eAAe,CAACiH,KAAK,CAACH,GAAG,EAAE;IAACC,YAAY,EAAEA;EAAY,CAAC,CAAC;EACxE,KAAK,IAAIG,MAAM,IAAIF,OAAO,EAAE;IACxBhB,IAAI,CAACkB,MAAM,CAACtG,IAAI,CAAC,GAAGsG,MAAM,CAACjF,KAAK;EACpC;EACA,OAAO+D,IAAI;AACf;AAEA,OAAO,SAASmB,YAAYA,CAACN,UAAU,EAAE;EACrC,OAAOT,MAAM,CAACgB,OAAO,CAACP,UAAU,CAAC,CAC5BpE,GAAG,CAAC,CAAC,CAACK,GAAG,EAAEb,KAAK,CAAC,KAAM,GAAEa,GAAI,IAAGb,KAAM,EAAC,CAAC,CACxC6B,IAAI,CAAC,GAAG,CAAC;AAClB;AAEA,OAAO,SAASuD,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,IACf,GAAG,IAAIA,QAAQ,IAAIA,QAAQ,GAAG,GAAI,IACnC,GAAG,IAAIA,QAAQ;AAEvB;AAEA,OAAO,SAASE,WAAWA,CAACC,CAAC,EAAE;EAC3B,OACIA,CAAC,EAAE/G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE+D,QAAQ,GAAG,SAAS,CAAC,IAClDD,CAAC,EAAE/G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE+D,QAAQ,GAAG,SAAS,CAAC,IAClDD,CAAC,EAAE/G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE+D,QAAQ,GAAG,gBAAgB,CAAC,IACzDD,CAAC,EAAE/G,OAAO,EAAEiD,WAAW,GAAG,CAAC,EAAE+D,QAAQ,GAAG,aAAa,CAAC,IACtDL,cAAc,CAACI,CAAC,EAAE9G,QAAQ,EAAEE,MAAM,CAAC;AAE3C"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["xss","setCookieParser","camelCase","capitalize","isEmpty","CONSTANTS","LOWER_CASE","UPPER_CASE","HEXADECIMAL","NUMBERS","Exception","message","response","name","ExceptionClass","Error","constructor","status","pascalCase","time","Math","floor","Date","now","sleepMs","milliseconds","Promise","resolve","setTimeout","sleep","seconds","promiseTimeout","promise","reject","timer","then","value","clearTimeout","catch","reason","splitClear","rawText","separator","split","map","item","trim","filter","findKeyNode","key","node","pair","hasOwnProperty","index","result","checkEmpty","upperCaseFirst","str","length","toUpperCase","slice","lowerCaseFirst","toLowerCase","titleCase","word","join","objectStringify","obj","toString","String","limitString","limit","omission","substring","safeString","whiteList","stripIgnoreTag","stripIgnoreTagBody","randomString","useNumbers","useUppercase","characters","i","randomIndex","random","randomHex","randomInteger","min","max","callback","minNotSpecified","isSync","randomNumber","randomUuid","useDashes","d","uuid","replace","c","r","replaceAll","randomWeighted","dict","randomFunc","totalWeight","elements","Object","keys","weights","values","reduce","sum","weight","randomNum","weightSum","cookieDict","res","decodeValues","cookies","parse","cookie","cookieHeader","entries","isIntlHttpCode","httpCode","undefined","isIntlError","e","includes"],"sources":["../src/index.js"],"sourcesContent":["import xss from \"xss\";\r\nimport setCookieParser from \"set-cookie-parser\";\r\nimport camelCase from \"lodash/camelCase.js\";\r\nimport capitalize from \"lodash/capitalize.js\";\r\nimport isEmpty from \"lodash/isEmpty.js\";\r\n\r\n\r\nexport const CONSTANTS = {\r\n LOWER_CASE: \"abcdefghijklmnopqrstuvwxyz\",\r\n UPPER_CASE: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\r\n HEXADECIMAL: \"0123456789abcdef\",\r\n NUMBERS: \"0123456789\",\r\n};\r\n\r\nexport function Exception(message, response = {}, name = null) {\r\n class ExceptionClass extends Error {\r\n constructor(message, response, name) {\r\n super(message);\r\n response.status = response.status || 400;\r\n this.response = response;\r\n this.name = name ? pascalCase(name) : \"Exception\";\r\n }\r\n }\r\n\r\n return new ExceptionClass(message, response, name);\r\n}\r\n\r\nexport function time() {\r\n return Math.floor(Date.now() / 1000);\r\n}\r\n\r\nexport async function sleepMs(milliseconds) {\r\n return new Promise(resolve => setTimeout(resolve, milliseconds));\r\n}\r\n\r\nexport async function sleep(seconds) {\r\n return await sleepMs(seconds * 1000);\r\n}\r\n\r\nexport function promiseTimeout(milliseconds, promise) {\r\n return new Promise((resolve, reject) => {\r\n const timer = setTimeout(() => {\r\n reject(new Error('Promise timed out after ' + milliseconds + 'ms'));\r\n }, milliseconds);\r\n\r\n promise\r\n .then(value => {\r\n clearTimeout(timer);\r\n resolve(value);\r\n })\r\n .catch(reason => {\r\n clearTimeout(timer);\r\n reject(reason);\r\n });\r\n });\r\n}\r\n\r\nexport function splitClear(rawText, separator = /\\r?\\n/) {\r\n return rawText.split(separator).map(item => item.trim()).filter(item => !isEmpty(item));\r\n}\r\n\r\nexport function findKeyNode(key, node, pair = null) {\r\n if (node && node.hasOwnProperty(key) && (pair ? node[key] === pair : true)) {\r\n return node;\r\n } else if (typeof node === 'object') {\r\n for (let index in node) {\r\n const result = findKeyNode(key, node[index], pair);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport function checkEmpty(value) {\r\n if (typeof value === \"number\") {\r\n return value === 0;\r\n } else {\r\n return isEmpty(value);\r\n }\r\n}\r\n\r\nexport function upperCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toUpperCase() + str.slice(1);\r\n}\r\n\r\nexport function lowerCaseFirst(str) {\r\n str = str || \"\";\r\n if (str.length < 1)\r\n return \"\";\r\n return str[0].toLowerCase() + str.slice(1);\r\n}\r\n\r\nexport function pascalCase(str) {\r\n return upperCaseFirst(camelCase(str));\r\n}\r\n\r\nexport function titleCase(str) {\r\n str = str || \"\";\r\n return str\r\n .split(' ')\r\n .map(word => capitalize(word))\r\n .join(' ');\r\n}\r\n\r\nexport function objectStringify(obj) {\r\n for (let key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n if (typeof obj[key] === 'object' && obj[key] !== null) {\r\n objectStringify(obj[key]);\r\n } else {\r\n if (obj[key]?.toString) {\r\n obj[key] = obj[key].toString();\r\n } else {\r\n obj[key] = String(obj[key]);\r\n }\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\n\r\nexport function limitString(str, limit = 35, omission = \"...\") {\r\n str = str || \"\";\r\n if (str.length <= limit) {\r\n return str;\r\n } else {\r\n return str.substring(0, limit - omission.length) + omission;\r\n }\r\n}\r\n\r\nexport function safeString(str) {\r\n str = str || \"\";\r\n return xss(str, {\r\n whiteList: {},\r\n stripIgnoreTag: true,\r\n stripIgnoreTagBody: [\"script\"]\r\n });\r\n}\r\n\r\nexport function randomString(length, useNumbers = true, useUppercase = false) {\r\n\r\n let characters = CONSTANTS.LOWER_CASE;\r\n if (useUppercase) characters += CONSTANTS.UPPER_CASE;\r\n if (useNumbers) characters += CONSTANTS.NUMBERS;\r\n\r\n let randomString = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n randomString += characters[randomIndex];\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function randomHex(length) {\r\n let result = '';\r\n for (let i = 0; i < length; i++) {\r\n const randomIndex = Math.floor(Math.random() * CONSTANTS.HEXADECIMAL.length);\r\n result += CONSTANTS.HEXADECIMAL[randomIndex];\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function randomInteger(min, max, callback) {\r\n const minNotSpecified = typeof max === 'undefined' || typeof max === 'function';\r\n\r\n if (minNotSpecified) {\r\n callback = max;\r\n max = min;\r\n min = 0;\r\n }\r\n\r\n const isSync = typeof callback === 'undefined';\r\n\r\n if (typeof min !== 'number' || typeof max !== 'number') {\r\n throw new Error('min and max must be numerical values');\r\n }\r\n if (max <= min) {\r\n throw new Error('max must be greater than min');\r\n }\r\n\r\n const randomNumber = Math.floor(Math.random() * (max - min)) + min;\r\n\r\n if (isSync) {\r\n return randomNumber;\r\n } else {\r\n if (typeof callback !== 'function') {\r\n throw new Error('callback must be a function');\r\n }\r\n callback(randomNumber);\r\n }\r\n}\r\n\r\nexport function randomUuid(useDashes = true) {\r\n let d = Date.now();\r\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\");\r\n}\r\n\r\nexport function randomWeighted(dict, randomFunc = (totalWeight) => Math.random() * totalWeight) {\r\n let elements = Object.keys(dict);\r\n let weights = Object.values(dict);\r\n\r\n let totalWeight = weights.reduce((sum, weight) => sum + weight, 0);\r\n\r\n let randomNum = randomFunc(totalWeight);\r\n let weightSum = 0;\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n weightSum += weights[i];\r\n if (randomNum <= weightSum) {\r\n return elements[i];\r\n }\r\n }\r\n}\r\n\r\nexport function cookieDict(res, decodeValues = false) {\r\n let dict = {};\r\n const cookies = setCookieParser.parse(res, {decodeValues: decodeValues});\r\n for (let cookie of cookies) {\r\n dict[cookie.name] = cookie.value;\r\n }\r\n return dict;\r\n}\r\n\r\nexport function cookieHeader(cookieDict) {\r\n return Object.entries(cookieDict)\r\n .map(([key, value]) => `${key}=${value}`)\r\n .join(';')\r\n}\r\n\r\nexport function isIntlHttpCode(httpCode) {\r\n return (\r\n httpCode === undefined ||\r\n httpCode === null ||\r\n httpCode === 0 ||\r\n httpCode === 100 ||\r\n httpCode === 402 ||\r\n httpCode === 407 ||\r\n (460 <= httpCode && httpCode < 470) ||\r\n 500 <= httpCode\r\n );\r\n}\r\n\r\nexport function isIntlError(e) {\r\n return (\r\n e?.message?.toLowerCase?.()?.includes?.(\"timeout\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"aborted\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"tls connection\") ||\r\n e?.message?.toLowerCase?.()?.includes?.(\"socket hang\") ||\r\n isIntlHttpCode(e?.response?.status)\r\n )\r\n}"],"mappings":"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"}
|
package/mjs/node.js
CHANGED
|
@@ -52,7 +52,7 @@ export function getVersion() {
|
|
|
52
52
|
const day = formatDatePart(date.getDate());
|
|
53
53
|
const hour = formatDatePart(date.getHours());
|
|
54
54
|
const minute = formatDatePart(date.getMinutes());
|
|
55
|
-
return parseFloat(`${year}${month}
|
|
55
|
+
return parseFloat(`${year}${month}${day}.${hour}${minute}`);
|
|
56
56
|
} catch {
|
|
57
57
|
return 1.0;
|
|
58
58
|
}
|
package/mjs/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","names":["fs","path","crypto","networkInterfaces","execSync","bcrypt","CONSTANTS","randomWeighted","splitClear","tokenString","length","useNumbers","useUppercase","lowercaseChars","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomInt","serverIp","interfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","mkdirSync","recursive","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}.${day}${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","names":["fs","path","crypto","networkInterfaces","execSync","bcrypt","CONSTANTS","randomWeighted","splitClear","tokenString","length","useNumbers","useUppercase","lowercaseChars","LOWER_CASE","uppercaseChars","UPPER_CASE","numbers","NUMBERS","characters","randomString","byte","randomBytes","index","tokenHex","Math","ceil","toString","slice","tokenUuid","useDashes","uuid","randomUUID","replaceAll","tokenWeighted","dict","randomInt","serverIp","interfaces","devName","interfaceValue","i","alias","family","address","startsWith","internal","getVersion","date","Date","trim","formatDatePart","value","padStart","year","getFullYear","month","getMonth","day","getDate","hour","getHours","minute","getMinutes","parseFloat","createNumDir","mainDirectory","mkdirSync","recursive","join","e","console","error","message","md5","data","createHash","update","digest","hashBcrypt","plainText","encryptionKey","hashSync","genSaltSync","verifyBcrypt","hash","compareSync","formatProxy","proxy","protocol","splitByProtocol","split","includes","proxyParts","pop","proxyEnd","parseInt","proxyStart","proxyObject","args","splitById","splitByConn","host","port","splitByAuth","auth","username","password","proxyValue","proxies","replace"],"sources":["../src/node.js"],"sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport crypto from \"crypto\";\r\nimport {networkInterfaces} from \"os\";\r\nimport {execSync} from \"child_process\";\r\n\r\nimport bcrypt from \"bcrypt\";\r\n\r\nimport {CONSTANTS, randomWeighted, splitClear} from \"./index.js\";\r\n\r\n\r\nexport function tokenString(length, useNumbers = true, useUppercase = false) {\r\n const lowercaseChars = CONSTANTS.LOWER_CASE;\r\n const uppercaseChars = CONSTANTS.UPPER_CASE;\r\n const numbers = CONSTANTS.NUMBERS;\r\n\r\n let characters = lowercaseChars;\r\n if (useUppercase) characters += uppercaseChars;\r\n if (useNumbers) characters += numbers;\r\n\r\n let randomString = '';\r\n while (randomString.length < length) {\r\n const byte = crypto.randomBytes(1)[0];\r\n const index = byte % characters.length;\r\n if (byte < (256 - (256 % characters.length))) {\r\n randomString += characters[index];\r\n }\r\n }\r\n\r\n return randomString;\r\n}\r\n\r\nexport function tokenHex(length) {\r\n return crypto\r\n .randomBytes(Math.ceil(length / 2))\r\n .toString('hex')\r\n .slice(0, length);\r\n}\r\n\r\nexport function tokenUuid(useDashes = true) {\r\n const uuid = crypto.randomUUID().toString();\r\n return useDashes ? uuid : uuid.replaceAll(\"-\", \"\")\r\n}\r\n\r\nexport function tokenWeighted(dict) {\r\n return randomWeighted(dict, crypto.randomInt);\r\n}\r\n\r\nexport function serverIp() {\r\n const interfaces = networkInterfaces();\r\n for (const devName in interfaces) {\r\n const interfaceValue = interfaces[devName];\r\n for (let i = 0; i < interfaceValue.length; i++) {\r\n const alias = interfaceValue[i];\r\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.address.startsWith(\"192.168.\") && !alias.internal)\r\n return alias.address;\r\n }\r\n }\r\n return '127.0.0.1';\r\n}\r\n\r\nexport function getVersion() {\r\n try {\r\n const date = new Date(execSync('git show -s --format=%ci HEAD').toString().trim());\r\n const formatDatePart = (value) => value.toString().padStart(2, '0');\r\n const year = date.getFullYear().toString().slice(-2);\r\n const month = formatDatePart(date.getMonth() + 1);\r\n const day = formatDatePart(date.getDate());\r\n const hour = formatDatePart(date.getHours());\r\n const minute = formatDatePart(date.getMinutes());\r\n return parseFloat(`${year}${month}${day}.${hour}${minute}`);\r\n } catch {\r\n return 1.0;\r\n }\r\n}\r\n\r\nexport function createNumDir(mainDirectory) {\r\n fs.mkdirSync(mainDirectory, {recursive: true});\r\n for (let i = 0; i <= 9; i++) {\r\n try {\r\n fs.mkdirSync(path.join(mainDirectory, i.toString()));\r\n } catch (e) {\r\n console.error(`createNumDir:${i}`, e.message);\r\n }\r\n }\r\n}\r\n\r\nexport function md5(data) {\r\n return crypto.createHash('md5').update(data).digest(\"hex\");\r\n}\r\n\r\nexport function hashBcrypt(plainText, encryptionKey = \"\") {\r\n return bcrypt.hashSync(plainText + encryptionKey, bcrypt.genSaltSync(10));\r\n}\r\n\r\nexport function verifyBcrypt(plainText, hash, encryptionKey = \"\") {\r\n return bcrypt.compareSync(plainText + encryptionKey, hash);\r\n}\r\n\r\nexport function formatProxy(proxy, protocol = \"http\") {\r\n proxy = proxy.trim();\r\n const splitByProtocol = proxy.split(\"://\");\r\n if (1 < splitByProtocol.length)\r\n protocol = splitByProtocol[0];\r\n proxy = splitByProtocol[splitByProtocol.length - 1];\r\n if (!proxy.includes(\"@\")) {\r\n const proxyParts = proxy.split(\":\");\r\n if (4 <= proxyParts.length) {\r\n proxy = `${proxyParts[proxyParts.length - 2]}:${proxyParts[proxyParts.length - 1]}@`;\r\n proxyParts.pop();\r\n proxyParts.pop();\r\n proxy += proxyParts.join(\":\");\r\n }\r\n }\r\n const proxyParts = proxy.split(':');\r\n const proxyEnd = parseInt(proxyParts[proxyParts.length - 1]);\r\n const proxyStart = proxyParts[proxyParts.length - 2];\r\n if (!proxyStart.includes(\".\")) {\r\n proxyParts.pop();\r\n proxyParts[proxyParts.length - 1] = crypto.randomInt(parseInt(proxyStart), proxyEnd + 1).toString();\r\n }\r\n return protocol + \"://\" + proxyParts.join(':');\r\n}\r\n\r\nexport function proxyObject(...args) {\r\n let proxy = formatProxy(...args);\r\n const splitByProtocol = proxy.split('://');\r\n const splitById = splitByProtocol[splitByProtocol.length - 1].split('@');\r\n const splitByConn = splitById[splitById.length - 1].split(':');\r\n proxy = {\r\n protocol: splitByProtocol[0],\r\n host: splitByConn[0],\r\n port: parseInt(splitByConn[1]),\r\n };\r\n if (1 < splitById.length) {\r\n const splitByAuth = splitById[0].split(':');\r\n proxy.auth = {\r\n username: splitByAuth[0],\r\n password: splitByAuth[1]\r\n };\r\n }\r\n return proxy;\r\n}\r\n\r\nexport function proxyValue(proxies) {\r\n let proxy;\r\n proxies = proxies || \"\";\r\n proxies = splitClear(proxies);\r\n if (proxies.length < 1)\r\n return null;\r\n proxy = proxies[crypto.randomInt(0, proxies.length)];\r\n proxy = formatProxy(proxy);\r\n proxy = proxy.replace(\"{SESSION}\", tokenHex(8));\r\n return proxy || null;\r\n}"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melperjs",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.2.0",
|
|
4
4
|
"description": "Javascript module to use predefined common functions and utilities",
|
|
5
5
|
"keywords": [
|
|
6
|
+
"melperjs",
|
|
7
|
+
"melper js",
|
|
8
|
+
"helper js",
|
|
6
9
|
"helper",
|
|
7
10
|
"mixins",
|
|
8
11
|
"common functions",
|
|
9
12
|
"javascript helper",
|
|
10
|
-
"nodejs helper"
|
|
11
|
-
"lodash"
|
|
13
|
+
"nodejs helper"
|
|
12
14
|
],
|
|
13
15
|
"repository": {
|
|
14
16
|
"type": "git",
|
package/src/index.js
CHANGED
|
@@ -13,12 +13,16 @@ export const CONSTANTS = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
export function Exception(message, response = {}, name = null) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
class ExceptionClass extends Error {
|
|
17
|
+
constructor(message, response, name) {
|
|
18
|
+
super(message);
|
|
19
|
+
response.status = response.status || 400;
|
|
20
|
+
this.response = response;
|
|
21
|
+
this.name = name ? pascalCase(name) : "Exception";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return new ExceptionClass(message, response, name);
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
export function time() {
|
|
@@ -79,14 +83,14 @@ export function checkEmpty(value) {
|
|
|
79
83
|
|
|
80
84
|
export function upperCaseFirst(str) {
|
|
81
85
|
str = str || "";
|
|
82
|
-
if(str.length < 1)
|
|
86
|
+
if (str.length < 1)
|
|
83
87
|
return "";
|
|
84
88
|
return str[0].toUpperCase() + str.slice(1);
|
|
85
89
|
}
|
|
86
90
|
|
|
87
91
|
export function lowerCaseFirst(str) {
|
|
88
92
|
str = str || "";
|
|
89
|
-
if(str.length < 1)
|
|
93
|
+
if (str.length < 1)
|
|
90
94
|
return "";
|
|
91
95
|
return str[0].toLowerCase() + str.slice(1);
|
|
92
96
|
}
|
|
@@ -103,6 +107,23 @@ export function titleCase(str) {
|
|
|
103
107
|
.join(' ');
|
|
104
108
|
}
|
|
105
109
|
|
|
110
|
+
export function objectStringify(obj) {
|
|
111
|
+
for (let key in obj) {
|
|
112
|
+
if (obj.hasOwnProperty(key)) {
|
|
113
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
114
|
+
objectStringify(obj[key]);
|
|
115
|
+
} else {
|
|
116
|
+
if (obj[key]?.toString) {
|
|
117
|
+
obj[key] = obj[key].toString();
|
|
118
|
+
} else {
|
|
119
|
+
obj[key] = String(obj[key]);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return obj;
|
|
125
|
+
}
|
|
126
|
+
|
|
106
127
|
export function limitString(str, limit = 35, omission = "...") {
|
|
107
128
|
str = str || "";
|
|
108
129
|
if (str.length <= limit) {
|
package/src/node.js
CHANGED
|
@@ -68,7 +68,7 @@ export function getVersion() {
|
|
|
68
68
|
const day = formatDatePart(date.getDate());
|
|
69
69
|
const hour = formatDatePart(date.getHours());
|
|
70
70
|
const minute = formatDatePart(date.getMinutes());
|
|
71
|
-
return parseFloat(`${year}${month}
|
|
71
|
+
return parseFloat(`${year}${month}${day}.${hour}${minute}`);
|
|
72
72
|
} catch {
|
|
73
73
|
return 1.0;
|
|
74
74
|
}
|
package/test/script.js
CHANGED
|
@@ -41,6 +41,17 @@ import * as nodeHelper from "../src/node.js";
|
|
|
41
41
|
console.log(helper.upperCaseFirst("first letter upper"));
|
|
42
42
|
console.log(helper.lowerCaseFirst("First Letter Lower"));
|
|
43
43
|
console.log(helper.titleCase("THIS mUsT be Title"));
|
|
44
|
+
console.log(helper.objectStringify({
|
|
45
|
+
a: "hello",
|
|
46
|
+
b: 1,
|
|
47
|
+
c: undefined,
|
|
48
|
+
d: null,
|
|
49
|
+
e: {
|
|
50
|
+
ea: 2
|
|
51
|
+
},
|
|
52
|
+
f: [3,4,5],
|
|
53
|
+
g: false
|
|
54
|
+
}));
|
|
44
55
|
console.log(helper.limitString("LONG TEXT", 7));
|
|
45
56
|
console.log(helper.safeString("<strong>SAFE TEXT</strong>"));
|
|
46
57
|
console.log(helper.randomString(32, true, true));
|