@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,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ByteRangeLock = void 0;
4
+ class ByteRangeLock {
5
+ constructor(stateid, path, locktype, offset, length, lockOwnerKey) {
6
+ this.stateid = stateid;
7
+ this.path = path;
8
+ this.locktype = locktype;
9
+ this.offset = offset;
10
+ this.length = length;
11
+ this.lockOwnerKey = lockOwnerKey;
12
+ }
13
+ overlaps(offset, length) {
14
+ const MAX_UINT64 = BigInt('0xFFFFFFFFFFFFFFFF');
15
+ const thisEnd = this.length === MAX_UINT64 ? MAX_UINT64 : this.offset + this.length;
16
+ const otherEnd = length === MAX_UINT64 ? MAX_UINT64 : offset + length;
17
+ return this.offset < otherEnd && offset < thisEnd;
18
+ }
19
+ }
20
+ exports.ByteRangeLock = ByteRangeLock;
21
+ //# sourceMappingURL=ByteRangeLock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ByteRangeLock.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/ByteRangeLock.ts"],"names":[],"mappings":";;;AAMA,MAAa,aAAa;IACxB,YAKkB,OAA4B,EAM5B,IAAY,EAOZ,QAAgB,EAMhB,MAAc,EAMd,MAAc,EAOd,YAAoB;QAhCpB,YAAO,GAAP,OAAO,CAAqB;QAM5B,SAAI,GAAJ,IAAI,CAAQ;QAOZ,aAAQ,GAAR,QAAQ,CAAQ;QAMhB,WAAM,GAAN,MAAM,CAAQ;QAMd,WAAM,GAAN,MAAM,CAAQ;QAOd,iBAAY,GAAZ,YAAY,CAAQ;IACnC,CAAC;IAQG,QAAQ,CAAC,MAAc,EAAE,MAAc;QAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QACtE,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,MAAM,GAAG,OAAO,CAAC;IACpD,CAAC;CACF;AArDD,sCAqDC"}
@@ -0,0 +1,13 @@
1
+ import type * as msg from '../../messages';
2
+ import type * as struct from '../../structs';
3
+ export declare class ClientRecord {
4
+ readonly principal: string;
5
+ readonly verifier: Uint8Array;
6
+ readonly clientIdString: Uint8Array;
7
+ readonly callback: struct.Nfsv4CbClient;
8
+ readonly callbackIdent: number;
9
+ readonly setclientidConfirm: Uint8Array;
10
+ cache: msg.Nfsv4SetclientidResponse | undefined;
11
+ lastRenew: number;
12
+ constructor(principal: string, verifier: Uint8Array, clientIdString: Uint8Array, callback: struct.Nfsv4CbClient, callbackIdent: number, setclientidConfirm: Uint8Array, cache?: msg.Nfsv4SetclientidResponse | undefined, lastRenew?: number);
13
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientRecord = void 0;
4
+ class ClientRecord {
5
+ constructor(principal, verifier, clientIdString, callback, callbackIdent, setclientidConfirm, cache = undefined, lastRenew = Date.now()) {
6
+ this.principal = principal;
7
+ this.verifier = verifier;
8
+ this.clientIdString = clientIdString;
9
+ this.callback = callback;
10
+ this.callbackIdent = callbackIdent;
11
+ this.setclientidConfirm = setclientidConfirm;
12
+ this.cache = cache;
13
+ this.lastRenew = lastRenew;
14
+ }
15
+ }
16
+ exports.ClientRecord = ClientRecord;
17
+ //# sourceMappingURL=ClientRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientRecord.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/ClientRecord.ts"],"names":[],"mappings":";;;AAIA,MAAa,YAAY;IACvB,YAIkB,SAAiB,EAQjB,QAAoB,EAOpB,cAA0B,EAO1B,QAA8B,EAO9B,aAAqB,EAWrB,kBAA8B,EAQvC,QAAkD,SAAS,EAO3D,YAAoB,IAAI,CAAC,GAAG,EAAE;QAvDrB,cAAS,GAAT,SAAS,CAAQ;QAQjB,aAAQ,GAAR,QAAQ,CAAY;QAOpB,mBAAc,GAAd,cAAc,CAAY;QAO1B,aAAQ,GAAR,QAAQ,CAAsB;QAO9B,kBAAa,GAAb,aAAa,CAAQ;QAWrB,uBAAkB,GAAlB,kBAAkB,CAAY;QAQvC,UAAK,GAAL,KAAK,CAAsD;QAO3D,cAAS,GAAT,SAAS,CAAqB;IACpC,CAAC;CACL;AA9DD,oCA8DC"}
@@ -0,0 +1,9 @@
1
+ export declare class FilesystemStats {
2
+ readonly spaceAvail: bigint;
3
+ readonly spaceFree: bigint;
4
+ readonly spaceTotal: bigint;
5
+ readonly filesAvail: bigint;
6
+ readonly filesFree: bigint;
7
+ readonly filesTotal: bigint;
8
+ constructor(spaceAvail: bigint, spaceFree: bigint, spaceTotal: bigint, filesAvail: bigint, filesFree: bigint, filesTotal: bigint);
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilesystemStats = void 0;
4
+ class FilesystemStats {
5
+ constructor(spaceAvail, spaceFree, spaceTotal, filesAvail, filesFree, filesTotal) {
6
+ this.spaceAvail = spaceAvail;
7
+ this.spaceFree = spaceFree;
8
+ this.spaceTotal = spaceTotal;
9
+ this.filesAvail = filesAvail;
10
+ this.filesFree = filesFree;
11
+ this.filesTotal = filesTotal;
12
+ }
13
+ }
14
+ exports.FilesystemStats = FilesystemStats;
15
+ //# sourceMappingURL=FilesystemStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilesystemStats.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/FilesystemStats.ts"],"names":[],"mappings":";;;AAGA,MAAa,eAAe;IAC1B,YAEkB,UAAkB,EAElB,SAAiB,EAEjB,UAAkB,EAElB,UAAkB,EAElB,SAAiB,EAEjB,UAAkB;QAVlB,eAAU,GAAV,UAAU,CAAQ;QAElB,cAAS,GAAT,SAAS,CAAQ;QAEjB,eAAU,GAAV,UAAU,CAAQ;QAElB,eAAU,GAAV,UAAU,CAAQ;QAElB,cAAS,GAAT,SAAS,CAAQ;QAEjB,eAAU,GAAV,UAAU,CAAQ;IACjC,CAAC;CACL;AAfD,0CAeC"}
@@ -0,0 +1,9 @@
1
+ export declare class LockOwnerState {
2
+ readonly clientid: bigint;
3
+ readonly owner: Uint8Array;
4
+ seqid: number;
5
+ readonly locks: Set<string>;
6
+ lastResponse?: any;
7
+ lastRequestKey?: string | undefined;
8
+ constructor(clientid: bigint, owner: Uint8Array, seqid: number, locks?: Set<string>, lastResponse?: any, lastRequestKey?: string | undefined);
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockOwnerState = void 0;
4
+ class LockOwnerState {
5
+ constructor(clientid, owner, seqid, locks = new Set(), lastResponse, lastRequestKey) {
6
+ this.clientid = clientid;
7
+ this.owner = owner;
8
+ this.seqid = seqid;
9
+ this.locks = locks;
10
+ this.lastResponse = lastResponse;
11
+ this.lastRequestKey = lastRequestKey;
12
+ }
13
+ }
14
+ exports.LockOwnerState = LockOwnerState;
15
+ //# sourceMappingURL=LockOwnerState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LockOwnerState.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/LockOwnerState.ts"],"names":[],"mappings":";;;AAKA,MAAa,cAAc;IACzB,YAKkB,QAAgB,EAOhB,KAAiB,EAQ1B,KAAa,EAOJ,QAAqB,IAAI,GAAG,EAAE,EAQvC,YAAkB,EAOlB,cAAuB;QArCd,aAAQ,GAAR,QAAQ,CAAQ;QAOhB,UAAK,GAAL,KAAK,CAAY;QAQ1B,UAAK,GAAL,KAAK,CAAQ;QAOJ,UAAK,GAAL,KAAK,CAAyB;QAQvC,iBAAY,GAAZ,YAAY,CAAM;QAOlB,mBAAc,GAAd,cAAc,CAAS;IAC7B,CAAC;CACL;AA7CD,wCA6CC"}
@@ -0,0 +1,10 @@
1
+ import * as struct from '../../structs';
2
+ export declare class LockStateid {
3
+ readonly other: Uint8Array;
4
+ seqid: number;
5
+ readonly lockOwnerKey: string;
6
+ readonly path: string;
7
+ constructor(other: Uint8Array, seqid: number, lockOwnerKey: string, path: string);
8
+ toStateid(): struct.Nfsv4Stateid;
9
+ incrementAndGetStateid(): struct.Nfsv4Stateid;
10
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockStateid = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const struct = tslib_1.__importStar(require("../../structs"));
6
+ class LockStateid {
7
+ constructor(other, seqid, lockOwnerKey, path) {
8
+ this.other = other;
9
+ this.seqid = seqid;
10
+ this.lockOwnerKey = lockOwnerKey;
11
+ this.path = path;
12
+ }
13
+ toStateid() {
14
+ return new struct.Nfsv4Stateid(this.seqid, this.other);
15
+ }
16
+ incrementAndGetStateid() {
17
+ this.seqid = this.seqid === 0xffffffff ? 1 : this.seqid + 1;
18
+ return this.toStateid();
19
+ }
20
+ }
21
+ exports.LockStateid = LockStateid;
22
+ //# sourceMappingURL=LockStateid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LockStateid.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/LockStateid.ts"],"names":[],"mappings":";;;;AAAA,8DAAwC;AASxC,MAAa,WAAW;IACtB,YAMkB,KAAiB,EAO1B,KAAa,EAMJ,YAAoB,EAMpB,IAAY;QAnBZ,UAAK,GAAL,KAAK,CAAY;QAO1B,UAAK,GAAL,KAAK,CAAQ;QAMJ,iBAAY,GAAZ,YAAY,CAAQ;QAMpB,SAAI,GAAJ,IAAI,CAAQ;IAC3B,CAAC;IAKJ,SAAS;QACP,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IAMD,sBAAsB;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;CACF;AA5CD,kCA4CC"}
@@ -0,0 +1,44 @@
1
+ import * as msg from '../../messages';
2
+ import type { Nfsv4CompoundProcCtx } from '../Nfsv4CompoundProcCtx';
3
+ export type Nfsv4OperationCtx = Pick<Nfsv4CompoundProcCtx, 'cfh' | 'sfh' | 'req' | 'getPrincipal' | 'connection'>;
4
+ export type Nfsv4OperationFn<Req extends msg.Nfsv4Request, Res extends msg.Nfsv4Response> = (request: Req, ctx: Nfsv4OperationCtx) => Promise<Res>;
5
+ export interface Nfsv4Operations {
6
+ ACCESS: Nfsv4OperationFn<msg.Nfsv4AccessRequest, msg.Nfsv4AccessResponse>;
7
+ CLOSE: Nfsv4OperationFn<msg.Nfsv4CloseRequest, msg.Nfsv4CloseResponse>;
8
+ COMMIT: Nfsv4OperationFn<msg.Nfsv4CommitRequest, msg.Nfsv4CommitResponse>;
9
+ CREATE: Nfsv4OperationFn<msg.Nfsv4CreateRequest, msg.Nfsv4CreateResponse>;
10
+ DELEGPURGE: Nfsv4OperationFn<msg.Nfsv4DelegpurgeRequest, msg.Nfsv4DelegpurgeResponse>;
11
+ DELEGRETURN: Nfsv4OperationFn<msg.Nfsv4DelegreturnRequest, msg.Nfsv4DelegreturnResponse>;
12
+ GETATTR: Nfsv4OperationFn<msg.Nfsv4GetattrRequest, msg.Nfsv4GetattrResponse>;
13
+ GETFH: Nfsv4OperationFn<msg.Nfsv4GetfhRequest, msg.Nfsv4GetfhResponse>;
14
+ LINK: Nfsv4OperationFn<msg.Nfsv4LinkRequest, msg.Nfsv4LinkResponse>;
15
+ LOCK: Nfsv4OperationFn<msg.Nfsv4LockRequest, msg.Nfsv4LockResponse>;
16
+ LOCKT: Nfsv4OperationFn<msg.Nfsv4LocktRequest, msg.Nfsv4LocktResponse>;
17
+ LOCKU: Nfsv4OperationFn<msg.Nfsv4LockuRequest, msg.Nfsv4LockuResponse>;
18
+ LOOKUP: Nfsv4OperationFn<msg.Nfsv4LookupRequest, msg.Nfsv4LookupResponse>;
19
+ LOOKUPP: Nfsv4OperationFn<msg.Nfsv4LookuppRequest, msg.Nfsv4LookuppResponse>;
20
+ NVERIFY: Nfsv4OperationFn<msg.Nfsv4NverifyRequest, msg.Nfsv4NverifyResponse>;
21
+ OPEN: Nfsv4OperationFn<msg.Nfsv4OpenRequest, msg.Nfsv4OpenResponse>;
22
+ OPENATTR: Nfsv4OperationFn<msg.Nfsv4OpenattrRequest, msg.Nfsv4OpenattrResponse>;
23
+ OPEN_CONFIRM: Nfsv4OperationFn<msg.Nfsv4OpenConfirmRequest, msg.Nfsv4OpenConfirmResponse>;
24
+ OPEN_DOWNGRADE: Nfsv4OperationFn<msg.Nfsv4OpenDowngradeRequest, msg.Nfsv4OpenDowngradeResponse>;
25
+ PUTFH: Nfsv4OperationFn<msg.Nfsv4PutfhRequest, msg.Nfsv4PutfhResponse>;
26
+ PUTPUBFH: Nfsv4OperationFn<msg.Nfsv4PutpubfhRequest, msg.Nfsv4PutpubfhResponse>;
27
+ PUTROOTFH: Nfsv4OperationFn<msg.Nfsv4PutrootfhRequest, msg.Nfsv4PutrootfhResponse>;
28
+ READ: Nfsv4OperationFn<msg.Nfsv4ReadRequest, msg.Nfsv4ReadResponse>;
29
+ READDIR: Nfsv4OperationFn<msg.Nfsv4ReaddirRequest, msg.Nfsv4ReaddirResponse>;
30
+ READLINK: Nfsv4OperationFn<msg.Nfsv4ReadlinkRequest, msg.Nfsv4ReadlinkResponse>;
31
+ REMOVE: Nfsv4OperationFn<msg.Nfsv4RemoveRequest, msg.Nfsv4RemoveResponse>;
32
+ RENAME: Nfsv4OperationFn<msg.Nfsv4RenameRequest, msg.Nfsv4RenameResponse>;
33
+ RENEW: Nfsv4OperationFn<msg.Nfsv4RenewRequest, msg.Nfsv4RenewResponse>;
34
+ RESTOREFH: Nfsv4OperationFn<msg.Nfsv4RestorefhRequest, msg.Nfsv4RestorefhResponse>;
35
+ SAVEFH: Nfsv4OperationFn<msg.Nfsv4SavefhRequest, msg.Nfsv4SavefhResponse>;
36
+ SECINFO: Nfsv4OperationFn<msg.Nfsv4SecinfoRequest, msg.Nfsv4SecinfoResponse>;
37
+ SETATTR: Nfsv4OperationFn<msg.Nfsv4SetattrRequest, msg.Nfsv4SetattrResponse>;
38
+ SETCLIENTID: Nfsv4OperationFn<msg.Nfsv4SetclientidRequest, msg.Nfsv4SetclientidResponse>;
39
+ SETCLIENTID_CONFIRM: Nfsv4OperationFn<msg.Nfsv4SetclientidConfirmRequest, msg.Nfsv4SetclientidConfirmResponse>;
40
+ VERIFY: Nfsv4OperationFn<msg.Nfsv4VerifyRequest, msg.Nfsv4VerifyResponse>;
41
+ WRITE: Nfsv4OperationFn<msg.Nfsv4WriteRequest, msg.Nfsv4WriteResponse>;
42
+ RELEASE_LOCKOWNER: Nfsv4OperationFn<msg.Nfsv4ReleaseLockOwnerRequest, msg.Nfsv4ReleaseLockOwnerResponse>;
43
+ ILLEGAL: Nfsv4OperationFn<msg.Nfsv4IllegalRequest, msg.Nfsv4IllegalResponse>;
44
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Nfsv4Operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nfsv4Operations.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/Nfsv4Operations.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import * as msg from '../../messages';
2
+ import { Nfsv4OperationCtx, Nfsv4Operations } from './Nfsv4Operations';
3
+ export declare class Nfsv4OperationsNotImpl implements Nfsv4Operations {
4
+ ACCESS(request: msg.Nfsv4AccessRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4AccessResponse>;
5
+ CLOSE(request: msg.Nfsv4CloseRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CloseResponse>;
6
+ COMMIT(request: msg.Nfsv4CommitRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CommitResponse>;
7
+ CREATE(request: msg.Nfsv4CreateRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CreateResponse>;
8
+ DELEGPURGE(request: msg.Nfsv4DelegpurgeRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4DelegpurgeResponse>;
9
+ DELEGRETURN(request: msg.Nfsv4DelegreturnRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4DelegreturnResponse>;
10
+ GETATTR(request: msg.Nfsv4GetattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4GetattrResponse>;
11
+ GETFH(request: msg.Nfsv4GetfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4GetfhResponse>;
12
+ LINK(request: msg.Nfsv4LinkRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LinkResponse>;
13
+ LOCK(request: msg.Nfsv4LockRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LockResponse>;
14
+ LOCKT(request: msg.Nfsv4LocktRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LocktResponse>;
15
+ LOCKU(request: msg.Nfsv4LockuRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LockuResponse>;
16
+ LOOKUP(request: msg.Nfsv4LookupRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LookupResponse>;
17
+ LOOKUPP(request: msg.Nfsv4LookuppRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LookuppResponse>;
18
+ NVERIFY(request: msg.Nfsv4NverifyRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4NverifyResponse>;
19
+ OPEN(request: msg.Nfsv4OpenRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenResponse>;
20
+ OPENATTR(request: msg.Nfsv4OpenattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenattrResponse>;
21
+ OPEN_CONFIRM(request: msg.Nfsv4OpenConfirmRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenConfirmResponse>;
22
+ OPEN_DOWNGRADE(request: msg.Nfsv4OpenDowngradeRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenDowngradeResponse>;
23
+ PUTFH(request: msg.Nfsv4PutfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutfhResponse>;
24
+ PUTPUBFH(request: msg.Nfsv4PutpubfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutpubfhResponse>;
25
+ PUTROOTFH(request: msg.Nfsv4PutrootfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutrootfhResponse>;
26
+ READ(request: msg.Nfsv4ReadRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReadResponse>;
27
+ READDIR(request: msg.Nfsv4ReaddirRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReaddirResponse>;
28
+ READLINK(request: msg.Nfsv4ReadlinkRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReadlinkResponse>;
29
+ REMOVE(request: msg.Nfsv4RemoveRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RemoveResponse>;
30
+ RENAME(request: msg.Nfsv4RenameRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RenameResponse>;
31
+ RENEW(request: msg.Nfsv4RenewRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RenewResponse>;
32
+ RESTOREFH(request: msg.Nfsv4RestorefhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RestorefhResponse>;
33
+ SAVEFH(request: msg.Nfsv4SavefhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SavefhResponse>;
34
+ SECINFO(request: msg.Nfsv4SecinfoRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SecinfoResponse>;
35
+ SETATTR(request: msg.Nfsv4SetattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetattrResponse>;
36
+ SETCLIENTID(request: msg.Nfsv4SetclientidRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetclientidResponse>;
37
+ SETCLIENTID_CONFIRM(request: msg.Nfsv4SetclientidConfirmRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetclientidConfirmResponse>;
38
+ VERIFY(request: msg.Nfsv4VerifyRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4VerifyResponse>;
39
+ WRITE(request: msg.Nfsv4WriteRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4WriteResponse>;
40
+ RELEASE_LOCKOWNER(request: msg.Nfsv4ReleaseLockOwnerRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReleaseLockOwnerResponse>;
41
+ ILLEGAL(request: msg.Nfsv4IllegalRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4IllegalResponse>;
42
+ }
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Nfsv4OperationsNotImpl = void 0;
4
+ class Nfsv4OperationsNotImpl {
5
+ async ACCESS(request, ctx) {
6
+ ctx.connection.logger.log('ACCESS', request);
7
+ throw new Error('Not implemented');
8
+ }
9
+ async CLOSE(request, ctx) {
10
+ ctx.connection.logger.log('CLOSE', request);
11
+ throw new Error('Not implemented');
12
+ }
13
+ async COMMIT(request, ctx) {
14
+ ctx.connection.logger.log('COMMIT', request);
15
+ throw new Error('Not implemented');
16
+ }
17
+ async CREATE(request, ctx) {
18
+ ctx.connection.logger.log('CREATE', request);
19
+ throw new Error('Not implemented');
20
+ }
21
+ async DELEGPURGE(request, ctx) {
22
+ ctx.connection.logger.log('DELEGPURGE', request);
23
+ throw new Error('Not implemented');
24
+ }
25
+ async DELEGRETURN(request, ctx) {
26
+ ctx.connection.logger.log('DELEGRETURN', request);
27
+ throw new Error('Not implemented');
28
+ }
29
+ async GETATTR(request, ctx) {
30
+ ctx.connection.logger.log('GETATTR', request);
31
+ throw new Error('Not implemented');
32
+ }
33
+ async GETFH(request, ctx) {
34
+ ctx.connection.logger.log('GETFH', request);
35
+ throw new Error('Not implemented');
36
+ }
37
+ async LINK(request, ctx) {
38
+ ctx.connection.logger.log('LINK', request);
39
+ throw new Error('Not implemented');
40
+ }
41
+ async LOCK(request, ctx) {
42
+ ctx.connection.logger.log('LOCK', request);
43
+ throw new Error('Not implemented');
44
+ }
45
+ async LOCKT(request, ctx) {
46
+ ctx.connection.logger.log('LOCKT', request);
47
+ throw new Error('Not implemented');
48
+ }
49
+ async LOCKU(request, ctx) {
50
+ ctx.connection.logger.log('LOCKU', request);
51
+ throw new Error('Not implemented');
52
+ }
53
+ async LOOKUP(request, ctx) {
54
+ ctx.connection.logger.log('LOOKUP', request);
55
+ throw new Error('Not implemented');
56
+ }
57
+ async LOOKUPP(request, ctx) {
58
+ ctx.connection.logger.log('LOOKUPP', request);
59
+ throw new Error('Not implemented');
60
+ }
61
+ async NVERIFY(request, ctx) {
62
+ ctx.connection.logger.log('NVERIFY', request);
63
+ throw new Error('Not implemented');
64
+ }
65
+ async OPEN(request, ctx) {
66
+ ctx.connection.logger.log('OPEN', request);
67
+ throw new Error('Not implemented');
68
+ }
69
+ async OPENATTR(request, ctx) {
70
+ ctx.connection.logger.log('OPENATTR', request);
71
+ throw new Error('Not implemented');
72
+ }
73
+ async OPEN_CONFIRM(request, ctx) {
74
+ ctx.connection.logger.log('OPEN_CONFIRM', request);
75
+ throw new Error('Not implemented');
76
+ }
77
+ async OPEN_DOWNGRADE(request, ctx) {
78
+ ctx.connection.logger.log('OPEN_DOWNGRADE', request);
79
+ throw new Error('Not implemented');
80
+ }
81
+ async PUTFH(request, ctx) {
82
+ ctx.connection.logger.log('PUTFH', request);
83
+ throw new Error('Not implemented');
84
+ }
85
+ async PUTPUBFH(request, ctx) {
86
+ ctx.connection.logger.log('PUTPUBFH', request);
87
+ throw new Error('Not implemented');
88
+ }
89
+ async PUTROOTFH(request, ctx) {
90
+ ctx.connection.logger.log('PUTROOTFH', request);
91
+ throw new Error('Not implemented');
92
+ }
93
+ async READ(request, ctx) {
94
+ ctx.connection.logger.log('READ', request);
95
+ throw new Error('Not implemented');
96
+ }
97
+ async READDIR(request, ctx) {
98
+ ctx.connection.logger.log('READDIR', request);
99
+ throw new Error('Not implemented');
100
+ }
101
+ async READLINK(request, ctx) {
102
+ ctx.connection.logger.log('READLINK', request);
103
+ throw new Error('Not implemented');
104
+ }
105
+ async REMOVE(request, ctx) {
106
+ ctx.connection.logger.log('REMOVE', request);
107
+ throw new Error('Not implemented');
108
+ }
109
+ async RENAME(request, ctx) {
110
+ ctx.connection.logger.log('RENAME', request);
111
+ throw new Error('Not implemented');
112
+ }
113
+ async RENEW(request, ctx) {
114
+ ctx.connection.logger.log('RENEW', request);
115
+ throw new Error('Not implemented');
116
+ }
117
+ async RESTOREFH(request, ctx) {
118
+ ctx.connection.logger.log('RESTOREFH', request);
119
+ throw new Error('Not implemented');
120
+ }
121
+ async SAVEFH(request, ctx) {
122
+ ctx.connection.logger.log('SAVEFH', request);
123
+ throw new Error('Not implemented');
124
+ }
125
+ async SECINFO(request, ctx) {
126
+ ctx.connection.logger.log('SECINFO', request);
127
+ throw new Error('Not implemented');
128
+ }
129
+ async SETATTR(request, ctx) {
130
+ ctx.connection.logger.log('SETATTR', request);
131
+ throw new Error('Not implemented');
132
+ }
133
+ async SETCLIENTID(request, ctx) {
134
+ ctx.connection.logger.log('SETCLIENTID', request);
135
+ throw new Error('Not implemented');
136
+ }
137
+ async SETCLIENTID_CONFIRM(request, ctx) {
138
+ ctx.connection.logger.log('SETCLIENTID_CONFIRM', request);
139
+ throw new Error('Not implemented');
140
+ }
141
+ async VERIFY(request, ctx) {
142
+ ctx.connection.logger.log('VERIFY', request);
143
+ throw new Error('Not implemented');
144
+ }
145
+ async WRITE(request, ctx) {
146
+ ctx.connection.logger.log('WRITE', request);
147
+ throw new Error('Not implemented');
148
+ }
149
+ async RELEASE_LOCKOWNER(request, ctx) {
150
+ ctx.connection.logger.log('RELEASE_LOCKOWNER', request);
151
+ throw new Error('Not implemented');
152
+ }
153
+ async ILLEGAL(request, ctx) {
154
+ ctx.connection.logger.log('ILLEGAL', request);
155
+ throw new Error('Not implemented');
156
+ }
157
+ }
158
+ exports.Nfsv4OperationsNotImpl = Nfsv4OperationsNotImpl;
159
+ //# sourceMappingURL=Nfsv4OperationsNotImpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Nfsv4OperationsNotImpl.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/Nfsv4OperationsNotImpl.ts"],"names":[],"mappings":";;;AAGA,MAAa,sBAAsB;IAC1B,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,UAAU,CACrB,OAAmC,EACnC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,WAAW,CACtB,OAAoC,EACpC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE,GAAsB;QACrE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE,GAAsB;QACrE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE,GAAsB;QACrE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,OAAiC,EAAE,GAAsB;QAC7E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,YAAY,CACvB,OAAoC,EACpC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,cAAc,CACzB,OAAsC,EACtC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,OAAiC,EAAE,GAAsB;QAC7E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,SAAS,CACpB,OAAkC,EAClC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,IAAI,CAAC,OAA6B,EAAE,GAAsB;QACrE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,QAAQ,CAAC,OAAiC,EAAE,GAAsB;QAC7E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,SAAS,CACpB,OAAkC,EAClC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,WAAW,CACtB,OAAoC,EACpC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,mBAAmB,CAC9B,OAA2C,EAC3C,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,GAAsB;QACzE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,KAAK,CAAC,OAA8B,EAAE,GAAsB;QACvE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,iBAAiB,CAC5B,OAAyC,EACzC,GAAsB;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACM,KAAK,CAAC,OAAO,CAAC,OAAgC,EAAE,GAAsB;QAC3E,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;CACF;AApLD,wDAoLC"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ import type * as struct from '../../structs';
3
+ import type { FileHandle } from 'node:fs/promises';
4
+ export declare class OpenFileState {
5
+ readonly stateid: struct.Nfsv4Stateid;
6
+ readonly path: string;
7
+ readonly fd: FileHandle;
8
+ shareAccess: number;
9
+ shareDeny: number;
10
+ readonly openOwnerKey: string;
11
+ seqid: number;
12
+ confirmed: boolean;
13
+ constructor(stateid: struct.Nfsv4Stateid, path: string, fd: FileHandle, shareAccess: number, shareDeny: number, openOwnerKey: string, seqid: number, confirmed: boolean);
14
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenFileState = void 0;
4
+ class OpenFileState {
5
+ constructor(stateid, path, fd, shareAccess, shareDeny, openOwnerKey, seqid, confirmed) {
6
+ this.stateid = stateid;
7
+ this.path = path;
8
+ this.fd = fd;
9
+ this.shareAccess = shareAccess;
10
+ this.shareDeny = shareDeny;
11
+ this.openOwnerKey = openOwnerKey;
12
+ this.seqid = seqid;
13
+ this.confirmed = confirmed;
14
+ }
15
+ }
16
+ exports.OpenFileState = OpenFileState;
17
+ //# sourceMappingURL=OpenFileState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenFileState.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/OpenFileState.ts"],"names":[],"mappings":";;;AAQA,MAAa,aAAa;IACxB,YAMkB,OAA4B,EAM5B,IAAY,EAMZ,EAAc,EAOvB,WAAmB,EAOnB,SAAiB,EAOR,YAAoB,EAO7B,KAAa,EAOb,SAAkB;QA/CT,YAAO,GAAP,OAAO,CAAqB;QAM5B,SAAI,GAAJ,IAAI,CAAQ;QAMZ,OAAE,GAAF,EAAE,CAAY;QAOvB,gBAAW,GAAX,WAAW,CAAQ;QAOnB,cAAS,GAAT,SAAS,CAAQ;QAOR,iBAAY,GAAZ,YAAY,CAAQ;QAO7B,UAAK,GAAL,KAAK,CAAQ;QAOb,cAAS,GAAT,SAAS,CAAS;IACxB,CAAC;CACL;AAxDD,sCAwDC"}
@@ -0,0 +1,9 @@
1
+ export declare class OpenOwnerState {
2
+ readonly clientid: bigint;
3
+ readonly owner: Uint8Array;
4
+ seqid: number;
5
+ readonly opens: Set<string>;
6
+ lastResponse?: any;
7
+ lastRequestKey?: string | undefined;
8
+ constructor(clientid: bigint, owner: Uint8Array, seqid: number, opens?: Set<string>, lastResponse?: any, lastRequestKey?: string | undefined);
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenOwnerState = void 0;
4
+ class OpenOwnerState {
5
+ constructor(clientid, owner, seqid, opens = new Set(), lastResponse, lastRequestKey) {
6
+ this.clientid = clientid;
7
+ this.owner = owner;
8
+ this.seqid = seqid;
9
+ this.opens = opens;
10
+ this.lastResponse = lastResponse;
11
+ this.lastRequestKey = lastRequestKey;
12
+ }
13
+ }
14
+ exports.OpenOwnerState = OpenOwnerState;
15
+ //# sourceMappingURL=OpenOwnerState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenOwnerState.js","sourceRoot":"","sources":["../../../../../src/nfs/v4/server/operations/OpenOwnerState.ts"],"names":[],"mappings":";;;AAMA,MAAa,cAAc;IACzB,YAKkB,QAAgB,EAOhB,KAAiB,EAQ1B,KAAa,EAOJ,QAAqB,IAAI,GAAG,EAAE,EAQvC,YAAkB,EAOlB,cAAuB;QArCd,aAAQ,GAAR,QAAQ,CAAQ;QAOhB,UAAK,GAAL,KAAK,CAAY;QAQ1B,UAAK,GAAL,KAAK,CAAQ;QAOJ,UAAK,GAAL,KAAK,CAAyB;QAQvC,iBAAY,GAAZ,YAAY,CAAM;QAOlB,mBAAc,GAAd,cAAc,CAAS;IAC7B,CAAC;CACL;AA7CD,wCA6CC"}
@@ -0,0 +1,99 @@
1
+ /// <reference types="node" />
2
+ import { Nfsv4OperationCtx, Nfsv4Operations } from '../Nfsv4Operations';
3
+ import * as msg from '../../../messages';
4
+ import * as struct from '../../../structs';
5
+ import { ClientRecord } from '../ClientRecord';
6
+ import { OpenFileState } from '../OpenFileState';
7
+ import { OpenOwnerState } from '../OpenOwnerState';
8
+ import { LockOwnerState } from '../LockOwnerState';
9
+ import { ByteRangeLock } from '../ByteRangeLock';
10
+ import { LockStateid } from '../LockStateid';
11
+ import { FilesystemStats } from '../FilesystemStats';
12
+ import { FileHandleMapper } from './fh';
13
+ export interface Nfsv4OperationsNodeOpts {
14
+ fs: typeof import('node:fs');
15
+ dir: string;
16
+ maxClients?: number;
17
+ maxPendingClients?: number;
18
+ fsStats?: () => Promise<FilesystemStats>;
19
+ }
20
+ export declare class Nfsv4OperationsNode implements Nfsv4Operations {
21
+ protected readonly fs: typeof import('node:fs');
22
+ protected readonly promises: (typeof import('node:fs'))['promises'];
23
+ protected dir: string;
24
+ protected readonly leaseTime: number;
25
+ protected clients: Map<bigint, ClientRecord>;
26
+ protected pendingClients: Map<bigint, ClientRecord>;
27
+ protected maxClients: number;
28
+ protected maxPendingClients: number;
29
+ protected nextClientId: bigint;
30
+ protected bootStamp: number;
31
+ protected readonly fh: FileHandleMapper;
32
+ protected nextStateidSeqid: number;
33
+ protected openFiles: Map<string, OpenFileState>;
34
+ protected openOwners: Map<string, OpenOwnerState>;
35
+ protected locks: Map<string, ByteRangeLock>;
36
+ protected lockOwners: Map<string, LockOwnerState>;
37
+ protected lockStateids: Map<string, LockStateid>;
38
+ protected changeCounter: bigint;
39
+ protected fsStats: () => Promise<FilesystemStats>;
40
+ constructor(opts: Nfsv4OperationsNodeOpts);
41
+ protected defaultFsStats: () => Promise<FilesystemStats>;
42
+ protected findClientByIdString(map: Map<bigint, ClientRecord>, clientIdString: Uint8Array): [bigint, ClientRecord] | undefined;
43
+ protected enforceClientLimit(): void;
44
+ protected enforcePendingClientLimit(): void;
45
+ protected makeOpenOwnerKey(clientid: bigint, owner: Uint8Array): string;
46
+ protected validateSeqid(requestSeqid: number, ownerSeqid: number): 'valid' | 'replay' | 'invalid';
47
+ protected renewClientLease(clientid: bigint): void;
48
+ protected makeStateidKey(stateid: struct.Nfsv4Stateid): string;
49
+ protected createStateid(): struct.Nfsv4Stateid;
50
+ protected canAccessFile(path: string, shareAccess: number, shareDeny: number): boolean;
51
+ protected makeLockOwnerKey(clientid: bigint, owner: Uint8Array): string;
52
+ protected makeOpenRequestKey(ownerKey: string, currentPath: string, request: msg.Nfsv4OpenRequest): string;
53
+ protected makeLockRequestKey(lockOwnerKey: string, filePath: string, locktype: number, offset: bigint, length: bigint, seqid: number): string;
54
+ protected makeLockuRequestKey(lockOwnerKey: string, stateid: struct.Nfsv4Stateid, offset: bigint, length: bigint, seqid: number): string;
55
+ protected makeLockKey(stateid: struct.Nfsv4Stateid, offset: bigint, length: bigint): string;
56
+ protected makeLockStateidKey(lockOwnerKey: string, path: string): string;
57
+ protected getOrCreateLockStateid(lockOwnerKey: string, path: string): LockStateid;
58
+ protected findLockStateidByOther(other: Uint8Array): LockStateid | undefined;
59
+ protected hasConflictingLock(path: string, locktype: number, offset: bigint, length: bigint, ownerKey: string): boolean;
60
+ SETCLIENTID(request: msg.Nfsv4SetclientidRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetclientidResponse>;
61
+ SETCLIENTID_CONFIRM(request: msg.Nfsv4SetclientidConfirmRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetclientidConfirmResponse>;
62
+ ILLEGAL(request: msg.Nfsv4IllegalRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4IllegalResponse>;
63
+ PUTROOTFH(request: msg.Nfsv4PutrootfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutrootfhResponse>;
64
+ PUTPUBFH(request: msg.Nfsv4PutpubfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutpubfhResponse>;
65
+ PUTFH(request: msg.Nfsv4PutfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4PutfhResponse>;
66
+ GETFH(request: msg.Nfsv4GetfhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4GetfhResponse>;
67
+ RESTOREFH(request: msg.Nfsv4RestorefhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RestorefhResponse>;
68
+ SAVEFH(request: msg.Nfsv4SavefhRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SavefhResponse>;
69
+ private absolutePath;
70
+ LOOKUP(request: msg.Nfsv4LookupRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LookupResponse>;
71
+ LOOKUPP(request: msg.Nfsv4LookuppRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LookuppResponse>;
72
+ GETATTR(request: msg.Nfsv4GetattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4GetattrResponse>;
73
+ ACCESS(request: msg.Nfsv4AccessRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4AccessResponse>;
74
+ READDIR(request: msg.Nfsv4ReaddirRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReaddirResponse>;
75
+ OPEN(request: msg.Nfsv4OpenRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenResponse>;
76
+ OPENATTR(request: msg.Nfsv4OpenattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenattrResponse>;
77
+ OPEN_CONFIRM(request: msg.Nfsv4OpenConfirmRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenConfirmResponse>;
78
+ OPEN_DOWNGRADE(request: msg.Nfsv4OpenDowngradeRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4OpenDowngradeResponse>;
79
+ CLOSE(request: msg.Nfsv4CloseRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CloseResponse>;
80
+ SECINFO(request: msg.Nfsv4SecinfoRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SecinfoResponse>;
81
+ LOCK(request: msg.Nfsv4LockRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LockResponse>;
82
+ LOCKT(request: msg.Nfsv4LocktRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LocktResponse>;
83
+ LOCKU(request: msg.Nfsv4LockuRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LockuResponse>;
84
+ RELEASE_LOCKOWNER(request: msg.Nfsv4ReleaseLockOwnerRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReleaseLockOwnerResponse>;
85
+ RENEW(request: msg.Nfsv4RenewRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RenewResponse>;
86
+ READ(request: msg.Nfsv4ReadRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReadResponse>;
87
+ READLINK(request: msg.Nfsv4ReadlinkRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4ReadlinkResponse>;
88
+ REMOVE(request: msg.Nfsv4RemoveRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RemoveResponse>;
89
+ RENAME(request: msg.Nfsv4RenameRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4RenameResponse>;
90
+ WRITE(request: msg.Nfsv4WriteRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4WriteResponse>;
91
+ DELEGPURGE(request: msg.Nfsv4DelegpurgeRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4DelegpurgeResponse>;
92
+ DELEGRETURN(request: msg.Nfsv4DelegreturnRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4DelegreturnResponse>;
93
+ COMMIT(request: msg.Nfsv4CommitRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CommitResponse>;
94
+ CREATE(request: msg.Nfsv4CreateRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4CreateResponse>;
95
+ LINK(request: msg.Nfsv4LinkRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4LinkResponse>;
96
+ NVERIFY(request: msg.Nfsv4NverifyRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4NverifyResponse>;
97
+ SETATTR(request: msg.Nfsv4SetattrRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4SetattrResponse>;
98
+ VERIFY(request: msg.Nfsv4VerifyRequest, ctx: Nfsv4OperationCtx): Promise<msg.Nfsv4VerifyResponse>;
99
+ }