@xyo-network/boundwitness-builder 2.89.1 → 2.89.2

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 (35) hide show
  1. package/dist/browser/Builder.d.cts +1 -1
  2. package/dist/browser/Builder.d.cts.map +1 -1
  3. package/dist/browser/Builder.d.mts +1 -1
  4. package/dist/browser/Builder.d.mts.map +1 -1
  5. package/dist/browser/Builder.d.ts +1 -1
  6. package/dist/browser/Builder.d.ts.map +1 -1
  7. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts +3 -2
  8. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  9. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts +3 -2
  10. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  11. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts +3 -2
  12. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +29 -22
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +29 -22
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/node/Builder.d.cts +1 -1
  18. package/dist/node/Builder.d.cts.map +1 -1
  19. package/dist/node/Builder.d.mts +1 -1
  20. package/dist/node/Builder.d.mts.map +1 -1
  21. package/dist/node/Builder.d.ts +1 -1
  22. package/dist/node/Builder.d.ts.map +1 -1
  23. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts +3 -2
  24. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  25. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts +3 -2
  26. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  27. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts +3 -2
  28. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  29. package/dist/node/index.cjs +29 -22
  30. package/dist/node/index.cjs.map +1 -1
  31. package/dist/node/index.js +29 -22
  32. package/dist/node/index.js.map +1 -1
  33. package/package.json +10 -10
  34. package/src/Builder.ts +26 -31
  35. package/src/Query/QueryBoundWitnessBuilder.ts +10 -2
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAkB,kBAAkB,EAAE,qBAAqB,EAAkB,MAAM,sBAAsB,CAAA;AAChH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,KAAK,2BAA2B,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEzG,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CACnH,SAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CACtC;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CACpI,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,EACpC,0BAA0B,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAC/D;IACC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAU;IAClC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAM;IAC3B,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC;IAY7D,OAAO,KAAK,gBAAgB,GAO3B;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAQxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAIxE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAI/D,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAkCjD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAuBlE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAa5C,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOjC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAY7C,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMhG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAElF,OAAO,EAAkB,kBAAkB,EAAE,qBAAqB,EAAkB,MAAM,sBAAsB,CAAA;AAChH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,KAAK,2BAA2B,GAAG,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEzG,MAAM,WAAW,0BAA0B,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CACnH,SAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC,EAAE,QAAQ,CAAC;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAA;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CACtC;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,SAAS,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CACpI,IAAI,CAAC,CAAC,EAAE,2BAA2B,CAAC,EACpC,0BAA0B,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAC/D;IACC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAc;IACjD,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAU;IAClC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAM;IAC3B,OAAO,CAAC,UAAU,CAAkB;gBAExB,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,EAAE,QAAQ,CAAC;IAY7D,OAAO,KAAK,gBAAgB,GAO3B;IAED,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAQxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAIxE,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO;IAI/D,KAAK,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAkCjD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAuBlE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAa5C,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IAOjC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ;IAS1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE;IAY7C,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI;IAKxB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMhG,gBAAgB;IAI9B,OAAO,CAAC,oBAAoB;CAG7B"}
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
2
- import { Query } from '@xyo-network/payload-model';
2
+ import { Query, WithMeta } from '@xyo-network/payload-model';
3
3
  import { BoundWitnessBuilder } from '../Builder';
4
4
  export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
5
5
  private _query;
6
- hashableFields(): Promise<TBoundWitness>;
6
+ dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>>;
7
+ hashableFields(): Promise<WithMeta<TBoundWitness>>;
7
8
  query<T extends TQuery>(query: T): Promise<this>;
8
9
  }
9
10
  //# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAQrE,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAQ3D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
@@ -1,9 +1,10 @@
1
1
  import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
2
- import { Query } from '@xyo-network/payload-model';
2
+ import { Query, WithMeta } from '@xyo-network/payload-model';
3
3
  import { BoundWitnessBuilder } from '../Builder';
4
4
  export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
5
5
  private _query;
6
- hashableFields(): Promise<TBoundWitness>;
6
+ dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>>;
7
+ hashableFields(): Promise<WithMeta<TBoundWitness>>;
7
8
  query<T extends TQuery>(query: T): Promise<this>;
8
9
  }
9
10
  //# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAQrE,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAQ3D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
@@ -1,9 +1,10 @@
1
1
  import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
2
- import { Query } from '@xyo-network/payload-model';
2
+ import { Query, WithMeta } from '@xyo-network/payload-model';
3
3
  import { BoundWitnessBuilder } from '../Builder';
4
4
  export declare class QueryBoundWitnessBuilder<TBoundWitness extends QueryBoundWitness = QueryBoundWitness, TQuery extends Query = Query> extends BoundWitnessBuilder<TBoundWitness> {
5
5
  private _query;
6
- hashableFields(): Promise<TBoundWitness>;
6
+ dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>>;
7
+ hashableFields(): Promise<WithMeta<TBoundWitness>>;
7
8
  query<T extends TQuery>(query: T): Promise<this>;
8
9
  }
9
10
  //# sourceMappingURL=QueryBoundWitnessBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAY,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQjD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
1
+ {"version":3,"file":"QueryBoundWitnessBuilder.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iCAAiC,CAAA;AAE5F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEhD,qBAAa,wBAAwB,CACnC,aAAa,SAAS,iBAAiB,GAAG,iBAAiB,EAC3D,MAAM,SAAS,KAAK,GAAG,KAAK,CAC5B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC1C,OAAO,CAAC,MAAM,CAA8B;IAE7B,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAQrE,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAQ3D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKvC"}
@@ -83,7 +83,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
83
83
  }
84
84
  async build() {
85
85
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
86
- const hashableFields = await this.hashableFields();
86
+ const hashableFields = await this.dataHashableFields();
87
87
  const hash = (await import_payload.PayloadBuilder.build(hashableFields)).$hash;
88
88
  const previousHashes = this._accounts.map((account) => account.previousHash);
89
89
  const metaHolder = {};
@@ -111,38 +111,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
111
111
  ];
112
112
  });
113
113
  }
114
- async error(payload) {
115
- const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
116
- (0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
117
- if (unwrappedPayload) {
118
- this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
119
- }
120
- return this;
121
- }
122
- async errors(errors) {
123
- if (errors) {
124
- await Promise.all(errors.map(async (error) => {
125
- if (error !== null) {
126
- await this.error(error);
127
- }
128
- }));
129
- }
130
- return this;
131
- }
132
- async hashableFields() {
114
+ async dataHashableFields() {
133
115
  const addresses = this._accounts.map((account) => (0, import_hex.hexFromArrayBuffer)(account.addressBytes, {
134
116
  prefix: false
135
117
  }));
136
118
  const previous_hashes = this._accounts.map((account) => account.previousHash ?? null);
137
119
  const payload_hashes = (0, import_assert.assertEx)(await this.getPayloadHashes(), "Missing payload_hashes");
138
120
  const payload_schemas = (0, import_assert.assertEx)(this._payload_schemas, "Missing payload_schemas");
139
- const result = {
140
- ...await super.hashableFields(),
121
+ const fields = {
141
122
  addresses,
142
123
  payload_hashes,
143
124
  payload_schemas,
144
125
  previous_hashes
145
126
  };
127
+ const result = await _BoundWitnessBuilder.dataHashableFields(this._schema, fields);
146
128
  (0, import_assert.assertEx)(result.payload_hashes?.length === result.payload_schemas?.length, "Payload hash/schema mismatch");
147
129
  (0, import_assert.assertEx)(!result.payload_hashes.some((hash) => !hash), () => "nulls found in hashes");
148
130
  (0, import_assert.assertEx)(!result.payload_schemas.some((schema) => !schema), "nulls found in schemas");
@@ -153,6 +135,24 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends import_payload.Payl
153
135
  }
154
136
  return result;
155
137
  }
138
+ async error(payload) {
139
+ const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
140
+ (0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
141
+ if (unwrappedPayload) {
142
+ this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
143
+ }
144
+ return this;
145
+ }
146
+ async errors(errors) {
147
+ if (errors) {
148
+ await Promise.all(errors.map(async (error) => {
149
+ if (error !== null) {
150
+ await this.error(error);
151
+ }
152
+ }));
153
+ }
154
+ return this;
155
+ }
156
156
  hashes(hashes, schema) {
157
157
  (0, import_assert.assertEx)(this.payloads.length === 0, "Can not set hashes when payloads already set");
158
158
  this._payloadHashes = hashes;
@@ -211,6 +211,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
211
211
  __name(this, "QueryBoundWitnessBuilder");
212
212
  }
213
213
  _query;
214
+ async dataHashableFields() {
215
+ return {
216
+ ...await super.dataHashableFields(),
217
+ query: (0, import_assert2.assertEx)(this._query, "No Query Specified").$hash,
218
+ schema: import_boundwitness_model2.QueryBoundWitnessSchema
219
+ };
220
+ }
214
221
  async hashableFields() {
215
222
  return {
216
223
  ...await super.hashableFields(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\ntype GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<T, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: T['payload_hashes']\n readonly payloadSchemas?: T['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: boolean | number\n}\n\nexport class BoundWitnessBuilder<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<T, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<T> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<T, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(payload: T, address: Address) {\n return payload.previous_hashes[this.addressIndex(payload, address)]\n }\n\n static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n async build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const hash = (await PayloadBuilder.build(hashableFields)).$hash\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const metaHolder: { $meta?: JsonObject } = {}\n\n if (hashableFields.addresses.length > 0) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.signatures = await this.signatures(hash, previousHashes)\n }\n\n if (this._sourceQuery) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.sourceQuery = this._sourceQuery\n }\n\n if (this._destination) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.destination = this._destination\n }\n\n const ret: WithMeta<T> = {\n ...hashableFields,\n $hash: hash,\n ...metaHolder,\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n override async hashableFields(): Promise<T> {\n const addresses = this._accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: T = {\n ...(await super.hashableFields()),\n addresses,\n payload_hashes,\n payload_schemas,\n previous_hashes,\n } as T\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (typeof this._timestamp === 'number') {\n result.timestamp = this._timestamp\n } else if (this._timestamp) {\n result.timestamp = Date.now()\n }\n\n return result\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash)))\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n }\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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.jsonPayload().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":["BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","_payload_schemas","map","payload","assertEx","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","runExclusive","hashableFields","hash","PayloadBuilder","$hash","previousHashes","account","metaHolder","length","ret","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","Promise","all","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","getPayloadHashes","payload_schemas","result","some","Date","now","hashes","query","witness","witnesses","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","sign","JSON","stringify","import_assert","import_boundwitness_model","import_payload","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","PayloadBuilder","build","payload","import_assert","import_payload","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getPayloadsWithoutQuery","compact","filterExclude","jsonPayload","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["export * from './Builder'\nexport * from './Query'\n","import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\ntype GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<T, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: T['payload_hashes']\n readonly payloadSchemas?: T['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: boolean | number\n}\n\nexport class BoundWitnessBuilder<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<T, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<T> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<T, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(payload: T, address: Address) {\n return payload.previous_hashes[this.addressIndex(payload, address)]\n }\n\n static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n async build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.dataHashableFields()\n const hash = (await PayloadBuilder.build(hashableFields)).$hash\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const metaHolder: { $meta?: JsonObject } = {}\n\n if (hashableFields.addresses.length > 0) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.signatures = await this.signatures(hash, previousHashes)\n }\n\n if (this._sourceQuery) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.sourceQuery = this._sourceQuery\n }\n\n if (this._destination) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.destination = this._destination\n }\n\n const ret = {\n ...hashableFields,\n $hash: hash,\n ...metaHolder,\n } as WithMeta<T>\n return [ret, this._payloads, this._errors]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>> {\n const addresses = this._accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const fields = { addresses, payload_hashes, payload_schemas, previous_hashes } as Omit<T, '$meta' | '$hash' | 'schema'>\n const result = await BoundWitnessBuilder.dataHashableFields<T>(this._schema, fields)\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (typeof this._timestamp === 'number') {\n result.timestamp = this._timestamp\n } else if (this._timestamp) {\n result.timestamp = Date.now()\n }\n\n return result as Omit<T, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash)))\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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.jsonPayload().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":["BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","_payload_schemas","map","payload","assertEx","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","runExclusive","hashableFields","dataHashableFields","hash","PayloadBuilder","$hash","previousHashes","account","metaHolder","length","ret","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","getPayloadHashes","payload_schemas","fields","result","_schema","some","Date","now","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","Promise","all","hashes","query","witness","witnesses","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","sign","JSON","stringify","import_assert","import_boundwitness_model","import_payload","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload","import_assert","import_payload","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getPayloadsWithoutQuery","compact","filterExclude","jsonPayload","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
@@ -57,7 +57,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase
57
57
  }
58
58
  async build() {
59
59
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
60
- const hashableFields = await this.hashableFields();
60
+ const hashableFields = await this.dataHashableFields();
61
61
  const hash = (await PayloadBuilder.build(hashableFields)).$hash;
62
62
  const previousHashes = this._accounts.map((account) => account.previousHash);
63
63
  const metaHolder = {};
@@ -85,38 +85,20 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase
85
85
  ];
86
86
  });
87
87
  }
88
- async error(payload) {
89
- const unwrappedPayload = await PayloadWrapper.unwrap(payload);
90
- assertEx(this._errorHashes === void 0, "Can not set errors when hashes already set");
91
- if (unwrappedPayload) {
92
- this._errors.push(assertEx(sortFields(unwrappedPayload)));
93
- }
94
- return this;
95
- }
96
- async errors(errors) {
97
- if (errors) {
98
- await Promise.all(errors.map(async (error) => {
99
- if (error !== null) {
100
- await this.error(error);
101
- }
102
- }));
103
- }
104
- return this;
105
- }
106
- async hashableFields() {
88
+ async dataHashableFields() {
107
89
  const addresses = this._accounts.map((account) => hexFromArrayBuffer(account.addressBytes, {
108
90
  prefix: false
109
91
  }));
110
92
  const previous_hashes = this._accounts.map((account) => account.previousHash ?? null);
111
93
  const payload_hashes = assertEx(await this.getPayloadHashes(), "Missing payload_hashes");
112
94
  const payload_schemas = assertEx(this._payload_schemas, "Missing payload_schemas");
113
- const result = {
114
- ...await super.hashableFields(),
95
+ const fields = {
115
96
  addresses,
116
97
  payload_hashes,
117
98
  payload_schemas,
118
99
  previous_hashes
119
100
  };
101
+ const result = await _BoundWitnessBuilder.dataHashableFields(this._schema, fields);
120
102
  assertEx(result.payload_hashes?.length === result.payload_schemas?.length, "Payload hash/schema mismatch");
121
103
  assertEx(!result.payload_hashes.some((hash) => !hash), () => "nulls found in hashes");
122
104
  assertEx(!result.payload_schemas.some((schema) => !schema), "nulls found in schemas");
@@ -127,6 +109,24 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder extends PayloadBuilderBase
127
109
  }
128
110
  return result;
129
111
  }
112
+ async error(payload) {
113
+ const unwrappedPayload = await PayloadWrapper.unwrap(payload);
114
+ assertEx(this._errorHashes === void 0, "Can not set errors when hashes already set");
115
+ if (unwrappedPayload) {
116
+ this._errors.push(assertEx(sortFields(unwrappedPayload)));
117
+ }
118
+ return this;
119
+ }
120
+ async errors(errors) {
121
+ if (errors) {
122
+ await Promise.all(errors.map(async (error) => {
123
+ if (error !== null) {
124
+ await this.error(error);
125
+ }
126
+ }));
127
+ }
128
+ return this;
129
+ }
130
130
  hashes(hashes, schema) {
131
131
  assertEx(this.payloads.length === 0, "Can not set hashes when payloads already set");
132
132
  this._payloadHashes = hashes;
@@ -185,6 +185,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
185
185
  __name(this, "QueryBoundWitnessBuilder");
186
186
  }
187
187
  _query;
188
+ async dataHashableFields() {
189
+ return {
190
+ ...await super.dataHashableFields(),
191
+ query: assertEx2(this._query, "No Query Specified").$hash,
192
+ schema: QueryBoundWitnessSchema
193
+ };
194
+ }
188
195
  async hashableFields() {
189
196
  return {
190
197
  ...await super.hashableFields(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\ntype GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<T, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: T['payload_hashes']\n readonly payloadSchemas?: T['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: boolean | number\n}\n\nexport class BoundWitnessBuilder<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<T, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<T> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<T, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(payload: T, address: Address) {\n return payload.previous_hashes[this.addressIndex(payload, address)]\n }\n\n static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n async build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const hash = (await PayloadBuilder.build(hashableFields)).$hash\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const metaHolder: { $meta?: JsonObject } = {}\n\n if (hashableFields.addresses.length > 0) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.signatures = await this.signatures(hash, previousHashes)\n }\n\n if (this._sourceQuery) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.sourceQuery = this._sourceQuery\n }\n\n if (this._destination) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.destination = this._destination\n }\n\n const ret: WithMeta<T> = {\n ...hashableFields,\n $hash: hash,\n ...metaHolder,\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n override async hashableFields(): Promise<T> {\n const addresses = this._accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const result: T = {\n ...(await super.hashableFields()),\n addresses,\n payload_hashes,\n payload_schemas,\n previous_hashes,\n } as T\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (typeof this._timestamp === 'number') {\n result.timestamp = this._timestamp\n } else if (this._timestamp) {\n result.timestamp = Date.now()\n }\n\n return result\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash)))\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n }\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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.jsonPayload().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":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","sortFields","PayloadBuilder","PayloadBuilderBase","PayloadWrapper","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","_payload_schemas","map","payload","assertEx","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","runExclusive","hashableFields","hash","PayloadBuilder","$hash","previousHashes","account","metaHolder","length","ret","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","Promise","all","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","getPayloadHashes","payload_schemas","result","some","Date","now","hashes","query","witness","witnesses","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","sign","JSON","stringify","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","PayloadBuilder","build","payload","assertEx","compact","BoundWitnessWrapper","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","jsonPayload","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
1
+ {"version":3,"sources":["../../src/Builder.ts","../../src/Query/QueryBoundWitnessBuilder.ts","../../src/Query/QueryBoundWitnessWrapper.ts"],"sourcesContent":["import { toArrayBuffer, toUint8Array } from '@xylabs/arraybuffer'\nimport { assertEx } from '@xylabs/assert'\nimport { Address, Hash, hexFromArrayBuffer } from '@xylabs/hex'\nimport { JsonObject } from '@xylabs/object'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadBuilderBase, PayloadBuilderOptions, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\ntype GeneratedBoundWitnessFields = 'addresses' | 'payload_hashes' | 'payload_schemas' | 'previous_hashes'\n\nexport interface BoundWitnessBuilderOptions<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload>\n extends Omit<PayloadBuilderOptions<Omit<T, GeneratedBoundWitnessFields>>, 'schema'> {\n readonly accounts?: AccountInstance[]\n readonly destination?: string[]\n readonly payloadHashes?: T['payload_hashes']\n readonly payloadSchemas?: T['payload_schemas']\n readonly payloads?: TPayload[]\n readonly sourceQuery?: Hash\n readonly timestamp?: boolean | number\n}\n\nexport class BoundWitnessBuilder<T extends BoundWitness = BoundWitness, TPayload extends Payload = Payload> extends PayloadBuilderBase<\n Omit<T, GeneratedBoundWitnessFields>,\n BoundWitnessBuilderOptions<T> & { schema: BoundWitnessSchema }\n> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[]\n private _destination?: string[]\n private _errorHashes?: string[]\n private _errors: ModuleError[] = []\n private _payloadHashes?: string[]\n private _payloadSchemas?: string[]\n private _payloads: TPayload[]\n private _sourceQuery?: Hash\n private _timestamp: boolean | number\n\n constructor(options?: BoundWitnessBuilderOptions<T, TPayload>) {\n super({ ...options, schema: BoundWitnessSchema })\n const { accounts, payloadHashes, payloadSchemas, payloads, sourceQuery, timestamp, destination } = options ?? {}\n this._accounts = accounts ?? []\n this._payloadHashes = payloadHashes\n this._payloadSchemas = payloadSchemas\n this._payloads = payloads ?? []\n this._sourceQuery = sourceQuery\n this._destination = destination\n this._timestamp = timestamp ?? true\n }\n\n private get _payload_schemas(): string[] {\n return (\n this._payloadSchemas ??\n this._payloads.map((payload) => {\n return assertEx(payload.schema, () => this.missingSchemaMessage(payload))\n })\n )\n }\n\n static addressIndex<T extends BoundWitness>(payload: T, address: Address) {\n const index = payload.addresses.indexOf(address)\n if (index === -1) {\n throw new Error('Invalid address')\n }\n return index\n }\n\n static previousHash<T extends BoundWitness>(payload: T, address: Address) {\n return payload.previous_hashes[this.addressIndex(payload, address)]\n }\n\n static signature<T extends BoundWitness>(payload: T, address: Address) {\n return payload.$meta.signatures[this.addressIndex(payload, address)]\n }\n\n async build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]> {\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.dataHashableFields()\n const hash = (await PayloadBuilder.build(hashableFields)).$hash\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const metaHolder: { $meta?: JsonObject } = {}\n\n if (hashableFields.addresses.length > 0) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.signatures = await this.signatures(hash, previousHashes)\n }\n\n if (this._sourceQuery) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.sourceQuery = this._sourceQuery\n }\n\n if (this._destination) {\n metaHolder.$meta = metaHolder.$meta ?? {}\n metaHolder.$meta.destination = this._destination\n }\n\n const ret = {\n ...hashableFields,\n $hash: hash,\n ...metaHolder,\n } as WithMeta<T>\n return [ret, this._payloads, this._errors]\n })\n }\n\n override async dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>> {\n const addresses = this._accounts.map((account) => hexFromArrayBuffer(account.addressBytes, { prefix: false }))\n const previous_hashes = this._accounts.map((account) => account.previousHash ?? null)\n const payload_hashes = assertEx(await this.getPayloadHashes(), 'Missing payload_hashes')\n const payload_schemas = assertEx(this._payload_schemas, 'Missing payload_schemas')\n const fields = { addresses, payload_hashes, payload_schemas, previous_hashes } as Omit<T, '$meta' | '$hash' | 'schema'>\n const result = await BoundWitnessBuilder.dataHashableFields<T>(this._schema, fields)\n\n assertEx(result.payload_hashes?.length === result.payload_schemas?.length, 'Payload hash/schema mismatch')\n\n assertEx(!result.payload_hashes.some((hash) => !hash), () => 'nulls found in hashes')\n\n assertEx(!result.payload_schemas.some((schema) => !schema), 'nulls found in schemas')\n\n if (typeof this._timestamp === 'number') {\n result.timestamp = this._timestamp\n } else if (this._timestamp) {\n result.timestamp = Date.now()\n }\n\n return result as Omit<T, '$meta' | '$hash'>\n }\n\n async error(payload?: ModuleError) {\n const unwrappedPayload = await PayloadWrapper.unwrap(payload)\n assertEx(this._errorHashes === undefined, 'Can not set errors when hashes already set')\n if (unwrappedPayload) {\n this._errors.push(assertEx(sortFields(unwrappedPayload)))\n }\n return this\n }\n\n async errors(errors?: (ModuleError | null)[]) {\n if (errors) {\n await Promise.all(\n errors.map(async (error) => {\n if (error !== null) {\n await this.error(error)\n }\n }),\n )\n }\n return this\n }\n\n hashes(hashes: Hash[], schema: Schema[]) {\n assertEx(this.payloads.length === 0, 'Can not set hashes when payloads already set')\n this._payloadHashes = hashes\n this._payloadSchemas = schema\n return this\n }\n\n async payload(payload?: TPayload) {\n const unwrappedPayload = await PayloadWrapper.unwrap<TPayload>(payload)\n assertEx(this._payloadHashes === undefined, 'Can not set payloads when hashes already set')\n if (unwrappedPayload) {\n this._payloads.push(assertEx(sortFields<TPayload>(unwrappedPayload)))\n }\n return this\n }\n\n async payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n await Promise.all(\n payloads.map(async (payload) => {\n if (payload !== null) {\n await this.payload(payload)\n }\n }),\n )\n return this\n }\n\n sourceQuery(query?: Hash) {\n this._sourceQuery = query\n return this\n }\n\n witness(account: AccountInstance) {\n this._accounts?.push(account)\n return this\n }\n\n witnesses(accounts: AccountInstance[]) {\n this._accounts?.push(...accounts)\n return this\n }\n\n protected async signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]> {\n const hash = toArrayBuffer(_hash)\n const previousHashesBytes = previousHashes.map((ph) => (ph ? toUint8Array(ph) : undefined))\n return await Promise.all(this._accounts.map(async (account, index) => hexFromArrayBuffer(await account.sign(hash, previousHashesBytes[index]))))\n }\n\n private async getPayloadHashes(): Promise<string[]> {\n return this._payloadHashes ?? (await Promise.all(this._payloads.map(async (payload) => (await PayloadBuilder.build(payload)).$hash)))\n }\n\n private missingSchemaMessage(payload: Payload) {\n return `Builder: Missing Schema\\n${JSON.stringify(payload, null, 2)}`\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Query, WithMeta } from '@xyo-network/payload-model'\n\nimport { BoundWitnessBuilder } from '../Builder'\n\nexport class QueryBoundWitnessBuilder<\n TBoundWitness extends QueryBoundWitness = QueryBoundWitness,\n TQuery extends Query = Query,\n> extends BoundWitnessBuilder<TBoundWitness> {\n private _query: WithMeta<TQuery> | undefined\n\n override async dataHashableFields(): Promise<Omit<TBoundWitness, '$hash' | '$meta'>> {\n return {\n ...(await super.dataHashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as Omit<TBoundWitness, '$hash' | '$meta'>\n }\n\n override async hashableFields(): Promise<WithMeta<TBoundWitness>> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(this._query, 'No Query Specified').$hash,\n schema: QueryBoundWitnessSchema,\n } as WithMeta<TBoundWitness>\n }\n\n async query<T extends TQuery>(query: T) {\n this._query = await PayloadBuilder.build(query)\n await this.payload(this._query)\n return this\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadBuilder } from '@xyo-network/payload'\nimport { Payload, Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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.jsonPayload().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":["toArrayBuffer","toUint8Array","assertEx","hexFromArrayBuffer","BoundWitnessSchema","sortFields","PayloadBuilder","PayloadBuilderBase","PayloadWrapper","Mutex","BoundWitnessBuilder","PayloadBuilderBase","_buildMutex","Mutex","_accounts","_destination","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","options","schema","BoundWitnessSchema","accounts","payloadHashes","payloadSchemas","payloads","sourceQuery","timestamp","destination","_payload_schemas","map","payload","assertEx","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","runExclusive","hashableFields","dataHashableFields","hash","PayloadBuilder","$hash","previousHashes","account","metaHolder","length","ret","hexFromArrayBuffer","addressBytes","prefix","payload_hashes","getPayloadHashes","payload_schemas","fields","result","_schema","some","Date","now","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","Promise","all","hashes","query","witness","witnesses","_hash","toArrayBuffer","previousHashesBytes","ph","toUint8Array","sign","JSON","stringify","assertEx","QueryBoundWitnessSchema","PayloadBuilder","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","dataHashableFields","query","assertEx","$hash","schema","QueryBoundWitnessSchema","hashableFields","PayloadBuilder","build","payload","assertEx","compact","BoundWitnessWrapper","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","jsonPayload","query","PayloadWrapper","wrap","getQuery","payloadMap","payloadsDataHashMap","boundwitness"]}
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,9 @@ export declare class BoundWitnessBuilder<T extends BoundWitness = BoundWitness,
32
32
  static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
33
  static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
34
  build(): Promise<[WithMeta<T>, TPayload[], ModuleError[]]>;
35
+ dataHashableFields(): Promise<Omit<T, '$meta' | '$hash'>>;
35
36
  error(payload?: ModuleError): Promise<this>;
36
37
  errors(errors?: (ModuleError | null)[]): Promise<this>;
37
- hashableFields(): Promise<T>;
38
38
  hashes(hashes: Hash[], schema: Schema[]): this;
39
39
  payload(payload?: TPayload): Promise<this>;
40
40
  payloads(payloads?: (TPayload | null)[]): Promise<this>;
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"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"}