@e-mc/module 0.11.7 → 0.11.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 +6 -6
- package/index.js +16 -14
- package/package.json +2 -2
- package/lib-v4.js +0 -158
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## Interface
|
|
11
11
|
|
|
12
|
-
* [View Source](https://www.unpkg.com/@e-mc/types@0.11.
|
|
12
|
+
* [View Source](https://www.unpkg.com/@e-mc/types@0.11.9/lib/index.d.ts)
|
|
13
13
|
|
|
14
14
|
```typescript
|
|
15
15
|
import type { LogStatus } from "./squared";
|
|
@@ -414,11 +414,11 @@ interface LoggerModule {
|
|
|
414
414
|
|
|
415
415
|
## References
|
|
416
416
|
|
|
417
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
418
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
419
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
420
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
421
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
417
|
+
- https://www.unpkg.com/@e-mc/types@0.11.9/lib/core.d.ts
|
|
418
|
+
- https://www.unpkg.com/@e-mc/types@0.11.9/lib/logger.d.ts
|
|
419
|
+
- https://www.unpkg.com/@e-mc/types@0.11.9/lib/module.d.ts
|
|
420
|
+
- https://www.unpkg.com/@e-mc/types@0.11.9/lib/node.d.ts
|
|
421
|
+
- https://www.unpkg.com/@e-mc/types@0.11.9/lib/settings.d.ts
|
|
422
422
|
|
|
423
423
|
* https://www.npmjs.com/package/@types/node
|
|
424
424
|
|
package/index.js
CHANGED
|
@@ -140,7 +140,6 @@ const MEMORY_CACHE_DISK = {
|
|
|
140
140
|
include: null,
|
|
141
141
|
exclude: null
|
|
142
142
|
};
|
|
143
|
-
const SUPPORTED_CANPARSE = (0, types_1.supported)(19, 9) || (0, types_1.supported)(18, 17, true);
|
|
144
143
|
const REGEXP_TORRENT = /^(?:magnet:\?xt=|(?:https?|s?ftp):\/\/[^/][^\n]*?\.(?:torrent|metalink|meta4)(?:\?[^\n]*)?$)/i;
|
|
145
144
|
const REGEXP_PROTOCOL = /^([a-z][a-z\d+-.]*):\/\/[^@:[\]\\^<>|\s]/i;
|
|
146
145
|
const REGEXP_CLIESCAPE = /[^\w+-.,/:@]/g;
|
|
@@ -647,7 +646,7 @@ function getCacheTotal() {
|
|
|
647
646
|
return CACHE_READTEXT.size + CACHE_READBUFFER.size + CACHE_READCJS.size;
|
|
648
647
|
}
|
|
649
648
|
function isMatch(key, value) {
|
|
650
|
-
return pm.isMatch(key, value, {
|
|
649
|
+
return pm.isMatch(key, value, { nocase: PLATFORM_WIN32, matchBase: value.startsWith('*') && !value.includes('/') });
|
|
651
650
|
}
|
|
652
651
|
function listDir(src, paths, depth, include, exclude, excludeDir, outFiles) {
|
|
653
652
|
const srcDir = path.join(src, ...paths);
|
|
@@ -984,7 +983,7 @@ class Module extends EventEmitter {
|
|
|
984
983
|
this[_g] = null;
|
|
985
984
|
}
|
|
986
985
|
static get VERSION() {
|
|
987
|
-
return "0.11.
|
|
986
|
+
return "0.11.9";
|
|
988
987
|
}
|
|
989
988
|
static get LOG_TYPE() {
|
|
990
989
|
return types_1.LOG_TYPE;
|
|
@@ -1559,30 +1558,33 @@ class Module extends EventEmitter {
|
|
|
1559
1558
|
filename = undefined;
|
|
1560
1559
|
}
|
|
1561
1560
|
if (typeof value === 'string') {
|
|
1562
|
-
let pathname = PLATFORM_WIN32 ? value.trim() : value
|
|
1561
|
+
let pathname = PLATFORM_WIN32 ? value.trim() : value;
|
|
1563
1562
|
if (normalize) {
|
|
1564
1563
|
pathname = path.normalize(pathname);
|
|
1565
|
-
convert = PLATFORM_WIN32;
|
|
1566
1564
|
}
|
|
1567
|
-
if (
|
|
1565
|
+
if (PLATFORM_WIN32) {
|
|
1568
1566
|
pathname = pathname.replace(/(?:^\\|\\+)/g, '/');
|
|
1569
1567
|
}
|
|
1570
|
-
if (pathname
|
|
1568
|
+
if (pathname) {
|
|
1569
|
+
pathname = pathname.replace(/(?<!^)\/+$/, '');
|
|
1571
1570
|
if (normalize && PLATFORM_WIN32) {
|
|
1572
1571
|
const match = /^([A-Z]):\//.exec(pathname);
|
|
1573
1572
|
if (match) {
|
|
1574
1573
|
pathname = match[1].toLowerCase() + pathname.substring(1);
|
|
1575
1574
|
}
|
|
1576
1575
|
}
|
|
1577
|
-
|
|
1576
|
+
if (!filename) {
|
|
1577
|
+
return pathname;
|
|
1578
|
+
}
|
|
1579
|
+
if (pathname !== '/') {
|
|
1580
|
+
pathname += '/';
|
|
1581
|
+
}
|
|
1582
|
+
return pathname + filename;
|
|
1578
1583
|
}
|
|
1579
1584
|
}
|
|
1580
1585
|
return filename || '';
|
|
1581
1586
|
}
|
|
1582
1587
|
static isURL(value, ...exclude) {
|
|
1583
|
-
if (exclude.length === 0 && SUPPORTED_CANPARSE) {
|
|
1584
|
-
return URL.canParse(value);
|
|
1585
|
-
}
|
|
1586
1588
|
const match = REGEXP_PROTOCOL.exec(value);
|
|
1587
1589
|
return !!match && !exclude.includes(match[1].toLowerCase());
|
|
1588
1590
|
}
|
|
@@ -1950,7 +1952,7 @@ class Module extends EventEmitter {
|
|
|
1950
1952
|
if (!(outDir && this.isDir(outDir))) {
|
|
1951
1953
|
return Promise.reject(errorDirectory(asFile(src) || "Unknown"));
|
|
1952
1954
|
}
|
|
1953
|
-
const pmOpts = {
|
|
1955
|
+
const pmOpts = PLATFORM_WIN32 ? { nocase: true, posixSlashes: true, windows: true } : {};
|
|
1954
1956
|
let exclude, excludeDir, recursive;
|
|
1955
1957
|
if ((0, types_1.isObject)(options)) {
|
|
1956
1958
|
if (options.matchBase) {
|
|
@@ -1969,7 +1971,7 @@ class Module extends EventEmitter {
|
|
|
1969
1971
|
for (const value of items) {
|
|
1970
1972
|
const dirEnd = value.endsWith('/') ? /^[^/][^*]+\/$/ : value.endsWith('\\') ? /^[^\\][^*]+\\$/ : null;
|
|
1971
1973
|
if (dirEnd?.test(value) && !(0, types_1.hasGlob)(value)) {
|
|
1972
|
-
(excludeDir ||= []).push(this.
|
|
1974
|
+
(excludeDir ||= []).push(this.toPosix(value, true));
|
|
1973
1975
|
}
|
|
1974
1976
|
else {
|
|
1975
1977
|
exclude.push(value);
|
|
@@ -2806,7 +2808,7 @@ class Module extends EventEmitter {
|
|
|
2806
2808
|
dir = dir.substring(ensureDir(PROCESS_CWD).length);
|
|
2807
2809
|
}
|
|
2808
2810
|
else {
|
|
2809
|
-
this.formatMessage(1, "WARN!",
|
|
2811
|
+
this.formatMessage(1, "WARN!", "Not permitted to set absolute path", dir, { ...this.LOG_STYLE_WARN, newline: true });
|
|
2810
2812
|
dir = VALUES["temp.dir"];
|
|
2811
2813
|
}
|
|
2812
2814
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@e-mc/module",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.9",
|
|
4
4
|
"description": "Module base class for E-mc.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"license": "BSD-3-Clause",
|
|
21
21
|
"homepage": "https://github.com/anpham6/e-mc#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/types": "0.11.
|
|
23
|
+
"@e-mc/types": "0.11.9",
|
|
24
24
|
"chalk": "4.1.2",
|
|
25
25
|
"file-type": "^18.7.0",
|
|
26
26
|
"js-yaml": "^4.1.0",
|
package/lib-v4.js
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.validateUUID = exports.renameExt = exports.isString = exports.isPlainObject = exports.isObject = exports.formatSize = exports.escapePattern = exports.toTimeMs = exports.coerceObject = exports.cloneObject = exports.asFunction = void 0;
|
|
3
|
-
exports.hasSize = hasSize;
|
|
4
|
-
exports.getSize = getSize;
|
|
5
|
-
exports.hasSameStat = hasSameStat;
|
|
6
|
-
exports.byteLength = byteLength;
|
|
7
|
-
exports.cleanupStream = cleanupStream;
|
|
8
|
-
exports.generateUUID = generateUUID;
|
|
9
|
-
exports.existsSafe = existsSafe;
|
|
10
|
-
exports.isFileHTTP = isFileHTTP;
|
|
11
|
-
exports.isFileUNC = isFileUNC;
|
|
12
|
-
exports.isPathUNC = isPathUNC;
|
|
13
|
-
exports.readFileSafe = readFileSafe;
|
|
14
|
-
exports.getFunctions = getFunctions;
|
|
15
|
-
exports.allSettled = allSettled;
|
|
16
|
-
const path = require("path");
|
|
17
|
-
const fs = require("fs");
|
|
18
|
-
const types_1 = require("@e-mc/types");
|
|
19
|
-
Object.defineProperty(exports, "asFunction", { enumerable: true, get: function () { return types_1.asFunction; } });
|
|
20
|
-
Object.defineProperty(exports, "cloneObject", { enumerable: true, get: function () { return types_1.cloneObject; } });
|
|
21
|
-
Object.defineProperty(exports, "coerceObject", { enumerable: true, get: function () { return types_1.coerceObject; } });
|
|
22
|
-
Object.defineProperty(exports, "toTimeMs", { enumerable: true, get: function () { return types_1.convertTime; } });
|
|
23
|
-
Object.defineProperty(exports, "escapePattern", { enumerable: true, get: function () { return types_1.escapePattern; } });
|
|
24
|
-
Object.defineProperty(exports, "formatSize", { enumerable: true, get: function () { return types_1.formatSize; } });
|
|
25
|
-
Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return types_1.isObject; } });
|
|
26
|
-
Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return types_1.isPlainObject; } });
|
|
27
|
-
Object.defineProperty(exports, "isString", { enumerable: true, get: function () { return types_1.isString; } });
|
|
28
|
-
Object.defineProperty(exports, "renameExt", { enumerable: true, get: function () { return types_1.renameExt; } });
|
|
29
|
-
Object.defineProperty(exports, "validateUUID", { enumerable: true, get: function () { return types_1.validateUUID; } });
|
|
30
|
-
const index_1 = require("@e-mc/module");
|
|
31
|
-
function hasSize(value, keepEmpty) {
|
|
32
|
-
try {
|
|
33
|
-
const statSrc = fs.statSync(value);
|
|
34
|
-
if (statSrc.size > 0) {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
if (!keepEmpty) {
|
|
38
|
-
fs.unlinkSync(value);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch {
|
|
42
|
-
}
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
function getSize(value, diskUsed) {
|
|
46
|
-
try {
|
|
47
|
-
return fs[diskUsed ? 'lstatSync' : 'statSync'](value).size;
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
return 0;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function hasSameStat(src, dest, keepEmpty) {
|
|
54
|
-
try {
|
|
55
|
-
if (fs.existsSync(dest)) {
|
|
56
|
-
const { size, mtimeMs } = fs.statSync(src);
|
|
57
|
-
if (size > 0) {
|
|
58
|
-
const statDest = fs.statSync(dest);
|
|
59
|
-
return size === statDest.size && mtimeMs === statDest.mtimeMs;
|
|
60
|
-
}
|
|
61
|
-
if (!keepEmpty) {
|
|
62
|
-
fs.unlinkSync(src);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
function byteLength(value, encoding) {
|
|
71
|
-
return typeof value === 'string' && (path.isAbsolute(value) || index_1.isPath(value)) ? getSize(value) : Buffer.byteLength(value, encoding && (0, types_1.getEncoding)(encoding));
|
|
72
|
-
}
|
|
73
|
-
function cleanupStream(stream, uri) {
|
|
74
|
-
stream.removeAllListeners();
|
|
75
|
-
stream.destroy();
|
|
76
|
-
try {
|
|
77
|
-
if (uri && fs.existsSync(uri)) {
|
|
78
|
-
fs.unlinkSync(uri);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
if (!index_1.isErrorCode(err, 'ENOENT')) {
|
|
83
|
-
index_1.writeFail(["Unable to delete file", path.basename(uri)], err, 32);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
function generateUUID(format, dictionary) {
|
|
88
|
-
return format ? (0, types_1.randomString)(format, dictionary) : (0, types_1.generateUUID)();
|
|
89
|
-
}
|
|
90
|
-
function existsSafe(value, isFile) {
|
|
91
|
-
return index_1.isPath(value, isFile);
|
|
92
|
-
}
|
|
93
|
-
function isFileHTTP(value) {
|
|
94
|
-
return index_1.isFile(value, 'http/s');
|
|
95
|
-
}
|
|
96
|
-
function isFileUNC(value) {
|
|
97
|
-
return index_1.isFile(value, 'unc');
|
|
98
|
-
}
|
|
99
|
-
function isPathUNC(value) {
|
|
100
|
-
return index_1.isPath(value, 'unc');
|
|
101
|
-
}
|
|
102
|
-
async function readFileSafe(value, encoding, cache) {
|
|
103
|
-
return encoding === 'buffer' ? index_1.readBuffer(value, cache) : index_1.readText(value, encoding, cache);
|
|
104
|
-
}
|
|
105
|
-
function getFunctions(values, absolute, sync = true, outFailed) {
|
|
106
|
-
let options, context;
|
|
107
|
-
if ((0, types_1.isObject)(absolute)) {
|
|
108
|
-
options = absolute;
|
|
109
|
-
({ context, outFailed } = absolute);
|
|
110
|
-
if (options.external === undefined) {
|
|
111
|
-
options.external = true;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
options = { external: true, absolute, sync };
|
|
116
|
-
}
|
|
117
|
-
const result = [];
|
|
118
|
-
for (const value of values) {
|
|
119
|
-
let method = null;
|
|
120
|
-
if (typeof value === 'string') {
|
|
121
|
-
method = index_1.parseFunction(value, options);
|
|
122
|
-
}
|
|
123
|
-
else if (typeof value === 'function') {
|
|
124
|
-
method = value;
|
|
125
|
-
if (context !== undefined) {
|
|
126
|
-
method.bind(context);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (method) {
|
|
130
|
-
result.push(method);
|
|
131
|
-
}
|
|
132
|
-
else if (outFailed) {
|
|
133
|
-
outFailed.push(index_1.asString(value) || "Unknown");
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return result;
|
|
137
|
-
}
|
|
138
|
-
async function allSettled(tasks, rejected, options) {
|
|
139
|
-
if (rejected) {
|
|
140
|
-
return Promise.allSettled(tasks).then(result => {
|
|
141
|
-
const items = [];
|
|
142
|
-
for (const item of result) {
|
|
143
|
-
if (item.status === 'fulfilled') {
|
|
144
|
-
items.push(item);
|
|
145
|
-
}
|
|
146
|
-
else if (item.reason) {
|
|
147
|
-
index_1.writeFail(rejected, item.reason, options);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
return items;
|
|
151
|
-
})
|
|
152
|
-
.catch((err) => {
|
|
153
|
-
index_1.writeFail(rejected, err, options);
|
|
154
|
-
return [];
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
return Promise.allSettled(tasks);
|
|
158
|
-
}
|