@xyo-network/boundwitness-wrapper 2.90.1 → 2.90.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/browser/BoundWitnessWrapper.d.cts +4 -2
- package/dist/browser/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.mts +4 -2
- package/dist/browser/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/browser/BoundWitnessWrapper.d.ts +4 -2
- package/dist/browser/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/browser/QueryBoundWitnessWrapper.d.cts +12 -0
- package/dist/browser/QueryBoundWitnessWrapper.d.cts.map +1 -0
- package/dist/browser/QueryBoundWitnessWrapper.d.mts +12 -0
- package/dist/browser/QueryBoundWitnessWrapper.d.mts.map +1 -0
- package/dist/browser/QueryBoundWitnessWrapper.d.ts +12 -0
- package/dist/browser/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/browser/index.cjs +59 -8
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.d.cts +1 -0
- package/dist/browser/index.d.cts.map +1 -1
- package/dist/browser/index.d.mts +1 -0
- package/dist/browser/index.d.mts.map +1 -1
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +59 -8
- package/dist/browser/index.js.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.cts +4 -2
- package/dist/node/BoundWitnessWrapper.d.cts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.mts +4 -2
- package/dist/node/BoundWitnessWrapper.d.mts.map +1 -1
- package/dist/node/BoundWitnessWrapper.d.ts +4 -2
- package/dist/node/BoundWitnessWrapper.d.ts.map +1 -1
- package/dist/node/QueryBoundWitnessWrapper.d.cts +12 -0
- package/dist/node/QueryBoundWitnessWrapper.d.cts.map +1 -0
- package/dist/node/QueryBoundWitnessWrapper.d.mts +12 -0
- package/dist/node/QueryBoundWitnessWrapper.d.mts.map +1 -0
- package/dist/node/QueryBoundWitnessWrapper.d.ts +12 -0
- package/dist/node/QueryBoundWitnessWrapper.d.ts.map +1 -0
- package/dist/node/index.cjs +59 -8
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +1 -0
- package/dist/node/index.d.cts.map +1 -1
- package/dist/node/index.d.mts +1 -0
- package/dist/node/index.d.mts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +58 -8
- package/dist/node/index.js.map +1 -1
- package/package.json +11 -9
- package/src/BoundWitnessWrapper.ts +33 -12
- package/src/QueryBoundWitnessWrapper.ts +49 -0
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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,WAAY,OAAO;;;;WAKpD,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;IAIhC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC9B,YAAY,CAAC;;;IALtB,OAAO,CAAC,WAAW,CAAsC;IAEzD,SAAS,aACA,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EACrC,QAAQ,GAAE,QAAQ,CAAC,QAAQ,CAAC,EAAO,EACnC,YAAY,CAAC;;6BAAqB;IAK3C,IAAI,SAAS,aAEZ;IAED,IAAI,aAAa,aAEhB;IAED,IAAI,cAAc,aAEjB;IAED,IAAI,cAAc,sBAEjB;IAED,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO;;;WAIlD,IAAI,CAAC,OAAO,EAAE,MAAM;;;;;WASpB,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EACnF,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,CAAC,EAAE,GACb,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;WA6BxB,mBAAmB,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;WAK9G,eAAe,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;WAKhG,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;WASjI,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;WAcnI,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;WAWrC,cAAc,CAAC,CAAC,SAAS,YAAY,EAChD,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;IAoBhE,kBAAkB;IAKlB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IAI/D,cAAc,CAAC,MAAM,EAAE,MAAM;IAUvB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxE,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK1E,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAI7D,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAKxD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAK1D,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,QAAQ;IAIO,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAG5C"}
|
|
@@ -2,7 +2,9 @@ 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: (value?: unknown) => value is
|
|
5
|
+
export declare const isBoundWitnessWrapper: (value?: unknown) => value is BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
|
+
schema: "network.xyo.boundwitness";
|
|
7
|
+
}, {
|
|
6
8
|
schema: string;
|
|
7
9
|
} & object>;
|
|
8
10
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -29,7 +31,7 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
29
31
|
}, {
|
|
30
32
|
schema: string;
|
|
31
33
|
} & object> | null>;
|
|
32
|
-
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
34
|
+
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
33
35
|
static payloadsDataHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
34
36
|
static payloadsHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, TPayload>>;
|
|
35
37
|
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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,WAAY,OAAO;;;;WAKpD,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;IAIhC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC;IACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;IAC9B,YAAY,CAAC;;;IALtB,OAAO,CAAC,WAAW,CAAsC;IAEzD,SAAS,aACA,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,EACrC,QAAQ,GAAE,QAAQ,CAAC,QAAQ,CAAC,EAAO,EACnC,YAAY,CAAC;;6BAAqB;IAK3C,IAAI,SAAS,aAEZ;IAED,IAAI,aAAa,aAEhB;IAED,IAAI,cAAc,aAEjB;IAED,IAAI,cAAc,sBAEjB;IAED,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO;;;WAIlD,IAAI,CAAC,OAAO,EAAE,MAAM;;;;;WASpB,KAAK,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EACnF,GAAG,EAAE,OAAO,EACZ,QAAQ,CAAC,EAAE,CAAC,EAAE,GACb,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;WA6BxB,mBAAmB,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;WAK9G,eAAe,CAAC,QAAQ,SAAS,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;WAKhG,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;WASjI,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;WAcnI,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;WAWrC,cAAc,CAAC,CAAC,SAAS,YAAY,EAChD,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;IAoBhE,kBAAkB;IAKlB,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;IAI/D,cAAc,CAAC,MAAM,EAAE,MAAM;IAUvB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAKxE,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAK1E,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;IAI7D,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAKxD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAK1D,IAAI,CAAC,OAAO,EAAE,MAAM;IAIpB,QAAQ;IAIO,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;CAG5C"}
|
|
@@ -2,7 +2,9 @@ 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: (value?: unknown) => value is
|
|
5
|
+
export declare const isBoundWitnessWrapper: (value?: unknown) => value is BoundWitnessWrapper<import("@xyo-network/payload-model").SchemaFields & object & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
|
|
6
|
+
schema: "network.xyo.boundwitness";
|
|
7
|
+
}, {
|
|
6
8
|
schema: string;
|
|
7
9
|
} & object>;
|
|
8
10
|
export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
@@ -29,7 +31,7 @@ export declare class BoundWitnessWrapper<TBoundWitness extends BoundWitness<{
|
|
|
29
31
|
}, {
|
|
30
32
|
schema: string;
|
|
31
33
|
} & object> | null>;
|
|
32
|
-
static parse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
34
|
+
static parse<T extends BoundWitness = BoundWitness, P extends Payload = Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>>;
|
|
33
35
|
static payloadsDataHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, WithMeta<TPayload>>>;
|
|
34
36
|
static payloadsHashMap<TPayload extends Payload>(payloads: TPayload[]): Promise<Record<Hash, TPayload>>;
|
|
35
37
|
static tryParse<T extends BoundWitness, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P> | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;
|
|
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,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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,EAAE,MAAM,4BAA4B,CAAA;AAC3D,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/node/index.cjs
CHANGED
|
@@ -22,12 +22,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
22
22
|
var src_exports = {};
|
|
23
23
|
__export(src_exports, {
|
|
24
24
|
BoundWitnessWrapper: () => BoundWitnessWrapper,
|
|
25
|
+
QueryBoundWitnessWrapper: () => QueryBoundWitnessWrapper,
|
|
25
26
|
isBoundWitnessWrapper: () => isBoundWitnessWrapper
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(src_exports);
|
|
28
29
|
|
|
29
30
|
// src/BoundWitnessWrapper.ts
|
|
30
31
|
var import_assert = require("@xylabs/assert");
|
|
32
|
+
var import_object = require("@xylabs/object");
|
|
31
33
|
var import_boundwitness_model = require("@xyo-network/boundwitness-model");
|
|
32
34
|
var import_boundwitness_validator = require("@xyo-network/boundwitness-validator");
|
|
33
35
|
var import_payload_builder = require("@xyo-network/payload-builder");
|
|
@@ -66,17 +68,32 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wra
|
|
|
66
68
|
}
|
|
67
69
|
static async load(address) {
|
|
68
70
|
const wrapper = await import_payload_wrapper.PayloadWrapper.load(address);
|
|
69
|
-
const payload = wrapper == null ? void 0 : wrapper.
|
|
71
|
+
const payload = wrapper == null ? void 0 : wrapper.payload;
|
|
70
72
|
(0, import_assert.assertEx)(payload && (0, import_boundwitness_model.isBoundWitness)(payload), "Attempt to load non-boundwitness");
|
|
71
73
|
const boundWitness = payload && (0, import_boundwitness_model.isBoundWitness)(payload) ? payload : void 0;
|
|
72
74
|
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
73
75
|
}
|
|
74
76
|
static async parse(obj, payloads) {
|
|
75
|
-
|
|
76
|
-
(
|
|
77
|
-
|
|
77
|
+
let hydratedObj = void 0;
|
|
78
|
+
switch (typeof obj) {
|
|
79
|
+
case "string": {
|
|
80
|
+
hydratedObj = JSON.parse(obj);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
78
83
|
case "object": {
|
|
79
|
-
|
|
84
|
+
if ((0, import_object.isObject)(obj)) {
|
|
85
|
+
hydratedObj = obj;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (hydratedObj) {
|
|
91
|
+
if (isBoundWitnessWrapper(hydratedObj)) {
|
|
92
|
+
return hydratedObj;
|
|
93
|
+
}
|
|
94
|
+
if ((0, import_boundwitness_model.isBoundWitness)(hydratedObj)) {
|
|
95
|
+
const bw = await import_payload_builder.PayloadBuilder.build(hydratedObj);
|
|
96
|
+
return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads == null ? void 0 : payloads.map((payload) => import_payload_builder.PayloadBuilder.build(payload))) : []);
|
|
80
97
|
}
|
|
81
98
|
}
|
|
82
99
|
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
@@ -104,7 +121,7 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wra
|
|
|
104
121
|
if (obj instanceof _BoundWitnessWrapper) {
|
|
105
122
|
return obj;
|
|
106
123
|
} else if (obj instanceof import_payload_wrapper.PayloadWrapper && obj.schema() === import_boundwitness_model.BoundWitnessSchema) {
|
|
107
|
-
return await _BoundWitnessWrapper.parse(obj.
|
|
124
|
+
return await _BoundWitnessWrapper.parse(obj.payload, payloads);
|
|
108
125
|
} else {
|
|
109
126
|
return await _BoundWitnessWrapper.parse(obj, payloads);
|
|
110
127
|
}
|
|
@@ -121,8 +138,9 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wra
|
|
|
121
138
|
}
|
|
122
139
|
static async wrappedHashMap(boundWitnesses) {
|
|
123
140
|
const result = {};
|
|
124
|
-
await Promise.all(boundWitnesses.map(async (
|
|
125
|
-
|
|
141
|
+
await Promise.all(boundWitnesses.map(async (bw) => {
|
|
142
|
+
const wrapped = await _BoundWitnessWrapper.parse(bw);
|
|
143
|
+
result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
|
|
126
144
|
}));
|
|
127
145
|
return result;
|
|
128
146
|
}
|
|
@@ -191,9 +209,42 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wra
|
|
|
191
209
|
};
|
|
192
210
|
__name(_BoundWitnessWrapper, "BoundWitnessWrapper");
|
|
193
211
|
var BoundWitnessWrapper = _BoundWitnessWrapper;
|
|
212
|
+
|
|
213
|
+
// src/QueryBoundWitnessWrapper.ts
|
|
214
|
+
var import_assert2 = require("@xylabs/assert");
|
|
215
|
+
var import_lodash = require("@xylabs/lodash");
|
|
216
|
+
var import_payload = require("@xyo-network/payload");
|
|
217
|
+
var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
|
|
218
|
+
var _QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
|
|
219
|
+
_payloadsWithoutQuery;
|
|
220
|
+
_query;
|
|
221
|
+
static async parseQuery(obj, payloads) {
|
|
222
|
+
(0, import_assert2.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
|
|
223
|
+
switch (typeof obj) {
|
|
224
|
+
case "object": {
|
|
225
|
+
const castWrapper = obj;
|
|
226
|
+
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);
|
|
227
|
+
return wrapper;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
231
|
+
}
|
|
232
|
+
async getPayloadsWithoutQuery() {
|
|
233
|
+
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))));
|
|
234
|
+
return this._payloadsWithoutQuery;
|
|
235
|
+
}
|
|
236
|
+
async getQuery() {
|
|
237
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
238
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
239
|
+
return (0, import_assert2.assertEx)(this._query, () => `Missing Query [${this.boundwitness}]`);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
__name(_QueryBoundWitnessWrapper, "QueryBoundWitnessWrapper");
|
|
243
|
+
var QueryBoundWitnessWrapper = _QueryBoundWitnessWrapper;
|
|
194
244
|
// Annotate the CommonJS export names for ESM import in node:
|
|
195
245
|
0 && (module.exports = {
|
|
196
246
|
BoundWitnessWrapper,
|
|
247
|
+
QueryBoundWitnessWrapper,
|
|
197
248
|
isBoundWitnessWrapper
|
|
198
249
|
});
|
|
199
250
|
//# sourceMappingURL=index.cjs.map
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/BoundWitnessWrapper.ts"],"sourcesContent":["export * from './BoundWitnessWrapper'\n","import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\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 PayloadWrapper => {\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?.jsonPayload()\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, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>> {\n const hydratedObj = await PayloadBuilder.build(typeof obj === 'string' ? JSON.parse(obj) : obj)\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n return hydratedObj instanceof BoundWitnessWrapper\n ? hydratedObj\n : new BoundWitnessWrapper(hydratedObj, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : [])\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.jsonPayload(), 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 (payload) => {\n result[await BoundWitnessWrapper.hash(payload)] = await BoundWitnessWrapper.parse(payload)\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"],"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","jsonPayload","assertEx","isBoundWitness","boundWitness","wrap","parse","obj","hydratedObj","PayloadBuilder","build","JSON","Array","isArray","Promise","all","map","Error","unwrapped","unwrap","toDataHashMap","payloadsHashMap","toHashMap","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","bw","dataHash","wrappedHashMap","hash","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsBySchema","prev","toResult","validate","BoundWitnessValidator"]}
|
|
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"]}
|
package/dist/node/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
package/dist/node/index.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
package/dist/node/index.d.ts
CHANGED
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA"}
|
package/dist/node/index.js
CHANGED
|
@@ -3,6 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
|
|
4
4
|
// src/BoundWitnessWrapper.ts
|
|
5
5
|
import { assertEx } from "@xylabs/assert";
|
|
6
|
+
import { isObject } from "@xylabs/object";
|
|
6
7
|
import { asBoundWitness, BoundWitnessSchema, isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
7
8
|
import { BoundWitnessValidator } from "@xyo-network/boundwitness-validator";
|
|
8
9
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
@@ -41,17 +42,32 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
41
42
|
}
|
|
42
43
|
static async load(address) {
|
|
43
44
|
const wrapper = await PayloadWrapper.load(address);
|
|
44
|
-
const payload = wrapper == null ? void 0 : wrapper.
|
|
45
|
+
const payload = wrapper == null ? void 0 : wrapper.payload;
|
|
45
46
|
assertEx(payload && isBoundWitness(payload), "Attempt to load non-boundwitness");
|
|
46
47
|
const boundWitness = payload && isBoundWitness(payload) ? payload : void 0;
|
|
47
48
|
return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
|
|
48
49
|
}
|
|
49
50
|
static async parse(obj, payloads) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
let hydratedObj = void 0;
|
|
52
|
+
switch (typeof obj) {
|
|
53
|
+
case "string": {
|
|
54
|
+
hydratedObj = JSON.parse(obj);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
53
57
|
case "object": {
|
|
54
|
-
|
|
58
|
+
if (isObject(obj)) {
|
|
59
|
+
hydratedObj = obj;
|
|
60
|
+
}
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (hydratedObj) {
|
|
65
|
+
if (isBoundWitnessWrapper(hydratedObj)) {
|
|
66
|
+
return hydratedObj;
|
|
67
|
+
}
|
|
68
|
+
if (isBoundWitness(hydratedObj)) {
|
|
69
|
+
const bw = await PayloadBuilder.build(hydratedObj);
|
|
70
|
+
return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads == null ? void 0 : payloads.map((payload) => PayloadBuilder.build(payload))) : []);
|
|
55
71
|
}
|
|
56
72
|
}
|
|
57
73
|
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
@@ -79,7 +95,7 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
79
95
|
if (obj instanceof _BoundWitnessWrapper) {
|
|
80
96
|
return obj;
|
|
81
97
|
} else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {
|
|
82
|
-
return await _BoundWitnessWrapper.parse(obj.
|
|
98
|
+
return await _BoundWitnessWrapper.parse(obj.payload, payloads);
|
|
83
99
|
} else {
|
|
84
100
|
return await _BoundWitnessWrapper.parse(obj, payloads);
|
|
85
101
|
}
|
|
@@ -96,8 +112,9 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
96
112
|
}
|
|
97
113
|
static async wrappedHashMap(boundWitnesses) {
|
|
98
114
|
const result = {};
|
|
99
|
-
await Promise.all(boundWitnesses.map(async (
|
|
100
|
-
|
|
115
|
+
await Promise.all(boundWitnesses.map(async (bw) => {
|
|
116
|
+
const wrapped = await _BoundWitnessWrapper.parse(bw);
|
|
117
|
+
result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
|
|
101
118
|
}));
|
|
102
119
|
return result;
|
|
103
120
|
}
|
|
@@ -166,8 +183,41 @@ var _BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
|
|
|
166
183
|
};
|
|
167
184
|
__name(_BoundWitnessWrapper, "BoundWitnessWrapper");
|
|
168
185
|
var BoundWitnessWrapper = _BoundWitnessWrapper;
|
|
186
|
+
|
|
187
|
+
// src/QueryBoundWitnessWrapper.ts
|
|
188
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
189
|
+
import { compact } from "@xylabs/lodash";
|
|
190
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload";
|
|
191
|
+
import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
|
|
192
|
+
var _QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
|
|
193
|
+
_payloadsWithoutQuery;
|
|
194
|
+
_query;
|
|
195
|
+
static async parseQuery(obj, payloads) {
|
|
196
|
+
assertEx2(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
|
|
197
|
+
switch (typeof obj) {
|
|
198
|
+
case "object": {
|
|
199
|
+
const castWrapper = obj;
|
|
200
|
+
const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await PayloadBuilder2.build(obj), payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder2.build(payload))) : void 0);
|
|
201
|
+
return wrapper;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
throw new Error(`Unable to parse [${typeof obj}]`);
|
|
205
|
+
}
|
|
206
|
+
async getPayloadsWithoutQuery() {
|
|
207
|
+
this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(compact((await PayloadBuilder2.filterExclude(this.payloads, this.payload.query)).map((payload) => PayloadWrapper2.wrap(payload))));
|
|
208
|
+
return this._payloadsWithoutQuery;
|
|
209
|
+
}
|
|
210
|
+
async getQuery() {
|
|
211
|
+
const payloadMap = await this.payloadsDataHashMap();
|
|
212
|
+
this._query = this._query ?? payloadMap[this.boundwitness.query];
|
|
213
|
+
return assertEx2(this._query, () => `Missing Query [${this.boundwitness}]`);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
__name(_QueryBoundWitnessWrapper, "QueryBoundWitnessWrapper");
|
|
217
|
+
var QueryBoundWitnessWrapper = _QueryBoundWitnessWrapper;
|
|
169
218
|
export {
|
|
170
219
|
BoundWitnessWrapper,
|
|
220
|
+
QueryBoundWitnessWrapper,
|
|
171
221
|
isBoundWitnessWrapper
|
|
172
222
|
};
|
|
173
223
|
//# sourceMappingURL=index.js.map
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/BoundWitnessWrapper.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Hash } from '@xylabs/hex'\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 PayloadWrapper => {\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?.jsonPayload()\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, P extends Payload>(obj: unknown, payloads?: P[]): Promise<BoundWitnessWrapper<T, P>> {\n const hydratedObj = await PayloadBuilder.build(typeof obj === 'string' ? JSON.parse(obj) : obj)\n assertEx(!Array.isArray(hydratedObj), 'Array can not be converted to BoundWitnessWrapper')\n switch (typeof hydratedObj) {\n case 'object': {\n return hydratedObj instanceof BoundWitnessWrapper\n ? hydratedObj\n : new BoundWitnessWrapper(hydratedObj, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : [])\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.jsonPayload(), 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 (payload) => {\n result[await BoundWitnessWrapper.hash(payload)] = await BoundWitnessWrapper.parse(payload)\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"],"mappings":"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","names":["assertEx","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","jsonPayload","assertEx","isBoundWitness","boundWitness","wrap","parse","obj","hydratedObj","PayloadBuilder","build","JSON","Array","isArray","Promise","all","map","Error","unwrapped","unwrap","toDataHashMap","payloadsHashMap","toHashMap","tryParse","schema","BoundWitnessSchema","wrappedDataHashMap","boundWitnesses","result","bw","dataHash","wrappedHashMap","hash","dig","depth","innerBoundwitnessIndex","indexOf","innerBoundwitnessHash","innerBoundwitnessPayload","asBoundWitness","innerBoundwitness","filterExclude","getMissingPayloads","payloadMap","filter","getWrappedPayloads","hashesBySchema","index","payloadSchema","entries","push","payloadsByDataHashes","hashes","payloadsByHashes","payloadsBySchema","prev","toResult","validate","BoundWitnessValidator"]}
|
|
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"]}
|
package/package.json
CHANGED
|
@@ -10,19 +10,21 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@xylabs/assert": "^2.14.
|
|
14
|
-
"@xylabs/hex": "^2.14.
|
|
15
|
-
"@
|
|
16
|
-
"@
|
|
17
|
-
"@xyo-network/
|
|
18
|
-
"@xyo-network/
|
|
19
|
-
"@xyo-network/payload
|
|
13
|
+
"@xylabs/assert": "^2.14.1",
|
|
14
|
+
"@xylabs/hex": "^2.14.1",
|
|
15
|
+
"@xylabs/lodash": "^2.14.1",
|
|
16
|
+
"@xylabs/object": "^2.89.1",
|
|
17
|
+
"@xyo-network/boundwitness-model": "~2.90.3",
|
|
18
|
+
"@xyo-network/boundwitness-validator": "~2.90.3",
|
|
19
|
+
"@xyo-network/payload": "~2.90.3",
|
|
20
|
+
"@xyo-network/payload-builder": "~2.90.3",
|
|
21
|
+
"@xyo-network/payload-model": "~2.90.3",
|
|
22
|
+
"@xyo-network/payload-wrapper": "~2.90.3"
|
|
20
23
|
},
|
|
21
24
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
22
25
|
"devDependencies": {
|
|
23
26
|
"@xylabs/ts-scripts-yarn3": "^3.2.42",
|
|
24
27
|
"@xylabs/tsconfig": "^3.2.42",
|
|
25
|
-
"@xyo-network/payload": "~2.90.1",
|
|
26
28
|
"typescript": "^5.3.3"
|
|
27
29
|
},
|
|
28
30
|
"exports": {
|
|
@@ -63,6 +65,6 @@
|
|
|
63
65
|
},
|
|
64
66
|
"sideEffects": false,
|
|
65
67
|
"types": "dist/node/index.d.ts",
|
|
66
|
-
"version": "2.90.
|
|
68
|
+
"version": "2.90.3",
|
|
67
69
|
"type": "module"
|
|
68
70
|
}
|