diginext-utils 3.9.1 → 3.10.0
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/images/downloadByUrl.d.ts +3 -1
- package/dist/images/downloadByUrl.js +11 -9
- package/dist/images/downloadByUrl.js.map +1 -1
- package/dist/string/guessMimeType.d.ts +1 -0
- package/dist/string/guessMimeType.js +13 -0
- package/dist/string/guessMimeType.js.map +1 -0
- package/dist/string/guessMimeTypeByBuffer.d.ts +2 -0
- package/dist/string/guessMimeTypeByBuffer.js +40 -0
- package/dist/string/guessMimeTypeByBuffer.js.map +1 -0
- package/esm/images/downloadByUrl.d.ts +3 -1
- package/esm/images/downloadByUrl.js +11 -9
- package/esm/images/downloadByUrl.js.map +1 -1
- package/esm/string/guessMimeType.d.ts +1 -0
- package/esm/string/guessMimeType.js +7 -0
- package/esm/string/guessMimeType.js.map +1 -0
- package/esm/string/guessMimeTypeByBuffer.d.ts +2 -0
- package/esm/string/guessMimeTypeByBuffer.js +37 -0
- package/esm/string/guessMimeTypeByBuffer.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
# The library of utility plugins
|
|
2
|
-
|
|
3
|
-
## Exports
|
|
4
|
-
|
|
5
|
-
- "diginext-utils/dist": ES6 modules / NodeJS
|
|
6
|
-
- "diginext-utils/esm": Node modules / JavaScript modules
|
|
7
|
-
|
|
8
|
-
## Imports
|
|
9
|
-
|
|
10
|
-
### ES5 module import:
|
|
11
|
-
|
|
12
|
-
```javascript
|
|
13
|
-
import utils from "diginext-utils";
|
|
14
|
-
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
15
|
-
|
|
16
|
-
// or
|
|
17
|
-
|
|
18
|
-
import { NameEN } from "diginext-utils/dist/name";
|
|
19
|
-
console.log(NameEN.generateName()); // output some random name in English
|
|
20
|
-
|
|
21
|
-
// or just
|
|
22
|
-
import { generateName } from "diginext-utils/dist/name/en";
|
|
23
|
-
console.log(generateName()); // output some random name in English
|
|
24
|
-
|
|
25
|
-
// or with require(...)
|
|
26
|
-
const xurl = require("../dist/string/url");
|
|
27
|
-
xurl.isLink("abc"); // FALSE
|
|
28
|
-
xurl.isLink("https://www.google.com"); // TRUE
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Node module import:
|
|
32
|
-
|
|
33
|
-
**IMPORTANT**: Set "type" as "module" your `package.json`
|
|
34
|
-
|
|
35
|
-
```javascript
|
|
36
|
-
// NodeJS moduies
|
|
37
|
-
import utils from "diginext-utils";
|
|
38
|
-
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
```html
|
|
42
|
-
// browser
|
|
43
|
-
<script type="module">
|
|
44
|
-
import { NameEN } from "diginext-utils/esm/name/index.js"; // ".js" file extension is required !
|
|
45
|
-
console.log(NameEN.generateName()); // output some random name in English
|
|
46
|
-
</script>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## Features
|
|
50
|
-
|
|
51
|
-
- xconsole
|
|
52
|
-
- xarray
|
|
53
|
-
- sumArray
|
|
54
|
-
- averageArray
|
|
55
|
-
- minArray
|
|
56
|
-
- maxArray
|
|
57
|
-
- sortElementByString
|
|
58
|
-
- sortElementByNumber
|
|
59
|
-
- firstElement
|
|
60
|
-
- lastElement
|
|
61
|
-
- randomIndex
|
|
62
|
-
- randomElement
|
|
63
|
-
- mergeAndMakeUniqueElement
|
|
64
|
-
- allMatchInArray
|
|
65
|
-
- removeItem
|
|
66
|
-
- removeItemByKey
|
|
67
|
-
- getRandom
|
|
68
|
-
- getHalfRandom
|
|
69
|
-
- shuffle
|
|
70
|
-
- moveIndex
|
|
71
|
-
- moveArray
|
|
72
|
-
- xmath
|
|
73
|
-
- rand
|
|
74
|
-
- randRound
|
|
75
|
-
- randHalt
|
|
76
|
-
- randInt
|
|
77
|
-
- randFloat
|
|
78
|
-
- degToRad
|
|
79
|
-
- radToDeg
|
|
80
|
-
- angleBetweenPoints
|
|
81
|
-
- diffDate
|
|
82
|
-
- positiveNumber
|
|
83
|
-
- xname
|
|
84
|
-
- NameEN.generateName()
|
|
85
|
-
- NameVI.generateName()
|
|
86
|
-
- xobject
|
|
87
|
-
- isNull
|
|
88
|
-
- toBool
|
|
89
|
-
- toInt
|
|
90
|
-
- toFloat
|
|
91
|
-
- toArray
|
|
92
|
-
- objectToArray
|
|
93
|
-
- xjson
|
|
94
|
-
- isValid
|
|
95
|
-
- xfile
|
|
96
|
-
- createDir
|
|
97
|
-
- fileMove
|
|
98
|
-
- findFileByExt
|
|
99
|
-
- xstring
|
|
100
|
-
- getBetween
|
|
101
|
-
- makeString
|
|
102
|
-
- toUpperCase
|
|
103
|
-
- toLowerCase
|
|
104
|
-
- titleize
|
|
105
|
-
- capitalize
|
|
106
|
-
- capitalizeName
|
|
107
|
-
- clearUnicodeCharacters
|
|
108
|
-
- generateUUID
|
|
109
|
-
- randAllCharacterByLength
|
|
110
|
-
- randomStringByLength
|
|
111
|
-
- formatNumber
|
|
112
|
-
- generatePassword
|
|
113
|
-
- trimNull
|
|
114
|
-
- addQueryParam
|
|
115
|
-
- getUrlParams
|
|
116
|
-
- isLink
|
|
117
|
-
- getFileNameWithoutExtension
|
|
118
|
-
- getFileNameWithExtension
|
|
119
|
-
- getFileExtension
|
|
120
|
-
- isImage
|
|
121
|
-
- xurl
|
|
122
|
-
- addQueryParam
|
|
123
|
-
- getUrlParams
|
|
124
|
-
- isLink
|
|
125
|
-
- getFileNameWithoutExtension
|
|
126
|
-
- getFileNameWithExtension
|
|
127
|
-
- getFileExtension
|
|
128
|
-
- isImage
|
|
129
|
-
- slug
|
|
130
|
-
- makeSlug
|
|
131
|
-
- color
|
|
132
|
-
- random
|
|
133
|
-
- pSBC
|
|
134
|
-
- hexToRgb
|
|
135
|
-
- hexDarken
|
|
136
|
-
- hexLighten
|
|
137
|
-
- RGBToHex
|
|
138
|
-
- device
|
|
139
|
-
- camera
|
|
140
|
-
- requestCamera
|
|
141
|
-
- requestDeviceOrientationControl
|
|
142
|
-
- browser
|
|
143
|
-
- isPotrait
|
|
144
|
-
- isLandscape
|
|
145
|
-
- ua
|
|
146
|
-
- isFacebookWebview
|
|
147
|
-
- isInAppWebview
|
|
148
|
-
- Timer
|
|
149
|
-
- wait
|
|
150
|
-
- Validation
|
|
151
|
-
- imageValidate
|
|
152
|
-
- videoValidate
|
|
153
|
-
|
|
154
|
-
## Dev
|
|
155
|
-
|
|
156
|
-
```
|
|
157
|
-
yarn dev
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Support
|
|
161
|
-
|
|
162
|
-
Liên hệ [TOP GROUP Developers](mailto:dev@wearetopgroup.com) nếu cần hỗ trợ.
|
|
1
|
+
# The library of utility plugins
|
|
2
|
+
|
|
3
|
+
## Exports
|
|
4
|
+
|
|
5
|
+
- "diginext-utils/dist": ES6 modules / NodeJS
|
|
6
|
+
- "diginext-utils/esm": Node modules / JavaScript modules
|
|
7
|
+
|
|
8
|
+
## Imports
|
|
9
|
+
|
|
10
|
+
### ES5 module import:
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
import utils from "diginext-utils";
|
|
14
|
+
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
15
|
+
|
|
16
|
+
// or
|
|
17
|
+
|
|
18
|
+
import { NameEN } from "diginext-utils/dist/name";
|
|
19
|
+
console.log(NameEN.generateName()); // output some random name in English
|
|
20
|
+
|
|
21
|
+
// or just
|
|
22
|
+
import { generateName } from "diginext-utils/dist/name/en";
|
|
23
|
+
console.log(generateName()); // output some random name in English
|
|
24
|
+
|
|
25
|
+
// or with require(...)
|
|
26
|
+
const xurl = require("../dist/string/url");
|
|
27
|
+
xurl.isLink("abc"); // FALSE
|
|
28
|
+
xurl.isLink("https://www.google.com"); // TRUE
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Node module import:
|
|
32
|
+
|
|
33
|
+
**IMPORTANT**: Set "type" as "module" your `package.json`
|
|
34
|
+
|
|
35
|
+
```javascript
|
|
36
|
+
// NodeJS moduies
|
|
37
|
+
import utils from "diginext-utils";
|
|
38
|
+
console.log(utils.xname.NameEN.generateName()); // output some random name in English
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
// browser
|
|
43
|
+
<script type="module">
|
|
44
|
+
import { NameEN } from "diginext-utils/esm/name/index.js"; // ".js" file extension is required !
|
|
45
|
+
console.log(NameEN.generateName()); // output some random name in English
|
|
46
|
+
</script>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Features
|
|
50
|
+
|
|
51
|
+
- xconsole
|
|
52
|
+
- xarray
|
|
53
|
+
- sumArray
|
|
54
|
+
- averageArray
|
|
55
|
+
- minArray
|
|
56
|
+
- maxArray
|
|
57
|
+
- sortElementByString
|
|
58
|
+
- sortElementByNumber
|
|
59
|
+
- firstElement
|
|
60
|
+
- lastElement
|
|
61
|
+
- randomIndex
|
|
62
|
+
- randomElement
|
|
63
|
+
- mergeAndMakeUniqueElement
|
|
64
|
+
- allMatchInArray
|
|
65
|
+
- removeItem
|
|
66
|
+
- removeItemByKey
|
|
67
|
+
- getRandom
|
|
68
|
+
- getHalfRandom
|
|
69
|
+
- shuffle
|
|
70
|
+
- moveIndex
|
|
71
|
+
- moveArray
|
|
72
|
+
- xmath
|
|
73
|
+
- rand
|
|
74
|
+
- randRound
|
|
75
|
+
- randHalt
|
|
76
|
+
- randInt
|
|
77
|
+
- randFloat
|
|
78
|
+
- degToRad
|
|
79
|
+
- radToDeg
|
|
80
|
+
- angleBetweenPoints
|
|
81
|
+
- diffDate
|
|
82
|
+
- positiveNumber
|
|
83
|
+
- xname
|
|
84
|
+
- NameEN.generateName()
|
|
85
|
+
- NameVI.generateName()
|
|
86
|
+
- xobject
|
|
87
|
+
- isNull
|
|
88
|
+
- toBool
|
|
89
|
+
- toInt
|
|
90
|
+
- toFloat
|
|
91
|
+
- toArray
|
|
92
|
+
- objectToArray
|
|
93
|
+
- xjson
|
|
94
|
+
- isValid
|
|
95
|
+
- xfile
|
|
96
|
+
- createDir
|
|
97
|
+
- fileMove
|
|
98
|
+
- findFileByExt
|
|
99
|
+
- xstring
|
|
100
|
+
- getBetween
|
|
101
|
+
- makeString
|
|
102
|
+
- toUpperCase
|
|
103
|
+
- toLowerCase
|
|
104
|
+
- titleize
|
|
105
|
+
- capitalize
|
|
106
|
+
- capitalizeName
|
|
107
|
+
- clearUnicodeCharacters
|
|
108
|
+
- generateUUID
|
|
109
|
+
- randAllCharacterByLength
|
|
110
|
+
- randomStringByLength
|
|
111
|
+
- formatNumber
|
|
112
|
+
- generatePassword
|
|
113
|
+
- trimNull
|
|
114
|
+
- addQueryParam
|
|
115
|
+
- getUrlParams
|
|
116
|
+
- isLink
|
|
117
|
+
- getFileNameWithoutExtension
|
|
118
|
+
- getFileNameWithExtension
|
|
119
|
+
- getFileExtension
|
|
120
|
+
- isImage
|
|
121
|
+
- xurl
|
|
122
|
+
- addQueryParam
|
|
123
|
+
- getUrlParams
|
|
124
|
+
- isLink
|
|
125
|
+
- getFileNameWithoutExtension
|
|
126
|
+
- getFileNameWithExtension
|
|
127
|
+
- getFileExtension
|
|
128
|
+
- isImage
|
|
129
|
+
- slug
|
|
130
|
+
- makeSlug
|
|
131
|
+
- color
|
|
132
|
+
- random
|
|
133
|
+
- pSBC
|
|
134
|
+
- hexToRgb
|
|
135
|
+
- hexDarken
|
|
136
|
+
- hexLighten
|
|
137
|
+
- RGBToHex
|
|
138
|
+
- device
|
|
139
|
+
- camera
|
|
140
|
+
- requestCamera
|
|
141
|
+
- requestDeviceOrientationControl
|
|
142
|
+
- browser
|
|
143
|
+
- isPotrait
|
|
144
|
+
- isLandscape
|
|
145
|
+
- ua
|
|
146
|
+
- isFacebookWebview
|
|
147
|
+
- isInAppWebview
|
|
148
|
+
- Timer
|
|
149
|
+
- wait
|
|
150
|
+
- Validation
|
|
151
|
+
- imageValidate
|
|
152
|
+
- videoValidate
|
|
153
|
+
|
|
154
|
+
## Dev
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
yarn dev
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Support
|
|
161
|
+
|
|
162
|
+
Liên hệ [TOP GROUP Developers](mailto:dev@wearetopgroup.com) nếu cần hỗ trợ.
|
|
@@ -2,7 +2,9 @@ interface IFile {
|
|
|
2
2
|
file?: File;
|
|
3
3
|
filename?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare const doGetFile: (url: string
|
|
5
|
+
export declare const doGetFile: (url: string, data?: {
|
|
6
|
+
filename?: string;
|
|
7
|
+
}) => Promise<{
|
|
6
8
|
file: File;
|
|
7
9
|
filename: string;
|
|
8
10
|
} | undefined>;
|
|
@@ -5,14 +5,14 @@ const file_saver_1 = require("file-saver");
|
|
|
5
5
|
const index_1 = require("../device/index");
|
|
6
6
|
const random_1 = require("../string/random");
|
|
7
7
|
const url_1 = require("../string/url");
|
|
8
|
-
const doGetFile = async (url) => {
|
|
8
|
+
const doGetFile = async (url, data) => {
|
|
9
9
|
const response = await fetch(url);
|
|
10
10
|
if (!response.ok) {
|
|
11
11
|
return undefined;
|
|
12
12
|
}
|
|
13
13
|
const blob = await response.blob();
|
|
14
14
|
const ext = (0, url_1.getExtensionFromMimeType)(blob.type);
|
|
15
|
-
const filename = `${(0, random_1.randomFileName)("img", 3)}.${ext}`;
|
|
15
|
+
const filename = (data === null || data === void 0 ? void 0 : data.filename) ? `${data === null || data === void 0 ? void 0 : data.filename}.${ext}` : `${(0, random_1.randomFileName)("img", 3)}.${ext}`;
|
|
16
16
|
const file = new File([blob], filename, {
|
|
17
17
|
type: blob.type,
|
|
18
18
|
});
|
|
@@ -22,11 +22,11 @@ exports.doGetFile = doGetFile;
|
|
|
22
22
|
const doSaveFileDesktop = async (url, data) => {
|
|
23
23
|
//
|
|
24
24
|
if (!(data === null || data === void 0 ? void 0 : data.file)) {
|
|
25
|
-
const __data = await (0, exports.doGetFile)(url);
|
|
25
|
+
const __data = await (0, exports.doGetFile)(url, data);
|
|
26
26
|
const file = __data === null || __data === void 0 ? void 0 : __data.file;
|
|
27
|
-
|
|
27
|
+
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
|
|
28
|
+
if (!file || !filename)
|
|
28
29
|
return false;
|
|
29
|
-
const filename = (data === null || data === void 0 ? void 0 : data.filename) || (__data === null || __data === void 0 ? void 0 : __data.filename);
|
|
30
30
|
try {
|
|
31
31
|
(0, file_saver_1.saveAs)(file, filename);
|
|
32
32
|
}
|
|
@@ -40,13 +40,15 @@ const doSaveFileDesktop = async (url, data) => {
|
|
|
40
40
|
exports.doSaveFileDesktop = doSaveFileDesktop;
|
|
41
41
|
const doSaveFileMobile = async (url, data) => {
|
|
42
42
|
return new Promise(async (resolve, reject) => {
|
|
43
|
-
|
|
44
|
-
const file =
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
const __data = await (0, exports.doGetFile)(url, data);
|
|
44
|
+
const file = __data === null || __data === void 0 ? void 0 : __data.file;
|
|
45
|
+
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
|
|
46
|
+
if (!file || !filename)
|
|
47
|
+
return false;
|
|
47
48
|
navigator
|
|
48
49
|
.share({
|
|
49
50
|
files: [file],
|
|
51
|
+
title: filename,
|
|
50
52
|
})
|
|
51
53
|
.then(() => {
|
|
52
54
|
resolve(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadByUrl.js","sourceRoot":"","sources":["../../src/images/downloadByUrl.ts"],"names":[],"mappings":";;;AAAA,2CAAoC;AACpC,2CAA2C;AAC3C,6CAAkD;AAClD,uCAAyD;AAOlD,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"downloadByUrl.js","sourceRoot":"","sources":["../../src/images/downloadByUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function guessMimeType(filepath: string): "image/png" | "image/jpeg" | "unknown" | "image/gif" | "image/webp" | "video/mp4" | "video/quicktime" | "video/webm" | "video/mpeg";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const guessMimeTypeByBuffer_1 = __importDefault(require("./guessMimeTypeByBuffer"));
|
|
8
|
+
function guessMimeType(filepath) {
|
|
9
|
+
const buffer = fs_1.default.readFileSync(filepath);
|
|
10
|
+
return (0, guessMimeTypeByBuffer_1.default)(buffer);
|
|
11
|
+
}
|
|
12
|
+
exports.default = guessMimeType;
|
|
13
|
+
//# sourceMappingURL=guessMimeType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guessMimeType.js","sourceRoot":"","sources":["../../src/string/guessMimeType.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,oFAA4D;AAE5D,SAAwB,aAAa,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,IAAA,+BAAqB,EAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAHD,gCAGC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function guessMimeTypeByBuffer(buffer) {
|
|
4
|
+
const signature = buffer.toString("hex", 0, 4);
|
|
5
|
+
switch (signature) {
|
|
6
|
+
case "89504e47":
|
|
7
|
+
return "image/png";
|
|
8
|
+
case "47494638":
|
|
9
|
+
return "image/gif";
|
|
10
|
+
case "52494646": {
|
|
11
|
+
const webpSignature = buffer.toString("hex", 8, 12);
|
|
12
|
+
if (webpSignature === "57454250") {
|
|
13
|
+
return "image/webp";
|
|
14
|
+
}
|
|
15
|
+
break;
|
|
16
|
+
}
|
|
17
|
+
// MP4, MOV, and other video formats can have multiple signatures
|
|
18
|
+
case "00000018":
|
|
19
|
+
case "0000001c":
|
|
20
|
+
case "00000020":
|
|
21
|
+
return "video/mp4";
|
|
22
|
+
case "66747970":
|
|
23
|
+
return "video/quicktime"; // MOV
|
|
24
|
+
case "1a45dfa3": // This is the start of an EBML document (used in WebM, MKV)
|
|
25
|
+
return "video/webm";
|
|
26
|
+
case "000001ba":
|
|
27
|
+
case "000001b3":
|
|
28
|
+
return "video/mpeg";
|
|
29
|
+
// Add more cases as needed
|
|
30
|
+
default:
|
|
31
|
+
// Check for JPEG signatures
|
|
32
|
+
if (signature.startsWith("ffd8ff")) {
|
|
33
|
+
return "image/jpeg";
|
|
34
|
+
}
|
|
35
|
+
return "unknown";
|
|
36
|
+
}
|
|
37
|
+
return "unknown";
|
|
38
|
+
}
|
|
39
|
+
exports.default = guessMimeTypeByBuffer;
|
|
40
|
+
//# sourceMappingURL=guessMimeTypeByBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guessMimeTypeByBuffer.js","sourceRoot":"","sources":["../../src/string/guessMimeTypeByBuffer.ts"],"names":[],"mappings":";;AAAA,SAAwB,qBAAqB,CAAC,MAAc;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,QAAQ,SAAS,EAAE;QAClB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU,CAAC,CAAC;YAChB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,UAAU,EAAE;gBACjC,OAAO,YAAY,CAAC;aACpB;YACD,MAAM;SACN;QACD,iEAAiE;QACjE,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU;YACd,OAAO,iBAAiB,CAAC,CAAC,MAAM;QACjC,KAAK,UAAU,EAAE,4DAA4D;YAC5E,OAAO,YAAY,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACd,OAAO,YAAY,CAAC;QACrB,2BAA2B;QAC3B;YACC,4BAA4B;YAC5B,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACnC,OAAO,YAAY,CAAC;aACpB;YACD,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AArCD,wCAqCC"}
|
|
@@ -2,7 +2,9 @@ interface IFile {
|
|
|
2
2
|
file?: File;
|
|
3
3
|
filename?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare const doGetFile: (url: string
|
|
5
|
+
export declare const doGetFile: (url: string, data?: {
|
|
6
|
+
filename?: string;
|
|
7
|
+
}) => Promise<{
|
|
6
8
|
file: File;
|
|
7
9
|
filename: string;
|
|
8
10
|
} | undefined>;
|
|
@@ -2,14 +2,14 @@ import { saveAs } from "file-saver";
|
|
|
2
2
|
import { isMobile } from "../device/index";
|
|
3
3
|
import { randomFileName } from "../string/random";
|
|
4
4
|
import { getExtensionFromMimeType } from "../string/url";
|
|
5
|
-
export const doGetFile = async (url) => {
|
|
5
|
+
export const doGetFile = async (url, data) => {
|
|
6
6
|
const response = await fetch(url);
|
|
7
7
|
if (!response.ok) {
|
|
8
8
|
return undefined;
|
|
9
9
|
}
|
|
10
10
|
const blob = await response.blob();
|
|
11
11
|
const ext = getExtensionFromMimeType(blob.type);
|
|
12
|
-
const filename = `${randomFileName("img", 3)}.${ext}`;
|
|
12
|
+
const filename = (data === null || data === void 0 ? void 0 : data.filename) ? `${data === null || data === void 0 ? void 0 : data.filename}.${ext}` : `${randomFileName("img", 3)}.${ext}`;
|
|
13
13
|
const file = new File([blob], filename, {
|
|
14
14
|
type: blob.type,
|
|
15
15
|
});
|
|
@@ -18,11 +18,11 @@ export const doGetFile = async (url) => {
|
|
|
18
18
|
export const doSaveFileDesktop = async (url, data) => {
|
|
19
19
|
//
|
|
20
20
|
if (!(data === null || data === void 0 ? void 0 : data.file)) {
|
|
21
|
-
const __data = await doGetFile(url);
|
|
21
|
+
const __data = await doGetFile(url, data);
|
|
22
22
|
const file = __data === null || __data === void 0 ? void 0 : __data.file;
|
|
23
|
-
|
|
23
|
+
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
|
|
24
|
+
if (!file || !filename)
|
|
24
25
|
return false;
|
|
25
|
-
const filename = (data === null || data === void 0 ? void 0 : data.filename) || (__data === null || __data === void 0 ? void 0 : __data.filename);
|
|
26
26
|
try {
|
|
27
27
|
saveAs(file, filename);
|
|
28
28
|
}
|
|
@@ -35,13 +35,15 @@ export const doSaveFileDesktop = async (url, data) => {
|
|
|
35
35
|
};
|
|
36
36
|
export const doSaveFileMobile = async (url, data) => {
|
|
37
37
|
return new Promise(async (resolve, reject) => {
|
|
38
|
-
|
|
39
|
-
const file =
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const __data = await doGetFile(url, data);
|
|
39
|
+
const file = __data === null || __data === void 0 ? void 0 : __data.file;
|
|
40
|
+
const filename = __data === null || __data === void 0 ? void 0 : __data.filename;
|
|
41
|
+
if (!file || !filename)
|
|
42
|
+
return false;
|
|
42
43
|
navigator
|
|
43
44
|
.share({
|
|
44
45
|
files: [file],
|
|
46
|
+
title: filename,
|
|
45
47
|
})
|
|
46
48
|
.then(() => {
|
|
47
49
|
resolve(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadByUrl.js","sourceRoot":"","sources":["../../src/images/downloadByUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"downloadByUrl.js","sourceRoot":"","sources":["../../src/images/downloadByUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,GAAW,EAAE,IAA4B,EAAE,EAAE;IAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;QACjB,OAAO,SAAS,CAAC;KACjB;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAC,CAAC,CAAC,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;IACpG,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE;QACvC,IAAI,EAAE,IAAI,CAAC,IAAI;KACf,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE;IACpE,EAAE;IAEF,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAErC,IAAI;YACH,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACvB;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;SAC5C;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAE,IAAY,EAAE,EAAE;IACnE,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC;QAClC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAErC,SAAS;aACP,KAAK,CAAC;YACN,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,QAAQ;SACf,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,YAAY;YACZ,kBAAkB;QACnB,CAAC,CAAC;aACD,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;;YACpB,IAAI,MAAA,MAAA,GAAG,GAAG,EAAE,EAAC,QAAQ,mDAAG,YAAY,CAAC;gBAAE,OAAO;YAC9C,IAAI,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,QAAQ,mDAAG,cAAc,CAAC;gBAAE,OAAO;YAErD,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAEtC,MAAM,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAEnC,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAA4B;IACpF,EAAE;IACF,IAAI,QAAQ,EAAE,EAAE;QACf,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACnC;SAAM;QACN,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACpC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function guessMimeType(filepath: string): "image/png" | "image/jpeg" | "unknown" | "image/gif" | "image/webp" | "video/mp4" | "video/quicktime" | "video/webm" | "video/mpeg";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guessMimeType.js","sourceRoot":"","sources":["../../src/string/guessMimeType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAE5D,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,QAAgB;IACrD,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export default function guessMimeTypeByBuffer(buffer) {
|
|
2
|
+
const signature = buffer.toString("hex", 0, 4);
|
|
3
|
+
switch (signature) {
|
|
4
|
+
case "89504e47":
|
|
5
|
+
return "image/png";
|
|
6
|
+
case "47494638":
|
|
7
|
+
return "image/gif";
|
|
8
|
+
case "52494646": {
|
|
9
|
+
const webpSignature = buffer.toString("hex", 8, 12);
|
|
10
|
+
if (webpSignature === "57454250") {
|
|
11
|
+
return "image/webp";
|
|
12
|
+
}
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
// MP4, MOV, and other video formats can have multiple signatures
|
|
16
|
+
case "00000018":
|
|
17
|
+
case "0000001c":
|
|
18
|
+
case "00000020":
|
|
19
|
+
return "video/mp4";
|
|
20
|
+
case "66747970":
|
|
21
|
+
return "video/quicktime"; // MOV
|
|
22
|
+
case "1a45dfa3": // This is the start of an EBML document (used in WebM, MKV)
|
|
23
|
+
return "video/webm";
|
|
24
|
+
case "000001ba":
|
|
25
|
+
case "000001b3":
|
|
26
|
+
return "video/mpeg";
|
|
27
|
+
// Add more cases as needed
|
|
28
|
+
default:
|
|
29
|
+
// Check for JPEG signatures
|
|
30
|
+
if (signature.startsWith("ffd8ff")) {
|
|
31
|
+
return "image/jpeg";
|
|
32
|
+
}
|
|
33
|
+
return "unknown";
|
|
34
|
+
}
|
|
35
|
+
return "unknown";
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=guessMimeTypeByBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guessMimeTypeByBuffer.js","sourceRoot":"","sources":["../../src/string/guessMimeTypeByBuffer.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,MAAc;IAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/C,QAAQ,SAAS,EAAE;QAClB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU,CAAC,CAAC;YAChB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,UAAU,EAAE;gBACjC,OAAO,YAAY,CAAC;aACpB;YACD,MAAM;SACN;QACD,iEAAiE;QACjE,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACd,OAAO,WAAW,CAAC;QACpB,KAAK,UAAU;YACd,OAAO,iBAAiB,CAAC,CAAC,MAAM;QACjC,KAAK,UAAU,EAAE,4DAA4D;YAC5E,OAAO,YAAY,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACd,OAAO,YAAY,CAAC;QACrB,2BAA2B;QAC3B;YACC,4BAA4B;YAC5B,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;gBACnC,OAAO,YAAY,CAAC;aACpB;YACD,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|