@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.
Files changed (4) hide show
  1. package/README.md +6 -6
  2. package/index.js +16 -14
  3. package/package.json +2 -2
  4. 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.7/lib/index.d.ts)
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.7/lib/core.d.ts
418
- - https://www.unpkg.com/@e-mc/types@0.11.7/lib/logger.d.ts
419
- - https://www.unpkg.com/@e-mc/types@0.11.7/lib/module.d.ts
420
- - https://www.unpkg.com/@e-mc/types@0.11.7/lib/node.d.ts
421
- - https://www.unpkg.com/@e-mc/types@0.11.7/lib/settings.d.ts
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, { posixSlashes: true, windows: true, nocase: PLATFORM_WIN32, matchBase: value.startsWith('*') });
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.7";
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, convert = true;
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 (convert) {
1565
+ if (PLATFORM_WIN32) {
1568
1566
  pathname = pathname.replace(/(?:^\\|\\+)/g, '/');
1569
1567
  }
1570
- if (pathname = pathname.replace(/\/+$/, '')) {
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
- return pathname + (filename ? '/' + filename : '');
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 = { posixSlashes: true, windows: true, nocase: Module.PLATFORM_WIN32 };
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.normalizePath(value, 4));
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!", 'Temp directory can only be relative', dir, { ...this.LOG_STYLE_WARN, newline: true });
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.7",
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.7",
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
- }