cesr
Version:
[](https://www.npmjs.com/package/cesr) [](https://github.com/lenkan/cesr-js/blob/main/LICENSE)
135 lines (134 loc) • 4.68 kB
TypeScript
import type { DataObject } from "./data-type.ts";
export interface CounterInit {
code: string;
count: number;
}
export interface Counter extends CounterInit {
text: string;
}
export interface GenusInit {
major: number;
minor?: number;
}
export interface Genus extends GenusInit {
minor: number;
}
export interface IndexerInit {
code: string;
raw?: Uint8Array;
index?: number;
ondex?: number;
}
export interface Indexer extends IndexerInit {
text: string;
}
export interface MatterInit {
code: string;
soft?: string;
raw: Uint8Array;
}
export interface Matter extends MatterInit {
code: string;
text: string;
}
export interface MessageVersionInit {
protocol?: string;
major?: number;
minor?: number;
size?: number;
/**
* The serialization kind
*/
kind?: string;
/**
* Use the legacy version string format
*/
legacy?: boolean;
}
export type MessageVersion = Required<MessageVersionInit>;
export type MatterDigest = "blake3_256" | "blake3_512";
export type MatterSignature = "ed25519" | "secp256k1";
export interface FrameData {
code: string;
raw?: Uint8Array;
count?: number;
index?: number;
ondex?: number;
text?: string;
}
export interface CodeSize {
hs: number;
fs: number;
ss: number;
os?: number;
ls?: number;
xs?: number;
}
export interface ParsingContext {
code: string;
version?: number;
}
/**
* The result of decoding a stream. The frame property will
* be null if there is not enough data to decode a frame.
*
* The n property indicates the number of bytes consumed
*/
export interface DecodeStreamResult {
/**
* The decoded frame. This will be null if there is not enough data in the input
*/
frame: Required<FrameData> | null;
/**
* The number of bytes consumed from the input
*/
n: number;
}
export declare function encode(frame: FrameData, size: CodeSize): string;
export declare function encodeIndexedSignature(alg: MatterSignature, raw: Uint8Array, index: number): string;
export declare function encodeMatter(raw: MatterInit): string;
export declare function encodeMap(data: DataObject): string;
export declare function encodeDate(date: Date): string;
export declare function encodeTag(tag: string): string;
export declare function encodeString(txt: string): string;
export declare function encodeInt(value: number): string;
export declare function encodeNumber(value: number): string;
export declare function encodeSignature(alg: MatterSignature, raw: Uint8Array): string;
export declare function encodeDigest(alg: MatterDigest, raw: Uint8Array): string;
export declare function encodeGenus(genus: GenusInit): string;
export declare function encodeCounter(raw: CounterInit): string;
export declare function encodeAttachmentsV1(count: number): string;
export declare function encodeAttachmentsV2(count: number): string;
export declare function encodeIndexer(frame: IndexerInit): string;
export declare function encodeVersionString(init: MessageVersionInit): string;
export declare function encodeMessage<T extends DataObject>(body: T, init?: MessageVersionInit): string;
export declare function decode(input: string | Uint8Array, context?: ParsingContext): Required<FrameData>;
export declare function decodeStream(input: string | Uint8Array, context?: ParsingContext): DecodeStreamResult;
export declare function decodeGenus(input: string): Genus;
export declare function decodeMatter(input: string | Uint8Array): Matter;
export declare function decodeCounter(input: string | Uint8Array): Counter;
export declare function decodeVersionString(input: string | Uint8Array): Required<MessageVersionInit>;
export declare const encoding: {
encode: typeof encode;
encodeIndexedSignature: typeof encodeIndexedSignature;
encodeMap: typeof encodeMap;
encodeMatter: typeof encodeMatter;
encodeDate: typeof encodeDate;
encodeString: typeof encodeString;
encodeNumber: typeof encodeNumber;
encodeSignature: typeof encodeSignature;
encodeDigest: typeof encodeDigest;
encodeGenus: typeof encodeGenus;
encodeCounter: typeof encodeCounter;
encodeAttachmentsV1: typeof encodeAttachmentsV1;
encodeAttachmentsV2: typeof encodeAttachmentsV2;
encodeIndexer: typeof encodeIndexer;
encodeVersionString: typeof encodeVersionString;
encodeMessage: typeof encodeMessage;
decode: typeof decode;
decodeStream: typeof decodeStream;
decodeGenus: typeof decodeGenus;
decodeMatter: typeof decodeMatter;
decodeCounter: typeof decodeCounter;
decodeVersionString: typeof decodeVersionString;
};