@xyo-network/diviner 2.34.0 → 2.35.0

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 (58) 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 +10 -7
  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 +7 -6
  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 +4 -3
  14. package/dist/cjs/Queries/Divine.d.ts.map +1 -1
  15. package/dist/cjs/Queries/index.d.ts +2 -3
  16. package/dist/cjs/Queries/index.d.ts.map +1 -1
  17. package/dist/cjs/XyoDiviner.d.ts +1 -1
  18. package/dist/cjs/XyoDiviner.d.ts.map +1 -1
  19. package/dist/cjs/XyoDiviner.js +1 -1
  20. package/dist/cjs/XyoDiviner.js.map +1 -1
  21. package/dist/cjs/XyoDivinerWrapper.d.ts +2 -2
  22. package/dist/cjs/XyoDivinerWrapper.d.ts.map +1 -1
  23. package/dist/cjs/XyoDivinerWrapper.js +3 -3
  24. package/dist/cjs/XyoDivinerWrapper.js.map +1 -1
  25. package/dist/docs.json +2429 -2265
  26. package/dist/esm/Diviner.d.ts +2 -2
  27. package/dist/esm/Diviner.d.ts.map +1 -1
  28. package/dist/esm/Payload/Archivist/Diviner.d.ts +2 -2
  29. package/dist/esm/Payload/Archivist/Diviner.d.ts.map +1 -1
  30. package/dist/esm/Payload/Archivist/Diviner.js +11 -8
  31. package/dist/esm/Payload/Archivist/Diviner.js.map +1 -1
  32. package/dist/esm/Payload/Huri/Diviner.d.ts +2 -2
  33. package/dist/esm/Payload/Huri/Diviner.d.ts.map +1 -1
  34. package/dist/esm/Payload/Huri/Diviner.js +8 -7
  35. package/dist/esm/Payload/Huri/Diviner.js.map +1 -1
  36. package/dist/esm/Payload/XyoHuriPayload.d.ts +1 -1
  37. package/dist/esm/Payload/XyoHuriPayload.d.ts.map +1 -1
  38. package/dist/esm/Queries/Divine.d.ts +4 -3
  39. package/dist/esm/Queries/Divine.d.ts.map +1 -1
  40. package/dist/esm/Queries/index.d.ts +2 -3
  41. package/dist/esm/Queries/index.d.ts.map +1 -1
  42. package/dist/esm/XyoDiviner.d.ts +1 -1
  43. package/dist/esm/XyoDiviner.d.ts.map +1 -1
  44. package/dist/esm/XyoDiviner.js +1 -1
  45. package/dist/esm/XyoDiviner.js.map +1 -1
  46. package/dist/esm/XyoDivinerWrapper.d.ts +2 -2
  47. package/dist/esm/XyoDivinerWrapper.d.ts.map +1 -1
  48. package/dist/esm/XyoDivinerWrapper.js +3 -3
  49. package/dist/esm/XyoDivinerWrapper.js.map +1 -1
  50. package/package.json +8 -7
  51. package/src/Diviner.ts +3 -2
  52. package/src/Payload/Archivist/Diviner.ts +17 -8
  53. package/src/Payload/Huri/Diviner.ts +9 -7
  54. package/src/Payload/XyoHuriPayload.ts +1 -1
  55. package/src/Queries/Divine.ts +4 -3
  56. package/src/Queries/index.ts +2 -3
  57. package/src/XyoDiviner.ts +2 -2
  58. package/src/XyoDivinerWrapper.ts +4 -4
@@ -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: (context?: string, 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,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,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(context?: string, 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;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,6 +1,6 @@
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
5
  import { profile } from '../lib';
6
6
  import { XyoHuriSchema } from '../XyoHuriPayload';
@@ -19,17 +19,20 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
19
19
  queries() {
20
20
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
21
21
  }
22
- async divine(payloads) {
23
- const huriPayload = assertEx(payloads?.find((payload) => payload?.schema === XyoHuriSchema));
24
- const huriObj = new Huri(huriPayload.huri);
22
+ async divine(context, payloads) {
23
+ 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);
25
28
  const activeArchivist = this.archivist;
26
29
  if (activeArchivist) {
27
- const query = { hashes: [huriObj.hash], schema: XyoArchivistGetQuerySchema };
30
+ const query = { hashes, schema: XyoArchivistGetQuerySchema };
28
31
  const bw = (await this.bindPayloads([query]))[0];
29
- const [[, [payload = null]]] = await profile(async () => await activeArchivist.query(bw, query));
30
- return payload ?? null;
32
+ const [[, payloads]] = await profile(async () => await activeArchivist.query(bw, query));
33
+ return payloads;
31
34
  }
32
- return null;
35
+ return [];
33
36
  }
34
37
  }
35
38
  //# 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,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,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(context?: string, 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,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,7 +1,7 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
- import { Huri } from '@xyo-network/payload';
2
+ import { Huri, PayloadWrapper } 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 {
@@ -11,11 +11,12 @@ export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
11
11
  queries() {
12
12
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
13
13
  }
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;
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()));
19
+ return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)));
19
20
  }
20
21
  }
21
22
  //# 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,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"}
@@ -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,10 @@
1
1
  import { XyoQuery } from '@xyo-network/module';
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
2
+ import { XyoPayloads } from '@xyo-network/payload';
3
3
  export declare type XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine';
4
4
  export declare const XyoDivinerDivineQuerySchema: XyoDivinerDivineQuerySchema;
5
- export declare type XyoDivinerDivineQuery<T extends XyoPayload = XyoPayload> = XyoQuery<{
5
+ export declare type XyoDivinerDivineQuery = XyoQuery<{
6
6
  schema: XyoDivinerDivineQuerySchema;
7
- payloads?: XyoPayloads<T>;
7
+ context?: string;
8
+ payloads?: XyoPayloads;
8
9
  }>;
9
10
  //# 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;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,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"}
@@ -5,7 +5,7 @@ import { Promisable } from '@xyo-network/promise';
5
5
  import { XyoDivinerConfig } from './Config';
6
6
  import { DivinerModule } from './Diviner';
7
7
  export declare abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
8
- abstract divine(payloads?: XyoPayloads): Promisable<XyoPayload | null>;
8
+ abstract divine(context?: string, data?: XyoPayloads): Promisable<XyoPayloads>;
9
9
  queries(): string[];
10
10
  query<T extends XyoQuery = XyoQuery>(bw: XyoBoundWitness, query: T): Promise<XyoModuleQueryResult<XyoPayload>>;
11
11
  }
@@ -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,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"}
@@ -16,7 +16,7 @@ export class XyoDiviner extends XyoModule {
16
16
  const typedQuery = query;
17
17
  switch (typedQuery.schema) {
18
18
  case XyoDivinerDivineQuerySchema:
19
- payloads.push(await this.divine(typedQuery.payloads));
19
+ payloads.push(...(await this.divine(typedQuery.context, typedQuery.payloads)));
20
20
  break;
21
21
  default:
22
22
  return super.query(bw, typedQuery);
@@ -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;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,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(context?: string, 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,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,10 +1,10 @@
1
1
  import { XyoModuleWrapper } from '@xyo-network/module';
2
2
  import { XyoDivinerDivineQuerySchema } from './Queries';
3
3
  export class XyoDivinerWrapper extends XyoModuleWrapper {
4
- async divine(payloads) {
5
- const query = { payloads, schema: XyoDivinerDivineQuerySchema };
4
+ async divine(context, payloads) {
5
+ const query = { context, payloads, schema: XyoDivinerDivineQuerySchema };
6
6
  const bw = (await this.bindPayloads([query]))[0];
7
- return (await this.module.query(bw, query))[1][0];
7
+ return (await this.module.query(bw, query))[1];
8
8
  }
9
9
  }
10
10
  //# 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;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"}
package/package.json CHANGED
@@ -11,12 +11,13 @@
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.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",
20
+ "lodash": "^4.17.21",
20
21
  "tslib": "^2.4.0"
21
22
  },
22
23
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -52,5 +53,5 @@
52
53
  },
53
54
  "sideEffects": false,
54
55
  "types": "dist/esm/index.d.ts",
55
- "version": "2.34.0"
56
+ "version": "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: (context?: string, payloads?: XyoPayloads) => Promisable<XyoPayloads>
7
8
  }
8
9
 
9
10
  export interface DivinerModule extends Module, Diviner {}
@@ -1,7 +1,7 @@
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
7
  import { profile } from '../lib'
@@ -26,16 +26,25 @@ export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPa
26
26
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
27
27
  }
28
28
 
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)
29
+ public async divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads> {
30
+ const huriPayloads = assertEx(
31
+ payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),
32
+ `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`,
33
+ )
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)
32
41
  const activeArchivist = this.archivist
33
42
  if (activeArchivist) {
34
- const query: XyoArchivistGetQuery = { hashes: [huriObj.hash], schema: XyoArchivistGetQuerySchema }
43
+ const query: XyoArchivistGetQuery = { hashes, schema: XyoArchivistGetQuerySchema }
35
44
  const bw = (await this.bindPayloads([query]))[0]
36
- const [[, [payload = null]]] = await profile(async () => await activeArchivist.query(bw, query))
37
- return payload ?? null
45
+ const [[, payloads]] = await profile(async () => await activeArchivist.query(bw, query))
46
+ return payloads
38
47
  }
39
- return null
48
+ return []
40
49
  }
41
50
  }
@@ -1,8 +1,8 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
- import { Huri, XyoPayload, XyoPayloads } from '@xyo-network/payload'
2
+ import { Huri, PayloadWrapper, 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,12 @@ 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(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))
23
+
24
+ const settled = await Promise.allSettled(huriObj.map((huri) => huri.fetch()))
25
+ return compact(settled.map((settle) => (settle.status === 'fulfilled' ? settle.value : null)))
24
26
  }
25
27
  }
@@ -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,11 @@
1
1
  import { XyoQuery } from '@xyo-network/module'
2
- import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
2
+ import { XyoPayloads } from '@xyo-network/payload'
3
3
 
4
4
  export type XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine'
5
5
  export const XyoDivinerDivineQuerySchema: XyoDivinerDivineQuerySchema = 'network.xyo.query.diviner.divine'
6
6
 
7
- export type XyoDivinerDivineQuery<T extends XyoPayload = XyoPayload> = XyoQuery<{
7
+ export type XyoDivinerDivineQuery = XyoQuery<{
8
8
  schema: XyoDivinerDivineQuerySchema
9
- payloads?: XyoPayloads<T>
9
+ context?: string
10
+ payloads?: XyoPayloads
10
11
  }>
@@ -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
@@ -10,7 +10,7 @@ import { DivinerModule } from './Diviner'
10
10
  import { XyoDivinerDivineQuerySchema, XyoDivinerQuery } from './Queries'
11
11
 
12
12
  export abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
13
- abstract divine(payloads?: XyoPayloads): Promisable<XyoPayload | null>
13
+ abstract divine(context?: string, data?: XyoPayloads): Promisable<XyoPayloads>
14
14
 
15
15
  public override queries(): string[] {
16
16
  return [XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, XyoDivinerDivineQuerySchema]
@@ -28,7 +28,7 @@ export abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerCo
28
28
  const typedQuery = query as XyoDivinerQuery
29
29
  switch (typedQuery.schema) {
30
30
  case XyoDivinerDivineQuerySchema:
31
- payloads.push(await this.divine(typedQuery.payloads))
31
+ payloads.push(...(await this.divine(typedQuery.context, typedQuery.payloads)))
32
32
  break
33
33
  default:
34
34
  return super.query(bw, typedQuery)
@@ -1,13 +1,13 @@
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
 
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 }
8
+ async divine(context?: string, payloads?: XyoPayloads): Promise<XyoPayloads> {
9
+ const query: XyoDivinerDivineQuery = { context, payloads, schema: XyoDivinerDivineQuerySchema }
10
10
  const bw = (await this.bindPayloads([query]))[0]
11
- return (await this.module.query(bw, query))[1][0]
11
+ return (await this.module.query(bw, query))[1]
12
12
  }
13
13
  }