@peerbit/stream-interface
Advanced tools
@@ -0,3 +1,4 @@ | ||
| import { BinaryWriter } from "@dao-xyz/borsh"; | ||
| import type { PeerId } from "@libp2p/interface"; | ||
| import { PublicSignKey, SignatureWithKey } from "@peerbit/crypto"; | ||
| import { PreHash, PublicSignKey, SignatureWithKey } from "@peerbit/crypto"; | ||
| import { Uint8ArrayList } from "uint8arraylist"; | ||
@@ -16,2 +17,7 @@ import { type PeerRefs } from "./keys.js"; | ||
| } | ||
| export declare const isAcknowledgedDeliveryMode: (mode: DeliveryMode) => mode is AcknowledgeDelivery | AcknowledgeAnyWhere; | ||
| export declare const getDeliveryHopTrace: (mode: DeliveryMode) => string[]; | ||
| export declare const hasDeliveryHop: (mode: DeliveryMode, hash: string) => boolean; | ||
| export declare const setDeliveryOriginHop: (mode: DeliveryMode, hash: string) => DeliveryMode; | ||
| export declare const appendDeliveryHop: (mode: DeliveryMode, hash: string) => DeliveryMode; | ||
| /** | ||
@@ -34,5 +40,7 @@ * when you just want to deliver at paths, but does not expect acknowledgement | ||
| redundancy: number; | ||
| hops: string[]; | ||
| constructor(properties: { | ||
| to: PeerRefs; | ||
| redundancy: number; | ||
| hops?: string[]; | ||
| }); | ||
@@ -48,4 +56,6 @@ } | ||
| redundancy: number; | ||
| hops: string[]; | ||
| constructor(properties: { | ||
| redundancy: number; | ||
| hops?: string[]; | ||
| }); | ||
@@ -96,2 +106,3 @@ } | ||
| }; | ||
| export declare const ACK_CONTROL_PRIORITY = 3; | ||
| export declare class MessageHeader<T extends DeliveryMode = DeliveryMode> { | ||
@@ -118,8 +129,16 @@ private _id; | ||
| get origin(): MultiAddrinfo | undefined; | ||
| writeBytes(writer: BinaryWriter, properties: { | ||
| includeMode: boolean; | ||
| includeSignatures: boolean; | ||
| }): void; | ||
| verify(): boolean; | ||
| } | ||
| export declare abstract class Message<T extends DeliveryMode = DeliveryMode> { | ||
| static from(bytes: Uint8ArrayList): DataMessage<SilentDelivery | AcknowledgeDelivery | AcknowledgeAnyWhere | AnyWhere> | ACK | Hello | Goodbye; | ||
| protected _cachedSignableBytes?: Uint8Array; | ||
| protected _cachedPreparedSignableBytes?: Map<number, Uint8Array>; | ||
| static from(bytes: Uint8ArrayList): DataMessage<AcknowledgeDelivery | AcknowledgeAnyWhere | SilentDelivery | AnyWhere> | ACK | Hello | Goodbye; | ||
| abstract get header(): MessageHeader<T>; | ||
| sign(signer: (bytes: Uint8Array) => Promise<SignatureWithKey> | SignatureWithKey): Promise<this>; | ||
| getSignableBytes(): Uint8Array; | ||
| getPreparedSignableBytes(prehash: PreHash): Promise<Uint8Array>; | ||
| abstract bytes(): Uint8ArrayList | Uint8Array; | ||
@@ -132,5 +151,6 @@ _verified: boolean; | ||
| private _data?; | ||
| private _dataBytes?; | ||
| constructor(properties: { | ||
| header: MessageHeader<T>; | ||
| data?: Uint8Array; | ||
| data?: Uint8Array | Uint8ArrayList; | ||
| }); | ||
@@ -140,4 +160,9 @@ get id(): Uint8Array; | ||
| get data(): Uint8Array | undefined; | ||
| get dataByteLength(): number; | ||
| get hasData(): boolean; | ||
| /** Manually ser/der for performance gains */ | ||
| bytes(): Uint8Array<ArrayBufferLike>; | ||
| bytes(): Uint8ArrayList | Uint8Array<ArrayBufferLike>; | ||
| getSignableBytes(): Uint8Array; | ||
| private setDataSource; | ||
| private serializeBytes; | ||
| static from(bytes: Uint8ArrayList): DataMessage; | ||
@@ -144,0 +169,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"} |
+317
-23
@@ -35,4 +35,4 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { | ||
| }; | ||
| import { deserialize, field, fixedArray, option, serialize, variant, vec, } from "@dao-xyz/borsh"; | ||
| import { PublicSignKey, SignatureWithKey, randomBytes, toBase64, verify, } from "@peerbit/crypto"; | ||
| import { BinaryWriter, deserialize, field, fixedArray, option, serialize, variant, vec, } from "@dao-xyz/borsh"; | ||
| import { PreHash, PublicSignKey, SignatureWithKey, prehashFn, randomBytes, toBase64, verifyPrepared, } from "@peerbit/crypto"; | ||
| import { Uint8ArrayList } from "uint8arraylist"; | ||
@@ -63,2 +63,21 @@ import { coercePeerRefsToHashes } from "./keys.js"; | ||
| } | ||
| export const isAcknowledgedDeliveryMode = (mode) => mode instanceof AcknowledgeDelivery || mode instanceof AcknowledgeAnyWhere; | ||
| export const getDeliveryHopTrace = (mode) => isAcknowledgedDeliveryMode(mode) ? mode.hops : []; | ||
| export const hasDeliveryHop = (mode, hash) => isAcknowledgedDeliveryMode(mode) && mode.hops.includes(hash); | ||
| export const setDeliveryOriginHop = (mode, hash) => { | ||
| if (isAcknowledgedDeliveryMode(mode)) { | ||
| mode.hops = [hash]; | ||
| } | ||
| return mode; | ||
| }; | ||
| export const appendDeliveryHop = (mode, hash) => { | ||
| if (!isAcknowledgedDeliveryMode(mode)) { | ||
| return mode; | ||
| } | ||
| if (mode.hops.includes(hash)) { | ||
| return mode; | ||
| } | ||
| mode.hops = [...mode.hops, hash]; | ||
| return mode; | ||
| }; | ||
| /** | ||
@@ -119,2 +138,5 @@ * when you just want to deliver at paths, but does not expect acknowledgement | ||
| let _redundancy_extraInitializers = []; | ||
| let _hops_decorators; | ||
| let _hops_initializers = []; | ||
| let _hops_extraInitializers = []; | ||
| var AcknowledgeDelivery = class extends _classSuper { | ||
@@ -126,4 +148,6 @@ static { _classThis = this; } | ||
| _redundancy_decorators = [field({ type: "u8" })]; | ||
| _hops_decorators = [field({ type: vec("string") })]; | ||
| __esDecorate(null, null, _to_decorators, { kind: "field", name: "to", static: false, private: false, access: { has: obj => "to" in obj, get: obj => obj.to, set: (obj, value) => { obj.to = value; } }, metadata: _metadata }, _to_initializers, _to_extraInitializers); | ||
| __esDecorate(null, null, _redundancy_decorators, { kind: "field", name: "redundancy", static: false, private: false, access: { has: obj => "redundancy" in obj, get: obj => obj.redundancy, set: (obj, value) => { obj.redundancy = value; } }, metadata: _metadata }, _redundancy_initializers, _redundancy_extraInitializers); | ||
| __esDecorate(null, null, _hops_decorators, { kind: "field", name: "hops", static: false, private: false, access: { has: obj => "hops" in obj, get: obj => obj.hops, set: (obj, value) => { obj.hops = value; } }, metadata: _metadata }, _hops_initializers, _hops_extraInitializers); | ||
| __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); | ||
@@ -136,5 +160,6 @@ AcknowledgeDelivery = _classThis = _classDescriptor.value; | ||
| redundancy = (__runInitializers(this, _to_extraInitializers), __runInitializers(this, _redundancy_initializers, void 0)); | ||
| hops = (__runInitializers(this, _redundancy_extraInitializers), __runInitializers(this, _hops_initializers, void 0)); | ||
| constructor(properties) { | ||
| super(); | ||
| __runInitializers(this, _redundancy_extraInitializers); | ||
| __runInitializers(this, _hops_extraInitializers); | ||
| const to = coercePeerRefsToHashes(properties.to); | ||
@@ -146,2 +171,3 @@ if (to.length === 0) { | ||
| this.redundancy = properties.redundancy; | ||
| this.hops = properties.hops ?? []; | ||
| } | ||
@@ -167,2 +193,5 @@ }; | ||
| let _redundancy_extraInitializers = []; | ||
| let _hops_decorators; | ||
| let _hops_initializers = []; | ||
| let _hops_extraInitializers = []; | ||
| var AcknowledgeAnyWhere = class extends _classSuper { | ||
@@ -173,3 +202,5 @@ static { _classThis = this; } | ||
| _redundancy_decorators = [field({ type: "u8" })]; | ||
| _hops_decorators = [field({ type: vec("string") })]; | ||
| __esDecorate(null, null, _redundancy_decorators, { kind: "field", name: "redundancy", static: false, private: false, access: { has: obj => "redundancy" in obj, get: obj => obj.redundancy, set: (obj, value) => { obj.redundancy = value; } }, metadata: _metadata }, _redundancy_initializers, _redundancy_extraInitializers); | ||
| __esDecorate(null, null, _hops_decorators, { kind: "field", name: "hops", static: false, private: false, access: { has: obj => "hops" in obj, get: obj => obj.hops, set: (obj, value) => { obj.hops = value; } }, metadata: _metadata }, _hops_initializers, _hops_extraInitializers); | ||
| __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); | ||
@@ -181,6 +212,8 @@ AcknowledgeAnyWhere = _classThis = _classDescriptor.value; | ||
| redundancy = __runInitializers(this, _redundancy_initializers, void 0); | ||
| hops = (__runInitializers(this, _redundancy_extraInitializers), __runInitializers(this, _hops_initializers, void 0)); | ||
| constructor(properties) { | ||
| super(); | ||
| __runInitializers(this, _redundancy_extraInitializers); | ||
| __runInitializers(this, _hops_extraInitializers); | ||
| this.redundancy = properties.redundancy; | ||
| this.hops = properties.hops ?? []; | ||
| } | ||
@@ -311,2 +344,4 @@ }; | ||
| export { MultiAddrinfo }; | ||
| // Control-path responses like ACKs should be able to cut through congested data lanes. | ||
| export const ACK_CONTROL_PRIORITY = 3; | ||
| const getDefaultPriorityFromMode = (mode) => { | ||
@@ -326,6 +361,13 @@ if (mode instanceof SilentDelivery) { | ||
| if (mode instanceof TracedDelivery) { | ||
| return 1; | ||
| return ACK_CONTROL_PRIORITY; | ||
| } | ||
| throw new Error("Unexpected mode: " + mode.constructor.name); | ||
| }; | ||
| const getDefaultResponsePriorityFromMode = (mode) => { | ||
| if (mode instanceof AcknowledgeAnyWhere || | ||
| mode instanceof AcknowledgeDelivery) { | ||
| return ACK_CONTROL_PRIORITY; | ||
| } | ||
| return undefined; | ||
| }; | ||
| let MessageHeader = (() => { | ||
@@ -417,3 +459,6 @@ let _classDecorators = [variant(0)]; | ||
| : getDefaultPriorityFromMode(this.mode); | ||
| this.responsePriority = properties.responsePriority; | ||
| this.responsePriority = | ||
| properties.responsePriority != null | ||
| ? properties.responsePriority | ||
| : getDefaultResponsePriorityFromMode(this.mode); | ||
| } | ||
@@ -426,2 +471,44 @@ get id() { | ||
| } | ||
| writeBytes(writer, properties) { | ||
| writer.u8(0); | ||
| BinaryWriter.uint8ArrayFixed(this._id, writer); | ||
| writer.u64(this.timestamp); | ||
| writer.u64(this.session); | ||
| writer.u64(this.expires); | ||
| if (this.priority != null) { | ||
| writer.u8(1); | ||
| writer.u32(this.priority); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| if (this.responsePriority != null) { | ||
| writer.u8(1); | ||
| writer.u32(this.responsePriority); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| if (this._origin != null) { | ||
| writer.u8(1); | ||
| serialize(this._origin, writer); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| if (properties.includeMode && this.mode != null) { | ||
| writer.u8(1); | ||
| serialize(this.mode, writer); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| if (properties.includeSignatures && this.signatures != null) { | ||
| writer.u8(1); | ||
| serialize(this.signatures, writer); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| } | ||
| verify() { | ||
@@ -434,3 +521,3 @@ return this.expires >= +new Date(); | ||
| export { MessageHeader }; | ||
| const sign = async (obj, signer) => { | ||
| const serializeUnsigned = (obj) => { | ||
| const mode = obj.header.mode; | ||
@@ -441,8 +528,11 @@ obj.header.mode = undefined; | ||
| const bytes = serialize(obj); | ||
| // reassign properties if some other process expects them | ||
| obj.header.signatures = signatures; | ||
| obj.header.mode = mode; | ||
| return bytes; | ||
| }; | ||
| const sign = async (obj, signer) => { | ||
| const bytes = obj instanceof Message ? obj.getSignableBytes() : serializeUnsigned(obj); | ||
| const signatures = obj.header.signatures; | ||
| const signature = await signer(bytes); | ||
| obj.header.signatures = new Signatures(signatures ? [...signatures.signatures, signature] : [signature]); | ||
| obj.header.mode = mode; | ||
| return obj; | ||
@@ -455,10 +545,16 @@ }; | ||
| } | ||
| const to = message.header.mode; | ||
| message.header.mode = undefined; | ||
| message.header.signatures = undefined; | ||
| const bytes = serialize(message); | ||
| message.header.mode = to; | ||
| message.header.signatures = signatures; | ||
| const bytes = message instanceof Message | ||
| ? message.getSignableBytes() | ||
| : serializeUnsigned(message); | ||
| const preparedByPrehash = new Map(); | ||
| for (const signature of signatures.signatures) { | ||
| if (!(await verify(signature, bytes))) { | ||
| let prepared = preparedByPrehash.get(signature.prehash); | ||
| if (!prepared) { | ||
| prepared = | ||
| signature.prehash === PreHash.NONE | ||
| ? bytes | ||
| : await prehashFn(bytes, signature.prehash); | ||
| preparedByPrehash.set(signature.prehash, prepared); | ||
| } | ||
| if (!(await verifyPrepared(signature, prepared))) { | ||
| return false; | ||
@@ -470,2 +566,4 @@ } | ||
| export class Message { | ||
| _cachedSignableBytes; | ||
| _cachedPreparedSignableBytes; | ||
| static from(bytes) { | ||
@@ -490,2 +588,21 @@ if (bytes.get(0) === DATA_VARIANT) { | ||
| } | ||
| getSignableBytes() { | ||
| return (this._cachedSignableBytes ?? | ||
| (this._cachedSignableBytes = serializeUnsigned(this))); | ||
| } | ||
| async getPreparedSignableBytes(prehash) { | ||
| if (prehash === PreHash.NONE) { | ||
| return this.getSignableBytes(); | ||
| } | ||
| let prepared = this._cachedPreparedSignableBytes?.get(prehash); | ||
| if (prepared) { | ||
| return prepared; | ||
| } | ||
| prepared = await prehashFn(this.getSignableBytes(), prehash); | ||
| if (!this._cachedPreparedSignableBytes) { | ||
| this._cachedPreparedSignableBytes = new Map(); | ||
| } | ||
| this._cachedPreparedSignableBytes.set(prehash, prepared); | ||
| return prepared; | ||
| } | ||
| /* abstract equals(other: Message): boolean; */ | ||
@@ -503,2 +620,127 @@ _verified; | ||
| const DATA_VARIANT = 0; | ||
| const readU8At = (bytes, offset) => bytes.get(offset); | ||
| const readU32LEAt = (bytes, offset) => bytes.getUint32(offset, true); | ||
| const skipBorshBytes = (bytes, offset) => { | ||
| const length = readU32LEAt(bytes, offset); | ||
| return offset + 4 + length; | ||
| }; | ||
| const skipBorshString = (bytes, offset) => skipBorshBytes(bytes, offset); | ||
| const skipStringVec = (bytes, offset) => { | ||
| const length = readU32LEAt(bytes, offset); | ||
| offset += 4; | ||
| for (let i = 0; i < length; i++) { | ||
| offset = skipBorshString(bytes, offset); | ||
| } | ||
| return offset; | ||
| }; | ||
| const skipPeerInfo = (bytes, offset) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| throw new Error(`Unsupported peer info variant: ${variant}`); | ||
| }; | ||
| const skipDeliveryMode = (bytes, offset) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| offset = skipStringVec(bytes, offset); | ||
| return offset + 1; | ||
| } | ||
| if (variant === 1) { | ||
| offset = skipStringVec(bytes, offset); | ||
| offset += 1; | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 5) { | ||
| offset += 1; | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 3) { | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 4) { | ||
| return offset; | ||
| } | ||
| throw new Error(`Unsupported delivery mode variant: ${variant}`); | ||
| }; | ||
| const skipPublicSignKey = (bytes, offset) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| return offset + 32; | ||
| } | ||
| if (variant === 1) { | ||
| return offset + 33; | ||
| } | ||
| throw new Error(`Unsupported public sign key variant: ${variant}`); | ||
| }; | ||
| const skipSignatureWithKey = (bytes, offset) => { | ||
| const variant = readU8At(bytes, offset); | ||
| if (variant !== 0) { | ||
| throw new Error(`Unsupported signature variant: ${variant}`); | ||
| } | ||
| offset += 1; | ||
| offset = skipBorshBytes(bytes, offset); | ||
| offset = skipPublicSignKey(bytes, offset); | ||
| return offset + 1; | ||
| }; | ||
| const skipSignatures = (bytes, offset) => { | ||
| const variant = readU8At(bytes, offset); | ||
| if (variant !== 0) { | ||
| throw new Error(`Unsupported signatures variant: ${variant}`); | ||
| } | ||
| offset += 1; | ||
| const length = readU8At(bytes, offset); | ||
| offset += 1; | ||
| for (let i = 0; i < length; i++) { | ||
| offset = skipSignatureWithKey(bytes, offset); | ||
| } | ||
| return offset; | ||
| }; | ||
| const getDataMessageDataFlagOffset = (bytes) => { | ||
| let offset = 0; | ||
| if (readU8At(bytes, offset) !== DATA_VARIANT) { | ||
| throw new Error("Unsupported"); | ||
| } | ||
| offset += 1; | ||
| if (readU8At(bytes, offset) !== 0) { | ||
| throw new Error("Unsupported message header variant"); | ||
| } | ||
| offset += 1; | ||
| offset += ID_LENGTH; | ||
| offset += 8 * 3; | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset += 5; | ||
| } | ||
| else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset += 5; | ||
| } | ||
| else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipPeerInfo(bytes, offset + 1); | ||
| } | ||
| else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipDeliveryMode(bytes, offset + 1); | ||
| } | ||
| else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipSignatures(bytes, offset + 1); | ||
| } | ||
| else { | ||
| offset += 1; | ||
| } | ||
| return offset; | ||
| }; | ||
| let DataMessage = (() => { | ||
@@ -531,7 +773,7 @@ let _classDecorators = [variant(DATA_VARIANT)]; | ||
| _data = (__runInitializers(this, __header_extraInitializers), __runInitializers(this, __data_initializers, void 0)); | ||
| _dataBytes = __runInitializers(this, __data_extraInitializers); | ||
| constructor(properties) { | ||
| super(); | ||
| __runInitializers(this, __data_extraInitializers); | ||
| this._data = properties.data; | ||
| this._header = properties.header; | ||
| this.setDataSource(properties.data); | ||
| } | ||
@@ -545,14 +787,66 @@ get id() { | ||
| get data() { | ||
| if (this._data == null && this._dataBytes instanceof Uint8ArrayList) { | ||
| this._data = this._dataBytes.subarray(); | ||
| } | ||
| return this._data; | ||
| } | ||
| get dataByteLength() { | ||
| return this._dataBytes?.byteLength ?? this._data?.byteLength ?? 0; | ||
| } | ||
| get hasData() { | ||
| return this.dataByteLength > 0; | ||
| } | ||
| /** Manually ser/der for performance gains */ | ||
| bytes() { | ||
| return serialize(this); | ||
| return this.serializeBytes({ | ||
| includeMode: true, | ||
| includeSignatures: true, | ||
| }); | ||
| } | ||
| getSignableBytes() { | ||
| return (this._cachedSignableBytes ?? | ||
| (this._cachedSignableBytes = this.serializeBytes({ | ||
| includeMode: false, | ||
| includeSignatures: false, | ||
| }).subarray())); | ||
| } | ||
| setDataSource(data) { | ||
| this._dataBytes = data; | ||
| this._data = data instanceof Uint8Array ? data : undefined; | ||
| this._cachedSignableBytes = undefined; | ||
| this._cachedPreparedSignableBytes = undefined; | ||
| } | ||
| serializeBytes(properties) { | ||
| const writer = new BinaryWriter(); | ||
| writer.u8(DATA_VARIANT); | ||
| this._header.writeBytes(writer, properties); | ||
| const data = this._dataBytes ?? this._data; | ||
| if (data != null) { | ||
| writer.u8(1); | ||
| writer.u32(data.byteLength); | ||
| return new Uint8ArrayList(writer.finalize(), data); | ||
| } | ||
| else { | ||
| writer.u8(0); | ||
| } | ||
| return writer.finalize(); | ||
| } | ||
| static from(bytes) { | ||
| if (bytes.get(0) !== 0) { | ||
| throw new Error("Unsupported"); | ||
| const dataFlagOffset = getDataMessageDataFlagOffset(bytes); | ||
| const hasData = readU8At(bytes, dataFlagOffset) === 1; | ||
| const headerOnlyBytes = hasData | ||
| ? (() => { | ||
| const prefix = bytes.subarray(0, dataFlagOffset); | ||
| const out = new Uint8Array(prefix.byteLength + 1); | ||
| out.set(prefix, 0); | ||
| out[prefix.byteLength] = 0; | ||
| return out; | ||
| })() | ||
| : bytes.subarray(); | ||
| const ret = deserialize(headerOnlyBytes, DataMessage); | ||
| if (hasData) { | ||
| const dataLength = readU32LEAt(bytes, dataFlagOffset + 1); | ||
| const dataStart = dataFlagOffset + 5; | ||
| ret.setDataSource(bytes.sublist(dataStart, dataStart + dataLength)); | ||
| } | ||
| const arr = bytes.subarray(); | ||
| const ret = deserialize(arr, DataMessage); | ||
| return ret; | ||
@@ -559,0 +853,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,MAAM,EACN,SAAS,EACT,OAAO,EACP,GAAG,GACH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,MAAM,GACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAiB,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAC;AAE5B,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAExC,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,uEAAuE;AAE9G;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAgC,EAAE,EAAE;IAClE,iCAAiC;IACjC,gCAAgC;IAChC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAgC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,IAAkB,EACS,EAAE;IAC7B,IAAI,IAAI,YAAY,cAAc,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,IAAI,YAAY,mBAAmB,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,OAAgB,YAAY;CAAG;AAErC;;GAEG;IAEU,cAAc;4BAD1B,OAAO,CAAC,CAAC,CAAC;;;;sBACyB,YAAY;;;;;;;8BAApB,SAAQ,WAAY;;;;8BAC9C,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;sCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAFtB,wJAAA,EAAE,6BAAF,EAAE,+EAAW;YAGb,gLAAA,UAAU,6BAAV,UAAU,+FAAS;YALpB,6KAYC;;;YAZY,uDAAc;;QAE1B,EAAE,qDAAW;QAGb,UAAU,+GAAS;QAEnB,YAAY,UAAgD;YAC3D,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,EAAE,GAAG,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACxC;;;;SAXW,cAAc;AAc3B;;GAEG;IAEU,mBAAmB;4BAD/B,OAAO,CAAC,CAAC,CAAC;;;;sBAC8B,YAAY;;;;;;;mCAApB,SAAQ,WAAY;;;;8BACnD,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;sCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAFtB,wJAAA,EAAE,6BAAF,EAAE,+EAAW;YAGb,gLAAA,UAAU,6BAAV,UAAU,+FAAS;YALpB,6KAkBC;;;YAlBY,uDAAmB;;QAE/B,EAAE,qDAAW;QAGb,UAAU,+GAAS;QAEnB,YAAY,UAAgD;YAC3D,KAAK,EAAE,CAAC;;YACR,MAAM,EAAE,GAAG,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACd,mGAAmG,CACnG,CAAC;YACH,CAAC;YACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACxC;;;;SAjBW,mBAAmB;AAoBhC;;;;;GAKG;IAEU,mBAAmB;4BAD/B,OAAO,CAAC,CAAC,CAAC;;;;sBAC8B,YAAY;;;;mCAApB,SAAQ,WAAY;;;;sCACnD,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACtB,gLAAA,UAAU,6BAAV,UAAU,+FAAS;YAFpB,6KAQC;;;YARY,uDAAmB;;QAE/B,UAAU,6DAAS;QAEnB,YAAY,UAAkC;YAC7C,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;SACxC;;;;SAPW,mBAAmB;AAUhC;;;GAGG;IAEU,cAAc;4BAD1B,OAAO,CAAC,CAAC,CAAC;;;;sBACyB,YAAY;;;;8BAApB,SAAQ,WAAY;;;;iCAC9C,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,iKAAA,KAAK,6BAAL,KAAK,qFAAW;YAFjB,6KAQC;;;YARY,uDAAc;;QAE1B,KAAK,wDAAW;QAEhB,YAAY,KAAe;YAC1B,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACnB;;;;SAPW,cAAc;IAWd,QAAQ;4BADpB,OAAO,CAAC,CAAC,CAAC;;;;sBACmB,YAAY;wBAApB,SAAQ,WAAY;;;;YAA1C,6KAA6C;;;YAAhC,uDAAQ;;;;;SAAR,QAAQ;IAGR,UAAU;4BADtB,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;sCAET,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,EAAE,CAAC;YACjE,gLAAA,UAAU,6BAAV,UAAU,+FAAqB;YAFhC,6KAkBC;;;YAlBY,uDAAU;;QAEtB,UAAU,6DAAqB;QAE/B,YAAY,aAAiC,EAAE;;YAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC7B;QAED,MAAM,CAAC,KAAiB;YACvB,OAAO,CACN,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM;gBAClD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CACtE,CAAC;QACH,CAAC;QAED,IAAI,UAAU;YACb,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;;;;SAjBW,UAAU;AAoBvB,MAAe,QAAQ;CAAG;IAGb,aAAa;4BADzB,OAAO,CAAC,CAAC,CAAC;;;;sBACwB,QAAQ;;;;6BAAhB,SAAQ,WAAQ;;;;sCACzC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,gLAAA,UAAU,6BAAV,UAAU,+FAAW;YAFtB,6KAQC;;;YARY,uDAAa;;QAEzB,UAAU,6DAAW;QAErB,YAAY,UAAoB;YAC/B,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC7B;;;;SAPW,aAAa;AAwC1B,MAAM,0BAA0B,GAAG,CAAC,IAAkB,EAAE,EAAE;IACzD,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,IAAI,YAAY,mBAAmB,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,IAAI,YAAY,cAAc,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC,CAAC;IAGW,aAAa;4BADzB,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAET,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;qCAG5C,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;mCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;mCAGtB,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;oCAItB,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;4CAK9B,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;mCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAIjC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;sCAIrC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YA5BpC,2JAAQ,GAAG,6BAAH,GAAG,iFAAa;YAGxB,6KAAA,SAAS,6BAAT,SAAS,6FAAS;YAGlB,uKAAA,OAAO,6BAAP,OAAO,yFAAS;YAGhB,uKAAA,OAAO,6BAAP,OAAO,yFAAS;YAIhB,0KAAA,QAAQ,6BAAR,QAAQ,2FAAU;YAKlB,kMAAA,gBAAgB,6BAAhB,gBAAgB,2GAAU;YAG1B,uKAAQ,OAAO,6BAAP,OAAO,yFAAiB;YAIhC,8JAAA,IAAI,6BAAJ,IAAI,mFAAI;YAIR,gLAAA,UAAU,6BAAV,UAAU,+FAAyB;YA/BpC,6KAmEC;;;YAnEY,uDAAa;;QAEjB,GAAG,sDAAa;QAGxB,SAAS,+GAAS;QAGlB,OAAO,mHAAS;QAGhB,OAAO,iHAAS;QAEhB,sFAAsF;QAEtF,QAAQ,kHAAU;QAElB,+EAA+E;QAC/E,yDAAyD;QAEzD,gBAAgB,2HAAU;QAGlB,OAAO,0HAAiB;QAEhC,8DAA8D;QAE9D,IAAI,8GAAI;QAER,8DAA8D;QAE9D,UAAU,iHAAyB;QAEnC,YAAY,UAQX;;YACA,IAAI,CAAC,GAAG,GAAG,UAAU,EAAE,EAAE,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;YACpE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,MAAM,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,QAAQ;gBACZ,UAAU,CAAC,QAAQ,IAAI,IAAI;oBAC1B,CAAC,CAAC,UAAU,CAAC,QAAQ;oBACrB,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;SACpD;QAED,IAAI,EAAE;YACL,OAAO,IAAI,CAAC,GAAG,CAAC;QACjB,CAAC;QAED,IAAI,MAAM;YACT,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,MAAM;YACL,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;;;;SAlEW,aAAa;AAyE1B,MAAM,IAAI,GAAG,KAAK,EACjB,GAAM,EACN,MAA2E,EAC9D,EAAE;IACf,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,SAAgB,CAAC;IACnC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC;IACzC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IAClC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,yDAAyD;IACzD,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,UAAU,CACrC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAChE,CAAC;IACF,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC3B,OAAmB,EACnB,gBAAyB,EACxB,EAAE;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;IAC7C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,gBAAgB,CAAC;IAC1B,CAAC;IACD,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,SAAgB,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACzB,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IAEvC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,OAAgB,OAAO;IAC5B,MAAM,CAAC,IAAI,CAAC,KAAqB;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;YACnC,OAAO;YACP,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC;YACjD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAID,KAAK,CAAC,IAAI,CACT,MAA2E;QAE3E,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,+CAA+C;IAC/C,SAAS,CAAU;IAEnB,KAAK,CAAC,MAAM,CAAC,gBAAyB;QACrC,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI;YAC5B,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;gBACf,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC5B,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;CACD;AAED,gCAAgC;AAChC,MAAM,YAAY,GAAG,CAAC,CAAC;IAGV,WAAW;4BADvB,OAAO,CAAC,YAAY,CAAC;;;;sBAWZ,OAAO;;;;;;;2BAAf,SAAQ,WAAU;;;;mCAClB,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAFpC,uKAAQ,OAAO,6BAAP,OAAO,yFAAmB;YAGlC,iKAAQ,KAAK,6BAAL,KAAK,qFAAc;YAf5B,6KAgDC;;;YAhDY,uDAAW;;QAYf,OAAO,0DAAmB;QAG1B,KAAK,+GAAc;QAE3B,YAAY,UAA2D;YACtE,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC;SACjC;QAED,IAAI,EAAE;YACL,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,MAAM;YACT,OAAO,IAAI,CAAC,OAAO,CAAC;QACrB,CAAC;QAED,IAAI,IAAI;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QAED,6CAA6C;QAC7C,KAAK;YACJ,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAqB;YAChC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC1C,OAAO,GAAG,CAAC;QACZ,CAAC;;;;SA/CW,WAAW;AAkDxB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAE,EAAE,CACrE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,OAA8B,EAC9B,MAAc,IAAI,CAAC,GAAG,EAAE,EACvB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,OAA8B,EAAE,EAAE,CAChF,OAAO,CAAC,MAAM,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;AAY5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC5C,OAA8B,EACJ,EAAE,CAAC,CAAC;IAC9B,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACvC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;IACxC,gBAAgB,EAAE,8BAA8B,CAAC,OAAO,CAAC;IACzD,aAAa,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC;IACtE,mBAAmB,EAAE,CACpB,OAAwD,EACvD,EAAE,CAAC,CAAC;QACL,GAAG,OAAO;QACV,GAAG,+BAA+B,CAAC,OAAO,EAAE,OAAO,CAAC;KACpD,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC9C,OAA8B,EAC9B,SAA8C,EACT,EAAE,CAAC,CAAC;IACzC,QAAQ,EACP,SAAS,EAAE,QAAQ,IAAI,IAAI;QAC1B,CAAC,CAAC,SAAS,CAAC,QAAQ;QACpB,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;IAC3C,SAAS,EACR,SAAS,EAAE,SAAS,IAAI,IAAI;QAC3B,CAAC,CAAC,SAAS,CAAC,SAAS;QACrB,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC;CAChC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC;IAGjB,GAAG;4BADf,OAAO,CAAC,mBAAmB,CAAC;;;;sBACJ,OAAO;;;;;;;;;;mBAAf,SAAQ,WAAO;;;;kCAC9B,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;kDAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;uCAGrC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YALtB,oKAAA,MAAM,6BAAN,MAAM,uFAAgC;YAGtC,oNAAA,sBAAsB,6BAAtB,sBAAsB,uHAAa;YAGnC,mLAAA,WAAW,6BAAX,WAAW,iGAAS;YARrB,6KAuCC;;;YAvCY,uDAAG;;QAEf,MAAM,yDAAgC;QAGtC,sBAAsB,+HAAa;QAGnC,WAAW,oIAAS,CAAC,wEAAwE;QAE7F,YAAY,UAIX;YACA,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC,sBAAsB,CAAC;YAChE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;SACzD;QAED,IAAI,EAAE;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,KAAK;YACJ,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAqB;YAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;YAClD,IACC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;gBACzB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC/C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;;SAtCW,GAAG;AAyChB,MAAM,aAAa,GAAG,CAAC,CAAC;IAGX,KAAK;4BADjB,OAAO,CAAC,aAAa,CAAC;;;;sBACI,OAAO;;;;;;;qBAAf,SAAQ,WAAO;;;;kCAChC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;kCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAF/B,oKAAA,MAAM,6BAAN,MAAM,uFAAgB;YAGtB,oKAAA,MAAM,6BAAN,MAAM,uFAAW;YALlB,6KA8BC;;;YA9BY,uDAAK;;QAEjB,MAAM,yDAAgB;QAGtB,MAAM,+GAAW;QAEjB,YAAY,UAAgC;YAC3C,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;SAChC;QAED,IAAI,EAAE;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,KAAK;YACJ,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAqB;YAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;YACpD,IACC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;gBACzB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC/C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;;SA7BW,KAAK;AAgClB,MAAM,eAAe,GAAG,CAAC,CAAC;IAGb,OAAO;4BADnB,OAAO,CAAC,eAAe,CAAC;;;;sBACI,OAAO;;;;;;;uBAAf,SAAQ,WAAO;;;;kCAClC,KAAK,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;mCAG9B,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAF/B,oKAAA,MAAM,6BAAN,MAAM,uFAAsD;YAG5D,uKAAA,OAAO,6BAAP,OAAO,yFAAW;YALnB,6KAiCC;;;YAjCY,uDAAO;;QAEnB,MAAM,yDAAsD;QAG5D,OAAO,gHAAW;QAElB,YAAY,UAGX;YACA,KAAK,EAAE,CAAC;;YACR,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;SAClC;QACD,IAAI,EAAE;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC;QAED,KAAK;YACJ,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAqB;YAChC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YACtD,IACC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU;gBACzB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC/C,CAAC;gBACF,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;;;;SAhCW,OAAO"} | ||
| {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@peerbit/stream-interface", | ||
| "version": "6.0.1", | ||
| "version": "6.0.2", | ||
| "description": "Block store streaming", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
+364
-25
| import { | ||
| BinaryWriter, | ||
| deserialize, | ||
@@ -12,7 +13,9 @@ field, | ||
| import { | ||
| PreHash, | ||
| PublicSignKey, | ||
| SignatureWithKey, | ||
| prehashFn, | ||
| randomBytes, | ||
| toBase64, | ||
| verify, | ||
| verifyPrepared, | ||
| } from "@peerbit/crypto"; | ||
@@ -52,2 +55,31 @@ import { Uint8ArrayList } from "uint8arraylist"; | ||
| export const isAcknowledgedDeliveryMode = ( | ||
| mode: DeliveryMode, | ||
| ): mode is AcknowledgeDelivery | AcknowledgeAnyWhere => | ||
| mode instanceof AcknowledgeDelivery || mode instanceof AcknowledgeAnyWhere; | ||
| export const getDeliveryHopTrace = (mode: DeliveryMode): string[] => | ||
| isAcknowledgedDeliveryMode(mode) ? mode.hops : []; | ||
| export const hasDeliveryHop = (mode: DeliveryMode, hash: string) => | ||
| isAcknowledgedDeliveryMode(mode) && mode.hops.includes(hash); | ||
| export const setDeliveryOriginHop = (mode: DeliveryMode, hash: string) => { | ||
| if (isAcknowledgedDeliveryMode(mode)) { | ||
| mode.hops = [hash]; | ||
| } | ||
| return mode; | ||
| }; | ||
| export const appendDeliveryHop = (mode: DeliveryMode, hash: string) => { | ||
| if (!isAcknowledgedDeliveryMode(mode)) { | ||
| return mode; | ||
| } | ||
| if (mode.hops.includes(hash)) { | ||
| return mode; | ||
| } | ||
| mode.hops = [...mode.hops, hash]; | ||
| return mode; | ||
| }; | ||
| /** | ||
@@ -82,3 +114,10 @@ * when you just want to deliver at paths, but does not expect acknowledgement | ||
| constructor(properties: { to: PeerRefs; redundancy: number }) { | ||
| @field({ type: vec("string") }) | ||
| hops: string[]; | ||
| constructor(properties: { | ||
| to: PeerRefs; | ||
| redundancy: number; | ||
| hops?: string[]; | ||
| }) { | ||
| super(); | ||
@@ -93,2 +132,3 @@ const to = coercePeerRefsToHashes(properties.to); | ||
| this.redundancy = properties.redundancy; | ||
| this.hops = properties.hops ?? []; | ||
| } | ||
@@ -108,5 +148,9 @@ } | ||
| constructor(properties: { redundancy: number }) { | ||
| @field({ type: vec("string") }) | ||
| hops: string[]; | ||
| constructor(properties: { redundancy: number; hops?: string[] }) { | ||
| super(); | ||
| this.redundancy = properties.redundancy; | ||
| this.hops = properties.hops ?? []; | ||
| } | ||
@@ -197,2 +241,5 @@ } | ||
| // Control-path responses like ACKs should be able to cut through congested data lanes. | ||
| export const ACK_CONTROL_PRIORITY = 3; | ||
| const getDefaultPriorityFromMode = (mode: DeliveryMode) => { | ||
@@ -213,3 +260,3 @@ if (mode instanceof SilentDelivery) { | ||
| if (mode instanceof TracedDelivery) { | ||
| return 1; | ||
| return ACK_CONTROL_PRIORITY; | ||
| } | ||
@@ -219,2 +266,12 @@ throw new Error("Unexpected mode: " + mode.constructor.name); | ||
| const getDefaultResponsePriorityFromMode = (mode: DeliveryMode) => { | ||
| if ( | ||
| mode instanceof AcknowledgeAnyWhere || | ||
| mode instanceof AcknowledgeDelivery | ||
| ) { | ||
| return ACK_CONTROL_PRIORITY; | ||
| } | ||
| return undefined; | ||
| }; | ||
| @variant(0) | ||
@@ -274,3 +331,6 @@ export class MessageHeader<T extends DeliveryMode = DeliveryMode> { | ||
| : getDefaultPriorityFromMode(this.mode); | ||
| this.responsePriority = properties.responsePriority; | ||
| this.responsePriority = | ||
| properties.responsePriority != null | ||
| ? properties.responsePriority | ||
| : getDefaultResponsePriorityFromMode(this.mode); | ||
| } | ||
@@ -286,2 +346,43 @@ | ||
| writeBytes( | ||
| writer: BinaryWriter, | ||
| properties: { includeMode: boolean; includeSignatures: boolean }, | ||
| ) { | ||
| writer.u8(0); | ||
| BinaryWriter.uint8ArrayFixed(this._id, writer); | ||
| writer.u64(this.timestamp); | ||
| writer.u64(this.session); | ||
| writer.u64(this.expires); | ||
| if (this.priority != null) { | ||
| writer.u8(1); | ||
| writer.u32(this.priority); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| if (this.responsePriority != null) { | ||
| writer.u8(1); | ||
| writer.u32(this.responsePriority); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| if (this._origin != null) { | ||
| writer.u8(1); | ||
| serialize(this._origin, writer); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| if (properties.includeMode && this.mode != null) { | ||
| writer.u8(1); | ||
| serialize(this.mode, writer); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| if (properties.includeSignatures && this.signatures != null) { | ||
| writer.u8(1); | ||
| serialize(this.signatures, writer); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| } | ||
| verify() { | ||
@@ -296,6 +397,3 @@ return this.expires >= +new Date(); | ||
| const sign = async <T extends WithHeader>( | ||
| obj: T, | ||
| signer: (bytes: Uint8Array) => Promise<SignatureWithKey> | SignatureWithKey, | ||
| ): Promise<T> => { | ||
| const serializeUnsigned = (obj: WithHeader): Uint8Array => { | ||
| const mode = obj.header.mode; | ||
@@ -306,6 +404,15 @@ obj.header.mode = undefined as any; | ||
| const bytes = serialize(obj); | ||
| // reassign properties if some other process expects them | ||
| obj.header.signatures = signatures; | ||
| obj.header.mode = mode; | ||
| return bytes; | ||
| }; | ||
| const sign = async <T extends WithHeader>( | ||
| obj: T, | ||
| signer: (bytes: Uint8Array) => Promise<SignatureWithKey> | SignatureWithKey, | ||
| ): Promise<T> => { | ||
| const bytes = | ||
| obj instanceof Message ? obj.getSignableBytes() : serializeUnsigned(obj); | ||
| const signatures = obj.header.signatures; | ||
| const signature = await signer(bytes); | ||
@@ -315,3 +422,2 @@ obj.header.signatures = new Signatures( | ||
| ); | ||
| obj.header.mode = mode; | ||
| return obj; | ||
@@ -328,11 +434,18 @@ }; | ||
| } | ||
| const to = message.header.mode; | ||
| message.header.mode = undefined as any; | ||
| message.header.signatures = undefined; | ||
| const bytes = serialize(message); | ||
| message.header.mode = to; | ||
| message.header.signatures = signatures; | ||
| const bytes = | ||
| message instanceof Message | ||
| ? message.getSignableBytes() | ||
| : serializeUnsigned(message); | ||
| const preparedByPrehash = new Map<number, Uint8Array>(); | ||
| for (const signature of signatures.signatures) { | ||
| if (!(await verify(signature, bytes))) { | ||
| let prepared = preparedByPrehash.get(signature.prehash); | ||
| if (!prepared) { | ||
| prepared = | ||
| signature.prehash === PreHash.NONE | ||
| ? bytes | ||
| : await prehashFn(bytes, signature.prehash); | ||
| preparedByPrehash.set(signature.prehash, prepared); | ||
| } | ||
| if (!(await verifyPrepared(signature, prepared))) { | ||
| return false; | ||
@@ -345,2 +458,5 @@ } | ||
| export abstract class Message<T extends DeliveryMode = DeliveryMode> { | ||
| protected _cachedSignableBytes?: Uint8Array; | ||
| protected _cachedPreparedSignableBytes?: Map<number, Uint8Array>; | ||
| static from(bytes: Uint8ArrayList) { | ||
@@ -367,2 +483,26 @@ if (bytes.get(0) === DATA_VARIANT) { | ||
| } | ||
| getSignableBytes(): Uint8Array { | ||
| return ( | ||
| this._cachedSignableBytes ?? | ||
| (this._cachedSignableBytes = serializeUnsigned(this)) | ||
| ); | ||
| } | ||
| async getPreparedSignableBytes(prehash: PreHash): Promise<Uint8Array> { | ||
| if (prehash === PreHash.NONE) { | ||
| return this.getSignableBytes(); | ||
| } | ||
| let prepared = this._cachedPreparedSignableBytes?.get(prehash); | ||
| if (prepared) { | ||
| return prepared; | ||
| } | ||
| prepared = await prehashFn(this.getSignableBytes(), prehash); | ||
| if (!this._cachedPreparedSignableBytes) { | ||
| this._cachedPreparedSignableBytes = new Map(); | ||
| } | ||
| this._cachedPreparedSignableBytes.set(prehash, prepared); | ||
| return prepared; | ||
| } | ||
| abstract bytes(): Uint8ArrayList | Uint8Array; | ||
@@ -384,2 +524,135 @@ /* abstract equals(other: Message): boolean; */ | ||
| const readU8At = (bytes: Uint8ArrayList, offset: number) => bytes.get(offset); | ||
| const readU32LEAt = (bytes: Uint8ArrayList, offset: number) => | ||
| bytes.getUint32(offset, true); | ||
| const skipBorshBytes = (bytes: Uint8ArrayList, offset: number) => { | ||
| const length = readU32LEAt(bytes, offset); | ||
| return offset + 4 + length; | ||
| }; | ||
| const skipBorshString = (bytes: Uint8ArrayList, offset: number) => | ||
| skipBorshBytes(bytes, offset); | ||
| const skipStringVec = (bytes: Uint8ArrayList, offset: number) => { | ||
| const length = readU32LEAt(bytes, offset); | ||
| offset += 4; | ||
| for (let i = 0; i < length; i++) { | ||
| offset = skipBorshString(bytes, offset); | ||
| } | ||
| return offset; | ||
| }; | ||
| const skipPeerInfo = (bytes: Uint8ArrayList, offset: number) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| throw new Error(`Unsupported peer info variant: ${variant}`); | ||
| }; | ||
| const skipDeliveryMode = (bytes: Uint8ArrayList, offset: number) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| offset = skipStringVec(bytes, offset); | ||
| return offset + 1; | ||
| } | ||
| if (variant === 1) { | ||
| offset = skipStringVec(bytes, offset); | ||
| offset += 1; | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 5) { | ||
| offset += 1; | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 3) { | ||
| return skipStringVec(bytes, offset); | ||
| } | ||
| if (variant === 4) { | ||
| return offset; | ||
| } | ||
| throw new Error(`Unsupported delivery mode variant: ${variant}`); | ||
| }; | ||
| const skipPublicSignKey = (bytes: Uint8ArrayList, offset: number) => { | ||
| const variant = readU8At(bytes, offset); | ||
| offset += 1; | ||
| if (variant === 0) { | ||
| return offset + 32; | ||
| } | ||
| if (variant === 1) { | ||
| return offset + 33; | ||
| } | ||
| throw new Error(`Unsupported public sign key variant: ${variant}`); | ||
| }; | ||
| const skipSignatureWithKey = (bytes: Uint8ArrayList, offset: number) => { | ||
| const variant = readU8At(bytes, offset); | ||
| if (variant !== 0) { | ||
| throw new Error(`Unsupported signature variant: ${variant}`); | ||
| } | ||
| offset += 1; | ||
| offset = skipBorshBytes(bytes, offset); | ||
| offset = skipPublicSignKey(bytes, offset); | ||
| return offset + 1; | ||
| }; | ||
| const skipSignatures = (bytes: Uint8ArrayList, offset: number) => { | ||
| const variant = readU8At(bytes, offset); | ||
| if (variant !== 0) { | ||
| throw new Error(`Unsupported signatures variant: ${variant}`); | ||
| } | ||
| offset += 1; | ||
| const length = readU8At(bytes, offset); | ||
| offset += 1; | ||
| for (let i = 0; i < length; i++) { | ||
| offset = skipSignatureWithKey(bytes, offset); | ||
| } | ||
| return offset; | ||
| }; | ||
| const getDataMessageDataFlagOffset = (bytes: Uint8ArrayList) => { | ||
| let offset = 0; | ||
| if (readU8At(bytes, offset) !== DATA_VARIANT) { | ||
| throw new Error("Unsupported"); | ||
| } | ||
| offset += 1; | ||
| if (readU8At(bytes, offset) !== 0) { | ||
| throw new Error("Unsupported message header variant"); | ||
| } | ||
| offset += 1; | ||
| offset += ID_LENGTH; | ||
| offset += 8 * 3; | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset += 5; | ||
| } else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset += 5; | ||
| } else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipPeerInfo(bytes, offset + 1); | ||
| } else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipDeliveryMode(bytes, offset + 1); | ||
| } else { | ||
| offset += 1; | ||
| } | ||
| if (readU8At(bytes, offset) === 1) { | ||
| offset = skipSignatures(bytes, offset + 1); | ||
| } else { | ||
| offset += 1; | ||
| } | ||
| return offset; | ||
| }; | ||
| @variant(DATA_VARIANT) | ||
@@ -403,6 +676,11 @@ export class DataMessage< | ||
| constructor(properties: { header: MessageHeader<T>; data?: Uint8Array }) { | ||
| private _dataBytes?: Uint8Array | Uint8ArrayList; | ||
| constructor(properties: { | ||
| header: MessageHeader<T>; | ||
| data?: Uint8Array | Uint8ArrayList; | ||
| }) { | ||
| super(); | ||
| this._data = properties.data; | ||
| this._header = properties.header; | ||
| this.setDataSource(properties.data); | ||
| } | ||
@@ -419,16 +697,77 @@ | ||
| get data(): Uint8Array | undefined { | ||
| if (this._data == null && this._dataBytes instanceof Uint8ArrayList) { | ||
| this._data = this._dataBytes.subarray(); | ||
| } | ||
| return this._data; | ||
| } | ||
| get dataByteLength(): number { | ||
| return this._dataBytes?.byteLength ?? this._data?.byteLength ?? 0; | ||
| } | ||
| get hasData(): boolean { | ||
| return this.dataByteLength > 0; | ||
| } | ||
| /** Manually ser/der for performance gains */ | ||
| bytes() { | ||
| return serialize(this); | ||
| return this.serializeBytes({ | ||
| includeMode: true, | ||
| includeSignatures: true, | ||
| }); | ||
| } | ||
| override getSignableBytes(): Uint8Array { | ||
| return ( | ||
| this._cachedSignableBytes ?? | ||
| (this._cachedSignableBytes = this.serializeBytes({ | ||
| includeMode: false, | ||
| includeSignatures: false, | ||
| }).subarray()) | ||
| ); | ||
| } | ||
| private setDataSource(data?: Uint8Array | Uint8ArrayList) { | ||
| this._dataBytes = data; | ||
| this._data = data instanceof Uint8Array ? data : undefined; | ||
| this._cachedSignableBytes = undefined; | ||
| this._cachedPreparedSignableBytes = undefined; | ||
| } | ||
| private serializeBytes(properties: { | ||
| includeMode: boolean; | ||
| includeSignatures: boolean; | ||
| }) { | ||
| const writer = new BinaryWriter(); | ||
| writer.u8(DATA_VARIANT); | ||
| this._header.writeBytes(writer, properties); | ||
| const data = this._dataBytes ?? this._data; | ||
| if (data != null) { | ||
| writer.u8(1); | ||
| writer.u32(data.byteLength); | ||
| return new Uint8ArrayList(writer.finalize(), data); | ||
| } else { | ||
| writer.u8(0); | ||
| } | ||
| return writer.finalize(); | ||
| } | ||
| static from(bytes: Uint8ArrayList): DataMessage { | ||
| if (bytes.get(0) !== 0) { | ||
| throw new Error("Unsupported"); | ||
| const dataFlagOffset = getDataMessageDataFlagOffset(bytes); | ||
| const hasData = readU8At(bytes, dataFlagOffset) === 1; | ||
| const headerOnlyBytes = hasData | ||
| ? (() => { | ||
| const prefix = bytes.subarray(0, dataFlagOffset); | ||
| const out = new Uint8Array(prefix.byteLength + 1); | ||
| out.set(prefix, 0); | ||
| out[prefix.byteLength] = 0; | ||
| return out; | ||
| })() | ||
| : bytes.subarray(); | ||
| const ret = deserialize(headerOnlyBytes, DataMessage); | ||
| if (hasData) { | ||
| const dataLength = readU32LEAt(bytes, dataFlagOffset + 1); | ||
| const dataStart = dataFlagOffset + 5; | ||
| ret.setDataSource(bytes.sublist(dataStart, dataStart + dataLength)); | ||
| } | ||
| const arr = bytes.subarray(); | ||
| const ret = deserialize(arr, DataMessage); | ||
| return ret; | ||
@@ -435,0 +774,0 @@ } |
136235
30.64%2271
38.05%