@jsonjoy.com/json-pack 1.19.0 → 1.21.0

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.
Files changed (130) hide show
  1. package/lib/JsonPackMpint.d.ts +8 -0
  2. package/lib/JsonPackMpint.js +74 -0
  3. package/lib/JsonPackMpint.js.map +1 -0
  4. package/lib/json/JsonEncoder.js +9 -3
  5. package/lib/json/JsonEncoder.js.map +1 -1
  6. package/lib/nfs/v4/Nfsv4Decoder.d.ts +14 -10
  7. package/lib/nfs/v4/Nfsv4Decoder.js +156 -74
  8. package/lib/nfs/v4/Nfsv4Decoder.js.map +1 -1
  9. package/lib/nfs/v4/Nfsv4Encoder.d.ts +4 -91
  10. package/lib/nfs/v4/Nfsv4Encoder.js +7 -823
  11. package/lib/nfs/v4/Nfsv4Encoder.js.map +1 -1
  12. package/lib/nfs/v4/Nfsv4FullEncoder.d.ts +32 -0
  13. package/lib/nfs/v4/Nfsv4FullEncoder.js +72 -0
  14. package/lib/nfs/v4/Nfsv4FullEncoder.js.map +1 -0
  15. package/lib/nfs/v4/attributes.d.ts +17 -0
  16. package/lib/nfs/v4/attributes.js +203 -0
  17. package/lib/nfs/v4/attributes.js.map +1 -0
  18. package/lib/nfs/v4/builder.d.ts +60 -0
  19. package/lib/nfs/v4/builder.js +187 -0
  20. package/lib/nfs/v4/builder.js.map +1 -0
  21. package/lib/nfs/v4/client/NfsFsDir.d.ts +20 -0
  22. package/lib/nfs/v4/client/NfsFsDir.js +129 -0
  23. package/lib/nfs/v4/client/NfsFsDir.js.map +1 -0
  24. package/lib/nfs/v4/client/NfsFsDirent.d.ts +14 -0
  25. package/lib/nfs/v4/client/NfsFsDirent.js +32 -0
  26. package/lib/nfs/v4/client/NfsFsDirent.js.map +1 -0
  27. package/lib/nfs/v4/client/NfsFsFileHandle.d.ts +34 -0
  28. package/lib/nfs/v4/client/NfsFsFileHandle.js +268 -0
  29. package/lib/nfs/v4/client/NfsFsFileHandle.js.map +1 -0
  30. package/lib/nfs/v4/client/NfsFsStats.d.ts +31 -0
  31. package/lib/nfs/v4/client/NfsFsStats.js +49 -0
  32. package/lib/nfs/v4/client/NfsFsStats.js.map +1 -0
  33. package/lib/nfs/v4/client/Nfsv4FsClient.d.ts +54 -0
  34. package/lib/nfs/v4/client/Nfsv4FsClient.js +812 -0
  35. package/lib/nfs/v4/client/Nfsv4FsClient.js.map +1 -0
  36. package/lib/nfs/v4/client/Nfsv4TcpClient.d.ts +41 -0
  37. package/lib/nfs/v4/client/Nfsv4TcpClient.js +216 -0
  38. package/lib/nfs/v4/client/Nfsv4TcpClient.js.map +1 -0
  39. package/lib/nfs/v4/client/types.d.ts +9 -0
  40. package/lib/nfs/v4/client/types.js +3 -0
  41. package/lib/nfs/v4/client/types.js.map +1 -0
  42. package/lib/nfs/v4/constants.d.ts +3 -0
  43. package/lib/nfs/v4/constants.js +4 -0
  44. package/lib/nfs/v4/constants.js.map +1 -1
  45. package/lib/nfs/v4/format.d.ts +23 -0
  46. package/lib/nfs/v4/format.js +870 -0
  47. package/lib/nfs/v4/format.js.map +1 -0
  48. package/lib/nfs/v4/index.d.ts +3 -1
  49. package/lib/nfs/v4/index.js +3 -1
  50. package/lib/nfs/v4/index.js.map +1 -1
  51. package/lib/nfs/v4/messages.d.ts +208 -90
  52. package/lib/nfs/v4/messages.js +585 -1
  53. package/lib/nfs/v4/messages.js.map +1 -1
  54. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.d.ts +11 -0
  55. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js +155 -0
  56. package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js.map +1 -0
  57. package/lib/nfs/v4/server/Nfsv4Connection.d.ts +42 -0
  58. package/lib/nfs/v4/server/Nfsv4Connection.js +160 -0
  59. package/lib/nfs/v4/server/Nfsv4Connection.js.map +1 -0
  60. package/lib/nfs/v4/server/Nfsv4TcpServer.d.ts +26 -0
  61. package/lib/nfs/v4/server/Nfsv4TcpServer.js +91 -0
  62. package/lib/nfs/v4/server/Nfsv4TcpServer.js.map +1 -0
  63. package/lib/nfs/v4/server/operations/ByteRangeLock.d.ts +11 -0
  64. package/lib/nfs/v4/server/operations/ByteRangeLock.js +21 -0
  65. package/lib/nfs/v4/server/operations/ByteRangeLock.js.map +1 -0
  66. package/lib/nfs/v4/server/operations/ClientRecord.d.ts +13 -0
  67. package/lib/nfs/v4/server/operations/ClientRecord.js +17 -0
  68. package/lib/nfs/v4/server/operations/ClientRecord.js.map +1 -0
  69. package/lib/nfs/v4/server/operations/FilesystemStats.d.ts +9 -0
  70. package/lib/nfs/v4/server/operations/FilesystemStats.js +15 -0
  71. package/lib/nfs/v4/server/operations/FilesystemStats.js.map +1 -0
  72. package/lib/nfs/v4/server/operations/LockOwnerState.d.ts +9 -0
  73. package/lib/nfs/v4/server/operations/LockOwnerState.js +15 -0
  74. package/lib/nfs/v4/server/operations/LockOwnerState.js.map +1 -0
  75. package/lib/nfs/v4/server/operations/LockStateid.d.ts +10 -0
  76. package/lib/nfs/v4/server/operations/LockStateid.js +22 -0
  77. package/lib/nfs/v4/server/operations/LockStateid.js.map +1 -0
  78. package/lib/nfs/v4/server/operations/Nfsv4Operations.d.ts +44 -0
  79. package/lib/nfs/v4/server/operations/Nfsv4Operations.js +3 -0
  80. package/lib/nfs/v4/server/operations/Nfsv4Operations.js.map +1 -0
  81. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.d.ts +42 -0
  82. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js +159 -0
  83. package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js.map +1 -0
  84. package/lib/nfs/v4/server/operations/OpenFileState.d.ts +14 -0
  85. package/lib/nfs/v4/server/operations/OpenFileState.js +17 -0
  86. package/lib/nfs/v4/server/operations/OpenFileState.js.map +1 -0
  87. package/lib/nfs/v4/server/operations/OpenOwnerState.d.ts +9 -0
  88. package/lib/nfs/v4/server/operations/OpenOwnerState.js +15 -0
  89. package/lib/nfs/v4/server/operations/OpenOwnerState.js.map +1 -0
  90. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.d.ts +99 -0
  91. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js +1400 -0
  92. package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js.map +1 -0
  93. package/lib/nfs/v4/server/operations/node/attrs.d.ts +5 -0
  94. package/lib/nfs/v4/server/operations/node/attrs.js +262 -0
  95. package/lib/nfs/v4/server/operations/node/attrs.js.map +1 -0
  96. package/lib/nfs/v4/server/operations/node/fh.d.ts +28 -0
  97. package/lib/nfs/v4/server/operations/node/fh.js +147 -0
  98. package/lib/nfs/v4/server/operations/node/fh.js.map +1 -0
  99. package/lib/nfs/v4/server/operations/node/util.d.ts +4 -0
  100. package/lib/nfs/v4/server/operations/node/util.js +17 -0
  101. package/lib/nfs/v4/server/operations/node/util.js.map +1 -0
  102. package/lib/nfs/v4/server/types.d.ts +4 -0
  103. package/lib/nfs/v4/server/types.js +3 -0
  104. package/lib/nfs/v4/server/types.js.map +1 -0
  105. package/lib/nfs/v4/server/util.d.ts +6 -0
  106. package/lib/nfs/v4/server/util.js +184 -0
  107. package/lib/nfs/v4/server/util.js.map +1 -0
  108. package/lib/nfs/v4/structs.d.ts +106 -51
  109. package/lib/nfs/v4/structs.js +237 -16
  110. package/lib/nfs/v4/structs.js.map +1 -1
  111. package/lib/rm/RmRecordDecoder.js.map +1 -1
  112. package/lib/rm/RmRecordEncoder.d.ts +2 -0
  113. package/lib/rm/RmRecordEncoder.js +25 -0
  114. package/lib/rm/RmRecordEncoder.js.map +1 -1
  115. package/lib/rpc/RpcMessageDecoder.js +3 -1
  116. package/lib/rpc/RpcMessageDecoder.js.map +1 -1
  117. package/lib/ssh/SshDecoder.d.ts +20 -0
  118. package/lib/ssh/SshDecoder.js +87 -0
  119. package/lib/ssh/SshDecoder.js.map +1 -0
  120. package/lib/ssh/SshEncoder.d.ts +27 -0
  121. package/lib/ssh/SshEncoder.js +144 -0
  122. package/lib/ssh/SshEncoder.js.map +1 -0
  123. package/lib/ssh/index.d.ts +2 -0
  124. package/lib/ssh/index.js +6 -0
  125. package/lib/ssh/index.js.map +1 -0
  126. package/lib/xdr/types.d.ts +6 -0
  127. package/package.json +4 -2
  128. package/lib/nfs/v4/FullNfsv4Encoder.d.ts +0 -28
  129. package/lib/nfs/v4/FullNfsv4Encoder.js +0 -73
  130. package/lib/nfs/v4/FullNfsv4Encoder.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/nfs/v4/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type * as misc from 'memfs/lib/node/types/misc';
2
+ import type { Nfsv4Client } from './types';
3
+ import * as msg from '../messages';
4
+ export declare class NfsFsDir implements misc.IDir {
5
+ readonly path: string;
6
+ private readonly nfs;
7
+ private readonly operations;
8
+ private entries;
9
+ private position;
10
+ private closed;
11
+ constructor(path: string, nfs: Nfsv4Client, operations: msg.Nfsv4Request[]);
12
+ private ensureLoaded;
13
+ close(): Promise<void>;
14
+ close(callback?: (err?: Error) => void): Promise<void>;
15
+ closeSync(): void;
16
+ read(): Promise<misc.IDirent | null>;
17
+ read(callback?: (err: Error | null, dir?: misc.IDirent | null) => void): Promise<misc.IDirent | null>;
18
+ readSync(): misc.IDirent | null;
19
+ [Symbol.asyncIterator](): AsyncIterableIterator<misc.IDirent>;
20
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsFsDir = void 0;
4
+ const NfsFsDirent_1 = require("./NfsFsDirent");
5
+ const builder_1 = require("../builder");
6
+ const Reader_1 = require("@jsonjoy.com/buffers/lib/Reader");
7
+ const XdrDecoder_1 = require("../../../xdr/XdrDecoder");
8
+ class NfsFsDir {
9
+ constructor(path, nfs, operations) {
10
+ this.path = path;
11
+ this.nfs = nfs;
12
+ this.operations = operations;
13
+ this.entries = [];
14
+ this.position = 0;
15
+ this.closed = false;
16
+ }
17
+ async ensureLoaded() {
18
+ if (this.entries.length > 0 || this.closed)
19
+ return;
20
+ const attrNums = [1];
21
+ const attrMask = [];
22
+ for (const attrNum of attrNums) {
23
+ const wordIndex = Math.floor(attrNum / 32);
24
+ const bitIndex = attrNum % 32;
25
+ while (attrMask.length <= wordIndex)
26
+ attrMask.push(0);
27
+ attrMask[wordIndex] |= 1 << bitIndex;
28
+ }
29
+ const operations = [...this.operations];
30
+ operations.push(builder_1.nfs.READDIR(attrMask));
31
+ const response = await this.nfs.compound(operations);
32
+ if (response.status !== 0)
33
+ throw new Error(`Failed to read directory: ${response.status}`);
34
+ const readdirRes = response.resarray[response.resarray.length - 1];
35
+ if (readdirRes.status !== 0 || !readdirRes.resok)
36
+ throw new Error(`Failed to read directory: ${readdirRes.status}`);
37
+ const entryList = readdirRes.resok.entries;
38
+ for (let i = 0; i < entryList.length; i++) {
39
+ const entry = entryList[i];
40
+ const name = entry.name;
41
+ const fattr = entry.attrs;
42
+ const reader = new Reader_1.Reader();
43
+ reader.reset(fattr.attrVals);
44
+ const xdr = new XdrDecoder_1.XdrDecoder(reader);
45
+ let fileType = 1;
46
+ const returnedMask = fattr.attrmask.mask;
47
+ for (let i = 0; i < returnedMask.length; i++) {
48
+ const word = returnedMask[i];
49
+ if (!word)
50
+ continue;
51
+ for (let bit = 0; bit < 32; bit++) {
52
+ if (!(word & (1 << bit)))
53
+ continue;
54
+ const attrNum = i * 32 + bit;
55
+ if (attrNum === 1) {
56
+ fileType = xdr.readUnsignedInt();
57
+ }
58
+ }
59
+ }
60
+ this.entries.push(new NfsFsDirent_1.NfsFsDirent(name, fileType));
61
+ }
62
+ }
63
+ async close(callback) {
64
+ this.closed = true;
65
+ this.entries = [];
66
+ this.position = 0;
67
+ if (callback) {
68
+ try {
69
+ callback();
70
+ }
71
+ catch (err) {
72
+ callback(err);
73
+ }
74
+ }
75
+ }
76
+ closeSync() {
77
+ this.closed = true;
78
+ this.entries = [];
79
+ this.position = 0;
80
+ }
81
+ async read(callback) {
82
+ try {
83
+ if (this.closed) {
84
+ const err = new Error('Directory is closed');
85
+ if (callback) {
86
+ callback(err, null);
87
+ return null;
88
+ }
89
+ throw err;
90
+ }
91
+ await this.ensureLoaded();
92
+ if (this.position >= this.entries.length) {
93
+ if (callback) {
94
+ callback(null, null);
95
+ }
96
+ return null;
97
+ }
98
+ const entry = this.entries[this.position++];
99
+ if (callback) {
100
+ callback(null, entry);
101
+ }
102
+ return entry;
103
+ }
104
+ catch (err) {
105
+ if (callback) {
106
+ callback(err, null);
107
+ return null;
108
+ }
109
+ throw err;
110
+ }
111
+ }
112
+ readSync() {
113
+ if (this.closed) {
114
+ throw new Error('Directory is closed');
115
+ }
116
+ if (this.position >= this.entries.length) {
117
+ return null;
118
+ }
119
+ return this.entries[this.position++];
120
+ }
121
+ async *[Symbol.asyncIterator]() {
122
+ await this.ensureLoaded();
123
+ for (const entry of this.entries) {
124
+ yield entry;
125
+ }
126
+ }
127
+ }
128
+ exports.NfsFsDir = NfsFsDir;
129
+ //# sourceMappingURL=NfsFsDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsFsDir.js","sourceRoot":"","sources":["../../../../src/nfs/v4/client/NfsFsDir.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type * as misc from 'memfs/lib/node/types/misc';
2
+ import { Nfsv4FType } from '../constants';
3
+ export declare class NfsFsDirent implements misc.IDirent {
4
+ name: string;
5
+ private type;
6
+ constructor(name: string, type: Nfsv4FType);
7
+ isDirectory(): boolean;
8
+ isFile(): boolean;
9
+ isBlockDevice(): boolean;
10
+ isCharacterDevice(): boolean;
11
+ isSymbolicLink(): boolean;
12
+ isFIFO(): boolean;
13
+ isSocket(): boolean;
14
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsFsDirent = void 0;
4
+ class NfsFsDirent {
5
+ constructor(name, type) {
6
+ this.name = name;
7
+ this.type = type;
8
+ }
9
+ isDirectory() {
10
+ return this.type === 2;
11
+ }
12
+ isFile() {
13
+ return this.type === 1;
14
+ }
15
+ isBlockDevice() {
16
+ return this.type === 3;
17
+ }
18
+ isCharacterDevice() {
19
+ return this.type === 4;
20
+ }
21
+ isSymbolicLink() {
22
+ return this.type === 5;
23
+ }
24
+ isFIFO() {
25
+ return this.type === 7;
26
+ }
27
+ isSocket() {
28
+ return this.type === 6;
29
+ }
30
+ }
31
+ exports.NfsFsDirent = NfsFsDirent;
32
+ //# sourceMappingURL=NfsFsDirent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsFsDirent.js","sourceRoot":"","sources":["../../../../src/nfs/v4/client/NfsFsDirent.ts"],"names":[],"mappings":";;;AAMA,MAAa,WAAW;IACtB,YACS,IAAY,EACX,IAAgB;QADjB,SAAI,GAAJ,IAAI,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAY;IACvB,CAAC;IAEJ,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,MAAuB,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,MAAuB,CAAC;IAC1C,CAAC;CACF;AAjCD,kCAiCC"}
@@ -0,0 +1,34 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { EventEmitter } from 'events';
4
+ import * as structs from '../structs';
5
+ import type * as misc from 'memfs/lib/node/types/misc';
6
+ import type * as opts from 'memfs/lib/node/types/options';
7
+ import type { Nfsv4FsClient } from './Nfsv4FsClient';
8
+ export declare class NfsFsFileHandle extends EventEmitter implements misc.IFileHandle {
9
+ readonly path: string;
10
+ private readonly client;
11
+ private readonly stateid;
12
+ private readonly openOwner;
13
+ readonly fd: number;
14
+ private closed;
15
+ constructor(fd: number, path: string, client: Nfsv4FsClient, stateid: structs.Nfsv4Stateid, openOwner: structs.Nfsv4OpenOwner);
16
+ getAsyncId(): number;
17
+ close(): Promise<void>;
18
+ stat(options?: opts.IStatOptions): Promise<misc.IStats>;
19
+ appendFile(data: misc.TData, options?: opts.IAppendFileOptions | string): Promise<void>;
20
+ chmod(mode: misc.TMode): Promise<void>;
21
+ chown(uid: number, gid: number): Promise<void>;
22
+ datasync(): Promise<void>;
23
+ read(buffer: Buffer | Uint8Array, offset: number, length: number, position?: number | null): Promise<misc.TFileHandleReadResult>;
24
+ readFile(options?: opts.IReadFileOptions | string): Promise<misc.TDataOut>;
25
+ truncate(len?: number): Promise<void>;
26
+ utimes(atime: misc.TTime, mtime: misc.TTime): Promise<void>;
27
+ write(buffer: Buffer | ArrayBufferView | DataView, offset?: number, length?: number, position?: number | null): Promise<misc.TFileHandleWriteResult>;
28
+ writeFile(data: misc.TData, options?: opts.IWriteFileOptions): Promise<void>;
29
+ readv(buffers: ArrayBufferView[], position?: number | null): Promise<misc.TFileHandleReadvResult>;
30
+ writev(buffers: ArrayBufferView[], position?: number | null): Promise<misc.TFileHandleWritevResult>;
31
+ readableWebStream(options?: opts.IReadableWebStreamOptions): ReadableStream;
32
+ createReadStream(options?: opts.IFileHandleReadStreamOptions): misc.IReadStream;
33
+ createWriteStream(options?: opts.IFileHandleWriteStreamOptions): misc.IWriteStream;
34
+ }
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsFsFileHandle = void 0;
4
+ const events_1 = require("events");
5
+ const stream_1 = require("stream");
6
+ const builder_1 = require("../builder");
7
+ class NfsFsFileHandle extends events_1.EventEmitter {
8
+ constructor(fd, path, client, stateid, openOwner) {
9
+ super();
10
+ this.path = path;
11
+ this.client = client;
12
+ this.stateid = stateid;
13
+ this.openOwner = openOwner;
14
+ this.closed = false;
15
+ this.fd = fd;
16
+ }
17
+ getAsyncId() {
18
+ return this.fd;
19
+ }
20
+ async close() {
21
+ if (this.closed)
22
+ return;
23
+ this.closed = true;
24
+ await this.client.closeStateid(this.openOwner, this.stateid);
25
+ this.emit('close');
26
+ }
27
+ async stat(options) {
28
+ if (this.closed)
29
+ throw new Error('File handle is closed');
30
+ return this.client.stat(this.path, options);
31
+ }
32
+ async appendFile(data, options) {
33
+ if (this.closed)
34
+ throw new Error('File handle is closed');
35
+ return this.client.appendFile(this.path, data, options);
36
+ }
37
+ async chmod(mode) {
38
+ if (this.closed)
39
+ throw new Error('File handle is closed');
40
+ return this.client.chmod(this.path, mode);
41
+ }
42
+ async chown(uid, gid) {
43
+ if (this.closed)
44
+ throw new Error('File handle is closed');
45
+ return this.client.chown(this.path, uid, gid);
46
+ }
47
+ async datasync() {
48
+ if (this.closed)
49
+ throw new Error('File handle is closed');
50
+ }
51
+ async read(buffer, offset, length, position) {
52
+ if (this.closed)
53
+ throw new Error('File handle is closed');
54
+ const readPos = position !== null && position !== undefined ? BigInt(position) : BigInt(0);
55
+ const readOps = [builder_1.nfs.READ(readPos, length, this.stateid)];
56
+ const response = await this.client.fs.compound(readOps);
57
+ if (response.status !== 0) {
58
+ throw new Error(`Failed to read file: ${response.status}`);
59
+ }
60
+ const readRes = response.resarray[0];
61
+ if (readRes.status !== 0 || !readRes.resok) {
62
+ throw new Error(`Failed to read file: ${readRes.status}`);
63
+ }
64
+ const data = readRes.resok.data;
65
+ const bytesToCopy = Math.min(data.length, length);
66
+ for (let i = 0; i < bytesToCopy; i++) {
67
+ buffer[offset + i] = data[i];
68
+ }
69
+ return { bytesRead: bytesToCopy, buffer };
70
+ }
71
+ async readFile(options) {
72
+ if (this.closed)
73
+ throw new Error('File handle is closed');
74
+ return this.client.readFile(this.path, options);
75
+ }
76
+ async truncate(len) {
77
+ if (this.closed)
78
+ throw new Error('File handle is closed');
79
+ return this.client.truncate(this.path, len);
80
+ }
81
+ async utimes(atime, mtime) {
82
+ if (this.closed)
83
+ throw new Error('File handle is closed');
84
+ return this.client.utimes(this.path, atime, mtime);
85
+ }
86
+ async write(buffer, offset, length, position) {
87
+ if (this.closed)
88
+ throw new Error('File handle is closed');
89
+ const actualOffset = offset ?? 0;
90
+ const actualLength = length ?? buffer.byteLength - actualOffset;
91
+ const writePos = position !== null && position !== undefined ? BigInt(position) : BigInt(0);
92
+ let data;
93
+ if (buffer instanceof Uint8Array) {
94
+ data = Uint8Array.prototype.slice.call(buffer, actualOffset, actualOffset + actualLength);
95
+ }
96
+ else if (Buffer.isBuffer(buffer)) {
97
+ data = new Uint8Array(buffer.buffer, buffer.byteOffset + actualOffset, actualLength);
98
+ }
99
+ else if (buffer instanceof DataView) {
100
+ data = new Uint8Array(buffer.buffer, buffer.byteOffset + actualOffset, actualLength);
101
+ }
102
+ else {
103
+ data = new Uint8Array(buffer.buffer, buffer.byteOffset + actualOffset, actualLength);
104
+ }
105
+ const writeOps = [builder_1.nfs.WRITE(this.stateid, writePos, 2, data)];
106
+ const response = await this.client.fs.compound(writeOps);
107
+ if (response.status !== 0) {
108
+ throw new Error(`Failed to write file: ${response.status}`);
109
+ }
110
+ const writeRes = response.resarray[0];
111
+ if (writeRes.status !== 0 || !writeRes.resok) {
112
+ throw new Error(`Failed to write file: ${writeRes.status}`);
113
+ }
114
+ const resultBuffer = buffer instanceof Uint8Array || Buffer.isBuffer(buffer) ? buffer : new Uint8Array(buffer.buffer);
115
+ return { bytesWritten: writeRes.resok.count, buffer: resultBuffer };
116
+ }
117
+ async writeFile(data, options) {
118
+ if (this.closed)
119
+ throw new Error('File handle is closed');
120
+ return this.client.writeFile(this.path, data, options);
121
+ }
122
+ async readv(buffers, position) {
123
+ if (this.closed)
124
+ throw new Error('File handle is closed');
125
+ let currentPosition = position !== null && position !== undefined ? BigInt(position) : BigInt(0);
126
+ let totalBytesRead = 0;
127
+ for (const buffer of buffers) {
128
+ const readOps = [builder_1.nfs.READ(currentPosition, buffer.byteLength, this.stateid)];
129
+ const response = await this.client.fs.compound(readOps);
130
+ if (response.status !== 0) {
131
+ throw new Error(`Failed to read file: ${response.status}`);
132
+ }
133
+ const readRes = response.resarray[0];
134
+ if (readRes.status !== 0 || !readRes.resok) {
135
+ throw new Error(`Failed to read file: ${readRes.status}`);
136
+ }
137
+ const data = readRes.resok.data;
138
+ const bytesToCopy = Math.min(data.length, buffer.byteLength);
139
+ const uint8View = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
140
+ for (let i = 0; i < bytesToCopy; i++) {
141
+ uint8View[i] = data[i];
142
+ }
143
+ totalBytesRead += bytesToCopy;
144
+ currentPosition += BigInt(bytesToCopy);
145
+ if (readRes.resok.eof || bytesToCopy < buffer.byteLength)
146
+ break;
147
+ }
148
+ return { bytesRead: totalBytesRead, buffers };
149
+ }
150
+ async writev(buffers, position) {
151
+ if (this.closed)
152
+ throw new Error('File handle is closed');
153
+ let currentPosition = position !== null && position !== undefined ? BigInt(position) : BigInt(0);
154
+ let totalBytesWritten = 0;
155
+ for (const buffer of buffers) {
156
+ const data = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
157
+ const writeOps = [builder_1.nfs.WRITE(this.stateid, currentPosition, 2, data)];
158
+ const response = await this.client.fs.compound(writeOps);
159
+ if (response.status !== 0) {
160
+ throw new Error(`Failed to write file: ${response.status}`);
161
+ }
162
+ const writeRes = response.resarray[0];
163
+ if (writeRes.status !== 0 || !writeRes.resok) {
164
+ throw new Error(`Failed to write file: ${writeRes.status}`);
165
+ }
166
+ totalBytesWritten += writeRes.resok.count;
167
+ currentPosition += BigInt(writeRes.resok.count);
168
+ }
169
+ return { bytesWritten: totalBytesWritten, buffers };
170
+ }
171
+ readableWebStream(options) {
172
+ if (this.closed)
173
+ throw new Error('File handle is closed');
174
+ const stream = this.createReadStream(options);
175
+ return stream_1.Readable.toWeb(stream);
176
+ }
177
+ createReadStream(options) {
178
+ if (this.closed)
179
+ throw new Error('File handle is closed');
180
+ const start = options?.start ?? 0;
181
+ const end = options?.end;
182
+ const highWaterMark = options?.highWaterMark ?? 64 * 1024;
183
+ let position = typeof start === 'number' ? start : 0;
184
+ const endPosition = typeof end === 'number' ? end : Infinity;
185
+ let reading = false;
186
+ const self = this;
187
+ const stream = new stream_1.Readable({
188
+ highWaterMark,
189
+ async read(size) {
190
+ if (reading)
191
+ return;
192
+ reading = true;
193
+ try {
194
+ while (true) {
195
+ if (position >= endPosition) {
196
+ this.push(null);
197
+ break;
198
+ }
199
+ const bytesToRead = Math.min(size, endPosition - position);
200
+ if (bytesToRead <= 0) {
201
+ this.push(null);
202
+ break;
203
+ }
204
+ const buffer = Buffer.alloc(bytesToRead);
205
+ const result = await self.read(buffer, 0, bytesToRead, position);
206
+ if (result.bytesRead === 0) {
207
+ this.push(null);
208
+ break;
209
+ }
210
+ position += result.bytesRead;
211
+ const chunk = buffer.slice(0, result.bytesRead);
212
+ if (!this.push(chunk))
213
+ break;
214
+ if (result.bytesRead < bytesToRead) {
215
+ this.push(null);
216
+ break;
217
+ }
218
+ }
219
+ }
220
+ catch (err) {
221
+ this.destroy(err);
222
+ }
223
+ finally {
224
+ reading = false;
225
+ }
226
+ },
227
+ });
228
+ stream.path = this.path;
229
+ return stream;
230
+ }
231
+ createWriteStream(options) {
232
+ if (this.closed)
233
+ throw new Error('File handle is closed');
234
+ const start = options?.start ?? 0;
235
+ const highWaterMark = options?.highWaterMark ?? 64 * 1024;
236
+ let position = typeof start === 'number' ? start : 0;
237
+ const self = this;
238
+ const stream = new stream_1.Writable({
239
+ highWaterMark,
240
+ async write(chunk, encoding, callback) {
241
+ try {
242
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
243
+ const result = await self.write(buffer, 0, buffer.length, position);
244
+ position += result.bytesWritten;
245
+ callback();
246
+ }
247
+ catch (err) {
248
+ callback(err);
249
+ }
250
+ },
251
+ async writev(chunks, callback) {
252
+ try {
253
+ const buffers = chunks.map(({ chunk }) => (Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
254
+ const result = await self.writev(buffers, position);
255
+ position += result.bytesWritten;
256
+ callback();
257
+ }
258
+ catch (err) {
259
+ callback(err);
260
+ }
261
+ },
262
+ });
263
+ stream.path = this.path;
264
+ return stream;
265
+ }
266
+ }
267
+ exports.NfsFsFileHandle = NfsFsFileHandle;
268
+ //# sourceMappingURL=NfsFsFileHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsFsFileHandle.js","sourceRoot":"","sources":["../../../../src/nfs/v4/client/NfsFsFileHandle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type * as misc from 'memfs/lib/node/types/misc';
2
+ import { Nfsv4FType } from '../constants';
3
+ export declare class NfsFsStats implements misc.IStats<number> {
4
+ uid: number;
5
+ gid: number;
6
+ rdev: number;
7
+ blksize: number;
8
+ ino: number;
9
+ size: number;
10
+ blocks: number;
11
+ atime: Date;
12
+ mtime: Date;
13
+ ctime: Date;
14
+ birthtime: Date;
15
+ atimeMs: number;
16
+ mtimeMs: number;
17
+ ctimeMs: number;
18
+ birthtimeMs: number;
19
+ dev: number;
20
+ mode: number;
21
+ nlink: number;
22
+ private type;
23
+ constructor(uid: number, gid: number, rdev: number, blksize: number, ino: number, size: number, blocks: number, atime: Date, mtime: Date, ctime: Date, birthtime: Date, atimeMs: number, mtimeMs: number, ctimeMs: number, birthtimeMs: number, dev: number, mode: number, nlink: number, type: Nfsv4FType);
24
+ isDirectory(): boolean;
25
+ isFile(): boolean;
26
+ isBlockDevice(): boolean;
27
+ isCharacterDevice(): boolean;
28
+ isSymbolicLink(): boolean;
29
+ isFIFO(): boolean;
30
+ isSocket(): boolean;
31
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NfsFsStats = void 0;
4
+ class NfsFsStats {
5
+ constructor(uid, gid, rdev, blksize, ino, size, blocks, atime, mtime, ctime, birthtime, atimeMs, mtimeMs, ctimeMs, birthtimeMs, dev, mode, nlink, type) {
6
+ this.uid = uid;
7
+ this.gid = gid;
8
+ this.rdev = rdev;
9
+ this.blksize = blksize;
10
+ this.ino = ino;
11
+ this.size = size;
12
+ this.blocks = blocks;
13
+ this.atime = atime;
14
+ this.mtime = mtime;
15
+ this.ctime = ctime;
16
+ this.birthtime = birthtime;
17
+ this.atimeMs = atimeMs;
18
+ this.mtimeMs = mtimeMs;
19
+ this.ctimeMs = ctimeMs;
20
+ this.birthtimeMs = birthtimeMs;
21
+ this.dev = dev;
22
+ this.mode = mode;
23
+ this.nlink = nlink;
24
+ this.type = type;
25
+ }
26
+ isDirectory() {
27
+ return this.type === 2;
28
+ }
29
+ isFile() {
30
+ return this.type === 1;
31
+ }
32
+ isBlockDevice() {
33
+ return this.type === 3;
34
+ }
35
+ isCharacterDevice() {
36
+ return this.type === 4;
37
+ }
38
+ isSymbolicLink() {
39
+ return this.type === 5;
40
+ }
41
+ isFIFO() {
42
+ return this.type === 7;
43
+ }
44
+ isSocket() {
45
+ return this.type === 6;
46
+ }
47
+ }
48
+ exports.NfsFsStats = NfsFsStats;
49
+ //# sourceMappingURL=NfsFsStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NfsFsStats.js","sourceRoot":"","sources":["../../../../src/nfs/v4/client/NfsFsStats.ts"],"names":[],"mappings":";;;AAMA,MAAa,UAAU;IACrB,YACS,GAAW,EACX,GAAW,EACX,IAAY,EACZ,OAAe,EACf,GAAW,EACX,IAAY,EACZ,MAAc,EACd,KAAW,EACX,KAAW,EACX,KAAW,EACX,SAAe,EACf,OAAe,EACf,OAAe,EACf,OAAe,EACf,WAAmB,EACnB,GAAW,EACX,IAAY,EACZ,KAAa,EACZ,IAAgB;QAlBjB,QAAG,GAAH,GAAG,CAAQ;QACX,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAM;QACX,UAAK,GAAL,KAAK,CAAM;QACX,UAAK,GAAL,KAAK,CAAM;QACX,cAAS,GAAT,SAAS,CAAM;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAQ;QACnB,QAAG,GAAH,GAAG,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAY;IACvB,CAAC;IAEJ,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,MAAsB,CAAC;IACzC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,MAAuB,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,MAAuB,CAAC;IAC1C,CAAC;CACF;AAlDD,gCAkDC"}