@jsonjoy.com/json-pack 1.18.0 → 1.19.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.
@@ -0,0 +1,28 @@
1
+ import { Nfsv4Encoder } from './Nfsv4Encoder';
2
+ import { RpcMessageEncoder } from '../../rpc/RpcMessageEncoder';
3
+ import { RmRecordEncoder } from '../../rm/RmRecordEncoder';
4
+ import { Nfsv4Proc } 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 FullNfsv4Encoder<W extends IWriter & IWriterGrowable = IWriter & IWriterGrowable> {
9
+ program: number;
10
+ readonly writer: W;
11
+ protected readonly nfsEncoder: Nfsv4Encoder<W>;
12
+ protected readonly rpcEncoder: RpcMessageEncoder<W>;
13
+ protected readonly rmEncoder: RmRecordEncoder<W>;
14
+ constructor(program?: number, writer?: W);
15
+ encodeCall(xid: number, proc: Nfsv4Proc, cred: RpcOpaqueAuth, verf: RpcOpaqueAuth, request: msg.Nfsv4CompoundRequest): Uint8Array;
16
+ writeCall(xid: number, proc: Nfsv4Proc, cred: RpcOpaqueAuth, verf: RpcOpaqueAuth, request: msg.Nfsv4CompoundRequest): void;
17
+ encodeAcceptedReply(xid: number, proc: Nfsv4Proc, verf: RpcOpaqueAuth, response: msg.Nfsv4CompoundResponse): Uint8Array;
18
+ writeAcceptedReply(xid: number, proc: Nfsv4Proc, verf: RpcOpaqueAuth, response: msg.Nfsv4CompoundResponse): 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.FullNfsv4Encoder = void 0;
4
+ const Writer_1 = require("@jsonjoy.com/util/lib/buffers/Writer");
5
+ const Nfsv4Encoder_1 = require("./Nfsv4Encoder");
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 FullNfsv4Encoder {
11
+ constructor(program = 100003, writer = new Writer_1.Writer()) {
12
+ this.program = program;
13
+ this.writer = writer;
14
+ this.nfsEncoder = new Nfsv4Encoder_1.Nfsv4Encoder(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, 4, proc, cred, verf);
27
+ this.nfsEncoder.writeCompound(request, 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.writeCompound(response, 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.FullNfsv4Encoder = FullNfsv4Encoder;
73
+ //# sourceMappingURL=FullNfsv4Encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullNfsv4Encoder.js","sourceRoot":"","sources":["../../../src/nfs/v4/FullNfsv4Encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { Reader } from '@jsonjoy.com/buffers/lib/Reader';
2
+ import { XdrDecoder } from '../../xdr/XdrDecoder';
3
+ import * as msg from './messages';
4
+ export declare class Nfsv4Decoder {
5
+ protected readonly xdr: XdrDecoder;
6
+ constructor(reader?: Reader);
7
+ decodeCompound(reader: Reader, isRequest: boolean): msg.Nfsv4CompoundRequest | msg.Nfsv4CompoundResponse | undefined;
8
+ private decodeCompoundRequest;
9
+ private decodeCompoundResponse;
10
+ private decodeRequest;
11
+ private decodeResponse;
12
+ private readFh;
13
+ private readVerifier;
14
+ private readTime;
15
+ private readStateid;
16
+ private readBitmap;
17
+ private readFattr;
18
+ private readChangeInfo;
19
+ private readClientAddr;
20
+ private readCbClient;
21
+ private readClientId;
22
+ private readOpenOwner;
23
+ private readLockOwner;
24
+ private readOpenToLockOwner;
25
+ private readLockOwnerInfo;
26
+ private readOpenClaim;
27
+ private readOpenDelegation;
28
+ private readAce;
29
+ private readSecInfoFlavor;
30
+ private decodeAccessRequest;
31
+ private decodeAccessResponse;
32
+ private decodeCloseRequest;
33
+ private decodeCloseResponse;
34
+ private decodeCommitRequest;
35
+ private decodeCommitResponse;
36
+ private decodeCreateRequest;
37
+ private decodeCreateResponse;
38
+ private decodeDelegpurgeRequest;
39
+ private decodeDelegpurgeResponse;
40
+ private decodeDelegreturnRequest;
41
+ private decodeDelegreturnResponse;
42
+ private decodeGetattrRequest;
43
+ private decodeGetattrResponse;
44
+ private decodeGetfhRequest;
45
+ private decodeGetfhResponse;
46
+ private decodeLinkRequest;
47
+ private decodeLinkResponse;
48
+ private decodeLockRequest;
49
+ private decodeLockResponse;
50
+ private decodeLocktRequest;
51
+ private decodeLocktResponse;
52
+ private decodeLockuRequest;
53
+ private decodeLockuResponse;
54
+ private decodeLookupRequest;
55
+ private decodeLookupResponse;
56
+ private decodeLookuppRequest;
57
+ private decodeLookuppResponse;
58
+ private decodeNverifyRequest;
59
+ private decodeNverifyResponse;
60
+ private decodeOpenRequest;
61
+ private decodeOpenResponse;
62
+ private decodeOpenattrRequest;
63
+ private decodeOpenattrResponse;
64
+ private decodeOpenConfirmRequest;
65
+ private decodeOpenConfirmResponse;
66
+ private decodeOpenDowngradeRequest;
67
+ private decodeOpenDowngradeResponse;
68
+ private decodePutfhRequest;
69
+ private decodePutfhResponse;
70
+ private decodePutpubfhRequest;
71
+ private decodePutpubfhResponse;
72
+ private decodePutrootfhRequest;
73
+ private decodePutrootfhResponse;
74
+ private decodeReadRequest;
75
+ private decodeReadResponse;
76
+ private decodeReaddirRequest;
77
+ private decodeReaddirResponse;
78
+ private decodeReadlinkRequest;
79
+ private decodeReadlinkResponse;
80
+ private decodeRemoveRequest;
81
+ private decodeRemoveResponse;
82
+ private decodeRenameRequest;
83
+ private decodeRenameResponse;
84
+ private decodeRenewRequest;
85
+ private decodeRenewResponse;
86
+ private decodeRestorefhRequest;
87
+ private decodeRestorefhResponse;
88
+ private decodeSavefhRequest;
89
+ private decodeSavefhResponse;
90
+ private decodeSecinfoRequest;
91
+ private decodeSecinfoResponse;
92
+ private decodeSetattrRequest;
93
+ private decodeSetattrResponse;
94
+ private decodeSetclientidRequest;
95
+ private decodeSetclientidResponse;
96
+ private decodeSetclientidConfirmRequest;
97
+ private decodeSetclientidConfirmResponse;
98
+ private decodeVerifyRequest;
99
+ private decodeVerifyResponse;
100
+ private decodeWriteRequest;
101
+ private decodeWriteResponse;
102
+ private decodeReleaseLockOwnerRequest;
103
+ private decodeReleaseLockOwnerResponse;
104
+ private decodeIllegalRequest;
105
+ private decodeIllegalResponse;
106
+ }