diginext-utils 2.1.7 → 2.1.9
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/package.json +1 -1
- package/src/Checker.ts +29 -29
- package/src/EventDispatcher.ts +62 -62
- package/src/FileUpload.ts +66 -66
- package/src/Slug.ts +365 -365
- package/src/Timer.ts +7 -7
- package/src/Validation.ts +36 -36
- package/src/array.ts +285 -285
- package/src/color.ts +87 -87
- package/src/console/enableConsole.ts +8 -8
- package/src/console/index.ts +17 -17
- package/src/console/log.ts +39 -39
- package/src/device/browser.ts +29 -29
- package/src/device/camera.ts +207 -207
- package/src/device/index.ts +230 -230
- package/src/device/os.ts +29 -29
- package/src/file/createDir.ts +14 -14
- package/src/file/fileMove.ts +32 -32
- package/src/file/findFilesByExt.ts +46 -46
- package/src/file/index.ts +7 -7
- package/src/images/index.ts +3 -3
- package/src/images/loadImage.ts +16 -16
- package/src/images/resize.ts +35 -35
- package/src/images/upload.ts +24 -24
- package/src/index.ts +39 -39
- package/src/json.ts +29 -29
- package/src/math/diffDate.ts +10 -10
- package/src/math/index.ts +90 -90
- package/src/math/positiveNumber.ts +12 -12
- package/src/name/en.ts +27 -27
- package/src/name/index.ts +8 -8
- package/src/name/vi.ts +23 -23
- package/src/object.ts +72 -72
- package/src/permission/index.ts +6 -6
- package/src/permission/requestCamera.ts +43 -43
- package/src/permission/requestDeviceOrientationControl.ts +33 -33
- package/src/response/index.ts +45 -45
- package/src/string/formatNumber.ts +12 -12
- package/src/string/generatePassword.ts +18 -18
- package/src/string/generateUUID.ts +37 -37
- package/src/string/getTextBetweenCharByIndex.ts +20 -20
- package/src/string/indexesOf.ts +15 -15
- package/src/string/makeDaySlug.ts +40 -40
- package/src/string/random.ts +33 -33
- package/src/string/trimNull.ts +16 -16
package/src/device/index.ts
CHANGED
|
@@ -1,230 +1,230 @@
|
|
|
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
|
-
};
|
|
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
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
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
|
+
// 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 };
|
package/src/file/createDir.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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
|
+
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 };
|
package/src/file/fileMove.ts
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
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
|
-
}
|
|
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
|
+
}
|