You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@peerbit/stream-interface

Package Overview
Dependencies
Maintainers
1
Versions
349
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@peerbit/stream-interface - npm Package Compare versions

Comparing version
6.0.1
to
6.0.2
+29
-4
dist/src/messages.d.ts

@@ -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

@@ -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":"AAAA,OAAO,EACN,YAAY,EAQZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,WAAW,CAAC;AAElE,eAAO,MAAM,SAAS,KAAK,CAAC;AAM5B;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAU,KAAK,cAAc,GAAG,UAAU,oBAI9D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GACnC,MAAM,YAAY,KAChB,IAAI,IAAI;IAAE,EAAE,EAAE,MAAM,EAAE,CAAA;CAQxB,CAAC;AAEF,8BAAsB,YAAY;CAAG;AAErC,eAAO,MAAM,0BAA0B,GACtC,MAAM,YAAY,KAChB,IAAI,IAAI,mBAAmB,GAAG,mBAC0C,CAAC;AAE5E,eAAO,MAAM,mBAAmB,GAAI,MAAM,YAAY,KAAG,MAAM,EACb,CAAC;AAEnD,eAAO,MAAM,cAAc,GAAI,MAAM,YAAY,EAAE,MAAM,MAAM,YACF,CAAC;AAE9D,eAAO,MAAM,oBAAoB,GAAI,MAAM,YAAY,EAAE,MAAM,MAAM,iBAKpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,YAAY,EAAE,MAAM,MAAM,iBASjE,CAAC;AAEF;;GAEG;AACH,qBACa,cAAe,SAAQ,YAAY;IAE/C,EAAE,EAAE,MAAM,EAAE,CAAC;IAGb,UAAU,EAAE,MAAM,CAAC;gBAEP,UAAU,EAAE;QAAE,EAAE,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAK5D;AAED;;GAEG;AACH,qBACa,mBAAoB,SAAQ,YAAY;IAEpD,EAAE,EAAE,MAAM,EAAE,CAAC;IAGb,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,EAAE,CAAC;gBAEH,UAAU,EAAE;QACvB,EAAE,EAAE,QAAQ,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KAChB;CAYD;AAED;;;;;GAKG;AACH,qBACa,mBAAoB,SAAQ,YAAY;IAEpD,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,MAAM,EAAE,CAAC;gBAEH,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;CAK/D;AAED;;;GAGG;AACH,qBACa,cAAe,SAAQ,YAAY;IAE/C,KAAK,EAAE,MAAM,EAAE,CAAC;gBAEJ,KAAK,EAAE,MAAM,EAAE;CAI3B;AAED,qBACa,QAAS,SAAQ,YAAY;CAAG;AAE7C,qBACa,UAAU;IAEtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBAEnB,UAAU,GAAE,gBAAgB,EAAO;IAI/C,MAAM,CAAC,KAAK,EAAE,UAAU;IAOxB,IAAI,UAAU,IAAI,aAAa,EAAE,CAEhC;CACD;AAED,uBAAe,QAAQ;CAAG;AAE1B,qBACa,aAAc,SAAQ,QAAQ;IAE1C,UAAU,EAAE,MAAM,EAAE,CAAC;gBAET,UAAU,EAAE,MAAM,EAAE;CAIhC;AAED,MAAM,MAAM,MAAM,GAAG;IACpB,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,CAAC,EAAE,cAAc,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,QAAQ,CAAC;CAC7E,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,EAAE,CAAC,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,YAAY,CAAC,EAAE,CAAC,CACf,IAAI,EAAE,UAAU,KACZ,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC;CACrD,CAAC;AAGF,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAgCtC,qBACa,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAE/D,OAAO,CAAC,GAAG,CAAa;IAGxB,SAAS,EAAE,MAAM,CAAC;IAGlB,OAAO,EAAE,MAAM,CAAC;IAGhB,OAAO,EAAE,MAAM,CAAC;IAIhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,OAAO,CAAC,OAAO,CAAC,CAAgB;IAIhC,IAAI,EAAE,CAAC,CAAC;IAIR,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;gBAEvB,UAAU,EAAE;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,UAAU,CAAC;QAChB,IAAI,EAAE,CAAC,CAAC;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC1B;IAkBD,IAAI,EAAE,gCAEL;IAED,IAAI,MAAM,IAAI,aAAa,GAAG,SAAS,CAEtC;IAED,UAAU,CACT,MAAM,EAAE,YAAY,EACpB,UAAU,EAAE;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE;IAuCjE,MAAM;CAGN;AA8DD,8BAAsB,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAClE,SAAS,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAC5C,SAAS,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAEjE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc;IAcjC,QAAQ,KAAK,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;IAElC,IAAI,CACT,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GACzE,OAAO,CAAC,IAAI,CAAC;IAIhB,gBAAgB,IAAI,UAAU;IAOxB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBrE,QAAQ,CAAC,KAAK,IAAI,cAAc,GAAG,UAAU;IAE7C,SAAS,EAAE,OAAO,CAAC;IAEb,MAAM,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAOzD;AA0ID,qBACa,WAAW,CACvB,CAAC,SACE,cAAc,GACd,mBAAmB,GACnB,mBAAmB,GACnB,QAAQ,GACR,cAAc,GACd,mBAAmB,GACnB,mBAAmB,GACnB,QAAQ,CACV,SAAQ,OAAO,CAAC,CAAC,CAAC;IAEnB,OAAO,CAAC,OAAO,CAAmB;IAGlC,OAAO,CAAC,KAAK,CAAC,CAAa;IAE3B,OAAO,CAAC,UAAU,CAAC,CAA8B;gBAErC,UAAU,EAAE;QACvB,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;KACnC;IAMD,IAAI,EAAE,IAAI,UAAU,CAEnB;IAED,IAAI,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAE7B;IAED,IAAI,IAAI,IAAI,UAAU,GAAG,SAAS,CAKjC;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,6CAA6C;IAC7C,KAAK;IAOI,gBAAgB,IAAI,UAAU;IAUvC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,cAAc;IAkBtB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW;CAoB/C;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,GAAG,WAAW,WACnC,CAAC;AAEhC,eAAO,MAAM,uBAAuB,GACnC,SAAS,OAAO,GAAG,WAAW,EAC9B,MAAK,MAAmB,WAC2B,CAAC;AAErD,eAAO,MAAM,8BAA8B,GAAI,SAAS,OAAO,GAAG,WAAW,WAClB,CAAC;AAE5D,MAAM,MAAM,uBAAuB,GAAG;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,mBAAmB,CAAC,CAAC,SAAS,MAAM,EACnC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,GAAG,gBAAgB,CAAC,GACtD,CAAC,GAAG,eAAe,GAAG,gBAAgB,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACzC,SAAS,OAAO,GAAG,WAAW,KAC5B,uBAWD,CAAC;AAEH,eAAO,MAAM,+BAA+B,GAC3C,SAAS,OAAO,GAAG,WAAW,EAC9B,YAAY,eAAe,GAAG,gBAAgB,KAC5C,eAAe,GAAG,gBASnB,CAAC;AAIH,qBACa,GAAI,SAAQ,OAAO;IAE/B,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAGtC,sBAAsB,EAAE,UAAU,CAAC;IAGnC,WAAW,EAAE,MAAM,CAAC;gBAER,UAAU,EAAE;QACvB,sBAAsB,EAAE,UAAU,CAAC;QACnC,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;KACtC;IAOD,IAAI,EAAE,gCAEL;IAED,KAAK;IAIL,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,GAAG;CAUvC;AAID,qBACa,KAAM,SAAQ,OAAO;IAEjC,MAAM,EAAE,aAAa,CAAC;IAGtB,MAAM,EAAE,MAAM,EAAE,CAAC;gBAEL,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAK5C,IAAI,EAAE,gCAEL;IAED,KAAK;IAIL,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK;CAUzC;AAID,qBACa,OAAQ,SAAQ,OAAO;IAEnC,MAAM,EAAE,aAAa,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IAG5D,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEN,UAAU,EAAE;QACvB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,aAAa,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;KAC5D;IAKD,IAAI,EAAE,gCAEL;IAED,KAAK;IAIL,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;CAU3C"}

@@ -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":"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"}
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"}
{
"name": "@peerbit/stream-interface",
"version": "6.0.1",
"version": "6.0.2",
"description": "Block store streaming",

@@ -5,0 +5,0 @@ "sideEffects": false,

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 @@ }