instrumentality 0.0.1
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 +35 -0
- package/dist/base.d.ts +146 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.js +209 -0
- package/dist/dom.d.ts +69 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +103 -0
- package/dist/road.d.ts +261 -0
- package/dist/road.d.ts.map +1 -0
- package/dist/road.js +783 -0
- package/package.json +40 -0
- package/src/base.ts +301 -0
- package/src/dom.ts +120 -0
- package/src/road.ts +827 -0
package/dist/road.d.ts
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as cr from "node:crypto";
|
|
3
|
+
import * as bs from "./base.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Subclass of {@link bs.InsErr} that represents an error thrown from this specific module of the library
|
|
6
|
+
*/
|
|
7
|
+
export declare class RdErr extends bs.InsErr {
|
|
8
|
+
name: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Returns the constructor function corresponding to the file mode.
|
|
12
|
+
*
|
|
13
|
+
* @param statmode The file mode to check.
|
|
14
|
+
* @returns The constructor function corresponding to the file mode.
|
|
15
|
+
* @throws If the file mode is unknown, throws a {@link RdErr}.
|
|
16
|
+
*/
|
|
17
|
+
export declare function modeCtor(statmode: number): typeof File | typeof Folder | typeof SymbolicLink | typeof BlockDevice;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new instance of the appropriate subclass of {@link Road} based on the file mode of the specified path.
|
|
20
|
+
*
|
|
21
|
+
* @param lookFor The path to check.
|
|
22
|
+
* @returns A new instance of the appropriate subclass of {@link Road}.
|
|
23
|
+
* @throws If the path does not exist, throws a fs {@link Error}.
|
|
24
|
+
*/
|
|
25
|
+
export declare function factorySync(lookFor: string): BlockDevice | File | Folder | SymbolicLink;
|
|
26
|
+
/** Async version of {@link factorySync}. */
|
|
27
|
+
export declare function factory(lookFor: string): Promise<BlockDevice | File | Folder | SymbolicLink>;
|
|
28
|
+
/**
|
|
29
|
+
* Getter for the locked roads map.
|
|
30
|
+
*
|
|
31
|
+
* @param roadOrPath - A {@link Road} instance or a string representing the absolute path of the road to check.
|
|
32
|
+
* @returns The promise associated with the locked road, or `undefined` if the road is not currently locked.
|
|
33
|
+
*/
|
|
34
|
+
export declare function lockFor(roadOrPath: Road | string): Promise<void> | undefined;
|
|
35
|
+
export declare abstract class Road {
|
|
36
|
+
/** The absolute path to the file or directory that this Road instance represents.
|
|
37
|
+
* Intentionally made protected to prevent external modification, as changing this value could lead to inconsistencies and unexpected behavior. */
|
|
38
|
+
protected pointsTo: string;
|
|
39
|
+
/** Indicates whether the file or directory represented by this Road instance can be modified.
|
|
40
|
+
* Changing this value does not affect the actual file system permissions, but rather serves as a safeguard within the application to prevent accidental modifications. */
|
|
41
|
+
mutable: boolean;
|
|
42
|
+
/** Accessor for the absolute path to the file or directory that this Road instance represents. */
|
|
43
|
+
get isAt(): string;
|
|
44
|
+
/** Accessor for the name of the file or directory that this Road instance represents. */
|
|
45
|
+
get name(): string;
|
|
46
|
+
/** Same as {@link isAt} but for compatibility with external libraries that try to convert the object to a string. */
|
|
47
|
+
toString(): string;
|
|
48
|
+
/** Returns the OS file type of the file or directory.
|
|
49
|
+
* Return value (OS type) and the type of this instance are not guaranteed to be the same, as the file system may have changed since this instance was created. */
|
|
50
|
+
typeSync(): typeof File | typeof Folder | typeof SymbolicLink | typeof BlockDevice;
|
|
51
|
+
/** Async version of {@link typeSync}. */
|
|
52
|
+
type(): Promise<typeof File | typeof Folder | typeof SymbolicLink | typeof BlockDevice>;
|
|
53
|
+
/**
|
|
54
|
+
* Constructs a new Road instance representing the file or directory at the specified path.
|
|
55
|
+
*
|
|
56
|
+
* @param lookFor The path to the file or directory that this Road instance will represent.
|
|
57
|
+
* @param typeCheck Whether to check if the type of the file or directory at the specified path matches the type of this instance.
|
|
58
|
+
* This can be skipped for performance reasons if the type is known to be correct, but it is recommended to keep it enabled for safety.
|
|
59
|
+
* @throws If the specified path does not exist, throws a fs.{@link Error}.
|
|
60
|
+
* @throws If the type of the file or directory at the specified path does not match the type of this instance, throws a {@link RdErr}. Useful for subclasses.
|
|
61
|
+
*/
|
|
62
|
+
constructor(lookFor: string, typeCheck: boolean);
|
|
63
|
+
/**
|
|
64
|
+
* Verifies that the file or directory represented by this Road instance exists, is of the same type as this instance, and (optionally) is writable.
|
|
65
|
+
*
|
|
66
|
+
* @param expectMode The expected access mode for this Road other than visibility by this process.
|
|
67
|
+
* @returns Result of the verification.
|
|
68
|
+
*/
|
|
69
|
+
verify(expectMode: number, typeCheck: boolean): Promise<boolean>;
|
|
70
|
+
/** Sync version of {@link verify}. */
|
|
71
|
+
verifySync(expectMode: number, typeCheck: boolean): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Creates a disposable lock for the file or directory represented by this Road instance, preventing concurrent modifications.
|
|
74
|
+
*
|
|
75
|
+
* @returns An object with a `dispose` method that releases the lock when called. The lock is automatically released when the object is garbage collected.
|
|
76
|
+
* @remarks Please use this method with the `await using` statement to ensure that the lock is properly released after the operation is complete. This method is intended for internal use and shouldn't be called directly in most cases. (that's why it's protected)
|
|
77
|
+
*/
|
|
78
|
+
protected initChange(): Promise<{
|
|
79
|
+
[Symbol.dispose](): void;
|
|
80
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
81
|
+
}>;
|
|
82
|
+
/**
|
|
83
|
+
* Sync version of {@link initChangeSync}.
|
|
84
|
+
*
|
|
85
|
+
* @remarks This sync version will throw if the road is already locked by another operation.
|
|
86
|
+
*/
|
|
87
|
+
protected initChangeSync(): {
|
|
88
|
+
[Symbol.dispose](): void;
|
|
89
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Checks if the file or directory represented by this Road is both visible and of the same type as expected.
|
|
93
|
+
*/
|
|
94
|
+
existsSync(): boolean;
|
|
95
|
+
exists(): Promise<boolean>;
|
|
96
|
+
/**
|
|
97
|
+
* @returns The file system stats for the file or directory.
|
|
98
|
+
* @see {@link fs.lstatSync}
|
|
99
|
+
*/
|
|
100
|
+
statsSync(): fs.Stats;
|
|
101
|
+
/**
|
|
102
|
+
* @returns The file system stats for the file or directory.
|
|
103
|
+
* @see {@link fs.promises.lstat}
|
|
104
|
+
*/
|
|
105
|
+
stats(): Promise<fs.Stats>;
|
|
106
|
+
/**
|
|
107
|
+
* @returns The amount of path segments in the absolute path to the file or directory represented by this Road instance, minus one (i.e., the depth of the file or directory in the file system hierarchy).
|
|
108
|
+
* @remarks As subclasses of {@link Road} require all paths to be absolute/normalized and valid, this method is guaranteed to return a non-negative integer.
|
|
109
|
+
*/
|
|
110
|
+
depth(): number;
|
|
111
|
+
/** @returns The parent folder of the file or directory represented by this Road instance. */
|
|
112
|
+
parent(): Folder;
|
|
113
|
+
ancestorsIt(): Generator<Folder, void, unknown>;
|
|
114
|
+
ancestors(): Folder[];
|
|
115
|
+
untilAccessible(mode: number | undefined, abs: AbortSignal, onEachAttempt?: () => unknown): Promise<void>;
|
|
116
|
+
onChange<T>(abs: AbortSignal, cb?: () => T): Promise<NonNullable<Awaited<T>> | null>;
|
|
117
|
+
metaSync(suffixID?: string): NonSharedBuffer;
|
|
118
|
+
meta(suffixID?: string): Promise<Record<string, unknown>>;
|
|
119
|
+
setMetaSync(meta: Record<string, unknown>, suffixID?: string): void;
|
|
120
|
+
setMeta(meta: Record<string, unknown>, suffixID?: string): Promise<void>;
|
|
121
|
+
abstract deleteSync(): void;
|
|
122
|
+
abstract delete(): Promise<void>;
|
|
123
|
+
abstract moveSync(into: Folder): void;
|
|
124
|
+
abstract move(into: Folder): Promise<void>;
|
|
125
|
+
abstract copySync(into: Folder): this;
|
|
126
|
+
abstract copy(into: Folder): Promise<this>;
|
|
127
|
+
abstract renameSync(to: string): void;
|
|
128
|
+
abstract rename(to: string): Promise<void>;
|
|
129
|
+
abstract resurrectSync(): void;
|
|
130
|
+
abstract resurrect(): Promise<void>;
|
|
131
|
+
}
|
|
132
|
+
export declare class File extends Road {
|
|
133
|
+
get ext(): string;
|
|
134
|
+
get noExt(): string;
|
|
135
|
+
static createSync(at: string): File;
|
|
136
|
+
static create(at: string): Promise<File>;
|
|
137
|
+
readSync(): Buffer;
|
|
138
|
+
readSync(encoding: BufferEncoding, flag?: string): string;
|
|
139
|
+
read(): Promise<Buffer>;
|
|
140
|
+
read(encoding: BufferEncoding, flag?: string): Promise<string>;
|
|
141
|
+
itBuffSync(chunkSize?: number, flags?: string | number, mode?: fs.Mode): Generator<Buffer<ArrayBuffer>, void, unknown>;
|
|
142
|
+
itBuff(chunkSize?: number, flags?: string | number, mode?: fs.Mode): AsyncGenerator<Buffer<ArrayBuffer>, void, unknown>;
|
|
143
|
+
itLines(options?: Parameters<typeof fs.createReadStream>[1]): AsyncGenerator<string, void, unknown>;
|
|
144
|
+
computeHashSync(algorithm?: string, options?: cr.HashOptions): Buffer;
|
|
145
|
+
computeHashSync(algorithm?: string, options?: cr.HashOptions, encoding?: BufferEncoding): string;
|
|
146
|
+
computeHash(algorithm?: string, options?: cr.HashOptions): Promise<Buffer>;
|
|
147
|
+
computeHash(algorithm?: string, options?: cr.HashOptions, encoding?: BufferEncoding): Promise<string>;
|
|
148
|
+
streamHash(algorithm?: string, options?: cr.HashOptions, encoding?: BufferEncoding): Promise<Buffer | string>;
|
|
149
|
+
writeSync(data: Buffer | string, options?: fs.WriteFileOptions): void;
|
|
150
|
+
write(data: Buffer | string, options?: fs.WriteFileOptions): Promise<void>;
|
|
151
|
+
appendSync(data: Buffer | string, options?: fs.WriteFileOptions): void;
|
|
152
|
+
append(data: Buffer | string, options?: fs.WriteFileOptions): Promise<void>;
|
|
153
|
+
sameAs(other: File): Promise<boolean>;
|
|
154
|
+
sameAsSync(other: File): boolean;
|
|
155
|
+
deleteSync(): void;
|
|
156
|
+
delete(): Promise<void>;
|
|
157
|
+
moveSync(into: Folder): void;
|
|
158
|
+
move(into: Folder): Promise<void>;
|
|
159
|
+
copySync(into: Folder): this;
|
|
160
|
+
copy(into: Folder): Promise<this>;
|
|
161
|
+
renameSync(to: string): void;
|
|
162
|
+
rename(to: string): Promise<void>;
|
|
163
|
+
resurrectSync(): void;
|
|
164
|
+
resurrect(): Promise<void>;
|
|
165
|
+
}
|
|
166
|
+
export declare function entry(): File;
|
|
167
|
+
export declare class Folder extends Road {
|
|
168
|
+
static create(at: string): Promise<Folder>;
|
|
169
|
+
static createSync(at: string): Folder;
|
|
170
|
+
join(...paths: string[]): string;
|
|
171
|
+
itSync(): Iterable<Road>;
|
|
172
|
+
itSync<T extends Road>(expectedType: new () => T): Iterable<T>;
|
|
173
|
+
it(): AsyncIterable<Road>;
|
|
174
|
+
it<T extends Road>(expectedType: new () => T): AsyncIterable<T>;
|
|
175
|
+
listSync(): Road[];
|
|
176
|
+
listSync<T extends Road>(expectedType: new () => T): T[];
|
|
177
|
+
list(): Promise<Road[]>;
|
|
178
|
+
list<T extends Road>(_expectedType: new () => T): Promise<T[]>;
|
|
179
|
+
findSync(name: string): Road | null;
|
|
180
|
+
findSync<T extends Road>(name: string, _expectedType: new () => T): T | null;
|
|
181
|
+
find(name: string): Promise<Road | null>;
|
|
182
|
+
find<T extends Road>(name: string, _expectedType: new () => T): Promise<T | null>;
|
|
183
|
+
addSync<T extends Road>(name: string, createable: {
|
|
184
|
+
createSync: (at: string) => T;
|
|
185
|
+
}): T;
|
|
186
|
+
add<T extends Road>(name: string, createable: {
|
|
187
|
+
create: (at: string) => Promise<T>;
|
|
188
|
+
}): Promise<T>;
|
|
189
|
+
deleteSync(options?: fs.RmOptions): void;
|
|
190
|
+
delete(options?: fs.RmOptions): Promise<void>;
|
|
191
|
+
moveSync(into: Folder): void;
|
|
192
|
+
move(into: Folder): Promise<void>;
|
|
193
|
+
copySync(into: Folder): this;
|
|
194
|
+
copy(into: Folder): Promise<this>;
|
|
195
|
+
renameSync(to: string): void;
|
|
196
|
+
rename(to: string): Promise<void>;
|
|
197
|
+
resurrectSync(): void;
|
|
198
|
+
resurrect(): Promise<void>;
|
|
199
|
+
}
|
|
200
|
+
export declare function sysRoot(): Folder;
|
|
201
|
+
export declare function home(): Folder;
|
|
202
|
+
export declare function tmp(): Folder;
|
|
203
|
+
export declare function here(): Folder;
|
|
204
|
+
export { Folder as Dir, Folder as Directory, Folder as Dict, Folder as Dictionary };
|
|
205
|
+
export declare class SymbolicLink extends Road {
|
|
206
|
+
static create(at: string, target: Road): Promise<SymbolicLink>;
|
|
207
|
+
static createSync(_at: string, _target: Road): SymbolicLink;
|
|
208
|
+
targetSync(): BlockDevice | File | Folder | SymbolicLink;
|
|
209
|
+
target(): Promise<BlockDevice | File | Folder | SymbolicLink>;
|
|
210
|
+
retargetSync(_newTarget: Road): void;
|
|
211
|
+
retarget(_newTarget: Road): Promise<void>;
|
|
212
|
+
deleteSync(): void;
|
|
213
|
+
delete(): Promise<void>;
|
|
214
|
+
moveSync(_into: Folder): void;
|
|
215
|
+
move(_into: Folder): Promise<void>;
|
|
216
|
+
copySync(_into: Folder): this;
|
|
217
|
+
copy(_into: Folder): Promise<this>;
|
|
218
|
+
renameSync(_to: string): void;
|
|
219
|
+
rename(_to: string): Promise<void>;
|
|
220
|
+
resurrectSync(): void;
|
|
221
|
+
resurrect(): Promise<void>;
|
|
222
|
+
}
|
|
223
|
+
export { SymbolicLink as Symlink };
|
|
224
|
+
export declare abstract class UnusableRoad extends Road {
|
|
225
|
+
readonly mutable: boolean;
|
|
226
|
+
constructor(_at: string, typeCheck: boolean);
|
|
227
|
+
error(): never;
|
|
228
|
+
initChangeSync(): never;
|
|
229
|
+
initChange(): Promise<never>;
|
|
230
|
+
deleteSync(): never;
|
|
231
|
+
delete(): Promise<never>;
|
|
232
|
+
moveSync(): never;
|
|
233
|
+
move(): Promise<never>;
|
|
234
|
+
copySync(): never;
|
|
235
|
+
copy(): Promise<never>;
|
|
236
|
+
renameSync(): never;
|
|
237
|
+
rename(): Promise<never>;
|
|
238
|
+
resurrectSync(): never;
|
|
239
|
+
resurrect(): Promise<never>;
|
|
240
|
+
}
|
|
241
|
+
export declare class BlockDevice extends UnusableRoad {
|
|
242
|
+
}
|
|
243
|
+
export declare class CharacterDevice extends UnusableRoad {
|
|
244
|
+
}
|
|
245
|
+
export declare class Fifo extends UnusableRoad {
|
|
246
|
+
}
|
|
247
|
+
export declare class Socket extends UnusableRoad {
|
|
248
|
+
}
|
|
249
|
+
export declare let finalizer: FinalizationRegistry<string> | null;
|
|
250
|
+
export declare let toDelete: Set<string> | null;
|
|
251
|
+
/**
|
|
252
|
+
* Forcefully cleans up all files and folders registered for cleanup on exit.
|
|
253
|
+
*
|
|
254
|
+
* @remarks This function is not recommended to be called manually, as it will delete all files and folders registered for cleanup on exit, which may lead to data loss if called at the wrong time. This function is intended to be called automatically when the process exits.
|
|
255
|
+
*/
|
|
256
|
+
export declare function forceCleanupToDelete(): void;
|
|
257
|
+
export declare function registerToCleanup(self: Road): void;
|
|
258
|
+
export declare function Temp<T extends Road>(createable: {
|
|
259
|
+
createSync: (at: string) => T;
|
|
260
|
+
}, autoCleanup: boolean): T & Disposable & AsyncDisposable;
|
|
261
|
+
//# sourceMappingURL=road.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"road.d.ts","sourceRoot":"","sources":["../src/road.ts"],"names":[],"mappings":"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"}
|