@xyo-network/diviner 2.24.11 → 2.25.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 (36) hide show
  1. package/dist/cjs/Diviner/Diviner.d.ts +20 -6
  2. package/dist/cjs/Diviner/Diviner.d.ts.map +1 -1
  3. package/dist/cjs/Diviner/Diviner.js +10 -0
  4. package/dist/cjs/Diviner/Diviner.js.map +1 -1
  5. package/dist/cjs/Diviner/Payload/Archivist/Diviner.d.ts +4 -3
  6. package/dist/cjs/Diviner/Payload/Archivist/Diviner.d.ts.map +1 -1
  7. package/dist/cjs/Diviner/Payload/Archivist/Diviner.js +5 -4
  8. package/dist/cjs/Diviner/Payload/Archivist/Diviner.js.map +1 -1
  9. package/dist/cjs/Diviner/Payload/Huri/Diviner.d.ts +4 -3
  10. package/dist/cjs/Diviner/Payload/Huri/Diviner.d.ts.map +1 -1
  11. package/dist/cjs/Diviner/Payload/Huri/Diviner.js +4 -3
  12. package/dist/cjs/Diviner/Payload/Huri/Diviner.js.map +1 -1
  13. package/dist/cjs/Diviner/Payload/XyoPayloadDiviner.d.ts +1 -2
  14. package/dist/cjs/Diviner/Payload/XyoPayloadDiviner.d.ts.map +1 -1
  15. package/dist/cjs/Diviner/Payload/XyoPayloadDiviner.js.map +1 -1
  16. package/dist/docs.json +2303 -0
  17. package/dist/esm/Diviner/Diviner.d.ts +20 -6
  18. package/dist/esm/Diviner/Diviner.d.ts.map +1 -1
  19. package/dist/esm/Diviner/Diviner.js +11 -0
  20. package/dist/esm/Diviner/Diviner.js.map +1 -1
  21. package/dist/esm/Diviner/Payload/Archivist/Diviner.d.ts +4 -3
  22. package/dist/esm/Diviner/Payload/Archivist/Diviner.d.ts.map +1 -1
  23. package/dist/esm/Diviner/Payload/Archivist/Diviner.js +5 -4
  24. package/dist/esm/Diviner/Payload/Archivist/Diviner.js.map +1 -1
  25. package/dist/esm/Diviner/Payload/Huri/Diviner.d.ts +4 -3
  26. package/dist/esm/Diviner/Payload/Huri/Diviner.d.ts.map +1 -1
  27. package/dist/esm/Diviner/Payload/Huri/Diviner.js +4 -3
  28. package/dist/esm/Diviner/Payload/Huri/Diviner.js.map +1 -1
  29. package/dist/esm/Diviner/Payload/XyoPayloadDiviner.d.ts +1 -2
  30. package/dist/esm/Diviner/Payload/XyoPayloadDiviner.d.ts.map +1 -1
  31. package/dist/esm/Diviner/Payload/XyoPayloadDiviner.js.map +1 -1
  32. package/package.json +6 -5
  33. package/src/Diviner/Diviner.ts +26 -11
  34. package/src/Diviner/Payload/Archivist/Diviner.ts +8 -5
  35. package/src/Diviner/Payload/Huri/Diviner.ts +7 -4
  36. package/src/Diviner/Payload/XyoPayloadDiviner.ts +1 -3
@@ -1,10 +1,24 @@
1
- import { WithTimestamp, XyoPayload, XyoQueryPayload } from '@xyo-network/payload';
2
- export interface XyoDiviner<TPayload extends XyoPayload = XyoPayload, TQueryPayload extends XyoQueryPayload = XyoQueryPayload> {
3
- divine(query: TQueryPayload): Promise<TPayload>;
1
+ import { XyoAccount } from '@xyo-network/account';
2
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
3
+ import { XyoPayload, XyoQueryPayload } from '@xyo-network/payload';
4
+ export interface XyoNode {
5
+ attach(module: XyoDiviner): void;
6
+ remove(address: string): void;
7
+ get<T extends XyoDiviner>(address: string): T | undefined;
4
8
  }
5
- export declare abstract class XyoAbstractDiviner<TPayload extends XyoPayload = XyoPayload, TQueryPayload extends XyoQueryPayload = XyoQueryPayload> implements XyoDiviner<TPayload> {
6
- abstract divine(query: TQueryPayload): Promise<TPayload>;
9
+ export interface XyoDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> {
10
+ address: string;
11
+ divine(query: TQueryPayload): Promise<XyoBoundWitness>;
7
12
  }
8
- export declare abstract class XyoAbstractTimestampDiviner<TTargetPayload extends WithTimestamp<XyoPayload> = WithTimestamp<XyoPayload>, TQueryPayload extends XyoQueryPayload = XyoQueryPayload> extends XyoAbstractDiviner<TTargetPayload, TQueryPayload> {
13
+ export declare abstract class XyoAbstractDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> implements XyoDiviner<TQueryPayload> {
14
+ protected account: XyoAccount;
15
+ constructor(account: XyoAccount);
16
+ abstract divine(query: TQueryPayload): Promise<XyoBoundWitness>;
17
+ get address(): string;
18
+ bind(payloads: XyoPayload[]): import("@xyo-network/boundwitness").XyoBoundWitnessWithMeta<XyoBoundWitness, XyoPayload<{
19
+ schema: string;
20
+ }>>;
21
+ }
22
+ export declare abstract class XyoAbstractTimestampDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> extends XyoAbstractDiviner<TQueryPayload> {
9
23
  }
10
24
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEjF,MAAM,WAAW,UAAU,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU,EAAE,aAAa,SAAS,eAAe,GAAG,eAAe;IAC3H,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChD;AAED,8BAAsB,kBAAkB,CAAC,QAAQ,SAAS,UAAU,GAAG,UAAU,EAAE,aAAa,SAAS,eAAe,GAAG,eAAe,CACxI,YAAW,UAAU,CAAC,QAAQ,CAAC;IAE/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;CACzD;AAED,8BAAsB,2BAA2B,CAC/C,cAAc,SAAS,aAAa,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,EAC5E,aAAa,SAAS,eAAe,GAAG,eAAe,CACvD,SAAQ,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC;CAAG"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,eAAe,EAA0B,MAAM,2BAA2B,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAA;IAChC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;CAC1D;AAED,MAAM,WAAW,UAAU,CAAC,aAAa,SAAS,eAAe,GAAG,eAAe;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACvD;AAED,8BAAsB,kBAAkB,CAAC,aAAa,SAAS,eAAe,GAAG,eAAe,CAAE,YAAW,UAAU,CAAC,aAAa,CAAC;IACpI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAA;gBACjB,OAAO,EAAE,UAAU;IAG/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAC/D,IAAI,OAAO,WAEV;IAED,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;;;CAG5B;AAED,8BAAsB,2BAA2B,CAAC,aAAa,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,kBAAkB,CAAC,aAAa,CAAC;CAAG"}
@@ -1,4 +1,15 @@
1
+ import { XyoBoundWitnessBuilder } from '@xyo-network/boundwitness';
1
2
  export class XyoAbstractDiviner {
3
+ account;
4
+ constructor(account) {
5
+ this.account = account;
6
+ }
7
+ get address() {
8
+ return this.account.addressValue.hex;
9
+ }
10
+ bind(payloads) {
11
+ return new XyoBoundWitnessBuilder().payloads(payloads).witness(this.account).build();
12
+ }
2
13
  }
3
14
  export class XyoAbstractTimestampDiviner extends XyoAbstractDiviner {
4
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AAMA,MAAM,OAAgB,kBAAkB;CAIvC;AAED,MAAM,OAAgB,2BAGpB,SAAQ,kBAAiD;CAAG"}
1
+ {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAcnF,MAAM,OAAgB,kBAAkB;IAC5B,OAAO,CAAY;IAC7B,YAAY,OAAmB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,QAAsB;QACzB,OAAO,IAAI,sBAAsB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IACtF,CAAC;CACF;AAED,MAAM,OAAgB,2BAAqF,SAAQ,kBAAiC;CAAG"}
@@ -1,10 +1,11 @@
1
+ import { XyoAccount } from '@xyo-network/account';
1
2
  import { XyoArchivist } from '@xyo-network/archivist';
3
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
2
4
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
3
- import { XyoPayloadDivinerPayload } from '../XyoPayloadDivinerPayload';
4
5
  import { XyoPayloadDivinerQueryPayload } from '../XyoPayloadDivinerQueryPayload';
5
6
  export declare class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
6
7
  protected archivist: XyoArchivist;
7
- constructor(archivist: XyoArchivist);
8
- divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoPayloadDivinerPayload>;
8
+ constructor(account: XyoAccount, archivist: XyoArchivist);
9
+ divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoBoundWitness>;
9
10
  }
10
11
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAIrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAkC,MAAM,6BAA6B,CAAA;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhF,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,SAAS,CAAC,SAAS,EAAE,YAAY,CAAA;gBAErB,SAAS,EAAE,YAAY;IAKpB,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAK/F"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAI3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhF,qBAAa,0BAA2B,SAAQ,iBAAiB;IAC/D,SAAS,CAAC,SAAS,EAAE,YAAY,CAAA;gBAErB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY;IAKzC,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;CAMtF"}
@@ -4,14 +4,15 @@ import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
4
4
  import { XyoPayloadDivinerPayloadSchema } from '../XyoPayloadDivinerPayload';
5
5
  export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
6
6
  archivist;
7
- constructor(archivist) {
8
- super();
7
+ constructor(account, archivist) {
8
+ super(account);
9
9
  this.archivist = archivist;
10
10
  }
11
11
  async divine(query) {
12
12
  const huri = new Huri(query.huri);
13
- const [payload = [], duration] = await profile(async () => await this.archivist.get([huri.hash]));
14
- return { duration, payload: payload.pop() ?? null, schema: XyoPayloadDivinerPayloadSchema };
13
+ const [payloads = [], duration] = await profile(async () => await this.archivist.get([huri.hash]));
14
+ const resultPayload = { duration, payload: payloads.pop() ?? null, schema: XyoPayloadDivinerPayloadSchema };
15
+ return this.bind([resultPayload]);
15
16
  }
16
17
  }
17
18
  //# sourceMappingURL=Diviner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAA4B,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAGtG,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IACrD,SAAS,CAAc;IAEjC,YAAY,SAAuB;QACjC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAoC;QACxD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,OAAO,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAA;IAC7F,CAAC;CACF"}
1
+ {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAA4B,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAGtG,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IACrD,SAAS,CAAc;IAEjC,YAAY,OAAmB,EAAE,SAAuB;QACtD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAoC;QACxD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClG,MAAM,aAAa,GAA6B,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAA;QACrI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;IACnC,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
+ import { XyoAccount } from '@xyo-network/account';
2
+ import { XyoBoundWitness } from '@xyo-network/boundwitness';
1
3
  import { HuriOptions } from '@xyo-network/payload';
2
4
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
3
- import { XyoPayloadDivinerPayload } from '../XyoPayloadDivinerPayload';
4
5
  import { XyoPayloadDivinerQueryPayload } from '../XyoPayloadDivinerQueryPayload';
5
6
  export declare class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
6
7
  protected options: HuriOptions;
7
- constructor(options: HuriOptions);
8
- divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoPayloadDivinerPayload>;
8
+ constructor(account: XyoAccount, options: HuriOptions);
9
+ divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoBoundWitness>;
9
10
  }
10
11
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,wBAAwB,EAAkC,MAAM,6BAA6B,CAAA;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhF,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;gBAElB,OAAO,EAAE,WAAW;IAKjB,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAK/F"}
1
+ {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAQ,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAA;AAEhF,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,OAAO,EAAE,WAAW,CAAA;gBAElB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW;IAKtC,MAAM,CAAC,KAAK,EAAE,6BAA6B,GAAG,OAAO,CAAC,eAAe,CAAC;CAMtF"}
@@ -4,14 +4,15 @@ import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
4
4
  import { XyoPayloadDivinerPayloadSchema } from '../XyoPayloadDivinerPayload';
5
5
  export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
6
6
  options;
7
- constructor(options) {
8
- super();
7
+ constructor(account, options) {
8
+ super(account);
9
9
  this.options = options;
10
10
  }
11
11
  async divine(query) {
12
12
  const huri = new Huri(query.huri, this.options);
13
13
  const [payload = null, duration] = await profile(async () => await huri.fetch());
14
- return { duration, payload, schema: XyoPayloadDivinerPayloadSchema };
14
+ const resultPayload = { duration, payload, schema: XyoPayloadDivinerPayloadSchema };
15
+ return this.bind([resultPayload]);
15
16
  }
16
17
  }
17
18
  //# sourceMappingURL=Diviner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAA4B,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAGtG,MAAM,OAAO,qBAAsB,SAAQ,iBAAiB;IAChD,OAAO,CAAa;IAE9B,YAAY,OAAoB;QAC9B,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAoC;QACxD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAChF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAA;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../../src/Diviner/Payload/Huri/Diviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAe,MAAM,sBAAsB,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAA4B,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAGtG,MAAM,OAAO,qBAAsB,SAAQ,iBAAiB;IAChD,OAAO,CAAa;IAE9B,YAAY,OAAmB,EAAE,OAAoB;QACnD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,KAAoC;QACxD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/C,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QAChF,MAAM,aAAa,GAA6B,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAA;QAC7G,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;IACnC,CAAC;CACF"}
@@ -1,6 +1,5 @@
1
1
  import { XyoAbstractDiviner } from '../Diviner';
2
- import { XyoPayloadDivinerPayload } from './XyoPayloadDivinerPayload';
3
2
  import { XyoPayloadDivinerQueryPayload } from './XyoPayloadDivinerQueryPayload';
4
- export declare abstract class XyoPayloadDiviner<TTargetPayload extends XyoPayloadDivinerPayload = XyoPayloadDivinerPayload, TQueryPayload extends XyoPayloadDivinerQueryPayload = XyoPayloadDivinerQueryPayload> extends XyoAbstractDiviner<TTargetPayload, TQueryPayload> {
3
+ export declare abstract class XyoPayloadDiviner<TQueryPayload extends XyoPayloadDivinerQueryPayload = XyoPayloadDivinerQueryPayload> extends XyoAbstractDiviner<TQueryPayload> {
5
4
  }
6
5
  //# sourceMappingURL=XyoPayloadDiviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"XyoPayloadDiviner.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/Payload/XyoPayloadDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,8BAAsB,iBAAiB,CACrC,cAAc,SAAS,wBAAwB,GAAG,wBAAwB,EAC1E,aAAa,SAAS,6BAA6B,GAAG,6BAA6B,CACnF,SAAQ,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC;CAAG"}
1
+ {"version":3,"file":"XyoPayloadDiviner.d.ts","sourceRoot":"","sources":["../../../../src/Diviner/Payload/XyoPayloadDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAA;AAE/E,8BAAsB,iBAAiB,CACrC,aAAa,SAAS,6BAA6B,GAAG,6BAA6B,CACnF,SAAQ,kBAAkB,CAAC,aAAa,CAAC;CAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"XyoPayloadDiviner.js","sourceRoot":"","sources":["../../../../src/Diviner/Payload/XyoPayloadDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAI/C,MAAM,OAAgB,iBAGpB,SAAQ,kBAAiD;CAAG"}
1
+ {"version":3,"file":"XyoPayloadDiviner.js","sourceRoot":"","sources":["../../../../src/Diviner/Payload/XyoPayloadDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,MAAM,OAAgB,iBAEpB,SAAQ,kBAAiC;CAAG"}
package/package.json CHANGED
@@ -10,13 +10,15 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xyo-network/archivist": "^2.24.11",
14
- "@xyo-network/payload": "^2.24.11",
13
+ "@xyo-network/account": "^2.25.0",
14
+ "@xyo-network/archivist": "^2.25.0",
15
+ "@xyo-network/boundwitness": "^2.25.0",
16
+ "@xyo-network/payload": "^2.25.0",
15
17
  "tslib": "^2.4.0"
16
18
  },
17
19
  "description": "Primary SDK for using XYO Protocol 2.0",
18
20
  "devDependencies": {
19
- "@xylabs/tsconfig": "^2.5.68"
21
+ "@xylabs/tsconfig": "^2.5.87"
20
22
  },
21
23
  "browser": "dist/esm/index.js",
22
24
  "docs": "dist/docs.json",
@@ -50,6 +52,5 @@
50
52
  },
51
53
  "sideEffects": false,
52
54
  "types": "dist/esm/index.d.ts",
53
- "version": "2.24.11",
54
- "packageManager": "yarn@3.1.1"
55
+ "version": "2.25.0"
55
56
  }
@@ -1,16 +1,31 @@
1
- import { WithTimestamp, XyoPayload, XyoQueryPayload } from '@xyo-network/payload'
1
+ import { XyoAccount } from '@xyo-network/account'
2
+ import { XyoBoundWitness, XyoBoundWitnessBuilder } from '@xyo-network/boundwitness'
3
+ import { XyoPayload, XyoQueryPayload } from '@xyo-network/payload'
2
4
 
3
- export interface XyoDiviner<TPayload extends XyoPayload = XyoPayload, TQueryPayload extends XyoQueryPayload = XyoQueryPayload> {
4
- divine(query: TQueryPayload): Promise<TPayload>
5
+ export interface XyoNode {
6
+ attach(module: XyoDiviner): void
7
+ remove(address: string): void
8
+ get<T extends XyoDiviner>(address: string): T | undefined
5
9
  }
6
10
 
7
- export abstract class XyoAbstractDiviner<TPayload extends XyoPayload = XyoPayload, TQueryPayload extends XyoQueryPayload = XyoQueryPayload>
8
- implements XyoDiviner<TPayload>
9
- {
10
- abstract divine(query: TQueryPayload): Promise<TPayload>
11
+ export interface XyoDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> {
12
+ address: string
13
+ divine(query: TQueryPayload): Promise<XyoBoundWitness>
11
14
  }
12
15
 
13
- export abstract class XyoAbstractTimestampDiviner<
14
- TTargetPayload extends WithTimestamp<XyoPayload> = WithTimestamp<XyoPayload>,
15
- TQueryPayload extends XyoQueryPayload = XyoQueryPayload
16
- > extends XyoAbstractDiviner<TTargetPayload, TQueryPayload> {}
16
+ export abstract class XyoAbstractDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> implements XyoDiviner<TQueryPayload> {
17
+ protected account: XyoAccount
18
+ constructor(account: XyoAccount) {
19
+ this.account = account
20
+ }
21
+ abstract divine(query: TQueryPayload): Promise<XyoBoundWitness>
22
+ get address() {
23
+ return this.account.addressValue.hex
24
+ }
25
+
26
+ bind(payloads: XyoPayload[]) {
27
+ return new XyoBoundWitnessBuilder().payloads(payloads).witness(this.account).build()
28
+ }
29
+ }
30
+
31
+ export abstract class XyoAbstractTimestampDiviner<TQueryPayload extends XyoQueryPayload = XyoQueryPayload> extends XyoAbstractDiviner<TQueryPayload> {}
@@ -1,4 +1,6 @@
1
+ import { XyoAccount } from '@xyo-network/account'
1
2
  import { XyoArchivist } from '@xyo-network/archivist'
3
+ import { XyoBoundWitness } from '@xyo-network/boundwitness'
2
4
  import { Huri } from '@xyo-network/payload'
3
5
 
4
6
  import { profile } from '../lib'
@@ -9,14 +11,15 @@ import { XyoPayloadDivinerQueryPayload } from '../XyoPayloadDivinerQueryPayload'
9
11
  export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
10
12
  protected archivist: XyoArchivist
11
13
 
12
- constructor(archivist: XyoArchivist) {
13
- super()
14
+ constructor(account: XyoAccount, archivist: XyoArchivist) {
15
+ super(account)
14
16
  this.archivist = archivist
15
17
  }
16
18
 
17
- override async divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoPayloadDivinerPayload> {
19
+ override async divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoBoundWitness> {
18
20
  const huri = new Huri(query.huri)
19
- const [payload = [], duration] = await profile(async () => await this.archivist.get([huri.hash]))
20
- return { duration, payload: payload.pop() ?? null, schema: XyoPayloadDivinerPayloadSchema }
21
+ const [payloads = [], duration] = await profile(async () => await this.archivist.get([huri.hash]))
22
+ const resultPayload: XyoPayloadDivinerPayload = { duration, payload: payloads.pop() ?? null, schema: XyoPayloadDivinerPayloadSchema }
23
+ return this.bind([resultPayload])
21
24
  }
22
25
  }
@@ -1,3 +1,5 @@
1
+ import { XyoAccount } from '@xyo-network/account'
2
+ import { XyoBoundWitness } from '@xyo-network/boundwitness'
1
3
  import { Huri, HuriOptions } from '@xyo-network/payload'
2
4
 
3
5
  import { profile } from '../lib'
@@ -8,14 +10,15 @@ import { XyoPayloadDivinerQueryPayload } from '../XyoPayloadDivinerQueryPayload'
8
10
  export class XyoHuriPayloadDiviner extends XyoPayloadDiviner {
9
11
  protected options: HuriOptions
10
12
 
11
- constructor(options: HuriOptions) {
12
- super()
13
+ constructor(account: XyoAccount, options: HuriOptions) {
14
+ super(account)
13
15
  this.options = options
14
16
  }
15
17
 
16
- override async divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoPayloadDivinerPayload> {
18
+ override async divine(query: XyoPayloadDivinerQueryPayload): Promise<XyoBoundWitness> {
17
19
  const huri = new Huri(query.huri, this.options)
18
20
  const [payload = null, duration] = await profile(async () => await huri.fetch())
19
- return { duration, payload, schema: XyoPayloadDivinerPayloadSchema }
21
+ const resultPayload: XyoPayloadDivinerPayload = { duration, payload, schema: XyoPayloadDivinerPayloadSchema }
22
+ return this.bind([resultPayload])
20
23
  }
21
24
  }
@@ -1,8 +1,6 @@
1
1
  import { XyoAbstractDiviner } from '../Diviner'
2
- import { XyoPayloadDivinerPayload } from './XyoPayloadDivinerPayload'
3
2
  import { XyoPayloadDivinerQueryPayload } from './XyoPayloadDivinerQueryPayload'
4
3
 
5
4
  export abstract class XyoPayloadDiviner<
6
- TTargetPayload extends XyoPayloadDivinerPayload = XyoPayloadDivinerPayload,
7
5
  TQueryPayload extends XyoPayloadDivinerQueryPayload = XyoPayloadDivinerQueryPayload
8
- > extends XyoAbstractDiviner<TTargetPayload, TQueryPayload> {}
6
+ > extends XyoAbstractDiviner<TQueryPayload> {}