@e-mc/types 0.5.2 → 0.5.4

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/LICENSE CHANGED
@@ -1,11 +1,7 @@
1
- Copyright 2023 An Pham
2
-
3
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4
-
5
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
-
7
- 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8
-
9
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
-
11
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1
+ Copyright 2023 Mile Square Park
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
- ### @e-mc/types
1
+ # @e-mc/types
2
2
 
3
- ### LICENSE
3
+ PEP 402 - Forever
4
4
 
5
- BSD 3-Clause
5
+ ## LICENSE
6
+
7
+ MIT
package/constant.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export const enum INTERNAL {
2
- VERSION = '0.5.2',
3
- TEMP_DIR = 'tmp', // eslint-disable-line @typescript-eslint/no-shadow
2
+ VERSION = '0.5.4',
3
+ TEMP_DIR = 'tmp',
4
4
  CJS = '__cjs__'
5
5
  }
6
6
 
package/index.d.ts CHANGED
@@ -269,7 +269,7 @@ declare namespace types {
269
269
  function cloneObject<T>(data: T, deepIgnore: WeakSet<object>): T;
270
270
  function cloneObject<T, U>(data: T, options?: CloneObjectOptions<U>): T;
271
271
  function coerceObject<T = unknown>(data: T, cache: boolean): T;
272
- function coerceObject<T = unknown>(data: T, parseString?: FunctionArgs<[string], unknown>, cache?: boolean): T;
272
+ function coerceObject<T = unknown>(data: T, parseString?: FunctionArgs<[string]>, cache?: boolean): T;
273
273
  function getEncoding(value: unknown, fallback?: BufferEncoding): BufferEncoding;
274
274
  function encryptUTF8(algorithm: CipherGCMTypes, key: BinaryLike, iv: BinaryLike, data: string, encoding?: Encoding): Undef<string>;
275
275
  function decryptUTF8(algorithm: CipherGCMTypes, key: BinaryLike, iv: BinaryLike, data: string, encoding?: Encoding): Undef<string>;
package/index.js CHANGED
@@ -1,11 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorMessage = exports.errorValue = exports.validateUUID = exports.randomString = exports.decryptUTF8 = exports.encryptUTF8 = exports.getEncoding = exports.asFunction = exports.coerceObject = exports.cloneObject = exports.cascadeObject = exports.formatSize = exports.renameExt = exports.escapePattern = exports.hasGlob = exports.convertTime = exports.formatTime = exports.parseExpires = exports.parseTime = exports.isEmpty = exports.isString = exports.isObject = exports.isPlainObject = exports.isArray = exports.setTempDir = exports.getTempDir = exports.setLogCurrent = exports.getLogCurrent = exports.existsFlag = exports.mainFlag = exports.processFlag = exports.modifiedFlag = exports.watchFlag = exports.usingFlag = exports.cloneFlag = exports.ignoreFlag = exports.hasBit = exports.createAbortError = exports.THRESHOLD = exports.IMPORT_MAP = exports.WATCH_EVENT = exports.DB_TRANSACTION = exports.DB_TYPE = exports.FETCH_TYPE = exports.DOWNLOAD_TYPE = exports.ERR_CODE = exports.ASSET_FLAG = exports.FILE_TYPE = exports.STATUS_TYPE = exports.LOG_TYPE = void 0;
4
- exports.generateUUID = exports.purgeMemory = void 0;
3
+ exports.validateUUID = exports.randomString = exports.decryptUTF8 = exports.encryptUTF8 = exports.getEncoding = exports.asFunction = exports.coerceObject = exports.cloneObject = exports.cascadeObject = exports.alignSize = exports.formatSize = exports.renameExt = exports.escapePattern = exports.hasGlob = exports.convertTime = exports.formatTime = exports.parseExpires = exports.parseTime = exports.isEmpty = exports.isString = exports.isObject = exports.isPlainObject = exports.isArray = exports.setTempDir = exports.getTempDir = exports.setLogCurrent = exports.getLogCurrent = exports.existsFlag = exports.mainFlag = exports.processFlag = exports.modifiedFlag = exports.watchFlag = exports.usingFlag = exports.cloneFlag = exports.ignoreFlag = exports.hasBit = exports.createAbortError = exports.IMPORT_MAP = exports.THRESHOLD = exports.READDIR_SORT = exports.WATCH_EVENT = exports.DB_TRANSACTION = exports.DB_TYPE = exports.FETCH_TYPE = exports.DOWNLOAD_TYPE = exports.ERR_CODE = exports.ASSET_FLAG = exports.FILE_TYPE = exports.STATUS_TYPE = exports.LOG_TYPE = void 0;
4
+ exports.generateUUID = exports.incrementUUID = exports.purgeMemory = exports.errorMessage = exports.errorValue = void 0;
5
5
  const path = require("path");
6
6
  const fs = require("fs");
7
7
  const crypto = require("crypto");
8
- const uuid = require("uuid");
9
8
  const bytes = require("bytes");
10
9
  class AbortError extends Error {
11
10
  constructor() {
@@ -15,11 +14,14 @@ class AbortError extends Error {
15
14
  }
16
15
  }
17
16
  const REGEXP_UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
18
- const REGEXP_FUNCTION = /^(async\s+)?(function(?:\b|\s+)([\w_$]*)\s*\(([^)]*)\)\s*\{([\S\s]*)\})$/;
17
+ const REGEXP_FUNCTION = /^(async\s+)?(function(?:\b|\s+)[\w_$]*\s*\(([^)]*)\)\s*\{([\S\s]*)\})$/;
18
+ const REGEXP_FUNCTION_ARROW = /^(async\s+)?(\s*\(([^)]*)\)\s*=>\s*(?:\{([\S\s]*)\}|(?!\s|{)((?:(?<!return\s+)(?:"[^"\n]*"|'[^'\n]*'|`[^`]*`|[^\n;"'`]))*;)))$/;
19
19
  const ASYNC_FUNCTION = Object.getPrototypeOf(async () => { }).constructor;
20
20
  let CACHE_COERCED = new WeakSet();
21
21
  let LOG_CURRENT = null;
22
22
  let TEMP_DIR = path.join(process.cwd(), "tmp" /* INTERNAL.TEMP_DIR */);
23
+ let INCREMENT_COUNT = 65536;
24
+ let INCREMENT_PREFIX = '';
23
25
  function fromObject(value, typedArray) {
24
26
  if (isObject(value)) {
25
27
  if (value instanceof Map) {
@@ -165,7 +167,7 @@ var LOG_TYPE;
165
167
  LOG_TYPE[LOG_TYPE["TIMEOUT"] = 16384] = "TIMEOUT";
166
168
  LOG_TYPE[LOG_TYPE["STDOUT"] = 32768] = "STDOUT";
167
169
  LOG_TYPE[LOG_TYPE["DB"] = 65536] = "DB";
168
- })(LOG_TYPE = exports.LOG_TYPE || (exports.LOG_TYPE = {}));
170
+ })(LOG_TYPE || (exports.LOG_TYPE = LOG_TYPE = {}));
169
171
  var STATUS_TYPE;
170
172
  (function (STATUS_TYPE) {
171
173
  STATUS_TYPE[STATUS_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
@@ -176,7 +178,7 @@ var STATUS_TYPE;
176
178
  STATUS_TYPE[STATUS_TYPE["DEBUG"] = 5] = "DEBUG";
177
179
  STATUS_TYPE[STATUS_TYPE["ASSERT"] = 6] = "ASSERT";
178
180
  STATUS_TYPE[STATUS_TYPE["TRACE"] = 7] = "TRACE";
179
- })(STATUS_TYPE = exports.STATUS_TYPE || (exports.STATUS_TYPE = {}));
181
+ })(STATUS_TYPE || (exports.STATUS_TYPE = STATUS_TYPE = {}));
180
182
  var FILE_TYPE;
181
183
  (function (FILE_TYPE) {
182
184
  FILE_TYPE[FILE_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
@@ -185,7 +187,7 @@ var FILE_TYPE;
185
187
  FILE_TYPE[FILE_TYPE["COMPRESSED"] = 4] = "COMPRESSED";
186
188
  FILE_TYPE[FILE_TYPE["SOURCEMAP"] = 8] = "SOURCEMAP";
187
189
  FILE_TYPE[FILE_TYPE["TORRENT"] = 16] = "TORRENT";
188
- })(FILE_TYPE = exports.FILE_TYPE || (exports.FILE_TYPE = {}));
190
+ })(FILE_TYPE || (exports.FILE_TYPE = FILE_TYPE = {}));
189
191
  var ASSET_FLAG;
190
192
  (function (ASSET_FLAG) {
191
193
  ASSET_FLAG[ASSET_FLAG["NONE"] = 0] = "NONE";
@@ -197,17 +199,17 @@ var ASSET_FLAG;
197
199
  ASSET_FLAG[ASSET_FLAG["PROCESS"] = 32] = "PROCESS";
198
200
  ASSET_FLAG[ASSET_FLAG["MAIN"] = 64] = "MAIN";
199
201
  ASSET_FLAG[ASSET_FLAG["EXISTS"] = 128] = "EXISTS";
200
- })(ASSET_FLAG = exports.ASSET_FLAG || (exports.ASSET_FLAG = {}));
202
+ })(ASSET_FLAG || (exports.ASSET_FLAG = ASSET_FLAG = {}));
201
203
  var ERR_CODE;
202
204
  (function (ERR_CODE) {
203
205
  ERR_CODE["MODULE_NOT_FOUND"] = "MODULE_NOT_FOUND";
204
- })(ERR_CODE = exports.ERR_CODE || (exports.ERR_CODE = {}));
206
+ })(ERR_CODE || (exports.ERR_CODE = ERR_CODE = {}));
205
207
  var DOWNLOAD_TYPE;
206
208
  (function (DOWNLOAD_TYPE) {
207
209
  DOWNLOAD_TYPE[DOWNLOAD_TYPE["HTTP"] = 0] = "HTTP";
208
210
  DOWNLOAD_TYPE[DOWNLOAD_TYPE["DISK"] = 1] = "DISK";
209
211
  DOWNLOAD_TYPE[DOWNLOAD_TYPE["CACHE"] = 2] = "CACHE";
210
- })(DOWNLOAD_TYPE = exports.DOWNLOAD_TYPE || (exports.DOWNLOAD_TYPE = {}));
212
+ })(DOWNLOAD_TYPE || (exports.DOWNLOAD_TYPE = DOWNLOAD_TYPE = {}));
211
213
  var FETCH_TYPE;
212
214
  (function (FETCH_TYPE) {
213
215
  FETCH_TYPE[FETCH_TYPE["UNKNOWN"] = 0] = "UNKNOWN";
@@ -215,14 +217,14 @@ var FETCH_TYPE;
215
217
  FETCH_TYPE[FETCH_TYPE["UNIX_SOCKET"] = 2] = "UNIX_SOCKET";
216
218
  FETCH_TYPE[FETCH_TYPE["FTP"] = 3] = "FTP";
217
219
  FETCH_TYPE[FETCH_TYPE["TORRENT"] = 4] = "TORRENT";
218
- })(FETCH_TYPE = exports.FETCH_TYPE || (exports.FETCH_TYPE = {}));
220
+ })(FETCH_TYPE || (exports.FETCH_TYPE = FETCH_TYPE = {}));
219
221
  var DB_TYPE;
220
222
  (function (DB_TYPE) {
221
223
  DB_TYPE[DB_TYPE["SQL"] = 1] = "SQL";
222
224
  DB_TYPE[DB_TYPE["NOSQL"] = 2] = "NOSQL";
223
225
  DB_TYPE[DB_TYPE["DOCUMENT"] = 4] = "DOCUMENT";
224
226
  DB_TYPE[DB_TYPE["KEYVALUE"] = 8] = "KEYVALUE";
225
- })(DB_TYPE = exports.DB_TYPE || (exports.DB_TYPE = {}));
227
+ })(DB_TYPE || (exports.DB_TYPE = DB_TYPE = {}));
226
228
  var DB_TRANSACTION;
227
229
  (function (DB_TRANSACTION) {
228
230
  DB_TRANSACTION[DB_TRANSACTION["ACTIVE"] = 1] = "ACTIVE";
@@ -233,14 +235,26 @@ var DB_TRANSACTION;
233
235
  DB_TRANSACTION[DB_TRANSACTION["FAIL"] = 32] = "FAIL";
234
236
  DB_TRANSACTION[DB_TRANSACTION["AUTH"] = 64] = "AUTH";
235
237
  DB_TRANSACTION[DB_TRANSACTION["CACHE"] = 128] = "CACHE";
236
- })(DB_TRANSACTION = exports.DB_TRANSACTION || (exports.DB_TRANSACTION = {}));
238
+ })(DB_TRANSACTION || (exports.DB_TRANSACTION = DB_TRANSACTION = {}));
237
239
  var WATCH_EVENT;
238
240
  (function (WATCH_EVENT) {
239
241
  WATCH_EVENT["MODIFIED"] = "modified";
240
242
  WATCH_EVENT["BROADCAST"] = "broadcast";
241
243
  WATCH_EVENT["CLOSE"] = "close";
242
244
  WATCH_EVENT["ERROR"] = "error";
243
- })(WATCH_EVENT = exports.WATCH_EVENT || (exports.WATCH_EVENT = {}));
245
+ })(WATCH_EVENT || (exports.WATCH_EVENT = WATCH_EVENT = {}));
246
+ var READDIR_SORT;
247
+ (function (READDIR_SORT) {
248
+ READDIR_SORT[READDIR_SORT["FILE"] = 0] = "FILE";
249
+ READDIR_SORT[READDIR_SORT["DIRECTORY"] = 1] = "DIRECTORY";
250
+ READDIR_SORT[READDIR_SORT["DESCENDING"] = 2] = "DESCENDING";
251
+ })(READDIR_SORT || (exports.READDIR_SORT = READDIR_SORT = {}));
252
+ var THRESHOLD;
253
+ (function (THRESHOLD) {
254
+ THRESHOLD[THRESHOLD["FILEMANAGER_INTERVAL"] = 100] = "FILEMANAGER_INTERVAL";
255
+ THRESHOLD[THRESHOLD["WATCH_INTERVAL"] = 500] = "WATCH_INTERVAL";
256
+ THRESHOLD[THRESHOLD["WATCH_CHANGE"] = 100] = "WATCH_CHANGE";
257
+ })(THRESHOLD || (exports.THRESHOLD = THRESHOLD = {}));
244
258
  var IMPORT_MAP;
245
259
  (function (IMPORT_MAP) {
246
260
  IMPORT_MAP["@squared-functions/cloud"] = "@e-mc/cloud";
@@ -308,8 +322,8 @@ var IMPORT_MAP;
308
322
  IMPORT_MAP["@squared-functions/document/packages/@babel/core"] = "@pi-r/babel";
309
323
  IMPORT_MAP["@squared-functions/document/packages/clean-css"] = "@pi-r/clean-css";
310
324
  IMPORT_MAP["@squared-functions/document/packages/eslint"] = "@pi-r/eslint";
311
- IMPORT_MAP["@squared-functions/document/packages/html-minifier-terser"] = "@pi-r/html-minifier-terser";
312
325
  IMPORT_MAP["@squared-functions/document/packages/html-minifier"] = "@pi-r/html-minifier";
326
+ IMPORT_MAP["@squared-functions/document/packages/html-minifier-terser"] = "@pi-r/html-minifier-terser";
313
327
  IMPORT_MAP["@squared-functions/document/packages/html-validate"] = "@pi-r/html-validate";
314
328
  IMPORT_MAP["@squared-functions/document/packages/postcss"] = "@pi-r/postcss";
315
329
  IMPORT_MAP["@squared-functions/document/packages/posthtml"] = "@pi-r/posthtml";
@@ -320,13 +334,7 @@ var IMPORT_MAP;
320
334
  IMPORT_MAP["@squared-functions/document/packages/svgo"] = "@pi-r/svgo";
321
335
  IMPORT_MAP["@squared-functions/document/packages/terser"] = "@pi-r/terser";
322
336
  IMPORT_MAP["@squared-functions/document/packages/uglify-js"] = "@pi-r/uglify-js";
323
- })(IMPORT_MAP = exports.IMPORT_MAP || (exports.IMPORT_MAP = {}));
324
- var THRESHOLD;
325
- (function (THRESHOLD) {
326
- THRESHOLD[THRESHOLD["FILEMANAGER_INTERVAL"] = 100] = "FILEMANAGER_INTERVAL";
327
- THRESHOLD[THRESHOLD["WATCH_INTERVAL"] = 500] = "WATCH_INTERVAL";
328
- THRESHOLD[THRESHOLD["WATCH_CHANGE"] = 100] = "WATCH_CHANGE";
329
- })(THRESHOLD = exports.THRESHOLD || (exports.THRESHOLD = {}));
337
+ })(IMPORT_MAP || (exports.IMPORT_MAP = IMPORT_MAP = {}));
330
338
  function createAbortError() {
331
339
  return new AbortError();
332
340
  }
@@ -396,7 +404,7 @@ function isArray(value) {
396
404
  }
397
405
  exports.isArray = isArray;
398
406
  function isPlainObject(value) {
399
- return value && typeof value === 'object' ? value.constructor === Object || Object.getPrototypeOf(value) === null : false;
407
+ return typeof value === 'object' && value !== null && (value.constructor === Object || Object.getPrototypeOf(value) === null);
400
408
  }
401
409
  exports.isPlainObject = isPlainObject;
402
410
  function isObject(value) {
@@ -543,10 +551,10 @@ function escapePattern(value, lookBehind) {
543
551
  }
544
552
  exports.escapePattern = escapePattern;
545
553
  function renameExt(value, ext, when) {
546
- if (ext[0] !== '.') {
554
+ if (!ext.startsWith('.')) {
547
555
  ext = '.' + ext;
548
556
  }
549
- if (when && when[0] !== '.') {
557
+ if (when && !when.startsWith('.')) {
550
558
  when = '.' + when;
551
559
  }
552
560
  const index = value.lastIndexOf('.');
@@ -563,12 +571,43 @@ function renameExt(value, ext, when) {
563
571
  }
564
572
  exports.renameExt = renameExt;
565
573
  function formatSize(value, options) {
566
- return (typeof value === 'number' ? bytes(value, options) : bytes(value));
574
+ if (typeof value === 'number') {
575
+ return (bytes(value, options) || ('0' + (options?.unitSeparator || '') + 'B'));
576
+ }
577
+ return (bytes(value) || 0);
567
578
  }
568
579
  exports.formatSize = formatSize;
580
+ function alignSize(value, kb = 0, factor = 0) {
581
+ if (value === undefined) {
582
+ return NaN;
583
+ }
584
+ let result = 0;
585
+ switch (typeof value) {
586
+ case 'number':
587
+ if (value < 0) {
588
+ return NaN;
589
+ }
590
+ result = Math.ceil(factor > 0 ? value * Math.pow(1024, factor) : value);
591
+ break;
592
+ case 'string':
593
+ result = formatSize(value);
594
+ if (result < 0) {
595
+ return NaN;
596
+ }
597
+ break;
598
+ default:
599
+ return NaN;
600
+ }
601
+ if (kb > 0) {
602
+ kb = Math.ceil(kb) * 1024;
603
+ return Math.ceil(result / kb) * kb;
604
+ }
605
+ return result;
606
+ }
607
+ exports.alignSize = alignSize;
569
608
  function cascadeObject(data, query, fallback) {
570
609
  if (isObject(data) && isString(query)) {
571
- const names = query.trim().split(/(?<!\\)\./).map(item => item.indexOf('.') !== -1 ? item.replace(/\\(?=\.)/g, '') : item);
610
+ const names = query.trim().split(/(?<!\\)\./).map(item => item.includes('.') ? item.replace(/\\(?=\.)/g, '') : item);
572
611
  for (let i = 0, length = names.length, match, current = data; i < length; ++i) {
573
612
  if (!(match = /^(.+?)(?:\[(.+)\])?$/.exec(names[i]))) {
574
613
  break;
@@ -724,7 +763,7 @@ function coerceObject(data, parseString, cache) {
724
763
  default: {
725
764
  const text = match[2].trim();
726
765
  let values = []; // eslint-disable-line @typescript-eslint/no-explicit-any
727
- if (text[0] === '[' && text[text.length - 1] === ']') {
766
+ if (text.startsWith('[') && text.endsWith(']')) {
728
767
  values = JSON.parse(text);
729
768
  }
730
769
  else if (text) {
@@ -797,10 +836,10 @@ function asFunction(value, sync = true) {
797
836
  return value;
798
837
  }
799
838
  let match;
800
- if (isString(value) && (match = REGEXP_FUNCTION.exec(value = value.trim()))) {
839
+ if (isString(value) && (match = REGEXP_FUNCTION.exec(value = value.trim()) || REGEXP_FUNCTION_ARROW.exec(value))) {
801
840
  if (!sync || match[1]) {
802
- const args = match[4].trim().split(/\s*,\s*/);
803
- args.push(match[5]);
841
+ const args = match[3].trim().split(/\s*,\s*/);
842
+ args.push(match[4] || (match[5] && (match[5] = 'return ' + match[5])));
804
843
  return new ASYNC_FUNCTION(...args);
805
844
  }
806
845
  try {
@@ -816,7 +855,22 @@ function asFunction(value, sync = true) {
816
855
  }
817
856
  exports.asFunction = asFunction;
818
857
  function getEncoding(value, fallback = 'utf-8') {
819
- return typeof value === 'string' && Buffer.isEncoding(value = value.trim().toLowerCase()) ? value : fallback;
858
+ if (typeof value === 'string') {
859
+ switch (value = value.trim().toLowerCase()) {
860
+ case 'utf8':
861
+ case 'utf-8':
862
+ case 'utf16le':
863
+ return value;
864
+ case 'utf-16le':
865
+ case 'utf16':
866
+ case 'utf-16':
867
+ return 'utf16le';
868
+ }
869
+ if (Buffer.isEncoding(value)) {
870
+ return value;
871
+ }
872
+ }
873
+ return fallback;
820
874
  }
821
875
  exports.getEncoding = getEncoding;
822
876
  function encryptUTF8(algorithm, key, iv, data, encoding = 'hex') {
@@ -849,7 +903,7 @@ function randomString(format, dictionary) {
849
903
  dictionary || (dictionary = '0123456789abcdef');
850
904
  const result = format.match(/(\d+|[^\d[]+|\[[^\]]+\]|\[)/g).reduce((a, b) => {
851
905
  let length, available;
852
- if (b[0] === '[' && b[b.length - 1] === ']') {
906
+ if (b.startsWith('[') && b.endsWith(']')) {
853
907
  length = 1;
854
908
  available = b.substring(1, b.length - 1);
855
909
  }
@@ -901,4 +955,12 @@ function purgeMemory(percent) {
901
955
  CACHE_COERCED = new WeakSet();
902
956
  }
903
957
  exports.purgeMemory = purgeMemory;
904
- exports.generateUUID = typeof crypto.randomUUID === 'function' ? crypto.randomUUID.bind(crypto) : uuid.v4;
958
+ function incrementUUID(restart) {
959
+ if (restart || INCREMENT_COUNT === 65536) {
960
+ INCREMENT_COUNT = 0;
961
+ INCREMENT_PREFIX = (0, exports.generateUUID)().substring(0, 33);
962
+ }
963
+ return INCREMENT_PREFIX + (INCREMENT_COUNT++).toString(16).padStart(4, '0');
964
+ }
965
+ exports.incrementUUID = incrementUUID;
966
+ exports.generateUUID = typeof crypto.randomUUID === 'function' ? crypto.randomUUID.bind(crypto) : require('uuid').v4;
package/lib/compress.d.ts CHANGED
@@ -17,7 +17,7 @@ interface Woff {
17
17
  type ResultCallback<T = Null<Buffer | Uint8Array>> = (err: unknown, data?: T, ext?: string) => void;
18
18
  type ResultData = Null<Buffer | Uint8Array> | string;
19
19
 
20
- export type BufferLike = Buffer | Uint8Array | ArrayBuffer | SharedArrayBuffer | ReadonlyArray<number>;
20
+ export type BufferLike = Buffer | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly number[];
21
21
  export type TryFileCompressor = (data: string | Buffer, output: string, config: CompressFormat, callback?: TryFileResult) => Void<Promise<ResultData>>;
22
22
  export type TryFileCompressorAsync = (data: string | Buffer, output: string, config: CompressFormat) => Promise<ResultData>;
23
23
  export type TryFileResult = ResultCallback<ResultData>;
package/lib/index.d.ts CHANGED
@@ -83,7 +83,7 @@ declare namespace functions {
83
83
  new(module?: U): ICompress<T, U>;
84
84
  }
85
85
 
86
- interface IImage<T extends IHost = IHost, U extends ImageModule = ImageModule> extends IClient<T, U, FunctionType> {
86
+ interface IImage<T extends IHost = IHost, U extends ImageModule = ImageModule> extends IClient<T, U> {
87
87
  resizeData?: ResizeData;
88
88
  cropData?: CropData;
89
89
  rotateData?: RotateData;
package/lib/logger.d.ts CHANGED
@@ -93,10 +93,9 @@ export interface LogTypeValue {
93
93
  sessionId?: string;
94
94
  }
95
95
 
96
- export interface LogArguments {
97
- type?: LogType;
98
- value?: LogValue;
96
+ export interface LogArguments extends Pick<LogBaseOptions, "type" | "sessionId"> {
99
97
  title?: string;
98
+ value?: LogValue;
100
99
  message?: unknown;
101
100
  }
102
101
 
package/lib/request.d.ts CHANGED
@@ -65,7 +65,6 @@ export interface OpenOptions extends KeepAliveAction, SilentAction {
65
65
  postData?: unknown;
66
66
  connected?: (headers: IncomingHttpHeaders) => Void<boolean>;
67
67
  statusMessage?: string;
68
- silent?: boolean;
69
68
  outFormat?: { out: BufferFormat; parser?: PlainObject };
70
69
  outFilename?: Null<string>;
71
70
  outHeaders?: Null<IncomingHttpHeaders>;
@@ -105,7 +104,9 @@ export interface ProxySettings extends KeepAliveAction {
105
104
 
106
105
  export interface RequestInit extends ProtocolAction {
107
106
  headers?: unknown;
107
+ /* @deprecated - readTimeout */
108
108
  requestTimeout?: number;
109
+ readTimeout?: number;
109
110
  }
110
111
 
111
112
  export interface ClientConfig {
package/lib/settings.d.ts CHANGED
@@ -81,8 +81,8 @@ export interface PermissionModule<T = PermissionSettings> extends PermittedDirec
81
81
  }
82
82
 
83
83
  export interface PermissionSettings extends PlainObject {
84
- picomatch?: PicomatchOptions;
85
- minimatch?: MinimatchOptions;
84
+ picomatch?: Null<PicomatchOptions>;
85
+ minimatch?: Null<MinimatchOptions>;
86
86
  }
87
87
 
88
88
  export interface DownloadModule<T = PlainObject> extends HandlerSettings<T> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e-mc/types",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "Type definitions for E-mc.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "https://github.com/anpham6/e-mc.git",
12
+ "url": "git+https://github.com/anpham6/e-mc.git",
13
13
  "directory": "src/types"
14
14
  },
15
15
  "keywords": [
@@ -17,11 +17,11 @@
17
17
  "squared-functions"
18
18
  ],
19
19
  "author": "An Pham <anpham6@gmail.com>",
20
- "license": "BSD 3-Clause",
20
+ "license": "MIT",
21
21
  "homepage": "https://github.com/anpham6/e-mc#readme",
22
22
  "dependencies": {
23
23
  "bytes": "^3.1.2",
24
- "uuid": "^9.0.0"
24
+ "uuid": "^9.0.1"
25
25
  },
26
26
  "devDependencies": {
27
27
  "typescript": "5.0.4"