@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/ssh/SshDecoder.js
CHANGED
|
@@ -3,6 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SshDecoder = void 0;
|
|
4
4
|
const Reader_1 = require("@jsonjoy.com/buffers/lib/Reader");
|
|
5
5
|
const JsonPackMpint_1 = require("../JsonPackMpint");
|
|
6
|
+
/**
|
|
7
|
+
* SSH 2.0 binary decoder for SSH protocol data types.
|
|
8
|
+
* Implements SSH binary decoding according to RFC 4251.
|
|
9
|
+
*
|
|
10
|
+
* Key SSH decoding principles:
|
|
11
|
+
* - Multi-byte quantities are transmitted in big-endian byte order (network byte order)
|
|
12
|
+
* - Strings are length-prefixed with uint32
|
|
13
|
+
* - No padding is used (unlike XDR)
|
|
14
|
+
*/
|
|
6
15
|
class SshDecoder {
|
|
7
16
|
constructor(reader = new Reader_1.Reader()) {
|
|
8
17
|
this.reader = reader;
|
|
@@ -16,26 +25,45 @@ class SshDecoder {
|
|
|
16
25
|
return this.readAny();
|
|
17
26
|
}
|
|
18
27
|
readAny() {
|
|
28
|
+
// Basic implementation - in practice this would need schema info
|
|
29
|
+
// For now, we'll throw as this should be used with explicit type methods
|
|
19
30
|
throw new Error('SshDecoder.readAny() requires explicit type methods');
|
|
20
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Reads an SSH boolean value as a single byte.
|
|
34
|
+
* Returns true for non-zero values, false for zero.
|
|
35
|
+
*/
|
|
21
36
|
readBoolean() {
|
|
22
37
|
return this.reader.u8() !== 0;
|
|
23
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Reads an SSH byte value (8-bit).
|
|
41
|
+
*/
|
|
24
42
|
readByte() {
|
|
25
43
|
return this.reader.u8();
|
|
26
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Reads an SSH uint32 value in big-endian format.
|
|
47
|
+
*/
|
|
27
48
|
readUint32() {
|
|
28
49
|
const reader = this.reader;
|
|
29
|
-
const value = reader.view.getUint32(reader.x, false);
|
|
50
|
+
const value = reader.view.getUint32(reader.x, false); // false = big-endian
|
|
30
51
|
reader.x += 4;
|
|
31
52
|
return value;
|
|
32
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Reads an SSH uint64 value in big-endian format.
|
|
56
|
+
*/
|
|
33
57
|
readUint64() {
|
|
34
58
|
const reader = this.reader;
|
|
35
|
-
const value = reader.view.getBigUint64(reader.x, false);
|
|
59
|
+
const value = reader.view.getBigUint64(reader.x, false); // false = big-endian
|
|
36
60
|
reader.x += 8;
|
|
37
61
|
return value;
|
|
38
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Reads an SSH string as binary data (Uint8Array).
|
|
65
|
+
* Format: uint32 length + data bytes (no padding).
|
|
66
|
+
*/
|
|
39
67
|
readBinStr() {
|
|
40
68
|
const length = this.readUint32();
|
|
41
69
|
const reader = this.reader;
|
|
@@ -45,15 +73,25 @@ class SshDecoder {
|
|
|
45
73
|
}
|
|
46
74
|
return data;
|
|
47
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Reads an SSH string with UTF-8 encoding.
|
|
78
|
+
* Format: uint32 length + UTF-8 bytes (no padding).
|
|
79
|
+
*/
|
|
48
80
|
readStr() {
|
|
49
81
|
const length = this.readUint32();
|
|
50
82
|
const reader = this.reader;
|
|
83
|
+
// Read UTF-8 bytes
|
|
51
84
|
const utf8Bytes = new Uint8Array(length);
|
|
52
85
|
for (let i = 0; i < length; i++) {
|
|
53
86
|
utf8Bytes[i] = reader.u8();
|
|
54
87
|
}
|
|
88
|
+
// Decode UTF-8 to string
|
|
55
89
|
return new TextDecoder('utf-8').decode(utf8Bytes);
|
|
56
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Reads an SSH string with ASCII encoding.
|
|
93
|
+
* Format: uint32 length + ASCII bytes (no padding).
|
|
94
|
+
*/
|
|
57
95
|
readAsciiStr() {
|
|
58
96
|
const length = this.readUint32();
|
|
59
97
|
const reader = this.reader;
|
|
@@ -63,6 +101,10 @@ class SshDecoder {
|
|
|
63
101
|
}
|
|
64
102
|
return str;
|
|
65
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Reads an SSH mpint (multiple precision integer).
|
|
106
|
+
* Format: uint32 length + data bytes in two's complement format, MSB first.
|
|
107
|
+
*/
|
|
66
108
|
readMpint() {
|
|
67
109
|
const length = this.readUint32();
|
|
68
110
|
const reader = this.reader;
|
|
@@ -72,6 +114,11 @@ class SshDecoder {
|
|
|
72
114
|
}
|
|
73
115
|
return new JsonPackMpint_1.JsonPackMpint(data);
|
|
74
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Reads an SSH name-list.
|
|
119
|
+
* Format: uint32 length + comma-separated names.
|
|
120
|
+
* Returns an array of name strings.
|
|
121
|
+
*/
|
|
75
122
|
readNameList() {
|
|
76
123
|
const nameListStr = this.readAsciiStr();
|
|
77
124
|
if (nameListStr === '') {
|
|
@@ -79,6 +126,9 @@ class SshDecoder {
|
|
|
79
126
|
}
|
|
80
127
|
return nameListStr.split(',');
|
|
81
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Reads binary data as SSH string (alias for readBinStr)
|
|
131
|
+
*/
|
|
82
132
|
readBin() {
|
|
83
133
|
return this.readBinStr();
|
|
84
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SshDecoder.js","sourceRoot":"","sources":["../../src/ssh/SshDecoder.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;
|
|
1
|
+
{"version":3,"file":"SshDecoder.js","sourceRoot":"","sources":["../../src/ssh/SshDecoder.ts"],"names":[],"mappings":"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"}
|
package/lib/ssh/SshEncoder.d.ts
CHANGED
|
@@ -1,27 +1,96 @@
|
|
|
1
|
+
import { JsonPackMpint } from '../JsonPackMpint';
|
|
1
2
|
import type { IWriter, IWriterGrowable } from '@jsonjoy.com/buffers/lib';
|
|
2
3
|
import type { BinaryJsonEncoder } from '../types';
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* SSH 2.0 binary encoder for SSH protocol data types.
|
|
6
|
+
* Implements SSH binary encoding according to RFC 4251.
|
|
7
|
+
*
|
|
8
|
+
* Key SSH encoding principles:
|
|
9
|
+
* - Multi-byte quantities are transmitted in big-endian byte order (network byte order)
|
|
10
|
+
* - Strings are length-prefixed with uint32
|
|
11
|
+
* - No padding is used (unlike XDR)
|
|
12
|
+
*/
|
|
4
13
|
export declare class SshEncoder implements BinaryJsonEncoder {
|
|
5
14
|
readonly writer: IWriter & IWriterGrowable;
|
|
6
15
|
constructor(writer: IWriter & IWriterGrowable);
|
|
7
16
|
encode(value: unknown): Uint8Array;
|
|
17
|
+
/**
|
|
18
|
+
* Called when the encoder encounters a value that it does not know how to encode.
|
|
19
|
+
*/
|
|
8
20
|
writeUnknown(value: unknown): void;
|
|
9
21
|
writeAny(value: unknown): void;
|
|
22
|
+
/**
|
|
23
|
+
* SSH doesn't have a null type, but we provide it for interface compatibility.
|
|
24
|
+
*/
|
|
10
25
|
writeNull(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Writes an SSH boolean value as a single byte.
|
|
28
|
+
* The value 0 represents FALSE, and the value 1 represents TRUE.
|
|
29
|
+
*/
|
|
11
30
|
writeBoolean(bool: boolean): void;
|
|
31
|
+
/**
|
|
32
|
+
* Writes an SSH byte value (8-bit).
|
|
33
|
+
*/
|
|
12
34
|
writeByte(byte: number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Writes an SSH uint32 value in big-endian format.
|
|
37
|
+
*/
|
|
13
38
|
writeUint32(uint: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Writes an SSH uint64 value in big-endian format.
|
|
41
|
+
*/
|
|
14
42
|
writeUint64(uint: number | bigint): void;
|
|
43
|
+
/**
|
|
44
|
+
* Writes an SSH string as binary data (Uint8Array).
|
|
45
|
+
* Format: uint32 length + data bytes (no padding).
|
|
46
|
+
*/
|
|
15
47
|
writeBinStr(data: Uint8Array): void;
|
|
48
|
+
/**
|
|
49
|
+
* Writes an SSH string with UTF-8 encoding.
|
|
50
|
+
* Format: uint32 length + UTF-8 bytes (no padding).
|
|
51
|
+
*/
|
|
16
52
|
writeStr(str: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Writes an SSH string with ASCII encoding.
|
|
55
|
+
* Format: uint32 length + ASCII bytes (no padding).
|
|
56
|
+
*/
|
|
17
57
|
writeAsciiStr(str: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Writes an SSH mpint (multiple precision integer).
|
|
60
|
+
* Format: uint32 length + data bytes in two's complement format, MSB first.
|
|
61
|
+
*/
|
|
18
62
|
writeMpint(mpint: JsonPackMpint): void;
|
|
63
|
+
/**
|
|
64
|
+
* Writes an SSH name-list.
|
|
65
|
+
* Format: uint32 length + comma-separated names.
|
|
66
|
+
*/
|
|
19
67
|
writeNameList(names: string[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* Generic number writing - writes as uint32 by default
|
|
70
|
+
*/
|
|
20
71
|
writeNumber(num: number): void;
|
|
72
|
+
/**
|
|
73
|
+
* Writes an integer value as uint32
|
|
74
|
+
*/
|
|
21
75
|
writeInteger(int: number): void;
|
|
76
|
+
/**
|
|
77
|
+
* Writes an unsigned integer value as uint32
|
|
78
|
+
*/
|
|
22
79
|
writeUInteger(uint: number): void;
|
|
80
|
+
/**
|
|
81
|
+
* Writes a float value - SSH doesn't support floats
|
|
82
|
+
*/
|
|
23
83
|
writeFloat(float: number): void;
|
|
84
|
+
/**
|
|
85
|
+
* Writes binary data as SSH string
|
|
86
|
+
*/
|
|
24
87
|
writeBin(buf: Uint8Array): void;
|
|
88
|
+
/**
|
|
89
|
+
* Writes arrays - not supported in base SSH protocol
|
|
90
|
+
*/
|
|
25
91
|
writeArr(arr: unknown[]): void;
|
|
92
|
+
/**
|
|
93
|
+
* Writes objects - not supported in base SSH protocol
|
|
94
|
+
*/
|
|
26
95
|
writeObj(obj: Record<string, unknown>): void;
|
|
27
96
|
}
|
package/lib/ssh/SshEncoder.js
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SshEncoder = void 0;
|
|
4
4
|
const JsonPackMpint_1 = require("../JsonPackMpint");
|
|
5
|
+
/**
|
|
6
|
+
* SSH 2.0 binary encoder for SSH protocol data types.
|
|
7
|
+
* Implements SSH binary encoding according to RFC 4251.
|
|
8
|
+
*
|
|
9
|
+
* Key SSH encoding principles:
|
|
10
|
+
* - Multi-byte quantities are transmitted in big-endian byte order (network byte order)
|
|
11
|
+
* - Strings are length-prefixed with uint32
|
|
12
|
+
* - No padding is used (unlike XDR)
|
|
13
|
+
*/
|
|
5
14
|
class SshEncoder {
|
|
6
15
|
constructor(writer) {
|
|
7
16
|
this.writer = writer;
|
|
@@ -12,6 +21,9 @@ class SshEncoder {
|
|
|
12
21
|
this.writeAny(value);
|
|
13
22
|
return writer.flush();
|
|
14
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Called when the encoder encounters a value that it does not know how to encode.
|
|
26
|
+
*/
|
|
15
27
|
writeUnknown(value) {
|
|
16
28
|
throw new Error('SSH encoder does not support unknown types');
|
|
17
29
|
}
|
|
@@ -26,8 +38,8 @@ class SshEncoder {
|
|
|
26
38
|
case 'object': {
|
|
27
39
|
if (value === null)
|
|
28
40
|
return this.writeNull();
|
|
29
|
-
const
|
|
30
|
-
switch (
|
|
41
|
+
const construct = value.constructor;
|
|
42
|
+
switch (construct) {
|
|
31
43
|
case Uint8Array:
|
|
32
44
|
return this.writeBin(value);
|
|
33
45
|
case Array:
|
|
@@ -46,68 +58,111 @@ class SshEncoder {
|
|
|
46
58
|
return this.writeUnknown(value);
|
|
47
59
|
}
|
|
48
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* SSH doesn't have a null type, but we provide it for interface compatibility.
|
|
63
|
+
*/
|
|
49
64
|
writeNull() {
|
|
50
65
|
throw new Error('SSH protocol does not have a null type');
|
|
51
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Writes an SSH boolean value as a single byte.
|
|
69
|
+
* The value 0 represents FALSE, and the value 1 represents TRUE.
|
|
70
|
+
*/
|
|
52
71
|
writeBoolean(bool) {
|
|
53
72
|
this.writer.u8(bool ? 1 : 0);
|
|
54
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Writes an SSH byte value (8-bit).
|
|
76
|
+
*/
|
|
55
77
|
writeByte(byte) {
|
|
56
78
|
this.writer.u8(byte & 0xff);
|
|
57
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Writes an SSH uint32 value in big-endian format.
|
|
82
|
+
*/
|
|
58
83
|
writeUint32(uint) {
|
|
59
84
|
const writer = this.writer;
|
|
60
85
|
writer.ensureCapacity(4);
|
|
61
|
-
writer.view.setUint32(writer.x, Math.trunc(uint) >>> 0, false);
|
|
86
|
+
writer.view.setUint32(writer.x, Math.trunc(uint) >>> 0, false); // big-endian
|
|
62
87
|
writer.move(4);
|
|
63
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Writes an SSH uint64 value in big-endian format.
|
|
91
|
+
*/
|
|
64
92
|
writeUint64(uint) {
|
|
65
93
|
const writer = this.writer;
|
|
66
94
|
writer.ensureCapacity(8);
|
|
67
95
|
if (typeof uint === 'bigint') {
|
|
68
|
-
writer.view.setBigUint64(writer.x, uint, false);
|
|
96
|
+
writer.view.setBigUint64(writer.x, uint, false); // big-endian
|
|
69
97
|
}
|
|
70
98
|
else {
|
|
71
99
|
const truncated = Math.trunc(Math.abs(uint));
|
|
72
100
|
const high = Math.floor(truncated / 0x100000000);
|
|
73
101
|
const low = truncated >>> 0;
|
|
74
|
-
writer.view.setUint32(writer.x, high, false);
|
|
75
|
-
writer.view.setUint32(writer.x + 4, low, false);
|
|
102
|
+
writer.view.setUint32(writer.x, high, false); // high 32 bits
|
|
103
|
+
writer.view.setUint32(writer.x + 4, low, false); // low 32 bits
|
|
76
104
|
}
|
|
77
105
|
writer.move(8);
|
|
78
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Writes an SSH string as binary data (Uint8Array).
|
|
109
|
+
* Format: uint32 length + data bytes (no padding).
|
|
110
|
+
*/
|
|
79
111
|
writeBinStr(data) {
|
|
80
112
|
this.writeUint32(data.length);
|
|
81
113
|
this.writer.buf(data, data.length);
|
|
82
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Writes an SSH string with UTF-8 encoding.
|
|
117
|
+
* Format: uint32 length + UTF-8 bytes (no padding).
|
|
118
|
+
*/
|
|
83
119
|
writeStr(str) {
|
|
84
120
|
const writer = this.writer;
|
|
85
|
-
const maxSize = str.length * 4;
|
|
121
|
+
const maxSize = str.length * 4; // Max UTF-8 bytes for string
|
|
86
122
|
writer.ensureCapacity(4 + maxSize);
|
|
123
|
+
// Reserve space for length
|
|
87
124
|
const lengthOffset = writer.x;
|
|
88
125
|
writer.x += 4;
|
|
126
|
+
// Write the string and get actual byte count
|
|
89
127
|
const bytesWritten = writer.utf8(str);
|
|
128
|
+
// Go back to encode the actual length
|
|
90
129
|
const endPos = writer.x;
|
|
91
130
|
writer.x = lengthOffset;
|
|
92
131
|
this.writeUint32(bytesWritten);
|
|
93
132
|
writer.x = endPos;
|
|
94
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Writes an SSH string with ASCII encoding.
|
|
136
|
+
* Format: uint32 length + ASCII bytes (no padding).
|
|
137
|
+
*/
|
|
95
138
|
writeAsciiStr(str) {
|
|
96
139
|
const writer = this.writer;
|
|
97
140
|
writer.ensureCapacity(4 + str.length);
|
|
98
141
|
this.writeUint32(str.length);
|
|
99
142
|
for (let i = 0; i < str.length; i++) {
|
|
100
|
-
writer.u8(str.charCodeAt(i) & 0x7f);
|
|
143
|
+
writer.u8(str.charCodeAt(i) & 0x7f); // ASCII only
|
|
101
144
|
}
|
|
102
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Writes an SSH mpint (multiple precision integer).
|
|
148
|
+
* Format: uint32 length + data bytes in two's complement format, MSB first.
|
|
149
|
+
*/
|
|
103
150
|
writeMpint(mpint) {
|
|
104
151
|
this.writeUint32(mpint.data.length);
|
|
105
152
|
this.writer.buf(mpint.data, mpint.data.length);
|
|
106
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Writes an SSH name-list.
|
|
156
|
+
* Format: uint32 length + comma-separated names.
|
|
157
|
+
*/
|
|
107
158
|
writeNameList(names) {
|
|
108
159
|
const nameListStr = names.join(',');
|
|
109
160
|
this.writeAsciiStr(nameListStr);
|
|
110
161
|
}
|
|
162
|
+
// BinaryJsonEncoder interface methods
|
|
163
|
+
/**
|
|
164
|
+
* Generic number writing - writes as uint32 by default
|
|
165
|
+
*/
|
|
111
166
|
writeNumber(num) {
|
|
112
167
|
if (Number.isInteger(num)) {
|
|
113
168
|
if (num >= 0 && num <= 0xffffffff) {
|
|
@@ -121,21 +176,39 @@ class SshEncoder {
|
|
|
121
176
|
throw new Error('SSH protocol does not support floating point numbers');
|
|
122
177
|
}
|
|
123
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Writes an integer value as uint32
|
|
181
|
+
*/
|
|
124
182
|
writeInteger(int) {
|
|
125
183
|
this.writeUint32(int);
|
|
126
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Writes an unsigned integer value as uint32
|
|
187
|
+
*/
|
|
127
188
|
writeUInteger(uint) {
|
|
128
189
|
this.writeUint32(uint);
|
|
129
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Writes a float value - SSH doesn't support floats
|
|
193
|
+
*/
|
|
130
194
|
writeFloat(float) {
|
|
131
195
|
throw new Error('SSH protocol does not support floating point numbers');
|
|
132
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Writes binary data as SSH string
|
|
199
|
+
*/
|
|
133
200
|
writeBin(buf) {
|
|
134
201
|
this.writeBinStr(buf);
|
|
135
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Writes arrays - not supported in base SSH protocol
|
|
205
|
+
*/
|
|
136
206
|
writeArr(arr) {
|
|
137
207
|
throw new Error('SSH protocol does not have a generic array type. Use writeNameList for name-list type.');
|
|
138
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Writes objects - not supported in base SSH protocol
|
|
211
|
+
*/
|
|
139
212
|
writeObj(obj) {
|
|
140
213
|
throw new Error('SSH protocol does not have an object type');
|
|
141
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SshEncoder.js","sourceRoot":"","sources":["../../src/ssh/SshEncoder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"SshEncoder.js","sourceRoot":"","sources":["../../src/ssh/SshEncoder.ts"],"names":[],"mappings":"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"}
|
package/lib/ssh/index.d.ts
CHANGED
package/lib/ssh/index.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SSH 2.0 Protocol module
|
|
4
|
+
*
|
|
5
|
+
* This module provides TypeScript encoder and decoder implementations
|
|
6
|
+
* for SSH 2.0 protocol data types based on RFC 4251 specification.
|
|
7
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
const tslib_1 = require("tslib");
|
|
4
10
|
tslib_1.__exportStar(require("./SshEncoder"), exports);
|
package/lib/ssh/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ssh/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ssh/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,uDAA6B;AAC7B,uDAA6B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UbjsonDecoder.js","sourceRoot":"","sources":["../../src/ubjson/UbjsonDecoder.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;AACvD,4DAAuD;AAIvD,MAAa,aAAa;IAA1B;QACS,WAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAqH/B,CAAC;IAnHQ,IAAI,CAAC,KAAiB;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,KAAiB;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAEM,OAAO;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;QAC1B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC;YACd,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC;YACd,KAAK,IAAI;gBACP,OAAO,KAAK,CAAC;YACf,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;YACrB,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACrD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,GAAG,CAAC;YACb,CAAC;YACD,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,IAAI,CAAC,CAAE,IAAI,CAAC,OAAO,EAAa,CAAC,CAAC;YAClD,KAAK,IAAI;gBACP,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBACnB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;oBACd,MAAM,IAAI,GAAG,CAAE,IAAI,CAAC,OAAO,EAAa,CAAC;oBACzC,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;gBACD,IAAI,IAAI,GAAW,CAAC,CAAC,CAAC;gBACtB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;gBACrB,CAAC;gBACD,IAAI,KAAK,GAAW,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,EAAE,CAAC;oBACX,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;gBACtB,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACtB,MAAM,CAAC,CAAC,EAAE,CAAC;oBACX,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;gBACrB,CAAC;gBACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,IAAI,QAAQ,GAAW,CAAC,CAAC;oBACzB,QAAQ,IAAI,EAAE,CAAC;wBACb,KAAK,IAAI;4BACP,QAAQ,GAAG,CAAC,CAAC;4BACb,MAAM;wBACR,KAAK,IAAI,CAAC;wBACV,KAAK,IAAI;4BACP,QAAQ,GAAG,CAAC,CAAC;4BACb,MAAM;wBACR,KAAK,IAAI,CAAC;wBACV,KAAK,IAAI;4BACP,QAAQ,GAAG,CAAC,CAAC;4BACb,MAAM;oBACV,CAAC;oBACD,OAAO,IAAI,qCAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAgB,EAAE,CAAC;oBAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI;wBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1D,MAAM,CAAC,CAAC,EAAE,CAAC;oBACX,OAAO,GAAG,CAAC;gBACb,CAAC;YACH,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC3B,MAAM,GAAG,GAA8B,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,CAAE,IAAI,CAAC,OAAO,EAAa,CAAC;oBAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACjC,IAAI,GAAG,KAAK,WAAW;wBAAE,
|
|
1
|
+
{"version":3,"file":"UbjsonDecoder.js","sourceRoot":"","sources":["../../src/ubjson/UbjsonDecoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,8 +22,8 @@ class UbjsonEncoder {
|
|
|
22
22
|
case 'object': {
|
|
23
23
|
if (value === null)
|
|
24
24
|
return this.writeNull();
|
|
25
|
-
const
|
|
26
|
-
switch (
|
|
25
|
+
const construct = value.constructor;
|
|
26
|
+
switch (construct) {
|
|
27
27
|
case Array:
|
|
28
28
|
return this.writeArr(value);
|
|
29
29
|
case Uint8Array:
|
|
@@ -101,14 +101,14 @@ class UbjsonEncoder {
|
|
|
101
101
|
writeBin(buf) {
|
|
102
102
|
const writer = this.writer;
|
|
103
103
|
const length = buf.length;
|
|
104
|
-
writer.u32(1529107747);
|
|
104
|
+
writer.u32(1529107747); // "[$U#"
|
|
105
105
|
this.writeInteger(length);
|
|
106
106
|
writer.buf(buf, length);
|
|
107
107
|
}
|
|
108
108
|
writeStr(str) {
|
|
109
109
|
const length = str.length;
|
|
110
110
|
const maxLength = length * 4;
|
|
111
|
-
const capacity = maxLength + 1 + 5;
|
|
111
|
+
const capacity = maxLength + 1 + 5; // 1 for string type, 5 for length.
|
|
112
112
|
const writer = this.writer;
|
|
113
113
|
writer.ensureCapacity(capacity);
|
|
114
114
|
const uint8 = writer.uint8;
|
|
@@ -156,7 +156,7 @@ class UbjsonEncoder {
|
|
|
156
156
|
writeKey(str) {
|
|
157
157
|
const length = str.length;
|
|
158
158
|
const maxLength = length * 4;
|
|
159
|
-
const capacity = maxLength + 5;
|
|
159
|
+
const capacity = maxLength + 5; // 5 for int.
|
|
160
160
|
const writer = this.writer;
|
|
161
161
|
writer.ensureCapacity(capacity);
|
|
162
162
|
const uint8 = writer.uint8;
|
|
@@ -176,6 +176,7 @@ class UbjsonEncoder {
|
|
|
176
176
|
else
|
|
177
177
|
writer.view.setUint32(x + 1, size);
|
|
178
178
|
}
|
|
179
|
+
// ------------------------------------------------------- Streaming encoding
|
|
179
180
|
writeStartStr() {
|
|
180
181
|
throw new Error('Method not implemented.');
|
|
181
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UbjsonEncoder.js","sourceRoot":"","sources":["../../src/ubjson/UbjsonEncoder.ts"],"names":[],"mappings":";;;AAGA,MAAa,aAAa;IACxB,YAA4B,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAE1D,MAAM,CAAC,KAAc;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAEM,QAAQ,CAAC,KAAc;QAC5B,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,WAAW,CAAC,KAAe,CAAC,CAAC;YAC3C,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5C,MAAM,
|
|
1
|
+
{"version":3,"file":"UbjsonEncoder.js","sourceRoot":"","sources":["../../src/ubjson/UbjsonEncoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,8 @@ class CompressionTable {
|
|
|
31
31
|
case 'object': {
|
|
32
32
|
if (!value)
|
|
33
33
|
return this.addLiteral(null);
|
|
34
|
-
const
|
|
35
|
-
switch (
|
|
34
|
+
const construct = value.constructor;
|
|
35
|
+
switch (construct) {
|
|
36
36
|
case Object: {
|
|
37
37
|
const obj = value;
|
|
38
38
|
for (const key in obj) {
|
|
@@ -118,8 +118,8 @@ class CompressionTable {
|
|
|
118
118
|
case 'object': {
|
|
119
119
|
if (!value)
|
|
120
120
|
return this.getIndex(null);
|
|
121
|
-
const
|
|
122
|
-
switch (
|
|
121
|
+
const construct = value.constructor;
|
|
122
|
+
switch (construct) {
|
|
123
123
|
case Object: {
|
|
124
124
|
const obj = value;
|
|
125
125
|
const newObj = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompressionTable.js","sourceRoot":"","sources":["../../src/util/CompressionTable.ts"],"names":[],"mappings":";;;AAAA,4DAAuD;AAEvD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAE3C,MAAa,gBAAgB;IAA7B;QAQY,aAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7B,gBAAW,GAAG,IAAI,GAAG,EAAW,CAAC;QAEjC,UAAK,GAAc,EAAE,CAAC;QACtB,QAAG,GAAyB,IAAI,GAAG,EAAE,CAAC;IAsJlD,CAAC;IAjKQ,MAAM,CAAC,MAAM,CAAC,KAAc;QACjC,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAQM,UAAU,CAAC,GAAW;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,KAAgC;QAChD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,KAAe,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,IAAI,CAAC,KAAc;QACxB,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"CompressionTable.js","sourceRoot":"","sources":["../../src/util/CompressionTable.ts"],"names":[],"mappings":"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"}
|