@xyo-network/diviner 2.37.6 → 2.38.0-rc.10

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.
@@ -1,12 +1,13 @@
1
1
  import { PayloadArchivist } from '@xyo-network/archivist';
2
- import { PartialModuleConfig, XyoModuleResolverFunc } from '@xyo-network/module';
2
+ import { XyoModuleParams } from '@xyo-network/module';
3
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
- protected readonly archivist?: PayloadArchivist | null;
8
- constructor(config?: PartialModuleConfig<XyoArchivistPayloadDivinerConfig>, archivist?: PayloadArchivist, resolver?: XyoModuleResolverFunc);
7
+ static create(params?: XyoModuleParams): Promise<XyoArchivistPayloadDiviner>;
8
+ protected archivist?: PayloadArchivist | null;
9
9
  queries(): string[];
10
+ start(): Promise<this>;
10
11
  divine(payloads?: XyoPayloads): Promise<XyoPayloads>;
11
12
  }
12
13
  //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAyE,MAAM,wBAAwB,CAAA;AAChI,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAA;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
+ {"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,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAwB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AAE3D,qBAAa,0BAA2B,SAAQ,iBAAiB,CAAC,gCAAgC,CAAC;WAC3E,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAM3F,SAAS,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAEpC,OAAO;IAID,KAAK;IAcP,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAclE"}
@@ -4,20 +4,29 @@ import { Huri, PayloadWrapper } from '@xyo-network/payload';
4
4
  import { XyoDivinerDivineQuerySchema } from '../../Queries';
5
5
  import { XyoHuriSchema } from '../XyoHuriPayload';
6
6
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner';
7
- import { XyoArchivistPayloadDivinerConfigSchema } from './Config';
8
7
  export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner {
9
- archivist;
10
- constructor(config, archivist, resolver) {
11
- super({ ...config, schema: XyoArchivistPayloadDivinerConfigSchema }, undefined, resolver);
12
- const configArchivistAddress = config?.archivist;
13
- const resolvedArchivist = archivist ?? (configArchivistAddress ? this.resolver?.(configArchivistAddress) ?? null : null);
14
- if (resolvedArchivist) {
15
- this.archivist = resolvedArchivist ? new XyoArchivistWrapper(resolvedArchivist) : null;
16
- }
8
+ static async create(params) {
9
+ const module = new XyoArchivistPayloadDiviner(params);
10
+ await module.start();
11
+ return module;
17
12
  }
13
+ archivist;
18
14
  queries() {
19
15
  return [XyoDivinerDivineQuerySchema, ...super.queries()];
20
16
  }
17
+ async start() {
18
+ await super.start();
19
+ const configArchivistAddress = this.config?.archivist;
20
+ if (configArchivistAddress) {
21
+ const resolvedArchivist = configArchivistAddress
22
+ ? (this.resolver?.fromAddress([configArchivistAddress])).shift() ?? null
23
+ : null;
24
+ if (resolvedArchivist) {
25
+ this.archivist = resolvedArchivist ? new XyoArchivistWrapper(resolvedArchivist) : null;
26
+ }
27
+ }
28
+ return this;
29
+ }
21
30
  async divine(payloads) {
22
31
  const huriPayloads = assertEx(payloads?.filter((payload) => payload?.schema === XyoHuriSchema), `no huri payloads provided: ${JSON.stringify(payloads, null, 2)}`);
23
32
  const hashes = huriPayloads.map((huriPayload) => huriPayload.huri.map((huri) => new Huri(huri).hash)).flat();
@@ -1 +1 @@
1
- {"version":3,"file":"Diviner.js","sourceRoot":"","sources":["../../../../src/Payload/Archivist/Diviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAA0C,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEhI,OAAO,EAAE,IAAI,EAAE,cAAc,EAAe,MAAM,sBAAsB,CAAA;AAExE,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,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,YAAY,CAAC,CAAA;YAChD,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
+ {"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;AAGxD,MAAM,OAAO,0BAA2B,SAAQ,iBAAmD;IACjG,MAAM,CAAU,KAAK,CAAC,MAAM,CAAC,MAAwB;QACnD,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,MAA2D,CAAC,CAAA;QAC1G,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,OAAO,MAAM,CAAA;IACf,CAAC;IAES,SAAS,CAA0B;IAEpC,OAAO;QACd,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;QACnB,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAA;QACrD,IAAI,sBAAsB,EAAE;YAC1B,MAAM,iBAAiB,GAA4B,sBAAsB;gBACvE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAmC,CAAA,CAAC,KAAK,EAAE,IAAI,IAAI;gBACzG,CAAC,CAAC,IAAI,CAAA;YACR,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;aACvF;SACF;QACD,OAAO,IAAI,CAAA;IACb,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,YAAY,CAAC,CAAA;YAChD,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,8 +1,9 @@
1
- import { ModuleQueryResult, XyoModule, XyoQueryBoundWitness } from '@xyo-network/module';
1
+ import { ModuleQueryResult, XyoModule, XyoModuleParams, XyoQueryBoundWitness } from '@xyo-network/module';
2
2
  import { XyoPayload, XyoPayloads } from '@xyo-network/payload';
3
3
  import { Promisable } from '@xyo-network/promise';
4
4
  import { XyoDivinerConfig } from './Config';
5
5
  import { DivinerModule } from './Diviner';
6
+ export declare type XyoDivinerParams = XyoModuleParams;
6
7
  export declare abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
7
8
  abstract divine(payloads?: XyoPayloads): Promisable<XyoPayloads>;
8
9
  queries(): string[];
@@ -1 +1 @@
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,UAAU,EAAE,GACtB,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
+ {"version":3,"file":"XyoDiviner.d.ts","sourceRoot":"","sources":["../../src/XyoDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAA6C,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACpJ,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,oBAAY,gBAAgB,GAAG,eAAe,CAAA;AAE9C,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,UAAU,EAAE,GACtB,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;CAsB1C;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,10 +1,10 @@
1
1
  import { assertEx } from '@xylabs/assert';
2
2
  import { XyoAccount } from '@xyo-network/account';
3
- import { QueryBoundWitnessWrapper, XyoModule, XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, } from '@xyo-network/module';
3
+ import { QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule } from '@xyo-network/module';
4
4
  import { XyoDivinerDivineQuerySchema } from './Queries';
5
5
  export class XyoDiviner extends XyoModule {
6
6
  queries() {
7
- return [XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, XyoDivinerDivineQuerySchema];
7
+ return [XyoDivinerDivineQuerySchema, ...super.queries()];
8
8
  }
9
9
  async query(query, payloads) {
10
10
  const wrapper = QueryBoundWitnessWrapper.parseQuery(query, payloads);
@@ -12,12 +12,18 @@ export class XyoDiviner extends XyoModule {
12
12
  assertEx(this.queryable(query.schema, wrapper.addresses));
13
13
  const queryAccount = new XyoAccount();
14
14
  const resultPayloads = [];
15
- switch (typedQuery.schemaName) {
16
- case XyoDivinerDivineQuerySchema:
17
- resultPayloads.push(...(await this.divine(payloads)));
18
- break;
19
- default:
20
- return super.query(query, payloads);
15
+ try {
16
+ switch (typedQuery.schemaName) {
17
+ case XyoDivinerDivineQuerySchema:
18
+ resultPayloads.push(...(await this.divine(payloads)));
19
+ break;
20
+ default:
21
+ return super.query(query, payloads);
22
+ }
23
+ }
24
+ catch (ex) {
25
+ const error = ex;
26
+ resultPayloads.push(new XyoErrorBuilder(wrapper.hash, error.message).build());
21
27
  }
22
28
  return await this.bindResult(resultPayloads, queryAccount);
23
29
  }
@@ -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;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,QAAuB;QAEvB,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,EAAE,QAAQ,CAAC,CAAA;SACtC;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
+ {"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,EAAqB,wBAAwB,EAAE,eAAe,EAAE,SAAS,EAAyC,MAAM,qBAAqB,CAAA;AAMpJ,OAAO,EAAE,2BAA2B,EAAmB,MAAM,WAAW,CAAA;AAIxE,MAAM,OAAgB,UAAgE,SAAQ,SAAkB;IAG9F,OAAO;QACrB,OAAO,CAAC,2BAA2B,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEQ,KAAK,CAAC,KAAK,CAClB,KAAQ,EACR,QAAuB;QAEvB,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,IAAI;YACF,QAAQ,UAAU,CAAC,UAAU,EAAE;gBAC7B,KAAK,2BAA2B;oBAC9B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;oBACrD,MAAK;gBACP;oBACE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;aACtC;SACF;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,KAAK,GAAG,EAAW,CAAA;YACzB,cAAc,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;SAC9E;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"}
package/package.json CHANGED
@@ -11,11 +11,11 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.6.9",
14
- "@xyo-network/account": "^2.37.6",
15
- "@xyo-network/archivist": "^2.37.6",
16
- "@xyo-network/module": "^2.37.6",
17
- "@xyo-network/payload": "^2.37.6",
18
- "@xyo-network/promise": "^2.37.6",
14
+ "@xyo-network/account": "^2.38.0-rc.10",
15
+ "@xyo-network/archivist": "^2.38.0-rc.10",
16
+ "@xyo-network/module": "^2.38.0-rc.10",
17
+ "@xyo-network/payload": "^2.38.0-rc.10",
18
+ "@xyo-network/promise": "^2.38.0-rc.10",
19
19
  "lodash": "^4.17.21",
20
20
  "tslib": "^2.4.0"
21
21
  },
@@ -52,5 +52,6 @@
52
52
  },
53
53
  "sideEffects": false,
54
54
  "types": "dist/esm/index.d.ts",
55
- "version": "2.37.6"
55
+ "version": "2.38.0-rc.10",
56
+ "stableVersion": "2.37.6"
56
57
  }
@@ -1,30 +1,40 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { PayloadArchivist, XyoArchivistGetQuery, XyoArchivistGetQuerySchema, XyoArchivistWrapper } from '@xyo-network/archivist'
3
- import { PartialModuleConfig, XyoModuleResolverFunc } from '@xyo-network/module'
3
+ import { XyoModuleParams } from '@xyo-network/module'
4
4
  import { Huri, PayloadWrapper, XyoPayloads } from '@xyo-network/payload'
5
5
 
6
6
  import { XyoDivinerDivineQuerySchema } from '../../Queries'
7
7
  import { XyoHuriPayload, XyoHuriSchema } from '../XyoHuriPayload'
8
8
  import { XyoPayloadDiviner } from '../XyoPayloadDiviner'
9
- import { XyoArchivistPayloadDivinerConfig, XyoArchivistPayloadDivinerConfigSchema } from './Config'
9
+ import { XyoArchivistPayloadDivinerConfig } from './Config'
10
10
 
11
11
  export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPayloadDivinerConfig> {
12
- protected readonly archivist?: PayloadArchivist | null
13
-
14
- constructor(config?: PartialModuleConfig<XyoArchivistPayloadDivinerConfig>, archivist?: PayloadArchivist, resolver?: XyoModuleResolverFunc) {
15
- super({ ...config, schema: XyoArchivistPayloadDivinerConfigSchema }, undefined, resolver)
16
- const configArchivistAddress = config?.archivist
17
- const resolvedArchivist: PayloadArchivist | null =
18
- archivist ?? (configArchivistAddress ? (this.resolver?.(configArchivistAddress) as unknown as PayloadArchivist) ?? null : null)
19
- if (resolvedArchivist) {
20
- this.archivist = resolvedArchivist ? new XyoArchivistWrapper(resolvedArchivist) : null
21
- }
12
+ static override async create(params?: XyoModuleParams): Promise<XyoArchivistPayloadDiviner> {
13
+ const module = new XyoArchivistPayloadDiviner(params as XyoModuleParams<XyoArchivistPayloadDivinerConfig>)
14
+ await module.start()
15
+ return module
22
16
  }
23
17
 
18
+ protected archivist?: PayloadArchivist | null
19
+
24
20
  override queries() {
25
21
  return [XyoDivinerDivineQuerySchema, ...super.queries()]
26
22
  }
27
23
 
24
+ override async start() {
25
+ await super.start()
26
+ const configArchivistAddress = this.config?.archivist
27
+ if (configArchivistAddress) {
28
+ const resolvedArchivist: PayloadArchivist | null = configArchivistAddress
29
+ ? (this.resolver?.fromAddress([configArchivistAddress]) as unknown as PayloadArchivist[]).shift() ?? null
30
+ : null
31
+ if (resolvedArchivist) {
32
+ this.archivist = resolvedArchivist ? new XyoArchivistWrapper(resolvedArchivist) : null
33
+ }
34
+ }
35
+ return this
36
+ }
37
+
28
38
  public async divine(payloads?: XyoPayloads): Promise<XyoPayloads> {
29
39
  const huriPayloads = assertEx(
30
40
  payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),
package/src/XyoDiviner.ts CHANGED
@@ -1,13 +1,6 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { XyoAccount } from '@xyo-network/account'
3
- import {
4
- ModuleQueryResult,
5
- QueryBoundWitnessWrapper,
6
- XyoModule,
7
- XyoModuleInitializeQuerySchema,
8
- XyoModuleShutdownQuerySchema,
9
- XyoQueryBoundWitness,
10
- } from '@xyo-network/module'
3
+ import { ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, XyoModule, XyoModuleParams, XyoQueryBoundWitness } from '@xyo-network/module'
11
4
  import { XyoPayload, XyoPayloads } from '@xyo-network/payload'
12
5
  import { Promisable } from '@xyo-network/promise'
13
6
 
@@ -15,11 +8,13 @@ import { XyoDivinerConfig } from './Config'
15
8
  import { DivinerModule } from './Diviner'
16
9
  import { XyoDivinerDivineQuerySchema, XyoDivinerQuery } from './Queries'
17
10
 
11
+ export type XyoDivinerParams = XyoModuleParams
12
+
18
13
  export abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerConfig> extends XyoModule<TConfig> implements DivinerModule {
19
14
  abstract divine(payloads?: XyoPayloads): Promisable<XyoPayloads>
20
15
 
21
16
  public override queries(): string[] {
22
- return [XyoModuleInitializeQuerySchema, XyoModuleShutdownQuerySchema, XyoDivinerDivineQuerySchema]
17
+ return [XyoDivinerDivineQuerySchema, ...super.queries()]
23
18
  }
24
19
 
25
20
  override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(
@@ -33,12 +28,17 @@ export abstract class XyoDiviner<TConfig extends XyoDivinerConfig = XyoDivinerCo
33
28
  const queryAccount = new XyoAccount()
34
29
 
35
30
  const resultPayloads: XyoPayloads = []
36
- switch (typedQuery.schemaName) {
37
- case XyoDivinerDivineQuerySchema:
38
- resultPayloads.push(...(await this.divine(payloads)))
39
- break
40
- default:
41
- return super.query(query, payloads)
31
+ try {
32
+ switch (typedQuery.schemaName) {
33
+ case XyoDivinerDivineQuerySchema:
34
+ resultPayloads.push(...(await this.divine(payloads)))
35
+ break
36
+ default:
37
+ return super.query(query, payloads)
38
+ }
39
+ } catch (ex) {
40
+ const error = ex as Error
41
+ resultPayloads.push(new XyoErrorBuilder(wrapper.hash, error.message).build())
42
42
  }
43
43
  return await this.bindResult(resultPayloads, queryAccount)
44
44
  }