New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@xyo-network/payload-builder

Package Overview
Dependencies
Maintainers
0
Versions
792
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xyo-network/payload-builder - npm Package Compare versions

Comparing version

to
3.6.0-rc.2

9

dist/browser/Builder.d.ts

@@ -1,7 +0,11 @@

import type { Hash } from '@xylabs/hex';
import type { Hash, Hex } from '@xylabs/hex';
import type { AnyObject } from '@xylabs/object';
import type { Payload } from '@xyo-network/payload-model';
import { type Payload, type WithStorageMeta } from '@xyo-network/payload-model';
import { PayloadBuilderBase } from './BuilderBase.ts';
import type { PayloadBuilderOptions } from './Options.ts';
export declare class PayloadBuilder<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> extends PayloadBuilderBase<T, O> {
static addSequencedStorageMeta<T extends Payload = Payload>(payload: T, hash?: Hash, dataHash?: Hash): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payload: T): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payloads: T[]): Promise<WithStorageMeta<T>[]>;
static buildSequence(epoch: number, nonce: Hex): Hex;
static dataHash<T extends Payload>(payload: T): Promise<Hash>;

@@ -25,2 +29,3 @@ static dataHashPairs<T extends Payload>(payloads: T[]): Promise<[T, Hash][]>;

static hashes<T extends Payload>(payloads: T[]): Promise<Hash[]>;
static sortByStorageMeta<T extends Payload>(payloads: WithStorageMeta<T>[], direction?: -1 | 1): WithStorageMeta<T>[];
static toAllHashMap<T extends Payload>(payloads: T[]): Promise<Record<Hash, T>>;

@@ -27,0 +32,0 @@ static toDataHashMap<T extends Payload>(objs: T[]): Promise<Record<Hash, T>>;

@@ -15,4 +15,7 @@ import type { AnyObject } from '@xylabs/object';

static omitClientMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitClientMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitStorageMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitStorageMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
dataHashableFields(): Promise<{

@@ -19,0 +22,0 @@ schema: string;

@@ -1,7 +0,11 @@

import type { Hash } from '@xylabs/hex';
import type { Hash, Hex } from '@xylabs/hex';
import type { AnyObject } from '@xylabs/object';
import type { Payload } from '@xyo-network/payload-model';
import { type Payload, type WithStorageMeta } from '@xyo-network/payload-model';
import { PayloadBuilderBase } from './BuilderBase.ts';
import type { PayloadBuilderOptions } from './Options.ts';
export declare class PayloadBuilder<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> extends PayloadBuilderBase<T, O> {
static addSequencedStorageMeta<T extends Payload = Payload>(payload: T, hash?: Hash, dataHash?: Hash): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payload: T): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payloads: T[]): Promise<WithStorageMeta<T>[]>;
static buildSequence(epoch: number, nonce: Hex): Hex;
static dataHash<T extends Payload>(payload: T): Promise<Hash>;

@@ -25,2 +29,3 @@ static dataHashPairs<T extends Payload>(payloads: T[]): Promise<[T, Hash][]>;

static hashes<T extends Payload>(payloads: T[]): Promise<Hash[]>;
static sortByStorageMeta<T extends Payload>(payloads: WithStorageMeta<T>[], direction?: -1 | 1): WithStorageMeta<T>[];
static toAllHashMap<T extends Payload>(payloads: T[]): Promise<Record<Hash, T>>;

@@ -27,0 +32,0 @@ static toDataHashMap<T extends Payload>(objs: T[]): Promise<Record<Hash, T>>;

@@ -15,4 +15,7 @@ import type { AnyObject } from '@xylabs/object';

static omitClientMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitClientMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitStorageMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitStorageMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
dataHashableFields(): Promise<{

@@ -19,0 +22,0 @@ schema: string;

@@ -1,7 +0,11 @@

import type { Hash } from '@xylabs/hex';
import type { Hash, Hex } from '@xylabs/hex';
import type { AnyObject } from '@xylabs/object';
import type { Payload } from '@xyo-network/payload-model';
import { type Payload, type WithStorageMeta } from '@xyo-network/payload-model';
import { PayloadBuilderBase } from './BuilderBase.ts';
import type { PayloadBuilderOptions } from './Options.ts';
export declare class PayloadBuilder<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> extends PayloadBuilderBase<T, O> {
static addSequencedStorageMeta<T extends Payload = Payload>(payload: T, hash?: Hash, dataHash?: Hash): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payload: T): Promise<WithStorageMeta<T>>;
static addStorageMeta<T extends Payload>(payloads: T[]): Promise<WithStorageMeta<T>[]>;
static buildSequence(epoch: number, nonce: Hex): Hex;
static dataHash<T extends Payload>(payload: T): Promise<Hash>;

@@ -25,2 +29,3 @@ static dataHashPairs<T extends Payload>(payloads: T[]): Promise<[T, Hash][]>;

static hashes<T extends Payload>(payloads: T[]): Promise<Hash[]>;
static sortByStorageMeta<T extends Payload>(payloads: WithStorageMeta<T>[], direction?: -1 | 1): WithStorageMeta<T>[];
static toAllHashMap<T extends Payload>(payloads: T[]): Promise<Record<Hash, T>>;

@@ -27,0 +32,0 @@ static toDataHashMap<T extends Payload>(objs: T[]): Promise<Record<Hash, T>>;

@@ -15,4 +15,7 @@ import type { AnyObject } from '@xylabs/object';

static omitClientMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitClientMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
static omitStorageMeta<T extends Payload>(payload: T, maxDepth?: number): T;
static omitStorageMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[];
dataHashableFields(): Promise<{

@@ -19,0 +22,0 @@ schema: string;

{
"name": "@xyo-network/payload-builder",
"version": "3.6.0-rc.1",
"version": "3.6.0-rc.2",
"description": "Primary SDK for using XYO Protocol 2.0",

@@ -37,4 +37,4 @@ "homepage": "https://xyo.network",

"@xylabs/promise": "^4.4.12",
"@xyo-network/hash": "^3.6.0-rc.1",
"@xyo-network/payload-model": "^3.6.0-rc.1"
"@xyo-network/hash": "^3.6.0-rc.2",
"@xyo-network/payload-model": "^3.6.0-rc.2"
},

@@ -41,0 +41,0 @@ "devDependencies": {

@@ -1,5 +0,14 @@

import type { Hash } from '@xylabs/hex'
import { assertEx } from '@xylabs/assert'
import type {
Hash,
Hex,
} from '@xylabs/hex'
import {
isHash, isHex, toHex,
} from '@xylabs/hex'
import type { AnyObject } from '@xylabs/object'
import { ObjectHasher } from '@xyo-network/hash'
import type { Payload } from '@xyo-network/payload-model'
import {
type Payload, StorageMetaConstants, type WithStorageMeta,
} from '@xyo-network/payload-model'

@@ -13,2 +22,43 @@ import { PayloadBuilderBase } from './BuilderBase.ts'

> extends PayloadBuilderBase<T, O> {
static async addSequencedStorageMeta<T extends Payload = Payload>(payload: T, hash?: Hash, dataHash?: Hash): Promise<WithStorageMeta<T>> {
assertEx(hash === undefined || isHash(hash), () => 'Invalid hash')
assertEx(dataHash === undefined || isHash(dataHash), () => 'Invalid dataHash')
const _hash = hash ?? await PayloadBuilder.hash(payload)
return {
...payload,
_sequence: this.buildSequence(Date.now(), _hash.slice(-(StorageMetaConstants.nonceBytes * 2)) as Hex),
_dataHash: dataHash ?? await PayloadBuilder.dataHash(payload),
_hash,
}
}
static async addStorageMeta<T extends Payload>(payload: T): Promise<WithStorageMeta<T>>
static async addStorageMeta<T extends Payload>(payloads: T[]): Promise<WithStorageMeta<T>[]>
static async addStorageMeta<T extends Payload>(payloads: T | T[]): Promise<WithStorageMeta<T>[] | WithStorageMeta<T>> {
return Array.isArray(payloads)
? await (async () => {
const pairs = await PayloadBuilder.hashPairs(payloads)
return await Promise.all(pairs.map(async ([payload, hash]) => await this.addSequencedStorageMeta(
payload,
hash,
)))
})()
: this.addSequencedStorageMeta(
payloads,
)
}
static buildSequence(epoch: number, nonce: Hex): Hex {
assertEx(
epoch <= StorageMetaConstants.maxEpoch,
() => `epoch must be less than or equal to ${StorageMetaConstants.maxEpoch} [${epoch}]`,
)
assertEx(isHex(nonce), () => 'nonce must be a Hex type')
assertEx(
nonce.length === StorageMetaConstants.nonceBytes * 2,
() => `nonce must be ${StorageMetaConstants.nonceBytes} bytes [${nonce.length}] <- Hex String Length`,
)
return `${toHex(epoch, { byteSize: 4 })}${nonce}` as Hex
}
static async dataHash<T extends Payload>(payload: T): Promise<Hash> {

@@ -86,2 +136,11 @@ return await ObjectHasher.hash(this.omitMeta(payload))

static sortByStorageMeta<T extends Payload>(payloads: WithStorageMeta<T>[], direction: -1 | 1 = 1) {
return payloads.sort((a, b) =>
a._sequence < b._sequence
? -direction
: a._sequence > b._sequence
? direction
: 0)
}
static async toAllHashMap<T extends Payload>(payloads: T[]): Promise<Record<Hash, T>> {

@@ -88,0 +147,0 @@ const result: Record<Hash, T> = {}

@@ -51,12 +51,24 @@ import { assertEx } from '@xylabs/assert'

static omitClientMeta<T extends Payload>(payload: T, maxDepth = 100): T {
return omitBy(payload, omitByPrefixPredicate('$'), maxDepth) as T
static omitClientMeta<T extends Payload>(payload: T, maxDepth?: number): T
static omitClientMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[]
static omitClientMeta<T extends Payload>(payloads: T | T[], maxDepth = 100): T | T[] {
return Array.isArray(payloads)
? payloads.map(payload => this.omitClientMeta(payload, maxDepth)) as T[]
: omitBy(payloads, omitByPrefixPredicate('$'), maxDepth) as T
}
static omitMeta<T extends Payload>(payload: T, maxDepth = 100): T {
return this.omitStorageMeta(this.omitClientMeta(payload, maxDepth), maxDepth)
static omitMeta<T extends Payload>(payload: T, maxDepth?: number): T
static omitMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[]
static omitMeta<T extends Payload>(payloads: T | T[], maxDepth = 100): T | T[] {
return Array.isArray(payloads)
? this.omitStorageMeta(this.omitClientMeta(payloads, maxDepth), maxDepth)
: this.omitStorageMeta(this.omitClientMeta(payloads, maxDepth), maxDepth)
}
static omitStorageMeta<T extends Payload>(payload: T, maxDepth = 100): T {
return omitBy(payload, omitByPrefixPredicate('_'), maxDepth) as T
static omitStorageMeta<T extends Payload>(payload: T, maxDepth?: number): T
static omitStorageMeta<T extends Payload>(payloads: T[], maxDepth?: number): T[]
static omitStorageMeta<T extends Payload>(payloads: T | T[], maxDepth = 100): T | T[] {
return Array.isArray(payloads)
? payloads.map(payload => this.omitStorageMeta(payload, maxDepth)) as T[]
: omitBy(payloads, omitByPrefixPredicate('_'), maxDepth) as T
}

@@ -63,0 +75,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet