diginext-utils 2.1.22 → 2.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +162 -162
- package/dist/Checker.mjs +29 -0
- package/dist/EventDispatcher.mjs +54 -0
- package/dist/FileUpload.mjs +62 -0
- package/dist/Slug.mjs +9 -0
- package/dist/Timer-7b0c4e7c.d.ts +11 -0
- package/dist/Timer.mjs +7 -0
- package/dist/Validation.mjs +35 -0
- package/dist/array-c38eff4c.d.ts +158 -0
- package/dist/array.mjs +49 -0
- package/dist/browser-8d042ffe.d.ts +22 -0
- package/dist/camera-1a859d72.d.ts +15 -0
- package/dist/chunk-24DHBJAC.mjs +35 -0
- package/dist/chunk-32BJ2V3H.mjs +195 -0
- package/dist/chunk-32PJ3FML.mjs +57 -0
- package/dist/chunk-3OYOTSDB.mjs +339 -0
- package/dist/chunk-4CWVMQ53.mjs +167 -0
- package/dist/chunk-4VQ25N7H.mjs +43 -0
- package/dist/chunk-6OZHYD5H.mjs +91 -0
- package/dist/chunk-76AY2CWV.mjs +22 -0
- package/dist/chunk-7MK72U4O.mjs +19 -0
- package/dist/chunk-7SOQVGCL.mjs +12 -0
- package/dist/chunk-7XKT3AQX.mjs +17 -0
- package/dist/chunk-AT5ZUBQL.mjs +151 -0
- package/dist/chunk-CKILLYAP.mjs +16 -0
- package/dist/chunk-D5JDP7JB.mjs +56 -0
- package/dist/chunk-DEOVENCJ.mjs +15 -0
- package/dist/chunk-FILFH56Y.mjs +21 -0
- package/dist/chunk-FTXB3IBS.mjs +20 -0
- package/dist/chunk-GJMNV2OC.mjs +35 -0
- package/dist/chunk-GNJDIUYM.mjs +40 -0
- package/dist/chunk-HN4EHJ2H.mjs +39 -0
- package/dist/chunk-HTAKHCLC.mjs +43 -0
- package/dist/chunk-JAP2EUEW.mjs +86 -0
- package/dist/chunk-JFASFX5Y.mjs +16 -0
- package/dist/chunk-JIMOWRMS.mjs +118 -0
- package/dist/chunk-K4KENOE6.mjs +20 -0
- package/dist/chunk-LGBBKRBU.mjs +40 -0
- package/dist/chunk-PMJLVOEM.mjs +25 -0
- package/dist/chunk-PSVXSTS4.mjs +51 -0
- package/dist/chunk-SNYWQI35.mjs +41 -0
- package/dist/chunk-TV4YHUBU.mjs +23 -0
- package/dist/chunk-UHUY6K7N.mjs +24 -0
- package/dist/chunk-UZ7BFUDR.mjs +258 -0
- package/dist/chunk-YLZC36RI.mjs +32 -0
- package/dist/chunk-ZNIXVHZT.mjs +24 -0
- package/dist/color.mjs +85 -0
- package/dist/console/enableConsole.mjs +9 -0
- package/dist/console/index.mjs +14 -0
- package/dist/console/log.mjs +19 -0
- package/dist/createDir-220e0081.d.ts +13 -0
- package/dist/device/browser.mjs +15 -0
- package/dist/device/camera.mjs +8 -0
- package/dist/device/index.mjs +15 -0
- package/dist/device/os.mjs +33 -0
- package/dist/enableConsole-ddc24282.d.ts +11 -0
- package/dist/file/createDir.mjs +7 -0
- package/dist/file/fileMove.mjs +7 -0
- package/dist/file/findFilesByExt.mjs +11 -0
- package/dist/file/index.mjs +17 -0
- package/dist/fileMove-3a09e429.d.ts +13 -0
- package/dist/findFilesByExt-753e91d7.d.ts +24 -0
- package/dist/gameboi/index.d.ts +2 -0
- package/dist/gameboi/index.js +5 -0
- package/dist/gameboi/index.js.map +1 -1
- package/dist/gameboi/index.mjs +65 -0
- package/dist/images/downloadByUrl.mjs +53 -0
- package/dist/images/index.mjs +14 -0
- package/dist/images/loadImage.js +1 -1
- package/dist/images/loadImage.js.map +1 -1
- package/dist/images/loadImage.mjs +21 -0
- package/dist/images/resize.mjs +9 -0
- package/dist/images/upload.mjs +13 -0
- package/dist/index-1e114d55.d.ts +26 -0
- package/dist/index-1f738e52.d.ts +22 -0
- package/dist/index-22309f0c.d.ts +23 -0
- package/dist/index-3eeb7834.d.ts +90 -0
- package/dist/index-6ae3c86b.d.ts +63 -0
- package/dist/index.mjs +87 -0
- package/dist/json.mjs +29 -0
- package/dist/math/diffDate.mjs +9 -0
- package/dist/math/index.mjs +34 -0
- package/dist/math/positiveNumber.mjs +10 -0
- package/dist/name/en.mjs +9 -0
- package/dist/name/index.mjs +20 -0
- package/dist/name/vi.mjs +14 -0
- package/dist/object-43aaaf92.d.ts +80 -0
- package/dist/object.mjs +21 -0
- package/dist/permission/index.mjs +15 -0
- package/dist/permission/requestCamera.mjs +9 -0
- package/dist/permission/requestDeviceOrientationControl.mjs +10 -0
- package/dist/requestCamera-32b7dfc7.d.ts +14 -0
- package/dist/requestDeviceOrientationControl-b6458660.d.ts +11 -0
- package/dist/response/index.mjs +16 -0
- package/dist/string/convertPathnameAndQuery.mjs +28 -0
- package/dist/string/formatNumber.mjs +10 -0
- package/dist/string/generatePassword.mjs +10 -0
- package/dist/string/generateUUID.mjs +9 -0
- package/dist/string/getTextBetweenCharByIndex.mjs +22 -0
- package/dist/string/index.mjs +31 -0
- package/dist/string/indexesOf.mjs +7 -0
- package/dist/string/makeDaySlug.mjs +9 -0
- package/dist/string/random.mjs +23 -0
- package/dist/string/trimNull.mjs +9 -0
- package/dist/string/url.mjs +21 -0
- package/dist/url-0da0be84.d.ts +43 -0
- package/esm/gameboi/index.d.ts +2 -0
- package/esm/gameboi/index.js +5 -0
- package/esm/gameboi/index.js.map +1 -1
- package/esm/images/loadImage.js +1 -1
- package/esm/images/loadImage.js.map +1 -1
- 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
|
+
};
|