ayiin 2.0.31 → 2.0.33

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/bin/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/bin/cli.js ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // CLI entry point
5
+ console.log("Welcome to ayiin CLI!");
6
+ const args = process.argv.slice(2);
7
+ if (args.length === 0) {
8
+ console.log("Usage: ayiin <command>");
9
+ process.exit(0);
10
+ }
11
+ switch (args[0]) {
12
+ case "hello":
13
+ console.log("Hai Ayiin, CLI sudah jalan!");
14
+ break;
15
+ case "version":
16
+ console.log(`ayiin CLI v2.0.20`);
17
+ break;
18
+ case "help":
19
+ console.log("Available commands: hello, version, help");
20
+ break;
21
+ default:
22
+ console.log(`Unknown command: ${args[0]}`);
23
+ }
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import Methods from "./methods";
2
+ export default class Ayiin extends Methods {
3
+ version: string;
4
+ constructor();
5
+ }
package/index.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ // @ts-ignore
7
+ const package_json_1 = __importDefault(require("./package.json"));
8
+ const methods_1 = __importDefault(require("./methods"));
9
+ class Ayiin extends methods_1.default {
10
+ version = package_json_1.default.version;
11
+ constructor() {
12
+ super();
13
+ }
14
+ }
15
+ exports.default = Ayiin;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const crypto_1 = __importDefault(require("crypto"));
7
+ class Crypt {
8
+ /**
9
+ * Performs Base encryption and decryption.
10
+ * @param {string | Buffer} input - The input data to be encrypted or decrypted.
11
+ * @param {string} key - The encryption/decryption key.
12
+ * @returns {Buffer} - The encrypted or decrypted data as a Buffer.
13
+ */
14
+ baseCrypt = (input, key) => {
15
+ const inputBuffer = Buffer.from(input, "ascii");
16
+ const keyBuffer = Buffer.from(key, "ascii");
17
+ const resultBuffer = Buffer.alloc(inputBuffer.length);
18
+ for (let i = 0; i < inputBuffer.length; i++) {
19
+ resultBuffer[i] = inputBuffer[i] ^ keyBuffer[i % keyBuffer.length];
20
+ }
21
+ return resultBuffer;
22
+ };
23
+ /**
24
+ * Encrypts a plaintext message using the given key.
25
+ * @param {string} text - The plaintext message to be encrypted.
26
+ * @param {string} key - The encryption key.
27
+ * @returns {string} - The encrypted data in Hex format.
28
+ */
29
+ encrypt = (text, key, bufferEncoding = "base64") => {
30
+ const encryptedBuffer = this.baseCrypt(text, key);
31
+ return encryptedBuffer.toString(bufferEncoding);
32
+ };
33
+ /**
34
+ * Decrypts an encrypted message using the given key.
35
+ * @param {string} encrypted - The encrypted data in Hex format.
36
+ * @param {string} key - The decryption key.
37
+ * @returns {string} - The decrypted plaintext message.
38
+ */
39
+ decrypt = (encrypted, key, bufferEncoding = "base64") => {
40
+ const encryptedBuffer = Buffer.from(encrypted, bufferEncoding);
41
+ const decryptedBuffer = this.baseCrypt(encryptedBuffer, key);
42
+ return decryptedBuffer.toString("ascii");
43
+ };
44
+ /**
45
+ * Converts a Hex string to its corresponding ASCII representation.
46
+ * @param {string} hexString - The Hex string to be converted.
47
+ * @returns {string} - The ASCII representation of the Hex string.
48
+ */
49
+ hexToAscii = (hexString) => {
50
+ const hexBuffer = Buffer.from(hexString, "hex");
51
+ return hexBuffer.toString("ascii");
52
+ };
53
+ /**
54
+ * Converts an ASCII string to its corresponding Hex representation.
55
+ * @param {string} asciiString - The ASCII string to be converted.
56
+ * @returns {string} - The Hex representation of the ASCII string.
57
+ */
58
+ asciiToHex = (asciiString) => {
59
+ const asciiBuffer = Buffer.from(asciiString, "ascii");
60
+ return asciiBuffer.toString("hex");
61
+ };
62
+ md5 = (data, encoding) => {
63
+ if (!encoding)
64
+ encoding = "hex";
65
+ let hasho = crypto_1.default.createHash("md5").update(data).digest(encoding);
66
+ return hasho;
67
+ };
68
+ }
69
+ exports.default = Crypt;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const crypt_1 = __importDefault(require("./crypt"));
7
+ const tools_1 = __importDefault(require("./tools"));
8
+ const response_1 = __importDefault(require("./response"));
9
+ class Methods {
10
+ }
11
+ // copy instance properties
12
+ Object.assign(Methods.prototype, new tools_1.default());
13
+ Object.assign(Methods.prototype, new crypt_1.default());
14
+ Object.assign(Methods.prototype, new response_1.default());
15
+ exports.default = Methods;
@@ -1,62 +1,54 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- Object.defineProperty(exports, "default", {
5
- enumerable: true,
6
- get: function() {
7
- return _default;
8
- }
9
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
10
3
  class ResponseApi {
11
- success = ({ caption, data, code })=>{
4
+ success = ({ caption, data, code, }) => {
12
5
  code = code ? Number(String(code) + "7400") : 2007400;
13
6
  return {
14
7
  responseCode: code,
15
8
  responseSuccess: true,
16
9
  responseMessage: `[Success] - ${caption}`,
17
- responseData: data
10
+ responseData: data,
18
11
  };
19
12
  };
20
- badRequest = ({ caption, title, data })=>{
13
+ badRequest = ({ caption, title, data, }) => {
21
14
  return {
22
15
  responseCode: 4007400,
23
16
  responseSuccess: false,
24
17
  responseMessage: `[${title ? title : "Bad Request"}] - ${caption}`,
25
- responseData: data
18
+ responseData: data,
26
19
  };
27
20
  };
28
- invalidFields = ({ caption, data })=>{
21
+ invalidFields = ({ caption, data }) => {
29
22
  return {
30
23
  responseCode: 4007401,
31
24
  responseSuccess: false,
32
25
  responseMessage: `[Invalid Fields] - ${caption}`,
33
- responseData: data
26
+ responseData: data,
34
27
  };
35
28
  };
36
- notFound = ({ caption, data })=>{
29
+ notFound = ({ caption, data }) => {
37
30
  return {
38
31
  responseCode: 4047400,
39
32
  responseSuccess: false,
40
33
  responseMessage: `[Not Found] - ${caption}`,
41
- responseData: data
34
+ responseData: data,
42
35
  };
43
36
  };
44
- unauthorized = ({ caption, data })=>{
37
+ unauthorized = ({ caption, data }) => {
45
38
  return {
46
39
  responseCode: 4017400,
47
40
  responseSuccess: false,
48
41
  responseMessage: `[Unauthorized] - ${caption}`,
49
- responseData: data
42
+ responseData: data,
50
43
  };
51
44
  };
52
- internalServer = ({ caption, data })=>{
45
+ internalServer = ({ caption, data }) => {
53
46
  return {
54
47
  responseCode: 5007400,
55
48
  responseSuccess: false,
56
49
  responseMessage: `[Internal Server Error] - ${caption}`,
57
- responseData: data
50
+ responseData: data,
58
51
  };
59
52
  };
60
53
  }
61
- const _default = ResponseApi;
62
- //# sourceMappingURL=response.js.map
54
+ exports.default = ResponseApi;
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class Tools {
4
+ /**
5
+ * Format money ke string sesuai locale
6
+ * @memberof Tools
7
+ * @param {number | string} amount - jumlah uang
8
+ * @param {Intl.LocalesArgument} locales - default "id-ID"
9
+ * @param {Intl.NumberFormatOptions} options - default currency IDR
10
+ * @returns {string} string
11
+ */
12
+ formatMoney = (amount, locales = "id-ID", options = {
13
+ style: "currency",
14
+ currency: "IDR",
15
+ minimumFractionDigits: 0,
16
+ }) => {
17
+ return new Intl.NumberFormat(locales, options).format(Number(amount));
18
+ };
19
+ /**
20
+ * Generate unique ID dengan pilihan tipe
21
+ * @param {"number"|"string"|"mixed"} type - tipe ID (angka, string, atau campuran)
22
+ * @param {number} length - panjang ID (default 8)
23
+ * @returns {string} ID unik acak
24
+ */
25
+ uniqueId = ({ type = "mixed", length = 8, prefix, }) => {
26
+ let chars;
27
+ switch (type) {
28
+ case "number":
29
+ chars = "0123456789";
30
+ break;
31
+ case "string":
32
+ chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
33
+ break;
34
+ default:
35
+ chars =
36
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
37
+ }
38
+ let id = "";
39
+ for (let i = 0; i < Number(length); i++) {
40
+ id += chars[Math.floor(Math.random() * chars.length)];
41
+ }
42
+ return prefix ? prefix + id : id;
43
+ };
44
+ /**
45
+ * Generate UUID v4 sederhana
46
+ * @returns {string}
47
+ */
48
+ randomUuid = () => {
49
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
50
+ const r = (Math.random() * 16) | 0;
51
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
52
+ return v.toString(16);
53
+ });
54
+ };
55
+ /**
56
+ * Pick a random from array
57
+ * @param {T[]} array
58
+ * @memberof Tools
59
+ * @returns {T} item acak dari array
60
+ */
61
+ randomItem = (array) => {
62
+ return array[Math.floor(Math.random() * array.length)];
63
+ };
64
+ /**
65
+ * Ambil beberapa item acak unik dari array
66
+ * @param {T[]} array
67
+ * @param {number} count - jumlah item
68
+ * @returns {T[]} array item acak unik dari array
69
+ */
70
+ randomMany = (array, count) => {
71
+ const copy = [...array];
72
+ for (let i = copy.length - 1; i > 0; i--) {
73
+ const j = Math.floor(Math.random() * (i + 1));
74
+ [copy[i], copy[j]] = [copy[j], copy[i]];
75
+ }
76
+ return copy.slice(0, Number(count));
77
+ };
78
+ /**
79
+ * Validasi apakah string adalah email
80
+ * @param {string} str
81
+ * @returns {boolean} true jika string adalah email, false jika bukan
82
+ */
83
+ isEmail = (str) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str);
84
+ /**
85
+ * Validasi apakah string adalah URL
86
+ * @param {string} str
87
+ * @returns {boolean} true jika string adalah URL, false jika bukan
88
+ */
89
+ isUrl = (str) => {
90
+ try {
91
+ new URL(str);
92
+ return true;
93
+ }
94
+ catch {
95
+ return false;
96
+ }
97
+ };
98
+ /**
99
+ * Format tanggal ke string sesuai locale
100
+ * @param {Date} date
101
+ * @param {Intl.LocalesArgument} locales - default "id-ID"
102
+ * @returns {string} string
103
+ */
104
+ formatDate = (date, locales = "id-ID") => new Intl.DateTimeFormat(locales, {
105
+ year: "numeric",
106
+ month: "long",
107
+ day: "numeric",
108
+ hour: "2-digit",
109
+ minute: "2-digit",
110
+ }).format(date);
111
+ /**
112
+ * Hitung waktu relatif (misalnya "5 menit lalu")
113
+ * @param {Date} date
114
+ * @returns {string} string
115
+ */
116
+ timeAgo = (date) => {
117
+ const diff = Date.now() - date.getTime();
118
+ const seconds = Math.floor(diff / 1000);
119
+ if (seconds < 60)
120
+ return `${seconds} detik lalu`;
121
+ const minutes = Math.floor(seconds / 60);
122
+ if (minutes < 60)
123
+ return `${minutes} menit lalu`;
124
+ const hours = Math.floor(minutes / 60);
125
+ if (hours < 24)
126
+ return `${hours} jam lalu`;
127
+ const days = Math.floor(hours / 24);
128
+ return `${days} hari lalu`;
129
+ };
130
+ /**
131
+ * Convert string menjadi camelCase
132
+ * @param {string} input - string yang akan diubah
133
+ * @returns {string} camelCase string
134
+ */
135
+ toCamelCase = (input) => {
136
+ return input
137
+ .toLowerCase()
138
+ .replace(/[-_\s]+(.)?/g, (_, chr) => (chr ? chr.toUpperCase() : ""));
139
+ };
140
+ /**
141
+ * Capitalize string (huruf pertama jadi kapital)
142
+ * @param {string} input - string yang akan diubah
143
+ * @returns {string} string dengan huruf pertama kapital
144
+ */
145
+ capitalize = (input) => {
146
+ if (!input)
147
+ return "";
148
+ return input.charAt(0).toUpperCase() + input.slice(1);
149
+ };
150
+ slugify = (str) => {
151
+ return str
152
+ .toLowerCase()
153
+ .replace(/\s+/g, "-")
154
+ .replace(/[^\w-]+/g, "");
155
+ };
156
+ deepClone = (obj) => {
157
+ return JSON.parse(JSON.stringify(obj));
158
+ };
159
+ isEmptyObject = (obj) => {
160
+ return Object.keys(obj).length === 0;
161
+ };
162
+ sleep = (ms) => {
163
+ return new Promise((resolve) => setTimeout(resolve, ms));
164
+ };
165
+ retry = async (fn, retries = 3) => {
166
+ let error;
167
+ for (let i = 0; i < retries; i++) {
168
+ try {
169
+ return await fn();
170
+ }
171
+ catch (err) {
172
+ error = err;
173
+ }
174
+ }
175
+ throw error;
176
+ };
177
+ }
178
+ exports.default = Tools;
package/package.json CHANGED
@@ -1,21 +1,13 @@
1
1
  {
2
2
  "name": "ayiin",
3
- "version": "2.0.31",
3
+ "version": "2.0.33",
4
4
  "description": "Library Pribadi Yang Gak Ada Isinya",
5
- "exports": {
6
- ".": {
7
- "require": "./dist/index.cjs",
8
- "import": "./dist/index.js",
9
- "types": "./dist/index.d.ts"
10
- }
5
+ "main": "index.js",
6
+ "bin": {
7
+ "axd": "./bin/cli.js"
11
8
  },
12
- "files": [
13
- "dist/**/*"
14
- ],
15
9
  "scripts": {
16
- "build:cjs": "rollup -c rollup.config.mjs",
17
- "build:types": "tsc --outDir dist",
18
- "build": "bun run build:cjs && bun run build:types"
10
+ "build": "tsc"
19
11
  },
20
12
  "repository": {
21
13
  "type": "git",
@@ -30,11 +22,7 @@
30
22
  ],
31
23
  "license": "GPL-3.0-only",
32
24
  "devDependencies": {
33
- "@rollup/plugin-json": "^6.1.0",
34
- "@types/bun": "^1.4.1",
35
25
  "@types/node": "^26.3.0",
36
- "rollup": "^4.63.1",
37
- "rollup-plugin-swc3": "^0.12.1",
38
26
  "typescript": "^7"
39
27
  }
40
28
  }
package/dist/index.cjs DELETED
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- const _index = /*#__PURE__*/ _interop_require_default(require("./methods/index"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- class Ayiin {
19
- }
20
- // copy instance properties
21
- Object.assign(Ayiin.prototype, new _index.default());
22
- const _default = Ayiin;
23
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import Methods from \"./methods/index\";\n\nclass Ayiin {}\n\n// copy instance properties\nObject.assign(Ayiin.prototype, new Methods());\n\ninterface Ayiin extends Methods {}\n\nexport default Ayiin;\n"],"names":["Ayiin","Object","assign","prototype","Methods"],"mappings":";;;;;AASA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAToB,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA;;;;;;AAEpB,MAAMA,KAAAA,CAAAA;AAAO;AAEb;AACAC,MAAAA,CAAOC,MAAM,CAACF,KAAAA,CAAMG,SAAS,EAAE,IAAIC,MAAAA,CAAAA,OAAO,EAAA,CAAA;MAI1C,QAAA,GAAeJ,KAAAA"}
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import Methods from "./methods/index";
2
- declare class Ayiin {
3
- }
4
- interface Ayiin extends Methods {
5
- }
6
- export default Ayiin;
package/dist/index.js DELETED
@@ -1,21 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- Object.defineProperty(exports, "default", {
5
- enumerable: true,
6
- get: function() {
7
- return _default;
8
- }
9
- });
10
- const _index = /*#__PURE__*/ _interop_require_default(require("./methods/index"));
11
- function _interop_require_default(obj) {
12
- return obj && obj.__esModule ? obj : {
13
- default: obj
14
- };
15
- }
16
- class Ayiin {
17
- }
18
- // copy instance properties
19
- Object.assign(Ayiin.prototype, new _index.default());
20
- const _default = Ayiin;
21
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import Methods from \"./methods/index\";\n\nclass Ayiin {}\n\n// copy instance properties\nObject.assign(Ayiin.prototype, new Methods());\n\ninterface Ayiin extends Methods {}\n\nexport default Ayiin;\n"],"names":["Ayiin","Object","assign","prototype","Methods"],"mappings":";;;AASA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAToB,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA;;;;;;AAEpB,MAAMA,KAAAA,CAAAA;AAAO;AAEb;AACAC,MAAAA,CAAOC,MAAM,CAACF,KAAAA,CAAMG,SAAS,EAAE,IAAIC,MAAAA,CAAAA,OAAO,EAAA,CAAA;MAI1C,QAAA,GAAeJ,KAAAA"}
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- class Crypt {
19
- /**
20
- * Performs Base encryption and decryption.
21
- * @param {string | Buffer} input - The input data to be encrypted or decrypted.
22
- * @param {string} key - The encryption/decryption key.
23
- * @returns {Buffer} - The encrypted or decrypted data as a Buffer.
24
- */ baseCrypt = (input, key)=>{
25
- const inputBuffer = Buffer.from(input, "ascii");
26
- const keyBuffer = Buffer.from(key, "ascii");
27
- const resultBuffer = Buffer.alloc(inputBuffer.length);
28
- for(let i = 0; i < inputBuffer.length; i++){
29
- resultBuffer[i] = inputBuffer[i] ^ keyBuffer[i % keyBuffer.length];
30
- }
31
- return resultBuffer;
32
- };
33
- /**
34
- * Encrypts a plaintext message using the given key.
35
- * @param {string} text - The plaintext message to be encrypted.
36
- * @param {string} key - The encryption key.
37
- * @returns {string} - The encrypted data in Hex format.
38
- */ encrypt = (text, key, bufferEncoding = "base64")=>{
39
- const encryptedBuffer = this.baseCrypt(text, key);
40
- return encryptedBuffer.toString(bufferEncoding);
41
- };
42
- /**
43
- * Decrypts an encrypted message using the given key.
44
- * @param {string} encrypted - The encrypted data in Hex format.
45
- * @param {string} key - The decryption key.
46
- * @returns {string} - The decrypted plaintext message.
47
- */ decrypt = (encrypted, key, bufferEncoding = "base64")=>{
48
- const encryptedBuffer = Buffer.from(encrypted, bufferEncoding);
49
- const decryptedBuffer = this.baseCrypt(encryptedBuffer, key);
50
- return decryptedBuffer.toString("ascii");
51
- };
52
- /**
53
- * Converts a Hex string to its corresponding ASCII representation.
54
- * @param {string} hexString - The Hex string to be converted.
55
- * @returns {string} - The ASCII representation of the Hex string.
56
- */ hexToAscii = (hexString)=>{
57
- const hexBuffer = Buffer.from(hexString, "hex");
58
- return hexBuffer.toString("ascii");
59
- };
60
- /**
61
- * Converts an ASCII string to its corresponding Hex representation.
62
- * @param {string} asciiString - The ASCII string to be converted.
63
- * @returns {string} - The Hex representation of the ASCII string.
64
- */ asciiToHex = (asciiString)=>{
65
- const asciiBuffer = Buffer.from(asciiString, "ascii");
66
- return asciiBuffer.toString("hex");
67
- };
68
- md5 = (data, encoding)=>{
69
- if (!encoding) encoding = "hex";
70
- let hasho = _crypto.default.createHash("md5").update(data).digest(encoding);
71
- return hasho;
72
- };
73
- }
74
- const _default = Crypt;
75
- //# sourceMappingURL=crypt.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypt.cjs","sources":["../../src/methods/crypt.ts"],"sourcesContent":["import crypto from \"crypto\";\n\nclass Crypt {\n /**\n * Performs Base encryption and decryption.\n * @param {string | Buffer} input - The input data to be encrypted or decrypted.\n * @param {string} key - The encryption/decryption key.\n * @returns {Buffer} - The encrypted or decrypted data as a Buffer.\n */\n private baseCrypt = (input: any, key: string) => {\n const inputBuffer = Buffer.from(input, \"ascii\");\n const keyBuffer = Buffer.from(key, \"ascii\");\n const resultBuffer = Buffer.alloc(inputBuffer.length);\n\n for (let i = 0; i < inputBuffer.length; i++) {\n resultBuffer[i] = inputBuffer[i]! ^ keyBuffer[i % keyBuffer.length]!;\n }\n\n return resultBuffer;\n };\n\n /**\n * Encrypts a plaintext message using the given key.\n * @param {string} text - The plaintext message to be encrypted.\n * @param {string} key - The encryption key.\n * @returns {string} - The encrypted data in Hex format.\n */\n encrypt = (\n text: string,\n key: string,\n bufferEncoding: BufferEncoding = \"base64\",\n ) => {\n const encryptedBuffer = this.baseCrypt(text, key);\n return encryptedBuffer.toString(bufferEncoding);\n };\n\n /**\n * Decrypts an encrypted message using the given key.\n * @param {string} encrypted - The encrypted data in Hex format.\n * @param {string} key - The decryption key.\n * @returns {string} - The decrypted plaintext message.\n */\n decrypt = (\n encrypted: string,\n key: string,\n bufferEncoding: BufferEncoding = \"base64\",\n ) => {\n const encryptedBuffer = Buffer.from(encrypted, bufferEncoding);\n const decryptedBuffer = this.baseCrypt(encryptedBuffer, key);\n return decryptedBuffer.toString(\"ascii\");\n };\n\n /**\n * Converts a Hex string to its corresponding ASCII representation.\n * @param {string} hexString - The Hex string to be converted.\n * @returns {string} - The ASCII representation of the Hex string.\n */\n hexToAscii = (hexString: string) => {\n const hexBuffer = Buffer.from(hexString, \"hex\");\n return hexBuffer.toString(\"ascii\");\n };\n\n /**\n * Converts an ASCII string to its corresponding Hex representation.\n * @param {string} asciiString - The ASCII string to be converted.\n * @returns {string} - The Hex representation of the ASCII string.\n */\n asciiToHex = (asciiString: string) => {\n const asciiBuffer = Buffer.from(asciiString, \"ascii\");\n return asciiBuffer.toString(\"hex\");\n };\n\n md5 = (data: string, encoding: BufferEncoding) => {\n if (!encoding) encoding = \"hex\";\n let hasho = crypto.createHash(\"md5\").update(data).digest(encoding);\n return hasho;\n };\n}\n\nexport default Crypt;\n"],"names":["Crypt","baseCrypt","input","key","inputBuffer","Buffer","from","keyBuffer","resultBuffer","alloc","length","i","encrypt","text","bufferEncoding","encryptedBuffer","toString","decrypt","encrypted","decryptedBuffer","hexToAscii","hexString","hexBuffer","asciiToHex","asciiString","asciiBuffer","md5","data","encoding","hasho","crypto","createHash","update","digest"],"mappings":";;;;;AA+EA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AA/EmB,MAAA,OAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;;AAEnB,MAAMA,KAAAA,CAAAA;AACJ;;;;;MAMQC,SAAAA,GAAY,CAACC,KAAAA,EAAYC,GAAAA,GAAAA;AAC/B,QAAA,MAAMC,WAAAA,GAAcC,MAAAA,CAAOC,IAAI,CAACJ,KAAAA,EAAO,OAAA,CAAA;AACvC,QAAA,MAAMK,SAAAA,GAAYF,MAAAA,CAAOC,IAAI,CAACH,GAAAA,EAAK,OAAA,CAAA;AACnC,QAAA,MAAMK,YAAAA,GAAeH,MAAAA,CAAOI,KAAK,CAACL,YAAYM,MAAM,CAAA;AAEpD,QAAA,IAAK,IAAIC,CAAAA,GAAI,CAAA,EAAGA,IAAIP,WAAAA,CAAYM,MAAM,EAAEC,CAAAA,EAAAA,CAAK;AAC3CH,YAAAA,YAAY,CAACG,CAAAA,CAAE,GAAGP,WAAW,CAACO,CAAAA,CAAE,GAAIJ,SAAS,CAACI,CAAAA,GAAIJ,SAAAA,CAAUG,MAAM,CAAC;AACrE,QAAA;QAEA,OAAOF,YAAAA;IACT,CAAA;AAEA;;;;;AAKC,MACDI,OAAAA,GAAU,CACRC,IAAAA,EACAV,GAAAA,EACAW,iBAAiC,QAAQ,GAAA;AAEzC,QAAA,MAAMC,eAAAA,GAAkB,IAAI,CAACd,SAAS,CAACY,IAAAA,EAAMV,GAAAA,CAAAA;QAC7C,OAAOY,eAAAA,CAAgBC,QAAQ,CAACF,cAAAA,CAAAA;IAClC,CAAA;AAEA;;;;;AAKC,MACDG,OAAAA,GAAU,CACRC,SAAAA,EACAf,GAAAA,EACAW,iBAAiC,QAAQ,GAAA;AAEzC,QAAA,MAAMC,eAAAA,GAAkBV,MAAAA,CAAOC,IAAI,CAACY,SAAAA,EAAWJ,cAAAA,CAAAA;AAC/C,QAAA,MAAMK,eAAAA,GAAkB,IAAI,CAAClB,SAAS,CAACc,eAAAA,EAAiBZ,GAAAA,CAAAA;QACxD,OAAOgB,eAAAA,CAAgBH,QAAQ,CAAC,OAAA,CAAA;IAClC,CAAA;AAEA;;;;AAIC,MACDI,aAAa,CAACC,SAAAA,GAAAA;AACZ,QAAA,MAAMC,SAAAA,GAAYjB,MAAAA,CAAOC,IAAI,CAACe,SAAAA,EAAW,KAAA,CAAA;QACzC,OAAOC,SAAAA,CAAUN,QAAQ,CAAC,OAAA,CAAA;IAC5B,CAAA;AAEA;;;;AAIC,MACDO,aAAa,CAACC,WAAAA,GAAAA;AACZ,QAAA,MAAMC,WAAAA,GAAcpB,MAAAA,CAAOC,IAAI,CAACkB,WAAAA,EAAa,OAAA,CAAA;QAC7C,OAAOC,WAAAA,CAAYT,QAAQ,CAAC,KAAA,CAAA;IAC9B,CAAA;AAEAU,IAAAA,GAAAA,GAAM,CAACC,IAAAA,EAAcC,QAAAA,GAAAA;QACnB,IAAI,CAACA,UAAUA,QAAAA,GAAW,KAAA;QAC1B,IAAIC,KAAAA,GAAQC,OAAAA,CAAAA,OAAM,CAACC,UAAU,CAAC,OAAOC,MAAM,CAACL,IAAAA,CAAAA,CAAMM,MAAM,CAACL,QAAAA,CAAAA;QACzD,OAAOC,KAAAA;IACT,CAAA;AACF;MAEA,QAAA,GAAe7B,KAAAA"}
@@ -1,73 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- Object.defineProperty(exports, "default", {
5
- enumerable: true,
6
- get: function() {
7
- return _default;
8
- }
9
- });
10
- const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
11
- function _interop_require_default(obj) {
12
- return obj && obj.__esModule ? obj : {
13
- default: obj
14
- };
15
- }
16
- class Crypt {
17
- /**
18
- * Performs Base encryption and decryption.
19
- * @param {string | Buffer} input - The input data to be encrypted or decrypted.
20
- * @param {string} key - The encryption/decryption key.
21
- * @returns {Buffer} - The encrypted or decrypted data as a Buffer.
22
- */ baseCrypt = (input, key)=>{
23
- const inputBuffer = Buffer.from(input, "ascii");
24
- const keyBuffer = Buffer.from(key, "ascii");
25
- const resultBuffer = Buffer.alloc(inputBuffer.length);
26
- for(let i = 0; i < inputBuffer.length; i++){
27
- resultBuffer[i] = inputBuffer[i] ^ keyBuffer[i % keyBuffer.length];
28
- }
29
- return resultBuffer;
30
- };
31
- /**
32
- * Encrypts a plaintext message using the given key.
33
- * @param {string} text - The plaintext message to be encrypted.
34
- * @param {string} key - The encryption key.
35
- * @returns {string} - The encrypted data in Hex format.
36
- */ encrypt = (text, key, bufferEncoding = "base64")=>{
37
- const encryptedBuffer = this.baseCrypt(text, key);
38
- return encryptedBuffer.toString(bufferEncoding);
39
- };
40
- /**
41
- * Decrypts an encrypted message using the given key.
42
- * @param {string} encrypted - The encrypted data in Hex format.
43
- * @param {string} key - The decryption key.
44
- * @returns {string} - The decrypted plaintext message.
45
- */ decrypt = (encrypted, key, bufferEncoding = "base64")=>{
46
- const encryptedBuffer = Buffer.from(encrypted, bufferEncoding);
47
- const decryptedBuffer = this.baseCrypt(encryptedBuffer, key);
48
- return decryptedBuffer.toString("ascii");
49
- };
50
- /**
51
- * Converts a Hex string to its corresponding ASCII representation.
52
- * @param {string} hexString - The Hex string to be converted.
53
- * @returns {string} - The ASCII representation of the Hex string.
54
- */ hexToAscii = (hexString)=>{
55
- const hexBuffer = Buffer.from(hexString, "hex");
56
- return hexBuffer.toString("ascii");
57
- };
58
- /**
59
- * Converts an ASCII string to its corresponding Hex representation.
60
- * @param {string} asciiString - The ASCII string to be converted.
61
- * @returns {string} - The Hex representation of the ASCII string.
62
- */ asciiToHex = (asciiString)=>{
63
- const asciiBuffer = Buffer.from(asciiString, "ascii");
64
- return asciiBuffer.toString("hex");
65
- };
66
- md5 = (data, encoding)=>{
67
- if (!encoding) encoding = "hex";
68
- let hasho = _crypto.default.createHash("md5").update(data).digest(encoding);
69
- return hasho;
70
- };
71
- }
72
- const _default = Crypt;
73
- //# sourceMappingURL=crypt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypt.js","sources":["../../src/methods/crypt.ts"],"sourcesContent":["import crypto from \"crypto\";\n\nclass Crypt {\n /**\n * Performs Base encryption and decryption.\n * @param {string | Buffer} input - The input data to be encrypted or decrypted.\n * @param {string} key - The encryption/decryption key.\n * @returns {Buffer} - The encrypted or decrypted data as a Buffer.\n */\n private baseCrypt = (input: any, key: string) => {\n const inputBuffer = Buffer.from(input, \"ascii\");\n const keyBuffer = Buffer.from(key, \"ascii\");\n const resultBuffer = Buffer.alloc(inputBuffer.length);\n\n for (let i = 0; i < inputBuffer.length; i++) {\n resultBuffer[i] = inputBuffer[i]! ^ keyBuffer[i % keyBuffer.length]!;\n }\n\n return resultBuffer;\n };\n\n /**\n * Encrypts a plaintext message using the given key.\n * @param {string} text - The plaintext message to be encrypted.\n * @param {string} key - The encryption key.\n * @returns {string} - The encrypted data in Hex format.\n */\n encrypt = (\n text: string,\n key: string,\n bufferEncoding: BufferEncoding = \"base64\",\n ) => {\n const encryptedBuffer = this.baseCrypt(text, key);\n return encryptedBuffer.toString(bufferEncoding);\n };\n\n /**\n * Decrypts an encrypted message using the given key.\n * @param {string} encrypted - The encrypted data in Hex format.\n * @param {string} key - The decryption key.\n * @returns {string} - The decrypted plaintext message.\n */\n decrypt = (\n encrypted: string,\n key: string,\n bufferEncoding: BufferEncoding = \"base64\",\n ) => {\n const encryptedBuffer = Buffer.from(encrypted, bufferEncoding);\n const decryptedBuffer = this.baseCrypt(encryptedBuffer, key);\n return decryptedBuffer.toString(\"ascii\");\n };\n\n /**\n * Converts a Hex string to its corresponding ASCII representation.\n * @param {string} hexString - The Hex string to be converted.\n * @returns {string} - The ASCII representation of the Hex string.\n */\n hexToAscii = (hexString: string) => {\n const hexBuffer = Buffer.from(hexString, \"hex\");\n return hexBuffer.toString(\"ascii\");\n };\n\n /**\n * Converts an ASCII string to its corresponding Hex representation.\n * @param {string} asciiString - The ASCII string to be converted.\n * @returns {string} - The Hex representation of the ASCII string.\n */\n asciiToHex = (asciiString: string) => {\n const asciiBuffer = Buffer.from(asciiString, \"ascii\");\n return asciiBuffer.toString(\"hex\");\n };\n\n md5 = (data: string, encoding: BufferEncoding) => {\n if (!encoding) encoding = \"hex\";\n let hasho = crypto.createHash(\"md5\").update(data).digest(encoding);\n return hasho;\n };\n}\n\nexport default Crypt;\n"],"names":["Crypt","baseCrypt","input","key","inputBuffer","Buffer","from","keyBuffer","resultBuffer","alloc","length","i","encrypt","text","bufferEncoding","encryptedBuffer","toString","decrypt","encrypted","decryptedBuffer","hexToAscii","hexString","hexBuffer","asciiToHex","asciiString","asciiBuffer","md5","data","encoding","hasho","crypto","createHash","update","digest"],"mappings":";;;AA+EA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AA/EmB,MAAA,OAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;;;;;;AAEnB,MAAMA,KAAAA,CAAAA;AACJ;;;;;MAMQC,SAAAA,GAAY,CAACC,KAAAA,EAAYC,GAAAA,GAAAA;AAC/B,QAAA,MAAMC,WAAAA,GAAcC,MAAAA,CAAOC,IAAI,CAACJ,KAAAA,EAAO,OAAA,CAAA;AACvC,QAAA,MAAMK,SAAAA,GAAYF,MAAAA,CAAOC,IAAI,CAACH,GAAAA,EAAK,OAAA,CAAA;AACnC,QAAA,MAAMK,YAAAA,GAAeH,MAAAA,CAAOI,KAAK,CAACL,YAAYM,MAAM,CAAA;AAEpD,QAAA,IAAK,IAAIC,CAAAA,GAAI,CAAA,EAAGA,IAAIP,WAAAA,CAAYM,MAAM,EAAEC,CAAAA,EAAAA,CAAK;AAC3CH,YAAAA,YAAY,CAACG,CAAAA,CAAE,GAAGP,WAAW,CAACO,CAAAA,CAAE,GAAIJ,SAAS,CAACI,CAAAA,GAAIJ,SAAAA,CAAUG,MAAM,CAAC;AACrE,QAAA;QAEA,OAAOF,YAAAA;IACT,CAAA;AAEA;;;;;AAKC,MACDI,OAAAA,GAAU,CACRC,IAAAA,EACAV,GAAAA,EACAW,iBAAiC,QAAQ,GAAA;AAEzC,QAAA,MAAMC,eAAAA,GAAkB,IAAI,CAACd,SAAS,CAACY,IAAAA,EAAMV,GAAAA,CAAAA;QAC7C,OAAOY,eAAAA,CAAgBC,QAAQ,CAACF,cAAAA,CAAAA;IAClC,CAAA;AAEA;;;;;AAKC,MACDG,OAAAA,GAAU,CACRC,SAAAA,EACAf,GAAAA,EACAW,iBAAiC,QAAQ,GAAA;AAEzC,QAAA,MAAMC,eAAAA,GAAkBV,MAAAA,CAAOC,IAAI,CAACY,SAAAA,EAAWJ,cAAAA,CAAAA;AAC/C,QAAA,MAAMK,eAAAA,GAAkB,IAAI,CAAClB,SAAS,CAACc,eAAAA,EAAiBZ,GAAAA,CAAAA;QACxD,OAAOgB,eAAAA,CAAgBH,QAAQ,CAAC,OAAA,CAAA;IAClC,CAAA;AAEA;;;;AAIC,MACDI,aAAa,CAACC,SAAAA,GAAAA;AACZ,QAAA,MAAMC,SAAAA,GAAYjB,MAAAA,CAAOC,IAAI,CAACe,SAAAA,EAAW,KAAA,CAAA;QACzC,OAAOC,SAAAA,CAAUN,QAAQ,CAAC,OAAA,CAAA;IAC5B,CAAA;AAEA;;;;AAIC,MACDO,aAAa,CAACC,WAAAA,GAAAA;AACZ,QAAA,MAAMC,WAAAA,GAAcpB,MAAAA,CAAOC,IAAI,CAACkB,WAAAA,EAAa,OAAA,CAAA;QAC7C,OAAOC,WAAAA,CAAYT,QAAQ,CAAC,KAAA,CAAA;IAC9B,CAAA;AAEAU,IAAAA,GAAAA,GAAM,CAACC,IAAAA,EAAcC,QAAAA,GAAAA;QACnB,IAAI,CAACA,UAAUA,QAAAA,GAAW,KAAA;QAC1B,IAAIC,KAAAA,GAAQC,OAAAA,CAAAA,OAAM,CAACC,UAAU,CAAC,OAAOC,MAAM,CAACL,IAAAA,CAAAA,CAAMM,MAAM,CAACL,QAAAA,CAAAA;QACzD,OAAOC,KAAAA;IACT,CAAA;AACF;MAEA,QAAA,GAAe7B,KAAAA"}
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- const _crypt = /*#__PURE__*/ _interop_require_default(require("./crypt"));
13
- const _tools = /*#__PURE__*/ _interop_require_default(require("./tools"));
14
- const _response = /*#__PURE__*/ _interop_require_default(require("./response"));
15
- function _interop_require_default(obj) {
16
- return obj && obj.__esModule ? obj : {
17
- default: obj
18
- };
19
- }
20
- class Methods {
21
- }
22
- // copy instance properties
23
- Object.assign(Methods.prototype, new _tools.default());
24
- Object.assign(Methods.prototype, new _crypt.default());
25
- Object.assign(Methods.prototype, new _response.default());
26
- const _default = Methods;
27
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/methods/index.ts"],"sourcesContent":["import Crypt from \"./crypt\";\nimport Tools from \"./tools\";\nimport ResponseApi from \"./response\";\n\nclass Methods {}\n\n// copy instance properties\nObject.assign(Methods.prototype, new Tools());\nObject.assign(Methods.prototype, new Crypt());\nObject.assign(Methods.prototype, new ResponseApi());\n\ninterface Methods extends Crypt, Tools, ResponseApi {}\n\nexport default Methods;\n"],"names":["Methods","Object","assign","prototype","Tools","Crypt","ResponseApi"],"mappings":";;;;;AAaA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAbkB,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA;AACA,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA;AACM,MAAA,SAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA;;;;;;AAExB,MAAMA,OAAAA,CAAAA;AAAS;AAEf;AACAC,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIC,MAAAA,CAAAA,OAAK,EAAA,CAAA;AAC1CH,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIE,MAAAA,CAAAA,OAAK,EAAA,CAAA;AAC1CJ,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIG,SAAAA,CAAAA,OAAW,EAAA,CAAA;MAIhD,QAAA,GAAeN,OAAAA"}
@@ -1,25 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- Object.defineProperty(exports, "default", {
5
- enumerable: true,
6
- get: function() {
7
- return _default;
8
- }
9
- });
10
- const _crypt = /*#__PURE__*/ _interop_require_default(require("./crypt"));
11
- const _tools = /*#__PURE__*/ _interop_require_default(require("./tools"));
12
- const _response = /*#__PURE__*/ _interop_require_default(require("./response"));
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- class Methods {
19
- }
20
- // copy instance properties
21
- Object.assign(Methods.prototype, new _tools.default());
22
- Object.assign(Methods.prototype, new _crypt.default());
23
- Object.assign(Methods.prototype, new _response.default());
24
- const _default = Methods;
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../src/methods/index.ts"],"sourcesContent":["import Crypt from \"./crypt\";\nimport Tools from \"./tools\";\nimport ResponseApi from \"./response\";\n\nclass Methods {}\n\n// copy instance properties\nObject.assign(Methods.prototype, new Tools());\nObject.assign(Methods.prototype, new Crypt());\nObject.assign(Methods.prototype, new ResponseApi());\n\ninterface Methods extends Crypt, Tools, ResponseApi {}\n\nexport default Methods;\n"],"names":["Methods","Object","assign","prototype","Tools","Crypt","ResponseApi"],"mappings":";;;AAaA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAbkB,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA;AACA,MAAA,MAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA;AACM,MAAA,SAAA,iBAAA,wBAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA;;;;;;AAExB,MAAMA,OAAAA,CAAAA;AAAS;AAEf;AACAC,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIC,MAAAA,CAAAA,OAAK,EAAA,CAAA;AAC1CH,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIE,MAAAA,CAAAA,OAAK,EAAA,CAAA;AAC1CJ,MAAAA,CAAOC,MAAM,CAACF,OAAAA,CAAQG,SAAS,EAAE,IAAIG,SAAAA,CAAAA,OAAW,EAAA,CAAA;MAIhD,QAAA,GAAeN,OAAAA"}
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- class ResponseApi {
13
- success = ({ caption, data, code })=>{
14
- code = code ? Number(String(code) + "7400") : 2007400;
15
- return {
16
- responseCode: code,
17
- responseSuccess: true,
18
- responseMessage: `[Success] - ${caption}`,
19
- responseData: data
20
- };
21
- };
22
- badRequest = ({ caption, title, data })=>{
23
- return {
24
- responseCode: 4007400,
25
- responseSuccess: false,
26
- responseMessage: `[${title ? title : "Bad Request"}] - ${caption}`,
27
- responseData: data
28
- };
29
- };
30
- invalidFields = ({ caption, data })=>{
31
- return {
32
- responseCode: 4007401,
33
- responseSuccess: false,
34
- responseMessage: `[Invalid Fields] - ${caption}`,
35
- responseData: data
36
- };
37
- };
38
- notFound = ({ caption, data })=>{
39
- return {
40
- responseCode: 4047400,
41
- responseSuccess: false,
42
- responseMessage: `[Not Found] - ${caption}`,
43
- responseData: data
44
- };
45
- };
46
- unauthorized = ({ caption, data })=>{
47
- return {
48
- responseCode: 4017400,
49
- responseSuccess: false,
50
- responseMessage: `[Unauthorized] - ${caption}`,
51
- responseData: data
52
- };
53
- };
54
- internalServer = ({ caption, data })=>{
55
- return {
56
- responseCode: 5007400,
57
- responseSuccess: false,
58
- responseMessage: `[Internal Server Error] - ${caption}`,
59
- responseData: data
60
- };
61
- };
62
- }
63
- const _default = ResponseApi;
64
- //# sourceMappingURL=response.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response.cjs","sources":["../../src/methods/response.ts"],"sourcesContent":["class ResponseApi {\n success = ({\n caption,\n data,\n code,\n }: {\n caption: string;\n data: any;\n code?: number | string;\n }) => {\n code = code ? Number(String(code) + \"7400\") : 2007400;\n return {\n responseCode: code,\n responseSuccess: true,\n responseMessage: `[Success] - ${caption}`,\n responseData: data,\n };\n };\n\n badRequest = ({\n caption,\n title,\n data,\n }: {\n caption: string;\n title?: string;\n data?: any;\n }) => {\n return {\n responseCode: 4007400,\n responseSuccess: false,\n responseMessage: `[${title ? title : \"Bad Request\"}] - ${caption}`,\n responseData: data,\n };\n };\n\n invalidFields = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4007401,\n responseSuccess: false,\n responseMessage: `[Invalid Fields] - ${caption}`,\n responseData: data,\n };\n };\n\n notFound = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4047400,\n responseSuccess: false,\n responseMessage: `[Not Found] - ${caption}`,\n responseData: data,\n };\n };\n\n unauthorized = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4017400,\n responseSuccess: false,\n responseMessage: `[Unauthorized] - ${caption}`,\n responseData: data,\n };\n };\n\n internalServer = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 5007400,\n responseSuccess: false,\n responseMessage: `[Internal Server Error] - ${caption}`,\n responseData: data,\n };\n };\n}\n\nexport default ResponseApi;\n"],"names":["ResponseApi","success","caption","data","code","Number","String","responseCode","responseSuccess","responseMessage","responseData","badRequest","title","invalidFields","notFound","unauthorized","internalServer"],"mappings":";;;;;AAyEA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAzEA,MAAMA,WAAAA,CAAAA;AACJC,IAAAA,OAAAA,GAAU,CAAC,EACTC,OAAO,EACPC,IAAI,EACJC,IAAI,EAKL,GAAA;AACCA,QAAAA,IAAAA,GAAOA,IAAAA,GAAOC,MAAAA,CAAOC,MAAAA,CAAOF,IAAAA,CAAAA,GAAQ,MAAA,CAAA,GAAU,OAAA;QAC9C,OAAO;YACLG,YAAAA,EAAcH,IAAAA;YACdI,eAAAA,EAAiB,IAAA;YACjBC,eAAAA,EAAiB,CAAC,YAAY,EAAEP,OAAAA,CAAAA,CAAS;YACzCQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAQ,IAAAA,UAAAA,GAAa,CAAC,EACZT,OAAO,EACPU,KAAK,EACLT,IAAI,EAKL,GAAA;QACC,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,CAAC,EAAEG,KAAAA,GAAQA,QAAQ,aAAA,CAAc,IAAI,EAAEV,OAAAA,CAAAA,CAAS;YAClEQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAU,IAAAA,aAAAA,GAAgB,CAAC,EAAEX,OAAO,EAAEC,IAAI,EAAmC,GAAA;QACjE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,mBAAmB,EAAEP,OAAAA,CAAAA,CAAS;YAChDQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAW,IAAAA,QAAAA,GAAW,CAAC,EAAEZ,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAC5D,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,cAAc,EAAEP,OAAAA,CAAAA,CAAS;YAC3CQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAY,IAAAA,YAAAA,GAAe,CAAC,EAAEb,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAChE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,iBAAiB,EAAEP,OAAAA,CAAAA,CAAS;YAC9CQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAa,IAAAA,cAAAA,GAAiB,CAAC,EAAEd,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAClE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,0BAA0B,EAAEP,OAAAA,CAAAA,CAAS;YACvDQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AACF;MAEA,QAAA,GAAeH,WAAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"response.js","sources":["../../src/methods/response.ts"],"sourcesContent":["class ResponseApi {\n success = ({\n caption,\n data,\n code,\n }: {\n caption: string;\n data: any;\n code?: number | string;\n }) => {\n code = code ? Number(String(code) + \"7400\") : 2007400;\n return {\n responseCode: code,\n responseSuccess: true,\n responseMessage: `[Success] - ${caption}`,\n responseData: data,\n };\n };\n\n badRequest = ({\n caption,\n title,\n data,\n }: {\n caption: string;\n title?: string;\n data?: any;\n }) => {\n return {\n responseCode: 4007400,\n responseSuccess: false,\n responseMessage: `[${title ? title : \"Bad Request\"}] - ${caption}`,\n responseData: data,\n };\n };\n\n invalidFields = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4007401,\n responseSuccess: false,\n responseMessage: `[Invalid Fields] - ${caption}`,\n responseData: data,\n };\n };\n\n notFound = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4047400,\n responseSuccess: false,\n responseMessage: `[Not Found] - ${caption}`,\n responseData: data,\n };\n };\n\n unauthorized = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 4017400,\n responseSuccess: false,\n responseMessage: `[Unauthorized] - ${caption}`,\n responseData: data,\n };\n };\n\n internalServer = ({ caption, data }: { caption: string; data?: any }) => {\n return {\n responseCode: 5007400,\n responseSuccess: false,\n responseMessage: `[Internal Server Error] - ${caption}`,\n responseData: data,\n };\n };\n}\n\nexport default ResponseApi;\n"],"names":["ResponseApi","success","caption","data","code","Number","String","responseCode","responseSuccess","responseMessage","responseData","badRequest","title","invalidFields","notFound","unauthorized","internalServer"],"mappings":";;;AAyEA,MAAA,CAAA,cAAA,CAAA,OAAA,EAAA,SAAA,EAAA;;;AAAA,QAAA,OAAA,QAAA;;;AAzEA,MAAMA,WAAAA,CAAAA;AACJC,IAAAA,OAAAA,GAAU,CAAC,EACTC,OAAO,EACPC,IAAI,EACJC,IAAI,EAKL,GAAA;AACCA,QAAAA,IAAAA,GAAOA,IAAAA,GAAOC,MAAAA,CAAOC,MAAAA,CAAOF,IAAAA,CAAAA,GAAQ,MAAA,CAAA,GAAU,OAAA;QAC9C,OAAO;YACLG,YAAAA,EAAcH,IAAAA;YACdI,eAAAA,EAAiB,IAAA;YACjBC,eAAAA,EAAiB,CAAC,YAAY,EAAEP,OAAAA,CAAAA,CAAS;YACzCQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAQ,IAAAA,UAAAA,GAAa,CAAC,EACZT,OAAO,EACPU,KAAK,EACLT,IAAI,EAKL,GAAA;QACC,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,CAAC,EAAEG,KAAAA,GAAQA,QAAQ,aAAA,CAAc,IAAI,EAAEV,OAAAA,CAAAA,CAAS;YAClEQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAU,IAAAA,aAAAA,GAAgB,CAAC,EAAEX,OAAO,EAAEC,IAAI,EAAmC,GAAA;QACjE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,mBAAmB,EAAEP,OAAAA,CAAAA,CAAS;YAChDQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAW,IAAAA,QAAAA,GAAW,CAAC,EAAEZ,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAC5D,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,cAAc,EAAEP,OAAAA,CAAAA,CAAS;YAC3CQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAY,IAAAA,YAAAA,GAAe,CAAC,EAAEb,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAChE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,iBAAiB,EAAEP,OAAAA,CAAAA,CAAS;YAC9CQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AAEAa,IAAAA,cAAAA,GAAiB,CAAC,EAAEd,OAAO,EAAEC,IAAI,EAAmC,GAAA;QAClE,OAAO;YACLI,YAAAA,EAAc,OAAA;YACdC,eAAAA,EAAiB,KAAA;YACjBC,eAAAA,EAAiB,CAAC,0BAA0B,EAAEP,OAAAA,CAAAA,CAAS;YACvDQ,YAAAA,EAAcP;AAChB,SAAA;IACF,CAAA;AACF;MAEA,QAAA,GAAeH,WAAAA"}
@@ -1,170 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- class Tools {
13
- /**
14
- * Format money ke string sesuai locale
15
- * @memberof Tools
16
- * @param {number | string} amount - jumlah uang
17
- * @param {Intl.LocalesArgument} locales - default "id-ID"
18
- * @param {Intl.NumberFormatOptions} options - default currency IDR
19
- * @returns {string} string
20
- */ formatMoney = (amount, locales = "id-ID", options = {
21
- style: "currency",
22
- currency: "IDR",
23
- minimumFractionDigits: 0
24
- })=>{
25
- return new Intl.NumberFormat(locales, options).format(Number(amount));
26
- };
27
- /**
28
- * Generate unique ID dengan pilihan tipe
29
- * @param {"number"|"string"|"mixed"} type - tipe ID (angka, string, atau campuran)
30
- * @param {number} length - panjang ID (default 8)
31
- * @returns {string} ID unik acak
32
- */ uniqueId = ({ type = "mixed", length = 8, prefix })=>{
33
- let chars;
34
- switch(type){
35
- case "number":
36
- chars = "0123456789";
37
- break;
38
- case "string":
39
- chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
40
- break;
41
- default:
42
- chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
43
- }
44
- let id = "";
45
- for(let i = 0; i < Number(length); i++){
46
- id += chars[Math.floor(Math.random() * chars.length)];
47
- }
48
- return prefix ? prefix + id : id;
49
- };
50
- /**
51
- * Generate UUID v4 sederhana
52
- * @returns {string}
53
- */ randomUuid = ()=>{
54
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c)=>{
55
- const r = Math.random() * 16 | 0;
56
- const v = c === "x" ? r : r & 0x3 | 0x8;
57
- return v.toString(16);
58
- });
59
- };
60
- /**
61
- * Pick a random from array
62
- * @param {T[]} array
63
- * @memberof Tools
64
- * @returns {T} item acak dari array
65
- */ randomItem = (array)=>{
66
- return array[Math.floor(Math.random() * array.length)];
67
- };
68
- /**
69
- * Ambil beberapa item acak unik dari array
70
- * @param {T[]} array
71
- * @param {number} count - jumlah item
72
- * @returns {T[]} array item acak unik dari array
73
- */ randomMany = (array, count)=>{
74
- const copy = [
75
- ...array
76
- ];
77
- for(let i = copy.length - 1; i > 0; i--){
78
- const j = Math.floor(Math.random() * (i + 1));
79
- [copy[i], copy[j]] = [
80
- copy[j],
81
- copy[i]
82
- ];
83
- }
84
- return copy.slice(0, Number(count));
85
- };
86
- /**
87
- * Validasi apakah string adalah email
88
- * @param {string} str
89
- * @returns {boolean} true jika string adalah email, false jika bukan
90
- */ isEmail = (str)=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str);
91
- /**
92
- * Validasi apakah string adalah URL
93
- * @param {string} str
94
- * @returns {boolean} true jika string adalah URL, false jika bukan
95
- */ isUrl = (str)=>{
96
- try {
97
- new URL(str);
98
- return true;
99
- } catch {
100
- return false;
101
- }
102
- };
103
- /**
104
- * Format tanggal ke string sesuai locale
105
- * @param {Date} date
106
- * @param {Intl.LocalesArgument} locales - default "id-ID"
107
- * @returns {string} string
108
- */ formatDate = (date, locales = "id-ID")=>new Intl.DateTimeFormat(locales, {
109
- year: "numeric",
110
- month: "long",
111
- day: "numeric",
112
- hour: "2-digit",
113
- minute: "2-digit"
114
- }).format(date);
115
- /**
116
- * Hitung waktu relatif (misalnya "5 menit lalu")
117
- * @param {Date} date
118
- * @returns {string} string
119
- */ timeAgo = (date)=>{
120
- const diff = Date.now() - date.getTime();
121
- const seconds = Math.floor(diff / 1000);
122
- if (seconds < 60) return `${seconds} detik lalu`;
123
- const minutes = Math.floor(seconds / 60);
124
- if (minutes < 60) return `${minutes} menit lalu`;
125
- const hours = Math.floor(minutes / 60);
126
- if (hours < 24) return `${hours} jam lalu`;
127
- const days = Math.floor(hours / 24);
128
- return `${days} hari lalu`;
129
- };
130
- /**
131
- * Convert string menjadi camelCase
132
- * @param {string} input - string yang akan diubah
133
- * @returns {string} camelCase string
134
- */ toCamelCase = (input)=>{
135
- return input.toLowerCase().replace(/[-_\s]+(.)?/g, (_, chr)=>chr ? chr.toUpperCase() : "");
136
- };
137
- /**
138
- * Capitalize string (huruf pertama jadi kapital)
139
- * @param {string} input - string yang akan diubah
140
- * @returns {string} string dengan huruf pertama kapital
141
- */ capitalize = (input)=>{
142
- if (!input) return "";
143
- return input.charAt(0).toUpperCase() + input.slice(1);
144
- };
145
- slugify = (str)=>{
146
- return str.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "");
147
- };
148
- deepClone = (obj)=>{
149
- return JSON.parse(JSON.stringify(obj));
150
- };
151
- isEmptyObject = (obj)=>{
152
- return Object.keys(obj).length === 0;
153
- };
154
- sleep = (ms)=>{
155
- return new Promise((resolve)=>setTimeout(resolve, ms));
156
- };
157
- retry = async (fn, retries = 3)=>{
158
- let error;
159
- for(let i = 0; i < retries; i++){
160
- try {
161
- return await fn();
162
- } catch (err) {
163
- error = err;
164
- }
165
- }
166
- throw error;
167
- };
168
- }
169
- const _default = Tools;
170
- //# sourceMappingURL=tools.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.cjs","sources":["../../src/methods/tools.ts"],"sourcesContent":["class Tools {\n /**\n * Format money ke string sesuai locale\n * @memberof Tools\n * @param {number | string} amount - jumlah uang\n * @param {Intl.LocalesArgument} locales - default \"id-ID\"\n * @param {Intl.NumberFormatOptions} options - default currency IDR\n * @returns {string} string\n */\n formatMoney = (\n amount: number | string,\n locales: Intl.LocalesArgument = \"id-ID\",\n options: Intl.NumberFormatOptions = {\n style: \"currency\",\n currency: \"IDR\",\n minimumFractionDigits: 0,\n },\n ) => {\n return new Intl.NumberFormat(locales, options).format(Number(amount));\n };\n\n /**\n * Generate unique ID dengan pilihan tipe\n * @param {\"number\"|\"string\"|\"mixed\"} type - tipe ID (angka, string, atau campuran)\n * @param {number} length - panjang ID (default 8)\n * @returns {string} ID unik acak\n */\n uniqueId = ({\n type = \"mixed\",\n length = 8,\n prefix,\n }: {\n type?: \"number\" | \"string\" | \"mixed\";\n length?: number | string;\n prefix?: string;\n }): string => {\n let chars: string;\n\n switch (type) {\n case \"number\":\n chars = \"0123456789\";\n break;\n case \"string\":\n chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n break;\n default:\n chars =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n }\n\n let id = \"\";\n for (let i = 0; i < Number(length); i++) {\n id += chars[Math.floor(Math.random() * chars.length)];\n }\n\n return prefix ? prefix + id : id;\n };\n\n /**\n * Generate UUID v4 sederhana\n * @returns {string}\n */\n randomUuid = (): string => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n };\n\n /**\n * Pick a random from array\n * @param {T[]} array\n * @memberof Tools\n * @returns {T} item acak dari array\n */\n randomItem = <T>(array: T[]): T | undefined => {\n return array[Math.floor(Math.random() * array.length)];\n };\n\n /**\n * Ambil beberapa item acak unik dari array\n * @param {T[]} array\n * @param {number} count - jumlah item\n * @returns {T[]} array item acak unik dari array\n */\n randomMany = <T>(array: T[], count: number | string): T[] => {\n const copy = [...array];\n for (let i = copy.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [copy[i]!, copy[j]!] = [copy[j]!, copy[i]!];\n }\n return copy.slice(0, Number(count));\n };\n\n /**\n * Validasi apakah string adalah email\n * @param {string} str\n * @returns {boolean} true jika string adalah email, false jika bukan\n */\n isEmail = (str: string): boolean => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(str);\n\n /**\n * Validasi apakah string adalah URL\n * @param {string} str\n * @returns {boolean} true jika string adalah URL, false jika bukan\n */\n isUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n };\n\n /**\n * Format tanggal ke string sesuai locale\n * @param {Date} date\n * @param {Intl.LocalesArgument} locales - default \"id-ID\"\n * @returns {string} string\n */\n formatDate = (date: Date, locales: Intl.LocalesArgument = \"id-ID\"): string =>\n new Intl.DateTimeFormat(locales, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n\n /**\n * Hitung waktu relatif (misalnya \"5 menit lalu\")\n * @param {Date} date\n * @returns {string} string\n */\n timeAgo = (date: Date): string => {\n const diff = Date.now() - date.getTime();\n const seconds = Math.floor(diff / 1000);\n if (seconds < 60) return `${seconds} detik lalu`;\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return `${minutes} menit lalu`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours} jam lalu`;\n const days = Math.floor(hours / 24);\n return `${days} hari lalu`;\n };\n\n /**\n * Convert string menjadi camelCase\n * @param {string} input - string yang akan diubah\n * @returns {string} camelCase string\n */\n toCamelCase = (input: string): string => {\n return input\n .toLowerCase()\n .replace(/[-_\\s]+(.)?/g, (_, chr) => (chr ? chr.toUpperCase() : \"\"));\n };\n\n /**\n * Capitalize string (huruf pertama jadi kapital)\n * @param {string} input - string yang akan diubah\n * @returns {string} string dengan huruf pertama kapital\n */\n capitalize = (input: string): string => {\n if (!input) return \"\";\n return input.charAt(0).toUpperCase() + input.slice(1);\n };\n\n slugify = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, \"-\")\n .replace(/[^\\w-]+/g, \"\");\n };\n\n deepClone = <T>(obj: T): T => {\n return JSON.parse(JSON.stringify(obj));\n };\n\n isEmptyObject = (obj: object): boolean => {\n return Object.keys(obj).length === 0;\n };\n\n sleep = (ms: number): Promise<void> => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n };\n\n retry = async <T>(fn: () => Promise<T>, retries = 3): Promise<T> => {\n let error;\n for (let i = 0; i < retries; i++) {\n try {\n return await fn();\n } catch (err) {\n error = err;\n }\n }\n throw error;\n };\n}\n\nexport default Tools;\n"],"names":["Tools","formatMoney","amount","locales","options","style","currency","minimumFractionDigits","Intl","NumberFormat","format","Number","uniqueId","type","length","prefix","chars","id","i","Math","floor","random","randomUuid","replace","c","r","v","toString","randomItem","array","randomMany","count","copy","j","slice","isEmail","str","test","isUrl","URL","formatDate","date","DateTimeFormat","year","month","day","hour","minute","timeAgo","diff","Date","now","getTime","seconds","minutes","hours","days","toCamelCase","input","toLowerCase","_","chr","toUpperCase","capitalize","charAt","slugify","deepClone","obj","JSON","parse","stringify","isEmptyObject","Object","keys","sleep","ms","Promise","resolve","setTimeout","retry","fn","retries","error","err"],"mappings":"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"}
@@ -1,168 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", {
2
- value: true
3
- });
4
- Object.defineProperty(exports, "default", {
5
- enumerable: true,
6
- get: function() {
7
- return _default;
8
- }
9
- });
10
- class Tools {
11
- /**
12
- * Format money ke string sesuai locale
13
- * @memberof Tools
14
- * @param {number | string} amount - jumlah uang
15
- * @param {Intl.LocalesArgument} locales - default "id-ID"
16
- * @param {Intl.NumberFormatOptions} options - default currency IDR
17
- * @returns {string} string
18
- */ formatMoney = (amount, locales = "id-ID", options = {
19
- style: "currency",
20
- currency: "IDR",
21
- minimumFractionDigits: 0
22
- })=>{
23
- return new Intl.NumberFormat(locales, options).format(Number(amount));
24
- };
25
- /**
26
- * Generate unique ID dengan pilihan tipe
27
- * @param {"number"|"string"|"mixed"} type - tipe ID (angka, string, atau campuran)
28
- * @param {number} length - panjang ID (default 8)
29
- * @returns {string} ID unik acak
30
- */ uniqueId = ({ type = "mixed", length = 8, prefix })=>{
31
- let chars;
32
- switch(type){
33
- case "number":
34
- chars = "0123456789";
35
- break;
36
- case "string":
37
- chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
38
- break;
39
- default:
40
- chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
41
- }
42
- let id = "";
43
- for(let i = 0; i < Number(length); i++){
44
- id += chars[Math.floor(Math.random() * chars.length)];
45
- }
46
- return prefix ? prefix + id : id;
47
- };
48
- /**
49
- * Generate UUID v4 sederhana
50
- * @returns {string}
51
- */ randomUuid = ()=>{
52
- return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c)=>{
53
- const r = Math.random() * 16 | 0;
54
- const v = c === "x" ? r : r & 0x3 | 0x8;
55
- return v.toString(16);
56
- });
57
- };
58
- /**
59
- * Pick a random from array
60
- * @param {T[]} array
61
- * @memberof Tools
62
- * @returns {T} item acak dari array
63
- */ randomItem = (array)=>{
64
- return array[Math.floor(Math.random() * array.length)];
65
- };
66
- /**
67
- * Ambil beberapa item acak unik dari array
68
- * @param {T[]} array
69
- * @param {number} count - jumlah item
70
- * @returns {T[]} array item acak unik dari array
71
- */ randomMany = (array, count)=>{
72
- const copy = [
73
- ...array
74
- ];
75
- for(let i = copy.length - 1; i > 0; i--){
76
- const j = Math.floor(Math.random() * (i + 1));
77
- [copy[i], copy[j]] = [
78
- copy[j],
79
- copy[i]
80
- ];
81
- }
82
- return copy.slice(0, Number(count));
83
- };
84
- /**
85
- * Validasi apakah string adalah email
86
- * @param {string} str
87
- * @returns {boolean} true jika string adalah email, false jika bukan
88
- */ isEmail = (str)=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str);
89
- /**
90
- * Validasi apakah string adalah URL
91
- * @param {string} str
92
- * @returns {boolean} true jika string adalah URL, false jika bukan
93
- */ isUrl = (str)=>{
94
- try {
95
- new URL(str);
96
- return true;
97
- } catch {
98
- return false;
99
- }
100
- };
101
- /**
102
- * Format tanggal ke string sesuai locale
103
- * @param {Date} date
104
- * @param {Intl.LocalesArgument} locales - default "id-ID"
105
- * @returns {string} string
106
- */ formatDate = (date, locales = "id-ID")=>new Intl.DateTimeFormat(locales, {
107
- year: "numeric",
108
- month: "long",
109
- day: "numeric",
110
- hour: "2-digit",
111
- minute: "2-digit"
112
- }).format(date);
113
- /**
114
- * Hitung waktu relatif (misalnya "5 menit lalu")
115
- * @param {Date} date
116
- * @returns {string} string
117
- */ timeAgo = (date)=>{
118
- const diff = Date.now() - date.getTime();
119
- const seconds = Math.floor(diff / 1000);
120
- if (seconds < 60) return `${seconds} detik lalu`;
121
- const minutes = Math.floor(seconds / 60);
122
- if (minutes < 60) return `${minutes} menit lalu`;
123
- const hours = Math.floor(minutes / 60);
124
- if (hours < 24) return `${hours} jam lalu`;
125
- const days = Math.floor(hours / 24);
126
- return `${days} hari lalu`;
127
- };
128
- /**
129
- * Convert string menjadi camelCase
130
- * @param {string} input - string yang akan diubah
131
- * @returns {string} camelCase string
132
- */ toCamelCase = (input)=>{
133
- return input.toLowerCase().replace(/[-_\s]+(.)?/g, (_, chr)=>chr ? chr.toUpperCase() : "");
134
- };
135
- /**
136
- * Capitalize string (huruf pertama jadi kapital)
137
- * @param {string} input - string yang akan diubah
138
- * @returns {string} string dengan huruf pertama kapital
139
- */ capitalize = (input)=>{
140
- if (!input) return "";
141
- return input.charAt(0).toUpperCase() + input.slice(1);
142
- };
143
- slugify = (str)=>{
144
- return str.toLowerCase().replace(/\s+/g, "-").replace(/[^\w-]+/g, "");
145
- };
146
- deepClone = (obj)=>{
147
- return JSON.parse(JSON.stringify(obj));
148
- };
149
- isEmptyObject = (obj)=>{
150
- return Object.keys(obj).length === 0;
151
- };
152
- sleep = (ms)=>{
153
- return new Promise((resolve)=>setTimeout(resolve, ms));
154
- };
155
- retry = async (fn, retries = 3)=>{
156
- let error;
157
- for(let i = 0; i < retries; i++){
158
- try {
159
- return await fn();
160
- } catch (err) {
161
- error = err;
162
- }
163
- }
164
- throw error;
165
- };
166
- }
167
- const _default = Tools;
168
- //# sourceMappingURL=tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.js","sources":["../../src/methods/tools.ts"],"sourcesContent":["class Tools {\n /**\n * Format money ke string sesuai locale\n * @memberof Tools\n * @param {number | string} amount - jumlah uang\n * @param {Intl.LocalesArgument} locales - default \"id-ID\"\n * @param {Intl.NumberFormatOptions} options - default currency IDR\n * @returns {string} string\n */\n formatMoney = (\n amount: number | string,\n locales: Intl.LocalesArgument = \"id-ID\",\n options: Intl.NumberFormatOptions = {\n style: \"currency\",\n currency: \"IDR\",\n minimumFractionDigits: 0,\n },\n ) => {\n return new Intl.NumberFormat(locales, options).format(Number(amount));\n };\n\n /**\n * Generate unique ID dengan pilihan tipe\n * @param {\"number\"|\"string\"|\"mixed\"} type - tipe ID (angka, string, atau campuran)\n * @param {number} length - panjang ID (default 8)\n * @returns {string} ID unik acak\n */\n uniqueId = ({\n type = \"mixed\",\n length = 8,\n prefix,\n }: {\n type?: \"number\" | \"string\" | \"mixed\";\n length?: number | string;\n prefix?: string;\n }): string => {\n let chars: string;\n\n switch (type) {\n case \"number\":\n chars = \"0123456789\";\n break;\n case \"string\":\n chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n break;\n default:\n chars =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n }\n\n let id = \"\";\n for (let i = 0; i < Number(length); i++) {\n id += chars[Math.floor(Math.random() * chars.length)];\n }\n\n return prefix ? prefix + id : id;\n };\n\n /**\n * Generate UUID v4 sederhana\n * @returns {string}\n */\n randomUuid = (): string => {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n };\n\n /**\n * Pick a random from array\n * @param {T[]} array\n * @memberof Tools\n * @returns {T} item acak dari array\n */\n randomItem = <T>(array: T[]): T | undefined => {\n return array[Math.floor(Math.random() * array.length)];\n };\n\n /**\n * Ambil beberapa item acak unik dari array\n * @param {T[]} array\n * @param {number} count - jumlah item\n * @returns {T[]} array item acak unik dari array\n */\n randomMany = <T>(array: T[], count: number | string): T[] => {\n const copy = [...array];\n for (let i = copy.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [copy[i]!, copy[j]!] = [copy[j]!, copy[i]!];\n }\n return copy.slice(0, Number(count));\n };\n\n /**\n * Validasi apakah string adalah email\n * @param {string} str\n * @returns {boolean} true jika string adalah email, false jika bukan\n */\n isEmail = (str: string): boolean => /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(str);\n\n /**\n * Validasi apakah string adalah URL\n * @param {string} str\n * @returns {boolean} true jika string adalah URL, false jika bukan\n */\n isUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n };\n\n /**\n * Format tanggal ke string sesuai locale\n * @param {Date} date\n * @param {Intl.LocalesArgument} locales - default \"id-ID\"\n * @returns {string} string\n */\n formatDate = (date: Date, locales: Intl.LocalesArgument = \"id-ID\"): string =>\n new Intl.DateTimeFormat(locales, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n\n /**\n * Hitung waktu relatif (misalnya \"5 menit lalu\")\n * @param {Date} date\n * @returns {string} string\n */\n timeAgo = (date: Date): string => {\n const diff = Date.now() - date.getTime();\n const seconds = Math.floor(diff / 1000);\n if (seconds < 60) return `${seconds} detik lalu`;\n const minutes = Math.floor(seconds / 60);\n if (minutes < 60) return `${minutes} menit lalu`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours} jam lalu`;\n const days = Math.floor(hours / 24);\n return `${days} hari lalu`;\n };\n\n /**\n * Convert string menjadi camelCase\n * @param {string} input - string yang akan diubah\n * @returns {string} camelCase string\n */\n toCamelCase = (input: string): string => {\n return input\n .toLowerCase()\n .replace(/[-_\\s]+(.)?/g, (_, chr) => (chr ? chr.toUpperCase() : \"\"));\n };\n\n /**\n * Capitalize string (huruf pertama jadi kapital)\n * @param {string} input - string yang akan diubah\n * @returns {string} string dengan huruf pertama kapital\n */\n capitalize = (input: string): string => {\n if (!input) return \"\";\n return input.charAt(0).toUpperCase() + input.slice(1);\n };\n\n slugify = (str: string): string => {\n return str\n .toLowerCase()\n .replace(/\\s+/g, \"-\")\n .replace(/[^\\w-]+/g, \"\");\n };\n\n deepClone = <T>(obj: T): T => {\n return JSON.parse(JSON.stringify(obj));\n };\n\n isEmptyObject = (obj: object): boolean => {\n return Object.keys(obj).length === 0;\n };\n\n sleep = (ms: number): Promise<void> => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n };\n\n retry = async <T>(fn: () => Promise<T>, retries = 3): Promise<T> => {\n let error;\n for (let i = 0; i < retries; i++) {\n try {\n return await fn();\n } catch (err) {\n error = err;\n }\n }\n throw error;\n };\n}\n\nexport default Tools;\n"],"names":["Tools","formatMoney","amount","locales","options","style","currency","minimumFractionDigits","Intl","NumberFormat","format","Number","uniqueId","type","length","prefix","chars","id","i","Math","floor","random","randomUuid","replace","c","r","v","toString","randomItem","array","randomMany","count","copy","j","slice","isEmail","str","test","isUrl","URL","formatDate","date","DateTimeFormat","year","month","day","hour","minute","timeAgo","diff","Date","now","getTime","seconds","minutes","hours","days","toCamelCase","input","toLowerCase","_","chr","toUpperCase","capitalize","charAt","slugify","deepClone","obj","JSON","parse","stringify","isEmptyObject","Object","keys","sleep","ms","Promise","resolve","setTimeout","retry","fn","retries","error","err"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes