memfs 4.55.0 → 4.56.2
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 +75 -2
- package/lib/fsa/index.d.ts +1 -33
- package/lib/fsa/index.js +1 -39
- package/lib/fsa/index.js.map +1 -1
- package/lib/fsa-to-node/index.d.ts +1 -2
- package/lib/fsa-to-node/index.js +2 -5
- package/lib/fsa-to-node/index.js.map +1 -1
- package/lib/index.d.ts +6 -7
- package/lib/index.js +10 -14
- package/lib/index.js.map +1 -1
- package/lib/node-to-fsa/index.d.ts +1 -7
- package/lib/node-to-fsa/index.js +1 -10
- package/lib/node-to-fsa/index.js.map +1 -1
- package/package.json +9 -3
- package/lib/constants.d.ts +0 -67
- package/lib/constants.js +0 -54
- package/lib/constants.js.map +0 -1
- package/lib/consts/AMODE.d.ts +0 -9
- package/lib/consts/AMODE.js +0 -3
- package/lib/consts/AMODE.js.map +0 -1
- package/lib/consts/FLAG.d.ts +0 -53
- package/lib/consts/FLAG.js +0 -36
- package/lib/consts/FLAG.js.map +0 -1
- package/lib/core/File.d.ts +0 -39
- package/lib/core/File.js +0 -72
- package/lib/core/File.js.map +0 -1
- package/lib/core/Link.d.ts +0 -38
- package/lib/core/Link.js +0 -105
- package/lib/core/Link.js.map +0 -1
- package/lib/core/Node.d.ts +0 -85
- package/lib/core/Node.js +0 -287
- package/lib/core/Node.js.map +0 -1
- package/lib/core/Superblock.d.ts +0 -92
- package/lib/core/Superblock.js +0 -689
- package/lib/core/Superblock.js.map +0 -1
- package/lib/core/constants.d.ts +0 -15
- package/lib/core/constants.js +0 -3
- package/lib/core/constants.js.map +0 -1
- package/lib/core/index.d.ts +0 -6
- package/lib/core/index.js +0 -15
- package/lib/core/index.js.map +0 -1
- package/lib/core/json.d.ts +0 -9
- package/lib/core/json.js +0 -35
- package/lib/core/json.js.map +0 -1
- package/lib/core/result.d.ts +0 -11
- package/lib/core/result.js +0 -11
- package/lib/core/result.js.map +0 -1
- package/lib/core/types.d.ts +0 -8
- package/lib/core/types.js +0 -3
- package/lib/core/types.js.map +0 -1
- package/lib/core/util.d.ts +0 -12
- package/lib/core/util.js +0 -74
- package/lib/core/util.js.map +0 -1
- package/lib/encoding.d.ts +0 -6
- package/lib/encoding.js +0 -20
- package/lib/encoding.js.map +0 -1
- package/lib/fsa/CoreFileSystemDirectoryHandle.d.ts +0 -73
- package/lib/fsa/CoreFileSystemDirectoryHandle.js +0 -265
- package/lib/fsa/CoreFileSystemDirectoryHandle.js.map +0 -1
- package/lib/fsa/CoreFileSystemFileHandle.d.ts +0 -25
- package/lib/fsa/CoreFileSystemFileHandle.js +0 -75
- package/lib/fsa/CoreFileSystemFileHandle.js.map +0 -1
- package/lib/fsa/CoreFileSystemHandle.d.ts +0 -34
- package/lib/fsa/CoreFileSystemHandle.js +0 -53
- package/lib/fsa/CoreFileSystemHandle.js.map +0 -1
- package/lib/fsa/CoreFileSystemObserver.d.ts +0 -10
- package/lib/fsa/CoreFileSystemObserver.js +0 -18
- package/lib/fsa/CoreFileSystemObserver.js.map +0 -1
- package/lib/fsa/CoreFileSystemSyncAccessHandle.d.ts +0 -38
- package/lib/fsa/CoreFileSystemSyncAccessHandle.js +0 -123
- package/lib/fsa/CoreFileSystemSyncAccessHandle.js.map +0 -1
- package/lib/fsa/CoreFileSystemWritableFileStream.d.ts +0 -32
- package/lib/fsa/CoreFileSystemWritableFileStream.js +0 -163
- package/lib/fsa/CoreFileSystemWritableFileStream.js.map +0 -1
- package/lib/fsa/CorePermissionStatus.d.ts +0 -9
- package/lib/fsa/CorePermissionStatus.js +0 -14
- package/lib/fsa/CorePermissionStatus.js.map +0 -1
- package/lib/fsa/FileLockManager.d.ts +0 -7
- package/lib/fsa/FileLockManager.js +0 -26
- package/lib/fsa/FileLockManager.js.map +0 -1
- package/lib/fsa/types.d.ts +0 -182
- package/lib/fsa/types.js +0 -3
- package/lib/fsa/types.js.map +0 -1
- package/lib/fsa/util.d.ts +0 -12
- package/lib/fsa/util.js +0 -45
- package/lib/fsa/util.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeCore.d.ts +0 -33
- package/lib/fsa-to-node/FsaNodeCore.js +0 -191
- package/lib/fsa-to-node/FsaNodeCore.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeDirent.d.ts +0 -19
- package/lib/fsa-to-node/FsaNodeDirent.js +0 -39
- package/lib/fsa-to-node/FsaNodeDirent.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeFs.d.ts +0 -187
- package/lib/fsa-to-node/FsaNodeFs.js +0 -831
- package/lib/fsa-to-node/FsaNodeFs.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeFsOpenFile.d.ts +0 -24
- package/lib/fsa-to-node/FsaNodeFsOpenFile.js +0 -37
- package/lib/fsa-to-node/FsaNodeFsOpenFile.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeReadStream.d.ts +0 -23
- package/lib/fsa-to-node/FsaNodeReadStream.js +0 -92
- package/lib/fsa-to-node/FsaNodeReadStream.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeStats.d.ts +0 -30
- package/lib/fsa-to-node/FsaNodeStats.js +0 -53
- package/lib/fsa-to-node/FsaNodeStats.js.map +0 -1
- package/lib/fsa-to-node/FsaNodeWriteStream.d.ts +0 -47
- package/lib/fsa-to-node/FsaNodeWriteStream.js +0 -150
- package/lib/fsa-to-node/FsaNodeWriteStream.js.map +0 -1
- package/lib/fsa-to-node/constants.d.ts +0 -3
- package/lib/fsa-to-node/constants.js +0 -3
- package/lib/fsa-to-node/constants.js.map +0 -1
- package/lib/fsa-to-node/json.d.ts +0 -2
- package/lib/fsa-to-node/json.js +0 -7
- package/lib/fsa-to-node/json.js.map +0 -1
- package/lib/fsa-to-node/types.d.ts +0 -37
- package/lib/fsa-to-node/types.js +0 -3
- package/lib/fsa-to-node/types.js.map +0 -1
- package/lib/fsa-to-node/util.d.ts +0 -4
- package/lib/fsa-to-node/util.js +0 -34
- package/lib/fsa-to-node/util.js.map +0 -1
- package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.d.ts +0 -10
- package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js +0 -62
- package/lib/fsa-to-node/worker/FsaNodeSyncAdapterWorker.js.map +0 -1
- package/lib/fsa-to-node/worker/FsaNodeSyncWorker.d.ts +0 -20
- package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js +0 -178
- package/lib/fsa-to-node/worker/FsaNodeSyncWorker.js.map +0 -1
- package/lib/fsa-to-node/worker/SyncMessenger.d.ts +0 -24
- package/lib/fsa-to-node/worker/SyncMessenger.js +0 -72
- package/lib/fsa-to-node/worker/SyncMessenger.js.map +0 -1
- package/lib/fsa-to-node/worker/constants.d.ts +0 -8
- package/lib/fsa-to-node/worker/constants.js +0 -3
- package/lib/fsa-to-node/worker/constants.js.map +0 -1
- package/lib/fsa-to-node/worker/types.d.ts +0 -17
- package/lib/fsa-to-node/worker/types.js +0 -3
- package/lib/fsa-to-node/worker/types.js.map +0 -1
- package/lib/node/Dir.d.ts +0 -26
- package/lib/node/Dir.js +0 -186
- package/lib/node/Dir.js.map +0 -1
- package/lib/node/Dirent.d.ts +0 -26
- package/lib/node/Dirent.js +0 -57
- package/lib/node/Dirent.js.map +0 -1
- package/lib/node/FileHandle.d.ts +0 -52
- package/lib/node/FileHandle.js +0 -189
- package/lib/node/FileHandle.js.map +0 -1
- package/lib/node/FsPromises.d.ts +0 -91
- package/lib/node/FsPromises.js +0 -161
- package/lib/node/FsPromises.js.map +0 -1
- package/lib/node/StatFs.d.ts +0 -19
- package/lib/node/StatFs.js +0 -34
- package/lib/node/StatFs.js.map +0 -1
- package/lib/node/Stats.d.ts +0 -41
- package/lib/node/Stats.js +0 -72
- package/lib/node/Stats.js.map +0 -1
- package/lib/node/constants.d.ts +0 -41
- package/lib/node/constants.js +0 -57
- package/lib/node/constants.js.map +0 -1
- package/lib/node/glob.d.ts +0 -5
- package/lib/node/glob.js +0 -94
- package/lib/node/glob.js.map +0 -1
- package/lib/node/lists/fsCallbackApiList.d.ts +0 -2
- package/lib/node/lists/fsCallbackApiList.js +0 -55
- package/lib/node/lists/fsCallbackApiList.js.map +0 -1
- package/lib/node/lists/fsCommonObjectsList.d.ts +0 -2
- package/lib/node/lists/fsCommonObjectsList.js +0 -19
- package/lib/node/lists/fsCommonObjectsList.js.map +0 -1
- package/lib/node/lists/fsSynchronousApiList.d.ts +0 -2
- package/lib/node/lists/fsSynchronousApiList.js +0 -49
- package/lib/node/lists/fsSynchronousApiList.js.map +0 -1
- package/lib/node/options.d.ts +0 -27
- package/lib/node/options.js +0 -112
- package/lib/node/options.js.map +0 -1
- package/lib/node/types/FsCallbackApi.d.ts +0 -143
- package/lib/node/types/FsCallbackApi.js +0 -3
- package/lib/node/types/FsCallbackApi.js.map +0 -1
- package/lib/node/types/FsCommonObjects.d.ts +0 -17
- package/lib/node/types/FsCommonObjects.js +0 -3
- package/lib/node/types/FsCommonObjects.js.map +0 -1
- package/lib/node/types/FsPromisesApi.d.ts +0 -41
- package/lib/node/types/FsPromisesApi.js +0 -3
- package/lib/node/types/FsPromisesApi.js.map +0 -1
- package/lib/node/types/FsSynchronousApi.d.ts +0 -114
- package/lib/node/types/FsSynchronousApi.js +0 -3
- package/lib/node/types/FsSynchronousApi.js.map +0 -1
- package/lib/node/types/index.d.ts +0 -7
- package/lib/node/types/index.js +0 -3
- package/lib/node/types/index.js.map +0 -1
- package/lib/node/types/misc.d.ts +0 -157
- package/lib/node/types/misc.js +0 -3
- package/lib/node/types/misc.js.map +0 -1
- package/lib/node/types/options.d.ts +0 -191
- package/lib/node/types/options.js +0 -3
- package/lib/node/types/options.js.map +0 -1
- package/lib/node/util.d.ts +0 -21
- package/lib/node/util.js +0 -297
- package/lib/node/util.js.map +0 -1
- package/lib/node/volume.d.ts +0 -395
- package/lib/node/volume.js +0 -1641
- package/lib/node/volume.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.d.ts +0 -72
- package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js +0 -217
- package/lib/node-to-fsa/NodeFileSystemDirectoryHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemFileHandle.d.ts +0 -28
- package/lib/node-to-fsa/NodeFileSystemFileHandle.js +0 -70
- package/lib/node-to-fsa/NodeFileSystemFileHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemHandle.d.ts +0 -37
- package/lib/node-to-fsa/NodeFileSystemHandle.js +0 -68
- package/lib/node-to-fsa/NodeFileSystemHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.d.ts +0 -42
- package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js +0 -97
- package/lib/node-to-fsa/NodeFileSystemSyncAccessHandle.js.map +0 -1
- package/lib/node-to-fsa/NodeFileSystemWritableFileStream.d.ts +0 -56
- package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js +0 -191
- package/lib/node-to-fsa/NodeFileSystemWritableFileStream.js.map +0 -1
- package/lib/node-to-fsa/NodePermissionStatus.d.ts +0 -8
- package/lib/node-to-fsa/NodePermissionStatus.js +0 -14
- package/lib/node-to-fsa/NodePermissionStatus.js.map +0 -1
- package/lib/node-to-fsa/types.d.ts +0 -18
- package/lib/node-to-fsa/types.js +0 -3
- package/lib/node-to-fsa/types.js.map +0 -1
- package/lib/node-to-fsa/util.d.ts +0 -12
- package/lib/node-to-fsa/util.js +0 -45
- package/lib/node-to-fsa/util.js.map +0 -1
- package/lib/node.d.ts +0 -3
- package/lib/node.js +0 -10
- package/lib/node.js.map +0 -1
- package/lib/print/index.d.ts +0 -9
- package/lib/print/index.js +0 -49
- package/lib/print/index.js.map +0 -1
- package/lib/process.d.ts +0 -11
- package/lib/process.js +0 -40
- package/lib/process.js.map +0 -1
- package/lib/queueMicrotask.d.ts +0 -2
- package/lib/queueMicrotask.js +0 -6
- package/lib/queueMicrotask.js.map +0 -1
- package/lib/snapshot/async.d.ts +0 -3
- package/lib/snapshot/async.js +0 -59
- package/lib/snapshot/async.js.map +0 -1
- package/lib/snapshot/binary.d.ts +0 -6
- package/lib/snapshot/binary.js +0 -31
- package/lib/snapshot/binary.js.map +0 -1
- package/lib/snapshot/constants.d.ts +0 -5
- package/lib/snapshot/constants.js +0 -3
- package/lib/snapshot/constants.js.map +0 -1
- package/lib/snapshot/index.d.ts +0 -5
- package/lib/snapshot/index.js +0 -8
- package/lib/snapshot/index.js.map +0 -1
- package/lib/snapshot/json.d.ts +0 -10
- package/lib/snapshot/json.js +0 -31
- package/lib/snapshot/json.js.map +0 -1
- package/lib/snapshot/shared.d.ts +0 -2
- package/lib/snapshot/shared.js +0 -6
- package/lib/snapshot/shared.js.map +0 -1
- package/lib/snapshot/sync.d.ts +0 -3
- package/lib/snapshot/sync.js +0 -59
- package/lib/snapshot/sync.js.map +0 -1
- package/lib/snapshot/types.d.ts +0 -30
- package/lib/snapshot/types.js +0 -3
- package/lib/snapshot/types.js.map +0 -1
- package/lib/vendor/node/buffer.d.ts +0 -1
- package/lib/vendor/node/buffer.js +0 -6
- package/lib/vendor/node/buffer.js.map +0 -1
- package/lib/vendor/node/events.d.ts +0 -1
- package/lib/vendor/node/events.js +0 -6
- package/lib/vendor/node/events.js.map +0 -1
- package/lib/vendor/node/fs.d.ts +0 -6
- package/lib/vendor/node/fs.js +0 -4
- package/lib/vendor/node/fs.js.map +0 -1
- package/lib/vendor/node/internal/buffer.d.ts +0 -9
- package/lib/vendor/node/internal/buffer.js +0 -13
- package/lib/vendor/node/internal/buffer.js.map +0 -1
- package/lib/vendor/node/internal/errors.d.ts +0 -31
- package/lib/vendor/node/internal/errors.js +0 -77
- package/lib/vendor/node/internal/errors.js.map +0 -1
- package/lib/vendor/node/path.d.ts +0 -1
- package/lib/vendor/node/path.js +0 -14
- package/lib/vendor/node/path.js.map +0 -1
- package/lib/vendor/node/stream.d.ts +0 -1
- package/lib/vendor/node/stream.js +0 -7
- package/lib/vendor/node/stream.js.map +0 -1
- package/lib/vendor/node/url.d.ts +0 -1
- package/lib/vendor/node/url.js +0 -6
- package/lib/vendor/node/url.js.map +0 -1
- package/lib/vendor/node/util.d.ts +0 -20
- package/lib/vendor/node/util.js +0 -112
- package/lib/vendor/node/util.js.map +0 -1
- package/src/node-to-fsa/README.md +0 -5
package/lib/core/File.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.File = void 0;
|
|
4
|
-
const constants_1 = require("../constants");
|
|
5
|
-
const { O_APPEND } = constants_1.constants;
|
|
6
|
-
/**
|
|
7
|
-
* Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.
|
|
8
|
-
*
|
|
9
|
-
* @todo Rename to `OpenFile`.
|
|
10
|
-
*/
|
|
11
|
-
class File {
|
|
12
|
-
/**
|
|
13
|
-
* Open a Link-Node pair. `node` is provided separately as that might be a different node
|
|
14
|
-
* rather the one `link` points to, because it might be a symlink.
|
|
15
|
-
* @param link
|
|
16
|
-
* @param node
|
|
17
|
-
* @param flags
|
|
18
|
-
* @param fd
|
|
19
|
-
*/
|
|
20
|
-
constructor(link, node, flags, fd) {
|
|
21
|
-
this.link = link;
|
|
22
|
-
this.node = node;
|
|
23
|
-
this.flags = flags;
|
|
24
|
-
this.fd = fd;
|
|
25
|
-
this.position = 0;
|
|
26
|
-
if (this.flags & O_APPEND)
|
|
27
|
-
this.position = this.getSize();
|
|
28
|
-
}
|
|
29
|
-
getString(encoding = 'utf8') {
|
|
30
|
-
return this.node.getString();
|
|
31
|
-
}
|
|
32
|
-
setString(str) {
|
|
33
|
-
this.node.setString(str);
|
|
34
|
-
}
|
|
35
|
-
getBuffer() {
|
|
36
|
-
return this.node.getBuffer();
|
|
37
|
-
}
|
|
38
|
-
setBuffer(buf) {
|
|
39
|
-
this.node.setBuffer(buf);
|
|
40
|
-
}
|
|
41
|
-
getSize() {
|
|
42
|
-
return this.node.getSize();
|
|
43
|
-
}
|
|
44
|
-
truncate(len) {
|
|
45
|
-
this.node.truncate(len);
|
|
46
|
-
}
|
|
47
|
-
seekTo(position) {
|
|
48
|
-
this.position = position;
|
|
49
|
-
}
|
|
50
|
-
write(buf, offset = 0, length = buf.length, position) {
|
|
51
|
-
if (typeof position !== 'number')
|
|
52
|
-
position = this.position;
|
|
53
|
-
const bytes = this.node.write(buf, offset, length, position);
|
|
54
|
-
this.position = position + bytes;
|
|
55
|
-
return bytes;
|
|
56
|
-
}
|
|
57
|
-
read(buf, offset = 0, length = buf.byteLength, position) {
|
|
58
|
-
if (typeof position !== 'number')
|
|
59
|
-
position = this.position;
|
|
60
|
-
const bytes = this.node.read(buf, offset, length, position);
|
|
61
|
-
this.position = position + bytes;
|
|
62
|
-
return bytes;
|
|
63
|
-
}
|
|
64
|
-
chmod(perm) {
|
|
65
|
-
this.node.chmod(perm);
|
|
66
|
-
}
|
|
67
|
-
chown(uid, gid) {
|
|
68
|
-
this.node.chown(uid, gid);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
exports.File = File;
|
|
72
|
-
//# sourceMappingURL=File.js.map
|
package/lib/core/File.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../src/core/File.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAKzC,MAAM,EAAE,QAAQ,EAAE,GAAG,qBAAS,CAAC;AAE/B;;;;GAIG;AACH,MAAa,IAAI;IAOf;;;;;;;OAOG;IACH,YACkB,IAAU,EACV,IAAU,EACnB,KAAa,EACb,EAAU;QAHD,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QACnB,UAAK,GAAL,KAAK,CAAQ;QACb,OAAE,GAAF,EAAE,CAAQ;QAEjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAQ,GAAG,MAAM;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,SAAiB,CAAC,EAAE,SAAiB,GAAG,CAAC,MAAM,EAAE,QAAwB;QAC1F,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CACF,GAAwC,EACxC,SAAiB,CAAC,EAClB,SAAiB,GAAG,CAAC,UAAU,EAC/B,QAAiB;QAEjB,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAW;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF;AA/ED,oBA+EC"}
|
package/lib/core/Link.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { FanOut } from 'thingies/lib/fanout';
|
|
2
|
-
import type { Node } from './Node';
|
|
3
|
-
import type { Superblock } from './Superblock';
|
|
4
|
-
export type LinkEventChildAdd = [type: 'child:add', link: Link, parent: Link];
|
|
5
|
-
export type LinkEventChildDelete = [type: 'child:del', link: Link, parent: Link];
|
|
6
|
-
export type LinkEvent = LinkEventChildAdd | LinkEventChildDelete;
|
|
7
|
-
/**
|
|
8
|
-
* Represents a hard link that points to an i-node `node`.
|
|
9
|
-
*/
|
|
10
|
-
export declare class Link {
|
|
11
|
-
readonly changes: FanOut<LinkEvent>;
|
|
12
|
-
vol: Superblock;
|
|
13
|
-
parent: Link | undefined;
|
|
14
|
-
children: Map<string, Link | undefined>;
|
|
15
|
-
private _steps;
|
|
16
|
-
node: Node;
|
|
17
|
-
ino: number;
|
|
18
|
-
length: number;
|
|
19
|
-
name: string;
|
|
20
|
-
get steps(): string[];
|
|
21
|
-
set steps(val: string[]);
|
|
22
|
-
constructor(vol: Superblock, parent: Link | undefined, name: string);
|
|
23
|
-
setNode(node: Node): void;
|
|
24
|
-
getNode(): Node;
|
|
25
|
-
createChild(name: string, node?: Node): Link;
|
|
26
|
-
setChild(name: string, link?: Link): Link;
|
|
27
|
-
deleteChild(link: Link): void;
|
|
28
|
-
getChild(name: string): Link | undefined;
|
|
29
|
-
getPath(): string;
|
|
30
|
-
getParentPath(): string;
|
|
31
|
-
getName(): string;
|
|
32
|
-
toJSON(): {
|
|
33
|
-
steps: string[];
|
|
34
|
-
ino: number;
|
|
35
|
-
children: string[];
|
|
36
|
-
};
|
|
37
|
-
syncSteps(): void;
|
|
38
|
-
}
|
package/lib/core/Link.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Link = void 0;
|
|
4
|
-
const constants_1 = require("../constants");
|
|
5
|
-
const fanout_1 = require("thingies/lib/fanout");
|
|
6
|
-
const { S_IFREG } = constants_1.constants;
|
|
7
|
-
/**
|
|
8
|
-
* Represents a hard link that points to an i-node `node`.
|
|
9
|
-
*/
|
|
10
|
-
class Link {
|
|
11
|
-
get steps() {
|
|
12
|
-
return this._steps;
|
|
13
|
-
}
|
|
14
|
-
// Recursively sync children steps, e.g. in case of dir rename
|
|
15
|
-
set steps(val) {
|
|
16
|
-
this._steps = val;
|
|
17
|
-
for (const [child, link] of this.children.entries()) {
|
|
18
|
-
if (child === '.' || child === '..') {
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
link?.syncSteps();
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
constructor(vol, parent, name) {
|
|
25
|
-
this.changes = new fanout_1.FanOut();
|
|
26
|
-
this.children = new Map();
|
|
27
|
-
// Path to this node as Array: ['usr', 'bin', 'node'].
|
|
28
|
-
this._steps = [];
|
|
29
|
-
// "i-node" number of the node.
|
|
30
|
-
this.ino = 0;
|
|
31
|
-
// Number of children.
|
|
32
|
-
this.length = 0;
|
|
33
|
-
this.vol = vol;
|
|
34
|
-
this.parent = parent;
|
|
35
|
-
this.name = name;
|
|
36
|
-
this.syncSteps();
|
|
37
|
-
}
|
|
38
|
-
setNode(node) {
|
|
39
|
-
this.node = node;
|
|
40
|
-
this.ino = node.ino;
|
|
41
|
-
}
|
|
42
|
-
getNode() {
|
|
43
|
-
return this.node;
|
|
44
|
-
}
|
|
45
|
-
createChild(name, node = this.vol.createNode(S_IFREG | 0o666)) {
|
|
46
|
-
const link = new Link(this.vol, this, name);
|
|
47
|
-
link.setNode(node);
|
|
48
|
-
if (node.isDirectory()) {
|
|
49
|
-
link.children.set('.', link);
|
|
50
|
-
link.getNode().nlink++;
|
|
51
|
-
}
|
|
52
|
-
this.setChild(name, link);
|
|
53
|
-
return link;
|
|
54
|
-
}
|
|
55
|
-
setChild(name, link = new Link(this.vol, this, name)) {
|
|
56
|
-
this.children.set(name, link);
|
|
57
|
-
link.parent = this;
|
|
58
|
-
this.length++;
|
|
59
|
-
const node = link.getNode();
|
|
60
|
-
if (node.isDirectory()) {
|
|
61
|
-
link.children.set('..', this);
|
|
62
|
-
this.getNode().nlink++;
|
|
63
|
-
}
|
|
64
|
-
this.getNode().mtime = new Date();
|
|
65
|
-
this.changes.emit(['child:add', link, this]);
|
|
66
|
-
return link;
|
|
67
|
-
}
|
|
68
|
-
deleteChild(link) {
|
|
69
|
-
const node = link.getNode();
|
|
70
|
-
if (node.isDirectory()) {
|
|
71
|
-
link.children.delete('..');
|
|
72
|
-
this.getNode().nlink--;
|
|
73
|
-
}
|
|
74
|
-
this.children.delete(link.getName());
|
|
75
|
-
this.length--;
|
|
76
|
-
this.getNode().mtime = new Date();
|
|
77
|
-
this.changes.emit(['child:del', link, this]);
|
|
78
|
-
}
|
|
79
|
-
getChild(name) {
|
|
80
|
-
this.getNode().atime = new Date();
|
|
81
|
-
return this.children.get(name);
|
|
82
|
-
}
|
|
83
|
-
getPath() {
|
|
84
|
-
return this.steps.join("/" /* PATH.SEP */);
|
|
85
|
-
}
|
|
86
|
-
getParentPath() {
|
|
87
|
-
const parent = this.steps.slice(0, -1).join("/" /* PATH.SEP */);
|
|
88
|
-
return parent ? parent : "/" /* PATH.SEP */;
|
|
89
|
-
}
|
|
90
|
-
getName() {
|
|
91
|
-
return this.steps[this.steps.length - 1];
|
|
92
|
-
}
|
|
93
|
-
toJSON() {
|
|
94
|
-
return {
|
|
95
|
-
steps: this.steps,
|
|
96
|
-
ino: this.ino,
|
|
97
|
-
children: Array.from(this.children.keys()),
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
syncSteps() {
|
|
101
|
-
this.steps = this.parent ? this.parent.steps.concat([this.name]) : [this.name];
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
exports.Link = Link;
|
|
105
|
-
//# sourceMappingURL=Link.js.map
|
package/lib/core/Link.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../../src/core/Link.ts"],"names":[],"mappings":"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"}
|
package/lib/core/Node.d.ts
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { FanOut } from 'thingies/lib/fanout';
|
|
2
|
-
import { Buffer } from '../vendor/node/internal/buffer';
|
|
3
|
-
export type NodeEventModify = [type: 'modify'];
|
|
4
|
-
export type NodeEventDelete = [type: 'delete'];
|
|
5
|
-
export type NodeEvent = NodeEventModify | NodeEventDelete;
|
|
6
|
-
/**
|
|
7
|
-
* Node in a file system (like i-node, v-node).
|
|
8
|
-
*/
|
|
9
|
-
export declare class Node {
|
|
10
|
-
readonly changes: FanOut<NodeEvent>;
|
|
11
|
-
ino: number;
|
|
12
|
-
private _uid;
|
|
13
|
-
private _gid;
|
|
14
|
-
private _atime;
|
|
15
|
-
private _mtime;
|
|
16
|
-
private _ctime;
|
|
17
|
-
buf: Buffer;
|
|
18
|
-
/** Total allocated memory capacity for this node. */
|
|
19
|
-
private capacity;
|
|
20
|
-
/** Actually used bytes to store content. */
|
|
21
|
-
private size;
|
|
22
|
-
rdev: number;
|
|
23
|
-
mode: number;
|
|
24
|
-
private _nlink;
|
|
25
|
-
symlink: string;
|
|
26
|
-
constructor(ino: number, mode?: number);
|
|
27
|
-
set ctime(ctime: Date);
|
|
28
|
-
get ctime(): Date;
|
|
29
|
-
set uid(uid: number);
|
|
30
|
-
get uid(): number;
|
|
31
|
-
set gid(gid: number);
|
|
32
|
-
get gid(): number;
|
|
33
|
-
set atime(atime: Date);
|
|
34
|
-
get atime(): Date;
|
|
35
|
-
set mtime(mtime: Date);
|
|
36
|
-
get mtime(): Date;
|
|
37
|
-
get perm(): number;
|
|
38
|
-
set perm(perm: number);
|
|
39
|
-
set nlink(nlink: number);
|
|
40
|
-
get nlink(): number;
|
|
41
|
-
getString(encoding?: BufferEncoding): string;
|
|
42
|
-
setString(str: string): void;
|
|
43
|
-
getBuffer(): Buffer;
|
|
44
|
-
setBuffer(buf: Buffer): void;
|
|
45
|
-
private _setBuf;
|
|
46
|
-
getSize(): number;
|
|
47
|
-
setModeProperty(property: number): void;
|
|
48
|
-
isFile(): boolean;
|
|
49
|
-
isDirectory(): boolean;
|
|
50
|
-
isSymlink(): boolean;
|
|
51
|
-
isCharacterDevice(): boolean;
|
|
52
|
-
makeSymlink(symlink: string): void;
|
|
53
|
-
write(buf: Buffer, off?: number, len?: number, pos?: number): number;
|
|
54
|
-
/**
|
|
55
|
-
* Read data from the file.
|
|
56
|
-
*
|
|
57
|
-
* @param buf Buffer to read data into.
|
|
58
|
-
* @param off Offset int the `buf` where to start writing data.
|
|
59
|
-
* @param len How many bytes to read. Equals to `buf.byteLength` by default.
|
|
60
|
-
* @param pos Position offset in file where to start reading. Defaults to `0`.
|
|
61
|
-
* @returns Returns the number of bytes read.
|
|
62
|
-
*/
|
|
63
|
-
read(buf: Buffer | ArrayBufferView | DataView, off?: number, len?: number, pos?: number): number;
|
|
64
|
-
truncate(len?: number): void;
|
|
65
|
-
chmod(perm: number): void;
|
|
66
|
-
chown(uid: number, gid: number): void;
|
|
67
|
-
touch(): void;
|
|
68
|
-
canRead(uid?: number, gid?: number): boolean;
|
|
69
|
-
canWrite(uid?: number, gid?: number): boolean;
|
|
70
|
-
canExecute(uid?: number, gid?: number): boolean;
|
|
71
|
-
del(): void;
|
|
72
|
-
toJSON(): {
|
|
73
|
-
ino: number;
|
|
74
|
-
uid: number;
|
|
75
|
-
gid: number;
|
|
76
|
-
atime: number;
|
|
77
|
-
mtime: number;
|
|
78
|
-
ctime: number;
|
|
79
|
-
perm: number;
|
|
80
|
-
mode: number;
|
|
81
|
-
nlink: number;
|
|
82
|
-
symlink: string;
|
|
83
|
-
data: string;
|
|
84
|
-
};
|
|
85
|
-
}
|
package/lib/core/Node.js
DELETED
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Node = void 0;
|
|
4
|
-
const fanout_1 = require("thingies/lib/fanout");
|
|
5
|
-
const process_1 = require("../process");
|
|
6
|
-
const buffer_1 = require("../vendor/node/internal/buffer");
|
|
7
|
-
const constants_1 = require("../constants");
|
|
8
|
-
const { S_IFMT, S_IFDIR, S_IFREG, S_IFLNK, S_IFCHR } = constants_1.constants;
|
|
9
|
-
const getuid = () => process_1.default.getuid?.() ?? 0;
|
|
10
|
-
const getgid = () => process_1.default.getgid?.() ?? 0;
|
|
11
|
-
const EMPTY_BUFFER = (0, buffer_1.bufferAllocUnsafe)(0);
|
|
12
|
-
/**
|
|
13
|
-
* Node in a file system (like i-node, v-node).
|
|
14
|
-
*/
|
|
15
|
-
class Node {
|
|
16
|
-
constructor(ino, mode = 0o666) {
|
|
17
|
-
this.changes = new fanout_1.FanOut();
|
|
18
|
-
// User ID and group ID.
|
|
19
|
-
this._uid = getuid();
|
|
20
|
-
this._gid = getgid();
|
|
21
|
-
this._atime = new Date();
|
|
22
|
-
this._mtime = new Date();
|
|
23
|
-
this._ctime = new Date();
|
|
24
|
-
this.buf = EMPTY_BUFFER;
|
|
25
|
-
/** Total allocated memory capacity for this node. */
|
|
26
|
-
this.capacity = 0;
|
|
27
|
-
/** Actually used bytes to store content. */
|
|
28
|
-
this.size = 0;
|
|
29
|
-
this.rdev = 0;
|
|
30
|
-
// Number of hard links pointing at this Node.
|
|
31
|
-
this._nlink = 1;
|
|
32
|
-
this.mode = mode;
|
|
33
|
-
this.ino = ino;
|
|
34
|
-
}
|
|
35
|
-
set ctime(ctime) {
|
|
36
|
-
this._ctime = ctime;
|
|
37
|
-
}
|
|
38
|
-
get ctime() {
|
|
39
|
-
return this._ctime;
|
|
40
|
-
}
|
|
41
|
-
set uid(uid) {
|
|
42
|
-
this._uid = uid;
|
|
43
|
-
this.ctime = new Date();
|
|
44
|
-
}
|
|
45
|
-
get uid() {
|
|
46
|
-
return this._uid;
|
|
47
|
-
}
|
|
48
|
-
set gid(gid) {
|
|
49
|
-
this._gid = gid;
|
|
50
|
-
this.ctime = new Date();
|
|
51
|
-
}
|
|
52
|
-
get gid() {
|
|
53
|
-
return this._gid;
|
|
54
|
-
}
|
|
55
|
-
set atime(atime) {
|
|
56
|
-
this._atime = atime;
|
|
57
|
-
}
|
|
58
|
-
get atime() {
|
|
59
|
-
return this._atime;
|
|
60
|
-
}
|
|
61
|
-
set mtime(mtime) {
|
|
62
|
-
this._mtime = mtime;
|
|
63
|
-
this.ctime = new Date();
|
|
64
|
-
}
|
|
65
|
-
get mtime() {
|
|
66
|
-
return this._mtime;
|
|
67
|
-
}
|
|
68
|
-
get perm() {
|
|
69
|
-
return this.mode & ~S_IFMT;
|
|
70
|
-
}
|
|
71
|
-
set perm(perm) {
|
|
72
|
-
this.mode = (this.mode & S_IFMT) | (perm & ~S_IFMT);
|
|
73
|
-
this.ctime = new Date();
|
|
74
|
-
}
|
|
75
|
-
set nlink(nlink) {
|
|
76
|
-
this._nlink = nlink;
|
|
77
|
-
this.ctime = new Date();
|
|
78
|
-
}
|
|
79
|
-
get nlink() {
|
|
80
|
-
return this._nlink;
|
|
81
|
-
}
|
|
82
|
-
getString(encoding = 'utf8') {
|
|
83
|
-
this.atime = new Date();
|
|
84
|
-
return this.getBuffer().toString(encoding);
|
|
85
|
-
}
|
|
86
|
-
setString(str) {
|
|
87
|
-
this._setBuf((0, buffer_1.bufferFrom)(str, 'utf8'));
|
|
88
|
-
}
|
|
89
|
-
getBuffer() {
|
|
90
|
-
this.atime = new Date();
|
|
91
|
-
if (!this.buf)
|
|
92
|
-
this.buf = (0, buffer_1.bufferAllocUnsafe)(0);
|
|
93
|
-
return (0, buffer_1.bufferFrom)(this.buf.subarray(0, this.size)); // Return a copy of used portion.
|
|
94
|
-
}
|
|
95
|
-
setBuffer(buf) {
|
|
96
|
-
const copy = (0, buffer_1.bufferFrom)(buf); // Creates a copy of data.
|
|
97
|
-
this._setBuf(copy);
|
|
98
|
-
}
|
|
99
|
-
_setBuf(buf) {
|
|
100
|
-
const size = buf.length;
|
|
101
|
-
this.buf = buf;
|
|
102
|
-
this.capacity = size;
|
|
103
|
-
this.size = size;
|
|
104
|
-
this.touch();
|
|
105
|
-
}
|
|
106
|
-
getSize() {
|
|
107
|
-
return this.size;
|
|
108
|
-
}
|
|
109
|
-
setModeProperty(property) {
|
|
110
|
-
this.mode = property;
|
|
111
|
-
}
|
|
112
|
-
isFile() {
|
|
113
|
-
return (this.mode & S_IFMT) === S_IFREG;
|
|
114
|
-
}
|
|
115
|
-
isDirectory() {
|
|
116
|
-
return (this.mode & S_IFMT) === S_IFDIR;
|
|
117
|
-
}
|
|
118
|
-
isSymlink() {
|
|
119
|
-
// return !!this.symlink;
|
|
120
|
-
return (this.mode & S_IFMT) === S_IFLNK;
|
|
121
|
-
}
|
|
122
|
-
isCharacterDevice() {
|
|
123
|
-
return (this.mode & S_IFMT) === S_IFCHR;
|
|
124
|
-
}
|
|
125
|
-
makeSymlink(symlink) {
|
|
126
|
-
this.mode = S_IFLNK | 0o666;
|
|
127
|
-
this.symlink = symlink;
|
|
128
|
-
}
|
|
129
|
-
write(buf, off = 0, len = buf.length, pos = 0) {
|
|
130
|
-
const bufLength = buf.length;
|
|
131
|
-
if (off + len > bufLength)
|
|
132
|
-
len = bufLength - off;
|
|
133
|
-
if (len <= 0)
|
|
134
|
-
return 0;
|
|
135
|
-
const requiredSize = pos + len;
|
|
136
|
-
if (requiredSize > this.capacity) {
|
|
137
|
-
let newCapacity = Math.max(this.capacity * 2, 64);
|
|
138
|
-
while (newCapacity < requiredSize)
|
|
139
|
-
newCapacity *= 2;
|
|
140
|
-
const newBuf = (0, buffer_1.bufferAllocUnsafe)(newCapacity);
|
|
141
|
-
if (this.size > 0)
|
|
142
|
-
this.buf.copy(newBuf, 0, 0, this.size);
|
|
143
|
-
this.buf = newBuf;
|
|
144
|
-
this.capacity = newCapacity;
|
|
145
|
-
}
|
|
146
|
-
if (pos > this.size)
|
|
147
|
-
this.buf.fill(0, this.size, pos);
|
|
148
|
-
buf.copy(this.buf, pos, off, off + len);
|
|
149
|
-
if (requiredSize > this.size)
|
|
150
|
-
this.size = requiredSize;
|
|
151
|
-
this.touch();
|
|
152
|
-
return len;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Read data from the file.
|
|
156
|
-
*
|
|
157
|
-
* @param buf Buffer to read data into.
|
|
158
|
-
* @param off Offset int the `buf` where to start writing data.
|
|
159
|
-
* @param len How many bytes to read. Equals to `buf.byteLength` by default.
|
|
160
|
-
* @param pos Position offset in file where to start reading. Defaults to `0`.
|
|
161
|
-
* @returns Returns the number of bytes read.
|
|
162
|
-
*/
|
|
163
|
-
read(buf, off = 0, len = buf.byteLength, pos = 0) {
|
|
164
|
-
this.atime = new Date();
|
|
165
|
-
if (pos >= this.size)
|
|
166
|
-
return 0;
|
|
167
|
-
let actualLen = len;
|
|
168
|
-
if (actualLen > buf.byteLength)
|
|
169
|
-
actualLen = buf.byteLength;
|
|
170
|
-
if (actualLen + pos > this.size)
|
|
171
|
-
actualLen = this.size - pos;
|
|
172
|
-
if (actualLen <= 0)
|
|
173
|
-
return 0;
|
|
174
|
-
const buf2 = buf instanceof buffer_1.Buffer ? buf : buffer_1.Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
175
|
-
this.buf.copy(buf2, off, pos, pos + actualLen);
|
|
176
|
-
return actualLen;
|
|
177
|
-
}
|
|
178
|
-
truncate(len = 0) {
|
|
179
|
-
if (!len) {
|
|
180
|
-
this.buf = EMPTY_BUFFER;
|
|
181
|
-
this.capacity = 0;
|
|
182
|
-
this.size = 0;
|
|
183
|
-
this.touch();
|
|
184
|
-
return;
|
|
185
|
-
}
|
|
186
|
-
if (len <= this.size)
|
|
187
|
-
this.size = len;
|
|
188
|
-
else {
|
|
189
|
-
if (len > this.capacity) {
|
|
190
|
-
let newCapacity = Math.max(this.capacity * 2, 64);
|
|
191
|
-
while (newCapacity < len)
|
|
192
|
-
newCapacity *= 2;
|
|
193
|
-
const buf = (0, buffer_1.bufferAllocUnsafe)(newCapacity);
|
|
194
|
-
if (this.size > 0)
|
|
195
|
-
this.buf.copy(buf, 0, 0, this.size);
|
|
196
|
-
buf.fill(0, this.size, len);
|
|
197
|
-
this.buf = buf;
|
|
198
|
-
this.capacity = newCapacity;
|
|
199
|
-
}
|
|
200
|
-
else
|
|
201
|
-
this.buf.fill(0, this.size, len);
|
|
202
|
-
this.size = len;
|
|
203
|
-
}
|
|
204
|
-
this.touch();
|
|
205
|
-
}
|
|
206
|
-
chmod(perm) {
|
|
207
|
-
this.mode = (this.mode & S_IFMT) | (perm & ~S_IFMT);
|
|
208
|
-
this.touch();
|
|
209
|
-
}
|
|
210
|
-
chown(uid, gid) {
|
|
211
|
-
this.uid = uid;
|
|
212
|
-
this.gid = gid;
|
|
213
|
-
this.touch();
|
|
214
|
-
}
|
|
215
|
-
touch() {
|
|
216
|
-
this.mtime = new Date();
|
|
217
|
-
this.changes.emit(['modify']);
|
|
218
|
-
}
|
|
219
|
-
canRead(uid = getuid(), gid = getgid()) {
|
|
220
|
-
if (this.perm & 4 /* S.IROTH */) {
|
|
221
|
-
return true;
|
|
222
|
-
}
|
|
223
|
-
if (gid === this.gid) {
|
|
224
|
-
if (this.perm & 32 /* S.IRGRP */) {
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (uid === this.uid) {
|
|
229
|
-
if (this.perm & 256 /* S.IRUSR */) {
|
|
230
|
-
return true;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
return false;
|
|
234
|
-
}
|
|
235
|
-
canWrite(uid = getuid(), gid = getgid()) {
|
|
236
|
-
if (this.perm & 2 /* S.IWOTH */) {
|
|
237
|
-
return true;
|
|
238
|
-
}
|
|
239
|
-
if (gid === this.gid) {
|
|
240
|
-
if (this.perm & 16 /* S.IWGRP */) {
|
|
241
|
-
return true;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
if (uid === this.uid) {
|
|
245
|
-
if (this.perm & 128 /* S.IWUSR */) {
|
|
246
|
-
return true;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return false;
|
|
250
|
-
}
|
|
251
|
-
canExecute(uid = getuid(), gid = getgid()) {
|
|
252
|
-
if (this.perm & 1 /* S.IXOTH */) {
|
|
253
|
-
return true;
|
|
254
|
-
}
|
|
255
|
-
if (gid === this.gid) {
|
|
256
|
-
if (this.perm & 8 /* S.IXGRP */) {
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
if (uid === this.uid) {
|
|
261
|
-
if (this.perm & 64 /* S.IXUSR */) {
|
|
262
|
-
return true;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
return false;
|
|
266
|
-
}
|
|
267
|
-
del() {
|
|
268
|
-
this.changes.emit(['delete']);
|
|
269
|
-
}
|
|
270
|
-
toJSON() {
|
|
271
|
-
return {
|
|
272
|
-
ino: this.ino,
|
|
273
|
-
uid: this.uid,
|
|
274
|
-
gid: this.gid,
|
|
275
|
-
atime: this.atime.getTime(),
|
|
276
|
-
mtime: this.mtime.getTime(),
|
|
277
|
-
ctime: this.ctime.getTime(),
|
|
278
|
-
perm: this.perm,
|
|
279
|
-
mode: this.mode,
|
|
280
|
-
nlink: this.nlink,
|
|
281
|
-
symlink: this.symlink,
|
|
282
|
-
data: this.getString(),
|
|
283
|
-
};
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
exports.Node = Node;
|
|
287
|
-
//# sourceMappingURL=Node.js.map
|
package/lib/core/Node.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../src/core/Node.ts"],"names":[],"mappings":"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"}
|