@xyo-network/diviner-schema-stats-memory 5.1.23 → 5.1.24

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.
@@ -13,7 +13,7 @@ var MemorySchemaStatsDiviner = class extends SchemaStatsDiviner {
13
13
  static defaultConfigSchema = SchemaStatsDivinerConfigSchema;
14
14
  async divineAddress(address) {
15
15
  const archivist = assertEx(await this.archivistInstance(), () => "Unable to resolve archivist");
16
- const all = await assertEx(archivist.all, () => 'Archivist does not support "all"')();
16
+ const all = await archivist.next({ limit: 2e4 });
17
17
  const filtered = all.filter(isBoundWitnessWithStorageMeta).filter((bw) => bw.addresses.includes(address));
18
18
  const counts = filtered.reduce(
19
19
  (acc, payload) => {
@@ -26,7 +26,7 @@ var MemorySchemaStatsDiviner = class extends SchemaStatsDiviner {
26
26
  }
27
27
  async divineAllAddresses() {
28
28
  const archivist = assertEx(await this.archivistInstance(), () => "Unable to resolve archivist");
29
- const all = await assertEx(archivist.all, () => 'Archivist does not support "all"')();
29
+ const all = await archivist.next({ limit: 2e4 });
30
30
  const counts = all.reduce(
31
31
  (acc, payload) => {
32
32
  acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/MemorySchemaStatsDiviner.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { isBoundWitnessWithStorageMeta } from '@xyo-network/boundwitness-model'\nimport { SchemaStatsDiviner } from '@xyo-network/diviner-schema-stats-abstract'\nimport type {\n SchemaStatsDivinerParams,\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n} from '@xyo-network/diviner-schema-stats-model'\nimport {\n isSchemaStatsQueryPayload,\n SchemaStatsDivinerConfigSchema,\n SchemaStatsDivinerSchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nexport class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams> extends SchemaStatsDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, SchemaStatsDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = SchemaStatsDivinerConfigSchema\n\n protected async divineAddress(address: Address): Promise<Record<string, number>> {\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const all = await assertEx(archivist.all, () => 'Archivist does not support \"all\"')()\n const filtered = all\n .filter(isBoundWitnessWithStorageMeta)\n .filter(bw => bw.addresses.includes(address))\n // eslint-disable-next-line unicorn/no-array-reduce\n const counts: Record<string, number> = filtered.reduce(\n (acc, payload) => {\n acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1\n return acc\n },\n {} as Record<string, number>,\n )\n return counts\n }\n\n protected async divineAllAddresses(): Promise<Record<string, number>> {\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const all = await assertEx(archivist.all, () => 'Archivist does not support \"all\"')()\n // eslint-disable-next-line unicorn/no-array-reduce\n const counts: Record<string, number> = all.reduce(\n (acc, payload) => {\n acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1\n return acc\n },\n {} as Record<string, number>,\n )\n return counts\n }\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const query = payloads?.find<SchemaStatsQueryPayload>(isSchemaStatsQueryPayload)\n if (!query) return []\n const addresses\n = query?.address\n ? Array.isArray(query?.address)\n ? query.address\n : [query.address]\n : undefined\n const counts = addresses ? await Promise.all(addresses.map(address => this.divineAddress(address))) : [await this.divineAllAddresses()]\n return await Promise.all(\n counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build()),\n )\n }\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AAEzB,SAAS,qCAAqC;AAC9C,SAAS,0BAA0B;AAMnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAGxB,IAAM,2BAAN,cAA4G,mBAA4B;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,8BAA8B;AAAA,EAC1G,OAAyB,sBAA8B;AAAA,EAEvD,MAAgB,cAAc,SAAmD;AAC/E,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,SAAS,UAAU,KAAK,MAAM,kCAAkC,EAAE;AACpF,UAAM,WAAW,IACd,OAAO,6BAA6B,EACpC,OAAO,QAAM,GAAG,UAAU,SAAS,OAAO,CAAC;AAE9C,UAAM,SAAiC,SAAS;AAAA,MAC9C,CAAC,KAAK,YAAY;AAChB,YAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI;AACtE,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,qBAAsD;AACpE,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,SAAS,UAAU,KAAK,MAAM,kCAAkC,EAAE;AAEpF,UAAM,SAAiC,IAAI;AAAA,MACzC,CAAC,KAAK,YAAY;AAChB,YAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI;AACtE,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,QAAQ,UAAU,KAA8B,yBAAyB;AAC/E,QAAI,CAAC,MAAO,QAAO,CAAC;AACpB,UAAM,YACF,OAAO,UACL,MAAM,QAAQ,OAAO,OAAO,IAC1B,MAAM,UACN,CAAC,MAAM,OAAO,IAChB;AACN,UAAM,SAAS,YAAY,MAAM,QAAQ,IAAI,UAAU,IAAI,aAAW,KAAK,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC;AACtI,WAAO,MAAM,QAAQ;AAAA,MACnB,OAAO,IAAI,WAAS,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,IAC5H;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/MemorySchemaStatsDiviner.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { isBoundWitnessWithStorageMeta } from '@xyo-network/boundwitness-model'\nimport { SchemaStatsDiviner } from '@xyo-network/diviner-schema-stats-abstract'\nimport type {\n SchemaStatsDivinerParams,\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n} from '@xyo-network/diviner-schema-stats-model'\nimport {\n isSchemaStatsQueryPayload,\n SchemaStatsDivinerConfigSchema,\n SchemaStatsDivinerSchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload, Schema } from '@xyo-network/payload-model'\n\nexport class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams> extends SchemaStatsDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, SchemaStatsDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = SchemaStatsDivinerConfigSchema\n\n protected async divineAddress(address: Address): Promise<Record<string, number>> {\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const all = await archivist.next({ limit: 20_000 })\n const filtered = all\n .filter(isBoundWitnessWithStorageMeta)\n .filter(bw => bw.addresses.includes(address))\n // eslint-disable-next-line unicorn/no-array-reduce\n const counts: Record<string, number> = filtered.reduce(\n (acc, payload) => {\n acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1\n return acc\n },\n {} as Record<string, number>,\n )\n return counts\n }\n\n protected async divineAllAddresses(): Promise<Record<string, number>> {\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const all = await archivist.next({ limit: 20_000 })\n // eslint-disable-next-line unicorn/no-array-reduce\n const counts: Record<string, number> = all.reduce(\n (acc, payload) => {\n acc[payload.schema] = acc[payload.schema] ? acc[payload.schema] + 1 : 1\n return acc\n },\n {} as Record<string, number>,\n )\n return counts\n }\n\n protected override async divineHandler(payloads?: Payload[]): Promise<Payload[]> {\n const query = payloads?.find<SchemaStatsQueryPayload>(isSchemaStatsQueryPayload)\n if (!query) return []\n const addresses\n = query?.address\n ? Array.isArray(query?.address)\n ? query.address\n : [query.address]\n : undefined\n const counts = addresses ? await Promise.all(addresses.map(address => this.divineAddress(address))) : [await this.divineAllAddresses()]\n return await Promise.all(\n counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build()),\n )\n }\n}\n"],"mappings":";AAAA,SAAS,gBAAgB;AAEzB,SAAS,qCAAqC;AAC9C,SAAS,0BAA0B;AAMnC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,sBAAsB;AAGxB,IAAM,2BAAN,cAA4G,mBAA4B;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,8BAA8B;AAAA,EAC1G,OAAyB,sBAA8B;AAAA,EAEvD,MAAgB,cAAc,SAAmD;AAC/E,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,UAAU,KAAK,EAAE,OAAO,IAAO,CAAC;AAClD,UAAM,WAAW,IACd,OAAO,6BAA6B,EACpC,OAAO,QAAM,GAAG,UAAU,SAAS,OAAO,CAAC;AAE9C,UAAM,SAAiC,SAAS;AAAA,MAC9C,CAAC,KAAK,YAAY;AAChB,YAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI;AACtE,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAgB,qBAAsD;AACpE,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,UAAU,KAAK,EAAE,OAAO,IAAO,CAAC;AAElD,UAAM,SAAiC,IAAI;AAAA,MACzC,CAAC,KAAK,YAAY;AAChB,YAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,IAAI,IAAI;AACtE,eAAO;AAAA,MACT;AAAA,MACA,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AAAA,EAEA,MAAyB,cAAc,UAA0C;AAC/E,UAAM,QAAQ,UAAU,KAA8B,yBAAyB;AAC/E,QAAI,CAAC,MAAO,QAAO,CAAC;AACpB,UAAM,YACF,OAAO,UACL,MAAM,QAAQ,OAAO,OAAO,IAC1B,MAAM,UACN,CAAC,MAAM,OAAO,IAChB;AACN,UAAM,SAAS,YAAY,MAAM,QAAQ,IAAI,UAAU,IAAI,aAAW,KAAK,cAAc,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC;AACtI,WAAO,MAAM,QAAQ;AAAA,MACnB,OAAO,IAAI,WAAS,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,IAC5H;AAAA,EACF;AACF;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-schema-stats-memory",
3
- "version": "5.1.23",
3
+ "version": "5.1.24",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -36,13 +36,13 @@
36
36
  "!**/*.test.*"
37
37
  ],
38
38
  "dependencies": {
39
- "@xylabs/assert": "~5.0.33",
40
- "@xylabs/hex": "~5.0.33",
41
- "@xyo-network/boundwitness-model": "~5.1.23",
42
- "@xyo-network/diviner-schema-stats-abstract": "~5.1.23",
43
- "@xyo-network/diviner-schema-stats-model": "~5.1.23",
44
- "@xyo-network/payload-builder": "~5.1.23",
45
- "@xyo-network/payload-model": "~5.1.23"
39
+ "@xylabs/assert": "~5.0.37",
40
+ "@xylabs/hex": "~5.0.37",
41
+ "@xyo-network/boundwitness-model": "~5.1.24",
42
+ "@xyo-network/diviner-schema-stats-abstract": "~5.1.24",
43
+ "@xyo-network/diviner-schema-stats-model": "~5.1.24",
44
+ "@xyo-network/payload-builder": "~5.1.24",
45
+ "@xyo-network/payload-model": "~5.1.24"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
@@ -21,7 +21,7 @@ export class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams =
21
21
 
22
22
  protected async divineAddress(address: Address): Promise<Record<string, number>> {
23
23
  const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')
24
- const all = await assertEx(archivist.all, () => 'Archivist does not support "all"')()
24
+ const all = await archivist.next({ limit: 20_000 })
25
25
  const filtered = all
26
26
  .filter(isBoundWitnessWithStorageMeta)
27
27
  .filter(bw => bw.addresses.includes(address))
@@ -38,7 +38,7 @@ export class MemorySchemaStatsDiviner<TParams extends SchemaStatsDivinerParams =
38
38
 
39
39
  protected async divineAllAddresses(): Promise<Record<string, number>> {
40
40
  const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')
41
- const all = await assertEx(archivist.all, () => 'Archivist does not support "all"')()
41
+ const all = await archivist.next({ limit: 20_000 })
42
42
  // eslint-disable-next-line unicorn/no-array-reduce
43
43
  const counts: Record<string, number> = all.reduce(
44
44
  (acc, payload) => {