@xyo-network/boundwitness-wrapper 2.99.2 → 2.99.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/BoundWitnessWrapper.d.cts +56 -0
- package/dist/neutral/BoundWitnessWrapper.d.cts.map +1 -0
- package/dist/neutral/BoundWitnessWrapper.d.mts +56 -0
- package/dist/neutral/BoundWitnessWrapper.d.mts.map +1 -0
- package/dist/neutral/BoundWitnessWrapper.d.ts +56 -0
- package/dist/neutral/BoundWitnessWrapper.d.ts.map +1 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.cts +12 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.cts.map +1 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.mts +12 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.mts.map +1 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.ts +12 -0
- package/dist/neutral/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/neutral/index.cjs +230 -0
- package/dist/neutral/index.cjs.map +1 -0
- package/dist/neutral/index.d.cts +3 -0
- package/dist/neutral/index.d.cts.map +1 -0
- package/dist/neutral/index.d.mts +3 -0
- package/dist/neutral/index.d.mts.map +1 -0
- package/dist/neutral/index.d.ts +3 -0
- package/dist/neutral/index.d.ts.map +1 -0
- package/dist/neutral/index.js +209 -0
- package/dist/neutral/index.js.map +1 -0
- package/package.json +13 -13
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Address, Hash } from '@xylabs/hex';
|
|
2
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
+
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
|
+
schema: "network.xyo.boundwitness";
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & import("@xyo-network/payload-model").PayloadFields = {
|
|
12
|
+
schema: string;
|
|
13
|
+
} & import("@xyo-network/payload-model").PayloadFields>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
14
|
+
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
15
|
+
schema: string;
|
|
16
|
+
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
17
|
+
boundwitness: WithMeta<TBoundWitness>;
|
|
18
|
+
payloads: WithMeta<TPayload>[];
|
|
19
|
+
moduleErrors?: WithMeta<{
|
|
20
|
+
schema: string;
|
|
21
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
23
|
+
private _payloadMap;
|
|
24
|
+
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
25
|
+
schema: string;
|
|
26
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined);
|
|
27
|
+
get addresses(): Lowercase<string>[];
|
|
28
|
+
get payloadHashes(): Lowercase<string>[];
|
|
29
|
+
get payloadSchemas(): string[];
|
|
30
|
+
get previousHashes(): (Lowercase<string> | null)[];
|
|
31
|
+
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
32
|
+
schema: string;
|
|
33
|
+
} & import("@xyo-network/payload-model").PayloadFields> | undefined;
|
|
34
|
+
static load(address: Address): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
35
|
+
schema: "network.xyo.boundwitness";
|
|
36
|
+
}, {
|
|
37
|
+
schema: string;
|
|
38
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
39
|
+
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P>;
|
|
40
|
+
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P> | undefined;
|
|
41
|
+
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: WithMeta<P>[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
42
|
+
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
43
|
+
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
44
|
+
getMissingPayloads(): Promise<Lowercase<string>[]>;
|
|
45
|
+
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
46
|
+
hashesBySchema(schema: string): string[];
|
|
47
|
+
payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
49
|
+
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
52
|
+
prev(address: Address): Lowercase<string> | null;
|
|
53
|
+
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
54
|
+
validate(): Promise<Error[]>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAkB,YAAY,EAAsC,MAAM,iCAAiC,CAAA;AAGlH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAwB,cAAc,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEvG,eAAO,MAAM,qBAAqB;;;;;;;;gEACxB,OAAO,uCAMhB,CAAA;AAED,qBAAa,mBAAmB,CAC9B,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EACrE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAClC,SAAQ,kBAAkB,CAAC,aAAa,CAAC;IAKhC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC9B,YAAY,CAAC;;;IANtB,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,WAAW,CAA8C;IAEjE,SAAS,aACA,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EACrC,QAAQ,GAAE,QAAQ,CAAC,QAAQ,CAAC,EAAO,EACnC,YAAY,CAAC;;yEAAqB;IAK3C,IAAI,SAAS,wBAEZ;IAED,IAAI,aAAa,wBAEhB;IAED,IAAI,cAAc,aAEjB;IAED,IAAI,cAAc,iCAEjB;IAED,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO;;;WAIlD,IAAI,CAAC,OAAO,EAAE,OAAO;;;;;IASlC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAC7E,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GACvB,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IA2B5B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS;WAS5H,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EACzD,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;WAcxB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EACpD,cAAc,EAAE,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,GAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;IAW5C,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAqBhE,kBAAkB;IAKlB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IAI/D,cAAc,CAAC,MAAM,EAAE,MAAM;IAUvB,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKzD,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAK3D,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAI7D,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAKhE,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAKlE,IAAI,CAAC,OAAO,EAAE,OAAO;IAIrB,QAAQ;IAIO,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAG5C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Address, Hash } from '@xylabs/hex';
|
|
2
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
+
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
|
+
schema: "network.xyo.boundwitness";
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & import("@xyo-network/payload-model").PayloadFields = {
|
|
12
|
+
schema: string;
|
|
13
|
+
} & import("@xyo-network/payload-model").PayloadFields>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
14
|
+
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
15
|
+
schema: string;
|
|
16
|
+
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
17
|
+
boundwitness: WithMeta<TBoundWitness>;
|
|
18
|
+
payloads: WithMeta<TPayload>[];
|
|
19
|
+
moduleErrors?: WithMeta<{
|
|
20
|
+
schema: string;
|
|
21
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
23
|
+
private _payloadMap;
|
|
24
|
+
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
25
|
+
schema: string;
|
|
26
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined);
|
|
27
|
+
get addresses(): Lowercase<string>[];
|
|
28
|
+
get payloadHashes(): Lowercase<string>[];
|
|
29
|
+
get payloadSchemas(): string[];
|
|
30
|
+
get previousHashes(): (Lowercase<string> | null)[];
|
|
31
|
+
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
32
|
+
schema: string;
|
|
33
|
+
} & import("@xyo-network/payload-model").PayloadFields> | undefined;
|
|
34
|
+
static load(address: Address): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
35
|
+
schema: "network.xyo.boundwitness";
|
|
36
|
+
}, {
|
|
37
|
+
schema: string;
|
|
38
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
39
|
+
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P>;
|
|
40
|
+
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P> | undefined;
|
|
41
|
+
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: WithMeta<P>[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
42
|
+
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
43
|
+
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
44
|
+
getMissingPayloads(): Promise<Lowercase<string>[]>;
|
|
45
|
+
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
46
|
+
hashesBySchema(schema: string): string[];
|
|
47
|
+
payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
49
|
+
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
52
|
+
prev(address: Address): Lowercase<string> | null;
|
|
53
|
+
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
54
|
+
validate(): Promise<Error[]>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Address, Hash } from '@xylabs/hex';
|
|
2
|
+
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
|
+
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
|
+
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
|
+
schema: "network.xyo.boundwitness";
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & import("@xyo-network/payload-model").PayloadFields = {
|
|
12
|
+
schema: string;
|
|
13
|
+
} & import("@xyo-network/payload-model").PayloadFields>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
14
|
+
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
15
|
+
schema: string;
|
|
16
|
+
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
17
|
+
boundwitness: WithMeta<TBoundWitness>;
|
|
18
|
+
payloads: WithMeta<TPayload>[];
|
|
19
|
+
moduleErrors?: WithMeta<{
|
|
20
|
+
schema: string;
|
|
21
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
23
|
+
private _payloadMap;
|
|
24
|
+
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
25
|
+
schema: string;
|
|
26
|
+
} & import("@xyo-network/payload-model").PayloadFields>[] | undefined);
|
|
27
|
+
get addresses(): Lowercase<string>[];
|
|
28
|
+
get payloadHashes(): Lowercase<string>[];
|
|
29
|
+
get payloadSchemas(): string[];
|
|
30
|
+
get previousHashes(): (Lowercase<string> | null)[];
|
|
31
|
+
static as<T extends BoundWitness = BoundWitness>(value: unknown): BoundWitnessWrapper<T, {
|
|
32
|
+
schema: string;
|
|
33
|
+
} & import("@xyo-network/payload-model").PayloadFields> | undefined;
|
|
34
|
+
static load(address: Address): Promise<BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
35
|
+
schema: "network.xyo.boundwitness";
|
|
36
|
+
}, {
|
|
37
|
+
schema: string;
|
|
38
|
+
} & import("@xyo-network/payload-model").PayloadFields> | null>;
|
|
39
|
+
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P>;
|
|
40
|
+
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P> | undefined;
|
|
41
|
+
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: WithMeta<P>[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
42
|
+
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
43
|
+
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
44
|
+
getMissingPayloads(): Promise<Lowercase<string>[]>;
|
|
45
|
+
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
46
|
+
hashesBySchema(schema: string): string[];
|
|
47
|
+
payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: Hash[]): Promise<TPayload[]>;
|
|
49
|
+
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
52
|
+
prev(address: Address): Lowercase<string> | null;
|
|
53
|
+
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
54
|
+
validate(): Promise<Error[]>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
+
import { Payload, Query } from '@xyo-network/payload-model';
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
|
+
import { BoundWitnessWrapper } from './BoundWitnessWrapper';
|
|
5
|
+
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
+
private _payloadsWithoutQuery;
|
|
7
|
+
private _query;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
+
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
+
getQuery(): Promise<T>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
+
import { Payload, Query } from '@xyo-network/payload-model';
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
|
+
import { BoundWitnessWrapper } from './BoundWitnessWrapper';
|
|
5
|
+
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
+
private _payloadsWithoutQuery;
|
|
7
|
+
private _query;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
+
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
+
getQuery(): Promise<T>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
2
|
+
import { Payload, Query } from '@xyo-network/payload-model';
|
|
3
|
+
import { PayloadWrapper } from '@xyo-network/payload-wrapper';
|
|
4
|
+
import { BoundWitnessWrapper } from './BoundWitnessWrapper';
|
|
5
|
+
export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
|
|
6
|
+
private _payloadsWithoutQuery;
|
|
7
|
+
private _query;
|
|
8
|
+
static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
|
|
9
|
+
getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]>;
|
|
10
|
+
getQuery(): Promise<T>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAEnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAS7D,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;CAK7B"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/index.ts
|
|
22
|
+
var src_exports = {};
|
|
23
|
+
__export(src_exports, {
|
|
24
|
+
BoundWitnessWrapper: () => BoundWitnessWrapper,
|
|
25
|
+
QueryBoundWitnessWrapper: () => QueryBoundWitnessWrapper,
|
|
26
|
+
isBoundWitnessWrapper: () => isBoundWitnessWrapper
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(src_exports);
|
|
29
|
+
|
|
30
|
+
// src/BoundWitnessWrapper.ts
|
|
31
|
+
var import_assert = require("@xylabs/assert");
|
|
32
|
+
var import_object = require("@xylabs/object");
|
|
33
|
+
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
34
|
+
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
35
|
+
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
36
|
+
var import_payload_wrapper = require("@xyo-network/payload-wrapper");
|
|
37
|
+
var isBoundWitnessWrapper = /* @__PURE__ */ __name((value) => {
|
|
38
|
+
if ((0, import_payload_wrapper.isPayloadWrapperBase)(value)) {
|
|
39
|
+
return typeof value.payloadsDataHashMap === "function";
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}, "isBoundWitnessWrapper");
|
|
43
|
+
var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrapper.PayloadWrapperBase {
|
|
44
|
+
static {
|
|
45
|
+
__name(this, "BoundWitnessWrapper");
|
|
46
|
+
}
|
|
47
|
+
boundwitness;
|
|
48
|
+
payloads;
|
|
49
|
+
moduleErrors;
|
|
50
|
+
_payloadDataMap;
|
|
51
|
+
_payloadMap;
|
|
52
|
+
constructor(boundwitness, payloads = [], moduleErrors) {
|
|
53
|
+
super(boundwitness);
|
|
54
|
+
this.boundwitness = boundwitness;
|
|
55
|
+
this.payloads = payloads;
|
|
56
|
+
this.moduleErrors = moduleErrors;
|
|
57
|
+
}
|
|
58
|
+
get addresses() {
|
|
59
|
+
return this.boundwitness.addresses;
|
|
60
|
+
}
|
|
61
|
+
get payloadHashes() {
|
|
62
|
+
return this.boundwitness.payload_hashes;
|
|
63
|
+
}
|
|
64
|
+
get payloadSchemas() {
|
|
65
|
+
return this.boundwitness.payload_schemas;
|
|
66
|
+
}
|
|
67
|
+
get previousHashes() {
|
|
68
|
+
return this.boundwitness.previous_hashes;
|
|
69
|
+
}
|
|
70
|
+
static as(value) {
|
|
71
|
+
return value instanceof _BoundWitnessWrapper ? value : void 0;
|
|
72
|
+
}
|
|
73
|
+
static async load(address) {
|
|
74
|
+
const wrapper = await import_payload_wrapper.PayloadWrapper.load(address);
|
|
75
|
+
const payload = wrapper?.payload;
|
|
76
|
+
(0, import_assert.assertEx)(payload && (0, import_boundwitness_model.isBoundWitness)(payload), () => "Attempt to load non-boundwitness");
|
|
77
|
+
const boundWitness = payload && (0, import_boundwitness_model.isBoundWitness)(payload) ? payload : void 0;
|
|
78
|
+
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
79
|
+
}
|
|
80
|
+
static parse(obj, payloads) {
|
|
81
|
+
let hydratedObj = void 0;
|
|
82
|
+
switch (typeof obj) {
|
|
83
|
+
case "string": {
|
|
84
|
+
hydratedObj = JSON.parse(obj);
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case "object": {
|
|
88
|
+
if ((0, import_object.isObject)(obj)) {
|
|
89
|
+
hydratedObj = obj;
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (hydratedObj) {
|
|
95
|
+
if (isBoundWitnessWrapper(hydratedObj)) {
|
|
96
|
+
return hydratedObj;
|
|
97
|
+
}
|
|
98
|
+
if ((0, import_boundwitness_model.isBoundWitness)(hydratedObj)) {
|
|
99
|
+
return new _BoundWitnessWrapper(hydratedObj, payloads ?? []);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
103
|
+
}
|
|
104
|
+
static tryParse(obj, payloads) {
|
|
105
|
+
if (obj === void 0)
|
|
106
|
+
return void 0;
|
|
107
|
+
try {
|
|
108
|
+
return this.parse(obj, payloads);
|
|
109
|
+
} catch {
|
|
110
|
+
return void 0;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
static async wrap(obj, payloads) {
|
|
114
|
+
switch (typeof obj) {
|
|
115
|
+
case "object": {
|
|
116
|
+
if (obj instanceof _BoundWitnessWrapper) {
|
|
117
|
+
return obj;
|
|
118
|
+
} else if (obj instanceof import_payload_wrapper.PayloadWrapper && obj.schema() === import_boundwitness_model.BoundWitnessSchema) {
|
|
119
|
+
return await _BoundWitnessWrapper.parse(obj.payload, payloads);
|
|
120
|
+
} else {
|
|
121
|
+
return await _BoundWitnessWrapper.parse(obj, payloads);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
static async wrappedDataHashMap(boundWitnesses) {
|
|
127
|
+
const result = {};
|
|
128
|
+
await Promise.all(boundWitnesses.map(async (payload) => {
|
|
129
|
+
const bw = _BoundWitnessWrapper.parse(payload);
|
|
130
|
+
result[await bw.dataHash()] = bw;
|
|
131
|
+
}));
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
async dig(depth) {
|
|
135
|
+
if (depth === 0)
|
|
136
|
+
return this;
|
|
137
|
+
const innerBoundwitnessIndex = this.payloadSchemas.indexOf(import_boundwitness_model.BoundWitnessSchema);
|
|
138
|
+
if (innerBoundwitnessIndex > -1) {
|
|
139
|
+
const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
|
|
140
|
+
const innerBoundwitnessPayload = (0, import_boundwitness_model.asBoundWitness)((await import_payload_builder.PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash]);
|
|
141
|
+
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(innerBoundwitnessPayload, await import_payload_builder.PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash)) : void 0;
|
|
142
|
+
if (innerBoundwitness) {
|
|
143
|
+
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
(0, import_assert.assertEx)(!depth, () => `Dig failed [Remaining Depth: ${depth}]`);
|
|
147
|
+
return this;
|
|
148
|
+
}
|
|
149
|
+
async getMissingPayloads() {
|
|
150
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
151
|
+
return this.payloadHashes.filter((hash) => !payloadMap[hash]);
|
|
152
|
+
}
|
|
153
|
+
async getWrappedPayloads() {
|
|
154
|
+
return await Promise.all(this.payloads.map((payload) => import_payload_wrapper.PayloadWrapper.wrap(payload)));
|
|
155
|
+
}
|
|
156
|
+
hashesBySchema(schema) {
|
|
157
|
+
const result = [];
|
|
158
|
+
for (const [index, payloadSchema] of this.payloadSchemas.entries()) {
|
|
159
|
+
if (payloadSchema === schema) {
|
|
160
|
+
result.push(this.payloadHashes[index]);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
async payloadsByDataHashes(hashes) {
|
|
166
|
+
const map = await this.payloadsDataHashMap();
|
|
167
|
+
return hashes.map((hash) => (0, import_assert.assertEx)(map[hash], () => "Hash not found"));
|
|
168
|
+
}
|
|
169
|
+
async payloadsByHashes(hashes) {
|
|
170
|
+
const map = await this.payloadsHashMap();
|
|
171
|
+
return hashes.map((hash) => (0, import_assert.assertEx)(map[hash], () => "Hash not found"));
|
|
172
|
+
}
|
|
173
|
+
payloadsBySchema(schema) {
|
|
174
|
+
return this.payloads.filter((payload) => payload?.schema === schema);
|
|
175
|
+
}
|
|
176
|
+
async payloadsDataHashMap() {
|
|
177
|
+
this._payloadDataMap = this._payloadDataMap ?? await import_payload_builder.PayloadBuilder.toDataHashMap(this.payloads);
|
|
178
|
+
return this._payloadDataMap;
|
|
179
|
+
}
|
|
180
|
+
async payloadsHashMap() {
|
|
181
|
+
this._payloadMap = this._payloadMap ?? await import_payload_builder.PayloadBuilder.toHashMap(this.payloads);
|
|
182
|
+
return this._payloadMap;
|
|
183
|
+
}
|
|
184
|
+
prev(address) {
|
|
185
|
+
return this.previousHashes[this.addresses.indexOf(address)];
|
|
186
|
+
}
|
|
187
|
+
toResult() {
|
|
188
|
+
return [
|
|
189
|
+
this.boundwitness,
|
|
190
|
+
this.payloads
|
|
191
|
+
];
|
|
192
|
+
}
|
|
193
|
+
async validate() {
|
|
194
|
+
return await new import_boundwitness_validator.BoundWitnessValidator(this.boundwitness).validate();
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
// src/QueryBoundWitnessWrapper.ts
|
|
199
|
+
var import_assert2 = require("@xylabs/assert");
|
|
200
|
+
var import_lodash = require("@xylabs/lodash");
|
|
201
|
+
var import_payload = require("@xyo-network/payload");
|
|
202
|
+
var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
|
|
203
|
+
var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
|
|
204
|
+
static {
|
|
205
|
+
__name(this, "QueryBoundWitnessWrapper");
|
|
206
|
+
}
|
|
207
|
+
_payloadsWithoutQuery;
|
|
208
|
+
_query;
|
|
209
|
+
static async parseQuery(obj, payloads) {
|
|
210
|
+
(0, import_assert2.assertEx)(!Array.isArray(obj), () => "Array can not be converted to QueryBoundWitnessWrapper");
|
|
211
|
+
switch (typeof obj) {
|
|
212
|
+
case "object": {
|
|
213
|
+
const castWrapper = obj;
|
|
214
|
+
const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await import_payload.PayloadBuilder.build(obj), payloads ? await Promise.all(payloads.map((payload) => import_payload.PayloadBuilder.build(payload))) : void 0);
|
|
215
|
+
return wrapper;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
219
|
+
}
|
|
220
|
+
async getPayloadsWithoutQuery() {
|
|
221
|
+
this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all((0, import_lodash.compact)((await import_payload.PayloadBuilder.filterExclude(this.payloads, this.payload.query)).map((payload) => import_payload_wrapper2.PayloadWrapper.wrap(payload))));
|
|
222
|
+
return this._payloadsWithoutQuery;
|
|
223
|
+
}
|
|
224
|
+
async getQuery() {
|
|
225
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
226
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
227
|
+
return (0, import_assert2.assertEx)(this._query, () => `Missing Query [${this.boundwitness}]`);
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts","../../src/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\nexport * from './QueryBoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { Address, Hash } from '@xylabs/hex'\nimport { isObject } from '@xylabs/object'\nimport { asBoundWitness, BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _payloadDataMap: Record<Hash, WithMeta<TPayload>> | undefined\n private _payloadMap: Record<Hash, WithMeta<TPayload>> | undefined\n\n protected constructor(\n public boundwitness: WithMeta<TBoundWitness>,\n public payloads: WithMeta<TPayload>[] = [],\n public moduleErrors?: WithMeta<Payload>[],\n ) {\n super(boundwitness)\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? await BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: WithMeta<P>[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: WithMeta<T> | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as WithMeta<T>\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as WithMeta<T>\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static async wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | T,\n payloads?: WithMeta<P>[],\n ): Promise<BoundWitnessWrapper<T, P>> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return await BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return await BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: Hash = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = asBoundWitness<WithMeta<TBoundWitness>>(\n (await PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash],\n )\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined =\n innerBoundwitnessPayload ?\n new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(this.payloadHashes[index])\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map((hash) => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map((hash) => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[] {\n return this.payloads.filter((payload) => payload?.schema === schema) as WithMeta<T>[]\n }\n\n async payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query, WithMeta } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static async parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper =\n castWrapper instanceof QueryBoundWitnessWrapper ? castWrapper : (\n new QueryBoundWitnessWrapper<T>(\n await PayloadBuilder.build(obj as QueryBoundWitness),\n payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload))) : undefined,\n )\n )\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n (await Promise.all(\n compact((await PayloadBuilder.filterExclude(this.payloads, this.payload.query)).map((payload) => PayloadWrapper.wrap(payload))),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as WithMeta<T> | undefined)\n return assertEx(this._query, () => `Missing Query [${this.boundwitness}]`)\n }\n}\n"],"mappings":"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","names":["isBoundWitnessWrapper","value","isPayloadWrapperBase","payloadsDataHashMap","BoundWitnessWrapper","PayloadWrapperBase","_payloadDataMap","_payloadMap","boundwitness","payloads","moduleErrors","addresses","payloadHashes","payload_hashes","payloadSchemas","payload_schemas","previousHashes","previous_hashes","as","undefined","load","address","wrapper","PayloadWrapper","payload","assertEx","isBoundWitness","boundWitness","wrap","parse","obj","hydratedObj","JSON","isObject","Error","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","Promise","all","map","bw","dataHash","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","PayloadBuilder","toDataHashMap","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","hash","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsHashMap","payloadsBySchema","toHashMap","prev","toResult","validate","BoundWitnessValidator","import_assert","import_payload_wrapper","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getPayloadsWithoutQuery","compact","filterExclude","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/BoundWitnessWrapper.ts
|
|
5
|
+
import { assertEx } from "@xylabs/assert";
|
|
6
|
+
import { isObject } from "@xylabs/object";
|
|
7
|
+
import { asBoundWitness, BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
8
|
+
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
9
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
10
|
+
import { isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase } from "@xyo-network/payload-wrapper";
|
|
11
|
+
var isBoundWitnessWrapper = /* @__PURE__ */ __name((value) => {
|
|
12
|
+
if (isPayloadWrapperBase(value)) {
|
|
13
|
+
return typeof value.payloadsDataHashMap === "function";
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
}, "isBoundWitnessWrapper");
|
|
17
|
+
var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase {
|
|
18
|
+
static {
|
|
19
|
+
__name(this, "BoundWitnessWrapper");
|
|
20
|
+
}
|
|
21
|
+
boundwitness;
|
|
22
|
+
payloads;
|
|
23
|
+
moduleErrors;
|
|
24
|
+
_payloadDataMap;
|
|
25
|
+
_payloadMap;
|
|
26
|
+
constructor(boundwitness, payloads = [], moduleErrors) {
|
|
27
|
+
super(boundwitness);
|
|
28
|
+
this.boundwitness = boundwitness;
|
|
29
|
+
this.payloads = payloads;
|
|
30
|
+
this.moduleErrors = moduleErrors;
|
|
31
|
+
}
|
|
32
|
+
get addresses() {
|
|
33
|
+
return this.boundwitness.addresses;
|
|
34
|
+
}
|
|
35
|
+
get payloadHashes() {
|
|
36
|
+
return this.boundwitness.payload_hashes;
|
|
37
|
+
}
|
|
38
|
+
get payloadSchemas() {
|
|
39
|
+
return this.boundwitness.payload_schemas;
|
|
40
|
+
}
|
|
41
|
+
get previousHashes() {
|
|
42
|
+
return this.boundwitness.previous_hashes;
|
|
43
|
+
}
|
|
44
|
+
static as(value) {
|
|
45
|
+
return value instanceof _BoundWitnessWrapper ? value : void 0;
|
|
46
|
+
}
|
|
47
|
+
static async load(address) {
|
|
48
|
+
const wrapper = await PayloadWrapper.load(address);
|
|
49
|
+
const payload = wrapper?.payload;
|
|
50
|
+
assertEx(payload && isBoundWitness(payload), () => "Attempt to load non-boundwitness");
|
|
51
|
+
const boundWitness = payload && isBoundWitness(payload) ? payload : void 0;
|
|
52
|
+
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
53
|
+
}
|
|
54
|
+
static parse(obj, payloads) {
|
|
55
|
+
let hydratedObj = void 0;
|
|
56
|
+
switch (typeof obj) {
|
|
57
|
+
case "string": {
|
|
58
|
+
hydratedObj = JSON.parse(obj);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "object": {
|
|
62
|
+
if (isObject(obj)) {
|
|
63
|
+
hydratedObj = obj;
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (hydratedObj) {
|
|
69
|
+
if (isBoundWitnessWrapper(hydratedObj)) {
|
|
70
|
+
return hydratedObj;
|
|
71
|
+
}
|
|
72
|
+
if (isBoundWitness(hydratedObj)) {
|
|
73
|
+
return new _BoundWitnessWrapper(hydratedObj, payloads ?? []);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
77
|
+
}
|
|
78
|
+
static tryParse(obj, payloads) {
|
|
79
|
+
if (obj === void 0)
|
|
80
|
+
return void 0;
|
|
81
|
+
try {
|
|
82
|
+
return this.parse(obj, payloads);
|
|
83
|
+
} catch {
|
|
84
|
+
return void 0;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static async wrap(obj, payloads) {
|
|
88
|
+
switch (typeof obj) {
|
|
89
|
+
case "object": {
|
|
90
|
+
if (obj instanceof _BoundWitnessWrapper) {
|
|
91
|
+
return obj;
|
|
92
|
+
} else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {
|
|
93
|
+
return await _BoundWitnessWrapper.parse(obj.payload, payloads);
|
|
94
|
+
} else {
|
|
95
|
+
return await _BoundWitnessWrapper.parse(obj, payloads);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
static async wrappedDataHashMap(boundWitnesses) {
|
|
101
|
+
const result = {};
|
|
102
|
+
await Promise.all(boundWitnesses.map(async (payload) => {
|
|
103
|
+
const bw = _BoundWitnessWrapper.parse(payload);
|
|
104
|
+
result[await bw.dataHash()] = bw;
|
|
105
|
+
}));
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
async dig(depth) {
|
|
109
|
+
if (depth === 0)
|
|
110
|
+
return this;
|
|
111
|
+
const innerBoundwitnessIndex = this.payloadSchemas.indexOf(BoundWitnessSchema);
|
|
112
|
+
if (innerBoundwitnessIndex > -1) {
|
|
113
|
+
const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
|
|
114
|
+
const innerBoundwitnessPayload = asBoundWitness((await PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash]);
|
|
115
|
+
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash)) : void 0;
|
|
116
|
+
if (innerBoundwitness) {
|
|
117
|
+
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
assertEx(!depth, () => `Dig failed [Remaining Depth: ${depth}]`);
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
async getMissingPayloads() {
|
|
124
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
125
|
+
return this.payloadHashes.filter((hash) => !payloadMap[hash]);
|
|
126
|
+
}
|
|
127
|
+
async getWrappedPayloads() {
|
|
128
|
+
return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)));
|
|
129
|
+
}
|
|
130
|
+
hashesBySchema(schema) {
|
|
131
|
+
const result = [];
|
|
132
|
+
for (const [index, payloadSchema] of this.payloadSchemas.entries()) {
|
|
133
|
+
if (payloadSchema === schema) {
|
|
134
|
+
result.push(this.payloadHashes[index]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
139
|
+
async payloadsByDataHashes(hashes) {
|
|
140
|
+
const map = await this.payloadsDataHashMap();
|
|
141
|
+
return hashes.map((hash) => assertEx(map[hash], () => "Hash not found"));
|
|
142
|
+
}
|
|
143
|
+
async payloadsByHashes(hashes) {
|
|
144
|
+
const map = await this.payloadsHashMap();
|
|
145
|
+
return hashes.map((hash) => assertEx(map[hash], () => "Hash not found"));
|
|
146
|
+
}
|
|
147
|
+
payloadsBySchema(schema) {
|
|
148
|
+
return this.payloads.filter((payload) => payload?.schema === schema);
|
|
149
|
+
}
|
|
150
|
+
async payloadsDataHashMap() {
|
|
151
|
+
this._payloadDataMap = this._payloadDataMap ?? await PayloadBuilder.toDataHashMap(this.payloads);
|
|
152
|
+
return this._payloadDataMap;
|
|
153
|
+
}
|
|
154
|
+
async payloadsHashMap() {
|
|
155
|
+
this._payloadMap = this._payloadMap ?? await PayloadBuilder.toHashMap(this.payloads);
|
|
156
|
+
return this._payloadMap;
|
|
157
|
+
}
|
|
158
|
+
prev(address) {
|
|
159
|
+
return this.previousHashes[this.addresses.indexOf(address)];
|
|
160
|
+
}
|
|
161
|
+
toResult() {
|
|
162
|
+
return [
|
|
163
|
+
this.boundwitness,
|
|
164
|
+
this.payloads
|
|
165
|
+
];
|
|
166
|
+
}
|
|
167
|
+
async validate() {
|
|
168
|
+
return await new BoundWitnessValidator(this.boundwitness).validate();
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// src/QueryBoundWitnessWrapper.ts
|
|
173
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
174
|
+
import { compact } from "@xylabs/lodash";
|
|
175
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload";
|
|
176
|
+
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
177
|
+
var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
|
|
178
|
+
static {
|
|
179
|
+
__name(this, "QueryBoundWitnessWrapper");
|
|
180
|
+
}
|
|
181
|
+
_payloadsWithoutQuery;
|
|
182
|
+
_query;
|
|
183
|
+
static async parseQuery(obj, payloads) {
|
|
184
|
+
assertEx2(!Array.isArray(obj), () => "Array can not be converted to QueryBoundWitnessWrapper");
|
|
185
|
+
switch (typeof obj) {
|
|
186
|
+
case "object": {
|
|
187
|
+
const castWrapper = obj;
|
|
188
|
+
const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await PayloadBuilder2.build(obj), payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder2.build(payload))) : void 0);
|
|
189
|
+
return wrapper;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
193
|
+
}
|
|
194
|
+
async getPayloadsWithoutQuery() {
|
|
195
|
+
this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(compact((await PayloadBuilder2.filterExclude(this.payloads, this.payload.query)).map((payload) => PayloadWrapper2.wrap(payload))));
|
|
196
|
+
return this._payloadsWithoutQuery;
|
|
197
|
+
}
|
|
198
|
+
async getQuery() {
|
|
199
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
200
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
201
|
+
return assertEx2(this._query, () => `Missing Query [${this.boundwitness}]`);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
export {
|
|
205
|
+
BoundWitnessWrapper,
|
|
206
|
+
QueryBoundWitnessWrapper,
|
|
207
|
+
isBoundWitnessWrapper
|
|
208
|
+
};
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts","../../src/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address, Hash } from '@xylabs/hex'\nimport { isObject } from '@xylabs/object'\nimport { asBoundWitness, BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { Payload, WithMeta } from '@xyo-network/payload-model'\nimport { isPayloadWrapperBase, PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper'\n\nexport const isBoundWitnessWrapper = <T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n value?: unknown,\n): value is BoundWitnessWrapper<T, P> => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper<T, P>).payloadsDataHashMap === 'function'\n }\n return false\n}\n\nexport class BoundWitnessWrapper<\n TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness,\n TPayload extends Payload = Payload,\n> extends PayloadWrapperBase<TBoundWitness> {\n private _payloadDataMap: Record<Hash, WithMeta<TPayload>> | undefined\n private _payloadMap: Record<Hash, WithMeta<TPayload>> | undefined\n\n protected constructor(\n public boundwitness: WithMeta<TBoundWitness>,\n public payloads: WithMeta<TPayload>[] = [],\n public moduleErrors?: WithMeta<Payload>[],\n ) {\n super(boundwitness)\n }\n\n get addresses() {\n return this.boundwitness.addresses\n }\n\n get payloadHashes() {\n return this.boundwitness.payload_hashes\n }\n\n get payloadSchemas() {\n return this.boundwitness.payload_schemas\n }\n\n get previousHashes() {\n return this.boundwitness.previous_hashes\n }\n\n static as<T extends BoundWitness = BoundWitness>(value: unknown) {\n return value instanceof BoundWitnessWrapper ? (value as BoundWitnessWrapper<T>) : undefined\n }\n\n static async load(address: Address) {\n const wrapper = await PayloadWrapper.load(address)\n const payload = wrapper?.payload\n assertEx(payload && isBoundWitness(payload), () => 'Attempt to load non-boundwitness')\n\n const boundWitness: BoundWitness | undefined = payload && isBoundWitness(payload) ? payload : undefined\n return boundWitness ? await BoundWitnessWrapper.wrap(boundWitness) : null\n }\n\n static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: WithMeta<P>[],\n ): BoundWitnessWrapper<T, P> {\n let hydratedObj: WithMeta<T> | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj) as WithMeta<T>\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj as unknown as WithMeta<T>\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper<T, P>(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n return new BoundWitnessWrapper(hydratedObj, payloads ?? [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: WithMeta<P>[]): BoundWitnessWrapper<T, P> | undefined {\n if (obj === undefined) return undefined\n try {\n return this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static async wrap<T extends BoundWitness, P extends Payload>(\n obj: PayloadWrapperBase<T> | T,\n payloads?: WithMeta<P>[],\n ): Promise<BoundWitnessWrapper<T, P>> {\n switch (typeof obj) {\n case 'object': {\n if (obj instanceof BoundWitnessWrapper) {\n return obj\n } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {\n return await BoundWitnessWrapper.parse(obj.payload, payloads)\n } else {\n return await BoundWitnessWrapper.parse(obj, payloads)\n }\n }\n }\n }\n\n static async wrappedDataHashMap<T extends BoundWitness>(\n boundWitnesses: (T | BoundWitnessWrapper<T>)[],\n ): Promise<Record<string, BoundWitnessWrapper<T>>> {\n const result: Record<string, BoundWitnessWrapper<T>> = {}\n await Promise.all(\n boundWitnesses.map(async (payload) => {\n const bw = BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n async dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>> {\n if (depth === 0) return this\n\n const innerBoundwitnessIndex: number = this.payloadSchemas.indexOf(BoundWitnessSchema)\n if (innerBoundwitnessIndex > -1) {\n const innerBoundwitnessHash: Hash = this.payloadHashes[innerBoundwitnessIndex]\n const innerBoundwitnessPayload = asBoundWitness<WithMeta<TBoundWitness>>(\n (await PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash],\n )\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined =\n innerBoundwitnessPayload ?\n new BoundWitnessWrapper<TBoundWitness>(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash))\n : undefined\n if (innerBoundwitness) {\n return innerBoundwitness.dig(depth ? depth - 1 : undefined)\n }\n }\n assertEx(!depth, () => `Dig failed [Remaining Depth: ${depth}]`)\n return this\n }\n\n async getMissingPayloads() {\n const payloadMap = await this.payloadsDataHashMap()\n return this.payloadHashes.filter((hash) => !payloadMap[hash])\n }\n\n async getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]> {\n return await Promise.all(this.payloads.map((payload) => PayloadWrapper.wrap(payload)))\n }\n\n hashesBySchema(schema: string) {\n const result: string[] = []\n for (const [index, payloadSchema] of this.payloadSchemas.entries()) {\n if (payloadSchema === schema) {\n result.push(this.payloadHashes[index])\n }\n }\n return result\n }\n\n async payloadsByDataHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map((hash) => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n async payloadsByHashes(hashes: Hash[]): Promise<TPayload[]> {\n const map = await this.payloadsHashMap()\n return hashes.map((hash) => assertEx(map[hash], () => 'Hash not found') as TPayload)\n }\n\n payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[] {\n return this.payloads.filter((payload) => payload?.schema === schema) as WithMeta<T>[]\n }\n\n async payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>> {\n this._payloadDataMap = this._payloadDataMap ?? (await PayloadBuilder.toDataHashMap<TPayload>(this.payloads))\n return this._payloadDataMap\n }\n\n async payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>> {\n this._payloadMap = this._payloadMap ?? (await PayloadBuilder.toHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: Address) {\n return this.previousHashes[this.addresses.indexOf(address)]\n }\n\n toResult() {\n return [this.boundwitness, this.payloads]\n }\n\n override async validate(): Promise<Error[]> {\n return await new BoundWitnessValidator(this.boundwitness).validate()\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query, WithMeta } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\n\nimport { BoundWitnessWrapper } from './BoundWitnessWrapper'\n\nexport class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {\n private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined\n private _query: T | undefined\n\n static async parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>> {\n assertEx(!Array.isArray(obj), () => 'Array can not be converted to QueryBoundWitnessWrapper')\n switch (typeof obj) {\n case 'object': {\n const castWrapper = obj as QueryBoundWitnessWrapper<T>\n const wrapper =\n castWrapper instanceof QueryBoundWitnessWrapper ? castWrapper : (\n new QueryBoundWitnessWrapper<T>(\n await PayloadBuilder.build(obj as QueryBoundWitness),\n payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder.build(payload))) : undefined,\n )\n )\n /*if (!wrapper.valid) {\n console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)\n }*/\n return wrapper\n }\n }\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n async getPayloadsWithoutQuery(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n (await Promise.all(\n compact((await PayloadBuilder.filterExclude(this.payloads, this.payload.query)).map((payload) => PayloadWrapper.wrap(payload))),\n ))\n return this._payloadsWithoutQuery\n }\n\n async getQuery(): Promise<T> {\n const payloadMap = await this.payloadsDataHashMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as WithMeta<T> | undefined)\n return assertEx(this._query, () => `Missing Query [${this.boundwitness}]`)\n }\n}\n"],"mappings":"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","names":["assertEx","isObject","asBoundWitness","BoundWitnessSchema","isBoundWitness","BoundWitnessValidator","PayloadBuilder","isPayloadWrapperBase","PayloadWrapper","PayloadWrapperBase","isBoundWitnessWrapper","value","isPayloadWrapperBase","payloadsDataHashMap","BoundWitnessWrapper","PayloadWrapperBase","_payloadDataMap","_payloadMap","boundwitness","payloads","moduleErrors","addresses","payloadHashes","payload_hashes","payloadSchemas","payload_schemas","previousHashes","previous_hashes","as","undefined","load","address","wrapper","PayloadWrapper","payload","assertEx","isBoundWitness","boundWitness","wrap","parse","obj","hydratedObj","JSON","isObject","Error","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","Promise","all","map","bw","dataHash","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","PayloadBuilder","toDataHashMap","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","hash","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsHashMap","payloadsBySchema","toHashMap","prev","toResult","validate","BoundWitnessValidator","assertEx","compact","PayloadBuilder","PayloadWrapper","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getPayloadsWithoutQuery","compact","filterExclude","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
|
package/package.json
CHANGED
|
@@ -10,21 +10,21 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^3.
|
|
14
|
-
"@xylabs/hex": "^3.
|
|
15
|
-
"@xylabs/lodash": "^3.
|
|
16
|
-
"@xylabs/object": "^3.
|
|
17
|
-
"@xyo-network/boundwitness-model": "~2.99.
|
|
18
|
-
"@xyo-network/boundwitness-validator": "~2.99.
|
|
19
|
-
"@xyo-network/payload": "~2.99.
|
|
20
|
-
"@xyo-network/payload-builder": "~2.99.
|
|
21
|
-
"@xyo-network/payload-model": "~2.99.
|
|
22
|
-
"@xyo-network/payload-wrapper": "~2.99.
|
|
13
|
+
"@xylabs/assert": "^3.3.2",
|
|
14
|
+
"@xylabs/hex": "^3.3.2",
|
|
15
|
+
"@xylabs/lodash": "^3.3.2",
|
|
16
|
+
"@xylabs/object": "^3.3.2",
|
|
17
|
+
"@xyo-network/boundwitness-model": "~2.99.3",
|
|
18
|
+
"@xyo-network/boundwitness-validator": "~2.99.3",
|
|
19
|
+
"@xyo-network/payload": "~2.99.3",
|
|
20
|
+
"@xyo-network/payload-builder": "~2.99.3",
|
|
21
|
+
"@xyo-network/payload-model": "~2.99.3",
|
|
22
|
+
"@xyo-network/payload-wrapper": "~2.99.3"
|
|
23
23
|
},
|
|
24
24
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@xylabs/ts-scripts-yarn3": "^3.
|
|
27
|
-
"@xylabs/tsconfig": "^3.
|
|
26
|
+
"@xylabs/ts-scripts-yarn3": "^3.10.0",
|
|
27
|
+
"@xylabs/tsconfig": "^3.10.0",
|
|
28
28
|
"typescript": "^5.4.5"
|
|
29
29
|
},
|
|
30
30
|
"exports": {
|
|
@@ -65,6 +65,6 @@
|
|
|
65
65
|
},
|
|
66
66
|
"sideEffects": false,
|
|
67
67
|
"types": "dist/node/index.d.ts",
|
|
68
|
-
"version": "2.99.
|
|
68
|
+
"version": "2.99.3",
|
|
69
69
|
"type": "module"
|
|
70
70
|
}
|