@xyo-network/diviner 2.35.0 → 2.36.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/cjs/Diviner.d.ts +1 -1
  2. package/dist/cjs/Diviner.d.ts.map +1 -1
  3. package/dist/cjs/Payload/Archivist/Diviner.d.ts +1 -1
  4. package/dist/cjs/Payload/Archivist/Diviner.d.ts.map +1 -1
  5. package/dist/cjs/Payload/Archivist/Diviner.js +5 -10
  6. package/dist/cjs/Payload/Archivist/Diviner.js.map +1 -1
  7. package/dist/cjs/Payload/Huri/Diviner.d.ts +1 -1
  8. package/dist/cjs/Payload/Huri/Diviner.d.ts.map +1 -1
  9. package/dist/cjs/Payload/Huri/Diviner.js +4 -5
  10. package/dist/cjs/Payload/Huri/Diviner.js.map +1 -1
  11. package/dist/cjs/Queries/Divine.d.ts +0 -3
  12. package/dist/cjs/Queries/Divine.d.ts.map +1 -1
  13. package/dist/cjs/Queries/Divine.js.map +1 -1
  14. package/dist/cjs/XyoDiviner.d.ts +3 -4
  15. package/dist/cjs/XyoDiviner.d.ts.map +1 -1
  16. package/dist/cjs/XyoDiviner.js +9 -11
  17. package/dist/cjs/XyoDiviner.js.map +1 -1
  18. package/dist/cjs/XyoDivinerWrapper.d.ts +1 -1
  19. package/dist/cjs/XyoDivinerWrapper.d.ts.map +1 -1
  20. package/dist/cjs/XyoDivinerWrapper.js +5 -4
  21. package/dist/cjs/XyoDivinerWrapper.js.map +1 -1
  22. package/dist/docs.json +8035 -4525
  23. package/dist/esm/Diviner.d.ts +1 -1
  24. package/dist/esm/Diviner.d.ts.map +1 -1
  25. package/dist/esm/Payload/Archivist/Diviner.d.ts +1 -1
  26. package/dist/esm/Payload/Archivist/Diviner.d.ts.map +1 -1
  27. package/dist/esm/Payload/Archivist/Diviner.js +5 -10
  28. package/dist/esm/Payload/Archivist/Diviner.js.map +1 -1
  29. package/dist/esm/Payload/Huri/Diviner.d.ts +1 -1
  30. package/dist/esm/Payload/Huri/Diviner.d.ts.map +1 -1
  31. package/dist/esm/Payload/Huri/Diviner.js +5 -6
  32. package/dist/esm/Payload/Huri/Diviner.js.map +1 -1
  33. package/dist/esm/Queries/Divine.d.ts +0 -3
  34. package/dist/esm/Queries/Divine.d.ts.map +1 -1
  35. package/dist/esm/Queries/Divine.js.map +1 -1
  36. package/dist/esm/XyoDiviner.d.ts +3 -4
  37. package/dist/esm/XyoDiviner.d.ts.map +1 -1
  38. package/dist/esm/XyoDiviner.js +10 -12
  39. package/dist/esm/XyoDiviner.js.map +1 -1
  40. package/dist/esm/XyoDivinerWrapper.d.ts +1 -1
  41. package/dist/esm/XyoDivinerWrapper.d.ts.map +1 -1
  42. package/dist/esm/XyoDivinerWrapper.js +5 -4
  43. package/dist/esm/XyoDivinerWrapper.js.map +1 -1
  44. package/package.json +7 -7
  45. package/src/Diviner.ts +1 -1
  46. package/src/Payload/Archivist/Diviner.ts +5 -13
  47. package/src/Payload/Huri/Diviner.ts +8 -6
  48. package/src/Queries/Divine.ts +0 -3
  49. package/src/XyoDiviner.ts +21 -14
  50. package/src/XyoDivinerWrapper.ts +5 -5
@@ -2,7 +2,7 @@ import { Module } from '@xyo-network/module';
2
2
  import { XyoPayloads } from '@xyo-network/payload';
3
3
  import { Promisable } from '@xyo-network/promise';
4
4
  export interface Diviner {
5
- divine: (context?: string, payloads?: XyoPayloads) => Promisable<XyoPayloads>;
5
+ divine: (payloads?: XyoPayloads) => Promisable<XyoPayloads>;
6
6
  }
7
7
  export interface DivinerModule extends Module, Diviner {
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,OAAO;IAEtB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,KAAK,UAAU,CAAC,WAAW,CAAC,CAAA;CAC9E;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,EAAE,OAAO;CAAG"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../src/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,OAAO;IAEtB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,KAAK,UAAU,CAAC,WAAW,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,EAAE,OAAO;CAAG"}
@@ -7,6 +7,6 @@ export declare class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArc
7
7
  protected readonly archivist?: PayloadArchivist | null;
8
8
  constructor(config?: PartialModuleConfig<XyoArchivistPayloadDivinerConfig>, archivist?: PayloadArchivist, resolver?: XyoModuleResolverFunc);
9
9
  queries(): string[];
10
- divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads>;
10
+ divine(payloads?: XyoPayloads): Promise<XyoPayloads>;
11
11
  }
12
12
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAyE,MAAM,wBAAwB,CAAA;AAChI,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gCAAgC,EAA0C,MAAM,UAAU,CAAA;AAEnG,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,gCAAgC,CAAC;IACjG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;gBAE1C,MAAM,CAAC,EAAE,mBAAmB,CAAC,gCAAgC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,qBAAqB;IAUjI,OAAO;IAIH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAqBpF"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAyE,MAAM,wBAAwB,CAAA;AAChI,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gCAAgC,EAA0C,MAAM,UAAU,CAAA;AAEnG,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,gCAAgC,CAAC;IACjG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;gBAE1C,MAAM,CAAC,EAAE,mBAAmB,CAAC,gCAAgC,CAAC,EAAE,SAAS,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,qBAAqB;IAUjI,OAAO;IAIH,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAclE"}
@@ -2,7 +2,6 @@ import { assertEx } from '@xylabs/assert';
2
2
  import { XyoArchivistGetQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist';
3
3
  import { Huri, PayloadWrapper } from '@xyo-network/payload';
4
4
  import { XyoDivinerDivineQuerySchema } from '../../Queries';
5
- import { profile } from '../lib';
6
5
  import { XyoHuriSchema } from '../XyoHuriPayload';
7
6
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
8
7
  import { XyoArchivistPayloadDivinerConfigSchema } from './Config';
@@ -19,18 +18,14 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
19
18
  queries() {
20
19
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
21
20
  }
22
- async divine(context, payloads) {
21
+ async divine(payloads) {
23
22
  const huriPayloads = assertEx(payloads?.filter((payload) => payload?.schema === XyoHuriSchema), `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`);
24
- const huriPayload = context
25
- ? assertEx(huriPayloads.find((payload) => PayloadWrapper.hash(payload) === context), `context hash provided not found [${context}, ${JSON.stringify(payloads, null, 2)}]`)
26
- : huriPayloads[0];
27
- const hashes = huriPayload.huri.map((huri) => new Huri(huri).hash);
23
+ const hashes = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri).hash)).flat();
28
24
  const activeArchivist = this.archivist;
29
25
  if (activeArchivist) {
30
- const query = { hashes, schema: XyoArchivistGetQuerySchema };
31
- const bw = (await this.bindPayloads([query]))[0];
32
- const [[, payloads]] = await profile(async () => await activeArchivist.query(bw, query));
33
- return payloads;
26
+ const queryPayload = PayloadWrapper.parse({ hashes, schema: XyoArchivistGetQuerySchema });
27
+ const query = await this.bindQuery([queryPayload.body], queryPayload.hash);
28
+ return (await activeArchivist.query(query[0], query[1]))[1];
34
29
  }
35
30
  return [];
36
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAA0C,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEhI,OAAO,EAAE,IAAI,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAoC,sCAAsC,EAAE,MAAM,UAAU,CAAA;AAEnG,MAAM,OAAO,0BAA2B,SAAQ,iBAAmD;IAC9E,SAAS,CAA0B;IAEtD,YAAY,MAA8D,EAAE,SAA4B,EAAE,QAAgC;QACxI,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzF,MAAM,sBAAsB,GAAG,MAAM,EAAE,SAAS,CAAA;QAChD,MAAM,iBAAiB,GACrB,SAAS,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAiC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACjI,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;SACvF;IACH,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,QAAsB;QAC1D,MAAM,YAAY,GAAG,QAAQ,CAC3B,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,EAC3F,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAClE,CAAA;QACD,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,QAAQ,CACN,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,EACxE,oCAAoC,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CACrF;YACH,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACnB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;QAClE,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAA;QACtC,IAAI,eAAe,EAAE;YACnB,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAA;YAClF,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;YACxF,OAAO,QAAQ,CAAA;SAChB;QACD,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
1
+ {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAA0C,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEhI,OAAO,EAAE,IAAI,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAoC,sCAAsC,EAAE,MAAM,UAAU,CAAA;AAEnG,MAAM,OAAO,0BAA2B,SAAQ,iBAAmD;IAC9E,SAAS,CAA0B;IAEtD,YAAY,MAA8D,EAAE,SAA4B,EAAE,QAAgC;QACxI,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,sCAAsC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QACzF,MAAM,sBAAsB,GAAG,MAAM,EAAE,SAAS,CAAA;QAChD,MAAM,iBAAiB,GACrB,SAAS,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAiC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACjI,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;SACvF;IACH,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAsB;QACxC,MAAM,YAAY,GAAG,QAAQ,CAC3B,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,EAC3F,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAClE,CAAA;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC5G,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAA;QACtC,IAAI,eAAe,EAAE;YACnB,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAuB,EAAE,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAA;YAC/G,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YAC1E,OAAO,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;SAC5D;QACD,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
@@ -4,6 +4,6 @@ import { XyoHuriPayloadDivinerConfig } from './Config';
4
4
  export declare class XyoHuriPayloadDiviner extends XyoPayloadDiviner<XyoHuriPayloadDivinerConfig> {
5
5
  protected get options(): import("@xyo-network/payload").HuriOptions | undefined;
6
6
  queries(): string[];
7
- divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads>;
7
+ divine(payloads?: XyoPayloads): Promise<XyoPayloads>;
8
8
  }
9
9
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAEtD,qBAAa,qBAAsB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACvF,SAAS,KAAK,OAAO,2DAEpB;IAEQ,OAAO;IAID,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAQtF"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAEtD,qBAAa,qBAAsB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACvF,SAAS,KAAK,OAAO,2DAEpB;IAEQ,OAAO;IAID,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAUpE"}
@@ -1,5 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
- import { Huri, PayloadWrapper } from '@xyo-network/payload';
2
+ import { Huri } from '@xyo-network/payload';
3
3
  import compact from 'lodash/compact';
4
4
  import { XyoDivinerDivineQuerySchema } from '../../Queries';
5
5
  import { XyoHuriSchema } from '../XyoHuriPayload';
@@ -11,11 +11,10 @@ export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
11
11
  queries() {
12
12
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
13
13
  }
14
- async divine(context, payloads) {
15
- const huriPayloads = assertEx(payloads?.filter((payload) => payload?.schema === XyoHuriSchema));
16
- const huriPayload = assertEx(huriPayloads.find((payload) => PayloadWrapper.hash(payload) === context));
17
- const huriObj = huriPayload.huri.map((huri) => new Huri(huri));
18
- const settled = await Promise.allSettled(huriObj.map((huri) => huri.fetch()));
14
+ async divine(payloads) {
15
+ const huriPayloads = assertEx(payloads?.filter((payload) => payload?.schema === XyoHuriSchema), `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`);
16
+ const huriList = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri))).flat();
17
+ const settled = await Promise.allSettled(huriList.map((huri) => huri.fetch()));
19
18
  return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)));
20
19
  }
21
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../src/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AACxE,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,MAAM,OAAO,qBAAsB,SAAQ,iBAA8C;IACvF,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAA;IAC7B,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,QAAsB;QAC5D,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAA;QAC1H,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAA;QACtG,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC7E,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChG,CAAC;CACF"}
1
+ {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../src/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAA;AACxD,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAkB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,MAAM,OAAO,qBAAsB,SAAQ,iBAA8C;IACvF,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,CAAA;IAC7B,CAAC;IAEQ,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,QAAsB;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAC3B,QAAQ,EAAE,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,EAC3F,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAClE,CAAA;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAEzG,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9E,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChG,CAAC;CACF"}
@@ -1,10 +1,7 @@
1
1
  import { XyoQuery } from '@xyo-network/module';
2
- import { XyoPayloads } from '@xyo-network/payload';
3
2
  export declare type XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine';
4
3
  export declare const XyoDivinerDivineQuerySchema: XyoDivinerDivineQuerySchema;
5
4
  export declare type XyoDivinerDivineQuery = XyoQuery<{
6
5
  schema: XyoDivinerDivineQuerySchema;
7
- context?: string;
8
- payloads?: XyoPayloads;
9
6
  }>;
10
7
  //# sourceMappingURL=Divine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Divine.d.ts","sourceRoot":"","sources":["../../../src/Queries/Divine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,2BAA2B,CAAA;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAA;CACvB,CAAC,CAAA"}
1
+ {"version":3,"file":"Divine.d.ts","sourceRoot":"","sources":["../../../src/Queries/Divine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,2BAA2B,CAAA;CACpC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Divine.js","sourceRoot":"","sources":["../../../src/Queries/Divine.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,2BAA2B,GAAgC,kCAAkC,CAAA"}
1
+ {"version":3,"file":"Divine.js","sourceRoot":"","sources":["../../../src/Queries/Divine.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,2BAA2B,GAAgC,kCAAkC,CAAA"}
@@ -1,13 +1,12 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
- import { XyoModule, XyoModuleQueryResult, XyoQuery } from '@xyo-network/module';
1
+ import { ModuleQueryResult, XyoModule, XyoQueryBoundWitness } from '@xyo-network/module';
3
2
  import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
4
3
  import { Promisable } from '@xyo-network/promise';
5
4
  import { XyoDivinerConfig } from './Config';
6
5
  import { DivinerModule } from './Diviner';
7
6
  export declare abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
8
- abstract divine(context?: string, data?: XyoPayloads): Promisable<XyoPayloads>;
7
+ abstract divine(payloads?: XyoPayloads): Promisable<XyoPayloads>;
9
8
  queries(): string[];
10
- query<T extends XyoQuery = XyoQuery>(bw: XyoBoundWitness, query: T): Promise<XyoModuleQueryResult<XyoPayload>>;
9
+ query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayloads): Promise<ModuleQueryResult<XyoPayload>>;
11
10
  }
12
11
  export declare abstract class XyoTimestampDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoDiviner<TConfig> {
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XyoDiviner.d.ts","sourceRoot":"","sources":["../../src/XyoDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAkC,oBAAoB,EAAgC,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC7I,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,8BAAsB,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,aAAa;IACvI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAE9D,OAAO,IAAI,MAAM,EAAE;IAIpB,KAAK,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;CAmB9H;AAED,8BAAsB,mBAAmB,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;CAAG;AAE7H,wCAAwC;AACxC,8BAAsB,kBAAkB,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;CAAG;AAE5H,wCAAwC;AACxC,8BAAsB,2BAA2B,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,mBAAmB,CAAC,OAAO,CAAC;CAAG"}
1
+ {"version":3,"file":"XyoDiviner.d.ts","sourceRoot":"","sources":["../../src/XyoDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iBAAiB,EAEjB,SAAS,EAGT,oBAAoB,EACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,8BAAsB,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,SAAS,CAAC,OAAO,CAAE,YAAW,aAAa;IACvI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAEhD,OAAO,IAAI,MAAM,EAAE;IAIpB,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACxE,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;CAiB1C;AAED,8BAAsB,mBAAmB,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;CAAG;AAE7H,wCAAwC;AACxC,8BAAsB,kBAAkB,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,UAAU,CAAC,OAAO,CAAC;CAAG;AAE5H,wCAAwC;AACxC,8BAAsB,2BAA2B,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,mBAAmB,CAAC,OAAO,CAAC;CAAG"}
@@ -1,27 +1,25 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { XyoAccount } from '@xyo-network/account';
3
- import { XyoModule, XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema } from '@xyo-network/module';
3
+ import { QueryBoundWitnessWrapper, XyoModule, XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, } from '@xyo-network/module';
4
4
  import { XyoDivinerDivineQuerySchema } from './Queries';
5
5
  export class XyoDiviner extends XyoModule {
6
6
  queries() {
7
7
  return [XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, XyoDivinerDivineQuerySchema];
8
8
  }
9
- async query(bw, query) {
10
- assertEx(this.queryable(query.schema, bw.addresses));
9
+ async query(query, payloads) {
10
+ const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
11
+ const typedQuery = wrapper.query;
12
+ assertEx(this.queryable(query.schema, wrapper.addresses));
11
13
  const queryAccount = new XyoAccount();
12
- if (!this.queries().find((schema) => schema === query.schema)) {
13
- console.error(`Undeclared Module Query: ${query.schema}`);
14
- }
15
- const payloads = [];
16
- const typedQuery = query;
17
- switch (typedQuery.schema) {
14
+ const resultPayloads = [];
15
+ switch (typedQuery.schemaName) {
18
16
  case XyoDivinerDivineQuerySchema:
19
- payloads.push(...(await this.divine(typedQuery.context, typedQuery.payloads)));
17
+ resultPayloads.push(...(await this.divine(payloads)));
20
18
  break;
21
19
  default:
22
- return super.query(bw, typedQuery);
20
+ return super.query(query);
23
21
  }
24
- return await this.bindPayloads(payloads, queryAccount);
22
+ return await this.bindResult(resultPayloads, queryAccount);
25
23
  }
26
24
  }
27
25
  export class XyoTimestampDiviner extends XyoDiviner {
@@ -1 +1 @@
1
- {"version":3,"file":"XyoDiviner.js","sourceRoot":"","sources":["../../src/XyoDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,8BAA8B,EAAwB,4BAA4B,EAAY,MAAM,qBAAqB,CAAA;AAM7I,OAAO,EAAE,2BAA2B,EAAmB,MAAM,WAAW,CAAA;AAExE,MAAM,OAAgB,UAAgE,SAAQ,SAAkB;IAG9F,OAAO;QACrB,OAAO,CAAC,8BAA8B,EAAE,4BAA4B,EAAE,2BAA2B,CAAC,CAAA;IACpG,CAAC;IAEQ,KAAK,CAAC,KAAK,CAAgC,EAAmB,EAAE,KAAQ;QAC/E,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;QAEpD,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE;YAC7D,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;SAC1D;QAED,MAAM,QAAQ,GAAgB,EAAE,CAAA;QAChC,MAAM,UAAU,GAAG,KAAwB,CAAA;QAC3C,QAAQ,UAAU,CAAC,MAAM,EAAE;YACzB,KAAK,2BAA2B;gBAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBAC9E,MAAK;YACP;gBACE,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;SACrC;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACxD,CAAC;CACF;AAED,MAAM,OAAgB,mBAAyE,SAAQ,UAAmB;CAAG;AAE7H,wCAAwC;AACxC,MAAM,OAAgB,kBAAwE,SAAQ,UAAmB;CAAG;AAE5H,wCAAwC;AACxC,MAAM,OAAgB,2BAAiF,SAAQ,mBAA4B;CAAG"}
1
+ {"version":3,"file":"XyoDiviner.js","sourceRoot":"","sources":["../../src/XyoDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAEL,wBAAwB,EACxB,SAAS,EACT,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EAAE,2BAA2B,EAAmB,MAAM,WAAW,CAAA;AAExE,MAAM,OAAgB,UAAgE,SAAQ,SAAkB;IAG9F,OAAO;QACrB,OAAO,CAAC,8BAA8B,EAAE,4BAA4B,EAAE,2BAA2B,CAAC,CAAA;IACpG,CAAC;IAEQ,KAAK,CAAC,KAAK,CAClB,KAAQ,EACR,QAAsB;QAEtB,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAkB,KAAK,EAAE,QAAQ,CAAC,CAAA;QACrF,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAA;QAChC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAEzD,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAA;QAErC,MAAM,cAAc,GAAgB,EAAE,CAAA;QACtC,QAAQ,UAAU,CAAC,UAAU,EAAE;YAC7B,KAAK,2BAA2B;gBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACrD,MAAK;YACP;gBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC5B;QACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC5D,CAAC;CACF;AAED,MAAM,OAAgB,mBAAyE,SAAQ,UAAmB;CAAG;AAE7H,wCAAwC;AACxC,MAAM,OAAgB,kBAAwE,SAAQ,UAAmB;CAAG;AAE5H,wCAAwC;AACxC,MAAM,OAAgB,2BAAiF,SAAQ,mBAA4B;CAAG"}
@@ -2,6 +2,6 @@ import { XyoModuleWrapper } from '@xyo-network/module';
2
2
  import { XyoPayloads } from '@xyo-network/payload';
3
3
  import { Diviner } from './Diviner';
4
4
  export declare class XyoDivinerWrapper extends XyoModuleWrapper implements Diviner {
5
- divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads>;
5
+ divine(payloads?: XyoPayloads): Promise<XyoPayloads>;
6
6
  }
7
7
  //# sourceMappingURL=XyoDivinerWrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoDivinerWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoDivinerWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,qBAAa,iBAAkB,SAAQ,gBAAiB,YAAW,OAAO;IAClE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAK7E"}
1
+ {"version":3,"file":"XyoDivinerWrapper.d.ts","sourceRoot":"","sources":["../../src/XyoDivinerWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAkB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,qBAAa,iBAAkB,SAAQ,gBAAiB,YAAW,OAAO;IAClE,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAK3D"}
@@ -1,10 +1,11 @@
1
1
  import { XyoModuleWrapper } from '@xyo-network/module';
2
+ import { PayloadWrapper } from '@xyo-network/payload';
2
3
  import { XyoDivinerDivineQuerySchema } from './Queries';
3
4
  export class XyoDivinerWrapper extends XyoModuleWrapper {
4
- async divine(context, payloads) {
5
- const query = { context, payloads, schema: XyoDivinerDivineQuerySchema };
6
- const bw = (await this.bindPayloads([query]))[0];
7
- return (await this.module.query(bw, query))[1];
5
+ async divine(payloads) {
6
+ const queryPayload = PayloadWrapper.parse({ schema: XyoDivinerDivineQuerySchema });
7
+ const boundQuery = await this.bindQuery([queryPayload.body, ...(payloads ?? [])], queryPayload.hash);
8
+ return (await this.module.query(boundQuery[0], boundQuery[1]))[1];
8
9
  }
9
10
  }
10
11
  //# sourceMappingURL=XyoDivinerWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoDivinerWrapper.js","sourceRoot":"","sources":["../../src/XyoDivinerWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,OAAO,EAAyB,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAE9E,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,QAAsB;QACnD,MAAM,KAAK,GAA0B,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAA;QAC/F,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"XyoDivinerWrapper.js","sourceRoot":"","sources":["../../src/XyoDivinerWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AAGlE,OAAO,EAAyB,2BAA2B,EAAE,MAAM,WAAW,CAAA;AAE9E,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,KAAK,CAAC,MAAM,CAAC,QAAsB;QACjC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAwB,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QACpG,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;CACF"}
package/package.json CHANGED
@@ -11,12 +11,11 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.7",
14
- "@xyo-network/account": "^2.35.0",
15
- "@xyo-network/archivist": "^2.35.0",
16
- "@xyo-network/boundwitness": "^2.35.0",
17
- "@xyo-network/module": "^2.35.0",
18
- "@xyo-network/payload": "^2.35.0",
19
- "@xyo-network/promise": "^2.35.0",
14
+ "@xyo-network/account": "^2.36.0-rc.1",
15
+ "@xyo-network/archivist": "^2.36.0-rc.1",
16
+ "@xyo-network/module": "^2.36.0-rc.1",
17
+ "@xyo-network/payload": "^2.36.0-rc.1",
18
+ "@xyo-network/promise": "^2.36.0-rc.1",
20
19
  "lodash": "^4.17.21",
21
20
  "tslib": "^2.4.0"
22
21
  },
@@ -53,5 +52,6 @@
53
52
  },
54
53
  "sideEffects": false,
55
54
  "types": "dist/esm/index.d.ts",
56
- "version": "2.35.0"
55
+ "version": "2.36.0-rc.1",
56
+ "stableVersion": "2.35.0"
57
57
  }
package/src/Diviner.ts CHANGED
@@ -4,7 +4,7 @@ import { Promisable } from '@xyo-network/promise'
4
4
 
5
5
  export interface Diviner {
6
6
  /* context is the hash of the payload that defines the divining */
7
- divine: (context?: string, payloads?: XyoPayloads) => Promisable<XyoPayloads>
7
+ divine: (payloads?: XyoPayloads) => Promisable<XyoPayloads>
8
8
  }
9
9
 
10
10
  export interface DivinerModule extends Module, Diviner {}
@@ -4,7 +4,6 @@ import { PartialModuleConfig, XyoModuleResolverFunc } from '@xyo-network/module'
4
4
  import { Huri, PayloadWrapper, XyoPayloads } from '@xyo-network/payload'
5
5
 
6
6
  import { XyoDivinerDivineQuerySchema } from '../../Queries'
7
- import { profile } from '../lib'
8
7
  import { XyoHuriPayload, XyoHuriSchema } from '../XyoHuriPayload'
9
8
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner'
10
9
  import { XyoArchivistPayloadDivinerConfig, XyoArchivistPayloadDivinerConfigSchema } from './Config'
@@ -26,24 +25,17 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPa
26
25
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
27
26
  }
28
27
 
29
- public async divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads> {
28
+ public async divine(payloads?: XyoPayloads): Promise<XyoPayloads> {
30
29
  const huriPayloads = assertEx(
31
30
  payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),
32
31
  `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`,
33
32
  )
34
- const huriPayload = context
35
- ? assertEx(
36
- huriPayloads.find((payload) => PayloadWrapper.hash(payload) === context),
37
- `context hash provided not found [${context}, ${JSON.stringify(payloads, null, 2)}]`,
38
- )
39
- : huriPayloads[0]
40
- const hashes = huriPayload.huri.map((huri) => new Huri(huri).hash)
33
+ const hashes = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri).hash)).flat()
41
34
  const activeArchivist = this.archivist
42
35
  if (activeArchivist) {
43
- const query: XyoArchivistGetQuery = { hashes, schema: XyoArchivistGetQuerySchema }
44
- const bw = (await this.bindPayloads([query]))[0]
45
- const [[, payloads]] = await profile(async () => await activeArchivist.query(bw, query))
46
- return payloads
36
+ const queryPayload = PayloadWrapper.parse<XyoArchivistGetQuery>({ hashes, schema: XyoArchivistGetQuerySchema })
37
+ const query = await this.bindQuery([queryPayload.body], queryPayload.hash)
38
+ return (await activeArchivist.query(query[0], query[1]))[1]
47
39
  }
48
40
  return []
49
41
  }
@@ -1,5 +1,5 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
- import { Huri, PayloadWrapper, XyoPayloads } from '@xyo-network/payload'
2
+ import { Huri, XyoPayloads } from '@xyo-network/payload'
3
3
  import compact from 'lodash/compact'
4
4
 
5
5
  import { XyoDivinerDivineQuerySchema } from '../../Queries'
@@ -16,12 +16,14 @@ export class XyoHuriPayloadDiviner extends XyoPayloadDiviner<XyoHuriPayloadDivin
16
16
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
17
17
  }
18
18
 
19
- override async divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads> {
20
- const huriPayloads = assertEx(payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema))
21
- const huriPayload = assertEx(huriPayloads.find((payload) => PayloadWrapper.hash(payload) === context))
22
- const huriObj = huriPayload.huri.map((huri) => new Huri(huri))
19
+ override async divine(payloads?: XyoPayloads): Promise<XyoPayloads> {
20
+ const huriPayloads = assertEx(
21
+ payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),
22
+ `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`,
23
+ )
24
+ const huriList = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri))).flat()
23
25
 
24
- const settled = await Promise.allSettled(huriObj.map((huri) => huri.fetch()))
26
+ const settled = await Promise.allSettled(huriList.map((huri) => huri.fetch()))
25
27
  return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)))
26
28
  }
27
29
  }
@@ -1,11 +1,8 @@
1
1
  import { XyoQuery } from '@xyo-network/module'
2
- import { XyoPayloads } from '@xyo-network/payload'
3
2
 
4
3
  export type XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine'
5
4
  export const XyoDivinerDivineQuerySchema: XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine'
6
5
 
7
6
  export type XyoDivinerDivineQuery = XyoQuery<{
8
7
  schema: XyoDivinerDivineQuerySchema
9
- context?: string
10
- payloads?: XyoPayloads
11
8
  }>
package/src/XyoDiviner.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { XyoAccount } from '@xyo-network/account'
3
- import { XyoBoundWitness } from '@xyo-network/boundwitness'
4
- import { XyoModule, XyoModuleInitializeQuerySchema, XyoModuleQueryResult, XyoModuleShutdownQuerySchema, XyoQuery } from '@xyo-network/module'
3
+ import {
4
+ ModuleQueryResult,
5
+ QueryBoundWitnessWrapper,
6
+ XyoModule,
7
+ XyoModuleInitializeQuerySchema,
8
+ XyoModuleShutdownQuerySchema,
9
+ XyoQueryBoundWitness,
10
+ } from '@xyo-network/module'
5
11
  import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
6
12
  import { Promisable } from '@xyo-network/promise'
7
13
 
@@ -10,30 +16,31 @@ import { DivinerModule } from './Diviner'
10
16
  import { XyoDivinerDivineQuerySchema, XyoDivinerQuery } from './Queries'
11
17
 
12
18
  export abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
13
- abstract divine(context?: string, data?: XyoPayloads): Promisable<XyoPayloads>
19
+ abstract divine(payloads?: XyoPayloads): Promisable<XyoPayloads>
14
20
 
15
21
  public override queries(): string[] {
16
22
  return [XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, XyoDivinerDivineQuerySchema]
17
23
  }
18
24
 
19
- override async query<T extends XyoQuery = XyoQuery>(bw: XyoBoundWitness, query: T): Promise<XyoModuleQueryResult<XyoPayload>> {
20
- assertEx(this.queryable(query.schema, bw.addresses))
25
+ override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(
26
+ query: T,
27
+ payloads?: XyoPayloads,
28
+ ): Promise<ModuleQueryResult<XyoPayload>> {
29
+ const wrapper = QueryBoundWitnessWrapper.parseQuery<XyoDivinerQuery>(query, payloads)
30
+ const typedQuery = wrapper.query
31
+ assertEx(this.queryable(query.schema, wrapper.addresses))
21
32
 
22
33
  const queryAccount = new XyoAccount()
23
- if (!this.queries().find((schema) => schema === query.schema)) {
24
- console.error(`Undeclared Module Query: ${query.schema}`)
25
- }
26
34
 
27
- const payloads: XyoPayloads = []
28
- const typedQuery = query as XyoDivinerQuery
29
- switch (typedQuery.schema) {
35
+ const resultPayloads: XyoPayloads = []
36
+ switch (typedQuery.schemaName) {
30
37
  case XyoDivinerDivineQuerySchema:
31
- payloads.push(...(await this.divine(typedQuery.context, typedQuery.payloads)))
38
+ resultPayloads.push(...(await this.divine(payloads)))
32
39
  break
33
40
  default:
34
- return super.query(bw, typedQuery)
41
+ return super.query(query)
35
42
  }
36
- return await this.bindPayloads(payloads, queryAccount)
43
+ return await this.bindResult(resultPayloads, queryAccount)
37
44
  }
38
45
  }
39
46
 
@@ -1,13 +1,13 @@
1
1
  import { XyoModuleWrapper } from '@xyo-network/module'
2
- import { XyoPayloads } from '@xyo-network/payload'
2
+ import { PayloadWrapper, XyoPayloads } from '@xyo-network/payload'
3
3
 
4
4
  import { Diviner } from './Diviner'
5
5
  import { XyoDivinerDivineQuery, XyoDivinerDivineQuerySchema } from './Queries'
6
6
 
7
7
  export class XyoDivinerWrapper extends XyoModuleWrapper implements Diviner {
8
- async divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads> {
9
- const query: XyoDivinerDivineQuery = { context, payloads, schema: XyoDivinerDivineQuerySchema }
10
- const bw = (await this.bindPayloads([query]))[0]
11
- return (await this.module.query(bw, query))[1]
8
+ async divine(payloads?: XyoPayloads): Promise<XyoPayloads> {
9
+ const queryPayload = PayloadWrapper.parse<XyoDivinerDivineQuery>({ schema: XyoDivinerDivineQuerySchema })
10
+ const boundQuery = await this.bindQuery([queryPayload.body, ...(payloads ?? [])], queryPayload.hash)
11
+ return (await this.module.query(boundQuery[0], boundQuery[1]))[1]
12
12
  }
13
13
  }