diginext-utils 2.1.22 → 2.1.24

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.
Files changed (112) hide show
  1. package/README.md +162 -162
  2. package/dist/Checker.mjs +29 -0
  3. package/dist/EventDispatcher.mjs +54 -0
  4. package/dist/FileUpload.mjs +62 -0
  5. package/dist/Slug.mjs +9 -0
  6. package/dist/Timer-7b0c4e7c.d.ts +11 -0
  7. package/dist/Timer.mjs +7 -0
  8. package/dist/Validation.mjs +35 -0
  9. package/dist/array-c38eff4c.d.ts +158 -0
  10. package/dist/array.mjs +49 -0
  11. package/dist/browser-8d042ffe.d.ts +22 -0
  12. package/dist/camera-1a859d72.d.ts +15 -0
  13. package/dist/chunk-24DHBJAC.mjs +35 -0
  14. package/dist/chunk-32BJ2V3H.mjs +195 -0
  15. package/dist/chunk-32PJ3FML.mjs +57 -0
  16. package/dist/chunk-3OYOTSDB.mjs +339 -0
  17. package/dist/chunk-4CWVMQ53.mjs +167 -0
  18. package/dist/chunk-4VQ25N7H.mjs +43 -0
  19. package/dist/chunk-6OZHYD5H.mjs +91 -0
  20. package/dist/chunk-76AY2CWV.mjs +22 -0
  21. package/dist/chunk-7MK72U4O.mjs +19 -0
  22. package/dist/chunk-7SOQVGCL.mjs +12 -0
  23. package/dist/chunk-7XKT3AQX.mjs +17 -0
  24. package/dist/chunk-AT5ZUBQL.mjs +151 -0
  25. package/dist/chunk-CKILLYAP.mjs +16 -0
  26. package/dist/chunk-D5JDP7JB.mjs +56 -0
  27. package/dist/chunk-DEOVENCJ.mjs +15 -0
  28. package/dist/chunk-FILFH56Y.mjs +21 -0
  29. package/dist/chunk-FTXB3IBS.mjs +20 -0
  30. package/dist/chunk-GJMNV2OC.mjs +35 -0
  31. package/dist/chunk-GNJDIUYM.mjs +40 -0
  32. package/dist/chunk-HN4EHJ2H.mjs +39 -0
  33. package/dist/chunk-HTAKHCLC.mjs +43 -0
  34. package/dist/chunk-JAP2EUEW.mjs +86 -0
  35. package/dist/chunk-JFASFX5Y.mjs +16 -0
  36. package/dist/chunk-JIMOWRMS.mjs +118 -0
  37. package/dist/chunk-K4KENOE6.mjs +20 -0
  38. package/dist/chunk-LGBBKRBU.mjs +40 -0
  39. package/dist/chunk-PMJLVOEM.mjs +25 -0
  40. package/dist/chunk-PSVXSTS4.mjs +51 -0
  41. package/dist/chunk-SNYWQI35.mjs +41 -0
  42. package/dist/chunk-TV4YHUBU.mjs +23 -0
  43. package/dist/chunk-UHUY6K7N.mjs +24 -0
  44. package/dist/chunk-UZ7BFUDR.mjs +258 -0
  45. package/dist/chunk-YLZC36RI.mjs +32 -0
  46. package/dist/chunk-ZNIXVHZT.mjs +24 -0
  47. package/dist/color.mjs +85 -0
  48. package/dist/console/enableConsole.mjs +9 -0
  49. package/dist/console/index.mjs +14 -0
  50. package/dist/console/log.mjs +19 -0
  51. package/dist/createDir-220e0081.d.ts +13 -0
  52. package/dist/device/browser.mjs +15 -0
  53. package/dist/device/camera.mjs +8 -0
  54. package/dist/device/index.mjs +15 -0
  55. package/dist/device/os.mjs +33 -0
  56. package/dist/enableConsole-ddc24282.d.ts +11 -0
  57. package/dist/file/createDir.mjs +7 -0
  58. package/dist/file/fileMove.mjs +7 -0
  59. package/dist/file/findFilesByExt.mjs +11 -0
  60. package/dist/file/index.mjs +17 -0
  61. package/dist/fileMove-3a09e429.d.ts +13 -0
  62. package/dist/findFilesByExt-753e91d7.d.ts +24 -0
  63. package/dist/gameboi/index.d.ts +2 -0
  64. package/dist/gameboi/index.js +5 -0
  65. package/dist/gameboi/index.js.map +1 -1
  66. package/dist/gameboi/index.mjs +65 -0
  67. package/dist/images/downloadByUrl.mjs +53 -0
  68. package/dist/images/index.mjs +14 -0
  69. package/dist/images/loadImage.js +1 -1
  70. package/dist/images/loadImage.js.map +1 -1
  71. package/dist/images/loadImage.mjs +21 -0
  72. package/dist/images/resize.mjs +9 -0
  73. package/dist/images/upload.mjs +13 -0
  74. package/dist/index-1e114d55.d.ts +26 -0
  75. package/dist/index-1f738e52.d.ts +22 -0
  76. package/dist/index-22309f0c.d.ts +23 -0
  77. package/dist/index-3eeb7834.d.ts +90 -0
  78. package/dist/index-6ae3c86b.d.ts +63 -0
  79. package/dist/index.mjs +87 -0
  80. package/dist/json.mjs +29 -0
  81. package/dist/math/diffDate.mjs +9 -0
  82. package/dist/math/index.mjs +34 -0
  83. package/dist/math/positiveNumber.mjs +10 -0
  84. package/dist/name/en.mjs +9 -0
  85. package/dist/name/index.mjs +20 -0
  86. package/dist/name/vi.mjs +14 -0
  87. package/dist/object-43aaaf92.d.ts +80 -0
  88. package/dist/object.mjs +21 -0
  89. package/dist/permission/index.mjs +15 -0
  90. package/dist/permission/requestCamera.mjs +9 -0
  91. package/dist/permission/requestDeviceOrientationControl.mjs +10 -0
  92. package/dist/requestCamera-32b7dfc7.d.ts +14 -0
  93. package/dist/requestDeviceOrientationControl-b6458660.d.ts +11 -0
  94. package/dist/response/index.mjs +16 -0
  95. package/dist/string/convertPathnameAndQuery.mjs +28 -0
  96. package/dist/string/formatNumber.mjs +10 -0
  97. package/dist/string/generatePassword.mjs +10 -0
  98. package/dist/string/generateUUID.mjs +9 -0
  99. package/dist/string/getTextBetweenCharByIndex.mjs +22 -0
  100. package/dist/string/index.mjs +31 -0
  101. package/dist/string/indexesOf.mjs +7 -0
  102. package/dist/string/makeDaySlug.mjs +9 -0
  103. package/dist/string/random.mjs +23 -0
  104. package/dist/string/trimNull.mjs +9 -0
  105. package/dist/string/url.mjs +21 -0
  106. package/dist/url-0da0be84.d.ts +43 -0
  107. package/esm/gameboi/index.d.ts +2 -0
  108. package/esm/gameboi/index.js +5 -0
  109. package/esm/gameboi/index.js.map +1 -1
  110. package/esm/images/loadImage.js +1 -1
  111. package/esm/images/loadImage.js.map +1 -1
  112. package/package.json +6 -2
@@ -0,0 +1,17 @@
1
+ // src/string/makeDaySlug.ts
2
+ import dayjs from "dayjs";
3
+ function makeDaySlug(options = {}) {
4
+ const { prefix = "", surfix = "", divider = "-", useDate = true, useTime = true } = options;
5
+ let mainStr = "";
6
+ if (useDate)
7
+ mainStr += dayjs().format(`YYYY${divider}MM${divider}DD`);
8
+ if (useTime)
9
+ mainStr += (mainStr == "" ? "" : divider) + dayjs().format(`HH${divider}mm${divider}ss`);
10
+ return prefix + (prefix ? divider : "") + mainStr + (surfix ? divider : "") + surfix;
11
+ }
12
+ var makeDaySlug_default = { makeDaySlug };
13
+
14
+ export {
15
+ makeDaySlug,
16
+ makeDaySlug_default
17
+ };
@@ -0,0 +1,151 @@
1
+ import {
2
+ requestCamera
3
+ } from "./chunk-LGBBKRBU.mjs";
4
+ import {
5
+ __export
6
+ } from "./chunk-4VQ25N7H.mjs";
7
+
8
+ // src/device/camera.ts
9
+ var camera_exports = {};
10
+ __export(camera_exports, {
11
+ getWebcam: () => getWebcam
12
+ });
13
+ function getWebcam(params = { facingMode: "environment", audio: true }) {
14
+ if (typeof window == "undefined")
15
+ return;
16
+ const { container, facingMode = "environment", audio = true } = params;
17
+ const _container = container || document.body;
18
+ return new Promise(async (resolve, reject) => {
19
+ const video = document.createElement("video");
20
+ video.style.position = "absolute";
21
+ video.style.top = "0";
22
+ video.style.left = "0";
23
+ video.style.width = "100%";
24
+ video.style.height = "100%";
25
+ _container.append(video);
26
+ let inputCameras = [];
27
+ let currentCamera;
28
+ const requestedMediaConstraints = {
29
+ video: {
30
+ facingMode: { exact: facingMode }
31
+ },
32
+ audio
33
+ };
34
+ let stream;
35
+ let isAllowed = false;
36
+ console.log("[Camera.js] Requesting:", requestedMediaConstraints);
37
+ const res = await requestCamera({ audio });
38
+ if (!res) {
39
+ setTimeout(function() {
40
+ handleError({ name: "Error", message: "NotSupported" });
41
+ }, 50);
42
+ }
43
+ navigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);
44
+ function parseDevices(devices) {
45
+ inputCameras = [];
46
+ let backCameras = [];
47
+ devices.forEach(function(device) {
48
+ if (device.kind == "videoinput" && typeof device.deviceId != "undefined" && device.deviceId != "") {
49
+ inputCameras.push(device);
50
+ }
51
+ });
52
+ console.log("[Camera.js] inputCameras:", inputCameras);
53
+ if (inputCameras.length > 0) {
54
+ let cams = "";
55
+ let backCamera;
56
+ inputCameras.map((cam, index) => {
57
+ cams += `[${cam.deviceId}] ${cam.kind} | ${cam.label}
58
+ `;
59
+ let label = cam.label.toLowerCase();
60
+ if (label.indexOf("back") > -1 || label.indexOf("facetime") > -1) {
61
+ backCamera = cam;
62
+ backCameras.push(backCamera);
63
+ }
64
+ });
65
+ if (backCameras.length > 1) {
66
+ backCamera = backCameras[backCameras.length - 1];
67
+ }
68
+ console.log(`[Camera.js] All input sources:`, cams);
69
+ console.log(`[Camera.js] This device has ${backCameras.length} back camera${backCameras.length > 1 ? "s" : ""}.`);
70
+ console.log("[Camera.js] backCameras:", JSON.stringify(backCameras));
71
+ currentCamera = backCamera;
72
+ getStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch((e) => {
73
+ if (backCameras.length > 1) {
74
+ backCamera = backCameras[backCameras.length - 2];
75
+ getStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);
76
+ } else if (backCameras.length > 2) {
77
+ backCamera = backCameras[backCameras.length - 3];
78
+ getStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);
79
+ } else {
80
+ handleError(e);
81
+ }
82
+ });
83
+ } else {
84
+ navigator.mediaDevices.getUserMedia(requestedMediaConstraints).then(onStreamReceived).catch(handleError);
85
+ }
86
+ }
87
+ function onStreamReceived(stream2) {
88
+ if (inputCameras.length == 0) {
89
+ console.log("[Camera.js] Not found any back cameras, request again?");
90
+ navigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);
91
+ return;
92
+ }
93
+ isAllowed = true;
94
+ playWebcamVideo(stream2);
95
+ }
96
+ function playWebcamVideo(_stream) {
97
+ stream = _stream;
98
+ if ("srcObject" in video) {
99
+ video.srcObject = _stream;
100
+ } else {
101
+ video.src = window.URL.createObjectURL(_stream);
102
+ }
103
+ video.setAttribute("playsinline", "true");
104
+ video.setAttribute("muted", "true");
105
+ video.setAttribute("autoplay", "true");
106
+ video.muted = true;
107
+ video.autoplay = true;
108
+ video.style.objectFit = "cover";
109
+ video.play();
110
+ video.addEventListener("canplay", function(e) {
111
+ });
112
+ video.addEventListener("canplaythrough", function(e) {
113
+ });
114
+ video.addEventListener("error", (e) => console.log("[Camera.js] <video> error:", e));
115
+ video.addEventListener("stalled", function(e) {
116
+ isAllowed = false;
117
+ console.log("[Camera.js] <video> stalled:", e);
118
+ reject();
119
+ });
120
+ video.addEventListener("loadedmetadata", function(e) {
121
+ if (currentCamera.label.toLowerCase().indexOf("facetime") > -1) {
122
+ video.style.transform = "scaleX(-1)";
123
+ video.style.webkitTransform = "scaleX(-1)";
124
+ }
125
+ video.play();
126
+ resolve(video);
127
+ });
128
+ }
129
+ function getStreamOfCameraId(id) {
130
+ const constraints = {
131
+ video: { deviceId: { exact: id } },
132
+ audio: false
133
+ };
134
+ return new Promise((resolve2, reject2) => {
135
+ navigator.mediaDevices.getUserMedia(constraints).then(resolve2).catch(reject2);
136
+ });
137
+ }
138
+ function handleError(err) {
139
+ console.error(err);
140
+ const errMsg = "[Camera.js] " + err.name + ": " + err.message;
141
+ console.error(errMsg);
142
+ isAllowed = false;
143
+ reject();
144
+ }
145
+ });
146
+ }
147
+
148
+ export {
149
+ getWebcam,
150
+ camera_exports
151
+ };
@@ -0,0 +1,16 @@
1
+ // src/string/generateUUID.ts
2
+ var _lut = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0a", "0b", "0c", "0d", "0e", "0f", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1a", "1b", "1c", "1d", "1e", "1f", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2a", "2b", "2c", "2d", "2e", "2f", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3a", "3b", "3c", "3d", "3e", "3f", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4a", "4b", "4c", "4d", "4e", "4f", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5a", "5b", "5c", "5d", "5e", "5f", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6a", "6b", "6c", "6d", "6e", "6f", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7a", "7b", "7c", "7d", "7e", "7f", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8a", "8b", "8c", "8d", "8e", "8f", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9a", "9b", "9c", "9d", "9e", "9f", "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "aa", "ab", "ac", "ad", "ae", "af", "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "b9", "ba", "bb", "bc", "bd", "be", "bf", "c0", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "ca", "cb", "cc", "cd", "ce", "cf", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "d9", "da", "db", "dc", "dd", "de", "df", "e0", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "e9", "ea", "eb", "ec", "ed", "ee", "ef", "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "fa", "fb", "fc", "fd", "fe", "ff"];
3
+ function generateUUID() {
4
+ const d0 = Math.random() * 4294967295 | 0;
5
+ const d1 = Math.random() * 4294967295 | 0;
6
+ const d2 = Math.random() * 4294967295 | 0;
7
+ const d3 = Math.random() * 4294967295 | 0;
8
+ const uuid = _lut[d0 & 255] + _lut[d0 >> 8 & 255] + _lut[d0 >> 16 & 255] + _lut[d0 >> 24 & 255] + "-" + _lut[d1 & 255] + _lut[d1 >> 8 & 255] + "-" + _lut[d1 >> 16 & 15 | 64] + _lut[d1 >> 24 & 255] + "-" + _lut[d2 & 63 | 128] + _lut[d2 >> 8 & 255] + "-" + _lut[d2 >> 16 & 255] + _lut[d2 >> 24 & 255] + _lut[d3 & 255] + _lut[d3 >> 8 & 255] + _lut[d3 >> 16 & 255] + _lut[d3 >> 24 & 255];
9
+ return uuid.toLowerCase();
10
+ }
11
+ var generateUUID_default = generateUUID;
12
+
13
+ export {
14
+ generateUUID,
15
+ generateUUID_default
16
+ };
@@ -0,0 +1,56 @@
1
+ import {
2
+ __export,
3
+ __require
4
+ } from "./chunk-4VQ25N7H.mjs";
5
+
6
+ // src/file/findFilesByExt.ts
7
+ var findFilesByExt_exports = {};
8
+ __export(findFilesByExt_exports, {
9
+ default: () => findFilesByExt_default,
10
+ findFileByExt: () => findFileByExt,
11
+ forEachFileByExt: () => forEachFileByExt
12
+ });
13
+ var path = __require("path");
14
+ var fs = __require("fs");
15
+ var forEachFileByExt = (base, ext, cb) => {
16
+ var walk = function(directoryName) {
17
+ try {
18
+ fs.readdir(directoryName, function(e, files) {
19
+ if (e) {
20
+ console.log("Error: ", e);
21
+ return;
22
+ }
23
+ files.forEach(function(file) {
24
+ var fullPath = path.join(directoryName, file);
25
+ fs.stat(fullPath, function(e2, f) {
26
+ if (e2) {
27
+ console.log("Error: ", e2);
28
+ return;
29
+ }
30
+ if (f.isDirectory()) {
31
+ walk(fullPath);
32
+ } else {
33
+ if (fullPath.toLowerCase().indexOf(ext.toLowerCase()) > -1) {
34
+ if (cb)
35
+ cb(fullPath);
36
+ }
37
+ }
38
+ });
39
+ });
40
+ });
41
+ } catch (error) {
42
+ console.log("error", error);
43
+ }
44
+ };
45
+ walk(base);
46
+ };
47
+ var findFileByExt = forEachFileByExt;
48
+ var fileExt = { findFileByExt, forEachFileByExt };
49
+ var findFilesByExt_default = fileExt;
50
+
51
+ export {
52
+ forEachFileByExt,
53
+ findFileByExt,
54
+ findFilesByExt_default,
55
+ findFilesByExt_exports
56
+ };
@@ -0,0 +1,15 @@
1
+ import {
2
+ toInt
3
+ } from "./chunk-6OZHYD5H.mjs";
4
+
5
+ // src/string/formatNumber.ts
6
+ function formatNumber(num, prefix = "$") {
7
+ const numRound = Math.round((toInt(num) + Number.EPSILON) * 100) / 100;
8
+ return Number.isNaN(numRound) ? "0" : "" + numRound.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, prefix + "1,");
9
+ }
10
+ var formatNumber_default = formatNumber;
11
+
12
+ export {
13
+ formatNumber,
14
+ formatNumber_default
15
+ };
@@ -0,0 +1,21 @@
1
+ import {
2
+ isNull
3
+ } from "./chunk-6OZHYD5H.mjs";
4
+
5
+ // src/math/positiveNumber.ts
6
+ function positiveNumber(number) {
7
+ if (isNull(number))
8
+ return 0;
9
+ if (!Number.isFinite(Number(number)))
10
+ return 0;
11
+ number = Number(number);
12
+ if (number < 0)
13
+ return 0;
14
+ return number;
15
+ }
16
+ var positiveNumber_default = positiveNumber;
17
+
18
+ export {
19
+ positiveNumber,
20
+ positiveNumber_default
21
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-4VQ25N7H.mjs";
4
+
5
+ // src/Timer.ts
6
+ var Timer_exports = {};
7
+ __export(Timer_exports, {
8
+ default: () => Timer_default
9
+ });
10
+ var Timer = {
11
+ wait: async (ms) => {
12
+ return new Promise((resolve) => setTimeout(resolve, ms));
13
+ }
14
+ };
15
+ var Timer_default = Timer;
16
+
17
+ export {
18
+ Timer_default,
19
+ Timer_exports
20
+ };
@@ -0,0 +1,35 @@
1
+ // src/images/resize.ts
2
+ import loadImage from "blueimp-load-image";
3
+ var resize = async (file) => {
4
+ if (!file) {
5
+ console.error("NO FILE AVAIABLE!");
6
+ return;
7
+ }
8
+ const { type } = file;
9
+ const data = await loadImage(file, {
10
+ //
11
+ meta: false,
12
+ canvas: true,
13
+ maxWidth: 2048,
14
+ maxHeight: 2048
15
+ });
16
+ const blob = await new Promise(function(resolve) {
17
+ try {
18
+ const canvas = data.image;
19
+ canvas.toBlob(function(blob2) {
20
+ resolve(blob2);
21
+ }, type);
22
+ } catch (error) {
23
+ console.error(`diginext-utils/src/images/resize.ts canvas.toBlob error`, error);
24
+ }
25
+ });
26
+ if (blob)
27
+ return blob;
28
+ return data;
29
+ };
30
+ var resize_default = resize;
31
+
32
+ export {
33
+ resize,
34
+ resize_default
35
+ };
@@ -0,0 +1,40 @@
1
+ // src/console/log.ts
2
+ import chalk from "chalk";
3
+ import dayjs from "dayjs";
4
+ var log = (...msg) => {
5
+ console.log(chalk.bgBlue.white(`[LOGGING ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
6
+ return msg;
7
+ };
8
+ var logFull = (data = {}) => {
9
+ console.dir(data, { depth: null, colors: true, maxArrayLength: null });
10
+ return data;
11
+ };
12
+ var logRes = (res, ...msg) => {
13
+ var _a, _b;
14
+ console.warn(chalk.blue(`[${res.statusCode}] ${((_a = res.locals.req) == null ? void 0 : _a.originalUrl) || "UNKNOWN_PATH"} >> ${(_b = res.locals.req) == null ? void 0 : _b.method} >>`), ...msg);
15
+ return msg;
16
+ };
17
+ var logError = (...msg) => {
18
+ console.error(chalk.bgRed.white(`[ERROR ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), chalk.red(...msg));
19
+ return msg;
20
+ };
21
+ var logWarn = (...msg) => {
22
+ console.warn(chalk.bgYellow.black(`[WARNING ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
23
+ return msg;
24
+ };
25
+ var logSuccess = (...msg) => {
26
+ console.info(chalk.bgGreen.black(`[SUCCESS ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
27
+ return msg;
28
+ };
29
+ var xlog = { log, logFull, logRes, logError, logWarn, logSuccess };
30
+ var log_default = xlog;
31
+
32
+ export {
33
+ log,
34
+ logFull,
35
+ logRes,
36
+ logError,
37
+ logWarn,
38
+ logSuccess,
39
+ log_default
40
+ };
@@ -0,0 +1,39 @@
1
+ import {
2
+ __export,
3
+ __require
4
+ } from "./chunk-4VQ25N7H.mjs";
5
+
6
+ // src/file/fileMove.ts
7
+ var fileMove_exports = {};
8
+ __export(fileMove_exports, {
9
+ fileMove: () => fileMove
10
+ });
11
+ var fs = __require("fs");
12
+ function fileMove(oldPath, newPath, callback) {
13
+ fs.rename(oldPath, newPath, function(err) {
14
+ if (err) {
15
+ if (err.code === "EXDEV") {
16
+ copy();
17
+ } else {
18
+ callback(err);
19
+ }
20
+ return;
21
+ }
22
+ callback();
23
+ });
24
+ function copy() {
25
+ var readStream = fs.createReadStream(oldPath);
26
+ var writeStream = fs.createWriteStream(newPath);
27
+ readStream.on("error", callback);
28
+ writeStream.on("error", callback);
29
+ readStream.on("close", function() {
30
+ fs.unlink(oldPath, callback);
31
+ });
32
+ readStream.pipe(writeStream);
33
+ }
34
+ }
35
+
36
+ export {
37
+ fileMove,
38
+ fileMove_exports
39
+ };
@@ -0,0 +1,43 @@
1
+ // src/string/random.ts
2
+ var textLowCase = "abcdefghijklmnopqrstuvwxyz";
3
+ var numeric = "0123456789";
4
+ var punctuation = "!@#$%^&*()_+~|}{[];?><,./-=";
5
+ var allCharacter = `\u0111\u0110a\xE1\xE0\u1EA3\xE3\u1EA1\u0103\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\xE2\u1EA5\u1EA7\u1EA9\u1EAB\u1EADe\xE9\xE8\u1EBB\u1EBD\u1EB9\xEA\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7o\xF3\xF2\u1ECF\xF5\u1ECD\xF4\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u01A1\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3i\xED\xEC\u1EC9\u0129\u1ECBu\xFA\xF9\u1EE7\u0169\u1EE5\u01B0\u1EE9\u1EEB\u1EED\u1EEF\u1EF1y\xFD\u1EF3\u1EF7\u1EF9\u1EF5A\xC1\xC0\u1EA2\xC3\u1EA0\u0102\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\xC2\u1EA4\u1EA6\u1EA8\u1EAA\u1EACE\xC9\xC8\u1EBA\u1EBC\u1EB8\xCA\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6O\xD3\xD2\u1ECE\xD5\u1ECC\xD4\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u01A0\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2I\xCD\xCC\u1EC8\u0128\u1ECAU\xDA\xD9\u1EE6\u0168\u1EE4\u01AF\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0Y\xDD\u1EF2 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_\`abcdefghijklmnopqrstuvwxyz{|}`;
6
+ var randAllCharacterByLength = (length = 0) => {
7
+ return randomStringByLength(length, allCharacter);
8
+ };
9
+ var randomStringByLength = (length, str = textLowCase) => {
10
+ let result = "";
11
+ for (let i = 0; i < length; i++) {
12
+ result += str.charAt(Math.floor(Math.random() * str.length));
13
+ }
14
+ return result;
15
+ };
16
+ var randomStringAndNumberByLength = (length, str = `${textLowCase}${numeric}`) => {
17
+ let result = "";
18
+ for (let i = 0; i < length; i++) {
19
+ result += str.charAt(Math.floor(Math.random() * str.length));
20
+ }
21
+ return result;
22
+ };
23
+ var uniqueSortByTime = (length = 6, str = `${textLowCase}${numeric}`) => {
24
+ let result = `${+/* @__PURE__ */ new Date()}-`;
25
+ for (let i = 0; i < length; i++) {
26
+ result += str.charAt(Math.floor(Math.random() * str.length));
27
+ }
28
+ return result;
29
+ };
30
+ var random = { randAllCharacterByLength, randomStringByLength, randomStringAndNumberByLength, uniqueSortByTime };
31
+ var random_default = random;
32
+
33
+ export {
34
+ textLowCase,
35
+ numeric,
36
+ punctuation,
37
+ allCharacter,
38
+ randAllCharacterByLength,
39
+ randomStringByLength,
40
+ randomStringAndNumberByLength,
41
+ uniqueSortByTime,
42
+ random_default
43
+ };
@@ -0,0 +1,86 @@
1
+ import {
2
+ __export
3
+ } from "./chunk-4VQ25N7H.mjs";
4
+
5
+ // src/string/url.ts
6
+ var url_exports = {};
7
+ __export(url_exports, {
8
+ addQueryParam: () => addQueryParam,
9
+ default: () => url_default,
10
+ getFileExtension: () => getFileExtension,
11
+ getFileNameWithExtension: () => getFileNameWithExtension,
12
+ getFileNameWithoutExtension: () => getFileNameWithoutExtension,
13
+ getUrlParams: () => getUrlParams,
14
+ isImage: () => isImage,
15
+ isLink: () => isLink
16
+ });
17
+ var urlRegex = /(https?:\/\/[^\s]+)/g;
18
+ var addQueryParam = (_url, key, value) => {
19
+ _url += (_url.split("?")[1] ? "&" : "?") + `${key}=${value}`;
20
+ return _url;
21
+ };
22
+ var getUrlParams = (parameter, staticURL, decode = true) => {
23
+ if (typeof window == "undefined")
24
+ return "";
25
+ staticURL = staticURL == void 0 ? window.location.host : staticURL;
26
+ var currLocation = staticURL.length > 0 ? staticURL : window.location.search;
27
+ if (currLocation.split("?").length < 2)
28
+ return "";
29
+ var parArr = currLocation.split("?")[1].split("&"), returnBool = true;
30
+ for (var i = 0; i < parArr.length; i++) {
31
+ var parr = parArr[i].split("=");
32
+ if (parr[0] == parameter) {
33
+ return decode ? decodeURIComponent(parr[1]) : parr[1];
34
+ returnBool = true;
35
+ } else {
36
+ returnBool = false;
37
+ }
38
+ }
39
+ if (!returnBool)
40
+ return false;
41
+ };
42
+ var isLink = (str) => {
43
+ return urlRegex.test(str);
44
+ };
45
+ var getFileNameWithoutExtension = (url) => {
46
+ var _a, _b;
47
+ return ((_b = (_a = getFileNameWithExtension(url)) == null ? void 0 : _a.split(".")) == null ? void 0 : _b[0]) || "";
48
+ };
49
+ var getFileNameWithExtension = (url) => {
50
+ url = url.replaceAll("\\", "/");
51
+ const _url = decodeURIComponent(url);
52
+ const m = `${_url.toString().match(/(?:.*\/)?([^\/]+)/)}`;
53
+ if (m && m.split(",").length > 1) {
54
+ return m.split(",")[1].replace(/(\?.*)|(\&.*)/, "");
55
+ }
56
+ return "";
57
+ };
58
+ var getFileExtension = (url) => {
59
+ const arr = getFileNameWithExtension(url).split(".");
60
+ if (arr.length > 1)
61
+ return getFileNameWithExtension(url).split(".").pop();
62
+ return null;
63
+ };
64
+ var isImage = (url) => {
65
+ if (!url)
66
+ return false;
67
+ const arr = [".png", ".jpg", ".jpeg", ".jpe", ".jif", ".jfif", ".gif", ".svg"];
68
+ const index = arr.findIndex((item) => {
69
+ return url.indexOf(item) >= 0;
70
+ });
71
+ return index >= 0;
72
+ };
73
+ var xurl = { addQueryParam, getUrlParams, isLink, getFileNameWithoutExtension, getFileNameWithExtension, getFileExtension, isImage };
74
+ var url_default = xurl;
75
+
76
+ export {
77
+ addQueryParam,
78
+ getUrlParams,
79
+ isLink,
80
+ getFileNameWithoutExtension,
81
+ getFileNameWithExtension,
82
+ getFileExtension,
83
+ isImage,
84
+ url_default,
85
+ url_exports
86
+ };
@@ -0,0 +1,16 @@
1
+ // src/string/indexesOf.ts
2
+ function indexesOf(str, regex) {
3
+ let match, indexes = {};
4
+ const list = [];
5
+ regex = new RegExp(regex);
6
+ while (match = regex.exec(str)) {
7
+ if (!indexes[match[0]])
8
+ indexes[match[0]] = [];
9
+ list.push(match.index);
10
+ }
11
+ return list;
12
+ }
13
+
14
+ export {
15
+ indexesOf
16
+ };
@@ -0,0 +1,118 @@
1
+ import {
2
+ diffDate
3
+ } from "./chunk-7SOQVGCL.mjs";
4
+ import {
5
+ positiveNumber
6
+ } from "./chunk-FILFH56Y.mjs";
7
+ import {
8
+ __export
9
+ } from "./chunk-4VQ25N7H.mjs";
10
+
11
+ // src/math/index.ts
12
+ var math_exports = {};
13
+ __export(math_exports, {
14
+ angleBetweenPoints: () => angleBetweenPoints,
15
+ clamp: () => clamp,
16
+ default: () => math_default,
17
+ degBetweenPoints: () => degBetweenPoints,
18
+ degBetweenPoints360: () => degBetweenPoints360,
19
+ degToRad: () => degToRad,
20
+ distance2Point: () => distance2Point,
21
+ radToDeg: () => radToDeg,
22
+ rand: () => rand,
23
+ randFloat: () => randFloat,
24
+ randHalt: () => randHalt,
25
+ randInt: () => randInt,
26
+ randRound: () => randRound
27
+ });
28
+ var DEG2RAD = Math.PI / 180;
29
+ var RAD2DEG = 180 / Math.PI;
30
+ var randRound = (number) => {
31
+ return Math.round(Math.random() * number);
32
+ };
33
+ var rand = (number) => {
34
+ return (Math.random() - Math.random()) * number;
35
+ };
36
+ var randHalt = (number) => {
37
+ var rand2 = Math.random() - Math.random();
38
+ var res;
39
+ if (rand2 > 0) {
40
+ res = rand2 * (number / 2) + number / 2;
41
+ } else {
42
+ res = rand2 * (number / 2) - number / 2;
43
+ }
44
+ return Math.abs(res);
45
+ };
46
+ var randInt = (low, high) => {
47
+ return low + Math.floor(Math.random() * (high - low + 1));
48
+ };
49
+ var randFloat = (low, high) => {
50
+ return low + Math.random() * (high - low);
51
+ };
52
+ var degToRad = (degrees) => {
53
+ return degrees * DEG2RAD;
54
+ };
55
+ var radToDeg = (radians) => {
56
+ return radians * RAD2DEG;
57
+ };
58
+ var clamp = (value, min, max) => {
59
+ const result = Math.max(min, Math.min(max, value));
60
+ return Number.isFinite(result) ? result : 0;
61
+ };
62
+ var degBetweenPoints360 = (cx, cy, ex, ey) => {
63
+ let theta = degBetweenPoints(cx, cy, ex, ey);
64
+ if (theta < 0)
65
+ theta = 360 + theta;
66
+ return Number.isFinite(theta) ? theta : 0;
67
+ };
68
+ var degBetweenPoints = (cx, cy, ex, ey) => {
69
+ const dy = ey - cy;
70
+ const dx = ex - cx;
71
+ let theta = Math.atan2(dy, dx);
72
+ theta *= 180 / Math.PI;
73
+ return Number.isFinite(theta) ? theta : 0;
74
+ };
75
+ var angleBetweenPoints = (cx, cy, ex, ey) => {
76
+ const dy = ey - cy;
77
+ const dx = ex - cx;
78
+ let theta = Math.atan2(dy, dx);
79
+ theta *= 180 / Math.PI;
80
+ return Number.isFinite(theta) ? theta : 0;
81
+ };
82
+ var distance2Point = (x1, y1, x2, y2) => {
83
+ const dist = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));
84
+ return Number.isFinite(dist) ? dist : 0;
85
+ };
86
+ var xmath = {
87
+ rand,
88
+ randRound,
89
+ randHalt,
90
+ randInt,
91
+ randFloat,
92
+ degToRad,
93
+ radToDeg,
94
+ degBetweenPoints360,
95
+ degBetweenPoints,
96
+ angleBetweenPoints,
97
+ distance2Point,
98
+ diffDate,
99
+ positiveNumber
100
+ };
101
+ var math_default = xmath;
102
+
103
+ export {
104
+ randRound,
105
+ rand,
106
+ randHalt,
107
+ randInt,
108
+ randFloat,
109
+ degToRad,
110
+ radToDeg,
111
+ clamp,
112
+ degBetweenPoints360,
113
+ degBetweenPoints,
114
+ angleBetweenPoints,
115
+ distance2Point,
116
+ math_default,
117
+ math_exports
118
+ };