@xyo-network/diviner-boundwitness 6.0.4 → 7.0.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/README.md CHANGED
@@ -38,10 +38,12 @@ bun add {{name}}
38
38
 
39
39
  See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
40
40
 
41
+ ## Credits
41
42
 
43
+ [Made with 🔥 and ❄️ by XYO Foundation](https://xyo.network)
42
44
 
43
- [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
44
45
  [npm-badge]: https://img.shields.io/npm/v/@xyo-network/diviner-boundwitness.svg
45
46
  [npm-link]: https://www.npmjs.com/package/@xyo-network/diviner-boundwitness
46
47
  [license-badge]: https://img.shields.io/npm/l/@xyo-network/diviner-boundwitness.svg
47
48
  [license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
49
+ [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
@@ -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 BoundWitnessDivinerConfigSchema: string & {
4
7
  readonly __schema: true;
5
8
  };
6
9
  export type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema;
10
+ export declare const BoundWitnessDivinerConfigZod: z.ZodMiniObject<Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {
11
+ schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>;
12
+ }, z.core.$strip>;
13
+ export type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>;
14
+ export declare const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>>;
15
+ export declare const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>>;
16
+ export declare const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>>;
7
17
  export type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<T & {
8
18
  schema: BoundWitnessDivinerConfigSchema;
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,+BAA+B;;CAAwD,CAAA;AACpG,MAAM,MAAM,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAEpF,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,aAAa,CAChF,CAAC,GAAG;IACF,MAAM,EAAE,+BAA+B,CAAA;CACxC,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,+BAA+B,EAAE,MAAM,GAAG;IACrD,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CACgC,CAAA;AACzD,MAAM,MAAM,+BAA+B,GAAG,OAAO,+BAA+B,CAAA;AAEpF,eAAO,MAAM,4BAA4B,EAAE,CAAC,CAAC,aAAa,CACxD,IAAI,CAAC,CAAC,OAAO,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IACnD,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,+BAA+B,CAAC,CAAA;CAC1D,EACD,CAAC,CAAC,IAAI,CAAC,MAAM,CACuE,CAAA;AAEtF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAExF,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,6BAA6B,CAAC,CAA8C,CAAA;AACrJ,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,6BAA6B,CAAC,CAA6E,CAAA;AACpL,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,6BAA6B,CAAC,CAA6E,CAAA;AAEpL,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,aAAa,CAChF,CAAC,GAAG;IACF,MAAM,EAAE,+BAA+B,CAAA;CACxC,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryBoundWitnessDiviner.d.ts","sourceRoot":"","sources":["../../src/MemoryBoundWitnessDiviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,8BAA8B,CAAA;AAIhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,KAAK,+BAA+B,EAAqC,MAAM,YAAY,CAAA;AAEpG,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,yBAAyB,CACpC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,EACrE,GAAG,SAAS,+BAA+B,GAAG,+BAA+B,EAC7E,IAAI,SAAS,YAAY,GAAG,YAAY,CACxC,SAAQ,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;cACtB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;CAOxD"}
1
+ {"version":3,"file":"MemoryBoundWitnessDiviner.d.ts","sourceRoot":"","sources":["../../src/MemoryBoundWitnessDiviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,8BAA8B,CAAA;AAIhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,KAAK,+BAA+B,EAAqC,MAAM,YAAY,CAAA;AAEpG,MAAM,WAAW,2BAA2B;IAC1C;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qBAAa,yBAAyB,CACpC,OAAO,SAAS,yBAAyB,GAAG,yBAAyB,EACrE,GAAG,SAAS,+BAA+B,GAAG,+BAA+B,EAC7E,IAAI,SAAS,YAAY,GAAG,YAAY,CACxC,SAAQ,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC;cACtB,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAO1E"}
@@ -1,11 +1,16 @@
1
- import 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
  import type { BoundWitnessDivinerPredicate } from './Predicate.ts';
3
5
  export declare const BoundWitnessDivinerQuerySchema: string & {
4
6
  readonly __schema: true;
5
7
  };
6
8
  export type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema;
7
- export type BoundWitnessDivinerQueryPayload = Query<{
8
- schema: BoundWitnessDivinerQuerySchema;
9
- } & BoundWitnessDivinerPredicate>;
10
- export declare const isBoundWitnessDivinerQueryPayload: (x?: unknown) => x is BoundWitnessDivinerQueryPayload;
9
+ export declare const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<z.ZodMiniObject<{
10
+ schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema>;
11
+ } & (typeof QueryFieldsZod)['shape'], z.core.$strip>, z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>>;
12
+ export type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>;
13
+ export declare const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>>;
14
+ export declare const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>>;
15
+ export declare const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>>;
11
16
  //# sourceMappingURL=Query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Query.d.ts","sourceRoot":"","sources":["../../src/Query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAGzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAGlE,eAAO,MAAM,8BAA8B;;CAAuD,CAAA;AAClG,MAAM,MAAM,8BAA8B,GAAG,OAAO,8BAA8B,CAAA;AAElF,MAAM,MAAM,+BAA+B,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,8BAA8B,CAAA;CAAE,GAAG,4BAA4B,CAAC,CAAA;AAC9H,eAAO,MAAM,iCAAiC,uDAAyF,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;AAE7B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAA;AAGlE,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,kCAAkC,EAAE,CAAC,CAAC,mBAAmB,CACpE,CAAC,CAAC,aAAa,CACX;IAAE,MAAM,EAAE,CAAC,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAA;CAAE,GAC5D,CAAC,OAAO,cAAc,CAAC,CAAC,OAAO,CAAC,EAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CACd,EACD,CAAC,CAAC,aAAa,CAAC,4BAA4B,EAAE,4BAA4B,CAAC,CAI5E,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEhG,eAAO,MAAM,iCAAiC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,+BAA+B,CAAC,CAAoD,CAAA;AACnK,eAAO,MAAM,iCAAiC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,+BAA+B,CAAC,CAAyF,CAAA;AACxM,eAAO,MAAM,iCAAiC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,+BAA+B,CAAC,CAAyF,CAAA"}
@@ -1,4 +1,4 @@
1
- export declare const BoundWitnessDivinerSchema: "network.xyo.diviner.boundwitness" & {
1
+ export declare const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {
2
2
  readonly __schema: true;
3
3
  };
4
4
  export type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;;CAAqD,CAAA;AAC3F,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAA"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../src/Schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,EAAE,kCAAkC,GAAG;IAC3E,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAC6B,CAAA;AACtD,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAA"}
@@ -2,7 +2,14 @@
2
2
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
3
3
 
4
4
  // src/Config.ts
5
+ import {
6
+ zodAsFactory,
7
+ zodIsFactory,
8
+ zodToFactory
9
+ } from "@xylabs/sdk-js";
10
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
5
11
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
12
+ import * as z from "zod/mini";
6
13
 
7
14
  // src/Schema.ts
8
15
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -10,6 +17,10 @@ var BoundWitnessDivinerSchema = asSchema("network.xyo.diviner.boundwitness", tru
10
17
 
11
18
  // src/Config.ts
12
19
  var BoundWitnessDivinerConfigSchema = asSchema2(`${BoundWitnessDivinerSchema}.config`, true);
20
+ var BoundWitnessDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) });
21
+ var isBoundWitnessDivinerConfig = zodIsFactory(BoundWitnessDivinerConfigZod);
22
+ var asBoundWitnessDivinerConfig = zodAsFactory(BoundWitnessDivinerConfigZod, "asBoundWitnessDivinerConfig");
23
+ var toBoundWitnessDivinerConfig = zodToFactory(BoundWitnessDivinerConfigZod, "toBoundWitnessDivinerConfig");
13
24
 
14
25
  // src/BoundWitnessDiviner.ts
15
26
  var BoundWitnessDiviner = class extends AbstractDiviner {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BoundWitnessDiviner.ts", "../../src/Config.ts", "../../src/Schema.ts"],
4
- "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\n}\n", "import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n"],
5
- "mappings": ";AAAA,SAAS,uBAAuB;;;ACChC,SAAS,YAAAA,iBAA8B;;;ACDvC,SAAS,gBAAgB;AAElB,IAAM,4BAA4B,SAAS,oCAAoC,IAAI;;;ADGnF,IAAM,kCAAkCC,UAAS,GAAG,yBAAyB,WAAW,IAAI;;;ADG5F,IAAe,sBAAf,cASG,gBAAgD;AAAA,EACxD,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,+BAA+B;AAAA,EAC3G,OAAyB,sBAA8B;AACzD;",
4
+ "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\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 { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n"],
5
+ "mappings": ";AAAA,SAAS,uBAAuB;;;ACAhC;AAAA,EACE;AAAA,EAAc;AAAA,EAAc;AAAA,OACvB;AAEP,SAAS,wBAAwB;AACjC,SAAS,YAAAA,iBAA8B;AACvC,YAAY,OAAO;;;ACNnB,SAAS,gBAAgB;AAElB,IAAM,4BAET,SAAS,oCAAoC,IAAI;;;ADM9C,IAAM,kCAETC,UAAS,GAAG,yBAAyB,WAAW,IAAI;AAGjD,IAAM,+BAKP,SAAO,kBAAkB,EAAE,QAAU,UAAQ,+BAA+B,EAAE,CAAC;AAI9E,IAAM,8BAA8F,aAAa,4BAA4B;AAC7I,IAAM,8BAA8F,aAAa,8BAA8B,6BAA6B;AAC5K,IAAM,8BAA8F,aAAa,8BAA8B,6BAA6B;;;ADlB5K,IAAe,sBAAf,cASG,gBAAgD;AAAA,EACxD,OAAyB,gBAA0B,CAAC,GAAG,MAAM,eAAe,+BAA+B;AAAA,EAC3G,OAAyB,sBAA8B;AACzD;",
6
6
  "names": ["asSchema", "asSchema"]
7
7
  }
@@ -2,7 +2,14 @@
2
2
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
3
3
 
4
4
  // src/Config.ts
5
+ import {
6
+ zodAsFactory,
7
+ zodIsFactory,
8
+ zodToFactory
9
+ } from "@xylabs/sdk-js";
10
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
5
11
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
12
+ import * as z from "zod/mini";
6
13
 
7
14
  // src/Schema.ts
8
15
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -10,6 +17,10 @@ var BoundWitnessDivinerSchema = asSchema("network.xyo.diviner.boundwitness", tru
10
17
 
11
18
  // src/Config.ts
12
19
  var BoundWitnessDivinerConfigSchema = asSchema2(`${BoundWitnessDivinerSchema}.config`, true);
20
+ var BoundWitnessDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) });
21
+ var isBoundWitnessDivinerConfig = zodIsFactory(BoundWitnessDivinerConfigZod);
22
+ var asBoundWitnessDivinerConfig = zodAsFactory(BoundWitnessDivinerConfigZod, "asBoundWitnessDivinerConfig");
23
+ var toBoundWitnessDivinerConfig = zodToFactory(BoundWitnessDivinerConfigZod, "toBoundWitnessDivinerConfig");
13
24
 
14
25
  // src/BoundWitnessDiviner.ts
15
26
  var BoundWitnessDiviner = class extends AbstractDiviner {
@@ -69,9 +80,25 @@ import { isBoundWitness as isBoundWitness2 } from "@xyo-network/sdk-protocol-js"
69
80
  import { isStorageMeta } from "@xyo-network/sdk-protocol-js";
70
81
 
71
82
  // src/Query.ts
72
- import { asSchema as asSchema3, isPayloadOfSchemaType } from "@xyo-network/sdk-protocol-js";
83
+ import {
84
+ zodAsFactory as zodAsFactory2,
85
+ zodIsFactory as zodIsFactory2,
86
+ zodToFactory as zodToFactory2
87
+ } from "@xylabs/sdk-js";
88
+ import {
89
+ asSchema as asSchema3,
90
+ PayloadZodOfSchema,
91
+ QueryFieldsZod
92
+ } from "@xyo-network/sdk-protocol-js";
93
+ import * as z2 from "zod/mini";
73
94
  var BoundWitnessDivinerQuerySchema = asSchema3(`${BoundWitnessDivinerSchema}.query`, true);
74
- var isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType(BoundWitnessDivinerQuerySchema);
95
+ var BoundWitnessDivinerQueryPayloadZod = z2.intersection(
96
+ z2.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),
97
+ z2.custom()
98
+ );
99
+ var isBoundWitnessDivinerQueryPayload = zodIsFactory2(BoundWitnessDivinerQueryPayloadZod);
100
+ var asBoundWitnessDivinerQueryPayload = zodAsFactory2(BoundWitnessDivinerQueryPayloadZod, "asBoundWitnessDivinerQueryPayload");
101
+ var toBoundWitnessDivinerQueryPayload = zodToFactory2(BoundWitnessDivinerQueryPayloadZod, "toBoundWitnessDivinerQueryPayload");
75
102
 
76
103
  // src/MemoryBoundWitnessDiviner.ts
77
104
  var MemoryBoundWitnessDiviner = class extends BoundWitnessDiviner {
@@ -86,10 +113,17 @@ var MemoryBoundWitnessDiviner = class extends BoundWitnessDiviner {
86
113
  export {
87
114
  BoundWitnessDiviner,
88
115
  BoundWitnessDivinerConfigSchema,
116
+ BoundWitnessDivinerConfigZod,
117
+ BoundWitnessDivinerQueryPayloadZod,
89
118
  BoundWitnessDivinerQuerySchema,
90
119
  BoundWitnessDivinerSchema,
91
120
  MemoryBoundWitnessDiviner,
92
121
  applyBoundWitnessDivinerQueryPayload,
93
- isBoundWitnessDivinerQueryPayload
122
+ asBoundWitnessDivinerConfig,
123
+ asBoundWitnessDivinerQueryPayload,
124
+ isBoundWitnessDivinerConfig,
125
+ isBoundWitnessDivinerQueryPayload,
126
+ toBoundWitnessDivinerConfig,
127
+ toBoundWitnessDivinerQueryPayload
94
128
  };
95
129
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/BoundWitnessDiviner.ts", "../../src/Config.ts", "../../src/Schema.ts", "../../src/applyBoundWitnessDivinerQueryPayload.ts", "../../src/MemoryBoundWitnessDiviner.ts", "../../src/Query.ts"],
4
- "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\n}\n", "import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@xylabs/sdk-js'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses?.length) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes?.length) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas?.length) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery) bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol-js'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol-js'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]) {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n if (!filter) return []\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\n", "import type { Query } from '@xyo-network/sdk-protocol-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport type BoundWitnessDivinerQueryPayload = Query<{ schema: BoundWitnessDivinerQuerySchema } & BoundWitnessDivinerPredicate>\nexport const isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType<BoundWitnessDivinerQueryPayload>(BoundWitnessDivinerQuerySchema)\n"],
5
- "mappings": "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",
6
- "names": ["asSchema", "asSchema", "assertEx", "isBoundWitness", "asSchema", "asSchema", "assertEx", "isBoundWitness"]
4
+ "sourcesContent": ["import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\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 { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@xylabs/sdk-js'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses?.length) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes?.length) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas?.length) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery) bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol-js'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol-js'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n if (!filter) return []\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\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 type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n >,\n z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>\n> = z.intersection(\n z.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),\n z.custom<BoundWitnessDivinerPredicate>(),\n)\n\nexport type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>\n\nexport const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>> = zodIsFactory(BoundWitnessDivinerQueryPayloadZod)\nexport const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>> = zodAsFactory(BoundWitnessDivinerQueryPayloadZod, 'asBoundWitnessDivinerQueryPayload')\nexport const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>> = zodToFactory(BoundWitnessDivinerQueryPayloadZod, 'toBoundWitnessDivinerQueryPayload')\n"],
5
+ "mappings": "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",
6
+ "names": ["asSchema", "asSchema", "assertEx", "isBoundWitness", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "assertEx", "isBoundWitness"]
7
7
  }
@@ -53,7 +53,14 @@ import { isStorageMeta } from "@xyo-network/sdk-protocol-js";
53
53
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
54
54
 
55
55
  // src/Config.ts
56
+ import {
57
+ zodAsFactory,
58
+ zodIsFactory,
59
+ zodToFactory
60
+ } from "@xylabs/sdk-js";
61
+ import { DivinerConfigZod } from "@xyo-network/diviner-model";
56
62
  import { asSchema as asSchema2 } from "@xyo-network/sdk-protocol-js";
63
+ import * as z from "zod/mini";
57
64
 
58
65
  // src/Schema.ts
59
66
  import { asSchema } from "@xyo-network/sdk-protocol-js";
@@ -61,6 +68,10 @@ var BoundWitnessDivinerSchema = asSchema("network.xyo.diviner.boundwitness", tru
61
68
 
62
69
  // src/Config.ts
63
70
  var BoundWitnessDivinerConfigSchema = asSchema2(`${BoundWitnessDivinerSchema}.config`, true);
71
+ var BoundWitnessDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) });
72
+ var isBoundWitnessDivinerConfig = zodIsFactory(BoundWitnessDivinerConfigZod);
73
+ var asBoundWitnessDivinerConfig = zodAsFactory(BoundWitnessDivinerConfigZod, "asBoundWitnessDivinerConfig");
74
+ var toBoundWitnessDivinerConfig = zodToFactory(BoundWitnessDivinerConfigZod, "toBoundWitnessDivinerConfig");
64
75
 
65
76
  // src/BoundWitnessDiviner.ts
66
77
  var BoundWitnessDiviner = class extends AbstractDiviner {
@@ -69,9 +80,25 @@ var BoundWitnessDiviner = class extends AbstractDiviner {
69
80
  };
70
81
 
71
82
  // src/Query.ts
72
- import { asSchema as asSchema3, isPayloadOfSchemaType } from "@xyo-network/sdk-protocol-js";
83
+ import {
84
+ zodAsFactory as zodAsFactory2,
85
+ zodIsFactory as zodIsFactory2,
86
+ zodToFactory as zodToFactory2
87
+ } from "@xylabs/sdk-js";
88
+ import {
89
+ asSchema as asSchema3,
90
+ PayloadZodOfSchema,
91
+ QueryFieldsZod
92
+ } from "@xyo-network/sdk-protocol-js";
93
+ import * as z2 from "zod/mini";
73
94
  var BoundWitnessDivinerQuerySchema = asSchema3(`${BoundWitnessDivinerSchema}.query`, true);
74
- var isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType(BoundWitnessDivinerQuerySchema);
95
+ var BoundWitnessDivinerQueryPayloadZod = z2.intersection(
96
+ z2.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),
97
+ z2.custom()
98
+ );
99
+ var isBoundWitnessDivinerQueryPayload = zodIsFactory2(BoundWitnessDivinerQueryPayloadZod);
100
+ var asBoundWitnessDivinerQueryPayload = zodAsFactory2(BoundWitnessDivinerQueryPayloadZod, "asBoundWitnessDivinerQueryPayload");
101
+ var toBoundWitnessDivinerQueryPayload = zodToFactory2(BoundWitnessDivinerQueryPayloadZod, "toBoundWitnessDivinerQueryPayload");
75
102
 
76
103
  // src/MemoryBoundWitnessDiviner.ts
77
104
  var MemoryBoundWitnessDiviner = class extends BoundWitnessDiviner {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/applyBoundWitnessDivinerQueryPayload.ts", "../../src/MemoryBoundWitnessDiviner.ts", "../../src/BoundWitnessDiviner.ts", "../../src/Config.ts", "../../src/Schema.ts", "../../src/Query.ts"],
4
- "sourcesContent": ["import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@xylabs/sdk-js'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses?.length) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes?.length) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas?.length) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery) bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol-js'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol-js'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]) {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n if (!filter) return []\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\n", "import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\n}\n", "import type { DivinerConfig } from '@xyo-network/diviner-model'\nimport { asSchema, type Payload } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import type { Query } from '@xyo-network/sdk-protocol-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport type BoundWitnessDivinerQueryPayload = Query<{ schema: BoundWitnessDivinerQuerySchema } & BoundWitnessDivinerPredicate>\nexport const isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType<BoundWitnessDivinerQueryPayload>(BoundWitnessDivinerQuerySchema)\n"],
5
- "mappings": "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",
6
- "names": ["assertEx", "isBoundWitness", "asSchema", "asSchema", "asSchema", "asSchema", "assertEx", "isBoundWitness"]
4
+ "sourcesContent": ["import {\n assertEx, containsAll,\n exists, hexFromHexString,\n} from '@xylabs/sdk-js'\nimport type {\n BoundWitness, Payload, WithStorageMeta,\n} from '@xyo-network/sdk-protocol-js'\nimport {\n isBoundWitness, PayloadBuilder, SequenceConstants,\n} from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\n// eslint-disable-next-line complexity\nexport const applyBoundWitnessDivinerQueryPayload = (filter?: BoundWitnessDivinerQueryPayload, payloads: WithStorageMeta<Payload>[] = []): BoundWitness[] => {\n if (!filter) return []\n const {\n addresses, cursor, destination, limit, order = 'desc', payload_hashes, payload_schemas, sourceQuery,\n } = filter\n\n const sortedPayloads = PayloadBuilder.sortByStorageMeta(payloads, order === 'desc' ? -1 : 1)\n const parsedCursor = cursor ?? ((order === 'desc') ? SequenceConstants.maxLocalSequence : SequenceConstants.minLocalSequence)\n const parsedOffset = (order === 'desc')\n ? sortedPayloads.findIndex(bw => bw._sequence < parsedCursor)\n : sortedPayloads.findIndex(bw => bw._sequence > parsedCursor)\n if (parsedOffset === -1) return []\n const payloadSubset = sortedPayloads.slice(parsedOffset)\n\n let bws = payloadSubset.filter(isBoundWitness)\n const allAddresses = addresses?.map(address => hexFromHexString(address)).filter(exists)\n if (allAddresses?.length) bws = bws.filter(bw => containsAll<string>(bw.addresses, allAddresses))\n if (payload_hashes?.length) bws = bws.filter(bw => containsAll(bw.payload_hashes, payload_hashes))\n if (payload_schemas?.length) bws = bws.filter(bw => containsAll(bw.payload_schemas, payload_schemas))\n if (sourceQuery) bws = bws.filter(bw => bw?.$sourceQuery === sourceQuery)\n // If there's a destination filter of the right kind\n if (destination && Array.isArray(destination) && destination?.length > 0) {\n const targetFilter = assertEx(destination, () => 'Missing destination')\n // Find all BWs that satisfy the destination constraint\n bws = bws.filter((bw) => {\n const targetDestinationField = (bw as { $destination?: string | string[] })?.$destination\n // If the destination field is an array and contains at least one element\n return targetDestinationField !== undefined && Array.isArray(targetDestinationField) && targetDestinationField.length > 0\n // Check that the targetDestinationField contains all the elements in the targetFilter\n ? containsAll(targetFilter, targetDestinationField ?? [])\n // Otherwise, filter it out\n : false\n })\n }\n const parsedLimit = limit ?? bws.length\n return bws.slice(0, parsedLimit)\n}\n", "import { assertEx } from '@xylabs/sdk-js'\nimport { type BoundWitness, isBoundWitness } from '@xyo-network/sdk-protocol-js'\nimport { isStorageMeta } from '@xyo-network/sdk-protocol-js'\n\nimport { applyBoundWitnessDivinerQueryPayload } from './applyBoundWitnessDivinerQueryPayload.ts'\nimport { BoundWitnessDiviner } from './BoundWitnessDiviner.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport { type BoundWitnessDivinerQueryPayload, isBoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport interface EqualityComparisonOperators {\n /**\n * 'Not Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value does not match the provided string.\n * Example: field != 'value'\n */\n '!=': string\n\n /**\n * 'Less Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than the provided string.\n * Example: field < 'value'\n */\n '<': string\n\n /**\n * 'Less Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically less than or equal to the provided string.\n * Example: field <= 'value'\n */\n '<=': string\n\n /**\n * 'Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value matches the provided string exactly.\n * Example: field = 'value'\n */\n '=': string\n\n /**\n * 'Greater Than' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than the provided string.\n * Example: field > 'value'\n */\n '>': string\n\n /**\n * 'Greater Than or Equal To' comparison operator.\n * Compares the field with the specified string value,\n * selecting records where the field value is lexicographically greater than or equal to the provided string.\n * Example: field >= 'value'\n */\n '>=': string\n}\n\nexport class MemoryBoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\n> extends BoundWitnessDiviner<TParams, TIn, TOut> {\n protected override async divineHandler(payloads?: TIn[]): Promise<TOut[]> {\n const filter = assertEx(payloads?.filter(isBoundWitnessDivinerQueryPayload)?.pop(), () => 'Missing query payload')\n if (!filter) return []\n const archivist = assertEx(await this.archivistInstance(), () => 'Unable to resolve archivist')\n const bws = ((await archivist?.next({ limit: 10_000 })) ?? []).filter(x => isBoundWitness(x) && isStorageMeta(x))\n return applyBoundWitnessDivinerQueryPayload(filter, bws) as TOut[]\n }\n}\n", "import { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport type { DivinerInstance, DivinerModuleEventData } from '@xyo-network/diviner-model'\nimport type { BoundWitness, Schema } from '@xyo-network/sdk-protocol-js'\n\nimport { BoundWitnessDivinerConfigSchema } from './Config.ts'\nimport type { BoundWitnessDivinerParams } from './Params.ts'\nimport type { BoundWitnessDivinerQueryPayload } from './Query.ts'\n\nexport abstract class BoundWitnessDiviner<\n TParams extends BoundWitnessDivinerParams = BoundWitnessDivinerParams,\n TIn extends BoundWitnessDivinerQueryPayload = BoundWitnessDivinerQueryPayload,\n TOut extends BoundWitness = BoundWitness,\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 static override readonly configSchemas: Schema[] = [...super.configSchemas, BoundWitnessDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = BoundWitnessDivinerConfigSchema\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 { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\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 type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n >,\n z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>\n> = z.intersection(\n z.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),\n z.custom<BoundWitnessDivinerPredicate>(),\n)\n\nexport type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>\n\nexport const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>> = zodIsFactory(BoundWitnessDivinerQueryPayloadZod)\nexport const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>> = zodAsFactory(BoundWitnessDivinerQueryPayloadZod, 'asBoundWitnessDivinerQueryPayload')\nexport const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>> = zodToFactory(BoundWitnessDivinerQueryPayloadZod, 'toBoundWitnessDivinerQueryPayload')\n"],
5
+ "mappings": "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",
6
+ "names": ["assertEx", "isBoundWitness", "asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory", "assertEx", "isBoundWitness"]
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,15 +14,42 @@ var BoundWitnessDivinerSchema = asSchema("network.xyo.diviner.boundwitness", tru
7
14
 
8
15
  // src/Config.ts
9
16
  var BoundWitnessDivinerConfigSchema = asSchema2(`${BoundWitnessDivinerSchema}.config`, true);
17
+ var BoundWitnessDivinerConfigZod = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) });
18
+ var isBoundWitnessDivinerConfig = zodIsFactory(BoundWitnessDivinerConfigZod);
19
+ var asBoundWitnessDivinerConfig = zodAsFactory(BoundWitnessDivinerConfigZod, "asBoundWitnessDivinerConfig");
20
+ var toBoundWitnessDivinerConfig = zodToFactory(BoundWitnessDivinerConfigZod, "toBoundWitnessDivinerConfig");
10
21
 
11
22
  // src/Query.ts
12
- import { asSchema as asSchema3, isPayloadOfSchemaType } from "@xyo-network/sdk-protocol-js";
23
+ import {
24
+ zodAsFactory as zodAsFactory2,
25
+ zodIsFactory as zodIsFactory2,
26
+ zodToFactory as zodToFactory2
27
+ } from "@xylabs/sdk-js";
28
+ import {
29
+ asSchema as asSchema3,
30
+ PayloadZodOfSchema,
31
+ QueryFieldsZod
32
+ } from "@xyo-network/sdk-protocol-js";
33
+ import * as z2 from "zod/mini";
13
34
  var BoundWitnessDivinerQuerySchema = asSchema3(`${BoundWitnessDivinerSchema}.query`, true);
14
- var isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType(BoundWitnessDivinerQuerySchema);
35
+ var BoundWitnessDivinerQueryPayloadZod = z2.intersection(
36
+ z2.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),
37
+ z2.custom()
38
+ );
39
+ var isBoundWitnessDivinerQueryPayload = zodIsFactory2(BoundWitnessDivinerQueryPayloadZod);
40
+ var asBoundWitnessDivinerQueryPayload = zodAsFactory2(BoundWitnessDivinerQueryPayloadZod, "asBoundWitnessDivinerQueryPayload");
41
+ var toBoundWitnessDivinerQueryPayload = zodToFactory2(BoundWitnessDivinerQueryPayloadZod, "toBoundWitnessDivinerQueryPayload");
15
42
  export {
16
43
  BoundWitnessDivinerConfigSchema,
44
+ BoundWitnessDivinerConfigZod,
45
+ BoundWitnessDivinerQueryPayloadZod,
17
46
  BoundWitnessDivinerQuerySchema,
18
47
  BoundWitnessDivinerSchema,
19
- isBoundWitnessDivinerQueryPayload
48
+ asBoundWitnessDivinerConfig,
49
+ asBoundWitnessDivinerQueryPayload,
50
+ isBoundWitnessDivinerConfig,
51
+ isBoundWitnessDivinerQueryPayload,
52
+ toBoundWitnessDivinerConfig,
53
+ toBoundWitnessDivinerQueryPayload
20
54
  };
21
55
  //# sourceMappingURL=model.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Config.ts", "../../src/Schema.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 { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\n", "import type { Query } from '@xyo-network/sdk-protocol-js'\nimport { asSchema, isPayloadOfSchemaType } from '@xyo-network/sdk-protocol-js'\n\nimport type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport type BoundWitnessDivinerQueryPayload = Query<{ schema: BoundWitnessDivinerQuerySchema } & BoundWitnessDivinerPredicate>\nexport const isBoundWitnessDivinerQueryPayload = isPayloadOfSchemaType<BoundWitnessDivinerQueryPayload>(BoundWitnessDivinerQuerySchema)\n"],
5
- "mappings": ";AACA,SAAS,YAAAA,iBAA8B;;;ACDvC,SAAS,gBAAgB;AAElB,IAAM,4BAA4B,SAAS,oCAAoC,IAAI;;;ADGnF,IAAM,kCAAkCC,UAAS,GAAG,yBAAyB,WAAW,IAAI;;;AEJnG,SAAS,YAAAC,WAAU,6BAA6B;AAKzC,IAAM,iCAAiCC,UAAS,GAAG,yBAAyB,UAAU,IAAI;AAI1F,IAAM,oCAAoC,sBAAuD,8BAA8B;",
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 { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerConfigSchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.config`, true)\nexport type BoundWitnessDivinerConfigSchema = typeof BoundWitnessDivinerConfigSchema\n\nexport const BoundWitnessDivinerConfigZod: z.ZodMiniObject<\n Omit<(typeof DivinerConfigZod)['shape'], 'schema'> & {\n schema: z.ZodMiniLiteral<BoundWitnessDivinerConfigSchema>\n },\n z.core.$strip\n> = z.extend(DivinerConfigZod, { schema: z.literal(BoundWitnessDivinerConfigSchema) })\n\nexport type BoundWitnessDivinerConfigBase = z.infer<typeof BoundWitnessDivinerConfigZod>\n\nexport const isBoundWitnessDivinerConfig: ReturnType<typeof zodIsFactory<BoundWitnessDivinerConfigBase>> = zodIsFactory(BoundWitnessDivinerConfigZod)\nexport const asBoundWitnessDivinerConfig: ReturnType<typeof zodAsFactory<BoundWitnessDivinerConfigBase>> = zodAsFactory(BoundWitnessDivinerConfigZod, 'asBoundWitnessDivinerConfig')\nexport const toBoundWitnessDivinerConfig: ReturnType<typeof zodToFactory<BoundWitnessDivinerConfigBase>> = zodToFactory(BoundWitnessDivinerConfigZod, 'toBoundWitnessDivinerConfig')\n\nexport type BoundWitnessDivinerConfig<T extends Payload = Payload> = DivinerConfig<\n T & {\n schema: BoundWitnessDivinerConfigSchema\n }\n>\n", "import { asSchema } from '@xyo-network/sdk-protocol-js'\n\nexport const BoundWitnessDivinerSchema: 'network.xyo.diviner.boundwitness' & {\n readonly __schema: true\n} = asSchema('network.xyo.diviner.boundwitness', true)\nexport type BoundWitnessDivinerSchema = typeof BoundWitnessDivinerSchema\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 type { BoundWitnessDivinerPredicate } from './Predicate.ts'\nimport { BoundWitnessDivinerSchema } from './Schema.ts'\n\nexport const BoundWitnessDivinerQuerySchema: string & {\n readonly __schema: true\n} = asSchema(`${BoundWitnessDivinerSchema}.query`, true)\nexport type BoundWitnessDivinerQuerySchema = typeof BoundWitnessDivinerQuerySchema\n\nexport const BoundWitnessDivinerQueryPayloadZod: z.ZodMiniIntersection<\n z.ZodMiniObject<\n & { schema: z.ZodMiniLiteral<BoundWitnessDivinerQuerySchema> }\n & (typeof QueryFieldsZod)['shape'],\n z.core.$strip\n >,\n z.ZodMiniCustom<BoundWitnessDivinerPredicate, BoundWitnessDivinerPredicate>\n> = z.intersection(\n z.extend(PayloadZodOfSchema(BoundWitnessDivinerQuerySchema), { ...QueryFieldsZod.shape }),\n z.custom<BoundWitnessDivinerPredicate>(),\n)\n\nexport type BoundWitnessDivinerQueryPayload = z.infer<typeof BoundWitnessDivinerQueryPayloadZod>\n\nexport const isBoundWitnessDivinerQueryPayload: ReturnType<typeof zodIsFactory<BoundWitnessDivinerQueryPayload>> = zodIsFactory(BoundWitnessDivinerQueryPayloadZod)\nexport const asBoundWitnessDivinerQueryPayload: ReturnType<typeof zodAsFactory<BoundWitnessDivinerQueryPayload>> = zodAsFactory(BoundWitnessDivinerQueryPayloadZod, 'asBoundWitnessDivinerQueryPayload')\nexport const toBoundWitnessDivinerQueryPayload: ReturnType<typeof zodToFactory<BoundWitnessDivinerQueryPayload>> = zodToFactory(BoundWitnessDivinerQueryPayloadZod, 'toBoundWitnessDivinerQueryPayload')\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,4BAET,SAAS,oCAAoC,IAAI;;;ADM9C,IAAM,kCAETC,UAAS,GAAG,yBAAyB,WAAW,IAAI;AAGjD,IAAM,+BAKP,SAAO,kBAAkB,EAAE,QAAU,UAAQ,+BAA+B,EAAE,CAAC;AAI9E,IAAM,8BAA8F,aAAa,4BAA4B;AAC7I,IAAM,8BAA8F,aAAa,8BAA8B,6BAA6B;AAC5K,IAAM,8BAA8F,aAAa,8BAA8B,6BAA6B;;;AE1BnL;AAAA,EACE,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,EAAc,gBAAAC;AAAA,OACvB;AACP;AAAA,EACE,YAAAC;AAAA,EAAU;AAAA,EAAoB;AAAA,OACzB;AACP,YAAYC,QAAO;AAKZ,IAAM,iCAETC,UAAS,GAAG,yBAAyB,UAAU,IAAI;AAGhD,IAAM,qCAOP;AAAA,EACF,UAAO,mBAAmB,8BAA8B,GAAG,EAAE,GAAG,eAAe,MAAM,CAAC;AAAA,EACtF,UAAqC;AACzC;AAIO,IAAM,oCAAsGC,cAAa,kCAAkC;AAC3J,IAAM,oCAAsGC,cAAa,oCAAoC,mCAAmC;AAChM,IAAM,oCAAsGC,cAAa,oCAAoC,mCAAmC;",
6
+ "names": ["asSchema", "asSchema", "zodAsFactory", "zodIsFactory", "zodToFactory", "asSchema", "z", "asSchema", "zodIsFactory", "zodAsFactory", "zodToFactory"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/diviner-boundwitness",
3
- "version": "6.0.4",
3
+ "version": "7.0.0",
4
4
  "description": "Primary SDK for using XYO Protocol 2.0",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -46,32 +46,30 @@
46
46
  "README.md"
47
47
  ],
48
48
  "dependencies": {
49
- "@xyo-network/diviner-abstract": "~6.0.4",
50
- "@xyo-network/diviner-model": "~6.0.4",
51
- "@xyo-network/module-model": "~6.0.4",
52
- "@xyo-network/diviner-payload-model": "~6.0.4"
49
+ "@xyo-network/diviner-model": "~7.0.0",
50
+ "@xyo-network/diviner-abstract": "~7.0.0",
51
+ "@xyo-network/diviner-payload-model": "~7.0.0",
52
+ "@xyo-network/module-model": "~7.0.0"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@bitauth/libauth": "~3.0.0",
56
56
  "@metamask/providers": "^22.1.1",
57
57
  "@noble/post-quantum": "~0.6.1",
58
58
  "@opentelemetry/api": "^1.9.1",
59
- "@opentelemetry/sdk-trace-base": "^2.7.1",
59
+ "@opentelemetry/sdk-trace-base": "^2.8.0",
60
60
  "@scure/base": "~2.2.0",
61
61
  "@scure/bip39": "~2.2.0",
62
- "@xylabs/geo": "^6.0.8",
63
- "@xylabs/sdk-js": "^6.0.8",
64
- "@xylabs/threads": "^6.0.8",
65
- "@xylabs/toolchain": "~8.1.16",
66
- "@xylabs/tsconfig": "~8.1.16",
67
- "@xylabs/vitest-extended": "~6.0.8",
68
- "@xyo-network/sdk-protocol-js": "~6.0.9",
62
+ "@xylabs/geo": "^6.1.1",
63
+ "@xylabs/sdk-js": "^6.1.1",
64
+ "@xylabs/threads": "^6.1.1",
65
+ "@xylabs/toolchain": "^8.1.20",
66
+ "@xylabs/tsconfig": "^8.1.20",
67
+ "@xylabs/vitest-extended": "^6.1.1",
68
+ "@xyo-network/sdk-protocol-js": "~7.0",
69
69
  "ajv": "^8.20.0",
70
70
  "async-mutex": "^0.5.0",
71
- "bn.js": "^5.2.3",
72
- "buffer": "^6.0.3",
73
71
  "debug": "~4.4.3",
74
- "eslint": "^10.4.1",
72
+ "eslint": "^10.5.0",
75
73
  "ethers": "^6.16.0",
76
74
  "hash-wasm": "~4.12.0",
77
75
  "idb": "^8.0.3",
@@ -82,8 +80,8 @@
82
80
  "vitest": "~4.1.8",
83
81
  "webextension-polyfill": "^0.12.0",
84
82
  "zod": "^4.4.3",
85
- "@xyo-network/archivist-memory": "~6.0.4",
86
- "@xyo-network/node-memory": "~6.0.4"
83
+ "@xyo-network/archivist-memory": "~7.0.0",
84
+ "@xyo-network/node-memory": "~7.0.0"
87
85
  },
88
86
  "peerDependencies": {
89
87
  "@bitauth/libauth": "~3.0",
@@ -96,11 +94,9 @@
96
94
  "@xylabs/geo": "^6.0",
97
95
  "@xylabs/sdk-js": "^6.0",
98
96
  "@xylabs/threads": "^6.0",
99
- "@xyo-network/sdk-protocol-js": "~6.0",
97
+ "@xyo-network/sdk-protocol-js": "^7.0",
100
98
  "ajv": "^8.20",
101
99
  "async-mutex": "^0.5",
102
- "bn.js": "^5.2",
103
- "buffer": "^6.0",
104
100
  "debug": "~4.4",
105
101
  "ethers": "^6.16",
106
102
  "hash-wasm": "~4.12",
@@ -110,6 +106,9 @@
110
106
  "webextension-polyfill": "^0.12",
111
107
  "zod": "^4.4"
112
108
  },
109
+ "engines": {
110
+ "node": "^24"
111
+ },
113
112
  "publishConfig": {
114
113
  "access": "public"
115
114
  }