@xyo-network/diviner-schema-stats-memory 2.64.9 → 2.65.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.
- package/dist/cjs/MemorySchemaStatsDiviner.js +14 -12
- package/dist/cjs/MemorySchemaStatsDiviner.js.map +1 -1
- package/dist/esm/MemorySchemaStatsDiviner.js +10 -10
- package/dist/esm/MemorySchemaStatsDiviner.js.map +1 -1
- package/dist/types/MemorySchemaStatsDiviner.d.ts +1 -1
- package/dist/types/MemorySchemaStatsDiviner.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/MemorySchemaStatsDiviner.ts +10 -10
- package/dist/docs.json +0 -13372
|
@@ -8,20 +8,11 @@ const diviner_schema_stats_abstract_1 = require("@xyo-network/diviner-schema-sta
|
|
|
8
8
|
const diviner_schema_stats_model_1 = require("@xyo-network/diviner-schema-stats-model");
|
|
9
9
|
const payload_builder_1 = require("@xyo-network/payload-builder");
|
|
10
10
|
class MemorySchemaStatsDiviner extends diviner_schema_stats_abstract_1.SchemaStatsDiviner {
|
|
11
|
-
divine(payloads) {
|
|
12
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
const query = payloads === null || payloads === void 0 ? void 0 : payloads.find(diviner_schema_stats_model_1.isSchemaStatsQueryPayload);
|
|
14
|
-
if (!query)
|
|
15
|
-
return [];
|
|
16
|
-
const addresses = (query === null || query === void 0 ? void 0 : query.address) ? (Array.isArray(query === null || query === void 0 ? void 0 : query.address) ? query.address : [query.address]) : undefined;
|
|
17
|
-
const counts = addresses ? yield Promise.all(addresses.map((address) => this.divineAddress(address))) : [yield this.divineAllAddresses()];
|
|
18
|
-
return counts.map((count) => new payload_builder_1.PayloadBuilder({ schema: diviner_schema_stats_model_1.SchemaStatsDivinerSchema }).fields({ count }).build());
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
11
|
divineAddress(address) {
|
|
12
|
+
var _a;
|
|
22
13
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
14
|
const archivist = (0, assert_1.assertEx)(yield this.readArchivist(), 'Unable to resolve archivist');
|
|
24
|
-
const all =
|
|
15
|
+
const all = (0, assert_1.assertEx)(yield ((_a = archivist.all) === null || _a === void 0 ? void 0 : _a.call(archivist)), 'Archivist does not support "all"');
|
|
25
16
|
const filtered = all.filter(boundwitness_model_1.isBoundWitness).filter((bw) => bw.addresses.includes(address));
|
|
26
17
|
const counts = filtered.reduce((acc, payload) => {
|
|
27
18
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1;
|
|
@@ -31,9 +22,10 @@ class MemorySchemaStatsDiviner extends diviner_schema_stats_abstract_1.SchemaSta
|
|
|
31
22
|
});
|
|
32
23
|
}
|
|
33
24
|
divineAllAddresses() {
|
|
25
|
+
var _a;
|
|
34
26
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
35
27
|
const archivist = (0, assert_1.assertEx)(yield this.readArchivist(), 'Unable to resolve archivist');
|
|
36
|
-
const all =
|
|
28
|
+
const all = (0, assert_1.assertEx)(yield ((_a = archivist.all) === null || _a === void 0 ? void 0 : _a.call(archivist)), 'Archivist does not support "all"');
|
|
37
29
|
const counts = all.reduce((acc, payload) => {
|
|
38
30
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1;
|
|
39
31
|
return acc;
|
|
@@ -41,6 +33,16 @@ class MemorySchemaStatsDiviner extends diviner_schema_stats_abstract_1.SchemaSta
|
|
|
41
33
|
return counts;
|
|
42
34
|
});
|
|
43
35
|
}
|
|
36
|
+
divineHandler(payloads) {
|
|
37
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const query = payloads === null || payloads === void 0 ? void 0 : payloads.find(diviner_schema_stats_model_1.isSchemaStatsQueryPayload);
|
|
39
|
+
if (!query)
|
|
40
|
+
return [];
|
|
41
|
+
const addresses = (query === null || query === void 0 ? void 0 : query.address) ? (Array.isArray(query === null || query === void 0 ? void 0 : query.address) ? query.address : [query.address]) : undefined;
|
|
42
|
+
const counts = addresses ? yield Promise.all(addresses.map((address) => this.divineAddress(address))) : [yield this.divineAllAddresses()];
|
|
43
|
+
return counts.map((count) => new payload_builder_1.PayloadBuilder({ schema: diviner_schema_stats_model_1.SchemaStatsDivinerSchema }).fields({ count }).build());
|
|
44
|
+
});
|
|
45
|
+
}
|
|
44
46
|
}
|
|
45
47
|
exports.MemorySchemaStatsDiviner = MemorySchemaStatsDiviner;
|
|
46
48
|
MemorySchemaStatsDiviner.configSchemas = [diviner_schema_stats_model_1.SchemaStatsDivinerConfigSchema];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySchemaStatsDiviner.js","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,wEAAgE;AAChE,8FAA+E;AAC/E,wFAOgD;AAChD,kEAA6D;AAG7D,MAAa,wBAA8F,SAAQ,kDAA2B;
|
|
1
|
+
{"version":3,"file":"MemorySchemaStatsDiviner.js","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,17 +5,9 @@ import { isSchemaStatsQueryPayload, SchemaStatsDivinerConfigSchema, SchemaStatsD
|
|
|
5
5
|
import { PayloadBuilder } from '@xyo-network/payload-builder';
|
|
6
6
|
export class MemorySchemaStatsDiviner extends SchemaStatsDiviner {
|
|
7
7
|
static configSchemas = [SchemaStatsDivinerConfigSchema];
|
|
8
|
-
async divine(payloads) {
|
|
9
|
-
const query = payloads?.find(isSchemaStatsQueryPayload);
|
|
10
|
-
if (!query)
|
|
11
|
-
return [];
|
|
12
|
-
const addresses = query?.address ? (Array.isArray(query?.address) ? query.address : [query.address]) : undefined;
|
|
13
|
-
const counts = addresses ? await Promise.all(addresses.map((address) => this.divineAddress(address))) : [await this.divineAllAddresses()];
|
|
14
|
-
return counts.map((count) => new PayloadBuilder({ schema: SchemaStatsDivinerSchema }).fields({ count }).build());
|
|
15
|
-
}
|
|
16
8
|
async divineAddress(address) {
|
|
17
9
|
const archivist = assertEx(await this.readArchivist(), 'Unable to resolve archivist');
|
|
18
|
-
const all = await
|
|
10
|
+
const all = assertEx(await archivist.all?.(), 'Archivist does not support "all"');
|
|
19
11
|
const filtered = all.filter(isBoundWitness).filter((bw) => bw.addresses.includes(address));
|
|
20
12
|
const counts = filtered.reduce((acc, payload) => {
|
|
21
13
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1;
|
|
@@ -25,12 +17,20 @@ export class MemorySchemaStatsDiviner extends SchemaStatsDiviner {
|
|
|
25
17
|
}
|
|
26
18
|
async divineAllAddresses() {
|
|
27
19
|
const archivist = assertEx(await this.readArchivist(), 'Unable to resolve archivist');
|
|
28
|
-
const all = await
|
|
20
|
+
const all = assertEx(await archivist.all?.(), 'Archivist does not support "all"');
|
|
29
21
|
const counts = all.reduce((acc, payload) => {
|
|
30
22
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1;
|
|
31
23
|
return acc;
|
|
32
24
|
}, {});
|
|
33
25
|
return counts;
|
|
34
26
|
}
|
|
27
|
+
async divineHandler(payloads) {
|
|
28
|
+
const query = payloads?.find(isSchemaStatsQueryPayload);
|
|
29
|
+
if (!query)
|
|
30
|
+
return [];
|
|
31
|
+
const addresses = query?.address ? (Array.isArray(query?.address) ? query.address : [query.address]) : undefined;
|
|
32
|
+
const counts = addresses ? await Promise.all(addresses.map((address) => this.divineAddress(address))) : [await this.divineAllAddresses()];
|
|
33
|
+
return counts.map((count) => new PayloadBuilder({ schema: SchemaStatsDivinerSchema }).fields({ count }).build());
|
|
34
|
+
}
|
|
35
35
|
}
|
|
36
36
|
//# sourceMappingURL=MemorySchemaStatsDiviner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySchemaStatsDiviner.js","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAE9B,wBAAwB,GAGzB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAG7D,MAAM,OAAO,wBAA8F,SAAQ,kBAA2B;IAC5I,MAAM,CAAU,aAAa,GAAG,CAAC,8BAA8B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"MemorySchemaStatsDiviner.js","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { SchemaStatsDivinerParams } from '@xyo-network/diviner-schema-stats-mode
|
|
|
3
3
|
import { Payload } from '@xyo-network/payload-model';
|
|
4
4
|
export declare class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams> extends SchemaStatsDiviner<TParams> {
|
|
5
5
|
static configSchemas: "network.xyo.diviner.schema.stats.config"[];
|
|
6
|
-
divine(payloads?: Payload[]): Promise<Payload[]>;
|
|
7
6
|
protected divineAddress(address: string): Promise<Record<string, number>>;
|
|
8
7
|
protected divineAllAddresses(): Promise<Record<string, number>>;
|
|
8
|
+
protected divineHandler(payloads?: Payload[]): Promise<Payload[]>;
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=MemorySchemaStatsDiviner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemorySchemaStatsDiviner.d.ts","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAGL,wBAAwB,EAIzB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,qBAAa,wBAAwB,CAAC,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,CAAE,SAAQ,kBAAkB,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,8CAAmC;
|
|
1
|
+
{"version":3,"file":"MemorySchemaStatsDiviner.d.ts","sourceRoot":"","sources":["../../src/MemorySchemaStatsDiviner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAA;AAC/E,OAAO,EAGL,wBAAwB,EAIzB,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,qBAAa,wBAAwB,CAAC,OAAO,SAAS,wBAAwB,GAAG,wBAAwB,CAAE,SAAQ,kBAAkB,CAAC,OAAO,CAAC;IAC5I,OAAgB,aAAa,8CAAmC;cAEhD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;cAW/D,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;cAU5C,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAOjF"}
|
package/package.json
CHANGED
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.9.3",
|
|
14
|
-
"@xyo-network/boundwitness-model": "^2.
|
|
15
|
-
"@xyo-network/diviner-schema-stats-abstract": "^2.
|
|
16
|
-
"@xyo-network/diviner-schema-stats-model": "^2.
|
|
17
|
-
"@xyo-network/payload-builder": "^2.
|
|
18
|
-
"@xyo-network/payload-model": "^2.
|
|
14
|
+
"@xyo-network/boundwitness-model": "^2.65.0",
|
|
15
|
+
"@xyo-network/diviner-schema-stats-abstract": "^2.65.0",
|
|
16
|
+
"@xyo-network/diviner-schema-stats-model": "^2.65.0",
|
|
17
|
+
"@xyo-network/payload-builder": "^2.65.0",
|
|
18
|
+
"@xyo-network/payload-model": "^2.65.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@xylabs/ts-scripts-yarn3": "^2.18.
|
|
22
|
-
"@xylabs/tsconfig": "^2.18.
|
|
21
|
+
"@xylabs/ts-scripts-yarn3": "^2.18.10",
|
|
22
|
+
"@xylabs/tsconfig": "^2.18.10",
|
|
23
23
|
"typescript": "^5.1.6"
|
|
24
24
|
},
|
|
25
25
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
},
|
|
56
56
|
"sideEffects": false,
|
|
57
57
|
"types": "dist/types/index.d.ts",
|
|
58
|
-
"version": "2.
|
|
58
|
+
"version": "2.65.0"
|
|
59
59
|
}
|
|
@@ -15,17 +15,9 @@ import { Payload } from '@xyo-network/payload-model'
|
|
|
15
15
|
export class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams> extends SchemaStatsDiviner<TParams> {
|
|
16
16
|
static override configSchemas = [SchemaStatsDivinerConfigSchema]
|
|
17
17
|
|
|
18
|
-
override async divine(payloads?: Payload[]): Promise<Payload[]> {
|
|
19
|
-
const query = payloads?.find<SchemaStatsQueryPayload>(isSchemaStatsQueryPayload)
|
|
20
|
-
if (!query) return []
|
|
21
|
-
const addresses = query?.address ? (Array.isArray(query?.address) ? query.address : [query.address]) : undefined
|
|
22
|
-
const counts = addresses ? await Promise.all(addresses.map((address) => this.divineAddress(address))) : [await this.divineAllAddresses()]
|
|
23
|
-
return counts.map((count) => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())
|
|
24
|
-
}
|
|
25
|
-
|
|
26
18
|
protected async divineAddress(address: string): Promise<Record<string, number>> {
|
|
27
19
|
const archivist = assertEx(await this.readArchivist(), 'Unable to resolve archivist')
|
|
28
|
-
const all = await
|
|
20
|
+
const all = assertEx(await archivist.all?.(), 'Archivist does not support "all"')
|
|
29
21
|
const filtered = all.filter(isBoundWitness).filter((bw) => bw.addresses.includes(address))
|
|
30
22
|
const counts: Record<string, number> = filtered.reduce((acc, payload) => {
|
|
31
23
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1
|
|
@@ -36,11 +28,19 @@ export class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams =
|
|
|
36
28
|
|
|
37
29
|
protected async divineAllAddresses(): Promise<Record<string, number>> {
|
|
38
30
|
const archivist = assertEx(await this.readArchivist(), 'Unable to resolve archivist')
|
|
39
|
-
const all = await
|
|
31
|
+
const all = assertEx(await archivist.all?.(), 'Archivist does not support "all"')
|
|
40
32
|
const counts: Record<string, number> = all.reduce((acc, payload) => {
|
|
41
33
|
acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1
|
|
42
34
|
return acc
|
|
43
35
|
}, {} as Record<string, number>)
|
|
44
36
|
return counts
|
|
45
37
|
}
|
|
38
|
+
|
|
39
|
+
protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {
|
|
40
|
+
const query = payloads?.find<SchemaStatsQueryPayload>(isSchemaStatsQueryPayload)
|
|
41
|
+
if (!query) return []
|
|
42
|
+
const addresses = query?.address ? (Array.isArray(query?.address) ? query.address : [query.address]) : undefined
|
|
43
|
+
const counts = addresses ? await Promise.all(addresses.map((address) => this.divineAddress(address))) : [await this.divineAllAddresses()]
|
|
44
|
+
return counts.map((count) => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())
|
|
45
|
+
}
|
|
46
46
|
}
|