@xyo-network/boundwitness-builder 2.64.10 → 2.65.1

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 (49) hide show
  1. package/dist/cjs/Builder.js.map +1 -1
  2. package/dist/cjs/Query/QueryBoundWitness.js +8 -0
  3. package/dist/cjs/Query/QueryBoundWitness.js.map +1 -0
  4. package/dist/cjs/Query/QueryBoundWitnessBuilder.js +31 -0
  5. package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +1 -0
  6. package/dist/cjs/Query/QueryBoundWitnessValidator.js +58 -0
  7. package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +1 -0
  8. package/dist/cjs/Query/QueryBoundWitnessWrapper.js +62 -0
  9. package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +1 -0
  10. package/dist/cjs/Query/index.js +8 -0
  11. package/dist/cjs/Query/index.js.map +1 -0
  12. package/dist/cjs/index.js +1 -0
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/docs.json +17066 -627
  15. package/dist/esm/Builder.js.map +1 -1
  16. package/dist/esm/Query/QueryBoundWitness.js +4 -0
  17. package/dist/esm/Query/QueryBoundWitness.js.map +1 -0
  18. package/dist/esm/Query/QueryBoundWitnessBuilder.js +26 -0
  19. package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +1 -0
  20. package/dist/esm/Query/QueryBoundWitnessValidator.js +47 -0
  21. package/dist/esm/Query/QueryBoundWitnessValidator.js.map +1 -0
  22. package/dist/esm/Query/QueryBoundWitnessWrapper.js +46 -0
  23. package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +1 -0
  24. package/dist/esm/Query/index.js +5 -0
  25. package/dist/esm/Query/index.js.map +1 -0
  26. package/dist/esm/index.js +1 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/types/Builder.d.ts +1 -2
  29. package/dist/types/Builder.d.ts.map +1 -1
  30. package/dist/types/Query/QueryBoundWitness.d.ts +17 -0
  31. package/dist/types/Query/QueryBoundWitness.d.ts.map +1 -0
  32. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts +12 -0
  33. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
  34. package/dist/types/Query/QueryBoundWitnessValidator.d.ts +11 -0
  35. package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
  36. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +18 -0
  37. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
  38. package/dist/types/Query/index.d.ts +5 -0
  39. package/dist/types/Query/index.d.ts.map +1 -0
  40. package/dist/types/index.d.ts +1 -0
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/package.json +15 -12
  43. package/src/Builder.ts +1 -2
  44. package/src/Query/QueryBoundWitness.ts +13 -0
  45. package/src/Query/QueryBoundWitnessBuilder.ts +34 -0
  46. package/src/Query/QueryBoundWitnessValidator.ts +51 -0
  47. package/src/Query/QueryBoundWitnessWrapper.ts +65 -0
  48. package/src/Query/index.ts +4 -0
  49. package/src/index.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model';
2
+ export const QueryBoundWitnessSchema = BoundWitnessSchema;
3
+ export const isQueryBoundWitness = (x) => isBoundWitness(x) && x?.query !== undefined;
4
+ //# sourceMappingURL=QueryBoundWitness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitness.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,kBAAkB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAIlG,MAAM,CAAC,MAAM,uBAAuB,GAA4B,kBAAkB,CAAA;AAQlF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAkB,EAA0B,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAK,CAAuB,EAAE,KAAK,KAAK,SAAS,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
3
+ import { BoundWitnessBuilder } from '../Builder';
4
+ import { QueryBoundWitnessSchema } from './QueryBoundWitness';
5
+ export class QueryBoundWitnessBuilder extends BoundWitnessBuilder {
6
+ _query;
7
+ _resultSet;
8
+ async hashableFields() {
9
+ return {
10
+ ...(await super.hashableFields()),
11
+ query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),
12
+ schema: QueryBoundWitnessSchema,
13
+ };
14
+ }
15
+ query(query) {
16
+ this._query = PayloadWrapper.wrap(query);
17
+ this.payload(this._query.payload());
18
+ return this;
19
+ }
20
+ resultSet(payloadSet) {
21
+ this._resultSet = PayloadWrapper.wrap(payloadSet);
22
+ this.payload(this._resultSet.payload());
23
+ return this;
24
+ }
25
+ }
26
+ //# sourceMappingURL=QueryBoundWitnessBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAEhF,MAAM,OAAO,wBAGX,SAAQ,mBAAkC;IAClC,MAAM,CAAoC;IAC1C,UAAU,CAA+C;IAExD,KAAK,CAAC,cAAc;QAC3B,OAAO;YACL,GAAG,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;YACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,oBAAoB,CAAC;YACrE,MAAM,EAAE,uBAAuB;SAChC,CAAA;IACH,CAAC;IAED,KAAK,CAA4C,KAAQ;QACvD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,CAAkE,UAAa;QACtF,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
3
+ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
4
+ import { handleError } from '@xyo-network/error';
5
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
6
+ import { QueryBoundWitnessSchema } from './QueryBoundWitness';
7
+ export class QueryBoundWitnessValidator extends BoundWitnessValidator {
8
+ _query;
9
+ get expectedSchema() {
10
+ return QueryBoundWitnessSchema;
11
+ }
12
+ static isQueryBoundWitnessValidator(obj) {
13
+ return obj?.constructor === QueryBoundWitnessValidator;
14
+ }
15
+ async validate() {
16
+ return [
17
+ ...(await super.validate()),
18
+ // ...this.validateResultSet()
19
+ ];
20
+ }
21
+ async validateResultSet() {
22
+ const errors = [];
23
+ try {
24
+ const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet');
25
+ const wrapper = BoundWitnessWrapper.parse(this.obj);
26
+ const resultSet = PayloadWrapper.wrap((await wrapper.payloadMap())[resultSetHash]);
27
+ const required = resultSet?.payload().required;
28
+ if (required) {
29
+ Object.entries(required).forEach(([key, value]) => {
30
+ const found = wrapper.payloadSchemas.reduce((count, schema) => {
31
+ return count + (schema === key ? 1 : 0);
32
+ }, 0);
33
+ if (found !== value) {
34
+ errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`));
35
+ }
36
+ });
37
+ }
38
+ }
39
+ catch (ex) {
40
+ handleError(ex, (error) => {
41
+ errors.push(error);
42
+ });
43
+ }
44
+ return errors;
45
+ }
46
+ }
47
+ //# sourceMappingURL=QueryBoundWitnessValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessValidator.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAqB,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAChF,MAAM,OAAO,0BAAoD,SAAQ,qBAAwC;IACvG,MAAM,CAA+B;IAE7C,IAAuB,cAAc;QACnC,OAAO,uBAAuB,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAY;QAC9C,OAAQ,GAAkC,EAAE,WAAW,KAAK,0BAA0B,CAAA;IACxF,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,OAAO;YACL,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC3B,8BAA8B;SAC/B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,MAAM,GAAY,EAAE,CAAA;QAC1B,IAAI;YACF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;YACvE,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAoB,CAAC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa,CAAsB,CAAC,CAAA;YAC1H,MAAM,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAA;YAC9C,IAAI,QAAQ,EAAE;gBACZ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAChD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;wBAC5D,OAAO,KAAK,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzC,CAAC,EAAE,CAAC,CAAC,CAAA;oBACL,IAAI,KAAK,KAAK,KAAK,EAAE;wBACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,GAAG,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;qBACnF;gBACH,CAAC,CAAC,CAAA;aACH;SACF;QAAC,OAAO,EAAE,EAAE;YACX,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;SACH;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import { assertEx } from '@xylabs/assert';
2
+ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
3
+ import { PayloadHasher } from '@xyo-network/core';
4
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
+ import compact from 'lodash/compact';
6
+ import { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator';
7
+ export class QueryBoundWitnessWrapper extends BoundWitnessWrapper {
8
+ _payloadsWithoutQuery;
9
+ _query;
10
+ _resultSet;
11
+ isQueryBoundWitnessWrapper = true;
12
+ static parseQuery(obj, payloads) {
13
+ assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper');
14
+ switch (typeof obj) {
15
+ case 'object': {
16
+ const castWrapper = obj;
17
+ const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper(obj, payloads);
18
+ /*if (!wrapper.valid) {
19
+ console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
20
+ }*/
21
+ return wrapper;
22
+ }
23
+ }
24
+ throw Error(`Unable to parse [${typeof obj}]`);
25
+ }
26
+ getErrors() {
27
+ return new QueryBoundWitnessValidator(this.boundwitness).validate();
28
+ }
29
+ async getQuery() {
30
+ const payloadMap = await this.allPayloadMap();
31
+ this._query = this._query ?? payloadMap[this.boundwitness.query];
32
+ return assertEx(this._query, `Missing Query [${this.boundwitness}]`);
33
+ }
34
+ async getResultSet() {
35
+ const resultSetHash = this.boundwitness.resultSet;
36
+ const payloadMap = await this.payloadMap();
37
+ return assertEx((this._resultSet = this._resultSet ?? (resultSetHash ? payloadMap[resultSetHash] : undefined)), `Missing resultSet [${resultSetHash}]`);
38
+ }
39
+ async getWrappedPayloads() {
40
+ this._payloadsWithoutQuery =
41
+ this._payloadsWithoutQuery ??
42
+ compact((await PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => PayloadWrapper.wrap(payload)));
43
+ return this._payloadsWithoutQuery;
44
+ }
45
+ }
46
+ //# sourceMappingURL=QueryBoundWitnessWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.js","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAGpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEzE,MAAM,OAAO,wBAAkD,SAAQ,mBAAsC;IACnG,qBAAqB,CAAuC;IAC5D,MAAM,CAAe;IACrB,UAAU,CAA+B;IAEzC,0BAA0B,GAAG,IAAI,CAAA;IAEzC,MAAM,CAAC,UAAU,CAA0B,GAAY,EAAE,QAAoB;QAC3E,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,wDAAwD,CAAC,CAAA;QACvF,QAAQ,OAAO,GAAG,EAAE;YAClB,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,GAAkC,CAAA;gBACtD,MAAM,OAAO,GAAG,WAAW,EAAE,0BAA0B,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAI,GAAwB,EAAE,QAAQ,CAAC,CAAA;gBAC3I;;mBAEG;gBACH,OAAO,OAAO,CAAA;aACf;SACF;QACD,MAAM,KAAK,CAAC,oBAAoB,OAAO,GAAG,GAAG,CAAC,CAAA;IAChD,CAAC;IAEQ,SAAS;QAChB,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAK,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAmB,CAAA;QACnF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACtE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAA;QACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QAC1C,OAAO,QAAQ,CACb,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,CAAC,CAAC,CAAE,UAAU,CAAC,aAAa,CAAmC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACjI,sBAAsB,aAAa,GAAG,CACvC,CAAA;IACH,CAAC;IAEQ,KAAK,CAAC,kBAAkB;QAC/B,IAAI,CAAC,qBAAqB;YACxB,IAAI,CAAC,qBAAqB;gBAC1B,OAAO,CACL,CACE,MAAM,aAAa,CAAC,aAAa,CAC/B,CAAC,MAAM,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EACtE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CACrB,CACF,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CACjD,CAAA;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAA;IACnC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export * from './QueryBoundWitness';
2
+ export * from './QueryBoundWitnessBuilder';
3
+ export * from './QueryBoundWitnessValidator';
4
+ export * from './QueryBoundWitnessWrapper';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './Builder';
2
+ export * from './Query';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
@@ -1,8 +1,7 @@
1
1
  import { AccountInstance } from '@xyo-network/account-model';
2
2
  import { BoundWitness } from '@xyo-network/boundwitness-model';
3
3
  import { Data } from '@xyo-network/core';
4
- import { ModuleError } from '@xyo-network/module-model';
5
- import { Payload } from '@xyo-network/payload-model';
4
+ import { ModuleError, Payload } from '@xyo-network/payload-model';
6
5
  import { Logger } from '@xyo-network/shared';
7
6
  export interface BoundWitnessBuilderConfig {
8
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAU5H,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAA8B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT9G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAa;gBAEV,MAAM,GAAE,yBAAqD,EAAqB,MAAM,CAAC,oBAAQ;IAEtH,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6B9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;YAOzE,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAE,IAAI,EAA6B,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAG5C,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,qBAAa,mBAAmB,CAAC,aAAa,SAAS,YAAY,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO;IAU5H,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAA8B,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAT9G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAa;gBAEV,MAAM,GAAE,yBAAqD,EAAqB,MAAM,CAAC,oBAAQ;IAEtH,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6B9E,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAShC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IA0B9C,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOzC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IASvC,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE;YAOzE,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -0,0 +1,17 @@
1
+ import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model';
2
+ import { Payload } from '@xyo-network/payload-model';
3
+ export type QueryBoundWitnessSchema = BoundWitnessSchema;
4
+ export declare const QueryBoundWitnessSchema: QueryBoundWitnessSchema;
5
+ export type QueryBoundWitness = BoundWitness<{
6
+ query: string;
7
+ resultSet?: string;
8
+ schema: BoundWitnessSchema;
9
+ }>;
10
+ export declare const isQueryBoundWitness: (x?: Payload | null) => x is import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/boundwitness-model").BoundWitnessFields & {
11
+ query: string;
12
+ resultSet?: string | undefined;
13
+ schema: BoundWitnessSchema;
14
+ } & {
15
+ schema: "network.xyo.boundwitness";
16
+ };
17
+ //# sourceMappingURL=QueryBoundWitness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAkB,MAAM,iCAAiC,CAAA;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG,kBAAkB,CAAA;AACxD,eAAO,MAAM,uBAAuB,EAAE,uBAA4C,CAAA;AAElF,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,kBAAkB,CAAA;CAC3B,CAAC,CAAA;AAEF,eAAO,MAAM,mBAAmB,OAAQ,OAAO,GAAG,IAAI;WAL7C,MAAM;;YAEL,kBAAkB;;;CAGyH,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { PayloadSetPayload, Query } from '@xyo-network/payload-model';
2
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
3
+ import { BoundWitnessBuilder } from '../Builder';
4
+ import { QueryBoundWitness } from './QueryBoundWitness';
5
+ export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
6
+ private _query;
7
+ private _resultSet;
8
+ hashableFields(): Promise<TBoundWitness>;
9
+ query<T extends TQuery | PayloadWrapper<TQuery>>(query: T): this;
10
+ resultSet<T extends PayloadSetPayload | PayloadWrapper<PayloadSetPayload>>(payloadSet: T): this;
11
+ }
12
+ //# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAEhF,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,UAAU,CAA+C;IAElD,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAMzD,SAAS,CAAC,CAAC,SAAS,iBAAiB,GAAG,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAU,EAAE,CAAC;CAKzF"}
@@ -0,0 +1,11 @@
1
+ import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator';
2
+ import { Query } from '@xyo-network/payload-model';
3
+ import { QueryBoundWitness } from './QueryBoundWitness';
4
+ export declare class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
5
+ private _query;
6
+ protected get expectedSchema(): string;
7
+ static isQueryBoundWitnessValidator(obj: unknown): boolean;
8
+ validate(): Promise<Error[]>;
9
+ validateResultSet(): Promise<Error[]>;
10
+ }
11
+ //# sourceMappingURL=QueryBoundWitnessValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessValidator.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessValidator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAG3E,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGrE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,qBAAqB,CAAA;AAChF,qBAAa,0BAA0B,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,qBAAqB,CAAC,iBAAiB,CAAC;IAC/G,OAAO,CAAC,MAAM,CAA+B;IAE7C,cAAuB,cAAc,IAAI,MAAM,CAE9C;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO;IAIjC,QAAQ;IAOjB,iBAAiB;CAwBxB"}
@@ -0,0 +1,18 @@
1
+ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper';
2
+ import { Payload, Query } from '@xyo-network/payload-model';
3
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
4
+ import { QueryBoundWitness } from './QueryBoundWitness';
5
+ export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
6
+ private _payloadsWithoutQuery;
7
+ private _query;
8
+ private _resultSet;
9
+ private isQueryBoundWitnessWrapper;
10
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
11
+ getErrors(): Promise<Error[]>;
12
+ getQuery(): Promise<T>;
13
+ getResultSet(): Promise<import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & import("@xyo-network/payload-model").PayloadSet & {
14
+ schema: "network.xyo.payload.set";
15
+ }>;
16
+ getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
17
+ }
18
+ //# sourceMappingURL=QueryBoundWitnessWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAEvE,OAAO,EAAE,OAAO,EAAqB,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IAEjD,OAAO,CAAC,0BAA0B,CAAO;IAEzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;IAelG,SAAS;IAIZ,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMtB,YAAY;;;IASH,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
@@ -0,0 +1,5 @@
1
+ export * from './QueryBoundWitness';
2
+ export * from './QueryBoundWitnessBuilder';
3
+ export * from './QueryBoundWitnessValidator';
4
+ export * from './QueryBoundWitnessWrapper';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Query/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export * from './Builder';
2
+ export * from './Query';
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,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA"}
package/package.json CHANGED
@@ -12,20 +12,23 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.9.3",
14
14
  "@xylabs/buffer": "^2.9.3",
15
- "@xyo-network/account-model": "^2.64.10",
16
- "@xyo-network/boundwitness-model": "^2.64.10",
17
- "@xyo-network/boundwitness-wrapper": "^2.64.10",
18
- "@xyo-network/core": "^2.64.10",
19
- "@xyo-network/module-model": "^2.64.10",
20
- "@xyo-network/payload": "^2.64.10",
21
- "@xyo-network/payload-model": "^2.64.10",
22
- "@xyo-network/shared": "^2.64.10",
23
- "async-mutex": "^0.4.0"
15
+ "@xyo-network/account-model": "^2.65.1",
16
+ "@xyo-network/boundwitness-model": "^2.65.1",
17
+ "@xyo-network/boundwitness-validator": "^2.65.1",
18
+ "@xyo-network/boundwitness-wrapper": "^2.65.1",
19
+ "@xyo-network/core": "^2.65.1",
20
+ "@xyo-network/error": "^2.65.1",
21
+ "@xyo-network/payload": "^2.65.1",
22
+ "@xyo-network/payload-model": "^2.65.1",
23
+ "@xyo-network/payload-wrapper": "^2.65.1",
24
+ "@xyo-network/shared": "^2.65.1",
25
+ "async-mutex": "^0.4.0",
26
+ "lodash": "^4.17.21"
24
27
  },
25
28
  "description": "Primary SDK for using XYO Protocol 2.0",
26
29
  "devDependencies": {
27
- "@xylabs/ts-scripts-yarn3": "^2.18.7",
28
- "@xylabs/tsconfig": "^2.18.7",
30
+ "@xylabs/ts-scripts-yarn3": "^2.18.10",
31
+ "@xylabs/tsconfig": "^2.18.10",
29
32
  "typescript": "^5.1.6"
30
33
  },
31
34
  "browser": "dist/esm/index.js",
@@ -60,5 +63,5 @@
60
63
  },
61
64
  "sideEffects": false,
62
65
  "types": "dist/types/index.d.ts",
63
- "version": "2.64.10"
66
+ "version": "2.65.1"
64
67
  }
package/src/Builder.ts CHANGED
@@ -4,9 +4,8 @@ import { AccountInstance } from '@xyo-network/account-model'
4
4
  import { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'
5
5
  import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
6
6
  import { Data, PayloadHasher, sortFields } from '@xyo-network/core'
7
- import { ModuleError } from '@xyo-network/module-model'
8
7
  import { PayloadWrapper } from '@xyo-network/payload'
9
- import { Payload } from '@xyo-network/payload-model'
8
+ import { ModuleError, Payload } from '@xyo-network/payload-model'
10
9
  import { Logger } from '@xyo-network/shared'
11
10
  import { Mutex } from 'async-mutex'
12
11
 
@@ -0,0 +1,13 @@
1
+ import { BoundWitness, BoundWitnessSchema, isBoundWitness } from '@xyo-network/boundwitness-model'
2
+ import { Payload } from '@xyo-network/payload-model'
3
+
4
+ export type QueryBoundWitnessSchema = BoundWitnessSchema
5
+ export const QueryBoundWitnessSchema: QueryBoundWitnessSchema = BoundWitnessSchema
6
+
7
+ export type QueryBoundWitness = BoundWitness<{
8
+ query: string
9
+ resultSet?: string
10
+ schema: BoundWitnessSchema
11
+ }>
12
+
13
+ export const isQueryBoundWitness = (x?: Payload | null): x is QueryBoundWitness => isBoundWitness(x) && (x as QueryBoundWitness)?.query !== undefined
@@ -0,0 +1,34 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { PayloadSetPayload, Query } from '@xyo-network/payload-model'
3
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
4
+
5
+ import { BoundWitnessBuilder } from '../Builder'
6
+ import { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'
7
+
8
+ export class QueryBoundWitnessBuilder<
9
+ TBoundWitness extends QueryBoundWitness = QueryBoundWitness,
10
+ TQuery extends Query = Query,
11
+ > extends BoundWitnessBuilder<TBoundWitness> {
12
+ private _query: PayloadWrapper<TQuery> | undefined
13
+ private _resultSet: PayloadWrapper<PayloadSetPayload> | undefined
14
+
15
+ override async hashableFields(): Promise<TBoundWitness> {
16
+ return {
17
+ ...(await super.hashableFields()),
18
+ query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),
19
+ schema: QueryBoundWitnessSchema,
20
+ }
21
+ }
22
+
23
+ query<T extends TQuery | PayloadWrapper<TQuery>>(query: T) {
24
+ this._query = PayloadWrapper.wrap(query)
25
+ this.payload(this._query.payload())
26
+ return this
27
+ }
28
+
29
+ resultSet<T extends PayloadSetPayload | PayloadWrapper<PayloadSetPayload>>(payloadSet: T) {
30
+ this._resultSet = PayloadWrapper.wrap(payloadSet)
31
+ this.payload(this._resultSet.payload())
32
+ return this
33
+ }
34
+ }
@@ -0,0 +1,51 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
3
+ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
4
+ import { handleError } from '@xyo-network/error'
5
+ import { PayloadSetPayload, Query } from '@xyo-network/payload-model'
6
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
7
+
8
+ import { QueryBoundWitness, QueryBoundWitnessSchema } from './QueryBoundWitness'
9
+ export class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
10
+ private _query: PayloadWrapper<T> | undefined
11
+
12
+ protected override get expectedSchema(): string {
13
+ return QueryBoundWitnessSchema
14
+ }
15
+
16
+ static isQueryBoundWitnessValidator(obj: unknown) {
17
+ return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator
18
+ }
19
+
20
+ override async validate() {
21
+ return [
22
+ ...(await super.validate()),
23
+ // ...this.validateResultSet()
24
+ ]
25
+ }
26
+
27
+ async validateResultSet() {
28
+ const errors: Error[] = []
29
+ try {
30
+ const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')
31
+ const wrapper = BoundWitnessWrapper.parse(this.obj)
32
+ const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)
33
+ const required = resultSet?.payload().required
34
+ if (required) {
35
+ Object.entries(required).forEach(([key, value]) => {
36
+ const found = wrapper.payloadSchemas.reduce((count, schema) => {
37
+ return count + (schema === key ? 1 : 0)
38
+ }, 0)
39
+ if (found !== value) {
40
+ errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))
41
+ }
42
+ })
43
+ }
44
+ } catch (ex) {
45
+ handleError(ex, (error) => {
46
+ errors.push(error)
47
+ })
48
+ }
49
+ return errors
50
+ }
51
+ }
@@ -0,0 +1,65 @@
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
3
+ import { PayloadHasher } from '@xyo-network/core'
4
+ import { Payload, PayloadSetPayload, Query } from '@xyo-network/payload-model'
5
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
6
+ import compact from 'lodash/compact'
7
+
8
+ import { QueryBoundWitness } from './QueryBoundWitness'
9
+ import { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'
10
+
11
+ export class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
12
+ private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined
13
+ private _query: T | undefined
14
+ private _resultSet: PayloadSetPayload | undefined
15
+
16
+ private isQueryBoundWitnessWrapper = true
17
+
18
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {
19
+ assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')
20
+ switch (typeof obj) {
21
+ case 'object': {
22
+ const castWrapper = obj as QueryBoundWitnessWrapper<T>
23
+ const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)
24
+ /*if (!wrapper.valid) {
25
+ console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
26
+ }*/
27
+ return wrapper
28
+ }
29
+ }
30
+ throw Error(`Unable to parse [${typeof obj}]`)
31
+ }
32
+
33
+ override getErrors() {
34
+ return new QueryBoundWitnessValidator(this.boundwitness).validate()
35
+ }
36
+
37
+ async getQuery(): Promise<T> {
38
+ const payloadMap = await this.allPayloadMap()
39
+ this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)
40
+ return assertEx(this._query, `Missing Query [${this.boundwitness}]`)
41
+ }
42
+
43
+ async getResultSet() {
44
+ const resultSetHash = this.boundwitness.resultSet
45
+ const payloadMap = await this.payloadMap()
46
+ return assertEx(
47
+ (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),
48
+ `Missing resultSet [${resultSetHash}]`,
49
+ )
50
+ }
51
+
52
+ override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {
53
+ this._payloadsWithoutQuery =
54
+ this._payloadsWithoutQuery ??
55
+ compact(
56
+ (
57
+ await PayloadHasher.filterExclude(
58
+ (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
59
+ this.payload().query,
60
+ )
61
+ ).map((payload) => PayloadWrapper.wrap(payload)),
62
+ )
63
+ return this._payloadsWithoutQuery
64
+ }
65
+ }
@@ -0,0 +1,4 @@
1
+ export * from './QueryBoundWitness'
2
+ export * from './QueryBoundWitnessBuilder'
3
+ export * from './QueryBoundWitnessValidator'
4
+ export * from './QueryBoundWitnessWrapper'
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './Builder'
2
+ export * from './Query'