@jsonjoy.com/json-pack 1.16.0 → 1.18.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 (57) hide show
  1. package/lib/nfs/v3/FullNfsv3Encoder.d.ts +28 -0
  2. package/lib/nfs/v3/FullNfsv3Encoder.js +73 -0
  3. package/lib/nfs/v3/FullNfsv3Encoder.js.map +1 -0
  4. package/lib/nfs/v3/Nfsv3Decoder.d.ts +78 -0
  5. package/lib/nfs/v3/Nfsv3Decoder.js +757 -0
  6. package/lib/nfs/v3/Nfsv3Decoder.js.map +1 -0
  7. package/lib/nfs/v3/Nfsv3Encoder.d.ts +80 -0
  8. package/lib/nfs/v3/Nfsv3Encoder.js +669 -0
  9. package/lib/nfs/v3/Nfsv3Encoder.js.map +1 -0
  10. package/lib/nfs/v3/constants.d.ts +115 -0
  11. package/lib/nfs/v3/constants.js +3 -0
  12. package/lib/nfs/v3/constants.js.map +1 -0
  13. package/lib/nfs/v3/errors.d.ts +6 -0
  14. package/lib/nfs/v3/errors.js +16 -0
  15. package/lib/nfs/v3/errors.js.map +1 -0
  16. package/lib/nfs/v3/index.d.ts +6 -0
  17. package/lib/nfs/v3/index.js +10 -0
  18. package/lib/nfs/v3/index.js.map +1 -0
  19. package/lib/nfs/v3/locks/NlmDecoder.d.ts +33 -0
  20. package/lib/nfs/v3/locks/NlmDecoder.js +209 -0
  21. package/lib/nfs/v3/locks/NlmDecoder.js.map +1 -0
  22. package/lib/nfs/v3/locks/NlmEncoder.d.ts +35 -0
  23. package/lib/nfs/v3/locks/NlmEncoder.js +182 -0
  24. package/lib/nfs/v3/locks/NlmEncoder.js.map +1 -0
  25. package/lib/nfs/v3/locks/constants.d.ts +39 -0
  26. package/lib/nfs/v3/locks/constants.js +3 -0
  27. package/lib/nfs/v3/locks/constants.js.map +1 -0
  28. package/lib/nfs/v3/locks/messages.d.ts +96 -0
  29. package/lib/nfs/v3/locks/messages.js +130 -0
  30. package/lib/nfs/v3/locks/messages.js.map +1 -0
  31. package/lib/nfs/v3/locks/structs.d.ts +31 -0
  32. package/lib/nfs/v3/locks/structs.js +42 -0
  33. package/lib/nfs/v3/locks/structs.js.map +1 -0
  34. package/lib/nfs/v3/messages.d.ts +460 -0
  35. package/lib/nfs/v3/messages.js +619 -0
  36. package/lib/nfs/v3/messages.js.map +1 -0
  37. package/lib/nfs/v3/mount/MountDecoder.d.ts +21 -0
  38. package/lib/nfs/v3/mount/MountDecoder.js +135 -0
  39. package/lib/nfs/v3/mount/MountDecoder.js.map +1 -0
  40. package/lib/nfs/v3/mount/MountEncoder.d.ts +23 -0
  41. package/lib/nfs/v3/mount/MountEncoder.js +125 -0
  42. package/lib/nfs/v3/mount/MountEncoder.js.map +1 -0
  43. package/lib/nfs/v3/mount/constants.d.ts +27 -0
  44. package/lib/nfs/v3/mount/constants.js +3 -0
  45. package/lib/nfs/v3/mount/constants.js.map +1 -0
  46. package/lib/nfs/v3/mount/messages.d.ts +37 -0
  47. package/lib/nfs/v3/mount/messages.js +51 -0
  48. package/lib/nfs/v3/mount/messages.js.map +1 -0
  49. package/lib/nfs/v3/mount/structs.d.ts +22 -0
  50. package/lib/nfs/v3/mount/structs.js +33 -0
  51. package/lib/nfs/v3/mount/structs.js.map +1 -0
  52. package/lib/nfs/v3/structs.d.ts +156 -0
  53. package/lib/nfs/v3/structs.js +210 -0
  54. package/lib/nfs/v3/structs.js.map +1 -0
  55. package/lib/rpc/errors.js +4 -4
  56. package/lib/rpc/errors.js.map +1 -1
  57. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ import { Nfsv3Encoder } from './Nfsv3Encoder';
2
+ import { RpcMessageEncoder } from '../../rpc/RpcMessageEncoder';
3
+ import { RmRecordEncoder } from '../../rm/RmRecordEncoder';
4
+ import { Nfsv3Proc } from './constants';
5
+ import { RpcOpaqueAuth } from '../../rpc/messages';
6
+ import type * as msg from './messages';
7
+ import type { IWriter, IWriterGrowable } from '@jsonjoy.com/util/lib/buffers';
8
+ export declare class FullNfsv3Encoder<W extends IWriter & IWriterGrowable = IWriter & IWriterGrowable> {
9
+ program: number;
10
+ readonly writer: W;
11
+ protected readonly nfsEncoder: Nfsv3Encoder<W>;
12
+ protected readonly rpcEncoder: RpcMessageEncoder<W>;
13
+ protected readonly rmEncoder: RmRecordEncoder<W>;
14
+ constructor(program?: number, writer?: W);
15
+ encodeCall(xid: number, proc: Nfsv3Proc, cred: RpcOpaqueAuth, verf: RpcOpaqueAuth, request: msg.Nfsv3Request): Uint8Array;
16
+ writeCall(xid: number, proc: Nfsv3Proc, cred: RpcOpaqueAuth, verf: RpcOpaqueAuth, request: msg.Nfsv3Request): void;
17
+ encodeAcceptedReply(xid: number, proc: Nfsv3Proc, verf: RpcOpaqueAuth, response: msg.Nfsv3Response): Uint8Array;
18
+ writeAcceptedReply(xid: number, proc: Nfsv3Proc, verf: RpcOpaqueAuth, response: msg.Nfsv3Response): void;
19
+ encodeRejectedReply(xid: number, rejectStat: number, mismatchInfo?: {
20
+ low: number;
21
+ high: number;
22
+ }, authStat?: number): Uint8Array;
23
+ writeRejectedReply(xid: number, rejectStat: number, mismatchInfo?: {
24
+ low: number;
25
+ high: number;
26
+ }, authStat?: number): void;
27
+ private writeRmHeader;
28
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FullNfsv3Encoder = void 0;
4
+ const Writer_1 = require("@jsonjoy.com/util/lib/buffers/Writer");
5
+ const Nfsv3Encoder_1 = require("./Nfsv3Encoder");
6
+ const RpcMessageEncoder_1 = require("../../rpc/RpcMessageEncoder");
7
+ const RmRecordEncoder_1 = require("../../rm/RmRecordEncoder");
8
+ const MAX_SINGLE_FRAME_SIZE = 0x7fffffff;
9
+ const RM_HEADER_SIZE = 4;
10
+ class FullNfsv3Encoder {
11
+ constructor(program = 100003, writer = new Writer_1.Writer()) {
12
+ this.program = program;
13
+ this.writer = writer;
14
+ this.nfsEncoder = new Nfsv3Encoder_1.Nfsv3Encoder(writer);
15
+ this.rpcEncoder = new RpcMessageEncoder_1.RpcMessageEncoder(writer);
16
+ this.rmEncoder = new RmRecordEncoder_1.RmRecordEncoder(writer);
17
+ }
18
+ encodeCall(xid, proc, cred, verf, request) {
19
+ this.writeCall(xid, proc, cred, verf, request);
20
+ return this.writer.flush();
21
+ }
22
+ writeCall(xid, proc, cred, verf, request) {
23
+ const writer = this.writer;
24
+ const rmHeaderPosition = writer.x;
25
+ writer.x += RM_HEADER_SIZE;
26
+ this.rpcEncoder.writeCall(xid, 100003, 3, proc, cred, verf);
27
+ this.nfsEncoder.writeMessage(request, proc, true);
28
+ this.writeRmHeader(rmHeaderPosition, writer.x);
29
+ }
30
+ encodeAcceptedReply(xid, proc, verf, response) {
31
+ this.writeAcceptedReply(xid, proc, verf, response);
32
+ return this.writer.flush();
33
+ }
34
+ writeAcceptedReply(xid, proc, verf, response) {
35
+ const writer = this.writer;
36
+ const rmHeaderPosition = writer.x;
37
+ writer.x += RM_HEADER_SIZE;
38
+ this.rpcEncoder.writeAcceptedReply(xid, verf, 0);
39
+ this.nfsEncoder.writeMessage(response, proc, false);
40
+ this.writeRmHeader(rmHeaderPosition, writer.x);
41
+ }
42
+ encodeRejectedReply(xid, rejectStat, mismatchInfo, authStat) {
43
+ this.writeRejectedReply(xid, rejectStat, mismatchInfo, authStat);
44
+ return this.writer.flush();
45
+ }
46
+ writeRejectedReply(xid, rejectStat, mismatchInfo, authStat) {
47
+ const writer = this.writer;
48
+ const rmHeaderPosition = writer.x;
49
+ writer.x += RM_HEADER_SIZE;
50
+ this.rpcEncoder.writeRejectedReply(xid, rejectStat, mismatchInfo, authStat);
51
+ this.writeRmHeader(rmHeaderPosition, writer.x);
52
+ }
53
+ writeRmHeader(rmHeaderPosition, endPosition) {
54
+ const writer = this.writer;
55
+ const rmEncoder = this.rmEncoder;
56
+ const totalSize = endPosition - rmHeaderPosition - RM_HEADER_SIZE;
57
+ if (totalSize <= MAX_SINGLE_FRAME_SIZE) {
58
+ const currentX = writer.x;
59
+ writer.x = rmHeaderPosition;
60
+ rmEncoder.writeHdr(1, totalSize);
61
+ writer.x = currentX;
62
+ }
63
+ else {
64
+ const currentX = writer.x;
65
+ writer.x = rmHeaderPosition;
66
+ const data = writer.uint8.subarray(rmHeaderPosition + RM_HEADER_SIZE, currentX);
67
+ writer.reset();
68
+ rmEncoder.writeRecord(data);
69
+ }
70
+ }
71
+ }
72
+ exports.FullNfsv3Encoder = FullNfsv3Encoder;
73
+ //# sourceMappingURL=FullNfsv3Encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullNfsv3Encoder.js","sourceRoot":"","sources":["../../../src/nfs/v3/FullNfsv3Encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import { Reader } from '@jsonjoy.com/buffers/lib/Reader';
2
+ import { XdrDecoder } from '../../xdr/XdrDecoder';
3
+ import { Nfsv3Proc } from './constants';
4
+ import * as msg from './messages';
5
+ export declare class Nfsv3Decoder {
6
+ protected readonly xdr: XdrDecoder;
7
+ constructor(reader?: Reader);
8
+ decodeMessage(reader: Reader, proc: Nfsv3Proc, isRequest: boolean): msg.Nfsv3Message | undefined;
9
+ private decodeRequest;
10
+ private decodeResponse;
11
+ private readFh;
12
+ private readFilename;
13
+ private readTime;
14
+ private readSpecData;
15
+ private readFattr;
16
+ private readPostOpAttr;
17
+ private readWccAttr;
18
+ private readPreOpAttr;
19
+ private readWccData;
20
+ private readPostOpFh;
21
+ private readSetMode;
22
+ private readSetUid;
23
+ private readSetGid;
24
+ private readSetSize;
25
+ private readSetAtime;
26
+ private readSetMtime;
27
+ private readSattr;
28
+ private readSattrGuard;
29
+ private readDirOpArgs;
30
+ private readCreateHow;
31
+ private readMknodData;
32
+ private readEntry;
33
+ private readEntryPlus;
34
+ private readDirList;
35
+ private readDirListPlus;
36
+ private decodeGetattrRequest;
37
+ private decodeGetattrResponse;
38
+ private decodeSetattrRequest;
39
+ private decodeSetattrResponse;
40
+ private decodeLookupRequest;
41
+ private decodeLookupResponse;
42
+ private decodeAccessRequest;
43
+ private decodeAccessResponse;
44
+ private decodeReadlinkRequest;
45
+ private decodeReadlinkResponse;
46
+ private decodeReadRequest;
47
+ private decodeReadResponse;
48
+ private decodeWriteRequest;
49
+ private decodeWriteResponse;
50
+ private decodeCreateRequest;
51
+ private decodeCreateResponse;
52
+ private decodeMkdirRequest;
53
+ private decodeMkdirResponse;
54
+ private decodeSymlinkRequest;
55
+ private decodeSymlinkResponse;
56
+ private decodeMknodRequest;
57
+ private decodeMknodResponse;
58
+ private decodeRemoveRequest;
59
+ private decodeRemoveResponse;
60
+ private decodeRmdirRequest;
61
+ private decodeRmdirResponse;
62
+ private decodeRenameRequest;
63
+ private decodeRenameResponse;
64
+ private decodeLinkRequest;
65
+ private decodeLinkResponse;
66
+ private decodeReaddirRequest;
67
+ private decodeReaddirResponse;
68
+ private decodeReaddirplusRequest;
69
+ private decodeReaddirplusResponse;
70
+ private decodeFsstatRequest;
71
+ private decodeFsstatResponse;
72
+ private decodeFsinfoRequest;
73
+ private decodeFsinfoResponse;
74
+ private decodePathconfRequest;
75
+ private decodePathconfResponse;
76
+ private decodeCommitRequest;
77
+ private decodeCommitResponse;
78
+ }