@e-mc/types

Interface

import type { LogArguments } from "./lib/logger";
import type { ErrorCode, HighResolutionTime } from "./lib/node";

import type { BinaryLike, BinaryToTextEncoding, CipherGCMTypes, Encoding } from "node:crypto";
import type { BytesOptions } from "bytes";

function createAbortError(reject: true): Promise<never>;
function createAbortError(): DOMException;
function hasBit(value: unknown, flags: number): boolean;
function ignoreFlag(value: unknown): boolean;
function cloneFlag(value: unknown): boolean;
function usingFlag(value: unknown): boolean;
function watchFlag(value: unknown): boolean;
function modifiedFlag(value: unknown): boolean;
function processFlag(value: unknown): boolean;
function mainFlag(value: unknown): boolean;
function existsFlag(value: unknown): boolean;
function getLogCurrent(): LogArguments | null;
function setLogCurrent(value: LogArguments): void;
function setTempDir(value: string, lock?: boolean): boolean;
function getTempDir(create: true, prefix?: string): string;
function getTempDir(...values: string[]): string;
function isArray(value: unknown): value is unknown[];
function isObject(value: unknown): value is object;
function isPlainObject(value: unknown): value is Record<string | number | symbol, unknown>;
function isString(value: unknown): value is string;
function isEmpty(value: unknown): boolean;
function isError(err: unknown, ...name: string[]): err is Error;
function isErrorCode(err: unknown, ...code: unknown[]): err is Required<ErrorCode>;
function asFunction(value: unknown, sync?: boolean): ((...args: unknown[]) => Promise<unknown> | unknown) | null;
function asExt(value: string): string;
function parseTime(value: number | string, epoch: true): number;
function parseTime(value: number | string, negative: false): number;
function parseTime(value: number | string, start?: number): number;
function parseExpires(value: number | string, epoch: true): number;
function parseExpires(value: number | string, start?: number | boolean): number;
function formatTime(value: number, char: string): string;
function formatTime(value: number, elapsed?: boolean, char?: string): string;
function convertTime(value: number | string): number;
function convertTime(value: HighResolutionTime, format: true): string;
function convertTime(value: HighResolutionTime, format?: boolean): number;
function hasGlob(value: string): boolean;
/** @deprecated RegExp.escape */
function escapePattern(value: unknown, symbols?: boolean): string;
function renameExt(value: string, ext: string, when?: string): string;
function formatSize(value: string): number;
function formatSize(value: number, options?: BytesOptions): string;
function alignSize(value: unknown, kb?: number, factor?: number): number;
function cascadeObject(data: object, query: string, fallback?: unknown): unknown;
function cloneObject(data: unknown, deep: boolean): unknown;
function cloneObject(data: unknown, deepIgnore: WeakMap<object, object>): unknown;
function cloneObject(data: unknown, options?: CloneObjectOptions<unknown>): unknown;
function coerceObject(data: unknown, cache: boolean): unknown;
function coerceObject(data: unknown, parseString?: (...args: [string]) => unknown, cache?: boolean): unknown;
function getEncoding(value: unknown, fallback?: BufferEncoding): BufferEncoding;
function getAlgorithm(value: unknown, fallback?: string): string | undefined;
function encryptUTF8(algorithm: CipherGCMTypes, key: BinaryLike, iv: BinaryLike, data: string, encoding?: Encoding): string | undefined;
function decryptUTF8(algorithm: CipherGCMTypes, key: BinaryLike, iv: BinaryLike, data: string, encoding?: Encoding): string | undefined;
function hashKey(data: BinaryLike, algorithm?: string, encoding?: BinaryToTextEncoding): string;
function incrementUUID(restart?: boolean): string;
function validateUUID(value: unknown): boolean;
function sanitizeCmd(value: string, ...args: unknown[]): string;
function sanitizeArgs(value: string, doubleQuote?: boolean): string;
function sanitizeArgs(values: string[], doubleQuote?: boolean): string[];
/** @deprecated crypto.randomUUID */
function randomString(format: string, dictionary?: string): string;
function errorValue(value: string, cause: unknown): Error;
function errorValue(value: string, hint?: string, cause?: unknown): Error;
function errorMessage(title: number | string, value: string, cause: unknown): Error;
function errorMessage(title: number | string, value: string, hint?: string, cause?: unknown): Error;
function supported(major: number, minor: number, lts: boolean): boolean;
function supported(major: number, minor?: number, patch?: number, lts?: boolean): boolean;
function importESM(name: string | URL, isDefault: boolean, fromPath?: boolean): Promise<unknown>;
function importESM(name: string | URL, options?: ImportAttributes, fromPath?: boolean): Promise<unknown>;
function requireESM(name: string, url?: string | URL, expect?: string): unknown;
function purgeMemory(type: 1, exclude?: unknown[]): number;
function purgeMemory(type: 0): number;
function purgeMemory(type?: number, exclude?: unknown[]): number;
function manageGlobalObject(value: object): boolean;
function freeGlobalObject(value: object): boolean;

interface LOG_TYPE {
    UNKNOWN: 0;
    SYSTEM: 1;
    NODE: 2;
    PROCESS: 4;
    COMPRESS: 8;
    WATCH: 16;
    FILE: 32;
    CLOUD: 64;
    TIME_ELAPSED: 128;
    TIME_PROCESS: 256;
    FAIL: 512;
    HTTP: 1024;
    IMAGE: 2048;
    EXEC: 4096;
    PERMISSION: 8192;
    TIMEOUT: 16384;
    STDOUT: 32768;
    DB: 65536;
    USER: 131072;
}

interface LOG_STATE {
    STDIN: 0;
    STDOUT: 1;
    STDERR: 2;
}

interface STATUS_TYPE {
    UNKNOWN: 0;
    FATAL: 1;
    ERROR: 2;
    WARN: 3;
    INFO: 4;
    DEBUG: 5;
    ASSERT: 6;
    TRACE: 7;
}

interface ASSET_FLAG {
    NONE: 0;
    IGNORE: 1;
    CLONE: 2;
    USING: 4;
    WATCH: 8;
    MODIFIED: 16;
    PROCESS: 32;
    MAIN: 64;
    EXISTS: 128;
}

interface FILE_TYPE {
    UNKNOWN: 0;
    ASSET: 1;
    TRANSFORM: 2;
    COMPRESSED: 4;
    SOURCEMAP: 8;
    TORRENT: 16;
}

interface ACTION_FLAG {
    NONE: 0;
    IGNORE: 1;
}

interface ERR_CODE {
    MODULE_NOT_FOUND: "MODULE_NOT_FOUND";
    ERR_MODULE_NOT_FOUND: "ERR_MODULE_NOT_FOUND";
}

interface DOWNLOAD_TYPE {
    HTTP: 0;
    DISK: 1;
    CACHE: 2;
}

interface FETCH_TYPE {
    UNKNOWN: 0;
    HTTP: 1;
    TORRENT: 2;
    FTP: 3;
    UNIX_SOCKET: 4;
}

interface DB_TYPE {
    SQL: 1;
    NOSQL: 2;
    DOCUMENT: 4;
    KEYVALUE: 8;
}

interface DB_TRANSACTION {
    ACTIVE: 1;
    PARTIAL: 2;
    COMMIT: 4;
    TERMINATE: 8;
    ABORT: 16;
    FAIL: 32;
    AUTH: 64;
    CACHE: 128;
}

interface TRANSFER_TYPE {
    DISK: 1;
    STREAM: 2;
    CHUNK: 4;
}

interface WATCH_EVENT {
    MODIFIED: "modified";
    BROADCAST: "broadcast";
    CLOSE: "close";
    ERROR: "error";
}

interface READDIR_SORT {
    FILE: number;
    DIRECTORY: number;
    DESCENDING: number;
}

interface THRESHOLD {
    FILEMANAGER_INTERVAL: number;
    WATCH_INTERVAL: number;
    WATCH_CHANGE: number;
    LOGGER_METER_INCREMENT: number;
}

const IMPORT_MAP: StringMap;

Changelog

Added in version 0.14.1:

  • function manageGlobalObject | freeGlobalObject for releasing cached memory was created.

Changed in version 0.14.1:

  • BREAKING function purgeMemory unimplemented argument percent was replaced with type as 0 | 1.

Added in version 0.14.0:

  • function getAlgorithm for validating a supported hash algorithm was created.

  • function isError for detecting a native Error instance was created.

  • function asExt for extracting only the extension name was created.

  • enum LOG_STATE with USER for authenticated sessions was created.

Changed in version 0.14.0:

  • BREAKING function hashKey argument algorithm default value was changed from “md5” to “sha256”.

  • function setTempDir argument lock as boolean can be used at initialization to prevent unauthorized modification.

Removed in version 0.14.0:

  • global types in object were deleted:

    • Point

    • Dimension

    • AuthValue

    • ErrorCode

    • HighResolutionTime

    • MinMax

    • KeyValue

Deprecated since version 0.14.0:

  • function escapePattern | randomString will be removed when the baseline release is NodeJS 24.

Added in version 0.13.9:

  • function requireESM for extracting a default export was created.

  • function errorValue | errorMessage argument cause as unknown was implemented.

Note

Backported: 0.12.16

Changed in version 0.13.4:

  • BREAKING function cloneObject uses a WeakMap<object, object> internally for reference tracking.

Note

Backported: 0.12.11

Added in version 0.13.0:

  • function isErrorCode for checking Error properties was imported from @e-mc/module.

Changed in version 0.13.0:

  • function parseTime argument epoch as true for starting the interval from Unix or Epoch time.

  • function parseTime argument negative as false for including plus and minus operators.

  • function parseExpires argument epoch as true for starting the interval from Unix or Epoch time.

Changed in version 0.12.5:

  • function importESM argument options as ImportAttributes was implemented.

Changed in version 0.12.4:

  • function getTempDir argument create as boolean using fs.mkdtemp was implemented.

Changed in version 0.12.2:

  • function sanitizeCmd optionally concatenates arguments without altering the supplied values.

Added in version 0.12.0:

  • function sanitizeCmd | sanitizeArgs for escaping shell characters were imported from @e-mc/module.

  • interface CloneObjectOptions property structured for using the native structuredClone was implemented.

Changed in version 0.12.0:

  • function getTempDir optionally concatenates path segments (path.join) without creating any directories.

Deprecated since version 0.12.0:

  • global types in object were relocated:

    • lib/image: Point | Dimension

    • lib/http: AuthValue

    • lib/node: ErrorCode | HighResolutionTime

    • lib/settings: MinMax

    • lib/squared: KeyValue

Removed in version 0.12.0:

  • function generateUUID was an alias for crypto.randomUUID.

  • global types in types:

    • Undef

    • Null

    • NumString

    • TupleOf

Changed in version 0.11.7:

  • BREAKING Method decryptUTF8 did not consistently reproduce data output from encryptUTF8.

Added in version 0.11.2:

  • interface THRESHOLD property LOGGER_METER_INCREMENT was created.

Changed in version 0.11.1:

  • BREAKING function escapePattern argument lookBehind was replaced with symbols as boolean:

    • \x26 &

    • \x21 !

    • \x23 #

    • \x25 %

    • \x2c ,

    • \x3a :

    • \x3b ;

    • \x3c <

    • \x3d =

    • \x3e >

    • \x40 @

    • \x60 `

    • \x7e ~

    • \x22 “ (0.13.8)

  • function supported argument lts as boolean can be used as the patch argument.

Changed in version 0.11.0:

  • type HighResolutionTime in object with bigint primitive was implemented.

Removed in version 0.11.0:

  • interface AsSourceFileOptions property persist in document was never implemented.

Deprecated since version 0.10.2:

  • type TupleOf as a shorter alias does not convey explicit intent.

  • interface OpenOptions property follow_redirect in request was renamed followRedirect.

Added in version 0.10.0:

  • function hashKey for single-pass encoding was created.

  • function supported for NodeJS versioning was imported from @e-mc/module.

  • function importESM for dynamic module loading was created.

Changed in version 0.10.0:

  • function createAbortError uses native DOMException with name “AbortError” and code 20.

  • function formatTime with argument char as “:” displays using digital clock format.

  • interface CloneObjectOptions in module was relocated to types.

  • type Writeable was renamed Writable.

  • interface GetTempDirOptions in module was renamed TempDirOptions.

Removed in version 0.10.0:

  • interface AsHashOptions property minLength in module.

  • type NormalizeFlags in module.

  • export definitions in squared:

    • FinalizedElement

    • ConditionProperty

    • CssConditionData

    • ControllerSettingsDirectoryUI

Deprecated since version 0.9.2:

  • function generateUUID is a reference to crypto.randomUUID.

  • type NumString as a union is not a standard convention.

Added in version 0.9.0:

  • enum LOG_STATE for queuing console output was created.

Changed in version 0.9.0:

  • type StringOfArray was renamed ArrayOf<string>.

  • type BufferContent was renamed Bufferable.

  • interface PoolConfig in db was relocated to settings.

  • interface LoggerFormat in logger was relocated to settings.

  • interface AddEventListenerOptions in dom was relocated to core.

Added in version 0.8.4:

  • function alignSize for byte memory alignment was created.

References