@xyo-network/diviner-schema-stats 6.1.0 → 7.0.1

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,9 +1,19 @@
1
+ import { zodAsFactory, zodIsFactory, zodToFactory } from '@xylabs/sdk-js';
1
2
  import type { DivinerConfig } from '@xyo-network/diviner-model';
3
+ import { DivinerConfigZod } from '@xyo-network/diviner-model';
2
4
  import { type Payload } from '@xyo-network/sdk-protocol-js';
5
+ import * as z from 'zod/mini';
3
6
  export declare const SchemaStatsDivinerConfigSchema: string & {
4
7
  readonly __schema: true;
5
8
  };
6
9
  export type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema;
10
+ export declare const SchemaStatsDivinerConfigZod: z.ZodMiniObject<Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {
11
+ schema: z.ZodMiniLiteral<SchemaStatsDivinerConfigSchema>;
12
+ }, z.core.$strip>;
13
+ export type SchemaStatsDivinerConfigBase = z.infer<typeof SchemaStatsDivinerConfigZod>;
14
+ export declare const isSchemaStatsDivinerConfig: ReturnType<typeof zodIsFactory<SchemaStatsDivinerConfigBase>>;
15
+ export declare const asSchemaStatsDivinerConfig: ReturnType<typeof zodAsFactory<SchemaStatsDivinerConfigBase>>;
16
+ export declare const toSchemaStatsDivinerConfig: ReturnType<typeof zodToFactory<SchemaStatsDivinerConfigBase>>;
7
17
  export type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<T & {
8
18
  schema: SchemaStatsDivinerConfigSchema;
9
19
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAIrE,eAAO,MAAM,8BAA8B,EAAE,MAAM,GAAG;IACpD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC+B,CAAA;AACxD,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAA;AAElF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,aAAa,CAC/E,CAAC,GAAG;IACF,MAAM,EAAE,8BAA8B,CAAA;CACvC,CACF,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,YAAY,EACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,eAAO,MAAM,8BAA8B,EAAE,MAAM,GAAG;IACpD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC+B,CAAA;AACxD,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAA;AAElF,eAAO,MAAM,2BAA2B,EAAE,CAAC,CAAC,aAAa,CACvD,IAAI,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IACnD,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAA;CACzD,EACD,CAAC,CAAC,IAAI,CAAC,MAAM,CACsE,CAAA;AAErF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA;AAEtF,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,4BAA4B,CAAC,CAA6C,CAAA;AAClJ,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,4BAA4B,CAAC,CAA2E,CAAA;AAChL,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,4BAA4B,CAAC,CAA2E,CAAA;AAEhL,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,aAAa,CAC/E,CAAC,GAAG;IACF,MAAM,EAAE,8BAA8B,CAAA;CACvC,CACF,CAAA"}
@@ -1,9 +1,13 @@
1
- import type { Payload } from '@xyo-network/sdk-protocol-js';
1
+ import { zodAsFactory, zodIsFactory, zodToFactory } from '@xylabs/sdk-js';
2
+ import * as z from 'zod/mini';
2
3
  import { SchemaStatsDivinerSchema } from './Schema.ts';
3
- export type SchemaStatsPayload = Payload<{
4
- count: Record<string, number>;
5
- name?: string;
6
- schema: SchemaStatsDivinerSchema;
7
- }>;
8
- export declare const isSchemaStatsPayload: (x?: Payload | null) => x is SchemaStatsPayload;
4
+ export declare const SchemaStatsPayloadZod: z.ZodMiniObject<{
5
+ count: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>;
6
+ name: z.ZodMiniOptional<z.ZodMiniString<string>>;
7
+ schema: z.ZodMiniLiteral<SchemaStatsDivinerSchema>;
8
+ }, z.core.$strip>;
9
+ export type SchemaStatsPayload = z.infer<typeof SchemaStatsPayloadZod>;
10
+ export declare const isSchemaStatsPayload: ReturnType<typeof zodIsFactory<SchemaStatsPayload>>;
11
+ export declare const asSchemaStatsPayload: ReturnType<typeof zodAsFactory<SchemaStatsPayload>>;
12
+ export declare const toSchemaStatsPayload: ReturnType<typeof zodToFactory<SchemaStatsPayload>>;
9
13
  //# sourceMappingURL=Payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,wBAAwB,CAAA;CACjC,CAAC,CAAA;AAEF,eAAO,MAAM,oBAAoB,GAAI,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,kBAA4D,CAAA"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,YAAY,EACzC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAEtD,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,aAAa,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACxE,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAChD,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAA;CACnD,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAId,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAuC,CAAA;AAC5H,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAA+D,CAAA;AACpJ,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAA+D,CAAA"}
@@ -1,10 +1,15 @@
1
- import { type Payload, type Query } from '@xyo-network/sdk-protocol-js';
1
+ import { zodAsFactory, zodIsFactory, zodToFactory } from '@xylabs/sdk-js';
2
+ import { QueryFieldsZod } from '@xyo-network/sdk-protocol-js';
3
+ import * as z from 'zod/mini';
2
4
  export declare const SchemaStatsQuerySchema: string & {
3
5
  readonly __schema: true;
4
6
  };
5
7
  export type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema;
6
- export type SchemaStatsQueryPayload = Query<{
7
- schema: SchemaStatsQuerySchema;
8
- }>;
9
- export declare const isSchemaStatsQueryPayload: (x?: Payload | null) => x is SchemaStatsQueryPayload;
8
+ export declare const SchemaStatsQueryPayloadZod: z.ZodMiniObject<{
9
+ schema: z.ZodMiniLiteral<SchemaStatsQuerySchema>;
10
+ } & (typeof QueryFieldsZod)['shape'], z.core.$strip>;
11
+ export type SchemaStatsQueryPayload = z.infer<typeof SchemaStatsQueryPayloadZod>;
12
+ export declare const isSchemaStatsQueryPayload: ReturnType<typeof zodIsFactory<SchemaStatsQueryPayload>>;
13
+ export declare const asSchemaStatsQueryPayload: ReturnType<typeof zodAsFactory<SchemaStatsQueryPayload>>;
14
+ export declare const toSchemaStatsQueryPayload: ReturnType<typeof zodToFactory<SchemaStatsQueryPayload>>;
10
15
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,EACK,KAAK,OAAO,EAAE,KAAK,KAAK,EACnC,MAAM,8BAA8B,CAAA;AAIrC,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG;IAC5C,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC8B,CAAA;AACvD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAAA;AAC/E,eAAO,MAAM,yBAAyB,GAAI,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,uBAA+D,CAAA"}
1
+ {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAAE,YAAY,EAAE,YAAY,EACzC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACyB,cAAc,EAC7C,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAI7B,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG;IAC5C,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC8B,CAAA;AACvD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE,eAAO,MAAM,0BAA0B,EAAE,CAAC,CAAC,aAAa,CACpD;IAAE,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;CAAE,GACpD,CAAC,OAAO,cAAc,CAAC,CAAC,OAAO,CAAC,EAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CACsE,CAAA;AAErF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEhF,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAA4C,CAAA;AAC3I,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAyE,CAAA;AACxK,eAAO,MAAM,yBAAyB,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAyE,CAAA"}
@@ -11,7 +11,14 @@ import {
11
11
  } from "@xyo-network/sdk-protocol-js";
12
12
 
13
13
  // src/Config.ts
14
+ import {
15
+ zodAsFactory,
16
+ zodIsFactory,
17
+ zodToFactory
18
+ } from "@xylabs/sdk-js";
19
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
14
20
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
21
+ import * as z from "zod/mini";
15
22
 
16
23
  // src/Schema.ts
17
24
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -19,13 +26,28 @@ var SchemaStatsDivinerSchema = asSchema("network.xyo.diviner.schema.stats", true
19
26
 
20
27
  // src/Config.ts
21
28
  var SchemaStatsDivinerConfigSchema = asSchema2(`${SchemaStatsDivinerSchema}.config`, true);
29
+ var SchemaStatsDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) });
30
+ var isSchemaStatsDivinerConfig = zodIsFactory(SchemaStatsDivinerConfigZod);
31
+ var asSchemaStatsDivinerConfig = zodAsFactory(SchemaStatsDivinerConfigZod, "asSchemaStatsDivinerConfig");
32
+ var toSchemaStatsDivinerConfig = zodToFactory(SchemaStatsDivinerConfigZod, "toSchemaStatsDivinerConfig");
22
33
 
23
34
  // src/Query.ts
24
35
  import {
25
- asSchema as asSchema3
36
+ zodAsFactory as zodAsFactory2,
37
+ zodIsFactory as zodIsFactory2,
38
+ zodToFactory as zodToFactory2
39
+ } from "@xylabs/sdk-js";
40
+ import {
41
+ asSchema as asSchema3,
42
+ PayloadZodOfSchema,
43
+ QueryFieldsZod
26
44
  } from "@xyo-network/sdk-protocol-js";
45
+ import * as z2 from "zod/mini";
27
46
  var SchemaStatsQuerySchema = asSchema3(`${SchemaStatsDivinerSchema}.query`, true);
28
- var isSchemaStatsQueryPayload = (x) => x?.schema === SchemaStatsQuerySchema;
47
+ var SchemaStatsQueryPayloadZod = z2.extend(PayloadZodOfSchema(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape });
48
+ var isSchemaStatsQueryPayload = zodIsFactory2(SchemaStatsQueryPayloadZod);
49
+ var asSchemaStatsQueryPayload = zodAsFactory2(SchemaStatsQueryPayloadZod, "asSchemaStatsQueryPayload");
50
+ var toSchemaStatsQueryPayload = zodToFactory2(SchemaStatsQueryPayloadZod, "toSchemaStatsQueryPayload");
29
51
 
30
52
  // src/MemorySchemaStatsDiviner.ts
31
53
  var MemorySchemaStatsDiviner = class extends SchemaStatsDiviner {
@@ -66,14 +88,38 @@ var MemorySchemaStatsDiviner = class extends SchemaStatsDiviner {
66
88
  };
67
89
 
68
90
  // src/Payload.ts
69
- var isSchemaStatsPayload = (x) => x?.schema === SchemaStatsDivinerSchema;
91
+ import {
92
+ zodAsFactory as zodAsFactory3,
93
+ zodIsFactory as zodIsFactory3,
94
+ zodToFactory as zodToFactory3
95
+ } from "@xylabs/sdk-js";
96
+ import { PayloadZodOfSchema as PayloadZodOfSchema2 } from "@xyo-network/sdk-protocol-js";
97
+ import * as z3 from "zod/mini";
98
+ var SchemaStatsPayloadZod = z3.extend(PayloadZodOfSchema2(SchemaStatsDivinerSchema), {
99
+ count: z3.record(z3.string(), z3.number()),
100
+ // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas
101
+ name: z3.optional(z3.string())
102
+ });
103
+ var isSchemaStatsPayload = zodIsFactory3(SchemaStatsPayloadZod);
104
+ var asSchemaStatsPayload = zodAsFactory3(SchemaStatsPayloadZod, "asSchemaStatsPayload");
105
+ var toSchemaStatsPayload = zodToFactory3(SchemaStatsPayloadZod, "toSchemaStatsPayload");
70
106
  export {
71
107
  MemorySchemaStatsDiviner,
72
108
  SchemaStatsDiviner,
73
109
  SchemaStatsDivinerConfigSchema,
110
+ SchemaStatsDivinerConfigZod,
74
111
  SchemaStatsDivinerSchema,
112
+ SchemaStatsPayloadZod,
113
+ SchemaStatsQueryPayloadZod,
75
114
  SchemaStatsQuerySchema,
115
+ asSchemaStatsDivinerConfig,
116
+ asSchemaStatsPayload,
117
+ asSchemaStatsQueryPayload,
118
+ isSchemaStatsDivinerConfig,
76
119
  isSchemaStatsPayload,
77
- isSchemaStatsQueryPayload
120
+ isSchemaStatsQueryPayload,
121
+ toSchemaStatsDivinerConfig,
122
+ toSchemaStatsPayload,
123
+ toSchemaStatsQueryPayload
78
124
  };
79
125
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SchemaStatsDiviner.ts", "../../src/MemorySchemaStatsDiviner.ts", "../../src/Config.ts", "../../src/Schema.ts", "../../src/Query.ts", "../../src/Payload.ts"],
4
- "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport type { SchemaStatsDivinerParams } from './Params.ts'\n\nexport abstract class SchemaStatsDiviner<\n TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { isBoundWitness, PayloadBuilder } from '@xyo-network/sdk-protocol-js'\nimport {\n isStorageMeta, type Payload, type Schema, type XyoAddress,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerConfigSchema } from './Config.ts'\nimport type { SchemaStatsDivinerParams } from './Params.ts'\nimport type { SchemaStatsPayload } from './Payload.ts'\nimport type { SchemaStatsQueryPayload } from './Query.ts'\nimport { isSchemaStatsQueryPayload } from './Query.ts'\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\nimport { SchemaStatsDiviner } from './SchemaStatsDiviner.ts'\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: XyoAddress): 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(x => isBoundWitness(x) && isStorageMeta(x))\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 counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())\n }\n}\n", "import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import {\n asSchema, type Payload, type Query,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport type SchemaStatsQueryPayload = Query<{ schema: SchemaStatsQuerySchema }>\nexport const isSchemaStatsQueryPayload = (x?: Payload | null): x is SchemaStatsQueryPayload => x?.schema === SchemaStatsQuerySchema\n", "import type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport type SchemaStatsPayload = Payload<{\n count: Record<string, number>\n // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas\n name?: string\n schema: SchemaStatsDivinerSchema\n}>\n\nexport const isSchemaStatsPayload = (x?: Payload | null): x is SchemaStatsPayload => x?.schema === SchemaStatsDivinerSchema\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;AAMzB,IAAe,qBAAf,cASG,gBAAgD;AAAC;;;ACf3D,SAAS,gBAAgB;AACzB,SAAS,gBAAgB,sBAAsB;AAC/C;AAAA,EACE;AAAA,OACK;;;ACHP,SAAS,YAAAA,iBAA8B;;;ACDvC,SAAS,gBAAgB;AAElB,IAAM,2BAET,SAAS,oCAAoC,IAAI;;;ADC9C,IAAM,iCAETC,UAAS,GAAG,wBAAwB,WAAW,IAAI;;;AEPvD;AAAA,EACE,YAAAC;AAAA,OACK;AAIA,IAAM,yBAETC,UAAS,GAAG,wBAAwB,UAAU,IAAI;AAI/C,IAAM,4BAA4B,CAAC,MAAqD,GAAG,WAAW;;;AHEtG,IAAM,2BAAN,cAA4G,mBAA4B;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,8BAA8B;AAAA,EAC1G,OAAyB,sBAA8B;AAAA,EAEvD,MAAgB,cAAc,SAAsD;AAClF,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,UAAU,KAAK,EAAE,OAAO,IAAO,CAAC;AAClD,UAAM,WAAW,IACd,OAAO,OAAK,eAAe,CAAC,KAAK,cAAc,CAAC,CAAC,EACjD,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,OAAO,IAAI,WAAS,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,EACnI;AACF;;;AIlDO,IAAM,uBAAuB,CAAC,MAAgD,GAAG,WAAW;",
6
- "names": ["asSchema", "asSchema", "asSchema", "asSchema"]
4
+ "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport type { SchemaStatsDivinerParams } from './Params.ts'\n\nexport abstract class SchemaStatsDiviner<\n TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { isBoundWitness, PayloadBuilder } from '@xyo-network/sdk-protocol-js'\nimport {\n isStorageMeta, type Payload, type Schema, type XyoAddress,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerConfigSchema } from './Config.ts'\nimport type { SchemaStatsDivinerParams } from './Params.ts'\nimport type { SchemaStatsPayload } from './Payload.ts'\nimport type { SchemaStatsQueryPayload } from './Query.ts'\nimport { isSchemaStatsQueryPayload } from './Query.ts'\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\nimport { SchemaStatsDiviner } from './SchemaStatsDiviner.ts'\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: XyoAddress): 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(x => isBoundWitness(x) && isStorageMeta(x))\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 counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())\n }\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { DivinerConfigZod } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport const SchemaStatsDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<SchemaStatsDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) })\n\nexport type SchemaStatsDivinerConfigBase = z.infer<typeof SchemaStatsDivinerConfigZod>\n\nexport const isSchemaStatsDivinerConfig: ReturnType<typeof zodIsFactory<SchemaStatsDivinerConfigBase>> = zodIsFactory(SchemaStatsDivinerConfigZod)\nexport const asSchemaStatsDivinerConfig: ReturnType<typeof zodAsFactory<SchemaStatsDivinerConfigBase>> = zodAsFactory(SchemaStatsDivinerConfigZod, 'asSchemaStatsDivinerConfig')\nexport const toSchemaStatsDivinerConfig: ReturnType<typeof zodToFactory<SchemaStatsDivinerConfigBase>> = zodToFactory(SchemaStatsDivinerConfigZod, 'toSchemaStatsDivinerConfig')\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport const SchemaStatsQueryPayloadZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<SchemaStatsQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type SchemaStatsQueryPayload = z.infer<typeof SchemaStatsQueryPayloadZod>\n\nexport const isSchemaStatsQueryPayload: ReturnType<typeof zodIsFactory<SchemaStatsQueryPayload>> = zodIsFactory(SchemaStatsQueryPayloadZod)\nexport const asSchemaStatsQueryPayload: ReturnType<typeof zodAsFactory<SchemaStatsQueryPayload>> = zodAsFactory(SchemaStatsQueryPayloadZod, 'asSchemaStatsQueryPayload')\nexport const toSchemaStatsQueryPayload: ReturnType<typeof zodToFactory<SchemaStatsQueryPayload>> = zodToFactory(SchemaStatsQueryPayloadZod, 'toSchemaStatsQueryPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadZodOfSchema } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsPayloadZod: z.ZodMiniObject<{\n count: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>\n name: z.ZodMiniOptional<z.ZodMiniString<string>>\n schema: z.ZodMiniLiteral<SchemaStatsDivinerSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(SchemaStatsDivinerSchema), {\n count: z.record(z.string(), z.number()),\n // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas\n name: z.optional(z.string()),\n})\n\nexport type SchemaStatsPayload = z.infer<typeof SchemaStatsPayloadZod>\n\nexport const isSchemaStatsPayload: ReturnType<typeof zodIsFactory<SchemaStatsPayload>> = zodIsFactory(SchemaStatsPayloadZod)\nexport const asSchemaStatsPayload: ReturnType<typeof zodAsFactory<SchemaStatsPayload>> = zodAsFactory(SchemaStatsPayloadZod, 'asSchemaStatsPayload')\nexport const toSchemaStatsPayload: ReturnType<typeof zodToFactory<SchemaStatsPayload>> = zodToFactory(SchemaStatsPayloadZod, 'toSchemaStatsPayload')\n"],
5
+ "mappings": ";AAAA,SAAS,uBAAuB;AAMzB,IAAe,qBAAf,cASG,gBAAgD;AAAC;;;ACf3D,SAAS,gBAAgB;AACzB,SAAS,gBAAgB,sBAAsB;AAC/C;AAAA,EACE;AAAA,OACK;;;ACJP;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAEP,SAAS,wBAAwB;AACjC,SAAS,YAAAA,iBAA8B;AACvC,YAAY,OAAO;;;ACNnB,SAAS,gBAAgB;AAElB,IAAM,2BAET,SAAS,oCAAoC,IAAI;;;ADM9C,IAAM,iCAETC,UAAS,GAAG,wBAAwB,WAAW,IAAI;AAGhD,IAAM,8BAKP,SAAO,kBAAkB,EAAE,QAAU,UAAQ,8BAA8B,EAAE,CAAC;AAI7E,IAAM,6BAA4F,aAAa,2BAA2B;AAC1I,IAAM,6BAA4F,aAAa,6BAA6B,4BAA4B;AACxK,IAAM,6BAA4F,aAAa,6BAA6B,4BAA4B;;;AE1B/K;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP;AAAA,EACE,YAAAC;AAAA,EAAU;AAAA,EAAoB;AAAA,OACzB;AACP,YAAYC,QAAO;AAIZ,IAAM,yBAETC,UAAS,GAAG,wBAAwB,UAAU,IAAI;AAG/C,IAAM,6BAIP,UAAO,mBAAmB,sBAAsB,GAAG,EAAE,GAAG,eAAe,MAAM,CAAC;AAI7E,IAAM,4BAAsFC,cAAa,0BAA0B;AACnI,IAAM,4BAAsFC,cAAa,4BAA4B,2BAA2B;AAChK,IAAM,4BAAsFC,cAAa,4BAA4B,2BAA2B;;;AHXhK,IAAM,2BAAN,cAA4G,mBAA4B;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,8BAA8B;AAAA,EAC1G,OAAyB,sBAA8B;AAAA,EAEvD,MAAgB,cAAc,SAAsD;AAClF,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,UAAU,KAAK,EAAE,OAAO,IAAO,CAAC;AAClD,UAAM,WAAW,IACd,OAAO,OAAK,eAAe,CAAC,KAAK,cAAc,CAAC,CAAC,EACjD,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,OAAO,IAAI,WAAS,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,EACnI;AACF;;;AI7DA;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP,SAAS,sBAAAC,2BAA0B;AACnC,YAAYC,QAAO;AAIZ,IAAM,wBAIS,UAAOC,oBAAmB,wBAAwB,GAAG;AAAA,EACzE,OAAS,UAAS,UAAO,GAAK,UAAO,CAAC;AAAA;AAAA,EAEtC,MAAQ,YAAW,UAAO,CAAC;AAC7B,CAAC;AAIM,IAAM,uBAA4EC,cAAa,qBAAqB;AACpH,IAAM,uBAA4EC,cAAa,uBAAuB,sBAAsB;AAC5I,IAAM,uBAA4EC,cAAa,uBAAuB,sBAAsB;",
6
+ "names": ["asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "PayloadZodOfSchema", "z", "PayloadZodOfSchema", "zodIsFactory", "zodAsFactory", "zodToFactory"]
7
7
  }
@@ -6,7 +6,14 @@ import {
6
6
  } from "@xyo-network/sdk-protocol-js";
7
7
 
8
8
  // src/Config.ts
9
+ import {
10
+ zodAsFactory,
11
+ zodIsFactory,
12
+ zodToFactory
13
+ } from "@xylabs/sdk-js";
14
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
9
15
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
16
+ import * as z from "zod/mini";
10
17
 
11
18
  // src/Schema.ts
12
19
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -14,13 +21,28 @@ var SchemaStatsDivinerSchema = asSchema("network.xyo.diviner.schema.stats", true
14
21
 
15
22
  // src/Config.ts
16
23
  var SchemaStatsDivinerConfigSchema = asSchema2(`${SchemaStatsDivinerSchema}.config`, true);
24
+ var SchemaStatsDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) });
25
+ var isSchemaStatsDivinerConfig = zodIsFactory(SchemaStatsDivinerConfigZod);
26
+ var asSchemaStatsDivinerConfig = zodAsFactory(SchemaStatsDivinerConfigZod, "asSchemaStatsDivinerConfig");
27
+ var toSchemaStatsDivinerConfig = zodToFactory(SchemaStatsDivinerConfigZod, "toSchemaStatsDivinerConfig");
17
28
 
18
29
  // src/Query.ts
19
30
  import {
20
- asSchema as asSchema3
31
+ zodAsFactory as zodAsFactory2,
32
+ zodIsFactory as zodIsFactory2,
33
+ zodToFactory as zodToFactory2
34
+ } from "@xylabs/sdk-js";
35
+ import {
36
+ asSchema as asSchema3,
37
+ PayloadZodOfSchema,
38
+ QueryFieldsZod
21
39
  } from "@xyo-network/sdk-protocol-js";
40
+ import * as z2 from "zod/mini";
22
41
  var SchemaStatsQuerySchema = asSchema3(`${SchemaStatsDivinerSchema}.query`, true);
23
- var isSchemaStatsQueryPayload = (x) => x?.schema === SchemaStatsQuerySchema;
42
+ var SchemaStatsQueryPayloadZod = z2.extend(PayloadZodOfSchema(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape });
43
+ var isSchemaStatsQueryPayload = zodIsFactory2(SchemaStatsQueryPayloadZod);
44
+ var asSchemaStatsQueryPayload = zodAsFactory2(SchemaStatsQueryPayloadZod, "asSchemaStatsQueryPayload");
45
+ var toSchemaStatsQueryPayload = zodToFactory2(SchemaStatsQueryPayloadZod, "toSchemaStatsQueryPayload");
24
46
 
25
47
  // src/SchemaStatsDiviner.ts
26
48
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MemorySchemaStatsDiviner.ts", "../../src/Config.ts", "../../src/Schema.ts", "../../src/Query.ts", "../../src/SchemaStatsDiviner.ts"],
4
- "sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport { isBoundWitness, PayloadBuilder } from '@xyo-network/sdk-protocol-js'\nimport {\n isStorageMeta, type Payload, type Schema, type XyoAddress,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerConfigSchema } from './Config.ts'\nimport type { SchemaStatsDivinerParams } from './Params.ts'\nimport type { SchemaStatsPayload } from './Payload.ts'\nimport type { SchemaStatsQueryPayload } from './Query.ts'\nimport { isSchemaStatsQueryPayload } from './Query.ts'\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\nimport { SchemaStatsDiviner } from './SchemaStatsDiviner.ts'\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: XyoAddress): 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(x => isBoundWitness(x) && isStorageMeta(x))\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 counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())\n }\n}\n", "import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import {\n asSchema, type Payload, type Query,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport type SchemaStatsQueryPayload = Query<{ schema: SchemaStatsQuerySchema }>\nexport const isSchemaStatsQueryPayload = (x?: Payload | null): x is SchemaStatsQueryPayload => x?.schema === SchemaStatsQuerySchema\n", "import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport type { SchemaStatsDivinerParams } from './Params.ts'\n\nexport abstract class SchemaStatsDiviner<\n TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n"],
5
- "mappings": ";AAAA,SAAS,gBAAgB;AACzB,SAAS,gBAAgB,sBAAsB;AAC/C;AAAA,EACE;AAAA,OACK;;;ACHP,SAAS,YAAAA,iBAA8B;;;ACDvC,SAAS,gBAAgB;AAElB,IAAM,2BAET,SAAS,oCAAoC,IAAI;;;ADC9C,IAAM,iCAETC,UAAS,GAAG,wBAAwB,WAAW,IAAI;;;AEPvD;AAAA,EACE,YAAAC;AAAA,OACK;AAIA,IAAM,yBAETC,UAAS,GAAG,wBAAwB,UAAU,IAAI;AAI/C,IAAM,4BAA4B,CAAC,MAAqD,GAAG,WAAW;;;ACZ7G,SAAS,uBAAuB;AAMzB,IAAe,qBAAf,cASG,gBAAgD;AAAC;;;AJDpD,IAAM,2BAAN,cAA4G,mBAA4B;AAAA,EAC7I,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,8BAA8B;AAAA,EAC1G,OAAyB,sBAA8B;AAAA,EAEvD,MAAgB,cAAc,SAAsD;AAClF,UAAM,YAAY,SAAS,MAAM,KAAK,kBAAkB,GAAG,MAAM,6BAA6B;AAC9F,UAAM,MAAM,MAAM,UAAU,KAAK,EAAE,OAAO,IAAO,CAAC;AAClD,UAAM,WAAW,IACd,OAAO,OAAK,eAAe,CAAC,KAAK,cAAc,CAAC,CAAC,EACjD,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,OAAO,IAAI,WAAS,IAAI,eAAmC,EAAE,QAAQ,yBAAyB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC;AAAA,EACnI;AACF;",
6
- "names": ["asSchema", "asSchema", "asSchema", "asSchema"]
4
+ "sourcesContent": ["import { assertEx } from '@xylabs/sdk-js'\nimport { isBoundWitness, PayloadBuilder } from '@xyo-network/sdk-protocol-js'\nimport {\n isStorageMeta, type Payload, type Schema, type XyoAddress,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerConfigSchema } from './Config.ts'\nimport type { SchemaStatsDivinerParams } from './Params.ts'\nimport type { SchemaStatsPayload } from './Payload.ts'\nimport type { SchemaStatsQueryPayload } from './Query.ts'\nimport { isSchemaStatsQueryPayload } from './Query.ts'\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\nimport { SchemaStatsDiviner } from './SchemaStatsDiviner.ts'\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: XyoAddress): 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(x => isBoundWitness(x) && isStorageMeta(x))\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 counts.map(count => new PayloadBuilder<SchemaStatsPayload>({ schema: SchemaStatsDivinerSchema }).fields({ count }).build())\n }\n}\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { DivinerConfigZod } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport const SchemaStatsDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<SchemaStatsDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) })\n\nexport type SchemaStatsDivinerConfigBase = z.infer<typeof SchemaStatsDivinerConfigZod>\n\nexport const isSchemaStatsDivinerConfig: ReturnType<typeof zodIsFactory<SchemaStatsDivinerConfigBase>> = zodIsFactory(SchemaStatsDivinerConfigZod)\nexport const asSchemaStatsDivinerConfig: ReturnType<typeof zodAsFactory<SchemaStatsDivinerConfigBase>> = zodAsFactory(SchemaStatsDivinerConfigZod, 'asSchemaStatsDivinerConfig')\nexport const toSchemaStatsDivinerConfig: ReturnType<typeof zodToFactory<SchemaStatsDivinerConfigBase>> = zodToFactory(SchemaStatsDivinerConfigZod, 'toSchemaStatsDivinerConfig')\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport const SchemaStatsQueryPayloadZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<SchemaStatsQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type SchemaStatsQueryPayload = z.infer<typeof SchemaStatsQueryPayloadZod>\n\nexport const isSchemaStatsQueryPayload: ReturnType<typeof zodIsFactory<SchemaStatsQueryPayload>> = zodIsFactory(SchemaStatsQueryPayloadZod)\nexport const asSchemaStatsQueryPayload: ReturnType<typeof zodAsFactory<SchemaStatsQueryPayload>> = zodAsFactory(SchemaStatsQueryPayloadZod, 'asSchemaStatsQueryPayload')\nexport const toSchemaStatsQueryPayload: ReturnType<typeof zodToFactory<SchemaStatsQueryPayload>> = zodToFactory(SchemaStatsQueryPayloadZod, 'toSchemaStatsQueryPayload')\n", "import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport type { SchemaStatsDivinerParams } from './Params.ts'\n\nexport abstract class SchemaStatsDiviner<\n TParams extends SchemaStatsDivinerParams = SchemaStatsDivinerParams,\n TIn extends Payload = Payload,\n TOut extends Payload = Payload,\n TEventData extends DivinerModuleEventData<DivinerInstance<TParams, TIn, TOut>, TIn, TOut> = DivinerModuleEventData<\n DivinerInstance<TParams, TIn, TOut>,\n TIn,\n TOut\n >,\n> extends AbstractDiviner<TParams, TIn, TOut, TEventData> {}\n"],
5
+ "mappings": "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",
6
+ "names": ["asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory"]
7
7
  }
@@ -1,5 +1,12 @@
1
1
  // src/Config.ts
2
+ import {
3
+ zodAsFactory,
4
+ zodIsFactory,
5
+ zodToFactory
6
+ } from "@xylabs/sdk-js";
7
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
2
8
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
9
+ import * as z from "zod/mini";
3
10
 
4
11
  // src/Schema.ts
5
12
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -7,21 +14,60 @@ var SchemaStatsDivinerSchema = asSchema("network.xyo.diviner.schema.stats", true
7
14
 
8
15
  // src/Config.ts
9
16
  var SchemaStatsDivinerConfigSchema = asSchema2(`${SchemaStatsDivinerSchema}.config`, true);
17
+ var SchemaStatsDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) });
18
+ var isSchemaStatsDivinerConfig = zodIsFactory(SchemaStatsDivinerConfigZod);
19
+ var asSchemaStatsDivinerConfig = zodAsFactory(SchemaStatsDivinerConfigZod, "asSchemaStatsDivinerConfig");
20
+ var toSchemaStatsDivinerConfig = zodToFactory(SchemaStatsDivinerConfigZod, "toSchemaStatsDivinerConfig");
10
21
 
11
22
  // src/Payload.ts
12
- var isSchemaStatsPayload = (x) => x?.schema === SchemaStatsDivinerSchema;
23
+ import {
24
+ zodAsFactory as zodAsFactory2,
25
+ zodIsFactory as zodIsFactory2,
26
+ zodToFactory as zodToFactory2
27
+ } from "@xylabs/sdk-js";
28
+ import { PayloadZodOfSchema } from "@xyo-network/sdk-protocol-js";
29
+ import * as z2 from "zod/mini";
30
+ var SchemaStatsPayloadZod = z2.extend(PayloadZodOfSchema(SchemaStatsDivinerSchema), {
31
+ count: z2.record(z2.string(), z2.number()),
32
+ // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas
33
+ name: z2.optional(z2.string())
34
+ });
35
+ var isSchemaStatsPayload = zodIsFactory2(SchemaStatsPayloadZod);
36
+ var asSchemaStatsPayload = zodAsFactory2(SchemaStatsPayloadZod, "asSchemaStatsPayload");
37
+ var toSchemaStatsPayload = zodToFactory2(SchemaStatsPayloadZod, "toSchemaStatsPayload");
13
38
 
14
39
  // src/Query.ts
15
40
  import {
16
- asSchema as asSchema3
41
+ zodAsFactory as zodAsFactory3,
42
+ zodIsFactory as zodIsFactory3,
43
+ zodToFactory as zodToFactory3
44
+ } from "@xylabs/sdk-js";
45
+ import {
46
+ asSchema as asSchema3,
47
+ PayloadZodOfSchema as PayloadZodOfSchema2,
48
+ QueryFieldsZod
17
49
  } from "@xyo-network/sdk-protocol-js";
50
+ import * as z3 from "zod/mini";
18
51
  var SchemaStatsQuerySchema = asSchema3(`${SchemaStatsDivinerSchema}.query`, true);
19
- var isSchemaStatsQueryPayload = (x) => x?.schema === SchemaStatsQuerySchema;
52
+ var SchemaStatsQueryPayloadZod = z3.extend(PayloadZodOfSchema2(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape });
53
+ var isSchemaStatsQueryPayload = zodIsFactory3(SchemaStatsQueryPayloadZod);
54
+ var asSchemaStatsQueryPayload = zodAsFactory3(SchemaStatsQueryPayloadZod, "asSchemaStatsQueryPayload");
55
+ var toSchemaStatsQueryPayload = zodToFactory3(SchemaStatsQueryPayloadZod, "toSchemaStatsQueryPayload");
20
56
  export {
21
57
  SchemaStatsDivinerConfigSchema,
58
+ SchemaStatsDivinerConfigZod,
22
59
  SchemaStatsDivinerSchema,
60
+ SchemaStatsPayloadZod,
61
+ SchemaStatsQueryPayloadZod,
23
62
  SchemaStatsQuerySchema,
63
+ asSchemaStatsDivinerConfig,
64
+ asSchemaStatsPayload,
65
+ asSchemaStatsQueryPayload,
66
+ isSchemaStatsDivinerConfig,
24
67
  isSchemaStatsPayload,
25
- isSchemaStatsQueryPayload
68
+ isSchemaStatsQueryPayload,
69
+ toSchemaStatsDivinerConfig,
70
+ toSchemaStatsPayload,
71
+ toSchemaStatsQueryPayload
26
72
  };
27
73
  //# sourceMappingURL=model.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Config.ts", "../../src/Schema.ts", "../../src/Payload.ts", "../../src/Query.ts"],
4
- "sourcesContent": ["import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import type { Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport type SchemaStatsPayload = Payload<{\n count: Record<string, number>\n // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas\n name?: string\n schema: SchemaStatsDivinerSchema\n}>\n\nexport const isSchemaStatsPayload = (x?: Payload | null): x is SchemaStatsPayload => x?.schema === SchemaStatsDivinerSchema\n", "import {\n asSchema, type Payload, type Query,\n} from '@xyo-network/sdk-protocol-js'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport type SchemaStatsQueryPayload = Query<{ schema: SchemaStatsQuerySchema }>\nexport const isSchemaStatsQueryPayload = (x?: Payload | null): x is SchemaStatsQueryPayload => x?.schema === SchemaStatsQuerySchema\n"],
5
- "mappings": ";AACA,SAAS,YAAAA,iBAA8B;;;ACDvC,SAAS,gBAAgB;AAElB,IAAM,2BAET,SAAS,oCAAoC,IAAI;;;ADC9C,IAAM,iCAETC,UAAS,GAAG,wBAAwB,WAAW,IAAI;;;AEIhD,IAAM,uBAAuB,CAAC,MAAgD,GAAG,WAAW;;;ACXnG;AAAA,EACE,YAAAC;AAAA,OACK;AAIA,IAAM,yBAETC,UAAS,GAAG,wBAAwB,UAAU,IAAI;AAI/C,IAAM,4BAA4B,CAAC,MAAqD,GAAG,WAAW;",
6
- "names": ["asSchema", "asSchema", "asSchema", "asSchema"]
4
+ "sourcesContent": ["import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { DivinerConfigZod } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.config`, true)\nexport type SchemaStatsDivinerConfigSchema = typeof SchemaStatsDivinerConfigSchema\n\nexport const SchemaStatsDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<SchemaStatsDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(SchemaStatsDivinerConfigSchema) })\n\nexport type SchemaStatsDivinerConfigBase = z.infer<typeof SchemaStatsDivinerConfigZod>\n\nexport const isSchemaStatsDivinerConfig: ReturnType<typeof zodIsFactory<SchemaStatsDivinerConfigBase>> = zodIsFactory(SchemaStatsDivinerConfigZod)\nexport const asSchemaStatsDivinerConfig: ReturnType<typeof zodAsFactory<SchemaStatsDivinerConfigBase>> = zodAsFactory(SchemaStatsDivinerConfigZod, 'asSchemaStatsDivinerConfig')\nexport const toSchemaStatsDivinerConfig: ReturnType<typeof zodToFactory<SchemaStatsDivinerConfigBase>> = zodToFactory(SchemaStatsDivinerConfigZod, 'toSchemaStatsDivinerConfig')\n\nexport type SchemaStatsDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: SchemaStatsDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const SchemaStatsDivinerSchema: 'network.xyo.diviner.schema.stats' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.schema.stats', true)\nexport type SchemaStatsDivinerSchema = typeof SchemaStatsDivinerSchema\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport { PayloadZodOfSchema } from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsPayloadZod: z.ZodMiniObject<{\n count: z.ZodMiniRecord<z.ZodMiniString<string>, z.ZodMiniNumber<number>>\n name: z.ZodMiniOptional<z.ZodMiniString<string>>\n schema: z.ZodMiniLiteral<SchemaStatsDivinerSchema>\n}, z.core.$strip> = z.extend(PayloadZodOfSchema(SchemaStatsDivinerSchema), {\n count: z.record(z.string(), z.number()),\n // the name of the schema that the count is for. If name is undefined, then it is the count for all schemas\n name: z.optional(z.string()),\n})\n\nexport type SchemaStatsPayload = z.infer<typeof SchemaStatsPayloadZod>\n\nexport const isSchemaStatsPayload: ReturnType<typeof zodIsFactory<SchemaStatsPayload>> = zodIsFactory(SchemaStatsPayloadZod)\nexport const asSchemaStatsPayload: ReturnType<typeof zodAsFactory<SchemaStatsPayload>> = zodAsFactory(SchemaStatsPayloadZod, 'asSchemaStatsPayload')\nexport const toSchemaStatsPayload: ReturnType<typeof zodToFactory<SchemaStatsPayload>> = zodToFactory(SchemaStatsPayloadZod, 'toSchemaStatsPayload')\n", "import {\n zodAsFactory, zodIsFactory, zodToFactory,\n} from '@xylabs/sdk-js'\nimport {\n asSchema, PayloadZodOfSchema, QueryFieldsZod,\n} from '@xyo-network/sdk-protocol-js'\nimport * as z from 'zod/mini'\n\nimport { SchemaStatsDivinerSchema } from './Schema.ts'\n\nexport const SchemaStatsQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${SchemaStatsDivinerSchema}.query`, true)\nexport type SchemaStatsQuerySchema = typeof SchemaStatsQuerySchema\n\nexport const SchemaStatsQueryPayloadZod: z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<SchemaStatsQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n> = z.extend(PayloadZodOfSchema(SchemaStatsQuerySchema), { ...QueryFieldsZod.shape })\n\nexport type SchemaStatsQueryPayload = z.infer<typeof SchemaStatsQueryPayloadZod>\n\nexport const isSchemaStatsQueryPayload: ReturnType<typeof zodIsFactory<SchemaStatsQueryPayload>> = zodIsFactory(SchemaStatsQueryPayloadZod)\nexport const asSchemaStatsQueryPayload: ReturnType<typeof zodAsFactory<SchemaStatsQueryPayload>> = zodAsFactory(SchemaStatsQueryPayloadZod, 'asSchemaStatsQueryPayload')\nexport const toSchemaStatsQueryPayload: ReturnType<typeof zodToFactory<SchemaStatsQueryPayload>> = zodToFactory(SchemaStatsQueryPayloadZod, 'toSchemaStatsQueryPayload')\n"],
5
+ "mappings": ";AAAA;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAEP,SAAS,wBAAwB;AACjC,SAAS,YAAAA,iBAA8B;AACvC,YAAY,OAAO;;;ACNnB,SAAS,gBAAgB;AAElB,IAAM,2BAET,SAAS,oCAAoC,IAAI;;;ADM9C,IAAM,iCAETC,UAAS,GAAG,wBAAwB,WAAW,IAAI;AAGhD,IAAM,8BAKP,SAAO,kBAAkB,EAAE,QAAU,UAAQ,8BAA8B,EAAE,CAAC;AAI7E,IAAM,6BAA4F,aAAa,2BAA2B;AAC1I,IAAM,6BAA4F,aAAa,6BAA6B,4BAA4B;AACxK,IAAM,6BAA4F,aAAa,6BAA6B,4BAA4B;;;AE1B/K;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP,SAAS,0BAA0B;AACnC,YAAYC,QAAO;AAIZ,IAAM,wBAIS,UAAO,mBAAmB,wBAAwB,GAAG;AAAA,EACzE,OAAS,UAAS,UAAO,GAAK,UAAO,CAAC;AAAA;AAAA,EAEtC,MAAQ,YAAW,UAAO,CAAC;AAC7B,CAAC;AAIM,IAAM,uBAA4EC,cAAa,qBAAqB;AACpH,IAAM,uBAA4EC,cAAa,uBAAuB,sBAAsB;AAC5I,IAAM,uBAA4EC,cAAa,uBAAuB,sBAAsB;;;ACtBnJ;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP;AAAA,EACE,YAAAC;AAAA,EAAU,sBAAAC;AAAA,EAAoB;AAAA,OACzB;AACP,YAAYC,QAAO;AAIZ,IAAM,yBAETC,UAAS,GAAG,wBAAwB,UAAU,IAAI;AAG/C,IAAM,6BAIP,UAAOC,oBAAmB,sBAAsB,GAAG,EAAE,GAAG,eAAe,MAAM,CAAC;AAI7E,IAAM,4BAAsFC,cAAa,0BAA0B;AACnI,IAAM,4BAAsFC,cAAa,4BAA4B,2BAA2B;AAChK,IAAM,4BAAsFC,cAAa,4BAA4B,2BAA2B;",
6
+ "names": ["asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "z", "zodIsFactory", "zodAsFactory", "zodToFactory", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "PayloadZodOfSchema", "z", "asSchema", "PayloadZodOfSchema", "zodIsFactory", "zodAsFactory", "zodToFactory"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-schema-stats",
3
- "version": "6.1.0",
3
+ "version": "7.0.1",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -46,29 +46,29 @@
46
46
  "README.md"
47
47
  ],
48
48
  "dependencies": {
49
- "@xyo-network/diviner-model": "~6.1.0",
50
- "@xyo-network/diviner-abstract": "~6.1.0",
51
- "@xyo-network/module-model": "~6.1.0"
49
+ "@xyo-network/diviner-abstract": "~7.0.1",
50
+ "@xyo-network/diviner-model": "~7.0.1",
51
+ "@xyo-network/module-model": "~7.0.1"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@bitauth/libauth": "~3.0.0",
55
55
  "@metamask/providers": "^22.1.1",
56
56
  "@noble/post-quantum": "~0.6.1",
57
57
  "@opentelemetry/api": "^1.9.1",
58
- "@opentelemetry/sdk-trace-base": "^2.7.1",
58
+ "@opentelemetry/sdk-trace-base": "^2.8.0",
59
59
  "@scure/base": "~2.2.0",
60
60
  "@scure/bip39": "~2.2.0",
61
- "@xylabs/geo": "^6.1.0",
62
- "@xylabs/sdk-js": "^6.1.0",
63
- "@xylabs/threads": "^6.1.0",
64
- "@xylabs/toolchain": "^8.1.20",
65
- "@xylabs/tsconfig": "^8.1.20",
66
- "@xyo-network/sdk-protocol-js": "^6.1.0",
61
+ "@xylabs/geo": "^6.1.4",
62
+ "@xylabs/sdk-js": "^6.1.4",
63
+ "@xylabs/threads": "^6.1.4",
64
+ "@xylabs/toolchain": "^8.3.0",
65
+ "@xylabs/tsconfig": "^8.3.0",
66
+ "@xyo-network/sdk-protocol-js": "^7.0.3",
67
67
  "ajv": "^8.20.0",
68
68
  "async-mutex": "^0.5.0",
69
69
  "debug": "~4.4.3",
70
- "eslint": "^10.4.1",
71
- "ethers": "^6.16.0",
70
+ "eslint": "^10.5.0",
71
+ "ethers": "^6.17.0",
72
72
  "hash-wasm": "~4.12.0",
73
73
  "idb": "^8.0.3",
74
74
  "lru-cache": "^11.5.1",
@@ -88,7 +88,7 @@
88
88
  "@xylabs/geo": "^6.0",
89
89
  "@xylabs/sdk-js": "^6.0",
90
90
  "@xylabs/threads": "^6.0",
91
- "@xyo-network/sdk-protocol-js": "^6.1",
91
+ "@xyo-network/sdk-protocol-js": "^7.0",
92
92
  "ajv": "^8.20",
93
93
  "async-mutex": "^0.5",
94
94
  "debug": "~4.4",