@matter/nodejs 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e
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/package.json +9 -9
- package/dist/cjs/behavior/index.d.ts +0 -7
- package/dist/cjs/behavior/index.d.ts.map +0 -1
- package/dist/cjs/behavior/index.js +0 -8
- package/dist/cjs/behavior/index.js.map +0 -6
- package/dist/cjs/behavior/instrumentation.d.ts +0 -11
- package/dist/cjs/behavior/instrumentation.d.ts.map +0 -1
- package/dist/cjs/behavior/instrumentation.js +0 -39
- package/dist/cjs/behavior/instrumentation.js.map +0 -6
- package/dist/cjs/behavior/register.d.ts +0 -7
- package/dist/cjs/behavior/register.d.ts.map +0 -1
- package/dist/cjs/behavior/register.js +0 -9
- package/dist/cjs/behavior/register.js.map +0 -6
- package/dist/cjs/config.d.ts +0 -98
- package/dist/cjs/config.d.ts.map +0 -1
- package/dist/cjs/config.js +0 -210
- package/dist/cjs/config.js.map +0 -6
- package/dist/cjs/crypto/NodeJsCrypto.d.ts +0 -13
- package/dist/cjs/crypto/NodeJsCrypto.d.ts.map +0 -1
- package/dist/cjs/crypto/NodeJsCrypto.js +0 -46
- package/dist/cjs/crypto/NodeJsCrypto.js.map +0 -6
- package/dist/cjs/crypto/index.d.ts +0 -7
- package/dist/cjs/crypto/index.d.ts.map +0 -1
- package/dist/cjs/crypto/index.js +0 -24
- package/dist/cjs/crypto/index.js.map +0 -6
- package/dist/cjs/environment/NodeJsEnvironment.d.ts +0 -77
- package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +0 -1
- package/dist/cjs/environment/NodeJsEnvironment.js +0 -254
- package/dist/cjs/environment/NodeJsEnvironment.js.map +0 -6
- package/dist/cjs/environment/ProcessManager.d.ts +0 -48
- package/dist/cjs/environment/ProcessManager.d.ts.map +0 -1
- package/dist/cjs/environment/ProcessManager.js +0 -129
- package/dist/cjs/environment/ProcessManager.js.map +0 -6
- package/dist/cjs/environment/index.d.ts +0 -9
- package/dist/cjs/environment/index.d.ts.map +0 -1
- package/dist/cjs/environment/index.js +0 -26
- package/dist/cjs/environment/index.js.map +0 -6
- package/dist/cjs/environment/register.d.ts +0 -7
- package/dist/cjs/environment/register.d.ts.map +0 -1
- package/dist/cjs/environment/register.js +0 -10
- package/dist/cjs/environment/register.js.map +0 -6
- package/dist/cjs/fs/NodeJsDirectory.d.ts +0 -24
- package/dist/cjs/fs/NodeJsDirectory.d.ts.map +0 -1
- package/dist/cjs/fs/NodeJsDirectory.js +0 -102
- package/dist/cjs/fs/NodeJsDirectory.js.map +0 -6
- package/dist/cjs/fs/NodeJsFile.d.ts +0 -22
- package/dist/cjs/fs/NodeJsFile.d.ts.map +0 -1
- package/dist/cjs/fs/NodeJsFile.js +0 -248
- package/dist/cjs/fs/NodeJsFile.js.map +0 -6
- package/dist/cjs/fs/NodeJsFilesystem.d.ts +0 -27
- package/dist/cjs/fs/NodeJsFilesystem.d.ts.map +0 -1
- package/dist/cjs/fs/NodeJsFilesystem.js +0 -83
- package/dist/cjs/fs/NodeJsFilesystem.js.map +0 -6
- package/dist/cjs/fs/fs-utils.d.ts +0 -16
- package/dist/cjs/fs/fs-utils.d.ts.map +0 -1
- package/dist/cjs/fs/fs-utils.js +0 -154
- package/dist/cjs/fs/fs-utils.js.map +0 -6
- package/dist/cjs/fs/index.d.ts +0 -7
- package/dist/cjs/fs/index.d.ts.map +0 -1
- package/dist/cjs/fs/index.js +0 -24
- package/dist/cjs/fs/index.js.map +0 -6
- package/dist/cjs/fs/lock-utils.d.ts +0 -12
- package/dist/cjs/fs/lock-utils.d.ts.map +0 -1
- package/dist/cjs/fs/lock-utils.js +0 -132
- package/dist/cjs/fs/lock-utils.js.map +0 -6
- package/dist/cjs/index.d.ts +0 -14
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -31
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/log/FileLogger.d.ts +0 -12
- package/dist/cjs/log/FileLogger.d.ts.map +0 -1
- package/dist/cjs/log/FileLogger.js +0 -46
- package/dist/cjs/log/FileLogger.js.map +0 -6
- package/dist/cjs/log/index.d.ts +0 -7
- package/dist/cjs/log/index.d.ts.map +0 -1
- package/dist/cjs/log/index.js +0 -24
- package/dist/cjs/log/index.js.map +0 -6
- package/dist/cjs/net/NodeJsHttpEndpoint.d.ts +0 -38
- package/dist/cjs/net/NodeJsHttpEndpoint.d.ts.map +0 -1
- package/dist/cjs/net/NodeJsHttpEndpoint.js +0 -306
- package/dist/cjs/net/NodeJsHttpEndpoint.js.map +0 -6
- package/dist/cjs/net/NodeJsNetwork.d.ts +0 -37
- package/dist/cjs/net/NodeJsNetwork.d.ts.map +0 -1
- package/dist/cjs/net/NodeJsNetwork.js +0 -199
- package/dist/cjs/net/NodeJsNetwork.js.map +0 -6
- package/dist/cjs/net/NodeJsTcpConnection.d.ts +0 -24
- package/dist/cjs/net/NodeJsTcpConnection.d.ts.map +0 -1
- package/dist/cjs/net/NodeJsTcpConnection.js +0 -138
- package/dist/cjs/net/NodeJsTcpConnection.js.map +0 -6
- package/dist/cjs/net/NodeJsTcpListener.d.ts +0 -19
- package/dist/cjs/net/NodeJsTcpListener.d.ts.map +0 -1
- package/dist/cjs/net/NodeJsTcpListener.js +0 -100
- package/dist/cjs/net/NodeJsTcpListener.js.map +0 -6
- package/dist/cjs/net/NodeJsUdpSocket.d.ts +0 -23
- package/dist/cjs/net/NodeJsUdpSocket.d.ts.map +0 -1
- package/dist/cjs/net/NodeJsUdpSocket.js +0 -394
- package/dist/cjs/net/NodeJsUdpSocket.js.map +0 -6
- package/dist/cjs/net/WsAdapter.d.ts +0 -25
- package/dist/cjs/net/WsAdapter.d.ts.map +0 -1
- package/dist/cjs/net/WsAdapter.js +0 -33
- package/dist/cjs/net/WsAdapter.js.map +0 -6
- package/dist/cjs/net/index.d.ts +0 -12
- package/dist/cjs/net/index.d.ts.map +0 -1
- package/dist/cjs/net/index.js +0 -29
- package/dist/cjs/net/index.js.map +0 -6
- package/dist/cjs/package.json +0 -6
- package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.d.ts +0 -29
- package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.js +0 -155
- package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.js.map +0 -6
- package/dist/cjs/storage/fs/FileStorageDriver.d.ts +0 -44
- package/dist/cjs/storage/fs/FileStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/fs/FileStorageDriver.js +0 -334
- package/dist/cjs/storage/fs/FileStorageDriver.js.map +0 -6
- package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.d.ts +0 -30
- package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.js +0 -195
- package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.js.map +0 -6
- package/dist/cjs/storage/fs/JsonFileStorageDriver.d.ts +0 -27
- package/dist/cjs/storage/fs/JsonFileStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/fs/JsonFileStorageDriver.js +0 -128
- package/dist/cjs/storage/fs/JsonFileStorageDriver.js.map +0 -6
- package/dist/cjs/storage/fs/WalBlobStorageDriver.d.ts +0 -19
- package/dist/cjs/storage/fs/WalBlobStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/fs/WalBlobStorageDriver.js +0 -44
- package/dist/cjs/storage/fs/WalBlobStorageDriver.js.map +0 -6
- package/dist/cjs/storage/fs/index.d.ts +0 -21
- package/dist/cjs/storage/fs/index.d.ts.map +0 -1
- package/dist/cjs/storage/fs/index.js +0 -40
- package/dist/cjs/storage/fs/index.js.map +0 -6
- package/dist/cjs/storage/index.d.ts +0 -8
- package/dist/cjs/storage/index.d.ts.map +0 -1
- package/dist/cjs/storage/index.js +0 -25
- package/dist/cjs/storage/index.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.d.ts +0 -48
- package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.js +0 -217
- package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqlitePlatform.d.ts +0 -23
- package/dist/cjs/storage/sqlite/SqlitePlatform.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqlitePlatform.js +0 -56
- package/dist/cjs/storage/sqlite/SqlitePlatform.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqliteStorageDriver.d.ts +0 -102
- package/dist/cjs/storage/sqlite/SqliteStorageDriver.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqliteStorageDriver.js +0 -424
- package/dist/cjs/storage/sqlite/SqliteStorageDriver.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqliteStorageDriverError.d.ts +0 -19
- package/dist/cjs/storage/sqlite/SqliteStorageDriverError.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqliteStorageDriverError.js +0 -41
- package/dist/cjs/storage/sqlite/SqliteStorageDriverError.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqliteTypes.d.ts +0 -67
- package/dist/cjs/storage/sqlite/SqliteTypes.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqliteTypes.js +0 -35
- package/dist/cjs/storage/sqlite/SqliteTypes.js.map +0 -6
- package/dist/cjs/storage/sqlite/SqliteUtil.d.ts +0 -33
- package/dist/cjs/storage/sqlite/SqliteUtil.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/SqliteUtil.js +0 -64
- package/dist/cjs/storage/sqlite/SqliteUtil.js.map +0 -6
- package/dist/cjs/storage/sqlite/index.d.ts +0 -15
- package/dist/cjs/storage/sqlite/index.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/index.js +0 -37
- package/dist/cjs/storage/sqlite/index.js.map +0 -6
- package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts +0 -13
- package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/platform/BunSqlite.js +0 -61
- package/dist/cjs/storage/sqlite/platform/BunSqlite.js.map +0 -6
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts +0 -8
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts.map +0 -1
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js +0 -53
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js.map +0 -6
- package/dist/cjs/time/index.d.ts +0 -7
- package/dist/cjs/time/index.d.ts.map +0 -1
- package/dist/cjs/time/index.js +0 -8
- package/dist/cjs/time/index.js.map +0 -6
- package/dist/cjs/time/startup.d.ts +0 -7
- package/dist/cjs/time/startup.d.ts.map +0 -1
- package/dist/cjs/time/startup.js +0 -11
- package/dist/cjs/time/startup.js.map +0 -6
- package/dist/cjs/util/runtimeChecks.d.ts +0 -14
- package/dist/cjs/util/runtimeChecks.d.ts.map +0 -1
- package/dist/cjs/util/runtimeChecks.js +0 -45
- package/dist/cjs/util/runtimeChecks.js.map +0 -6
- package/dist/esm/behavior/index.js +0 -7
- package/dist/esm/behavior/index.js.map +0 -6
- package/dist/esm/behavior/instrumentation.js +0 -19
- package/dist/esm/behavior/instrumentation.js.map +0 -6
- package/dist/esm/behavior/register.js +0 -8
- package/dist/esm/behavior/register.js.map +0 -6
- package/dist/esm/config.js +0 -190
- package/dist/esm/config.js.map +0 -6
- package/dist/esm/crypto/NodeJsCrypto.js +0 -16
- package/dist/esm/crypto/NodeJsCrypto.js.map +0 -6
- package/dist/esm/crypto/index.js +0 -7
- package/dist/esm/crypto/index.js.map +0 -6
- package/dist/esm/environment/NodeJsEnvironment.js +0 -242
- package/dist/esm/environment/NodeJsEnvironment.js.map +0 -6
- package/dist/esm/environment/ProcessManager.js +0 -109
- package/dist/esm/environment/ProcessManager.js.map +0 -6
- package/dist/esm/environment/index.js +0 -9
- package/dist/esm/environment/index.js.map +0 -6
- package/dist/esm/environment/register.js +0 -9
- package/dist/esm/environment/register.js.map +0 -6
- package/dist/esm/fs/NodeJsDirectory.js +0 -82
- package/dist/esm/fs/NodeJsDirectory.js.map +0 -6
- package/dist/esm/fs/NodeJsFile.js +0 -232
- package/dist/esm/fs/NodeJsFile.js.map +0 -6
- package/dist/esm/fs/NodeJsFilesystem.js +0 -63
- package/dist/esm/fs/NodeJsFilesystem.js.map +0 -6
- package/dist/esm/fs/fs-utils.js +0 -137
- package/dist/esm/fs/fs-utils.js.map +0 -6
- package/dist/esm/fs/index.js +0 -7
- package/dist/esm/fs/index.js.map +0 -6
- package/dist/esm/fs/lock-utils.js +0 -112
- package/dist/esm/fs/lock-utils.js.map +0 -6
- package/dist/esm/index.js +0 -14
- package/dist/esm/index.js.map +0 -6
- package/dist/esm/log/FileLogger.js +0 -26
- package/dist/esm/log/FileLogger.js.map +0 -6
- package/dist/esm/log/index.js +0 -7
- package/dist/esm/log/index.js.map +0 -6
- package/dist/esm/net/NodeJsHttpEndpoint.js +0 -286
- package/dist/esm/net/NodeJsHttpEndpoint.js.map +0 -6
- package/dist/esm/net/NodeJsNetwork.js +0 -189
- package/dist/esm/net/NodeJsNetwork.js.map +0 -6
- package/dist/esm/net/NodeJsTcpConnection.js +0 -124
- package/dist/esm/net/NodeJsTcpConnection.js.map +0 -6
- package/dist/esm/net/NodeJsTcpListener.js +0 -86
- package/dist/esm/net/NodeJsTcpListener.js.map +0 -6
- package/dist/esm/net/NodeJsUdpSocket.js +0 -385
- package/dist/esm/net/NodeJsUdpSocket.js.map +0 -6
- package/dist/esm/net/WsAdapter.js +0 -13
- package/dist/esm/net/WsAdapter.js.map +0 -6
- package/dist/esm/net/index.js +0 -12
- package/dist/esm/net/index.js.map +0 -6
- package/dist/esm/package.json +0 -6
- package/dist/esm/storage/fs/DirectoryBlobStorageDriver.js +0 -140
- package/dist/esm/storage/fs/DirectoryBlobStorageDriver.js.map +0 -6
- package/dist/esm/storage/fs/FileStorageDriver.js +0 -323
- package/dist/esm/storage/fs/FileStorageDriver.js.map +0 -6
- package/dist/esm/storage/fs/FlatFileBlobStorageDriver.js +0 -180
- package/dist/esm/storage/fs/FlatFileBlobStorageDriver.js.map +0 -6
- package/dist/esm/storage/fs/JsonFileStorageDriver.js +0 -116
- package/dist/esm/storage/fs/JsonFileStorageDriver.js.map +0 -6
- package/dist/esm/storage/fs/WalBlobStorageDriver.js +0 -24
- package/dist/esm/storage/fs/WalBlobStorageDriver.js.map +0 -6
- package/dist/esm/storage/fs/index.js +0 -19
- package/dist/esm/storage/fs/index.js.map +0 -6
- package/dist/esm/storage/index.js +0 -8
- package/dist/esm/storage/index.js.map +0 -6
- package/dist/esm/storage/sqlite/SqliteBlobStorageDriver.js +0 -197
- package/dist/esm/storage/sqlite/SqliteBlobStorageDriver.js.map +0 -6
- package/dist/esm/storage/sqlite/SqlitePlatform.js +0 -26
- package/dist/esm/storage/sqlite/SqlitePlatform.js.map +0 -6
- package/dist/esm/storage/sqlite/SqliteStorageDriver.js +0 -409
- package/dist/esm/storage/sqlite/SqliteStorageDriver.js.map +0 -6
- package/dist/esm/storage/sqlite/SqliteStorageDriverError.js +0 -21
- package/dist/esm/storage/sqlite/SqliteStorageDriverError.js.map +0 -6
- package/dist/esm/storage/sqlite/SqliteTypes.js +0 -15
- package/dist/esm/storage/sqlite/SqliteTypes.js.map +0 -6
- package/dist/esm/storage/sqlite/SqliteUtil.js +0 -44
- package/dist/esm/storage/sqlite/SqliteUtil.js.map +0 -6
- package/dist/esm/storage/sqlite/index.js +0 -17
- package/dist/esm/storage/sqlite/index.js.map +0 -6
- package/dist/esm/storage/sqlite/platform/BunSqlite.js +0 -41
- package/dist/esm/storage/sqlite/platform/BunSqlite.js.map +0 -6
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js +0 -33
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js.map +0 -6
- package/dist/esm/time/index.js +0 -7
- package/dist/esm/time/index.js.map +0 -6
- package/dist/esm/time/startup.js +0 -10
- package/dist/esm/time/startup.js.map +0 -6
- package/dist/esm/util/runtimeChecks.js +0 -25
- package/dist/esm/util/runtimeChecks.js.map +0 -6
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Directory } from "@matter/general";
|
|
7
|
-
import { rename as fsRename, mkdir, rm, stat } from "node:fs/promises";
|
|
8
|
-
import { basename, dirname, resolve } from "node:path";
|
|
9
|
-
import { nodeCopy, nodeEntries, nodeStat } from "./fs-utils.js";
|
|
10
|
-
import { acquireDirectoryLock } from "./lock-utils.js";
|
|
11
|
-
import { NodeJsFile } from "./NodeJsFile.js";
|
|
12
|
-
class NodeJsDirectory extends Directory {
|
|
13
|
-
#fs;
|
|
14
|
-
#path;
|
|
15
|
-
#name;
|
|
16
|
-
#cachedStat;
|
|
17
|
-
constructor(fs, path, name, cachedStat) {
|
|
18
|
-
super();
|
|
19
|
-
this.#fs = fs;
|
|
20
|
-
this.#path = path;
|
|
21
|
-
this.#name = name;
|
|
22
|
-
this.#cachedStat = cachedStat;
|
|
23
|
-
}
|
|
24
|
-
get fs() {
|
|
25
|
-
return this.#fs;
|
|
26
|
-
}
|
|
27
|
-
get name() {
|
|
28
|
-
return this.#name;
|
|
29
|
-
}
|
|
30
|
-
get path() {
|
|
31
|
-
return this.#path;
|
|
32
|
-
}
|
|
33
|
-
async exists() {
|
|
34
|
-
try {
|
|
35
|
-
const s = await stat(this.#path);
|
|
36
|
-
return s.isDirectory();
|
|
37
|
-
} catch (e) {
|
|
38
|
-
if (e.code === "ENOENT") {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
throw e;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
stat() {
|
|
45
|
-
if (this.#cachedStat) {
|
|
46
|
-
return this.#cachedStat;
|
|
47
|
-
}
|
|
48
|
-
return nodeStat(this.#path);
|
|
49
|
-
}
|
|
50
|
-
async rename(newName) {
|
|
51
|
-
const newPath = resolve(dirname(this.#path), newName);
|
|
52
|
-
await fsRename(this.#path, newPath);
|
|
53
|
-
this.#path = newPath;
|
|
54
|
-
this.#name = basename(newPath);
|
|
55
|
-
}
|
|
56
|
-
async delete() {
|
|
57
|
-
await rm(this.#path, { recursive: true, force: true });
|
|
58
|
-
}
|
|
59
|
-
async *entries() {
|
|
60
|
-
yield* nodeEntries(this.#fs, this.#path, NodeJsFile, NodeJsDirectory);
|
|
61
|
-
}
|
|
62
|
-
file(name) {
|
|
63
|
-
return new NodeJsFile(this.#fs, resolve(this.#path, name), name);
|
|
64
|
-
}
|
|
65
|
-
directory(name) {
|
|
66
|
-
return new NodeJsDirectory(this.#fs, resolve(this.#path, name), name);
|
|
67
|
-
}
|
|
68
|
-
async mkdir() {
|
|
69
|
-
await mkdir(this.#path, { recursive: true });
|
|
70
|
-
}
|
|
71
|
-
async copy(source, target) {
|
|
72
|
-
await nodeCopy(this.#path, source, target);
|
|
73
|
-
}
|
|
74
|
-
async lock() {
|
|
75
|
-
await this.mkdir();
|
|
76
|
-
return acquireDirectoryLock(this.#path, this.#name);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
export {
|
|
80
|
-
NodeJsDirectory
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=NodeJsDirectory.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/fs/NodeJsDirectory.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iBAAgF;AACzF,SAAS,UAAU,UAAU,OAAO,IAAI,YAAY;AACpD,SAAS,UAAU,SAAS,eAAe;AAC3C,SAAS,UAAU,aAAa,gBAAgB;AAChD,SAAS,4BAA4B;AACrC,SAAS,kBAAkB;AAEpB,MAAM,wBAAwB,UAAU;AAAA,EAClC;AAAA,EACT;AAAA,EACA;AAAA,EACS;AAAA,EAET,YAAY,IAAgB,MAAc,MAAc,YAAkC;AACtF,UAAM;AACN,SAAK,MAAM;AACX,SAAK,QAAQ;AACb,SAAK,QAAQ;AACb,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAa,KAAK;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAa,OAAO;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,SAA2B;AAC7B,QAAI;AACA,YAAM,IAAI,MAAM,KAAK,KAAK,KAAK;AAC/B,aAAO,EAAE,YAAY;AAAA,IACzB,SAAS,GAAG;AACR,UAAK,EAA4B,SAAS,UAAU;AAChD,eAAO;AAAA,MACX;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,OAA0C;AACtC,QAAI,KAAK,aAAa;AAClB,aAAO,KAAK;AAAA,IAChB;AACA,WAAO,SAAS,KAAK,KAAK;AAAA,EAC9B;AAAA,EAEA,MAAM,OAAO,SAAgC;AACzC,UAAM,UAAU,QAAQ,QAAQ,KAAK,KAAK,GAAG,OAAO;AACpD,UAAM,SAAS,KAAK,OAAO,OAAO;AAClC,SAAK,QAAQ;AACb,SAAK,QAAQ,SAAS,OAAO;AAAA,EACjC;AAAA,EAEA,MAAM,SAAwB;AAC1B,UAAM,GAAG,KAAK,OAAO,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACzD;AAAA,EAEA,OAAO,UAA0C;AAC7C,WAAO,YAAY,KAAK,KAAK,KAAK,OAAO,YAAY,eAAe;AAAA,EACxE;AAAA,EAEA,KAAK,MAAoB;AACrB,WAAO,IAAI,WAAW,KAAK,KAAK,QAAQ,KAAK,OAAO,IAAI,GAAG,IAAI;AAAA,EACnE;AAAA,EAEA,UAAU,MAAyB;AAC/B,WAAO,IAAI,gBAAgB,KAAK,KAAK,QAAQ,KAAK,OAAO,IAAI,GAAG,IAAI;AAAA,EACxE;AAAA,EAEA,MAAM,QAAuB;AACzB,UAAM,MAAM,KAAK,OAAO,EAAE,WAAW,KAAK,CAAC;AAAA,EAC/C;AAAA,EAEA,MAAM,KAAK,QAAiC,QAAgD;AACxF,UAAM,SAAS,KAAK,OAAO,QAAQ,MAAM;AAAA,EAC7C;AAAA,EAEA,MAAe,OAAqC;AAChD,UAAM,KAAK,MAAM;AACjB,WAAO,qBAAqB,KAAK,OAAO,KAAK,KAAK;AAAA,EACtD;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import {
|
|
7
|
-
File,
|
|
8
|
-
FileHandleTracker,
|
|
9
|
-
FileTypeError
|
|
10
|
-
} from "@matter/general";
|
|
11
|
-
import { createReadStream } from "node:fs";
|
|
12
|
-
import { open as fsOpen, rename as fsRename, mkdir, rm } from "node:fs/promises";
|
|
13
|
-
import { basename, dirname, resolve } from "node:path";
|
|
14
|
-
import { nodeExists, nodeStat, toBytes, writeData } from "./fs-utils.js";
|
|
15
|
-
class NodeJsFile extends File {
|
|
16
|
-
#fs;
|
|
17
|
-
#path;
|
|
18
|
-
#name;
|
|
19
|
-
#cachedStat;
|
|
20
|
-
constructor(fs, path, name, cachedStat) {
|
|
21
|
-
super();
|
|
22
|
-
this.#fs = fs;
|
|
23
|
-
this.#path = path;
|
|
24
|
-
this.#name = name;
|
|
25
|
-
this.#cachedStat = cachedStat;
|
|
26
|
-
}
|
|
27
|
-
get fs() {
|
|
28
|
-
return this.#fs;
|
|
29
|
-
}
|
|
30
|
-
get name() {
|
|
31
|
-
return this.#name;
|
|
32
|
-
}
|
|
33
|
-
get path() {
|
|
34
|
-
return this.#path;
|
|
35
|
-
}
|
|
36
|
-
async exists() {
|
|
37
|
-
return nodeExists(this.#path);
|
|
38
|
-
}
|
|
39
|
-
stat() {
|
|
40
|
-
if (this.#cachedStat) {
|
|
41
|
-
return this.#cachedStat;
|
|
42
|
-
}
|
|
43
|
-
return nodeStat(this.#path);
|
|
44
|
-
}
|
|
45
|
-
async *readBytes() {
|
|
46
|
-
const s = await nodeStat(this.#path);
|
|
47
|
-
if (s.type === "directory") {
|
|
48
|
-
throw new FileTypeError("Cannot read bytes from a directory");
|
|
49
|
-
}
|
|
50
|
-
const stream = createReadStream(this.#path);
|
|
51
|
-
try {
|
|
52
|
-
for await (const chunk of stream) {
|
|
53
|
-
yield chunk;
|
|
54
|
-
}
|
|
55
|
-
} finally {
|
|
56
|
-
stream.destroy();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
async *readText(options) {
|
|
60
|
-
const s = await nodeStat(this.#path);
|
|
61
|
-
if (s.type === "directory") {
|
|
62
|
-
throw new FileTypeError("Cannot read text from a directory");
|
|
63
|
-
}
|
|
64
|
-
if (options?.lines) {
|
|
65
|
-
const stream = createReadStream(this.#path, { encoding: "utf8" });
|
|
66
|
-
try {
|
|
67
|
-
let carry = "";
|
|
68
|
-
for await (const chunk of stream) {
|
|
69
|
-
const parts = (carry + chunk).split("\n");
|
|
70
|
-
carry = parts.pop();
|
|
71
|
-
yield* parts;
|
|
72
|
-
}
|
|
73
|
-
yield carry;
|
|
74
|
-
} finally {
|
|
75
|
-
stream.destroy();
|
|
76
|
-
}
|
|
77
|
-
} else {
|
|
78
|
-
const stream = createReadStream(this.#path, { encoding: "utf8" });
|
|
79
|
-
try {
|
|
80
|
-
for await (const chunk of stream) {
|
|
81
|
-
yield chunk;
|
|
82
|
-
}
|
|
83
|
-
} finally {
|
|
84
|
-
stream.destroy();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async write(data) {
|
|
89
|
-
await writeData(this.#path, data);
|
|
90
|
-
}
|
|
91
|
-
async open(purpose, mode) {
|
|
92
|
-
const m = mode ?? "r";
|
|
93
|
-
const flags = m === "w" ? "w" : m === "a" ? "a" : "r";
|
|
94
|
-
if (flags === "w" || flags === "a") {
|
|
95
|
-
await mkdir(dirname(this.#path), { recursive: true });
|
|
96
|
-
}
|
|
97
|
-
const fh = await fsOpen(this.#path, flags);
|
|
98
|
-
return new NodeJsFileHandle({ fs: this.#fs, path: this.#path, name: this.#name, purpose, fh });
|
|
99
|
-
}
|
|
100
|
-
async rename(newName) {
|
|
101
|
-
const newPath = resolve(dirname(this.#path), newName);
|
|
102
|
-
await fsRename(this.#path, newPath);
|
|
103
|
-
this.#path = newPath;
|
|
104
|
-
this.#name = basename(newPath);
|
|
105
|
-
}
|
|
106
|
-
async delete() {
|
|
107
|
-
await rm(this.#path, { recursive: true, force: true });
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
class NodeJsFileHandle extends File.Handle {
|
|
111
|
-
#fs;
|
|
112
|
-
#path;
|
|
113
|
-
#name;
|
|
114
|
-
purpose;
|
|
115
|
-
#fh;
|
|
116
|
-
constructor(options) {
|
|
117
|
-
super();
|
|
118
|
-
this.#fs = options.fs;
|
|
119
|
-
this.#path = options.path;
|
|
120
|
-
this.#name = options.name;
|
|
121
|
-
this.purpose = options.purpose;
|
|
122
|
-
this.#fh = options.fh;
|
|
123
|
-
FileHandleTracker.register(this);
|
|
124
|
-
}
|
|
125
|
-
get fs() {
|
|
126
|
-
return this.#fs;
|
|
127
|
-
}
|
|
128
|
-
get name() {
|
|
129
|
-
return this.#name;
|
|
130
|
-
}
|
|
131
|
-
get path() {
|
|
132
|
-
return this.#path;
|
|
133
|
-
}
|
|
134
|
-
async exists() {
|
|
135
|
-
return nodeExists(this.#path);
|
|
136
|
-
}
|
|
137
|
-
stat() {
|
|
138
|
-
return nodeStat(this.#path);
|
|
139
|
-
}
|
|
140
|
-
async *readBytes() {
|
|
141
|
-
const stream = createReadStream(this.#path);
|
|
142
|
-
try {
|
|
143
|
-
for await (const chunk of stream) {
|
|
144
|
-
yield chunk;
|
|
145
|
-
}
|
|
146
|
-
} finally {
|
|
147
|
-
stream.destroy();
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
async *readText(options) {
|
|
151
|
-
if (options?.lines) {
|
|
152
|
-
const stream = createReadStream(this.#path, { encoding: "utf8" });
|
|
153
|
-
try {
|
|
154
|
-
let carry = "";
|
|
155
|
-
for await (const chunk of stream) {
|
|
156
|
-
const parts = (carry + chunk).split("\n");
|
|
157
|
-
carry = parts.pop();
|
|
158
|
-
yield* parts;
|
|
159
|
-
}
|
|
160
|
-
yield carry;
|
|
161
|
-
} finally {
|
|
162
|
-
stream.destroy();
|
|
163
|
-
}
|
|
164
|
-
} else {
|
|
165
|
-
const stream = createReadStream(this.#path, { encoding: "utf8" });
|
|
166
|
-
try {
|
|
167
|
-
for await (const chunk of stream) {
|
|
168
|
-
yield chunk;
|
|
169
|
-
}
|
|
170
|
-
} finally {
|
|
171
|
-
stream.destroy();
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
async write(data) {
|
|
176
|
-
await writeData(this.#path, data);
|
|
177
|
-
}
|
|
178
|
-
async open(_purpose) {
|
|
179
|
-
return this;
|
|
180
|
-
}
|
|
181
|
-
async writeHandle(data) {
|
|
182
|
-
if (typeof data === "string") {
|
|
183
|
-
await this.#fh.write(data, void 0, "utf8");
|
|
184
|
-
} else {
|
|
185
|
-
await this.#fh.write(toBytes(data));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
cursor(max, bufferSize) {
|
|
189
|
-
return new NodeJsCursor(this.#fh, max, bufferSize);
|
|
190
|
-
}
|
|
191
|
-
async truncate(size) {
|
|
192
|
-
await this.#fh.truncate(size ?? 0);
|
|
193
|
-
}
|
|
194
|
-
async fsync() {
|
|
195
|
-
await this.#fh.datasync();
|
|
196
|
-
}
|
|
197
|
-
async close() {
|
|
198
|
-
FileHandleTracker.unregister(this);
|
|
199
|
-
await this.#fh.close();
|
|
200
|
-
}
|
|
201
|
-
async rename(newName) {
|
|
202
|
-
const newPath = resolve(dirname(this.#path), newName);
|
|
203
|
-
await fsRename(this.#path, newPath);
|
|
204
|
-
this.#path = newPath;
|
|
205
|
-
this.#name = basename(newPath);
|
|
206
|
-
}
|
|
207
|
-
async delete() {
|
|
208
|
-
await rm(this.#path, { recursive: true, force: true });
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
class NodeJsCursor extends File.Cursor {
|
|
212
|
-
#fh;
|
|
213
|
-
#shared;
|
|
214
|
-
constructor(fh, max, bufferSize) {
|
|
215
|
-
super(max);
|
|
216
|
-
this.#fh = fh;
|
|
217
|
-
this.#shared = Buffer.alloc(bufferSize ?? 8192);
|
|
218
|
-
}
|
|
219
|
-
async readAt(position, length, copy) {
|
|
220
|
-
if (copy || length > this.#shared.length) {
|
|
221
|
-
const buf = Buffer.alloc(length);
|
|
222
|
-
const { bytesRead: bytesRead2 } = await this.#fh.read(buf, 0, length, position);
|
|
223
|
-
return bytesRead2 < length ? buf.subarray(0, bytesRead2) : buf;
|
|
224
|
-
}
|
|
225
|
-
const { bytesRead } = await this.#fh.read(this.#shared, 0, length, position);
|
|
226
|
-
return this.#shared.subarray(0, bytesRead);
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
export {
|
|
230
|
-
NodeJsFile
|
|
231
|
-
};
|
|
232
|
-
//# sourceMappingURL=NodeJsFile.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/fs/NodeJsFile.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OAMG;AACP,SAAS,wBAAwB;AACjC,SAAS,QAAQ,QAAQ,UAAU,UAAU,OAAO,UAAU;AAC9D,SAAS,UAAU,SAAS,eAAe;AAC3C,SAAS,YAAY,UAAU,SAAS,iBAAiB;AAElD,MAAM,mBAAmB,KAAK;AAAA,EACxB;AAAA,EACT;AAAA,EACA;AAAA,EACS;AAAA,EAET,YAAY,IAAgB,MAAc,MAAc,YAAkC;AACtF,UAAM;AACN,SAAK,MAAM;AACX,SAAK,QAAQ;AACb,SAAK,QAAQ;AACb,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAa,KAAK;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,SAA2B;AAC7B,WAAO,WAAW,KAAK,KAAK;AAAA,EAChC;AAAA,EAEA,OAA0C;AACtC,QAAI,KAAK,aAAa;AAClB,aAAO,KAAK;AAAA,IAChB;AACA,WAAO,SAAS,KAAK,KAAK;AAAA,EAC9B;AAAA,EAEA,OAAO,YAAuC;AAC1C,UAAM,IAAI,MAAM,SAAS,KAAK,KAAK;AACnC,QAAI,EAAE,SAAS,aAAa;AACxB,YAAM,IAAI,cAAc,oCAAoC;AAAA,IAChE;AACA,UAAM,SAAS,iBAAiB,KAAK,KAAK;AAC1C,QAAI;AACA,uBAAiB,SAAS,QAAQ;AAC9B,cAAM;AAAA,MACV;AAAA,IACJ,UAAE;AACE,aAAO,QAAQ;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,OAAO,SAAS,SAAuD;AACnE,UAAM,IAAI,MAAM,SAAS,KAAK,KAAK;AACnC,QAAI,EAAE,SAAS,aAAa;AACxB,YAAM,IAAI,cAAc,mCAAmC;AAAA,IAC/D;AACA,QAAI,SAAS,OAAO;AAChB,YAAM,SAAS,iBAAiB,KAAK,OAAO,EAAE,UAAU,OAAO,CAAC;AAChE,UAAI;AACA,YAAI,QAAQ;AACZ,yBAAiB,SAAS,QAAQ;AAC9B,gBAAM,SAAS,QAAQ,OAAO,MAAM,IAAI;AACxC,kBAAQ,MAAM,IAAI;AAClB,iBAAO;AAAA,QACX;AACA,cAAM;AAAA,MACV,UAAE;AACE,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ,OAAO;AACH,YAAM,SAAS,iBAAiB,KAAK,OAAO,EAAE,UAAU,OAAO,CAAC;AAChE,UAAI;AACA,yBAAiB,SAAS,QAAQ;AAC9B,gBAAM;AAAA,QACV;AAAA,MACJ,UAAE;AACE,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,MAA8F;AACtG,UAAM,UAAU,KAAK,OAAO,IAAI;AAAA,EACpC;AAAA,EAEA,MAAM,KAAK,SAAiB,MAA4C;AACpE,UAAM,IAAI,QAAQ;AAClB,UAAM,QAAQ,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAClD,QAAI,UAAU,OAAO,UAAU,KAAK;AAChC,YAAM,MAAM,QAAQ,KAAK,KAAK,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,IACxD;AACA,UAAM,KAAK,MAAM,OAAO,KAAK,OAAO,KAAK;AACzC,WAAO,IAAI,iBAAiB,EAAE,IAAI,KAAK,KAAK,MAAM,KAAK,OAAO,MAAM,KAAK,OAAO,SAAS,GAAG,CAAC;AAAA,EACjG;AAAA,EAEA,MAAM,OAAO,SAAgC;AACzC,UAAM,UAAU,QAAQ,QAAQ,KAAK,KAAK,GAAG,OAAO;AACpD,UAAM,SAAS,KAAK,OAAO,OAAO;AAClC,SAAK,QAAQ;AACb,SAAK,QAAQ,SAAS,OAAO;AAAA,EACjC;AAAA,EAEA,MAAM,SAAwB;AAC1B,UAAM,GAAG,KAAK,OAAO,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACzD;AACJ;AAEA,MAAM,yBAAyB,KAAK,OAAO;AAAA,EAC9B;AAAA,EACT;AAAA,EACA;AAAA,EACS;AAAA,EACA;AAAA,EAET,YAAY,SAAmC;AAC3C,UAAM;AACN,SAAK,MAAM,QAAQ;AACnB,SAAK,QAAQ,QAAQ;AACrB,SAAK,QAAQ,QAAQ;AACrB,SAAK,UAAU,QAAQ;AACvB,SAAK,MAAM,QAAQ;AACnB,sBAAkB,SAAS,IAAI;AAAA,EACnC;AAAA,EAEA,IAAa,KAAK;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,SAA2B;AAC7B,WAAO,WAAW,KAAK,KAAK;AAAA,EAChC;AAAA,EAEA,OAA0C;AACtC,WAAO,SAAS,KAAK,KAAK;AAAA,EAC9B;AAAA,EAEA,OAAO,YAAuC;AAC1C,UAAM,SAAS,iBAAiB,KAAK,KAAK;AAC1C,QAAI;AACA,uBAAiB,SAAS,QAAQ;AAC9B,cAAM;AAAA,MACV;AAAA,IACJ,UAAE;AACE,aAAO,QAAQ;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,OAAO,SAAS,SAAuD;AACnE,QAAI,SAAS,OAAO;AAChB,YAAM,SAAS,iBAAiB,KAAK,OAAO,EAAE,UAAU,OAAO,CAAC;AAChE,UAAI;AACA,YAAI,QAAQ;AACZ,yBAAiB,SAAS,QAAQ;AAC9B,gBAAM,SAAS,QAAQ,OAAO,MAAM,IAAI;AACxC,kBAAQ,MAAM,IAAI;AAClB,iBAAO;AAAA,QACX;AACA,cAAM;AAAA,MACV,UAAE;AACE,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ,OAAO;AACH,YAAM,SAAS,iBAAiB,KAAK,OAAO,EAAE,UAAU,OAAO,CAAC;AAChE,UAAI;AACA,yBAAiB,SAAS,QAAQ;AAC9B,gBAAM;AAAA,QACV;AAAA,MACJ,UAAE;AACE,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,MAAM,MAA8F;AACtG,UAAM,UAAU,KAAK,OAAO,IAAI;AAAA,EACpC;AAAA,EAEA,MAAM,KAAK,UAAwC;AAC/C,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,YAAY,MAAqC;AACnD,QAAI,OAAO,SAAS,UAAU;AAC1B,YAAM,KAAK,IAAI,MAAM,MAAM,QAAW,MAAM;AAAA,IAChD,OAAO;AACH,YAAM,KAAK,IAAI,MAAM,QAAQ,IAAI,CAAC;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,OAAO,KAAa,YAAkC;AAClD,WAAO,IAAI,aAAa,KAAK,KAAK,KAAK,UAAU;AAAA,EACrD;AAAA,EAEA,MAAM,SAAS,MAA8B;AACzC,UAAM,KAAK,IAAI,SAAS,QAAQ,CAAC;AAAA,EACrC;AAAA,EAEA,MAAM,QAAuB;AACzB,UAAM,KAAK,IAAI,SAAS;AAAA,EAC5B;AAAA,EAEA,MAAM,QAAuB;AACzB,sBAAkB,WAAW,IAAI;AACjC,UAAM,KAAK,IAAI,MAAM;AAAA,EACzB;AAAA,EAEA,MAAM,OAAO,SAAgC;AACzC,UAAM,UAAU,QAAQ,QAAQ,KAAK,KAAK,GAAG,OAAO;AACpD,UAAM,SAAS,KAAK,OAAO,OAAO;AAClC,SAAK,QAAQ;AACb,SAAK,QAAQ,SAAS,OAAO;AAAA,EACjC;AAAA,EAEA,MAAM,SAAwB;AAC1B,UAAM,GAAG,KAAK,OAAO,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACzD;AACJ;AAYA,MAAM,qBAAqB,KAAK,OAAO;AAAA,EAC1B;AAAA,EACA;AAAA,EAET,YAAY,IAA2C,KAAa,YAAqB;AACrF,UAAM,GAAG;AACT,SAAK,MAAM;AACX,SAAK,UAAU,OAAO,MAAM,cAAc,IAAI;AAAA,EAClD;AAAA,EAEA,MAAyB,OAAO,UAAkB,QAAgB,MAAqC;AACnG,QAAI,QAAQ,SAAS,KAAK,QAAQ,QAAQ;AACtC,YAAM,MAAM,OAAO,MAAM,MAAM;AAC/B,YAAM,EAAE,WAAAA,WAAU,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,GAAG,QAAQ,QAAQ;AAClE,aAAOA,aAAY,SAAS,IAAI,SAAS,GAAGA,UAAS,IAAI;AAAA,IAC7D;AAEA,UAAM,EAAE,UAAU,IAAI,MAAM,KAAK,IAAI,KAAK,KAAK,SAAS,GAAG,QAAQ,QAAQ;AAC3E,WAAO,KAAK,QAAQ,SAAS,GAAG,SAAS;AAAA,EAC7C;AACJ;",
|
|
5
|
-
"names": ["bytesRead"]
|
|
6
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { FileTypeError, Filesystem } from "@matter/general";
|
|
7
|
-
import { mkdir, rm } from "node:fs/promises";
|
|
8
|
-
import { tmpdir } from "node:os";
|
|
9
|
-
import { resolve } from "node:path";
|
|
10
|
-
import { NodeJsDirectory } from "./NodeJsDirectory.js";
|
|
11
|
-
import { NodeJsFile } from "./NodeJsFile.js";
|
|
12
|
-
import { nodeCopy, nodeEntries, nodeExists, nodeStat } from "./fs-utils.js";
|
|
13
|
-
class NodeJsFilesystem extends Filesystem {
|
|
14
|
-
#rootPath;
|
|
15
|
-
#tempCounter = 0;
|
|
16
|
-
constructor(workingDirectory) {
|
|
17
|
-
super();
|
|
18
|
-
this.#rootPath = workingDirectory;
|
|
19
|
-
}
|
|
20
|
-
get name() {
|
|
21
|
-
return "";
|
|
22
|
-
}
|
|
23
|
-
get path() {
|
|
24
|
-
return typeof this.#rootPath === "function" ? this.#rootPath() : this.#rootPath;
|
|
25
|
-
}
|
|
26
|
-
async exists() {
|
|
27
|
-
return nodeExists(this.path);
|
|
28
|
-
}
|
|
29
|
-
stat() {
|
|
30
|
-
return nodeStat(this.path);
|
|
31
|
-
}
|
|
32
|
-
rename() {
|
|
33
|
-
throw new FileTypeError("Cannot rename root");
|
|
34
|
-
}
|
|
35
|
-
async delete() {
|
|
36
|
-
await rm(this.path, { recursive: true, force: true });
|
|
37
|
-
}
|
|
38
|
-
async *entries() {
|
|
39
|
-
yield* nodeEntries(this, this.path, NodeJsFile, NodeJsDirectory);
|
|
40
|
-
}
|
|
41
|
-
file(name) {
|
|
42
|
-
return new NodeJsFile(this, resolve(this.path, name), name);
|
|
43
|
-
}
|
|
44
|
-
directory(name) {
|
|
45
|
-
return new NodeJsDirectory(this, resolve(this.path, name), name);
|
|
46
|
-
}
|
|
47
|
-
async mkdir() {
|
|
48
|
-
await mkdir(this.path, { recursive: true });
|
|
49
|
-
}
|
|
50
|
-
async copy(source, target) {
|
|
51
|
-
await nodeCopy(this.path, source, target);
|
|
52
|
-
}
|
|
53
|
-
tempFilename() {
|
|
54
|
-
return resolve(tmpdir(), `matter-${process.pid}-${Date.now()}-${this.#tempCounter++}`);
|
|
55
|
-
}
|
|
56
|
-
tempDirectory() {
|
|
57
|
-
return new NodeJsDirectory(this, this.tempFilename(), "");
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
export {
|
|
61
|
-
NodeJsFilesystem
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=NodeJsFilesystem.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/fs/NodeJsFilesystem.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAA0B,eAAe,kBAAuC;AAChF,SAAS,OAAO,UAAU;AAC1B,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,UAAU,aAAa,YAAY,gBAAgB;AAKrD,MAAM,yBAAyB,WAAW;AAAA,EACpC;AAAA,EACT,eAAe;AAAA,EAEf,YAAY,kBAA2C;AACnD,UAAM;AACN,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,OAAO;AACP,WAAO;AAAA,EACX;AAAA,EAEA,IAAa,OAAO;AAChB,WAAO,OAAO,KAAK,cAAc,aAAa,KAAK,UAAU,IAAI,KAAK;AAAA,EAC1E;AAAA,EAEA,MAAM,SAA2B;AAC7B,WAAO,WAAW,KAAK,IAAI;AAAA,EAC/B;AAAA,EAEA,OAAqC;AACjC,WAAO,SAAS,KAAK,IAAI;AAAA,EAC7B;AAAA,EAEA,SAAwB;AACpB,UAAM,IAAI,cAAc,oBAAoB;AAAA,EAChD;AAAA,EAEA,MAAM,SAAwB;AAC1B,UAAM,GAAG,KAAK,MAAM,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACxD;AAAA,EAEA,OAAO,UAA0C;AAC7C,WAAO,YAAY,MAAM,KAAK,MAAM,YAAY,eAAe;AAAA,EACnE;AAAA,EAEA,KAAK,MAAoB;AACrB,WAAO,IAAI,WAAW,MAAM,QAAQ,KAAK,MAAM,IAAI,GAAG,IAAI;AAAA,EAC9D;AAAA,EAEA,UAAU,MAAyB;AAC/B,WAAO,IAAI,gBAAgB,MAAM,QAAQ,KAAK,MAAM,IAAI,GAAG,IAAI;AAAA,EACnE;AAAA,EAEA,MAAM,QAAuB;AACzB,UAAM,MAAM,KAAK,MAAM,EAAE,WAAW,KAAK,CAAC;AAAA,EAC9C;AAAA,EAEA,MAAM,KAAK,QAAiC,QAAgD;AACxF,UAAM,SAAS,KAAK,MAAM,QAAQ,MAAM;AAAA,EAC5C;AAAA,EAEA,eAAuB;AACnB,WAAO,QAAQ,OAAO,GAAG,UAAU,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;AAAA,EACzF;AAAA,EAEA,gBAA2B;AACvB,WAAO,IAAI,gBAAgB,MAAM,KAAK,aAAa,GAAG,EAAE;AAAA,EAC5D;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/fs/fs-utils.js
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import {
|
|
7
|
-
FileNotFoundError,
|
|
8
|
-
FileTypeError
|
|
9
|
-
} from "@matter/general";
|
|
10
|
-
import { createWriteStream } from "node:fs";
|
|
11
|
-
import { cp, readdir, rm, stat, writeFile } from "node:fs/promises";
|
|
12
|
-
import { resolve } from "node:path";
|
|
13
|
-
import { finished } from "node:stream/promises";
|
|
14
|
-
async function nodeExists(path) {
|
|
15
|
-
try {
|
|
16
|
-
await stat(path);
|
|
17
|
-
return true;
|
|
18
|
-
} catch (e) {
|
|
19
|
-
if (e.code === "ENOENT") {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
throw e;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
async function nodeStat(path) {
|
|
26
|
-
let s;
|
|
27
|
-
try {
|
|
28
|
-
s = await stat(path);
|
|
29
|
-
} catch (e) {
|
|
30
|
-
if (e.code === "ENOENT") {
|
|
31
|
-
throw new FileNotFoundError(`Not found: ${path}`);
|
|
32
|
-
}
|
|
33
|
-
throw e;
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
size: s.size,
|
|
37
|
-
mtime: s.mtime,
|
|
38
|
-
type: s.isDirectory() ? "directory" : "file"
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
async function* nodeEntries(fs, dirPath, FileClass, DirClass) {
|
|
42
|
-
const dirents = await readdir(dirPath, { withFileTypes: true });
|
|
43
|
-
for (const dirent of dirents) {
|
|
44
|
-
const fullPath = resolve(dirPath, dirent.name);
|
|
45
|
-
const s = await stat(fullPath);
|
|
46
|
-
const cached = {
|
|
47
|
-
size: s.size,
|
|
48
|
-
mtime: s.mtime,
|
|
49
|
-
type: dirent.isDirectory() ? "directory" : "file"
|
|
50
|
-
};
|
|
51
|
-
if (dirent.isDirectory()) {
|
|
52
|
-
yield new DirClass(fs, fullPath, dirent.name, cached);
|
|
53
|
-
} else {
|
|
54
|
-
yield new FileClass(fs, fullPath, dirent.name, cached);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function resolveCopyArg(basePath, arg) {
|
|
59
|
-
if (typeof arg === "string") {
|
|
60
|
-
return resolve(basePath, arg);
|
|
61
|
-
}
|
|
62
|
-
if ("path" in arg && typeof arg.path === "string") {
|
|
63
|
-
return arg.path;
|
|
64
|
-
}
|
|
65
|
-
throw new FileTypeError("Cannot resolve path for copy argument");
|
|
66
|
-
}
|
|
67
|
-
async function nodeCopy(basePath, source, target) {
|
|
68
|
-
const srcPath = resolveCopyArg(basePath, source);
|
|
69
|
-
const dstPath = resolveCopyArg(basePath, target);
|
|
70
|
-
await cp(srcPath, dstPath, { recursive: true });
|
|
71
|
-
}
|
|
72
|
-
async function nodeDelete(path) {
|
|
73
|
-
await rm(path, { recursive: true, force: true });
|
|
74
|
-
}
|
|
75
|
-
function isBytes(value) {
|
|
76
|
-
return ArrayBuffer.isView(value) || value instanceof ArrayBuffer || value instanceof SharedArrayBuffer;
|
|
77
|
-
}
|
|
78
|
-
function toBytes(value) {
|
|
79
|
-
return value instanceof Uint8Array ? value : new Uint8Array(ArrayBuffer.isView(value) ? value.buffer : value);
|
|
80
|
-
}
|
|
81
|
-
async function streamWrite(ws, chunk) {
|
|
82
|
-
if (!ws.write(chunk)) {
|
|
83
|
-
await new Promise((resolve2) => ws.once("drain", resolve2));
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
async function writeData(path, data) {
|
|
87
|
-
if (typeof data === "string") {
|
|
88
|
-
await writeFile(path, data, "utf8");
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (isBytes(data)) {
|
|
92
|
-
await writeFile(path, toBytes(data));
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
const iter = Symbol.asyncIterator in data ? data[Symbol.asyncIterator]() : data[Symbol.iterator]();
|
|
96
|
-
const first = await iter.next();
|
|
97
|
-
if (first.done) {
|
|
98
|
-
await writeFile(path, new Uint8Array(0));
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
const isText = typeof first.value === "string";
|
|
102
|
-
const ws = createWriteStream(path, isText ? { encoding: "utf8" } : void 0);
|
|
103
|
-
try {
|
|
104
|
-
if (isText) {
|
|
105
|
-
await streamWrite(ws, first.value);
|
|
106
|
-
while (true) {
|
|
107
|
-
const next = await iter.next();
|
|
108
|
-
if (next.done) break;
|
|
109
|
-
await streamWrite(ws, "\n" + next.value);
|
|
110
|
-
}
|
|
111
|
-
} else {
|
|
112
|
-
await streamWrite(ws, toBytes(first.value));
|
|
113
|
-
while (true) {
|
|
114
|
-
const next = await iter.next();
|
|
115
|
-
if (next.done) break;
|
|
116
|
-
await streamWrite(ws, toBytes(next.value));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
ws.end();
|
|
120
|
-
await finished(ws);
|
|
121
|
-
} catch (e) {
|
|
122
|
-
ws.destroy();
|
|
123
|
-
throw e;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
export {
|
|
127
|
-
isBytes,
|
|
128
|
-
nodeCopy,
|
|
129
|
-
nodeDelete,
|
|
130
|
-
nodeEntries,
|
|
131
|
-
nodeExists,
|
|
132
|
-
nodeStat,
|
|
133
|
-
resolveCopyArg,
|
|
134
|
-
toBytes,
|
|
135
|
-
writeData
|
|
136
|
-
};
|
|
137
|
-
//# sourceMappingURL=fs-utils.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/fs/fs-utils.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["resolve"]
|
|
6
|
-
}
|
package/dist/esm/fs/index.js
DELETED
package/dist/esm/fs/index.js.map
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Logger, StorageLockError } from "@matter/general";
|
|
7
|
-
import { randomBytes } from "node:crypto";
|
|
8
|
-
import { open as fsOpen, readFile, stat, unlink, writeFile } from "node:fs/promises";
|
|
9
|
-
import { resolve } from "node:path";
|
|
10
|
-
const logger = Logger.get("NodeJsDirectoryLock");
|
|
11
|
-
const LOCK_FILE = "matter.lock";
|
|
12
|
-
const PID_FILE = "matter.pid";
|
|
13
|
-
const PROCESS_TOKEN = randomBytes(8).toString("hex");
|
|
14
|
-
async function acquireDirectoryLock(dirPath, dirName) {
|
|
15
|
-
const lockPath = resolve(dirPath, LOCK_FILE);
|
|
16
|
-
const pidPath = resolve(dirPath, PID_FILE);
|
|
17
|
-
if (!await dirExists(dirPath)) {
|
|
18
|
-
return async () => {
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
await acquireLock(lockPath, pidPath);
|
|
22
|
-
await writeFile(pidPath, `${process.pid} ${PROCESS_TOKEN}`);
|
|
23
|
-
logger.debug("Acquired storage lock for", dirName, "pid", process.pid);
|
|
24
|
-
return async () => {
|
|
25
|
-
await safeUnlink(pidPath);
|
|
26
|
-
await safeUnlink(lockPath);
|
|
27
|
-
logger.debug("Released storage lock for", dirName);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
async function acquireLock(lockPath, pidPath) {
|
|
31
|
-
try {
|
|
32
|
-
const fd = await fsOpen(lockPath, "wx");
|
|
33
|
-
await fd.close();
|
|
34
|
-
} catch (error) {
|
|
35
|
-
if (error.code !== "EEXIST") {
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
const info = await readLockInfo(pidPath);
|
|
39
|
-
if (isStale(info)) {
|
|
40
|
-
logger.info("Cleaning stale storage lock");
|
|
41
|
-
await safeUnlink(pidPath);
|
|
42
|
-
await safeUnlink(lockPath);
|
|
43
|
-
try {
|
|
44
|
-
const fd = await fsOpen(lockPath, "wx");
|
|
45
|
-
await fd.close();
|
|
46
|
-
} catch (retryError) {
|
|
47
|
-
if (retryError.code === "EEXIST") {
|
|
48
|
-
throw new StorageLockError("Storage is locked by another process (lock reclaimed during retry)");
|
|
49
|
-
}
|
|
50
|
-
throw retryError;
|
|
51
|
-
}
|
|
52
|
-
} else if (info?.pid === process.pid) {
|
|
53
|
-
throw new StorageLockError("Storage is already locked by this process");
|
|
54
|
-
} else {
|
|
55
|
-
throw new StorageLockError(`Storage is locked by another process (pid ${info?.pid})`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
function isStale(info) {
|
|
60
|
-
if (info === void 0) {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
if (info.pid === process.pid) {
|
|
64
|
-
return info.token !== PROCESS_TOKEN;
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
process.kill(info.pid, 0);
|
|
68
|
-
return false;
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if (error.code === "ESRCH") {
|
|
71
|
-
return true;
|
|
72
|
-
}
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async function readLockInfo(pidPath) {
|
|
77
|
-
try {
|
|
78
|
-
const content = await readFile(pidPath, "utf-8");
|
|
79
|
-
const parts = content.trim().split(/\s+/);
|
|
80
|
-
const pid = parseInt(parts[0], 10);
|
|
81
|
-
if (!Number.isFinite(pid) || pid <= 0) {
|
|
82
|
-
return void 0;
|
|
83
|
-
}
|
|
84
|
-
return { pid, token: parts[1] };
|
|
85
|
-
} catch {
|
|
86
|
-
return void 0;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async function dirExists(path) {
|
|
90
|
-
try {
|
|
91
|
-
const s = await stat(path);
|
|
92
|
-
return s.isDirectory();
|
|
93
|
-
} catch (e) {
|
|
94
|
-
if (e.code === "ENOENT") {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
throw e;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async function safeUnlink(path) {
|
|
101
|
-
try {
|
|
102
|
-
await unlink(path);
|
|
103
|
-
} catch (error) {
|
|
104
|
-
if (error.code !== "ENOENT") {
|
|
105
|
-
throw error;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export {
|
|
110
|
-
acquireDirectoryLock
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=lock-utils.js.map
|