diginext-utils 2.1.10 → 2.1.12

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 (61) hide show
  1. package/dist/array.d.ts +2 -2
  2. package/dist/array.js +1 -0
  3. package/dist/array.js.map +1 -1
  4. package/dist/color.d.ts +2 -0
  5. package/dist/color.js +7 -1
  6. package/dist/color.js.map +1 -1
  7. package/esm/array.d.ts +2 -2
  8. package/esm/array.js +1 -0
  9. package/esm/array.js.map +1 -1
  10. package/esm/color.d.ts +2 -0
  11. package/esm/color.js +5 -0
  12. package/esm/color.js.map +1 -1
  13. package/package.json +2 -3
  14. package/src/Checker.ts +0 -29
  15. package/src/EventDispatcher.ts +0 -62
  16. package/src/FileUpload.ts +0 -66
  17. package/src/Slug.ts +0 -365
  18. package/src/Timer.ts +0 -7
  19. package/src/Validation.ts +0 -36
  20. package/src/array.ts +0 -285
  21. package/src/color.ts +0 -87
  22. package/src/console/enableConsole.ts +0 -8
  23. package/src/console/index.ts +0 -17
  24. package/src/console/log.ts +0 -39
  25. package/src/device/browser.ts +0 -29
  26. package/src/device/camera.ts +0 -207
  27. package/src/device/index.ts +0 -230
  28. package/src/device/os.ts +0 -29
  29. package/src/file/createDir.ts +0 -14
  30. package/src/file/fileMove.ts +0 -32
  31. package/src/file/findFilesByExt.ts +0 -46
  32. package/src/file/index.ts +0 -7
  33. package/src/gameboi/index.ts +0 -65
  34. package/src/images/index.ts +0 -3
  35. package/src/images/loadImage.ts +0 -16
  36. package/src/images/resize.ts +0 -35
  37. package/src/images/upload.ts +0 -24
  38. package/src/index.ts +0 -39
  39. package/src/json.ts +0 -29
  40. package/src/math/diffDate.ts +0 -10
  41. package/src/math/index.ts +0 -90
  42. package/src/math/positiveNumber.ts +0 -12
  43. package/src/name/en.ts +0 -27
  44. package/src/name/index.ts +0 -8
  45. package/src/name/vi.ts +0 -24
  46. package/src/object.ts +0 -72
  47. package/src/permission/index.ts +0 -6
  48. package/src/permission/requestCamera.ts +0 -43
  49. package/src/permission/requestDeviceOrientationControl.ts +0 -33
  50. package/src/response/index.ts +0 -45
  51. package/src/string/convertPathnameAndQuery.ts +0 -24
  52. package/src/string/formatNumber.ts +0 -12
  53. package/src/string/generatePassword.ts +0 -18
  54. package/src/string/generateUUID.ts +0 -37
  55. package/src/string/getTextBetweenCharByIndex.ts +0 -20
  56. package/src/string/index.ts +0 -181
  57. package/src/string/indexesOf.ts +0 -15
  58. package/src/string/makeDaySlug.ts +0 -40
  59. package/src/string/random.ts +0 -33
  60. package/src/string/trimNull.ts +0 -16
  61. package/src/string/url.ts +0 -80
package/src/color.ts DELETED
@@ -1,87 +0,0 @@
1
- export const random = (hex = false) => {
2
- return (hex ? "#" : "") + Math.floor(Math.random() * 16777215).toString(16);
3
- };
4
-
5
- // This function (pSBC) will take a HEX or RGB web color.
6
- // pSBC can shade it darker or lighter, or blend it with a second color, and can also pass it right thru but convert from Hex to RGB (Hex2RGB) or RGB to Hex (RGB2Hex).
7
- // All without you even knowing what color format you are using.
8
- // Version 4.0 (pref: https://github.com/PimpTrizkit/PJs/wiki/12.-Shade,-Blend-and-Convert-a-Web-Color-(pSBC.js));
9
-
10
- export const pSBC = (p: any, c0: any, c1?: any, l?: any) => {
11
- let r,
12
- g,
13
- b,
14
- P,
15
- f,
16
- t,
17
- h,
18
- i = parseInt,
19
- m = Math.round,
20
- a: any = typeof c1 == "string";
21
- if (typeof p != "number" || p < -1 || p > 1 || typeof c0 != "string" || (c0[0] != "r" && c0[0] != "#") || (c1 && !a)) return null;
22
-
23
- const pSBCr = (d: any) => {
24
- let n = d.length,
25
- x: { r: number; g: number; b: number; a: number } = { r: 0, g: 0, b: 0, a: 1 };
26
- if (n > 9) {
27
- ([r, g, b, a] = d = d.split(",")), (n = d.length);
28
- if (n < 3 || n > 4) return null;
29
- (x.r = i(r[3] == "a" ? r.slice(5) : r.slice(4))), (x.g = i(g)), (x.b = i(b)), (x.a = a ? parseFloat(a.toString()) : -1);
30
- } else {
31
- if (n == 8 || n == 6 || n < 4) return null;
32
- if (n < 6) d = "#" + d[1] + d[1] + d[2] + d[2] + d[3] + d[3] + (n > 4 ? d[4] + d[4] : "");
33
- d = i(d.slice(1), 16);
34
- if (n == 9 || n == 5) (x.r = (d >> 24) & 255), (x.g = (d >> 16) & 255), (x.b = (d >> 8) & 255), (x.a = m((d & 255) / 0.255) / 1000);
35
- else (x.r = d >> 16), (x.g = (d >> 8) & 255), (x.b = d & 255), (x.a = -1);
36
- }
37
- return x;
38
- };
39
- (h = c0.length > 9),
40
- (h = a ? (c1.length > 9 ? true : c1 == "c" ? !h : false) : h),
41
- (f = pSBCr(c0)),
42
- (P = p < 0),
43
- (t = c1 && c1 != "c" ? pSBCr(c1) : P ? { r: 0, g: 0, b: 0, a: -1 } : { r: 255, g: 255, b: 255, a: -1 }),
44
- (p = P ? p * -1 : p),
45
- (P = 1 - p);
46
- if (!f || !t || typeof f == "undefined") return null;
47
- else if (l) (r = m(P * f.r + p * t.r)), (g = m(P * f.g + p * t.g)), (b = m(P * f.b + p * t.b));
48
- else (r = m((P * f.r ** 2 + p * t.r ** 2) ** 0.5)), (g = m((P * f.g ** 2 + p * t.g ** 2) ** 0.5)), (b = m((P * f.b ** 2 + p * t.b ** 2) ** 0.5));
49
-
50
- (a = f.a), (t = t.a), (f = a >= 0 || t >= 0), (a = f ? (a < 0 ? t : t < 0 ? a : a * P + t * p) : 0);
51
-
52
- if (h) return "rgb" + (f ? "a(" : "(") + r + "," + g + "," + b + (f ? "," + m(a * 1000) / 1000 : "") + ")";
53
- else return "#" + (4294967296 + r * 16777216 + g * 65536 + b * 256 + (f ? m(a * 255) : 0)).toString(16).slice(1, f ? undefined : -2);
54
- };
55
-
56
- export const hexToRgb = (hex: string) => {
57
- var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
58
- return result
59
- ? {
60
- r: parseInt(result[1], 16),
61
- g: parseInt(result[2], 16),
62
- b: parseInt(result[3], 16),
63
- }
64
- : null;
65
- };
66
-
67
- export const hexDarken = (hex: string, amount: number) => {
68
- return pSBC(-amount, hex);
69
- };
70
-
71
- export const hexLighten = (hex: string, amount: number) => {
72
- return pSBC(amount, hex);
73
- };
74
-
75
- export const RGBToHex = (rgb: string | any) => {
76
- return pSBC(0, rgb, "c", true);
77
- };
78
-
79
- const color = {
80
- random,
81
- pSBC,
82
- hexToRgb,
83
- hexDarken,
84
- hexLighten,
85
- RGBToHex,
86
- };
87
- export default color;
@@ -1,8 +0,0 @@
1
- import cloneDeep from "lodash/cloneDeep";
2
- const _console = cloneDeep(console);
3
-
4
- export function enableConsole() {
5
- return _console;
6
- }
7
-
8
- export default enableConsole;
@@ -1,17 +0,0 @@
1
- export const disableConsole = () => {
2
- for (var key in console) {
3
- (console as any)[key] = function () {};
4
- }
5
- };
6
-
7
- export const removeConsole = disableConsole;
8
-
9
- export const showCredit = () => {
10
- console.log("Developed by Digitop | https://www.wearetopgroup.com/?utm_src=console");
11
- };
12
-
13
- import { enableConsole } from "./enableConsole";
14
-
15
- const xconsole = { enableConsole, disableConsole, removeConsole, showCredit };
16
-
17
- export default xconsole;
@@ -1,39 +0,0 @@
1
- import chalk from "chalk";
2
- import dayjs from "dayjs";
3
-
4
- export const log = (...msg: any) => {
5
- console.log(chalk.bgBlue.white(`[LOGGING ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
6
- return msg;
7
- };
8
-
9
- export const logFull = (data = {}) => {
10
- console.dir(data, { depth: null, colors: true, maxArrayLength: null });
11
- return data;
12
- };
13
-
14
- export const logRes = (res: any, ...msg: any[]) => {
15
- /**
16
- * res.locals.req = Express Request
17
- */
18
- console.warn(chalk.blue(`[${res.statusCode}] ${res.locals.req?.originalUrl || "UNKNOWN_PATH"} >> ${res.locals.req?.method} >>`), ...msg);
19
- return msg;
20
- };
21
-
22
- export const logError = (...msg: any[]) => {
23
- console.error(chalk.bgRed.white(`[ERROR ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), chalk.red(...msg));
24
- return msg;
25
- };
26
-
27
- export const logWarn = (...msg: any[]) => {
28
- console.warn(chalk.bgYellow.black(`[WARNING ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
29
- return msg;
30
- };
31
-
32
- export const logSuccess = (...msg: any[]) => {
33
- console.info(chalk.bgGreen.black(`[SUCCESS ${dayjs().format("YYYY-MM-DD HH:mm:ss")}]`), ...msg);
34
- return msg;
35
- };
36
-
37
- const xlog = { log, logFull, logRes, logError, logWarn, logSuccess };
38
-
39
- export default xlog;
@@ -1,29 +0,0 @@
1
- export const isPotrait = () => {
2
- if (typeof window == "undefined") return false;
3
-
4
- if (!window.orientation) return window.matchMedia("(orientation: portrait)").matches;
5
- return !(window.orientation === 90 || window.orientation === -90);
6
- };
7
-
8
- export const isLandscape = () => {
9
- return !isPotrait();
10
- };
11
-
12
- export const ua = () => {
13
- if (typeof navigator == "undefined") return null;
14
- if (typeof window == "undefined") return null;
15
-
16
- return navigator.userAgent || navigator.vendor || (window as any).opera;
17
- };
18
-
19
- export const isFacebookWebview = () => {
20
- var ua: any = ua();
21
- if (typeof ua != "undefined") return ua.indexOf("FBAN") > -1 || ua.indexOf("FBAV") > -1;
22
- };
23
-
24
- export const isInAppWebview = () => {
25
- const rules = ["WebView", "(iPhone|iPod|iPad)(?!.*Safari/)", "Android.*(wv|.0.0.0)"];
26
- const regex = new RegExp(`(${rules.join("|")})`, "ig");
27
- if (ua()) return Boolean(ua().match(regex));
28
- return false;
29
- };
@@ -1,207 +0,0 @@
1
- import { requestCamera } from "../permission/requestCamera";
2
-
3
- type GetWebcamParams = {
4
- container?: HTMLElement;
5
- facingMode: string;
6
- audio: boolean;
7
- };
8
-
9
- export function getWebcam(params: GetWebcamParams = { facingMode: "environment", audio: true }) {
10
- if (typeof window == "undefined") return;
11
-
12
- const { container, facingMode = "environment", audio = true } = params;
13
- const _container = container || document.body;
14
-
15
- return new Promise(async (resolve, reject) => {
16
- const video = document.createElement("video") as any;
17
- video.style.position = "absolute";
18
- video.style.top = "0";
19
- video.style.left = "0";
20
- video.style.width = "100%";
21
- video.style.height = "100%";
22
- _container.append(video);
23
-
24
- let inputCameras: any[] = [];
25
- let currentCamera: any;
26
-
27
- const requestedMediaConstraints: MediaStreamConstraints = {
28
- video: {
29
- facingMode: { exact: facingMode },
30
- },
31
- audio,
32
- };
33
-
34
- let stream: any;
35
- let isAllowed = false;
36
-
37
- console.log("[Camera.js] Requesting:", requestedMediaConstraints);
38
- const res = await requestCamera({ audio });
39
- if (!res) {
40
- setTimeout(function () {
41
- handleError({ name: "Error", message: "NotSupported" });
42
- }, 50);
43
- }
44
-
45
- // start requesting media permissions:
46
-
47
- // console.log("[Camera.js] Requesting:", requestedMediaConstraints);
48
-
49
- // if (navigator.mediaDevices.enumerateDevices === undefined) {
50
- // setTimeout(function () {
51
- // handleError({ name: "Error", message: "NotSupported" });
52
- // }, 50);
53
- // } else {
54
- navigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);
55
- // }
56
-
57
- function parseDevices(devices: MediaDeviceInfo[]) {
58
- inputCameras = [];
59
- let backCameras: any[] = [];
60
-
61
- devices.forEach(function (device) {
62
- if (device.kind == "videoinput" && typeof device.deviceId != "undefined" && device.deviceId != "") {
63
- inputCameras.push(device);
64
- }
65
- });
66
- // //alert (JSON.stringify (devices));
67
- console.log("[Camera.js] inputCameras:", inputCameras);
68
-
69
- if (inputCameras.length > 0) {
70
- let cams = "";
71
- let backCamera: any;
72
-
73
- inputCameras.map((cam, index) => {
74
- cams += `[${cam.deviceId}] ${cam.kind} | ${cam.label}\n`;
75
- // console.log(cam);
76
- let label = cam.label.toLowerCase();
77
- if (label.indexOf("back") > -1 || label.indexOf("facetime") > -1) {
78
- backCamera = cam;
79
- backCameras.push(backCamera);
80
- }
81
- });
82
-
83
- if (backCameras.length > 1) {
84
- backCamera = backCameras[backCameras.length - 1];
85
- }
86
-
87
- console.log(`[Camera.js] All input sources:`, cams);
88
- console.log(`[Camera.js] This device has ${backCameras.length} back camera${backCameras.length > 1 ? "s" : ""}.`);
89
- console.log("[Camera.js] backCameras:", JSON.stringify(backCameras));
90
-
91
- currentCamera = backCamera;
92
-
93
- // if (scope.onGotDevices) {
94
- // scope.onGotDevices(devices);
95
- // }
96
-
97
- // Lấy stream của camera sau
98
- // (Lấy cái cuối cùng trong danh sách trước, thường sẽ là camera chính trên Android)
99
- getStreamOfCameraId(backCamera.deviceId)
100
- .then(onStreamReceived)
101
- .catch((e) => {
102
- if (backCameras.length > 1) {
103
- // nếu thiết bị có nhiều hơn 1 camera sau -> thử lấy camera khác
104
- backCamera = backCameras[backCameras.length - 2];
105
- getStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);
106
- } else if (backCameras.length > 2) {
107
- // nếu thiết bị có nhiều hơn 2 camera sau -> thử lấy camera khác nữa
108
- backCamera = backCameras[backCameras.length - 3];
109
- getStreamOfCameraId(backCamera.deviceId).then(onStreamReceived).catch(handleError);
110
- } else {
111
- // nếu thiết bị đéo có camera sau...
112
- handleError(e);
113
- }
114
- });
115
- } else {
116
- navigator.mediaDevices.getUserMedia(requestedMediaConstraints).then(onStreamReceived).catch(handleError);
117
-
118
- // if (scope.onGotDevicesFailed) scope.onGotDevicesFailed();
119
- }
120
- }
121
-
122
- function onStreamReceived(stream: any): void {
123
- if (inputCameras.length == 0) {
124
- console.log("[Camera.js] Not found any back cameras, request again?");
125
- navigator.mediaDevices.enumerateDevices().then(parseDevices).catch(handleError);
126
- return;
127
- }
128
-
129
- isAllowed = true;
130
-
131
- playWebcamVideo(stream);
132
- }
133
-
134
- function playWebcamVideo(_stream: any) {
135
- stream = _stream;
136
-
137
- if ("srcObject" in video) {
138
- // //alert ('GOT STREAM VIDEO OBJECT');
139
- video.srcObject = _stream;
140
- } else {
141
- // //alert ('GOT STREAM VIDEO SOURCE URL');
142
- // Avoid using this in new browsers, as it is going away.
143
- video.src = window.URL.createObjectURL(_stream);
144
- }
145
-
146
- // required to tell iOS safari we don't want fullscreen
147
- video.setAttribute("playsinline", "true");
148
- video.setAttribute("muted", "true");
149
- video.setAttribute("autoplay", "true");
150
- video.muted = true;
151
- video.autoplay = true;
152
- video.style.objectFit = "cover";
153
- video.play();
154
-
155
- // auto play
156
- video.addEventListener("canplay", function (e: any) {
157
- // //alert ('CAN PLAY');
158
- });
159
-
160
- video.addEventListener("canplaythrough", function (e: any) {
161
- // //alert ('CAN PLAY THROUGH');
162
- });
163
-
164
- video.addEventListener("error", (e: any) => console.log("[Camera.js] <video> error:", e));
165
-
166
- video.addEventListener("stalled", function (e: any) {
167
- // //alert ('CANNOT GET METADATA');
168
- isAllowed = false;
169
- console.log("[Camera.js] <video> stalled:", e);
170
-
171
- reject();
172
- });
173
-
174
- video.addEventListener("loadedmetadata", function (e: any) {
175
- if (currentCamera.label.toLowerCase().indexOf("facetime") > -1) {
176
- video.style.transform = "scaleX(-1)";
177
- video.style.webkitTransform = "scaleX(-1)";
178
- }
179
-
180
- video.play();
181
-
182
- resolve(video);
183
- });
184
- }
185
-
186
- function getStreamOfCameraId(id: any) {
187
- const constraints = {
188
- video: { deviceId: { exact: id } },
189
- audio: false,
190
- };
191
-
192
- return new Promise((resolve, reject) => {
193
- navigator.mediaDevices.getUserMedia(constraints).then(resolve).catch(reject);
194
- });
195
- }
196
-
197
- function handleError(err: any) {
198
- console.error(err);
199
- const errMsg = "[Camera.js] " + err.name + ": " + err.message;
200
- console.error(errMsg);
201
-
202
- isAllowed = false;
203
-
204
- reject();
205
- }
206
- });
207
- }
@@ -1,230 +0,0 @@
1
- export const isIos = () => {
2
- const deviceInfo = checkOS();
3
- if (deviceInfo) return deviceInfo.os.toLowerCase() == "ios";
4
- console.log("Can't check OS");
5
- return null;
6
- };
7
-
8
- export const isAndroid = () => {
9
- const deviceInfo = checkOS();
10
- if (deviceInfo) return deviceInfo.os.toLowerCase() == "android";
11
- console.log("Can't check OS");
12
- return null;
13
- };
14
-
15
- export const isTablet = () => {
16
- if (typeof navigator == "undefined") return null;
17
- if (typeof window == "undefined") return null;
18
-
19
- return isMobile() && window.innerWidth > 599 && window.innerHeight > 599;
20
- };
21
-
22
- export const isMobile = () => {
23
- if (typeof navigator == "undefined") return null;
24
-
25
- if (
26
- navigator.userAgent.match(/Android/i) ||
27
- navigator.userAgent.match(/webOS/i) ||
28
- navigator.userAgent.match(/iPhone/i) ||
29
- navigator.userAgent.match(/iPad/i) ||
30
- navigator.userAgent.match(/iPod/i) ||
31
- navigator.userAgent.match(/BlackBerry/i) ||
32
- navigator.userAgent.match(/Windows Phone/i)
33
- ) {
34
- return true;
35
- } else {
36
- return false;
37
- }
38
- };
39
-
40
- /**
41
- *
42
- * @returns {{
43
- * screen,
44
- * browser,
45
- * browserVersion,
46
- * browserMajorVersion,
47
- * mobile,
48
- * os,
49
- * osVersion,
50
- * cookies,
51
- * flashVersion,
52
- * }}
53
- */
54
- let deviceInfo: any;
55
- export const checkOS = () => {
56
- if (typeof window == "undefined") return {};
57
-
58
- if (typeof deviceInfo == "undefined") {
59
- var unknown = "-";
60
-
61
- // screen
62
- var screenSize = "";
63
- if (screen.width) {
64
- var width = screen.width ? screen.width : "";
65
- var height = screen.height ? screen.height : "";
66
- screenSize += "" + width + " x " + height;
67
- }
68
-
69
- // browser
70
- var nVer = navigator.appVersion;
71
- var nAgt = navigator.userAgent;
72
- var browser = navigator.appName;
73
- var version = "" + parseFloat(navigator.appVersion);
74
- var majorVersion = parseInt(navigator.appVersion, 10);
75
- var nameOffset, verOffset, ix;
76
-
77
- // Opera
78
- if ((verOffset = nAgt.indexOf("Opera")) != -1) {
79
- browser = "Opera";
80
- version = nAgt.substring(verOffset + 6);
81
- if ((verOffset = nAgt.indexOf("Version")) != -1) {
82
- version = nAgt.substring(verOffset + 8);
83
- }
84
- }
85
- // Opera Next
86
- if ((verOffset = nAgt.indexOf("OPR")) != -1) {
87
- browser = "Opera";
88
- version = nAgt.substring(verOffset + 4);
89
- }
90
- // Edge
91
- else if ((verOffset = nAgt.indexOf("Edge")) != -1) {
92
- browser = "Microsoft Edge";
93
- version = nAgt.substring(verOffset + 5);
94
- }
95
- // MSIE
96
- else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
97
- browser = "Microsoft Internet Explorer";
98
- version = nAgt.substring(verOffset + 5);
99
- }
100
- // Chrome
101
- else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
102
- browser = "Chrome";
103
- version = nAgt.substring(verOffset + 7);
104
- }
105
- // Safari
106
- else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
107
- browser = "Safari";
108
- version = nAgt.substring(verOffset + 7);
109
- if ((verOffset = nAgt.indexOf("Version")) != -1) {
110
- version = nAgt.substring(verOffset + 8);
111
- }
112
- }
113
- // Firefox
114
- else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
115
- browser = "Firefox";
116
- version = nAgt.substring(verOffset + 8);
117
- }
118
- // MSIE 11+
119
- else if (nAgt.indexOf("Trident/") != -1) {
120
- browser = "Microsoft Internet Explorer";
121
- version = nAgt.substring(nAgt.indexOf("rv:") + 3);
122
- }
123
- // Other browsers
124
- else if ((nameOffset = nAgt.lastIndexOf(" ") + 1) < (verOffset = nAgt.lastIndexOf("/"))) {
125
- browser = nAgt.substring(nameOffset, verOffset);
126
- version = nAgt.substring(verOffset + 1);
127
- if (browser.toLowerCase() == browser.toUpperCase()) {
128
- browser = navigator.appName;
129
- }
130
- }
131
- // trim the version string
132
- if ((ix = version.indexOf(";")) != -1) version = version.substring(0, ix);
133
- if ((ix = version.indexOf(" ")) != -1) version = version.substring(0, ix);
134
- if ((ix = version.indexOf(")")) != -1) version = version.substring(0, ix);
135
-
136
- majorVersion = parseInt("" + version, 10);
137
- if (isNaN(majorVersion)) {
138
- version = "" + parseFloat(navigator.appVersion);
139
- majorVersion = parseInt(navigator.appVersion, 10);
140
- }
141
-
142
- // mobile version
143
- var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);
144
-
145
- // cookie
146
- var cookieEnabled = navigator.cookieEnabled ? true : false;
147
-
148
- if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
149
- document.cookie = "testcookie";
150
- cookieEnabled = document.cookie.indexOf("testcookie") != -1 ? true : false;
151
- }
152
-
153
- // system
154
- var os = unknown;
155
- var clientStrings = [
156
- { s: "Windows 10", r: /(Windows 10.0|Windows NT 10.0)/ },
157
- { s: "Windows 8.1", r: /(Windows 8.1|Windows NT 6.3)/ },
158
- { s: "Windows 8", r: /(Windows 8|Windows NT 6.2)/ },
159
- { s: "Windows 7", r: /(Windows 7|Windows NT 6.1)/ },
160
- { s: "Windows Vista", r: /Windows NT 6.0/ },
161
- { s: "Windows Server 2003", r: /Windows NT 5.2/ },
162
- { s: "Windows XP", r: /(Windows NT 5.1|Windows XP)/ },
163
- { s: "Windows 2000", r: /(Windows NT 5.0|Windows 2000)/ },
164
- { s: "Windows ME", r: /(Win 9x 4.90|Windows ME)/ },
165
- { s: "Windows 98", r: /(Windows 98|Win98)/ },
166
- { s: "Windows 95", r: /(Windows 95|Win95|Windows_95)/ },
167
- { s: "Windows NT 4.0", r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },
168
- { s: "Windows CE", r: /Windows CE/ },
169
- { s: "Windows 3.11", r: /Win16/ },
170
- { s: "Android", r: /Android/ },
171
- { s: "Open BSD", r: /OpenBSD/ },
172
- { s: "Sun OS", r: /SunOS/ },
173
- { s: "Linux", r: /(Linux|X11)/ },
174
- { s: "iOS", r: /(iPhone|iPad|iPod)/ },
175
- { s: "Mac OS X", r: /Mac OS X/ },
176
- { s: "Mac OS", r: /(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },
177
- { s: "QNX", r: /QNX/ },
178
- { s: "UNIX", r: /UNIX/ },
179
- { s: "BeOS", r: /BeOS/ },
180
- { s: "OS/2", r: /OS\/2/ },
181
- { s: "Search Bot", r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/ },
182
- ];
183
- for (var id in clientStrings) {
184
- var cs = clientStrings[id];
185
- if (cs.r.test(nAgt)) {
186
- os = cs.s;
187
- break;
188
- }
189
- }
190
-
191
- var osVersion = unknown;
192
-
193
- if (/Windows/.test(os)) {
194
- const _osv = /Windows (.*)/.exec(os) || [];
195
- osVersion = _osv[1] || "unknown";
196
- os = "Windows";
197
- }
198
-
199
- switch (os) {
200
- case "Mac OS X":
201
- const _osvx = /Mac OS X (10[\.\_\d]+)/.exec(nAgt);
202
- osVersion = _osvx?.[1] || "unknown";
203
- break;
204
-
205
- case "Android":
206
- osVersion = /Android ([\.\_\d]+)/.exec(nAgt)?.[1] || "unknown";
207
- break;
208
-
209
- case "iOS":
210
- const _osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer) || [0, 0, 0];
211
- osVersion = (_osVersion[1] || 0) + "." + (_osVersion[2] || 0) + "." + (_osVersion[3] || 0);
212
- break;
213
- }
214
-
215
- const _deviceInfo = {
216
- screen: screenSize,
217
- browser: browser,
218
- browserVersion: version,
219
- browserMajorVersion: majorVersion,
220
- mobile: mobile,
221
- os: os,
222
- osVersion: osVersion,
223
- cookies: cookieEnabled,
224
- };
225
-
226
- deviceInfo = _deviceInfo;
227
- }
228
-
229
- return deviceInfo;
230
- };
package/src/device/os.ts DELETED
@@ -1,29 +0,0 @@
1
- // var osvar = process.platform;
2
- import os from "os";
3
-
4
- export function getOS() {
5
- const osvar = os.platform();
6
- if (osvar == "darwin") {
7
- return "mac";
8
- } else if (osvar == "win32") {
9
- return "win";
10
- } else if (osvar == "linux") {
11
- return "linux";
12
- } else {
13
- return osvar;
14
- }
15
- }
16
-
17
- export function isWin() {
18
- return os.platform() == "win32";
19
- }
20
-
21
- export function isMac() {
22
- return os.platform() == "darwin";
23
- }
24
-
25
- export function isLinux() {
26
- return os.platform() == "linux";
27
- }
28
-
29
- export default { getOS, isWin, isMac, isLinux };
@@ -1,14 +0,0 @@
1
- const fs = require("fs");
2
-
3
- /**
4
- * Create new directory
5
- */
6
- function createDir(path: string) {
7
- if (fs.existsSync(path)) {
8
- console.log("directory already exited !");
9
- return true;
10
- }
11
- fs.mkdirSync(path, { recursive: true });
12
- }
13
-
14
- export { createDir };
@@ -1,32 +0,0 @@
1
- const fs = require("fs");
2
-
3
- /**
4
- * Move file to another location.
5
- */
6
- export function fileMove(oldPath: string, newPath: string, callback: any) {
7
- fs.rename(oldPath, newPath, function (err: any) {
8
- if (err) {
9
- if (err.code === "EXDEV") {
10
- copy();
11
- } else {
12
- callback(err);
13
- }
14
- return;
15
- }
16
- callback();
17
- });
18
-
19
- function copy() {
20
- var readStream = fs.createReadStream(oldPath);
21
- var writeStream = fs.createWriteStream(newPath);
22
-
23
- readStream.on("error", callback);
24
- writeStream.on("error", callback);
25
-
26
- readStream.on("close", function () {
27
- fs.unlink(oldPath, callback);
28
- });
29
-
30
- readStream.pipe(writeStream);
31
- }
32
- }