@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.
- package/dist/cjs/Payload/Archivist/Diviner.d.ts +4 -3
- package/dist/cjs/Payload/Archivist/Diviner.d.ts.map +1 -1
- package/dist/cjs/Payload/Archivist/Diviner.js +25 -9
- package/dist/cjs/Payload/Archivist/Diviner.js.map +1 -1
- package/dist/cjs/XyoDiviner.d.ts +2 -1
- package/dist/cjs/XyoDiviner.d.ts.map +1 -1
- package/dist/cjs/XyoDiviner.js +13 -7
- package/dist/cjs/XyoDiviner.js.map +1 -1
- package/dist/docs.json +16110 -12288
- package/dist/esm/Payload/Archivist/Diviner.d.ts +4 -3
- package/dist/esm/Payload/Archivist/Diviner.d.ts.map +1 -1
- package/dist/esm/Payload/Archivist/Diviner.js +18 -9
- package/dist/esm/Payload/Archivist/Diviner.js.map +1 -1
- package/dist/esm/XyoDiviner.d.ts +2 -1
- package/dist/esm/XyoDiviner.d.ts.map +1 -1
- package/dist/esm/XyoDiviner.js +14 -8
- package/dist/esm/XyoDiviner.js.map +1 -1
- package/package.json +7 -6
- package/src/Payload/Archivist/Diviner.ts +22 -12
- package/src/XyoDiviner.ts +15 -15
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { PayloadArchivist } from '@xyo-network/archivist';
|
|
2
|
-
import {
|
|
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
|
-
|
|
8
|
-
|
|
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,
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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;
|
|
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"}
|
package/dist/esm/XyoDiviner.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/esm/XyoDiviner.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert';
|
|
2
2
|
import { XyoAccount } from '@xyo-network/account';
|
|
3
|
-
import { QueryBoundWitnessWrapper,
|
|
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 [
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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,
|
|
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.
|
|
15
|
-
"@xyo-network/archivist": "^2.
|
|
16
|
-
"@xyo-network/module": "^2.
|
|
17
|
-
"@xyo-network/payload": "^2.
|
|
18
|
-
"@xyo-network/promise": "^2.
|
|
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.
|
|
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 {
|
|
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
|
|
9
|
+
import { XyoArchivistPayloadDivinerConfig } from './Config'
|
|
10
10
|
|
|
11
11
|
export class XyoArchivistPayloadDiviner extends XyoPayloadDiviner<XyoArchivistPayloadDivinerConfig> {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 [
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
}
|