@xyo-network/diviner 2.34.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 (60) hide show
  1. package/dist/cjs/Diviner.d.ts +2 -2
  2. package/dist/cjs/Diviner.d.ts.map +1 -1
  3. package/dist/cjs/Payload/Archivist/Diviner.d.ts +2 -2
  4. package/dist/cjs/Payload/Archivist/Diviner.d.ts.map +1 -1
  5. package/dist/cjs/Payload/Archivist/Diviner.js +6 -8
  6. package/dist/cjs/Payload/Archivist/Diviner.js.map +1 -1
  7. package/dist/cjs/Payload/Huri/Diviner.d.ts +2 -2
  8. package/dist/cjs/Payload/Huri/Diviner.d.ts.map +1 -1
  9. package/dist/cjs/Payload/Huri/Diviner.js +5 -5
  10. package/dist/cjs/Payload/Huri/Diviner.js.map +1 -1
  11. package/dist/cjs/Payload/XyoHuriPayload.d.ts +1 -1
  12. package/dist/cjs/Payload/XyoHuriPayload.d.ts.map +1 -1
  13. package/dist/cjs/Queries/Divine.d.ts +1 -3
  14. package/dist/cjs/Queries/Divine.d.ts.map +1 -1
  15. package/dist/cjs/Queries/Divine.js.map +1 -1
  16. package/dist/cjs/Queries/index.d.ts +2 -3
  17. package/dist/cjs/Queries/index.d.ts.map +1 -1
  18. package/dist/cjs/XyoDiviner.d.ts +3 -4
  19. package/dist/cjs/XyoDiviner.d.ts.map +1 -1
  20. package/dist/cjs/XyoDiviner.js +9 -11
  21. package/dist/cjs/XyoDiviner.js.map +1 -1
  22. package/dist/cjs/XyoDivinerWrapper.d.ts +2 -2
  23. package/dist/cjs/XyoDivinerWrapper.d.ts.map +1 -1
  24. package/dist/cjs/XyoDivinerWrapper.js +4 -3
  25. package/dist/cjs/XyoDivinerWrapper.js.map +1 -1
  26. package/dist/docs.json +9004 -5330
  27. package/dist/esm/Diviner.d.ts +2 -2
  28. package/dist/esm/Diviner.d.ts.map +1 -1
  29. package/dist/esm/Payload/Archivist/Diviner.d.ts +2 -2
  30. package/dist/esm/Payload/Archivist/Diviner.d.ts.map +1 -1
  31. package/dist/esm/Payload/Archivist/Diviner.js +7 -9
  32. package/dist/esm/Payload/Archivist/Diviner.js.map +1 -1
  33. package/dist/esm/Payload/Huri/Diviner.d.ts +2 -2
  34. package/dist/esm/Payload/Huri/Diviner.d.ts.map +1 -1
  35. package/dist/esm/Payload/Huri/Diviner.js +5 -5
  36. package/dist/esm/Payload/Huri/Diviner.js.map +1 -1
  37. package/dist/esm/Payload/XyoHuriPayload.d.ts +1 -1
  38. package/dist/esm/Payload/XyoHuriPayload.d.ts.map +1 -1
  39. package/dist/esm/Queries/Divine.d.ts +1 -3
  40. package/dist/esm/Queries/Divine.d.ts.map +1 -1
  41. package/dist/esm/Queries/Divine.js.map +1 -1
  42. package/dist/esm/Queries/index.d.ts +2 -3
  43. package/dist/esm/Queries/index.d.ts.map +1 -1
  44. package/dist/esm/XyoDiviner.d.ts +3 -4
  45. package/dist/esm/XyoDiviner.d.ts.map +1 -1
  46. package/dist/esm/XyoDiviner.js +10 -12
  47. package/dist/esm/XyoDiviner.js.map +1 -1
  48. package/dist/esm/XyoDivinerWrapper.d.ts +2 -2
  49. package/dist/esm/XyoDivinerWrapper.d.ts.map +1 -1
  50. package/dist/esm/XyoDivinerWrapper.js +4 -3
  51. package/dist/esm/XyoDivinerWrapper.js.map +1 -1
  52. package/package.json +8 -7
  53. package/src/Diviner.ts +3 -2
  54. package/src/Payload/Archivist/Diviner.ts +11 -10
  55. package/src/Payload/Huri/Diviner.ts +11 -7
  56. package/src/Payload/XyoHuriPayload.ts +1 -1
  57. package/src/Queries/Divine.ts +1 -3
  58. package/src/Queries/index.ts +2 -3
  59. package/src/XyoDiviner.ts +21 -14
  60. package/src/XyoDivinerWrapper.ts +5 -5
@@ -1,8 +1,8 @@
1
1
  import { Module } from '@xyo-network/module';
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
2
+ import { XyoPayloads } from '@xyo-network/payload';
3
3
  import { Promisable } from '@xyo-network/promise';
4
4
  export interface Diviner {
5
- divine(payloads?: XyoPayloads): Promisable<XyoPayload | null>;
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,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;CAC9D;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"}
@@ -1,12 +1,12 @@
1
1
  import { PayloadArchivist } from '@xyo-network/archivist';
2
2
  import { PartialModuleConfig, XyoModuleResolverFunc } from '@xyo-network/module';
3
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
3
+ import { XyoPayloads } from '@xyo-network/payload';
4
4
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
5
5
  import { XyoArchivistPayloadDivinerConfig } from './Config';
6
6
  export declare class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPayloadDivinerConfig> {
7
7
  protected readonly archivist?: PayloadArchivist | null;
8
8
  constructor(config?: PartialModuleConfig<XyoArchivistPayloadDivinerConfig>, archivist?: PayloadArchivist, resolver?: XyoModuleResolverFunc);
9
9
  queries(): string[];
10
- divine(payloads?: XyoPayloads): Promise<XyoPayload | null>;
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,EAAQ,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKpE,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,UAAU,GAAG,IAAI,CAAC;CAYxE"}
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"}
@@ -1,8 +1,7 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { XyoArchivistGetQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist';
3
- import { Huri } from '@xyo-network/payload';
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';
@@ -20,16 +19,15 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
20
19
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
21
20
  }
22
21
  async divine(payloads) {
23
- const huriPayload = assertEx(payloads?.find((payload) => payload?.schema === XyoHuriSchema));
24
- const huriObj = new Huri(huriPayload.huri);
22
+ const huriPayloads = assertEx(payloads?.filter((payload) => payload?.schema === XyoHuriSchema), `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`);
23
+ const hashes = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri).hash)).flat();
25
24
  const activeArchivist = this.archivist;
26
25
  if (activeArchivist) {
27
- const query = { hashes: [huriObj.hash], schema: XyoArchivistGetQuerySchema };
28
- const bw = (await this.bindPayloads([query]))[0];
29
- const [[, [payload = null]]] = await profile(async () => await activeArchivist.query(bw, query));
30
- return payload ?? null;
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];
31
29
  }
32
- return null;
30
+ return [];
33
31
  }
34
32
  }
35
33
  //# sourceMappingURL=Diviner.js.map
@@ -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,EAA2B,MAAM,sBAAsB,CAAA;AAEpE,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,QAAsB;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAA;QACvH,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAA;QACtC,IAAI,eAAe,EAAE;YACnB,MAAM,KAAK,GAAyB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAA;YAClG,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;YAChG,OAAO,OAAO,IAAI,IAAI,CAAA;SACvB;QACD,OAAO,IAAI,CAAA;IACb,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"}
@@ -1,9 +1,9 @@
1
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
1
+ import { XyoPayloads } from '@xyo-network/payload';
2
2
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
3
3
  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(payloads?: XyoPayloads): Promise<XyoPayload | null>;
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,EAAQ,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKpE,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,UAAU,GAAG,IAAI,CAAC;CAM1E"}
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,7 +1,7 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { Huri } from '@xyo-network/payload';
3
+ import compact from 'lodash/compact';
3
4
  import { XyoDivinerDivineQuerySchema } from '../../Queries';
4
- import { profile } from '../lib';
5
5
  import { XyoHuriSchema } from '../XyoHuriPayload';
6
6
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
7
7
  export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
@@ -12,10 +12,10 @@ export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
12
12
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
13
13
  }
14
14
  async divine(payloads) {
15
- const huriPayload = assertEx(payloads?.find((payload) => payload?.schema === XyoHuriSchema));
16
- const huri = new Huri(huriPayload?.huri, this.options);
17
- const [payload = null] = await profile(async () => await huri.fetch());
18
- return payload ?? null;
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()));
18
+ return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)));
19
19
  }
20
20
  }
21
21
  //# sourceMappingURL=Diviner.js.map
@@ -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,EAA2B,MAAM,sBAAsB,CAAA;AAEpE,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;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,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAA;QACvH,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,OAAO,IAAI,IAAI,CAAA;IACxB,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"}
@@ -3,6 +3,6 @@ export declare type XyoHuriSchema = 'network.xyo.huri';
3
3
  export declare const XyoHuriSchema: XyoHuriSchema;
4
4
  export declare type XyoHuriPayload = XyoPayload<{
5
5
  schema: 'network.xyo.huri';
6
- huri: string;
6
+ huri: string[];
7
7
  }>;
8
8
  //# sourceMappingURL=XyoHuriPayload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoHuriPayload.d.ts","sourceRoot":"","sources":["../../../src/Payload/XyoHuriPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,aAAa,GAAG,kBAAkB,CAAA;AAC9C,eAAO,MAAM,aAAa,EAAE,aAAkC,CAAA;AAE9D,oBAAY,cAAc,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAC,CAAA"}
1
+ {"version":3,"file":"XyoHuriPayload.d.ts","sourceRoot":"","sources":["../../../src/Payload/XyoHuriPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,oBAAY,aAAa,GAAG,kBAAkB,CAAA;AAC9C,eAAO,MAAM,aAAa,EAAE,aAAkC,CAAA;AAE9D,oBAAY,cAAc,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,CAAC,CAAA"}
@@ -1,9 +1,7 @@
1
1
  import { XyoQuery } from '@xyo-network/module';
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
3
2
  export declare type XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine';
4
3
  export declare const XyoDivinerDivineQuerySchema: XyoDivinerDivineQuerySchema;
5
- export declare type XyoDivinerDivineQuery<T extends XyoPayload = XyoPayload> = XyoQuery<{
4
+ export declare type XyoDivinerDivineQuery = XyoQuery<{
6
5
  schema: XyoDivinerDivineQuerySchema;
7
- payloads?: XyoPayloads<T>;
8
6
  }>;
9
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,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE9D,oBAAY,2BAA2B,GAAG,kCAAkC,CAAA;AAC5E,eAAO,MAAM,2BAA2B,EAAE,2BAAgE,CAAA;AAE1G,oBAAY,qBAAqB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,QAAQ,CAAC;IAC9E,MAAM,EAAE,2BAA2B,CAAA;IACnC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;CAC1B,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,7 +1,6 @@
1
1
  export * from './Divine';
2
2
  import { XyoModuleQuery, XyoQuery } from '@xyo-network/module';
3
- import { XyoPayload } from '@xyo-network/payload';
4
3
  import { XyoDivinerDivineQuery } from './Divine';
5
- export declare type XyoDivinerQueryBase<TDivineResult extends XyoPayload = XyoPayload> = XyoDivinerDivineQuery<TDivineResult>;
6
- export declare type XyoDivinerQuery<TQuery extends XyoQuery | void = void> = XyoModuleQuery<TQuery extends XyoQuery ? XyoDivinerQueryBase<XyoPayload> | TQuery : XyoDivinerQueryBase<XyoPayload>>;
4
+ export declare type XyoDivinerQueryBase = XyoDivinerDivineQuery;
5
+ export declare type XyoDivinerQuery<TQuery extends XyoQuery | void = void> = XyoModuleQuery<TQuery extends XyoQuery ? XyoDivinerQueryBase | TQuery : XyoDivinerQueryBase>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEhD,oBAAY,mBAAmB,CAAC,aAAa,SAAS,UAAU,GAAG,UAAU,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAA;AAErH,oBAAY,eAAe,CAAC,MAAM,SAAS,QAAQ,GAAG,IAAI,GAAG,IAAI,IAAI,cAAc,CACjF,MAAM,SAAS,QAAQ,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CACrG,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Queries/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAEhD,oBAAY,mBAAmB,GAAG,qBAAqB,CAAA;AAEvD,oBAAY,eAAe,CAAC,MAAM,SAAS,QAAQ,GAAG,IAAI,GAAG,IAAI,IAAI,cAAc,CACjF,MAAM,SAAS,QAAQ,GAAG,mBAAmB,GAAG,MAAM,GAAG,mBAAmB,CAC7E,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(payloads?: XyoPayloads): Promisable<XyoPayload | null>;
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,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;IAEtD,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.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,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACrD,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"}
@@ -1,7 +1,7 @@
1
1
  import { XyoModuleWrapper } from '@xyo-network/module';
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
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(payloads?: XyoPayloads): Promise<XyoPayload | null>;
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,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,qBAAa,iBAAkB,SAAQ,gBAAiB,YAAW,OAAO;IAClE,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAKjE"}
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
5
  async divine(payloads) {
5
- const query = { payloads, schema: XyoDivinerDivineQuerySchema };
6
- const bw = (await this.bindPayloads([query]))[0];
7
- return (await this.module.query(bw, query))[1][0];
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,QAAsB;QACjC,MAAM,KAAK,GAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAA;QACtF,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,CAAC,CAAC,CAAC,CAAA;IACnD,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,12 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.7",
14
- "@xyo-network/account": "^2.34.0",
15
- "@xyo-network/archivist": "^2.34.0",
16
- "@xyo-network/boundwitness": "^2.34.0",
17
- "@xyo-network/module": "^2.34.0",
18
- "@xyo-network/payload": "^2.34.0",
19
- "@xyo-network/promise": "^2.34.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",
19
+ "lodash": "^4.17.21",
20
20
  "tslib": "^2.4.0"
21
21
  },
22
22
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -52,5 +52,6 @@
52
52
  },
53
53
  "sideEffects": false,
54
54
  "types": "dist/esm/index.d.ts",
55
- "version": "2.34.0"
55
+ "version": "2.36.0-rc.1",
56
+ "stableVersion": "2.35.0"
56
57
  }
package/src/Diviner.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { Module } from '@xyo-network/module'
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
2
+ import { XyoPayloads } from '@xyo-network/payload'
3
3
  import { Promisable } from '@xyo-network/promise'
4
4
 
5
5
  export interface Diviner {
6
- divine(payloads?: XyoPayloads): Promisable<XyoPayload | null>
6
+ /* context is the hash of the payload that defines the divining */
7
+ divine: (payloads?: XyoPayloads) => Promisable<XyoPayloads>
7
8
  }
8
9
 
9
10
  export interface DivinerModule extends Module, Diviner {}
@@ -1,10 +1,9 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { PayloadArchivist, XyoArchivistGetQuery, XyoArchivistGetQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist'
3
3
  import { PartialModuleConfig, XyoModuleResolverFunc } from '@xyo-network/module'
4
- import { Huri, XyoPayload, XyoPayloads } from '@xyo-network/payload'
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,16 +25,18 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPa
26
25
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
27
26
  }
28
27
 
29
- public async divine(payloads?: XyoPayloads): Promise<XyoPayload | null> {
30
- const huriPayload = assertEx(payloads?.find((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema))
31
- const huriObj = new Huri(huriPayload.huri)
28
+ public async divine(payloads?: XyoPayloads): Promise<XyoPayloads> {
29
+ const huriPayloads = assertEx(
30
+ payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),
31
+ `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`,
32
+ )
33
+ const hashes = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri).hash)).flat()
32
34
  const activeArchivist = this.archivist
33
35
  if (activeArchivist) {
34
- const query: XyoArchivistGetQuery = { hashes: [huriObj.hash], schema: XyoArchivistGetQuerySchema }
35
- const bw = (await this.bindPayloads([query]))[0]
36
- const [[, [payload = null]]] = await profile(async () => await activeArchivist.query(bw, query))
37
- return payload ?? null
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]
38
39
  }
39
- return null
40
+ return []
40
41
  }
41
42
  }
@@ -1,8 +1,8 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
- import { Huri, XyoPayload, XyoPayloads } from '@xyo-network/payload'
2
+ import { Huri, XyoPayloads } from '@xyo-network/payload'
3
+ import compact from 'lodash/compact'
3
4
 
4
5
  import { XyoDivinerDivineQuerySchema } from '../../Queries'
5
- import { profile } from '../lib'
6
6
  import { XyoHuriPayload, XyoHuriSchema } from '../XyoHuriPayload'
7
7
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner'
8
8
  import { XyoHuriPayloadDivinerConfig } from './Config'
@@ -16,10 +16,14 @@ export class XyoHuriPayloadDiviner extends XyoPayloadDiviner<XyoHuriPayloadDivin
16
16
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
17
17
  }
18
18
 
19
- override async divine(payloads?: XyoPayloads): Promise<XyoPayload | null> {
20
- const huriPayload = assertEx(payloads?.find((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema))
21
- const huri = new Huri(huriPayload?.huri, this.options)
22
- const [payload = null] = await profile(async () => await huri.fetch())
23
- return payload ?? null
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()
25
+
26
+ const settled = await Promise.allSettled(huriList.map((huri) => huri.fetch()))
27
+ return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)))
24
28
  }
25
29
  }
@@ -5,5 +5,5 @@ export const XyoHuriSchema: XyoHuriSchema = 'network.xyo.huri'
5
5
 
6
6
  export type XyoHuriPayload = XyoPayload<{
7
7
  schema: 'network.xyo.huri'
8
- huri: string
8
+ huri: string[]
9
9
  }>
@@ -1,10 +1,8 @@
1
1
  import { XyoQuery } from '@xyo-network/module'
2
- import { XyoPayload, 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
- export type XyoDivinerDivineQuery<T extends XyoPayload = XyoPayload> = XyoQuery<{
6
+ export type XyoDivinerDivineQuery = XyoQuery<{
8
7
  schema: XyoDivinerDivineQuerySchema
9
- payloads?: XyoPayloads<T>
10
8
  }>
@@ -1,12 +1,11 @@
1
1
  export * from './Divine'
2
2
 
3
3
  import { XyoModuleQuery, XyoQuery } from '@xyo-network/module'
4
- import { XyoPayload } from '@xyo-network/payload'
5
4
 
6
5
  import { XyoDivinerDivineQuery } from './Divine'
7
6
 
8
- export type XyoDivinerQueryBase<TDivineResult extends XyoPayload = XyoPayload> = XyoDivinerDivineQuery<TDivineResult>
7
+ export type XyoDivinerQueryBase = XyoDivinerDivineQuery
9
8
 
10
9
  export type XyoDivinerQuery<TQuery extends XyoQuery | void = void> = XyoModuleQuery<
11
- TQuery extends XyoQuery ? XyoDivinerQueryBase<XyoPayload> | TQuery : XyoDivinerQueryBase<XyoPayload>
10
+ TQuery extends XyoQuery ? XyoDivinerQueryBase | TQuery : XyoDivinerQueryBase
12
11
  >
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(payloads?: XyoPayloads): Promisable<XyoPayload | null>
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.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 { XyoPayload, 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(payloads?: XyoPayloads): Promise<XyoPayload | null> {
9
- const query: XyoDivinerDivineQuery = { payloads, schema: XyoDivinerDivineQuerySchema }
10
- const bw = (await this.bindPayloads([query]))[0]
11
- return (await this.module.query(bw, query))[1][0]
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
  }