@xyo-network/boundwitness-builder 2.88.3 → 2.89.0-rc.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 (49) hide show
  1. package/dist/browser/Builder.d.cts +13 -10
  2. package/dist/browser/Builder.d.cts.map +1 -1
  3. package/dist/browser/Builder.d.mts +13 -10
  4. package/dist/browser/Builder.d.mts.map +1 -1
  5. package/dist/browser/Builder.d.ts +13 -10
  6. package/dist/browser/Builder.d.ts.map +1 -1
  7. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts +1 -1
  8. package/dist/browser/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  9. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts +1 -1
  10. package/dist/browser/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  11. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts +1 -1
  12. package/dist/browser/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  13. package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts +1 -3
  14. package/dist/browser/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
  15. package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts +1 -3
  16. package/dist/browser/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
  17. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts +1 -3
  18. package/dist/browser/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
  19. package/dist/browser/index.cjs +50 -50
  20. package/dist/browser/index.cjs.map +1 -1
  21. package/dist/browser/index.js +53 -53
  22. package/dist/browser/index.js.map +1 -1
  23. package/dist/node/Builder.d.cts +13 -10
  24. package/dist/node/Builder.d.cts.map +1 -1
  25. package/dist/node/Builder.d.mts +13 -10
  26. package/dist/node/Builder.d.mts.map +1 -1
  27. package/dist/node/Builder.d.ts +13 -10
  28. package/dist/node/Builder.d.ts.map +1 -1
  29. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts +1 -1
  30. package/dist/node/Query/QueryBoundWitnessBuilder.d.cts.map +1 -1
  31. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts +1 -1
  32. package/dist/node/Query/QueryBoundWitnessBuilder.d.mts.map +1 -1
  33. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts +1 -1
  34. package/dist/node/Query/QueryBoundWitnessBuilder.d.ts.map +1 -1
  35. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts +1 -3
  36. package/dist/node/Query/QueryBoundWitnessWrapper.d.cts.map +1 -1
  37. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts +1 -3
  38. package/dist/node/Query/QueryBoundWitnessWrapper.d.mts.map +1 -1
  39. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts +1 -3
  40. package/dist/node/Query/QueryBoundWitnessWrapper.d.ts.map +1 -1
  41. package/dist/node/index.cjs +50 -52
  42. package/dist/node/index.cjs.map +1 -1
  43. package/dist/node/index.js +53 -55
  44. package/dist/node/index.js.map +1 -1
  45. package/package.json +12 -11
  46. package/src/Builder.ts +59 -52
  47. package/src/Query/QueryBoundWitnessBuilder.ts +7 -7
  48. package/src/Query/QueryBoundWitnessValidator.ts +3 -3
  49. package/src/Query/QueryBoundWitnessWrapper.ts +21 -15
@@ -1,7 +1,8 @@
1
+ import { Address, Hash } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,19 +28,21 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
- error(payload?: ModuleError): this;
32
- errors(errors?: (ModuleError | null)[]): this;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
35
+ error(payload?: ModuleError): Promise<this>;
36
+ errors(errors?: (ModuleError | null)[]): Promise<this>;
33
37
  hashableFields(): Promise<TBoundWitness>;
34
- hashes(hashes: string[], schema: string[]): this;
35
- payload(payload?: TPayload): this;
36
- payloads(payloads?: (TPayload | null)[]): this;
37
- sourceQuery(hash?: string): this;
38
+ hashes(hashes: Hash[], schema: Schema[]): this;
39
+ payload(payload?: TPayload): Promise<this>;
40
+ payloads(payloads?: (TPayload | null)[]): Promise<this>;
41
+ sourceQuery(hash?: Hash): this;
38
42
  witness(account: AccountInstance): this;
39
43
  witnesses(accounts: AccountInstance[]): this;
40
- protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
44
+ protected signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,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;IAgC9C,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;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,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,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,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"}
@@ -1,7 +1,8 @@
1
+ import { Address, Hash } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,19 +28,21 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
- error(payload?: ModuleError): this;
32
- errors(errors?: (ModuleError | null)[]): this;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
35
+ error(payload?: ModuleError): Promise<this>;
36
+ errors(errors?: (ModuleError | null)[]): Promise<this>;
33
37
  hashableFields(): Promise<TBoundWitness>;
34
- hashes(hashes: string[], schema: string[]): this;
35
- payload(payload?: TPayload): this;
36
- payloads(payloads?: (TPayload | null)[]): this;
37
- sourceQuery(hash?: string): this;
38
+ hashes(hashes: Hash[], schema: Schema[]): this;
39
+ payload(payload?: TPayload): Promise<this>;
40
+ payloads(payloads?: (TPayload | null)[]): Promise<this>;
41
+ sourceQuery(hash?: Hash): this;
38
42
  witness(account: AccountInstance): this;
39
43
  witnesses(accounts: AccountInstance[]): this;
40
- protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
44
+ protected signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,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;IAgC9C,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;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,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,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,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"}
@@ -1,7 +1,8 @@
1
+ import { Address, Hash } from '@xylabs/hex';
1
2
  import { Logger } from '@xylabs/logger';
2
3
  import { AccountInstance } from '@xyo-network/account-model';
3
4
  import { BoundWitness } from '@xyo-network/boundwitness-model';
4
- import { ModuleError, Payload } from '@xyo-network/payload-model';
5
+ import { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model';
5
6
  export interface BoundWitnessBuilderConfig {
6
7
  /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */
7
8
  /** @deprecated We will be removing support for inlinePayloads soon */
@@ -27,19 +28,21 @@ export declare class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{
27
28
  private _timestamp;
28
29
  constructor(config?: BoundWitnessBuilderConfig, logger?: Logger | undefined);
29
30
  private get _payload_schemas();
30
- build(meta?: boolean): Promise<[TBoundWitness, TPayload[], ModuleError[]]>;
31
- error(payload?: ModuleError): this;
32
- errors(errors?: (ModuleError | null)[]): this;
31
+ static addressIndex<T extends BoundWitness>(payload: T, address: Address): number;
32
+ static previousHash<T extends BoundWitness>(payload: T, address: Address): string | null;
33
+ static signature<T extends BoundWitness>(payload: T, address: Address): string;
34
+ build(meta?: boolean): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]>;
35
+ error(payload?: ModuleError): Promise<this>;
36
+ errors(errors?: (ModuleError | null)[]): Promise<this>;
33
37
  hashableFields(): Promise<TBoundWitness>;
34
- hashes(hashes: string[], schema: string[]): this;
35
- payload(payload?: TPayload): this;
36
- payloads(payloads?: (TPayload | null)[]): this;
37
- sourceQuery(hash?: string): this;
38
+ hashes(hashes: Hash[], schema: Schema[]): this;
39
+ payload(payload?: TPayload): Promise<this>;
40
+ payloads(payloads?: (TPayload | null)[]): Promise<this>;
41
+ sourceQuery(hash?: Hash): this;
38
42
  witness(account: AccountInstance): this;
39
43
  witnesses(accounts: AccountInstance[]): this;
40
- protected signatures(_hash: string, previousHashes: (string | ArrayBuffer | undefined)[]): Promise<string[]>;
44
+ protected signatures(_hash: Hash, previousHashes: (Hash | ArrayBuffer | undefined)[]): Promise<string[]>;
41
45
  private getPayloadHashes;
42
- private inlinePayloads;
43
46
  private missingSchemaMessage;
44
47
  }
45
48
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAIlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGjE,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,OAAO,KAAK,gBAAgB,GAO3B;IAEK,KAAK,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IAgC9E,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;IAgC9C,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;IAUvC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM;IAKzB,OAAO,CAAC,OAAO,EAAE,eAAe;IAKhC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE;cAKrB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMpG,gBAAgB;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,oBAAoB;CAG7B"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/Builder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAsB,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAsB,MAAM,iCAAiC,CAAA;AAGlF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,WAAW,yBAAyB;IACxC,8GAA8G;IAC9G,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,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;IAYtI,QAAQ,CAAC,MAAM,EAAE,yBAAyB;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ5B,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,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAa;gBAGpB,MAAM,GAAE,yBAAqD,EACnD,MAAM,CAAC,oBAAQ;IAGpC,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,CAAC,IAAI,UAAQ,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IA6BlF,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW;IAS3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE;IAatC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAgC9C,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,IAAI,CAAC,EAAE,IAAI;IAKvB,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"}
@@ -4,6 +4,6 @@ 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
6
  hashableFields(): Promise<TBoundWitness>;
7
- query<T extends TQuery>(query: T): this;
7
+ query<T extends TQuery>(query: T): Promise<this>;
8
8
  }
9
9
  //# 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;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,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,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
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"}
@@ -4,6 +4,6 @@ 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
6
  hashableFields(): Promise<TBoundWitness>;
7
- query<T extends TQuery>(query: T): this;
7
+ query<T extends TQuery>(query: T): Promise<this>;
8
8
  }
9
9
  //# 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;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,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,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
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"}
@@ -4,6 +4,6 @@ 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
6
  hashableFields(): Promise<TBoundWitness>;
7
- query<T extends TQuery>(query: T): this;
7
+ query<T extends TQuery>(query: T): Promise<this>;
8
8
  }
9
9
  //# 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;AAC5F,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAGlD,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,CAAoC;IAEnC,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAQvD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC;CAKjC"}
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"}
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
5
  export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
6
6
  private _payloadsWithoutQuery;
7
7
  private _query;
8
- private _resultSet;
9
- private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
8
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
9
  getQuery(): Promise<T>;
12
10
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,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;AAE7D,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;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
5
  export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
6
6
  private _payloadsWithoutQuery;
7
7
  private _query;
8
- private _resultSet;
9
- private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
8
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
9
  getQuery(): Promise<T>;
12
10
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,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;AAE7D,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;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -5,9 +5,7 @@ import { PayloadWrapper } from '@xyo-network/payload-wrapper';
5
5
  export declare class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
6
6
  private _payloadsWithoutQuery;
7
7
  private _query;
8
- private _resultSet;
9
- private isQueryBoundWitnessWrapper;
10
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T>;
8
+ static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): Promise<QueryBoundWitnessWrapper<T>>;
11
9
  getQuery(): Promise<T>;
12
10
  getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]>;
13
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,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;AAE7D,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;IAerG,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAaxE"}
1
+ {"version":3,"file":"QueryBoundWitnessWrapper.d.ts","sourceRoot":"","sources":["../../../src/Query/QueryBoundWitnessWrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAGvE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,qBAAa,wBAAwB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CAAE,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC3G,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,MAAM,CAAe;WAEhB,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAqBpH,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC;IAMb,kBAAkB,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;CAexE"}
@@ -32,7 +32,6 @@ var import_arraybuffer = require("@xylabs/arraybuffer");
32
32
  var import_assert = require("@xylabs/assert");
33
33
  var import_hex = require("@xylabs/hex");
34
34
  var import_boundwitness_model = require("@xyo-network/boundwitness-model");
35
- var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
36
35
  var import_hash = require("@xyo-network/hash");
37
36
  var import_payload = require("@xyo-network/payload");
38
37
  var import_async_mutex = require("async-mutex");
@@ -66,28 +65,37 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
66
65
  return (0, import_assert.assertEx)(payload.schema, () => this.missingSchemaMessage(payload));
67
66
  });
68
67
  }
68
+ static addressIndex(payload, address) {
69
+ const index = payload.addresses.indexOf(address);
70
+ if (index === -1) {
71
+ throw new Error("Invalid address");
72
+ }
73
+ return index;
74
+ }
75
+ static previousHash(payload, address) {
76
+ return payload.previous_hashes[this.addressIndex(payload, address)];
77
+ }
78
+ static signature(payload, address) {
79
+ return payload.$meta.signatures[this.addressIndex(payload, address)];
80
+ }
69
81
  async build(meta = false) {
70
82
  if (meta) {
71
83
  console.log("BoundWitnessBuilder: Calling build with meta=true will be disallowed soon");
72
84
  }
73
85
  return await _BoundWitnessBuilder._buildMutex.runExclusive(async () => {
74
86
  const hashableFields = await this.hashableFields();
75
- const _hash = await import_boundwitness_wrapper.BoundWitnessWrapper.hashAsync(hashableFields);
87
+ const hash = (await import_payload.PayloadBuilder.build(hashableFields)).$hash;
76
88
  const previousHashes = this._accounts.map((account) => account.previousHash);
89
+ const meta2 = hashableFields.addresses.length > 0 ? {
90
+ $meta: {
91
+ signatures: await this.signatures(hash, previousHashes)
92
+ }
93
+ } : {};
77
94
  const ret = {
78
95
  ...hashableFields,
79
- _signatures: await this.signatures(_hash, previousHashes)
96
+ $hash: hash,
97
+ ...meta2
80
98
  };
81
- if (meta ?? this.config?.meta) {
82
- const bwWithMeta = ret;
83
- bwWithMeta._client = "js";
84
- bwWithMeta._hash = _hash;
85
- bwWithMeta._timestamp = this._timestamp;
86
- }
87
- if (this.config.inlinePayloads) {
88
- const anyRet = ret;
89
- anyRet._payloads = this.inlinePayloads();
90
- }
91
99
  return [
92
100
  ret,
93
101
  this._payloads,
@@ -95,19 +103,21 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
95
103
  ];
96
104
  });
97
105
  }
98
- error(payload) {
99
- const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
106
+ async error(payload) {
107
+ const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
100
108
  (0, import_assert.assertEx)(this._errorHashes === void 0, "Can not set errors when hashes already set");
101
109
  if (unwrappedPayload) {
102
110
  this._errors.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
103
111
  }
104
112
  return this;
105
113
  }
106
- errors(errors) {
107
- for (const error of errors ?? []) {
108
- if (error !== null) {
109
- this.error(error);
110
- }
114
+ async errors(errors) {
115
+ if (errors) {
116
+ await Promise.all(errors.map(async (error) => {
117
+ if (error !== null) {
118
+ await this.error(error);
119
+ }
120
+ }));
111
121
  }
112
122
  return this;
113
123
  }
@@ -142,21 +152,21 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
142
152
  this._payloadSchemas = schema;
143
153
  return this;
144
154
  }
145
- payload(payload) {
146
- const unwrappedPayload = import_payload.PayloadWrapper.unwrap(payload);
155
+ async payload(payload) {
156
+ const unwrappedPayload = await import_payload.PayloadWrapper.unwrap(payload);
147
157
  (0, import_assert.assertEx)(this._payloadHashes === void 0, "Can not set payloads when hashes already set");
148
158
  if (unwrappedPayload) {
149
159
  this._payloads.push((0, import_assert.assertEx)((0, import_hash.sortFields)(unwrappedPayload)));
150
160
  }
151
161
  return this;
152
162
  }
153
- payloads(payloads) {
163
+ async payloads(payloads) {
154
164
  if (payloads)
155
- for (const payload of payloads) {
165
+ await Promise.all(payloads.map(async (payload) => {
156
166
  if (payload !== null) {
157
- this.payload(payload);
167
+ await this.payload(payload);
158
168
  }
159
- }
169
+ }));
160
170
  return this;
161
171
  }
162
172
  sourceQuery(hash) {
@@ -177,16 +187,7 @@ var BoundWitnessBuilder = class _BoundWitnessBuilder {
177
187
  return await Promise.all(this._accounts.map(async (account, index) => (0, import_hex.hexFromArrayBuffer)(await account.sign(hash, previousHashesBytes[index]))));
178
188
  }
179
189
  async getPayloadHashes() {
180
- return this._payloadHashes ?? await Promise.all(this._payloads.map((payload) => import_hash.PayloadHasher.hashAsync(payload)));
181
- }
182
- inlinePayloads() {
183
- console.log("BoundWitnessBuilder: Using inlinePayloads will soon be disallowed");
184
- return this._payloads.map((payload, index) => {
185
- return {
186
- ...payload,
187
- schema: this._payload_schemas[index]
188
- };
189
- });
190
+ return this._payloadHashes ?? await Promise.all(this._payloads.map(async (payload) => (await import_payload.PayloadBuilder.build(payload)).$hash));
190
191
  }
191
192
  missingSchemaMessage(payload) {
192
193
  return `Builder: Missing Schema
@@ -197,7 +198,7 @@ ${JSON.stringify(payload, null, 2)}`;
197
198
  // src/Query/QueryBoundWitnessBuilder.ts
198
199
  var import_assert2 = require("@xylabs/assert");
199
200
  var import_boundwitness_model2 = require("@xyo-network/boundwitness-model");
200
- var import_payload_wrapper = require("@xyo-network/payload-wrapper");
201
+ var import_payload2 = require("@xyo-network/payload");
201
202
  var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
202
203
  static {
203
204
  __name(this, "QueryBoundWitnessBuilder");
@@ -206,13 +207,13 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
206
207
  async hashableFields() {
207
208
  return {
208
209
  ...await super.hashableFields(),
209
- query: (0, import_assert2.assertEx)(await this._query?.hashAsync(), "No Query Specified"),
210
+ query: (0, import_assert2.assertEx)(this._query, "No Query Specified").$hash,
210
211
  schema: import_boundwitness_model2.QueryBoundWitnessSchema
211
212
  };
212
213
  }
213
- query(query) {
214
- this._query = import_payload_wrapper.PayloadWrapper.wrap(query);
215
- this.payload(this._query.payload());
214
+ async query(query) {
215
+ this._query = await import_payload2.PayloadBuilder.build(query);
216
+ await this.payload(this._query);
216
217
  return this;
217
218
  }
218
219
  };
@@ -220,35 +221,34 @@ var QueryBoundWitnessBuilder = class extends BoundWitnessBuilder {
220
221
  // src/Query/QueryBoundWitnessWrapper.ts
221
222
  var import_assert3 = require("@xylabs/assert");
222
223
  var import_lodash = require("@xylabs/lodash");
223
- var import_boundwitness_wrapper2 = require("@xyo-network/boundwitness-wrapper");
224
+ var import_boundwitness_wrapper = require("@xyo-network/boundwitness-wrapper");
224
225
  var import_hash2 = require("@xyo-network/hash");
225
- var import_payload_wrapper2 = require("@xyo-network/payload-wrapper");
226
- var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper2.BoundWitnessWrapper {
226
+ var import_payload3 = require("@xyo-network/payload");
227
+ var import_payload_wrapper = require("@xyo-network/payload-wrapper");
228
+ var QueryBoundWitnessWrapper = class _QueryBoundWitnessWrapper extends import_boundwitness_wrapper.BoundWitnessWrapper {
227
229
  static {
228
230
  __name(this, "QueryBoundWitnessWrapper");
229
231
  }
230
232
  _payloadsWithoutQuery;
231
233
  _query;
232
- _resultSet;
233
- isQueryBoundWitnessWrapper = true;
234
- static parseQuery(obj, payloads) {
234
+ static async parseQuery(obj, payloads) {
235
235
  (0, import_assert3.assertEx)(!Array.isArray(obj), "Array can not be converted to QueryBoundWitnessWrapper");
236
236
  switch (typeof obj) {
237
237
  case "object": {
238
238
  const castWrapper = obj;
239
- const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(obj, payloads);
239
+ const wrapper = castWrapper instanceof _QueryBoundWitnessWrapper ? castWrapper : new _QueryBoundWitnessWrapper(await import_payload3.PayloadBuilder.build(obj), payloads ? await Promise.all(payloads.map((payload) => import_payload3.PayloadBuilder.build(payload))) : void 0);
240
240
  return wrapper;
241
241
  }
242
242
  }
243
243
  throw new Error(`Unable to parse [${typeof obj}]`);
244
244
  }
245
245
  async getQuery() {
246
- const payloadMap = await this.allPayloadMap();
246
+ const payloadMap = await this.payloadsDataHashMap();
247
247
  this._query = this._query ?? payloadMap[this.boundwitness.query];
248
248
  return (0, import_assert3.assertEx)(this._query, `Missing Query [${this.boundwitness}]`);
249
249
  }
250
250
  async getWrappedPayloads() {
251
- this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? (0, import_lodash.compact)((await import_hash2.PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()), this.payload().query)).map((payload) => import_payload_wrapper2.PayloadWrapper.wrap(payload)));
251
+ this._payloadsWithoutQuery = this._payloadsWithoutQuery ?? await Promise.all((0, import_lodash.compact)((await import_hash2.PayloadHasher.filterExclude((await super.getWrappedPayloads()).map((wrapper) => wrapper.jsonPayload()), this.jsonPayload().query)).map((payload) => import_payload_wrapper.PayloadWrapper.wrap(payload))));
252
252
  return this._payloadsWithoutQuery;
253
253
  }
254
254
  };
@@ -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 { hexFromArrayBuffer } from '@xylabs/hex'\nimport { Logger } from '@xylabs/logger'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'\nimport { PayloadHasher, sortFields } from '@xyo-network/hash'\nimport { PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n /** @deprecated We will be removing support for inlinePayloads soon */\n readonly inlinePayloads?: boolean\n /** @deprecated We will be removing support for meta soon */\n readonly meta?: boolean\n /** @deprecated We will be removing support for timestamp soon */\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _sourceQuery: string | undefined\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\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 async build(meta = false): Promise<[TBoundWitness, TPayload[], ModuleError[]]> {\n if (meta) {\n console.log('BoundWitnessBuilder: Calling build with meta=true will be disallowed soon')\n }\n return await BoundWitnessBuilder._buildMutex.runExclusive(async () => {\n const hashableFields = await this.hashableFields()\n const _hash = await BoundWitnessWrapper.hashAsync(hashableFields)\n\n /* get all the previousHashes to verify atomic signing */\n const previousHashes = this._accounts.map((account) => account.previousHash)\n\n const ret: TBoundWitness = {\n ...hashableFields,\n _signatures: await this.signatures(_hash, previousHashes),\n }\n if (meta ?? this.config?.meta) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bwWithMeta = ret as any\n bwWithMeta._client = 'js'\n bwWithMeta._hash = _hash\n bwWithMeta._timestamp = this._timestamp\n }\n if (this.config.inlinePayloads) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const anyRet = ret as any\n //leaving this in here to prevent breaking code (for now)\n anyRet._payloads = this.inlinePayloads()\n }\n return [ret, this._payloads, this._errors]\n })\n }\n\n error(payload?: ModuleError) {\n const unwrappedPayload = 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 errors(errors?: (ModuleError | null)[]) {\n for (const error of errors ?? []) {\n if (error !== null) {\n this.error(error)\n }\n }\n return this\n }\n\n async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) =>\n account.addressBytes ? hexFromArrayBuffer(account.addressBytes, { prefix: false }) : undefined,\n )\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: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\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 (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n if (this._sourceQuery) {\n result.sourceQuery = this._sourceQuery\n }\n\n return result\n }\n\n hashes(hashes: string[], schema: string[]) {\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 payload(payload?: TPayload) {\n const unwrappedPayload = 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 payloads(payloads?: (TPayload | null)[]) {\n if (payloads)\n for (const payload of payloads) {\n if (payload !== null) {\n this.payload(payload)\n }\n }\n return this\n }\n\n sourceQuery(hash?: string) {\n this._sourceQuery = hash\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: string, previousHashes: (string | 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((payload) => PayloadHasher.hashAsync(payload))))\n }\n\n private inlinePayloads() {\n console.log('BoundWitnessBuilder: Using inlinePayloads will soon be disallowed')\n\n return this._payloads.map<TPayload>((payload, index) => {\n return {\n ...payload,\n schema: this._payload_schemas[index],\n }\n })\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 { Query } from '@xyo-network/payload-model'\nimport { PayloadWrapper } from '@xyo-network/payload-wrapper'\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: PayloadWrapper<TQuery> | undefined\n\n override async hashableFields(): Promise<TBoundWitness> {\n return {\n ...(await super.hashableFields()),\n query: assertEx(await this._query?.hashAsync(), 'No Query Specified'),\n schema: QueryBoundWitnessSchema,\n }\n }\n\n query<T extends TQuery>(query: T) {\n this._query = PayloadWrapper.wrap(query)\n this.payload(this._query.payload())\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 { PayloadHasher } from '@xyo-network/hash'\nimport { Payload, PayloadSetPayload, 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 private _resultSet: PayloadSetPayload | undefined\n\n private isQueryBoundWitnessWrapper = true\n\n static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): 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 = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)\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 getQuery(): Promise<T> {\n const payloadMap = await this.allPayloadMap()\n this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)\n return assertEx(this._query, `Missing Query [${this.boundwitness}]`)\n }\n\n override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),\n this.payload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n )\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","_buildMutex","Mutex","_accounts","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","config","inlinePayloads","logger","Date","now","_payload_schemas","map","payload","assertEx","schema","missingSchemaMessage","build","meta","console","log","runExclusive","hashableFields","_hash","BoundWitnessWrapper","hashAsync","previousHashes","account","previousHash","ret","_signatures","signatures","bwWithMeta","_client","anyRet","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","addresses","addressBytes","hexFromArrayBuffer","prefix","previous_hashes","payload_hashes","getPayloadHashes","payload_schemas","result","BoundWitnessSchema","length","some","hash","timestamp","sourceQuery","hashes","payloads","witness","witnesses","accounts","toArrayBuffer","previousHashesBytes","ph","toUint8Array","Promise","all","index","sign","PayloadHasher","JSON","stringify","import_assert","import_boundwitness_model","QueryBoundWitnessBuilder","BoundWitnessBuilder","_query","hashableFields","query","assertEx","hashAsync","schema","QueryBoundWitnessSchema","PayloadWrapper","wrap","payload","import_assert","import_boundwitness_wrapper","import_hash","import_payload_wrapper","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","_resultSet","isQueryBoundWitnessWrapper","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","Error","getQuery","payloadMap","allPayloadMap","boundwitness","query","getWrappedPayloads","compact","PayloadHasher","filterExclude","map","payload","PayloadWrapper","wrap"]}
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 { Logger } from '@xylabs/logger'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitness, BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { sortFields } from '@xyo-network/hash'\nimport { PayloadBuilder, PayloadWrapper } from '@xyo-network/payload'\nimport { ModuleError, Payload, Schema, WithMeta } from '@xyo-network/payload-model'\nimport { Mutex } from 'async-mutex'\n\nexport interface BoundWitnessBuilderConfig {\n /** Whether or not the payloads should be included in the metadata sent to and recorded by the ArchivistApi */\n /** @deprecated We will be removing support for inlinePayloads soon */\n readonly inlinePayloads?: boolean\n /** @deprecated We will be removing support for meta soon */\n readonly meta?: boolean\n /** @deprecated We will be removing support for timestamp soon */\n readonly timestamp?: boolean\n}\n\nexport class BoundWitnessBuilder<TBoundWitness extends BoundWitness<{ schema: string }> = BoundWitness, TPayload extends Payload = Payload> {\n private static readonly _buildMutex = new Mutex()\n private _accounts: AccountInstance[] = []\n private _errorHashes: string[] | undefined\n private _errors: ModuleError[] = []\n private _payloadHashes: string[] | undefined\n private _payloadSchemas: string[] | undefined\n private _payloads: TPayload[] = []\n private _sourceQuery: string | undefined\n private _timestamp = Date.now()\n\n constructor(\n readonly config: BoundWitnessBuilderConfig = { inlinePayloads: false },\n protected readonly logger?: Logger,\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(meta = false): Promise<[WithMeta<TBoundWitness>, TPayload[], ModuleError[]]> {\n if (meta) {\n console.log('BoundWitnessBuilder: Calling build with meta=true will be disallowed soon')\n }\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 meta =\n hashableFields.addresses.length > 0\n ? {\n $meta: {\n signatures: await this.signatures(hash, previousHashes),\n },\n }\n : {}\n\n const ret: WithMeta<TBoundWitness> = {\n ...hashableFields,\n $hash: hash,\n ...meta,\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 async hashableFields(): Promise<TBoundWitness> {\n const addresses = this._accounts.map((account) =>\n account.addressBytes ? hexFromArrayBuffer(account.addressBytes, { prefix: false }) : undefined,\n )\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: TBoundWitness = {\n addresses: assertEx(addresses, 'Missing addresses'),\n payload_hashes,\n payload_schemas,\n previous_hashes,\n schema: BoundWitnessSchema,\n } as TBoundWitness\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 (this.config.timestamp ?? true) {\n result.timestamp = this._timestamp\n }\n\n if (this._sourceQuery) {\n result.sourceQuery = this._sourceQuery\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(hash?: Hash) {\n this._sourceQuery = hash\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 { PayloadHasher } from '@xyo-network/hash'\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 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 override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {\n this._payloadsWithoutQuery =\n this._payloadsWithoutQuery ??\n (await Promise.all(\n compact(\n (\n await PayloadHasher.filterExclude(\n (await super.getWrappedPayloads()).map((wrapper) => wrapper.jsonPayload()),\n this.jsonPayload().query,\n )\n ).map((payload) => PayloadWrapper.wrap(payload)),\n ),\n ))\n return this._payloadsWithoutQuery\n }\n}\n"],"mappings":"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","names":["BoundWitnessBuilder","_buildMutex","Mutex","_accounts","_errorHashes","_errors","_payloadHashes","_payloadSchemas","_payloads","_sourceQuery","_timestamp","constructor","config","inlinePayloads","logger","Date","now","_payload_schemas","map","payload","assertEx","schema","missingSchemaMessage","addressIndex","address","index","addresses","indexOf","Error","previousHash","previous_hashes","signature","$meta","signatures","build","meta","console","log","runExclusive","hashableFields","hash","PayloadBuilder","$hash","previousHashes","account","length","ret","error","unwrappedPayload","PayloadWrapper","unwrap","undefined","push","sortFields","errors","Promise","all","addressBytes","hexFromArrayBuffer","prefix","payload_hashes","getPayloadHashes","payload_schemas","result","BoundWitnessSchema","some","timestamp","sourceQuery","hashes","payloads","witness","witnesses","accounts","_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_hash","import_payload","QueryBoundWitnessWrapper","BoundWitnessWrapper","_payloadsWithoutQuery","_query","parseQuery","obj","payloads","assertEx","Array","isArray","castWrapper","wrapper","PayloadBuilder","build","Promise","all","map","payload","undefined","Error","getQuery","payloadMap","payloadsDataHashMap","boundwitness","query","getWrappedPayloads","compact","PayloadHasher","filterExclude","jsonPayload","PayloadWrapper","wrap"]}