@xyo-network/boundwitness-wrapper 2.90.15 → 2.90.17
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/browser/BoundWitnessWrapper.d.cts +15 -13
- package/dist/browser/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.mts +15 -13
- package/dist/browser/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.ts +15 -13
- package/dist/browser/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/browser/QueryBoundWitnessWrapper.d.cts.map +1 -1
- package/dist/browser/QueryBoundWitnessWrapper.d.mts.map +1 -1
- package/dist/browser/QueryBoundWitnessWrapper.d.ts.map +1 -1
- package/dist/browser/index.cjs +10 -26
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +10 -26
- package/dist/browser/index.js.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.cts +15 -13
- package/dist/node/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.mts +15 -13
- package/dist/node/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.ts +15 -13
- package/dist/node/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/node/QueryBoundWitnessWrapper.d.cts.map +1 -1
- package/dist/node/QueryBoundWitnessWrapper.d.mts.map +1 -1
- package/dist/node/QueryBoundWitnessWrapper.d.ts.map +1 -1
- package/dist/node/index.cjs +10 -26
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +10 -26
- package/dist/node/index.js.map +1 -1
- package/package.json +7 -7
- package/src/BoundWitnessWrapper.ts +32 -51
- package/src/QueryBoundWitnessWrapper.ts +2 -2
|
@@ -2,11 +2,15 @@ import { Hash } from '@xylabs/hex';
|
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare const isBoundWitnessWrapper:
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
6
|
schema: "network.xyo.boundwitness";
|
|
7
|
-
}
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & object = {
|
|
8
12
|
schema: string;
|
|
9
|
-
} & object>;
|
|
13
|
+
} & object>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
10
14
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
11
15
|
schema: string;
|
|
12
16
|
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
@@ -15,6 +19,7 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
15
19
|
moduleErrors?: WithMeta<{
|
|
16
20
|
schema: string;
|
|
17
21
|
} & object>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
18
23
|
private _payloadMap;
|
|
19
24
|
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
20
25
|
schema: string;
|
|
@@ -31,22 +36,19 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
31
36
|
}, {
|
|
32
37
|
schema: string;
|
|
33
38
|
} & object> | null>;
|
|
34
|
-
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]):
|
|
35
|
-
static
|
|
36
|
-
static
|
|
37
|
-
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined>;
|
|
38
|
-
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
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>>;
|
|
39
42
|
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
40
|
-
static wrappedHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
41
43
|
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
42
44
|
getMissingPayloads(): Promise<string[]>;
|
|
43
45
|
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
44
46
|
hashesBySchema(schema: string): string[];
|
|
45
|
-
payloadsByDataHashes
|
|
46
|
-
payloadsByHashes
|
|
47
|
+
payloadsByDataHashes(hashes: string[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: string[]): Promise<TPayload[]>;
|
|
47
49
|
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
48
|
-
payloadsDataHashMap(): Promise<Record<
|
|
49
|
-
payloadsHashMap(): Promise<Record<
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
50
52
|
prev(address: string): string | null;
|
|
51
53
|
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
52
54
|
validate(): Promise<Error[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,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,
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,15 @@ import { Hash } from '@xylabs/hex';
|
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare const isBoundWitnessWrapper:
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
6
|
schema: "network.xyo.boundwitness";
|
|
7
|
-
}
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & object = {
|
|
8
12
|
schema: string;
|
|
9
|
-
} & object>;
|
|
13
|
+
} & object>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
10
14
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
11
15
|
schema: string;
|
|
12
16
|
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
@@ -15,6 +19,7 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
15
19
|
moduleErrors?: WithMeta<{
|
|
16
20
|
schema: string;
|
|
17
21
|
} & object>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
18
23
|
private _payloadMap;
|
|
19
24
|
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
20
25
|
schema: string;
|
|
@@ -31,22 +36,19 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
31
36
|
}, {
|
|
32
37
|
schema: string;
|
|
33
38
|
} & object> | null>;
|
|
34
|
-
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]):
|
|
35
|
-
static
|
|
36
|
-
static
|
|
37
|
-
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined>;
|
|
38
|
-
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
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>>;
|
|
39
42
|
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
40
|
-
static wrappedHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
41
43
|
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
42
44
|
getMissingPayloads(): Promise<string[]>;
|
|
43
45
|
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
44
46
|
hashesBySchema(schema: string): string[];
|
|
45
|
-
payloadsByDataHashes
|
|
46
|
-
payloadsByHashes
|
|
47
|
+
payloadsByDataHashes(hashes: string[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: string[]): Promise<TPayload[]>;
|
|
47
49
|
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
48
|
-
payloadsDataHashMap(): Promise<Record<
|
|
49
|
-
payloadsHashMap(): Promise<Record<
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
50
52
|
prev(address: string): string | null;
|
|
51
53
|
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
52
54
|
validate(): Promise<Error[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,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,
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,15 @@ import { Hash } from '@xylabs/hex';
|
|
|
2
2
|
import { BoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { Payload, WithMeta } from '@xyo-network/payload-model';
|
|
4
4
|
import { PayloadWrapper, PayloadWrapperBase } from '@xyo-network/payload-wrapper';
|
|
5
|
-
export declare const isBoundWitnessWrapper:
|
|
5
|
+
export declare const isBoundWitnessWrapper: <T extends import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
6
|
schema: "network.xyo.boundwitness";
|
|
7
|
-
}
|
|
7
|
+
} = import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
8
|
+
schema: "network.xyo.boundwitness";
|
|
9
|
+
}, P extends {
|
|
10
|
+
schema: string;
|
|
11
|
+
} & object = {
|
|
8
12
|
schema: string;
|
|
9
|
-
} & object>;
|
|
13
|
+
} & object>(value?: unknown) => value is BoundWitnessWrapper<T, P>;
|
|
10
14
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
11
15
|
schema: string;
|
|
12
16
|
}> = BoundWitness, TPayload extends Payload = Payload> extends PayloadWrapperBase<TBoundWitness> {
|
|
@@ -15,6 +19,7 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
15
19
|
moduleErrors?: WithMeta<{
|
|
16
20
|
schema: string;
|
|
17
21
|
} & object>[] | undefined;
|
|
22
|
+
private _payloadDataMap;
|
|
18
23
|
private _payloadMap;
|
|
19
24
|
protected constructor(boundwitness: WithMeta<TBoundWitness>, payloads?: WithMeta<TPayload>[], moduleErrors?: WithMeta<{
|
|
20
25
|
schema: string;
|
|
@@ -31,22 +36,19 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
31
36
|
}, {
|
|
32
37
|
schema: string;
|
|
33
38
|
} & object> | null>;
|
|
34
|
-
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]):
|
|
35
|
-
static
|
|
36
|
-
static
|
|
37
|
-
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined>;
|
|
38
|
-
static wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
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>>;
|
|
39
42
|
static wrappedDataHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
40
|
-
static wrappedHashMap<T extends BoundWitness>(boundWitnesses: (T | BoundWitnessWrapper<T>)[]): Promise<Record<string, BoundWitnessWrapper<T>>>;
|
|
41
43
|
dig(depth?: number): Promise<BoundWitnessWrapper<TBoundWitness>>;
|
|
42
44
|
getMissingPayloads(): Promise<string[]>;
|
|
43
45
|
getWrappedPayloads(): Promise<PayloadWrapper<TPayload>[]>;
|
|
44
46
|
hashesBySchema(schema: string): string[];
|
|
45
|
-
payloadsByDataHashes
|
|
46
|
-
payloadsByHashes
|
|
47
|
+
payloadsByDataHashes(hashes: string[]): Promise<TPayload[]>;
|
|
48
|
+
payloadsByHashes(hashes: string[]): Promise<TPayload[]>;
|
|
47
49
|
payloadsBySchema<T extends TPayload>(schema: string): WithMeta<T>[];
|
|
48
|
-
payloadsDataHashMap(): Promise<Record<
|
|
49
|
-
payloadsHashMap(): Promise<Record<
|
|
50
|
+
payloadsDataHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
51
|
+
payloadsHashMap(): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
50
52
|
prev(address: string): string | null;
|
|
51
53
|
toResult(): (WithMeta<TBoundWitness> | WithMeta<TPayload>[])[];
|
|
52
54
|
validate(): Promise<Error[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAElC,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,
|
|
1
|
+
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -1 +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,
|
|
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"}
|
|
@@ -1 +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,
|
|
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"}
|
package/dist/browser/index.cjs
CHANGED
|
@@ -47,6 +47,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
47
47
|
boundwitness;
|
|
48
48
|
payloads;
|
|
49
49
|
moduleErrors;
|
|
50
|
+
_payloadDataMap;
|
|
50
51
|
_payloadMap;
|
|
51
52
|
constructor(boundwitness, payloads = [], moduleErrors) {
|
|
52
53
|
super(boundwitness);
|
|
@@ -76,7 +77,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
76
77
|
const boundWitness = payload && (0, import_boundwitness_model.isBoundWitness)(payload) ? payload : void 0;
|
|
77
78
|
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
78
79
|
}
|
|
79
|
-
static
|
|
80
|
+
static parse(obj, payloads) {
|
|
80
81
|
let hydratedObj = void 0;
|
|
81
82
|
switch (typeof obj) {
|
|
82
83
|
case "string": {
|
|
@@ -95,25 +96,16 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
95
96
|
return hydratedObj;
|
|
96
97
|
}
|
|
97
98
|
if ((0, import_boundwitness_model.isBoundWitness)(hydratedObj)) {
|
|
98
|
-
|
|
99
|
-
return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => import_payload_builder.PayloadBuilder.build(payload))) : []);
|
|
99
|
+
return new _BoundWitnessWrapper(hydratedObj, payloads ?? []);
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
103
103
|
}
|
|
104
|
-
static
|
|
105
|
-
const unwrapped = await this.unwrap(payloads);
|
|
106
|
-
return await import_payload_builder.PayloadBuilder.toDataHashMap(unwrapped);
|
|
107
|
-
}
|
|
108
|
-
static async payloadsHashMap(payloads) {
|
|
109
|
-
const unwrapped = await this.unwrap(payloads);
|
|
110
|
-
return await import_payload_builder.PayloadBuilder.toHashMap(unwrapped);
|
|
111
|
-
}
|
|
112
|
-
static async tryParse(obj, payloads) {
|
|
104
|
+
static tryParse(obj, payloads) {
|
|
113
105
|
if (obj === void 0)
|
|
114
106
|
return void 0;
|
|
115
107
|
try {
|
|
116
|
-
return
|
|
108
|
+
return this.parse(obj, payloads);
|
|
117
109
|
} catch {
|
|
118
110
|
return void 0;
|
|
119
111
|
}
|
|
@@ -134,26 +126,18 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
134
126
|
static async wrappedDataHashMap(boundWitnesses) {
|
|
135
127
|
const result = {};
|
|
136
128
|
await Promise.all(boundWitnesses.map(async (payload) => {
|
|
137
|
-
const bw =
|
|
129
|
+
const bw = _BoundWitnessWrapper.parse(payload);
|
|
138
130
|
result[await bw.dataHash()] = bw;
|
|
139
131
|
}));
|
|
140
132
|
return result;
|
|
141
133
|
}
|
|
142
|
-
static async wrappedHashMap(boundWitnesses) {
|
|
143
|
-
const result = {};
|
|
144
|
-
await Promise.all(boundWitnesses.map(async (bw) => {
|
|
145
|
-
const wrapped = await _BoundWitnessWrapper.parse(bw);
|
|
146
|
-
result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
|
|
147
|
-
}));
|
|
148
|
-
return result;
|
|
149
|
-
}
|
|
150
134
|
async dig(depth) {
|
|
151
135
|
if (depth === 0)
|
|
152
136
|
return this;
|
|
153
137
|
const innerBoundwitnessIndex = this.payloadSchemas.indexOf(import_boundwitness_model.BoundWitnessSchema);
|
|
154
138
|
if (innerBoundwitnessIndex > -1) {
|
|
155
139
|
const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
|
|
156
|
-
const innerBoundwitnessPayload = (0, import_boundwitness_model.asBoundWitness)((await
|
|
140
|
+
const innerBoundwitnessPayload = (0, import_boundwitness_model.asBoundWitness)((await import_payload_builder.PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash]);
|
|
157
141
|
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(innerBoundwitnessPayload, await import_payload_builder.PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash)) : void 0;
|
|
158
142
|
if (innerBoundwitness) {
|
|
159
143
|
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
|
@@ -190,11 +174,11 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
|
|
|
190
174
|
return this.payloads.filter((payload) => payload?.schema === schema);
|
|
191
175
|
}
|
|
192
176
|
async payloadsDataHashMap() {
|
|
193
|
-
this.
|
|
194
|
-
return this.
|
|
177
|
+
this._payloadDataMap = this._payloadDataMap ?? await import_payload_builder.PayloadBuilder.toDataHashMap(this.payloads);
|
|
178
|
+
return this._payloadDataMap;
|
|
195
179
|
}
|
|
196
180
|
async payloadsHashMap() {
|
|
197
|
-
this._payloadMap = this._payloadMap ?? await
|
|
181
|
+
this._payloadMap = this._payloadMap ?? await import_payload_builder.PayloadBuilder.toHashMap(this.payloads);
|
|
198
182
|
return this._payloadMap;
|
|
199
183
|
}
|
|
200
184
|
prev(address) {
|
|
@@ -1 +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 { Hash } from '@xylabs/hex'\nimport { AnyObject, 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 = (value?: unknown): value is BoundWitnessWrapper => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper).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 _payloadMap: Record<string, 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: string) {\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 async parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): Promise<BoundWitnessWrapper<T, P>> {\n let hydratedObj: AnyObject | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj)\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n //we use PayloadBuilder here since we want to use the BoundWitness as-is (no resigning), but want to add the $hash is needed\n const bw = await PayloadBuilder.build<T>(hydratedObj as T)\n return new BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static async payloadsDataHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, WithMeta<TPayload>>> {\n const unwrapped = await this.unwrap(payloads)\n return await PayloadBuilder.toDataHashMap(unwrapped)\n }\n\n static async payloadsHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, TPayload>> {\n const unwrapped = await this.unwrap(payloads)\n return await PayloadBuilder.toHashMap(unwrapped)\n }\n\n static async tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined> {\n if (obj === undefined) return undefined\n try {\n return await this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static async wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): 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 = await BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n static async wrappedHashMap<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 (bw) => {\n const wrapped: BoundWitnessWrapper<T> = await BoundWitnessWrapper.parse(bw)\n result[await wrapped.dataHash()] = await BoundWitnessWrapper.parse(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 BoundWitnessWrapper.payloadsDataHashMap(this.payloads))[innerBoundwitnessHash],\n )\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = 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<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadsHashMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\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<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.payloadsDataHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n async payloadsHashMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.payloadsHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: string) {\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 } 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\n ? 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 /*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 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","_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","bw","PayloadBuilder","build","Promise","all","map","Error","unwrapped","unwrap","toDataHashMap","payloadsHashMap","toHashMap","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","dataHash","wrappedHashMap","wrapped","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","hash","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsBySchema","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"]}
|
|
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 { 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: string) {\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 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 = 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: string[]): 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: string[]): 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: string) {\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\n ? 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 /*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"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -21,6 +21,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
21
21
|
boundwitness;
|
|
22
22
|
payloads;
|
|
23
23
|
moduleErrors;
|
|
24
|
+
_payloadDataMap;
|
|
24
25
|
_payloadMap;
|
|
25
26
|
constructor(boundwitness, payloads = [], moduleErrors) {
|
|
26
27
|
super(boundwitness);
|
|
@@ -50,7 +51,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
50
51
|
const boundWitness = payload && isBoundWitness(payload) ? payload : void 0;
|
|
51
52
|
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
52
53
|
}
|
|
53
|
-
static
|
|
54
|
+
static parse(obj, payloads) {
|
|
54
55
|
let hydratedObj = void 0;
|
|
55
56
|
switch (typeof obj) {
|
|
56
57
|
case "string": {
|
|
@@ -69,25 +70,16 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
69
70
|
return hydratedObj;
|
|
70
71
|
}
|
|
71
72
|
if (isBoundWitness(hydratedObj)) {
|
|
72
|
-
|
|
73
|
-
return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : []);
|
|
73
|
+
return new _BoundWitnessWrapper(hydratedObj, payloads ?? []);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
77
77
|
}
|
|
78
|
-
static
|
|
79
|
-
const unwrapped = await this.unwrap(payloads);
|
|
80
|
-
return await PayloadBuilder.toDataHashMap(unwrapped);
|
|
81
|
-
}
|
|
82
|
-
static async payloadsHashMap(payloads) {
|
|
83
|
-
const unwrapped = await this.unwrap(payloads);
|
|
84
|
-
return await PayloadBuilder.toHashMap(unwrapped);
|
|
85
|
-
}
|
|
86
|
-
static async tryParse(obj, payloads) {
|
|
78
|
+
static tryParse(obj, payloads) {
|
|
87
79
|
if (obj === void 0)
|
|
88
80
|
return void 0;
|
|
89
81
|
try {
|
|
90
|
-
return
|
|
82
|
+
return this.parse(obj, payloads);
|
|
91
83
|
} catch {
|
|
92
84
|
return void 0;
|
|
93
85
|
}
|
|
@@ -108,26 +100,18 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
108
100
|
static async wrappedDataHashMap(boundWitnesses) {
|
|
109
101
|
const result = {};
|
|
110
102
|
await Promise.all(boundWitnesses.map(async (payload) => {
|
|
111
|
-
const bw =
|
|
103
|
+
const bw = _BoundWitnessWrapper.parse(payload);
|
|
112
104
|
result[await bw.dataHash()] = bw;
|
|
113
105
|
}));
|
|
114
106
|
return result;
|
|
115
107
|
}
|
|
116
|
-
static async wrappedHashMap(boundWitnesses) {
|
|
117
|
-
const result = {};
|
|
118
|
-
await Promise.all(boundWitnesses.map(async (bw) => {
|
|
119
|
-
const wrapped = await _BoundWitnessWrapper.parse(bw);
|
|
120
|
-
result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
|
|
121
|
-
}));
|
|
122
|
-
return result;
|
|
123
|
-
}
|
|
124
108
|
async dig(depth) {
|
|
125
109
|
if (depth === 0)
|
|
126
110
|
return this;
|
|
127
111
|
const innerBoundwitnessIndex = this.payloadSchemas.indexOf(BoundWitnessSchema);
|
|
128
112
|
if (innerBoundwitnessIndex > -1) {
|
|
129
113
|
const innerBoundwitnessHash = this.payloadHashes[innerBoundwitnessIndex];
|
|
130
|
-
const innerBoundwitnessPayload = asBoundWitness((await
|
|
114
|
+
const innerBoundwitnessPayload = asBoundWitness((await PayloadBuilder.toDataHashMap(this.payloads))[innerBoundwitnessHash]);
|
|
131
115
|
const innerBoundwitness = innerBoundwitnessPayload ? new _BoundWitnessWrapper(innerBoundwitnessPayload, await PayloadBuilder.filterExclude(this.payloads, innerBoundwitnessHash)) : void 0;
|
|
132
116
|
if (innerBoundwitness) {
|
|
133
117
|
return innerBoundwitness.dig(depth ? depth - 1 : void 0);
|
|
@@ -164,11 +148,11 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
164
148
|
return this.payloads.filter((payload) => payload?.schema === schema);
|
|
165
149
|
}
|
|
166
150
|
async payloadsDataHashMap() {
|
|
167
|
-
this.
|
|
168
|
-
return this.
|
|
151
|
+
this._payloadDataMap = this._payloadDataMap ?? await PayloadBuilder.toDataHashMap(this.payloads);
|
|
152
|
+
return this._payloadDataMap;
|
|
169
153
|
}
|
|
170
154
|
async payloadsHashMap() {
|
|
171
|
-
this._payloadMap = this._payloadMap ?? await
|
|
155
|
+
this._payloadMap = this._payloadMap ?? await PayloadBuilder.toHashMap(this.payloads);
|
|
172
156
|
return this._payloadMap;
|
|
173
157
|
}
|
|
174
158
|
prev(address) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts","../../src/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\nimport { AnyObject, 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 = (value?: unknown): value is BoundWitnessWrapper => {\n if (isPayloadWrapperBase(value)) {\n return typeof (value as BoundWitnessWrapper).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 _payloadMap: Record<string, 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: string) {\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 async parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(\n obj: unknown,\n payloads?: P[],\n ): Promise<BoundWitnessWrapper<T, P>> {\n let hydratedObj: AnyObject | undefined = undefined\n switch (typeof obj) {\n case 'string': {\n hydratedObj = JSON.parse(obj)\n break\n }\n case 'object': {\n if (isObject(obj)) {\n hydratedObj = obj\n }\n break\n }\n }\n\n if (hydratedObj) {\n if (isBoundWitnessWrapper(hydratedObj)) {\n return hydratedObj as BoundWitnessWrapper<T, P>\n }\n if (isBoundWitness(hydratedObj)) {\n //we use PayloadBuilder here since we want to use the BoundWitness as-is (no resigning), but want to add the $hash is needed\n const bw = await PayloadBuilder.build<T>(hydratedObj as T)\n return new BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : [])\n }\n }\n\n throw new Error(`Unable to parse [${typeof obj}]`)\n }\n\n static async payloadsDataHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, WithMeta<TPayload>>> {\n const unwrapped = await this.unwrap(payloads)\n return await PayloadBuilder.toDataHashMap(unwrapped)\n }\n\n static async payloadsHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, TPayload>> {\n const unwrapped = await this.unwrap(payloads)\n return await PayloadBuilder.toHashMap(unwrapped)\n }\n\n static async tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined> {\n if (obj === undefined) return undefined\n try {\n return await this.parse(obj, payloads)\n } catch {\n return undefined\n }\n }\n\n static async wrap<T extends BoundWitness, P extends Payload>(obj: PayloadWrapperBase<T> | T, payloads?: P[]): 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 = await BoundWitnessWrapper.parse<T, Payload>(payload)\n result[await bw.dataHash()] = bw\n }),\n )\n return result\n }\n\n static async wrappedHashMap<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 (bw) => {\n const wrapped: BoundWitnessWrapper<T> = await BoundWitnessWrapper.parse(bw)\n result[await wrapped.dataHash()] = await BoundWitnessWrapper.parse(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 BoundWitnessWrapper.payloadsDataHashMap(this.payloads))[innerBoundwitnessHash],\n )\n const innerBoundwitness: BoundWitnessWrapper<TBoundWitness> | undefined = 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<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadsDataHashMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\n }\n\n async payloadsByHashes<T extends TPayload>(hashes: string[]): Promise<T[]> {\n const map = await this.payloadsHashMap()\n return hashes.map<T>((hash) => assertEx(map[hash], 'Hash not found') as T)\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<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.payloadsDataHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n async payloadsHashMap(): Promise<Record<string, TPayload>> {\n this._payloadMap = this._payloadMap ?? (await BoundWitnessWrapper.payloadsHashMap<TPayload>(this.payloads))\n return this._payloadMap\n }\n\n prev(address: string) {\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 } 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\n ? 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 /*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 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","_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","bw","PayloadBuilder","build","Promise","all","map","Error","unwrapped","unwrap","toDataHashMap","payloadsHashMap","toHashMap","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","dataHash","wrappedHashMap","wrapped","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","hash","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsBySchema","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"]}
|
|
1
|
+
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts","../../src/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { 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: string) {\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 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 = 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: string[]): 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: string[]): 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: string) {\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\n ? 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 /*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"]}
|