@jsonjoy.com/json-pack 1.20.0 → 17.59.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.
- package/lib/JsonPackExtension.d.ts +8 -0
- package/lib/JsonPackExtension.js +8 -0
- package/lib/JsonPackExtension.js.map +1 -1
- package/lib/JsonPackMpint.d.ts +25 -0
- package/lib/JsonPackMpint.js +31 -1
- package/lib/JsonPackMpint.js.map +1 -1
- package/lib/JsonPackValue.d.ts +10 -0
- package/lib/JsonPackValue.js +10 -0
- package/lib/JsonPackValue.js.map +1 -1
- package/lib/avro/AvroDecoder.d.ts +67 -0
- package/lib/avro/AvroDecoder.js +77 -5
- package/lib/avro/AvroDecoder.js.map +1 -1
- package/lib/avro/AvroEncoder.d.ts +71 -0
- package/lib/avro/AvroEncoder.js +90 -12
- package/lib/avro/AvroEncoder.js.map +1 -1
- package/lib/avro/AvroSchemaDecoder.d.ts +53 -0
- package/lib/avro/AvroSchemaDecoder.js +60 -3
- package/lib/avro/AvroSchemaDecoder.js.map +1 -1
- package/lib/avro/AvroSchemaEncoder.d.ts +65 -0
- package/lib/avro/AvroSchemaEncoder.js +84 -5
- package/lib/avro/AvroSchemaEncoder.js.map +1 -1
- package/lib/avro/AvroSchemaValidator.d.ts +10 -0
- package/lib/avro/AvroSchemaValidator.js +18 -1
- package/lib/avro/AvroSchemaValidator.js.map +1 -1
- package/lib/avro/types.d.ts +31 -0
- package/lib/avro/types.js +4 -0
- package/lib/avro/types.js.map +1 -1
- package/lib/bencode/BencodeDecoder.js +9 -9
- package/lib/bencode/BencodeDecoder.js.map +1 -1
- package/lib/bencode/BencodeEncoder.d.ts +5 -0
- package/lib/bencode/BencodeEncoder.js +25 -20
- package/lib/bencode/BencodeEncoder.js.map +1 -1
- package/lib/bson/BsonDecoder.js +48 -33
- package/lib/bson/BsonDecoder.js.map +1 -1
- package/lib/bson/BsonEncoder.js +11 -3
- package/lib/bson/BsonEncoder.js.map +1 -1
- package/lib/cbor/CborDecoder.d.ts +24 -0
- package/lib/cbor/CborDecoder.js +94 -56
- package/lib/cbor/CborDecoder.js.map +1 -1
- package/lib/cbor/CborDecoderBase.d.ts +1 -0
- package/lib/cbor/CborDecoderBase.js +63 -53
- package/lib/cbor/CborDecoderBase.js.map +1 -1
- package/lib/cbor/CborEncoder.d.ts +5 -0
- package/lib/cbor/CborEncoder.js +9 -3
- package/lib/cbor/CborEncoder.js.map +1 -1
- package/lib/cbor/CborEncoderFast.d.ts +7 -0
- package/lib/cbor/CborEncoderFast.js +22 -14
- package/lib/cbor/CborEncoderFast.js.map +1 -1
- package/lib/cbor/CborEncoderStable.d.ts +1 -0
- package/lib/cbor/CborEncoderStable.js +2 -1
- package/lib/cbor/CborEncoderStable.js.map +1 -1
- package/lib/cbor/shared.d.ts +1 -1
- package/lib/codecs/Codecs.d.ts +1 -1
- package/lib/codecs/cbor.js +1 -1
- package/lib/codecs/cbor.js.map +1 -1
- package/lib/codecs/json.js +1 -1
- package/lib/codecs/json.js.map +1 -1
- package/lib/codecs/msgpack.js +1 -1
- package/lib/codecs/msgpack.js.map +1 -1
- package/lib/ejson/EjsonDecoder.d.ts +5 -0
- package/lib/ejson/EjsonDecoder.js +72 -37
- package/lib/ejson/EjsonDecoder.js.map +1 -1
- package/lib/ejson/EjsonEncoder.d.ts +5 -0
- package/lib/ejson/EjsonEncoder.js +149 -114
- package/lib/ejson/EjsonEncoder.js.map +1 -1
- package/lib/ejson/index.js +1 -0
- package/lib/ejson/index.js.map +1 -1
- package/lib/ion/Import.d.ts +1 -1
- package/lib/ion/Import.js.map +1 -1
- package/lib/ion/IonDecoder.d.ts +0 -1
- package/lib/ion/IonDecoder.js +4 -3
- package/lib/ion/IonDecoder.js.map +1 -1
- package/lib/ion/IonDecoderBase.js +29 -18
- package/lib/ion/IonDecoderBase.js.map +1 -1
- package/lib/ion/IonEncoderFast.d.ts +1 -1
- package/lib/ion/IonEncoderFast.js +30 -30
- package/lib/ion/IonEncoderFast.js.map +1 -1
- package/lib/ion/ast.d.ts +4 -1
- package/lib/ion/symbols.d.ts +1 -1
- package/lib/json/JsonDecoder.js +72 -66
- package/lib/json/JsonDecoder.js.map +1 -1
- package/lib/json/JsonDecoderDag.js +14 -0
- package/lib/json/JsonDecoderDag.js.map +1 -1
- package/lib/json/JsonDecoderPartial.d.ts +22 -0
- package/lib/json/JsonDecoderPartial.js +30 -8
- package/lib/json/JsonDecoderPartial.js.map +1 -1
- package/lib/json/JsonEncoder.d.ts +5 -0
- package/lib/json/JsonEncoder.js +68 -54
- package/lib/json/JsonEncoder.js.map +1 -1
- package/lib/json/JsonEncoderDag.d.ts +17 -0
- package/lib/json/JsonEncoderDag.js +27 -10
- package/lib/json/JsonEncoderDag.js.map +1 -1
- package/lib/json/JsonEncoderStable.js +5 -5
- package/lib/json/JsonEncoderStable.js.map +1 -1
- package/lib/json-binary/codec.d.ts +8 -1
- package/lib/json-binary/codec.js +7 -0
- package/lib/json-binary/codec.js.map +1 -1
- package/lib/msgpack/MsgPackDecoder.d.ts +27 -0
- package/lib/msgpack/MsgPackDecoder.js +55 -23
- package/lib/msgpack/MsgPackDecoder.js.map +1 -1
- package/lib/msgpack/MsgPackDecoderFast.d.ts +8 -0
- package/lib/msgpack/MsgPackDecoderFast.js +14 -5
- package/lib/msgpack/MsgPackDecoderFast.js.map +1 -1
- package/lib/msgpack/MsgPackEncoder.d.ts +3 -0
- package/lib/msgpack/MsgPackEncoder.js +7 -4
- package/lib/msgpack/MsgPackEncoder.js.map +1 -1
- package/lib/msgpack/MsgPackEncoderFast.d.ts +26 -4
- package/lib/msgpack/MsgPackEncoderFast.js +31 -0
- package/lib/msgpack/MsgPackEncoderFast.js.map +1 -1
- package/lib/msgpack/MsgPackEncoderStable.d.ts +3 -0
- package/lib/msgpack/MsgPackEncoderStable.js +3 -0
- package/lib/msgpack/MsgPackEncoderStable.js.map +1 -1
- package/lib/msgpack/MsgPackToJsonConverter.d.ts +30 -4
- package/lib/msgpack/MsgPackToJsonConverter.js +32 -5
- package/lib/msgpack/MsgPackToJsonConverter.js.map +1 -1
- package/lib/msgpack/index.d.ts +29 -0
- package/lib/msgpack/index.js +30 -0
- package/lib/msgpack/index.js.map +1 -1
- package/lib/msgpack/shallow-read.js +7 -7
- package/lib/msgpack/shallow-read.js.map +1 -1
- package/lib/msgpack/types.d.ts +1 -0
- package/lib/msgpack/util.d.ts +1 -1
- package/lib/nfs/v3/FullNfsv3Encoder.d.ts +3 -3
- package/lib/nfs/v3/FullNfsv3Encoder.js +3 -3
- package/lib/nfs/v3/FullNfsv3Encoder.js.map +1 -1
- package/lib/nfs/v3/Nfsv3Decoder.js +51 -50
- package/lib/nfs/v3/Nfsv3Decoder.js.map +1 -1
- package/lib/nfs/v3/Nfsv3Encoder.d.ts +2 -2
- package/lib/nfs/v3/Nfsv3Encoder.js +52 -52
- package/lib/nfs/v3/Nfsv3Encoder.js.map +1 -1
- package/lib/nfs/v3/constants.d.ts +34 -0
- package/lib/nfs/v3/constants.js +4 -0
- package/lib/nfs/v3/constants.js.map +1 -1
- package/lib/nfs/v3/locks/NlmDecoder.js +20 -20
- package/lib/nfs/v3/locks/NlmDecoder.js.map +1 -1
- package/lib/nfs/v3/locks/NlmEncoder.d.ts +2 -2
- package/lib/nfs/v3/locks/NlmEncoder.js +20 -20
- package/lib/nfs/v3/locks/NlmEncoder.js.map +1 -1
- package/lib/nfs/v3/locks/constants.d.ts +9 -0
- package/lib/nfs/v3/locks/messages.d.ts +58 -1
- package/lib/nfs/v3/locks/messages.js +54 -0
- package/lib/nfs/v3/locks/messages.js.map +1 -1
- package/lib/nfs/v3/locks/structs.d.ts +15 -0
- package/lib/nfs/v3/locks/structs.js +15 -0
- package/lib/nfs/v3/locks/structs.js.map +1 -1
- package/lib/nfs/v3/messages.d.ts +249 -0
- package/lib/nfs/v3/messages.js +249 -0
- package/lib/nfs/v3/messages.js.map +1 -1
- package/lib/nfs/v3/mount/MountDecoder.js +12 -12
- package/lib/nfs/v3/mount/MountEncoder.d.ts +2 -2
- package/lib/nfs/v3/mount/MountEncoder.js +13 -13
- package/lib/nfs/v3/mount/MountEncoder.js.map +1 -1
- package/lib/nfs/v3/mount/constants.d.ts +9 -0
- package/lib/nfs/v3/mount/messages.d.ts +31 -1
- package/lib/nfs/v3/mount/messages.js +27 -0
- package/lib/nfs/v3/mount/messages.js.map +1 -1
- package/lib/nfs/v3/mount/structs.d.ts +15 -0
- package/lib/nfs/v3/mount/structs.js +15 -0
- package/lib/nfs/v3/mount/structs.js.map +1 -1
- package/lib/nfs/v3/structs.d.ts +78 -0
- package/lib/nfs/v3/structs.js +78 -0
- package/lib/nfs/v3/structs.js.map +1 -1
- package/lib/nfs/v4/Nfsv4Decoder.d.ts +14 -12
- package/lib/nfs/v4/Nfsv4Decoder.js +241 -165
- package/lib/nfs/v4/Nfsv4Decoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4Encoder.d.ts +6 -93
- package/lib/nfs/v4/Nfsv4Encoder.js +8 -824
- package/lib/nfs/v4/Nfsv4Encoder.js.map +1 -1
- package/lib/nfs/v4/Nfsv4FullEncoder.d.ts +32 -0
- package/lib/nfs/v4/Nfsv4FullEncoder.js +72 -0
- package/lib/nfs/v4/Nfsv4FullEncoder.js.map +1 -0
- package/lib/nfs/v4/attributes.d.ts +79 -0
- package/lib/nfs/v4/attributes.js +265 -0
- package/lib/nfs/v4/attributes.js.map +1 -0
- package/lib/nfs/v4/builder.d.ts +333 -0
- package/lib/nfs/v4/builder.js +460 -0
- package/lib/nfs/v4/builder.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsDir.d.ts +23 -0
- package/lib/nfs/v4/client/NfsFsDir.js +132 -0
- package/lib/nfs/v4/client/NfsFsDir.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsDirent.d.ts +17 -0
- package/lib/nfs/v4/client/NfsFsDirent.js +35 -0
- package/lib/nfs/v4/client/NfsFsDirent.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.d.ts +35 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.js +271 -0
- package/lib/nfs/v4/client/NfsFsFileHandle.js.map +1 -0
- package/lib/nfs/v4/client/NfsFsStats.d.ts +34 -0
- package/lib/nfs/v4/client/NfsFsStats.js +52 -0
- package/lib/nfs/v4/client/NfsFsStats.js.map +1 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.d.ts +53 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.js +812 -0
- package/lib/nfs/v4/client/Nfsv4FsClient.js.map +1 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.d.ts +41 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.js +216 -0
- package/lib/nfs/v4/client/Nfsv4TcpClient.js.map +1 -0
- package/lib/nfs/v4/client/types.d.ts +9 -0
- package/lib/nfs/v4/client/types.js +3 -0
- package/lib/nfs/v4/client/types.js.map +1 -0
- package/lib/nfs/v4/constants.d.ts +80 -0
- package/lib/nfs/v4/constants.js +4 -0
- package/lib/nfs/v4/constants.js.map +1 -1
- package/lib/nfs/v4/format.d.ts +23 -0
- package/lib/nfs/v4/format.js +870 -0
- package/lib/nfs/v4/format.js.map +1 -0
- package/lib/nfs/v4/index.d.ts +3 -1
- package/lib/nfs/v4/index.js +3 -1
- package/lib/nfs/v4/index.js.map +1 -1
- package/lib/nfs/v4/messages.d.ts +208 -90
- package/lib/nfs/v4/messages.js +585 -1
- package/lib/nfs/v4/messages.js.map +1 -1
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.d.ts +30 -0
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js +176 -0
- package/lib/nfs/v4/server/Nfsv4CompoundProcCtx.js.map +1 -0
- package/lib/nfs/v4/server/Nfsv4Connection.d.ts +45 -0
- package/lib/nfs/v4/server/Nfsv4Connection.js +163 -0
- package/lib/nfs/v4/server/Nfsv4Connection.js.map +1 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.d.ts +25 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.js +92 -0
- package/lib/nfs/v4/server/Nfsv4TcpServer.js.map +1 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.d.ts +79 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.js +63 -0
- package/lib/nfs/v4/server/operations/ByteRangeLock.js.map +1 -0
- package/lib/nfs/v4/server/operations/ClientRecord.d.ts +110 -0
- package/lib/nfs/v4/server/operations/ClientRecord.js +70 -0
- package/lib/nfs/v4/server/operations/ClientRecord.js.map +1 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.d.ts +30 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.js +30 -0
- package/lib/nfs/v4/server/operations/FilesystemStats.js.map +1 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.d.ts +82 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.js +57 -0
- package/lib/nfs/v4/server/operations/LockOwnerState.js.map +1 -0
- package/lib/nfs/v4/server/operations/LockStateid.d.ts +64 -0
- package/lib/nfs/v4/server/operations/LockStateid.js +58 -0
- package/lib/nfs/v4/server/operations/LockStateid.js.map +1 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.d.ts +45 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.js +3 -0
- package/lib/nfs/v4/server/operations/Nfsv4Operations.js.map +1 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.d.ts +42 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js +159 -0
- package/lib/nfs/v4/server/operations/Nfsv4OperationsNotImpl.js.map +1 -0
- package/lib/nfs/v4/server/operations/OpenFileState.d.ts +102 -0
- package/lib/nfs/v4/server/operations/OpenFileState.js +68 -0
- package/lib/nfs/v4/server/operations/OpenFileState.js.map +1 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.d.ts +83 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.js +58 -0
- package/lib/nfs/v4/server/operations/OpenOwnerState.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.d.ts +169 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js +1474 -0
- package/lib/nfs/v4/server/operations/node/Nfsv4OperationsNode.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/attrs.d.ts +17 -0
- package/lib/nfs/v4/server/operations/node/attrs.js +275 -0
- package/lib/nfs/v4/server/operations/node/attrs.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/fh.d.ts +93 -0
- package/lib/nfs/v4/server/operations/node/fh.js +209 -0
- package/lib/nfs/v4/server/operations/node/fh.js.map +1 -0
- package/lib/nfs/v4/server/operations/node/util.d.ts +4 -0
- package/lib/nfs/v4/server/operations/node/util.js +17 -0
- package/lib/nfs/v4/server/operations/node/util.js.map +1 -0
- package/lib/nfs/v4/server/types.d.ts +4 -0
- package/lib/nfs/v4/server/types.js +3 -0
- package/lib/nfs/v4/server/types.js.map +1 -0
- package/lib/nfs/v4/server/util.d.ts +5 -0
- package/lib/nfs/v4/server/util.js +184 -0
- package/lib/nfs/v4/server/util.js.map +1 -0
- package/lib/nfs/v4/structs.d.ts +243 -56
- package/lib/nfs/v4/structs.js +367 -17
- package/lib/nfs/v4/structs.js.map +1 -1
- package/lib/resp/RespDecoder.d.ts +9 -0
- package/lib/resp/RespDecoder.js +93 -76
- package/lib/resp/RespDecoder.js.map +1 -1
- package/lib/resp/RespEncoder.d.ts +8 -0
- package/lib/resp/RespEncoder.js +107 -89
- package/lib/resp/RespEncoder.js.map +1 -1
- package/lib/resp/RespEncoderLegacy.d.ts +3 -0
- package/lib/resp/RespEncoderLegacy.js +7 -4
- package/lib/resp/RespEncoderLegacy.js.map +1 -1
- package/lib/resp/RespStreamingDecoder.d.ts +48 -0
- package/lib/resp/RespStreamingDecoder.js +48 -0
- package/lib/resp/RespStreamingDecoder.js.map +1 -1
- package/lib/resp/constants.d.ts +19 -19
- package/lib/rm/RmRecordDecoder.js.map +1 -1
- package/lib/rm/RmRecordEncoder.d.ts +17 -1
- package/lib/rm/RmRecordEncoder.js +40 -1
- package/lib/rm/RmRecordEncoder.js.map +1 -1
- package/lib/rpc/RpcMessageDecoder.d.ts +1 -1
- package/lib/rpc/RpcMessageDecoder.js +11 -8
- package/lib/rpc/RpcMessageDecoder.js.map +1 -1
- package/lib/rpc/RpcMessageEncoder.d.ts +2 -2
- package/lib/rpc/RpcMessageEncoder.js +6 -6
- package/lib/rpc/RpcMessageEncoder.js.map +1 -1
- package/lib/rpc/constants.d.ts +76 -28
- package/lib/rpc/constants.js +10 -0
- package/lib/rpc/constants.js.map +1 -1
- package/lib/ssh/SshDecoder.d.ts +47 -1
- package/lib/ssh/SshDecoder.js +52 -2
- package/lib/ssh/SshDecoder.js.map +1 -1
- package/lib/ssh/SshEncoder.d.ts +70 -1
- package/lib/ssh/SshEncoder.js +81 -8
- package/lib/ssh/SshEncoder.js.map +1 -1
- package/lib/ssh/index.d.ts +6 -0
- package/lib/ssh/index.js +6 -0
- package/lib/ssh/index.js.map +1 -1
- package/lib/ubjson/UbjsonDecoder.js +1 -1
- package/lib/ubjson/UbjsonDecoder.js.map +1 -1
- package/lib/ubjson/UbjsonEncoder.js +6 -5
- package/lib/ubjson/UbjsonEncoder.js.map +1 -1
- package/lib/util/CompressionTable.js +4 -4
- package/lib/util/CompressionTable.js.map +1 -1
- package/lib/util/DecompressionTable.js +3 -2
- package/lib/util/DecompressionTable.js.map +1 -1
- package/lib/ws/WsFrameDecoder.d.ts +18 -0
- package/lib/ws/WsFrameDecoder.js +18 -0
- package/lib/ws/WsFrameDecoder.js.map +1 -1
- package/lib/ws/WsFrameEncoder.d.ts +1 -1
- package/lib/ws/WsFrameEncoder.js +3 -3
- package/lib/ws/WsFrameEncoder.js.map +1 -1
- package/lib/ws/constants.js +5 -0
- package/lib/ws/constants.js.map +1 -1
- package/lib/xdr/XdrDecoder.d.ts +62 -0
- package/lib/xdr/XdrDecoder.js +73 -6
- package/lib/xdr/XdrDecoder.js.map +1 -1
- package/lib/xdr/XdrEncoder.d.ts +71 -0
- package/lib/xdr/XdrEncoder.js +88 -13
- package/lib/xdr/XdrEncoder.js.map +1 -1
- package/lib/xdr/XdrSchemaDecoder.d.ts +40 -0
- package/lib/xdr/XdrSchemaDecoder.js +52 -0
- package/lib/xdr/XdrSchemaDecoder.js.map +1 -1
- package/lib/xdr/XdrSchemaEncoder.d.ts +5 -0
- package/lib/xdr/XdrSchemaEncoder.js +9 -0
- package/lib/xdr/XdrSchemaEncoder.js.map +1 -1
- package/lib/xdr/XdrSchemaValidator.d.ts +9 -0
- package/lib/xdr/XdrSchemaValidator.js +42 -11
- package/lib/xdr/XdrSchemaValidator.js.map +1 -1
- package/lib/xdr/XdrUnion.d.ts +5 -0
- package/lib/xdr/XdrUnion.js +5 -0
- package/lib/xdr/XdrUnion.js.map +1 -1
- package/lib/xdr/index.d.ts +14 -0
- package/lib/xdr/index.js +14 -0
- package/lib/xdr/index.js.map +1 -1
- package/lib/xdr/types.d.ts +52 -0
- package/package.json +35 -56
- package/lib/nfs/v4/FullNfsv4Encoder.d.ts +0 -28
- package/lib/nfs/v4/FullNfsv4Encoder.js +0 -73
- package/lib/nfs/v4/FullNfsv4Encoder.js.map +0 -1
package/lib/xdr/XdrEncoder.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.XdrEncoder = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* XDR (External Data Representation) binary encoder for basic value encoding.
|
|
6
|
+
* Implements XDR binary encoding according to RFC 4506.
|
|
7
|
+
*
|
|
8
|
+
* Key XDR encoding principles:
|
|
9
|
+
* - All data types are aligned to 4-byte boundaries
|
|
10
|
+
* - Multi-byte quantities are transmitted in big-endian byte order
|
|
11
|
+
* - Strings and opaque data are padded to 4-byte boundaries
|
|
12
|
+
* - Variable-length arrays and strings are preceded by their length
|
|
13
|
+
*/
|
|
4
14
|
class XdrEncoder {
|
|
5
15
|
constructor(writer) {
|
|
6
16
|
this.writer = writer;
|
|
@@ -11,6 +21,9 @@ class XdrEncoder {
|
|
|
11
21
|
this.writeAny(value);
|
|
12
22
|
return writer.flush();
|
|
13
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Called when the encoder encounters a value that it does not know how to encode.
|
|
26
|
+
*/
|
|
14
27
|
writeUnknown(value) {
|
|
15
28
|
this.writeVoid();
|
|
16
29
|
}
|
|
@@ -25,8 +38,8 @@ class XdrEncoder {
|
|
|
25
38
|
case 'object': {
|
|
26
39
|
if (value === null)
|
|
27
40
|
return this.writeVoid();
|
|
28
|
-
const
|
|
29
|
-
switch (
|
|
41
|
+
const construct = value.constructor;
|
|
42
|
+
switch (construct) {
|
|
30
43
|
case Uint8Array:
|
|
31
44
|
return this.writeBin(value);
|
|
32
45
|
default:
|
|
@@ -41,71 +54,107 @@ class XdrEncoder {
|
|
|
41
54
|
return this.writeUnknown(value);
|
|
42
55
|
}
|
|
43
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Writes an XDR void value (no data is actually written).
|
|
59
|
+
*/
|
|
44
60
|
writeVoid() {
|
|
61
|
+
// Void values are encoded as no data
|
|
45
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Writes an XDR null value (for interface compatibility).
|
|
65
|
+
*/
|
|
46
66
|
writeNull() {
|
|
47
67
|
this.writeVoid();
|
|
48
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Writes an XDR boolean value as a 4-byte integer.
|
|
71
|
+
*/
|
|
49
72
|
writeBoolean(bool) {
|
|
50
73
|
this.writeInt(bool ? 1 : 0);
|
|
51
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Writes an XDR signed 32-bit integer in big-endian format.
|
|
77
|
+
*/
|
|
52
78
|
writeInt(int) {
|
|
53
79
|
const writer = this.writer;
|
|
54
80
|
writer.ensureCapacity(4);
|
|
55
|
-
writer.view.setInt32(writer.x, Math.trunc(int), false);
|
|
81
|
+
writer.view.setInt32(writer.x, Math.trunc(int), false); // big-endian
|
|
56
82
|
writer.move(4);
|
|
57
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Writes an XDR unsigned 32-bit integer in big-endian format.
|
|
86
|
+
*/
|
|
58
87
|
writeUnsignedInt(uint) {
|
|
59
88
|
const writer = this.writer;
|
|
60
89
|
writer.ensureCapacity(4);
|
|
61
|
-
writer.view.setUint32(writer.x, Math.trunc(uint) >>> 0, false);
|
|
90
|
+
writer.view.setUint32(writer.x, Math.trunc(uint) >>> 0, false); // big-endian
|
|
62
91
|
writer.move(4);
|
|
63
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Writes an XDR signed 64-bit integer (hyper) in big-endian format.
|
|
95
|
+
*/
|
|
64
96
|
writeHyper(hyper) {
|
|
65
97
|
const writer = this.writer;
|
|
66
98
|
writer.ensureCapacity(8);
|
|
67
99
|
if (typeof hyper === 'bigint') {
|
|
68
|
-
writer.view.setBigInt64(writer.x, hyper, false);
|
|
100
|
+
writer.view.setBigInt64(writer.x, hyper, false); // big-endian
|
|
69
101
|
}
|
|
70
102
|
else {
|
|
71
103
|
const truncated = Math.trunc(hyper);
|
|
72
104
|
const high = Math.floor(truncated / 0x100000000);
|
|
73
105
|
const low = truncated >>> 0;
|
|
74
|
-
writer.view.setInt32(writer.x, high, false);
|
|
75
|
-
writer.view.setUint32(writer.x + 4, low, false);
|
|
106
|
+
writer.view.setInt32(writer.x, high, false); // high 32 bits
|
|
107
|
+
writer.view.setUint32(writer.x + 4, low, false); // low 32 bits
|
|
76
108
|
}
|
|
77
109
|
writer.move(8);
|
|
78
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Writes an XDR unsigned 64-bit integer (unsigned hyper) in big-endian format.
|
|
113
|
+
*/
|
|
79
114
|
writeUnsignedHyper(uhyper) {
|
|
80
115
|
const writer = this.writer;
|
|
81
116
|
writer.ensureCapacity(8);
|
|
82
117
|
if (typeof uhyper === 'bigint') {
|
|
83
|
-
writer.view.setBigUint64(writer.x, uhyper, false);
|
|
118
|
+
writer.view.setBigUint64(writer.x, uhyper, false); // big-endian
|
|
84
119
|
}
|
|
85
120
|
else {
|
|
86
121
|
const truncated = Math.trunc(Math.abs(uhyper));
|
|
87
122
|
const high = Math.floor(truncated / 0x100000000);
|
|
88
123
|
const low = truncated >>> 0;
|
|
89
|
-
writer.view.setUint32(writer.x, high, false);
|
|
90
|
-
writer.view.setUint32(writer.x + 4, low, false);
|
|
124
|
+
writer.view.setUint32(writer.x, high, false); // high 32 bits
|
|
125
|
+
writer.view.setUint32(writer.x + 4, low, false); // low 32 bits
|
|
91
126
|
}
|
|
92
127
|
writer.move(8);
|
|
93
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Writes an XDR float value using IEEE 754 single-precision in big-endian format.
|
|
131
|
+
*/
|
|
94
132
|
writeFloat(float) {
|
|
95
133
|
const writer = this.writer;
|
|
96
134
|
writer.ensureCapacity(4);
|
|
97
|
-
writer.view.setFloat32(writer.x, float, false);
|
|
135
|
+
writer.view.setFloat32(writer.x, float, false); // big-endian
|
|
98
136
|
writer.move(4);
|
|
99
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Writes an XDR double value using IEEE 754 double-precision in big-endian format.
|
|
140
|
+
*/
|
|
100
141
|
writeDouble(double) {
|
|
101
142
|
const writer = this.writer;
|
|
102
143
|
writer.ensureCapacity(8);
|
|
103
|
-
writer.view.setFloat64(writer.x, double, false);
|
|
144
|
+
writer.view.setFloat64(writer.x, double, false); // big-endian
|
|
104
145
|
writer.move(8);
|
|
105
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Writes an XDR quadruple value (128-bit float).
|
|
149
|
+
* Note: JavaScript doesn't have native 128-bit float support.
|
|
150
|
+
*/
|
|
106
151
|
writeQuadruple(quad) {
|
|
107
152
|
throw new Error('not implemented');
|
|
108
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Writes XDR opaque data with fixed length.
|
|
156
|
+
* Data is padded to 4-byte boundary.
|
|
157
|
+
*/
|
|
109
158
|
writeOpaque(data) {
|
|
110
159
|
const size = data.length;
|
|
111
160
|
const writer = this.writer;
|
|
@@ -116,19 +165,29 @@ class XdrEncoder {
|
|
|
116
165
|
for (let i = 0; i < padding; i++)
|
|
117
166
|
writer.u8(0);
|
|
118
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Writes XDR variable-length opaque data.
|
|
170
|
+
* Length is written first, followed by data padded to 4-byte boundary.
|
|
171
|
+
*/
|
|
119
172
|
writeVarlenOpaque(data) {
|
|
120
173
|
this.writeUnsignedInt(data.length);
|
|
121
174
|
this.writeOpaque(data);
|
|
122
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Writes an XDR string with UTF-8 encoding.
|
|
178
|
+
* Length is written first, followed by UTF-8 bytes padded to 4-byte boundary.
|
|
179
|
+
*/
|
|
123
180
|
writeStr(str) {
|
|
124
181
|
const writer = this.writer;
|
|
182
|
+
// Write string using writer's UTF-8 method and get actual byte count
|
|
125
183
|
const lengthOffset = writer.x;
|
|
126
|
-
writer.x += 4;
|
|
184
|
+
writer.x += 4; // Reserve space for length
|
|
127
185
|
const bytesWritten = writer.utf8(str);
|
|
128
186
|
const paddedSize = Math.ceil(bytesWritten / 4) * 4;
|
|
129
187
|
const padding = paddedSize - bytesWritten;
|
|
130
188
|
for (let i = 0; i < padding; i++)
|
|
131
189
|
writer.u8(0);
|
|
190
|
+
// Go back and write the actual byte length
|
|
132
191
|
const currentPos = writer.x;
|
|
133
192
|
writer.x = lengthOffset;
|
|
134
193
|
this.writeUnsignedInt(bytesWritten);
|
|
@@ -140,6 +199,10 @@ class XdrEncoder {
|
|
|
140
199
|
writeObj(obj) {
|
|
141
200
|
throw new Error('not implemented');
|
|
142
201
|
}
|
|
202
|
+
// BinaryJsonEncoder interface methods
|
|
203
|
+
/**
|
|
204
|
+
* Generic number writing - determines type based on value
|
|
205
|
+
*/
|
|
143
206
|
writeNumber(num) {
|
|
144
207
|
if (Number.isInteger(num)) {
|
|
145
208
|
if (num >= -2147483648 && num <= 2147483647)
|
|
@@ -150,15 +213,27 @@ class XdrEncoder {
|
|
|
150
213
|
else
|
|
151
214
|
this.writeDouble(num);
|
|
152
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Writes an integer value
|
|
218
|
+
*/
|
|
153
219
|
writeInteger(int) {
|
|
154
220
|
this.writeInt(int);
|
|
155
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Writes an unsigned integer value
|
|
224
|
+
*/
|
|
156
225
|
writeUInteger(uint) {
|
|
157
226
|
this.writeUnsignedInt(uint);
|
|
158
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Writes binary data
|
|
230
|
+
*/
|
|
159
231
|
writeBin(buf) {
|
|
160
232
|
this.writeVarlenOpaque(buf);
|
|
161
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Writes an ASCII string (same as regular string in XDR)
|
|
236
|
+
*/
|
|
162
237
|
writeAsciiStr(str) {
|
|
163
238
|
this.writeStr(str);
|
|
164
239
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XdrEncoder.js","sourceRoot":"","sources":["../../src/xdr/XdrEncoder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"XdrEncoder.js","sourceRoot":"","sources":["../../src/xdr/XdrEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,58 @@
|
|
|
1
1
|
import type { IReader, IReaderResettable } from '@jsonjoy.com/buffers/lib';
|
|
2
2
|
import type { XdrSchema } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* XDR (External Data Representation) schema-aware decoder.
|
|
5
|
+
* Decodes values according to provided XDR schemas with proper validation.
|
|
6
|
+
* Based on RFC 4506 specification.
|
|
7
|
+
*/
|
|
3
8
|
export declare class XdrSchemaDecoder {
|
|
4
9
|
readonly reader: IReader & IReaderResettable;
|
|
5
10
|
private decoder;
|
|
6
11
|
constructor(reader?: IReader & IReaderResettable);
|
|
12
|
+
/**
|
|
13
|
+
* Decodes a value according to the provided schema.
|
|
14
|
+
*/
|
|
7
15
|
decode(data: Uint8Array, schema: XdrSchema): unknown;
|
|
16
|
+
/**
|
|
17
|
+
* Reads a value according to its schema.
|
|
18
|
+
*/
|
|
8
19
|
private readValue;
|
|
20
|
+
/**
|
|
21
|
+
* Reads an enum value according to the enum schema.
|
|
22
|
+
*/
|
|
9
23
|
private readEnum;
|
|
24
|
+
/**
|
|
25
|
+
* Reads opaque data according to the opaque schema.
|
|
26
|
+
*/
|
|
10
27
|
private readOpaque;
|
|
28
|
+
/**
|
|
29
|
+
* Reads variable-length opaque data according to the schema.
|
|
30
|
+
*/
|
|
11
31
|
private readVarlenOpaque;
|
|
32
|
+
/**
|
|
33
|
+
* Reads a string according to the string schema.
|
|
34
|
+
*/
|
|
12
35
|
private readString;
|
|
36
|
+
/**
|
|
37
|
+
* Reads a fixed-size array according to the array schema.
|
|
38
|
+
*/
|
|
13
39
|
private readArray;
|
|
40
|
+
/**
|
|
41
|
+
* Reads a variable-length array according to the schema.
|
|
42
|
+
*/
|
|
14
43
|
private readVarlenArray;
|
|
44
|
+
/**
|
|
45
|
+
* Reads a struct according to the struct schema.
|
|
46
|
+
*/
|
|
15
47
|
private readStruct;
|
|
48
|
+
/**
|
|
49
|
+
* Reads a union according to the union schema.
|
|
50
|
+
*/
|
|
16
51
|
private readUnion;
|
|
52
|
+
/**
|
|
53
|
+
* Reads optional-data according to the optional schema (RFC 1832 Section 3.19).
|
|
54
|
+
* Optional-data is syntactic sugar for a union with boolean discriminant.
|
|
55
|
+
* Returns null if opted is FALSE, otherwise returns the decoded value.
|
|
56
|
+
*/
|
|
17
57
|
private readOptional;
|
|
18
58
|
}
|
|
@@ -4,17 +4,29 @@ exports.XdrSchemaDecoder = void 0;
|
|
|
4
4
|
const Reader_1 = require("@jsonjoy.com/buffers/lib/Reader");
|
|
5
5
|
const XdrDecoder_1 = require("./XdrDecoder");
|
|
6
6
|
const XdrUnion_1 = require("./XdrUnion");
|
|
7
|
+
/**
|
|
8
|
+
* XDR (External Data Representation) schema-aware decoder.
|
|
9
|
+
* Decodes values according to provided XDR schemas with proper validation.
|
|
10
|
+
* Based on RFC 4506 specification.
|
|
11
|
+
*/
|
|
7
12
|
class XdrSchemaDecoder {
|
|
8
13
|
constructor(reader = new Reader_1.Reader()) {
|
|
9
14
|
this.reader = reader;
|
|
10
15
|
this.decoder = new XdrDecoder_1.XdrDecoder(reader);
|
|
11
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Decodes a value according to the provided schema.
|
|
19
|
+
*/
|
|
12
20
|
decode(data, schema) {
|
|
13
21
|
this.reader.reset(data);
|
|
14
22
|
return this.readValue(schema);
|
|
15
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Reads a value according to its schema.
|
|
26
|
+
*/
|
|
16
27
|
readValue(schema) {
|
|
17
28
|
switch (schema.type) {
|
|
29
|
+
// Primitive types
|
|
18
30
|
case 'void':
|
|
19
31
|
return this.decoder.readVoid();
|
|
20
32
|
case 'int':
|
|
@@ -35,12 +47,14 @@ class XdrSchemaDecoder {
|
|
|
35
47
|
return this.decoder.readQuadruple();
|
|
36
48
|
case 'enum':
|
|
37
49
|
return this.readEnum(schema);
|
|
50
|
+
// Wide primitive types
|
|
38
51
|
case 'opaque':
|
|
39
52
|
return this.readOpaque(schema);
|
|
40
53
|
case 'vopaque':
|
|
41
54
|
return this.readVarlenOpaque(schema);
|
|
42
55
|
case 'string':
|
|
43
56
|
return this.readString(schema);
|
|
57
|
+
// Composite types
|
|
44
58
|
case 'array':
|
|
45
59
|
return this.readArray(schema);
|
|
46
60
|
case 'varray':
|
|
@@ -52,47 +66,74 @@ class XdrSchemaDecoder {
|
|
|
52
66
|
case 'optional':
|
|
53
67
|
return this.readOptional(schema);
|
|
54
68
|
case 'const':
|
|
69
|
+
// Constants are not decoded; they have no runtime representation
|
|
55
70
|
return undefined;
|
|
56
71
|
default:
|
|
57
72
|
throw new Error(`Unknown schema type: ${schema.type}`);
|
|
58
73
|
}
|
|
59
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Reads an enum value according to the enum schema.
|
|
77
|
+
*/
|
|
60
78
|
readEnum(schema) {
|
|
61
79
|
const value = this.decoder.readEnum();
|
|
80
|
+
// Find the enum name for this value
|
|
62
81
|
for (const [name, enumValue] of Object.entries(schema.values)) {
|
|
63
82
|
if (enumValue === value) {
|
|
64
83
|
return name;
|
|
65
84
|
}
|
|
66
85
|
}
|
|
86
|
+
// If no matching name found, return the numeric value
|
|
67
87
|
return value;
|
|
68
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Reads opaque data according to the opaque schema.
|
|
91
|
+
*/
|
|
69
92
|
readOpaque(schema) {
|
|
70
93
|
return this.decoder.readOpaque(schema.size);
|
|
71
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Reads variable-length opaque data according to the schema.
|
|
97
|
+
*/
|
|
72
98
|
readVarlenOpaque(schema) {
|
|
73
99
|
const data = this.decoder.readVarlenOpaque();
|
|
100
|
+
// Check size constraint if specified
|
|
74
101
|
if (schema.size !== undefined && data.length > schema.size) {
|
|
75
102
|
throw new Error(`Variable-length opaque data size ${data.length} exceeds maximum ${schema.size}`);
|
|
76
103
|
}
|
|
77
104
|
return data;
|
|
78
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Reads a string according to the string schema.
|
|
108
|
+
*/
|
|
79
109
|
readString(schema) {
|
|
80
110
|
const str = this.decoder.readString();
|
|
111
|
+
// Check size constraint if specified
|
|
81
112
|
if (schema.size !== undefined && str.length > schema.size) {
|
|
82
113
|
throw new Error(`String length ${str.length} exceeds maximum ${schema.size}`);
|
|
83
114
|
}
|
|
84
115
|
return str;
|
|
85
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Reads a fixed-size array according to the array schema.
|
|
119
|
+
*/
|
|
86
120
|
readArray(schema) {
|
|
87
121
|
return this.decoder.readArray(schema.size, () => this.readValue(schema.elements));
|
|
88
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Reads a variable-length array according to the schema.
|
|
125
|
+
*/
|
|
89
126
|
readVarlenArray(schema) {
|
|
90
127
|
const array = this.decoder.readVarlenArray(() => this.readValue(schema.elements));
|
|
128
|
+
// Check size constraint if specified
|
|
91
129
|
if (schema.size !== undefined && array.length > schema.size) {
|
|
92
130
|
throw new Error(`Variable-length array size ${array.length} exceeds maximum ${schema.size}`);
|
|
93
131
|
}
|
|
94
132
|
return array;
|
|
95
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Reads a struct according to the struct schema.
|
|
136
|
+
*/
|
|
96
137
|
readStruct(schema) {
|
|
97
138
|
const struct = {};
|
|
98
139
|
for (const [fieldSchema, fieldName] of schema.fields) {
|
|
@@ -100,20 +141,31 @@ class XdrSchemaDecoder {
|
|
|
100
141
|
}
|
|
101
142
|
return struct;
|
|
102
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Reads a union according to the union schema.
|
|
146
|
+
*/
|
|
103
147
|
readUnion(schema) {
|
|
148
|
+
// Read discriminant
|
|
104
149
|
const discriminant = this.decoder.readInt();
|
|
150
|
+
// Find matching arm
|
|
105
151
|
for (const [armDiscriminant, armSchema] of schema.arms) {
|
|
106
152
|
if (armDiscriminant === discriminant) {
|
|
107
153
|
const value = this.readValue(armSchema);
|
|
108
154
|
return new XdrUnion_1.XdrUnion(discriminant, value);
|
|
109
155
|
}
|
|
110
156
|
}
|
|
157
|
+
// If no matching arm found, try default
|
|
111
158
|
if (schema.default) {
|
|
112
159
|
const value = this.readValue(schema.default);
|
|
113
160
|
return new XdrUnion_1.XdrUnion(discriminant, value);
|
|
114
161
|
}
|
|
115
162
|
throw new Error(`No matching union arm for discriminant: ${discriminant}`);
|
|
116
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Reads optional-data according to the optional schema (RFC 1832 Section 3.19).
|
|
166
|
+
* Optional-data is syntactic sugar for a union with boolean discriminant.
|
|
167
|
+
* Returns null if opted is FALSE, otherwise returns the decoded value.
|
|
168
|
+
*/
|
|
117
169
|
readOptional(schema) {
|
|
118
170
|
const opted = this.decoder.readBoolean();
|
|
119
171
|
if (!opted)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XdrSchemaDecoder.js","sourceRoot":"","sources":["../../src/xdr/XdrSchemaDecoder.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;AACvD,6CAAwC;AACxC,yCAAoC;
|
|
1
|
+
{"version":3,"file":"XdrSchemaDecoder.js","sourceRoot":"","sources":["../../src/xdr/XdrSchemaDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,11 @@ export declare class XdrSchemaEncoder {
|
|
|
22
22
|
writeVarlenArray(value: unknown[], schema: XdrVarlenArraySchema): void;
|
|
23
23
|
writeStruct(value: Record<string, unknown>, schema: XdrStructSchema): void;
|
|
24
24
|
writeUnion(value: unknown, schema: XdrUnionSchema, discriminant: number | string | boolean): void;
|
|
25
|
+
/**
|
|
26
|
+
* Writes optional-data value (RFC 1832 Section 3.19).
|
|
27
|
+
* Optional-data is syntactic sugar for a union with boolean discriminant.
|
|
28
|
+
* If value is null/undefined, writes FALSE; otherwise writes TRUE and the value.
|
|
29
|
+
*/
|
|
25
30
|
writeOptional(value: unknown, schema: XdrOptionalSchema): void;
|
|
26
31
|
writeNumber(value: number, schema: XdrSchema): void;
|
|
27
32
|
private writeValue;
|
|
@@ -66,6 +66,7 @@ class XdrSchemaEncoder {
|
|
|
66
66
|
throw new Error(`Invalid enum value: ${value}. Valid values are: ${Object.keys(schema.values).join(', ')}`);
|
|
67
67
|
}
|
|
68
68
|
const enumValue = schema.values[value];
|
|
69
|
+
// Per RFC 4506 Section 4.3: "It is an error to encode as an enum any integer other than those that have been given assignments"
|
|
69
70
|
if (!Number.isInteger(enumValue)) {
|
|
70
71
|
throw new Error(`Enum value ${value} has non-integer assignment: ${enumValue}`);
|
|
71
72
|
}
|
|
@@ -151,6 +152,11 @@ class XdrSchemaEncoder {
|
|
|
151
152
|
this.writeValue(value, arm[1]);
|
|
152
153
|
}
|
|
153
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Writes optional-data value (RFC 1832 Section 3.19).
|
|
157
|
+
* Optional-data is syntactic sugar for a union with boolean discriminant.
|
|
158
|
+
* If value is null/undefined, writes FALSE; otherwise writes TRUE and the value.
|
|
159
|
+
*/
|
|
154
160
|
writeOptional(value, schema) {
|
|
155
161
|
if (schema.type !== 'optional') {
|
|
156
162
|
throw new Error('Schema is not an optional schema');
|
|
@@ -252,6 +258,7 @@ class XdrSchemaEncoder {
|
|
|
252
258
|
this.writeOptional(value, schema);
|
|
253
259
|
break;
|
|
254
260
|
case 'const':
|
|
261
|
+
// Constants are not encoded; they are compile-time values
|
|
255
262
|
break;
|
|
256
263
|
default:
|
|
257
264
|
throw new Error(`Unknown schema type: ${schema.type}`);
|
|
@@ -270,6 +277,8 @@ class XdrSchemaEncoder {
|
|
|
270
277
|
this.encoder.writeBoolean(discriminant);
|
|
271
278
|
}
|
|
272
279
|
else {
|
|
280
|
+
// For string discriminants, we need to know the enum mapping
|
|
281
|
+
// This is a simplified implementation
|
|
273
282
|
throw new Error('String discriminants require enum schema context');
|
|
274
283
|
}
|
|
275
284
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XdrSchemaEncoder.js","sourceRoot":"","sources":["../../src/xdr/XdrSchemaEncoder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"XdrSchemaEncoder.js","sourceRoot":"","sources":["../../src/xdr/XdrSchemaEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { XdrSchema } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* XDR schema validator for validating XDR schemas and values according to RFC 4506.
|
|
4
|
+
*/
|
|
2
5
|
export declare class XdrSchemaValidator {
|
|
6
|
+
/**
|
|
7
|
+
* Validates an XDR schema structure.
|
|
8
|
+
*/
|
|
3
9
|
validateSchema(schema: XdrSchema): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Validates if a value conforms to the given XDR schema.
|
|
12
|
+
*/
|
|
4
13
|
validateValue(value: unknown, schema: XdrSchema): boolean;
|
|
5
14
|
private validateSchemaInternal;
|
|
6
15
|
private validateEnumSchema;
|