@xyo-network/boundwitness-wrapper 2.90.2 → 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.
Files changed (48) hide show
  1. package/dist/browser/BoundWitnessWrapper.d.cts +4 -2
  2. package/dist/browser/BoundWitnessWrapper.d.cts.map +1 -1
  3. package/dist/browser/BoundWitnessWrapper.d.mts +4 -2
  4. package/dist/browser/BoundWitnessWrapper.d.mts.map +1 -1
  5. package/dist/browser/BoundWitnessWrapper.d.ts +4 -2
  6. package/dist/browser/BoundWitnessWrapper.d.ts.map +1 -1
  7. package/dist/browser/QueryBoundWitnessWrapper.d.cts +12 -0
  8. package/dist/browser/QueryBoundWitnessWrapper.d.cts.map +1 -0
  9. package/dist/browser/QueryBoundWitnessWrapper.d.mts +12 -0
  10. package/dist/browser/QueryBoundWitnessWrapper.d.mts.map +1 -0
  11. package/dist/browser/QueryBoundWitnessWrapper.d.ts +12 -0
  12. package/dist/browser/QueryBoundWitnessWrapper.d.ts.map +1 -0
  13. package/dist/browser/index.cjs +59 -8
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.d.cts +1 -0
  16. package/dist/browser/index.d.cts.map +1 -1
  17. package/dist/browser/index.d.mts +1 -0
  18. package/dist/browser/index.d.mts.map +1 -1
  19. package/dist/browser/index.d.ts +1 -0
  20. package/dist/browser/index.d.ts.map +1 -1
  21. package/dist/browser/index.js +59 -8
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/node/BoundWitnessWrapper.d.cts +4 -2
  24. package/dist/node/BoundWitnessWrapper.d.cts.map +1 -1
  25. package/dist/node/BoundWitnessWrapper.d.mts +4 -2
  26. package/dist/node/BoundWitnessWrapper.d.mts.map +1 -1
  27. package/dist/node/BoundWitnessWrapper.d.ts +4 -2
  28. package/dist/node/BoundWitnessWrapper.d.ts.map +1 -1
  29. package/dist/node/QueryBoundWitnessWrapper.d.cts +12 -0
  30. package/dist/node/QueryBoundWitnessWrapper.d.cts.map +1 -0
  31. package/dist/node/QueryBoundWitnessWrapper.d.mts +12 -0
  32. package/dist/node/QueryBoundWitnessWrapper.d.mts.map +1 -0
  33. package/dist/node/QueryBoundWitnessWrapper.d.ts +12 -0
  34. package/dist/node/QueryBoundWitnessWrapper.d.ts.map +1 -0
  35. package/dist/node/index.cjs +59 -8
  36. package/dist/node/index.cjs.map +1 -1
  37. package/dist/node/index.d.cts +1 -0
  38. package/dist/node/index.d.cts.map +1 -1
  39. package/dist/node/index.d.mts +1 -0
  40. package/dist/node/index.d.mts.map +1 -1
  41. package/dist/node/index.d.ts +1 -0
  42. package/dist/node/index.d.ts.map +1 -1
  43. package/dist/node/index.js +58 -8
  44. package/dist/node/index.js.map +1 -1
  45. package/package.json +11 -9
  46. package/src/BoundWitnessWrapper.ts +33 -12
  47. package/src/QueryBoundWitnessWrapper.ts +49 -0
  48. package/src/index.ts +1 -0
@@ -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 PayloadWrapper<{
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":"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"}
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -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 PayloadWrapper<{
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":"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"}
1
+ {"version":3,"file":"BoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../src/BoundWitnessWrapper.ts"],"names":[],"mappings":"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"}
@@ -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 PayloadWrapper<{
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":"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"}
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"}
@@ -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");
@@ -69,17 +71,32 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
69
71
  }
70
72
  static async load(address) {
71
73
  const wrapper = await import_payload_wrapper.PayloadWrapper.load(address);
72
- const payload = wrapper?.jsonPayload();
74
+ const payload = wrapper?.payload;
73
75
  (0, import_assert.assertEx)(payload && (0, import_boundwitness_model.isBoundWitness)(payload), "Attempt to load non-boundwitness");
74
76
  const boundWitness = payload && (0, import_boundwitness_model.isBoundWitness)(payload) ? payload : void 0;
75
77
  return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
76
78
  }
77
79
  static async parse(obj, payloads) {
78
- const hydratedObj = await import_payload_builder.PayloadBuilder.build(typeof obj === "string" ? JSON.parse(obj) : obj);
79
- (0, import_assert.assertEx)(!Array.isArray(hydratedObj), "Array can not be converted to BoundWitnessWrapper");
80
- switch (typeof hydratedObj) {
80
+ let hydratedObj = void 0;
81
+ switch (typeof obj) {
82
+ case "string": {
83
+ hydratedObj = JSON.parse(obj);
84
+ break;
85
+ }
81
86
  case "object": {
82
- return hydratedObj instanceof _BoundWitnessWrapper ? hydratedObj : new _BoundWitnessWrapper(hydratedObj, payloads ? await Promise.all(payloads?.map((payload) => import_payload_builder.PayloadBuilder.build(payload))) : []);
87
+ if ((0, import_object.isObject)(obj)) {
88
+ hydratedObj = obj;
89
+ }
90
+ break;
91
+ }
92
+ }
93
+ if (hydratedObj) {
94
+ if (isBoundWitnessWrapper(hydratedObj)) {
95
+ return hydratedObj;
96
+ }
97
+ if ((0, import_boundwitness_model.isBoundWitness)(hydratedObj)) {
98
+ const bw = await import_payload_builder.PayloadBuilder.build(hydratedObj);
99
+ return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => import_payload_builder.PayloadBuilder.build(payload))) : []);
83
100
  }
84
101
  }
85
102
  throw new Error(`Unable to parse [${typeof obj}]`);
@@ -107,7 +124,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
107
124
  if (obj instanceof _BoundWitnessWrapper) {
108
125
  return obj;
109
126
  } else if (obj instanceof import_payload_wrapper.PayloadWrapper && obj.schema() === import_boundwitness_model.BoundWitnessSchema) {
110
- return await _BoundWitnessWrapper.parse(obj.jsonPayload(), payloads);
127
+ return await _BoundWitnessWrapper.parse(obj.payload, payloads);
111
128
  } else {
112
129
  return await _BoundWitnessWrapper.parse(obj, payloads);
113
130
  }
@@ -124,8 +141,9 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
124
141
  }
125
142
  static async wrappedHashMap(boundWitnesses) {
126
143
  const result = {};
127
- await Promise.all(boundWitnesses.map(async (payload) => {
128
- result[await _BoundWitnessWrapper.hash(payload)] = await _BoundWitnessWrapper.parse(payload);
144
+ await Promise.all(boundWitnesses.map(async (bw) => {
145
+ const wrapped = await _BoundWitnessWrapper.parse(bw);
146
+ result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
129
147
  }));
130
148
  return result;
131
149
  }
@@ -192,4 +210,37 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends import_payload_wrap
192
210
  return await new import_boundwitness_validator.BoundWitnessValidator(this.boundwitness).validate();
193
211
  }
194
212
  };
213
+
214
+ // src/QueryBoundWitnessWrapper.ts
215
+ var import_assert2 = require("@xylabs/assert");
216
+ var import_lodash = require("@xylabs/lodash");
217
+ var import_payload = require("@xyo-network/payload");
218
+ var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
219
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
220
+ static {
221
+ __name(this, "QueryBoundWitnessWrapper");
222
+ }
223
+ _payloadsWithoutQuery;
224
+ _query;
225
+ static async parseQuery(obj, payloads) {
226
+ (0, import_assert2.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
227
+ switch (typeof obj) {
228
+ case "object": {
229
+ const castWrapper = obj;
230
+ 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);
231
+ return wrapper;
232
+ }
233
+ }
234
+ throw new Error(`Unable to parse [${typeof obj}]`);
235
+ }
236
+ async getPayloadsWithoutQuery() {
237
+ 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))));
238
+ return this._payloadsWithoutQuery;
239
+ }
240
+ async getQuery() {
241
+ const payloadMap = await this.payloadsDataHashMap();
242
+ this._query = this._query ?? payloadMap[this.boundwitness.query];
243
+ return (0, import_assert2.assertEx)(this._query, () => `Missing Query [${this.boundwitness}]`);
244
+ }
245
+ };
195
246
  //# sourceMappingURL=index.cjs.map
@@ -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":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;ACAA,oBAAyB;AAEzB,gCAAiF;AACjF,oCAAsC;AACtC,6BAA+B;AAE/B,6BAAyE;AAElE,IAAMA,wBAAwB,wBAACC,UAAAA;AACpC,UAAIC,6CAAqBD,KAAAA,GAAQ;AAC/B,WAAO,OAAQA,MAA8BE,wBAAwB;EACvE;AACA,SAAO;AACT,GALqC;AAO9B,IAAMC,sBAAN,MAAMA,6BAGHC,0CAAAA;EAlBV,OAkBUA;;;;;;EACAC;EAER,YACSC,cACAC,WAAiC,CAAA,GACjCC,cACP;AACA,UAAMF,YAAAA;SAJCA,eAAAA;SACAC,WAAAA;SACAC,eAAAA;EAGT;EAEA,IAAIC,YAAY;AACd,WAAO,KAAKH,aAAaG;EAC3B;EAEA,IAAIC,gBAAgB;AAClB,WAAO,KAAKJ,aAAaK;EAC3B;EAEA,IAAIC,iBAAiB;AACnB,WAAO,KAAKN,aAAaO;EAC3B;EAEA,IAAIC,iBAAiB;AACnB,WAAO,KAAKR,aAAaS;EAC3B;EAEA,OAAOC,GAA0ChB,OAAgB;AAC/D,WAAOA,iBAAiBG,uBAAuBH,QAAmCiB;EACpF;EAEA,aAAaC,KAAKC,SAAiB;AACjC,UAAMC,UAAU,MAAMC,sCAAeH,KAAKC,OAAAA;AAC1C,UAAMG,UAAUF,SAASG,YAAAA;AACzBC,gCAASF,eAAWG,0CAAeH,OAAAA,GAAU,kCAAA;AAE7C,UAAMI,eAAyCJ,eAAWG,0CAAeH,OAAAA,IAAWA,UAAUL;AAC9F,WAAOS,eAAe,MAAMvB,qBAAoBwB,KAAKD,YAAAA,IAAgB;EACvE;EAEA,aAAaE,MAAiDC,KAActB,UAAoD;AAC9H,UAAMuB,cAAc,MAAMC,sCAAeC,MAAM,OAAOH,QAAQ,WAAWI,KAAKL,MAAMC,GAAAA,IAAOA,GAAAA;AAC3FL,gCAAS,CAACU,MAAMC,QAAQL,WAAAA,GAAc,mDAAA;AACtC,YAAQ,OAAOA,aAAAA;MACb,KAAK,UAAU;AACb,eAAOA,uBAAuB3B,uBAC1B2B,cACA,IAAI3B,qBAAoB2B,aAAavB,WAAW,MAAM6B,QAAQC,IAAI9B,UAAU+B,IAAI,CAAChB,YAAYS,sCAAeC,MAAMV,OAAAA,CAAAA,CAAAA,IAAa,CAAA,CAAE;MACvI;IACF;AACA,UAAM,IAAIiB,MAAM,oBAAoB,OAAOV,GAAAA,GAAM;EACnD;EAEA,aAAa3B,oBAA8CK,UAAiE;AAC1H,UAAMiC,YAAY,MAAM,KAAKC,OAAOlC,QAAAA;AACpC,WAAO,MAAMwB,sCAAeW,cAAcF,SAAAA;EAC5C;EAEA,aAAaG,gBAA0CpC,UAAuD;AAC5G,UAAMiC,YAAY,MAAM,KAAKC,OAAOlC,QAAAA;AACpC,WAAO,MAAMwB,sCAAea,UAAUJ,SAAAA;EACxC;EAEA,aAAaK,SAAoDhB,KAActB,UAAgE;AAC7I,QAAIsB,QAAQZ;AAAW,aAAOA;AAC9B,QAAI;AACF,aAAO,MAAM,KAAKW,MAAMC,KAAKtB,QAAAA;IAC/B,QAAQ;AACN,aAAOU;IACT;EACF;EAEA,aAAaU,KAAgDE,KAAgCtB,UAAoD;AAC/I,YAAQ,OAAOsB,KAAAA;MACb,KAAK,UAAU;AACb,YAAIA,eAAe1B,sBAAqB;AACtC,iBAAO0B;QACT,WAAWA,eAAeR,yCAAkBQ,IAAIiB,OAAM,MAAOC,8CAAoB;AAC/E,iBAAO,MAAM5C,qBAAoByB,MAAMC,IAAIN,YAAW,GAAIhB,QAAAA;QAC5D,OAAO;AACL,iBAAO,MAAMJ,qBAAoByB,MAAMC,KAAKtB,QAAAA;QAC9C;MACF;IACF;EACF;EAEA,aAAayC,mBACXC,gBACiD;AACjD,UAAMC,SAAiD,CAAC;AACxD,UAAMd,QAAQC,IACZY,eAAeX,IAAI,OAAOhB,YAAAA;AACxB,YAAM6B,KAAK,MAAMhD,qBAAoByB,MAAkBN,OAAAA;AACvD4B,aAAO,MAAMC,GAAGC,SAAQ,CAAA,IAAMD;IAChC,CAAA,CAAA;AAEF,WAAOD;EACT;EAEA,aAAaG,eACXJ,gBACiD;AACjD,UAAMC,SAAiD,CAAC;AACxD,UAAMd,QAAQC,IACZY,eAAeX,IAAI,OAAOhB,YAAAA;AACxB4B,aAAO,MAAM/C,qBAAoBmD,KAAKhC,OAAAA,CAAAA,IAAY,MAAMnB,qBAAoByB,MAAMN,OAAAA;IACpF,CAAA,CAAA;AAEF,WAAO4B;EACT;EAEA,MAAMK,IAAIC,OAA6D;AACrE,QAAIA,UAAU;AAAG,aAAO;AAExB,UAAMC,yBAAiC,KAAK7C,eAAe8C,QAAQX,4CAAAA;AACnE,QAAIU,yBAAyB,IAAI;AAC/B,YAAME,wBAA8B,KAAKjD,cAAc+C,sBAAAA;AACvD,YAAMG,+BAA2BC,2CAC9B,MAAM1D,qBAAoBD,oBAAoB,KAAKK,QAAQ,GAAGoD,qBAAAA,CAAsB;AAEvF,YAAMG,oBAAoEF,2BACtE,IAAIzD,qBAAmCyD,0BAA0B,MAAM7B,sCAAegC,cAAc,KAAKxD,UAAUoD,qBAAAA,CAAAA,IACnH1C;AACJ,UAAI6C,mBAAmB;AACrB,eAAOA,kBAAkBP,IAAIC,QAAQA,QAAQ,IAAIvC,MAAAA;MACnD;IACF;AACAO,gCAAS,CAACgC,OAAO,MAAM,gCAAgCA,KAAAA,GAAQ;AAC/D,WAAO;EACT;EAEA,MAAMQ,qBAAqB;AACzB,UAAMC,aAAa,MAAM,KAAK/D,oBAAmB;AACjD,WAAO,KAAKQ,cAAcwD,OAAO,CAACZ,SAAS,CAACW,WAAWX,IAAAA,CAAK;EAC9D;EAEA,MAAMa,qBAA0D;AAC9D,WAAO,MAAM/B,QAAQC,IAAI,KAAK9B,SAAS+B,IAAI,CAAChB,YAAYD,sCAAeM,KAAKL,OAAAA,CAAAA,CAAAA;EAC9E;EAEA8C,eAAetB,QAAgB;AAC7B,UAAMI,SAAmB,CAAA;AACzB,eAAW,CAACmB,OAAOC,aAAAA,KAAkB,KAAK1D,eAAe2D,QAAO,GAAI;AAClE,UAAID,kBAAkBxB,QAAQ;AAC5BI,eAAOsB,KAAK,KAAK9D,cAAc2D,KAAAA,CAAM;MACvC;IACF;AACA,WAAOnB;EACT;EAEA,MAAMuB,qBAAyCC,QAAgC;AAC7E,UAAMpC,MAAM,MAAM,KAAKpC,oBAAmB;AAC1C,WAAOwE,OAAOpC,IAAO,CAACgB,aAAS9B,wBAASc,IAAIgB,IAAAA,GAAO,gBAAA,CAAA;EACrD;EAEA,MAAMqB,iBAAqCD,QAAgC;AACzE,UAAMpC,MAAM,MAAM,KAAKK,gBAAe;AACtC,WAAO+B,OAAOpC,IAAO,CAACgB,aAAS9B,wBAASc,IAAIgB,IAAAA,GAAO,gBAAA,CAAA;EACrD;EAEAsB,iBAAqC9B,QAA+B;AAClE,WAAO,KAAKvC,SAAS2D,OAAO,CAAC5C,YAAYA,SAASwB,WAAWA,MAAAA;EAC/D;EAEA,MAAM5C,sBAAyD;AAC7D,SAAKG,cAAc,KAAKA,eAAgB,MAAMF,qBAAoBD,oBAA8B,KAAKK,QAAQ;AAC7G,WAAO,KAAKF;EACd;EAEA,MAAMsC,kBAAqD;AACzD,SAAKtC,cAAc,KAAKA,eAAgB,MAAMF,qBAAoBwC,gBAA0B,KAAKpC,QAAQ;AACzG,WAAO,KAAKF;EACd;EAEAwE,KAAK1D,SAAiB;AACpB,WAAO,KAAKL,eAAe,KAAKL,UAAUiD,QAAQvC,OAAAA,CAAAA;EACpD;EAEA2D,WAAW;AACT,WAAO;MAAC,KAAKxE;MAAc,KAAKC;;EAClC;EAEA,MAAewE,WAA6B;AAC1C,WAAO,MAAM,IAAIC,oDAAsB,KAAK1E,YAAY,EAAEyE,SAAQ;EACpE;AACF;","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"]}
@@ -1,2 +1,3 @@
1
1
  export * from './BoundWitnessWrapper';
2
+ export * from './QueryBoundWitnessWrapper';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,2 +1,3 @@
1
1
  export * from './BoundWitnessWrapper';
2
+ export * from './QueryBoundWitnessWrapper';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -1,2 +1,3 @@
1
1
  export * from './BoundWitnessWrapper';
2
+ export * from './QueryBoundWitnessWrapper';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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";
@@ -44,17 +45,32 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
44
45
  }
45
46
  static async load(address) {
46
47
  const wrapper = await PayloadWrapper.load(address);
47
- const payload = wrapper?.jsonPayload();
48
+ const payload = wrapper?.payload;
48
49
  assertEx(payload && isBoundWitness(payload), "Attempt to load non-boundwitness");
49
50
  const boundWitness = payload && isBoundWitness(payload) ? payload : void 0;
50
51
  return boundWitness ? await _BoundWitnessWrapper.wrap(boundWitness) : null;
51
52
  }
52
53
  static async parse(obj, payloads) {
53
- const hydratedObj = await PayloadBuilder.build(typeof obj === "string" ? JSON.parse(obj) : obj);
54
- assertEx(!Array.isArray(hydratedObj), "Array can not be converted to BoundWitnessWrapper");
55
- switch (typeof hydratedObj) {
54
+ let hydratedObj = void 0;
55
+ switch (typeof obj) {
56
+ case "string": {
57
+ hydratedObj = JSON.parse(obj);
58
+ break;
59
+ }
56
60
  case "object": {
57
- return hydratedObj instanceof _BoundWitnessWrapper ? hydratedObj : new _BoundWitnessWrapper(hydratedObj, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : []);
61
+ if (isObject(obj)) {
62
+ hydratedObj = obj;
63
+ }
64
+ break;
65
+ }
66
+ }
67
+ if (hydratedObj) {
68
+ if (isBoundWitnessWrapper(hydratedObj)) {
69
+ return hydratedObj;
70
+ }
71
+ if (isBoundWitness(hydratedObj)) {
72
+ const bw = await PayloadBuilder.build(hydratedObj);
73
+ return new _BoundWitnessWrapper(bw, payloads ? await Promise.all(payloads?.map((payload) => PayloadBuilder.build(payload))) : []);
58
74
  }
59
75
  }
60
76
  throw new Error(`Unable to parse [${typeof obj}]`);
@@ -82,7 +98,7 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
82
98
  if (obj instanceof _BoundWitnessWrapper) {
83
99
  return obj;
84
100
  } else if (obj instanceof PayloadWrapper && obj.schema() === BoundWitnessSchema) {
85
- return await _BoundWitnessWrapper.parse(obj.jsonPayload(), payloads);
101
+ return await _BoundWitnessWrapper.parse(obj.payload, payloads);
86
102
  } else {
87
103
  return await _BoundWitnessWrapper.parse(obj, payloads);
88
104
  }
@@ -99,8 +115,9 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
99
115
  }
100
116
  static async wrappedHashMap(boundWitnesses) {
101
117
  const result = {};
102
- await Promise.all(boundWitnesses.map(async (payload) => {
103
- result[await _BoundWitnessWrapper.hash(payload)] = await _BoundWitnessWrapper.parse(payload);
118
+ await Promise.all(boundWitnesses.map(async (bw) => {
119
+ const wrapped = await _BoundWitnessWrapper.parse(bw);
120
+ result[await wrapped.dataHash()] = await _BoundWitnessWrapper.parse(bw);
104
121
  }));
105
122
  return result;
106
123
  }
@@ -167,8 +184,42 @@ var BoundWitnessWrapper = class _BoundWitnessWrapper extends PayloadWrapperBase
167
184
  return await new BoundWitnessValidator(this.boundwitness).validate();
168
185
  }
169
186
  };
187
+
188
+ // src/QueryBoundWitnessWrapper.ts
189
+ import { assertEx as assertEx2 } from "@xylabs/assert";
190
+ import { compact } from "@xylabs/lodash";
191
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload";
192
+ import { PayloadWrapper as PayloadWrapper2 } from "@xyo-network/payload-wrapper";
193
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends BoundWitnessWrapper {
194
+ static {
195
+ __name(this, "QueryBoundWitnessWrapper");
196
+ }
197
+ _payloadsWithoutQuery;
198
+ _query;
199
+ static async parseQuery(obj, payloads) {
200
+ assertEx2(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
201
+ switch (typeof obj) {
202
+ case "object": {
203
+ const castWrapper = obj;
204
+ const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await PayloadBuilder2.build(obj), payloads ? await Promise.all(payloads.map((payload) => PayloadBuilder2.build(payload))) : void 0);
205
+ return wrapper;
206
+ }
207
+ }
208
+ throw new Error(`Unable to parse [${typeof obj}]`);
209
+ }
210
+ async getPayloadsWithoutQuery() {
211
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all(compact((await PayloadBuilder2.filterExclude(this.payloads, this.payload.query)).map((payload) => PayloadWrapper2.wrap(payload))));
212
+ return this._payloadsWithoutQuery;
213
+ }
214
+ async getQuery() {
215
+ const payloadMap = await this.payloadsDataHashMap();
216
+ this._query = this._query ?? payloadMap[this.boundwitness.query];
217
+ return assertEx2(this._query, () => `Missing Query [${this.boundwitness}]`);
218
+ }
219
+ };
170
220
  export {
171
221
  BoundWitnessWrapper,
222
+ QueryBoundWitnessWrapper,
172
223
  isBoundWitnessWrapper
173
224
  };
174
225
  //# sourceMappingURL=index.js.map
@@ -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"]}
@@ -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 PayloadWrapper<{
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>;