@xyo-network/diviner 2.51.9 → 2.51.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/cjs/AbstractDiviner.js +3 -12
  2. package/dist/cjs/AbstractDiviner.js.map +1 -1
  3. package/dist/cjs/AddressChain/Config.js.map +1 -1
  4. package/dist/cjs/AddressChain/MemoryDiviner.js +5 -12
  5. package/dist/cjs/AddressChain/MemoryDiviner.js.map +1 -1
  6. package/dist/cjs/AddressHistory/Config.js.map +1 -1
  7. package/dist/cjs/AddressHistory/MemoryDiviner.js +5 -12
  8. package/dist/cjs/AddressHistory/MemoryDiviner.js.map +1 -1
  9. package/dist/cjs/AddressSpace/MemoryAddressSpaceDiviner.js +1 -9
  10. package/dist/cjs/AddressSpace/MemoryAddressSpaceDiviner.js.map +1 -1
  11. package/dist/cjs/IdentityDiviner.js +9 -14
  12. package/dist/cjs/IdentityDiviner.js.map +1 -1
  13. package/dist/cjs/Payload/AbstractPayloadDiviner.js.map +1 -1
  14. package/dist/cjs/Payload/Archivist/Diviner.js +1 -9
  15. package/dist/cjs/Payload/Archivist/Diviner.js.map +1 -1
  16. package/dist/cjs/Payload/Huri/Diviner.js +0 -8
  17. package/dist/cjs/Payload/Huri/Diviner.js.map +1 -1
  18. package/dist/docs.json +112945 -57647
  19. package/dist/esm/AbstractDiviner.js +5 -9
  20. package/dist/esm/AbstractDiviner.js.map +1 -1
  21. package/dist/esm/AddressChain/Config.js.map +1 -1
  22. package/dist/esm/AddressChain/MemoryDiviner.js +5 -7
  23. package/dist/esm/AddressChain/MemoryDiviner.js.map +1 -1
  24. package/dist/esm/AddressHistory/Config.js.map +1 -1
  25. package/dist/esm/AddressHistory/MemoryDiviner.js +5 -7
  26. package/dist/esm/AddressHistory/MemoryDiviner.js.map +1 -1
  27. package/dist/esm/AddressSpace/MemoryAddressSpaceDiviner.js +1 -4
  28. package/dist/esm/AddressSpace/MemoryAddressSpaceDiviner.js.map +1 -1
  29. package/dist/esm/IdentityDiviner.js +10 -8
  30. package/dist/esm/IdentityDiviner.js.map +1 -1
  31. package/dist/esm/Payload/AbstractPayloadDiviner.js.map +1 -1
  32. package/dist/esm/Payload/Archivist/Diviner.js +1 -4
  33. package/dist/esm/Payload/Archivist/Diviner.js.map +1 -1
  34. package/dist/esm/Payload/Huri/Diviner.js +0 -3
  35. package/dist/esm/Payload/Huri/Diviner.js.map +1 -1
  36. package/dist/types/AbstractDiviner.d.ts +3 -7
  37. package/dist/types/AbstractDiviner.d.ts.map +1 -1
  38. package/dist/types/AddressChain/Config.d.ts +3 -4
  39. package/dist/types/AddressChain/Config.d.ts.map +1 -1
  40. package/dist/types/AddressChain/MemoryDiviner.d.ts +6 -4
  41. package/dist/types/AddressChain/MemoryDiviner.d.ts.map +1 -1
  42. package/dist/types/AddressHistory/Config.d.ts +2 -3
  43. package/dist/types/AddressHistory/Config.d.ts.map +1 -1
  44. package/dist/types/AddressHistory/MemoryDiviner.d.ts +7 -5
  45. package/dist/types/AddressHistory/MemoryDiviner.d.ts.map +1 -1
  46. package/dist/types/AddressSpace/MemoryAddressSpaceDiviner.d.ts +7 -8
  47. package/dist/types/AddressSpace/MemoryAddressSpaceDiviner.d.ts.map +1 -1
  48. package/dist/types/IdentityDiviner.d.ts +5 -5
  49. package/dist/types/IdentityDiviner.d.ts.map +1 -1
  50. package/dist/types/Payload/AbstractPayloadDiviner.d.ts +2 -1
  51. package/dist/types/Payload/AbstractPayloadDiviner.d.ts.map +1 -1
  52. package/dist/types/Payload/Archivist/Config.d.ts +1 -1
  53. package/dist/types/Payload/Archivist/Config.d.ts.map +1 -1
  54. package/dist/types/Payload/Archivist/Diviner.d.ts +4 -4
  55. package/dist/types/Payload/Archivist/Diviner.d.ts.map +1 -1
  56. package/dist/types/Payload/Huri/Config.d.ts +1 -1
  57. package/dist/types/Payload/Huri/Config.d.ts.map +1 -1
  58. package/dist/types/Payload/Huri/Diviner.d.ts +4 -4
  59. package/dist/types/Payload/Huri/Diviner.d.ts.map +1 -1
  60. package/package.json +16 -17
  61. package/src/AbstractDiviner.ts +6 -26
  62. package/src/AddressChain/Config.ts +6 -10
  63. package/src/AddressChain/MemoryDiviner.ts +17 -8
  64. package/src/AddressHistory/Config.ts +4 -8
  65. package/src/AddressHistory/MemoryDiviner.ts +18 -9
  66. package/src/AddressSpace/MemoryAddressSpaceDiviner.ts +19 -17
  67. package/src/IdentityDiviner.ts +11 -10
  68. package/src/Payload/AbstractPayloadDiviner.ts +3 -1
  69. package/src/Payload/Archivist/Config.ts +0 -1
  70. package/src/Payload/Archivist/Diviner.ts +8 -8
  71. package/src/Payload/Huri/Config.ts +0 -1
  72. package/src/Payload/Huri/Diviner.ts +6 -7
package/package.json CHANGED
@@ -12,22 +12,21 @@
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.7.4",
14
14
  "@xylabs/promise": "^2.7.4",
15
- "@xyo-network/account": "^2.51.9",
16
- "@xyo-network/address-payload-plugin": "^2.51.9",
17
- "@xyo-network/archivist": "^2.51.9",
18
- "@xyo-network/archivist-wrapper": "^2.51.9",
19
- "@xyo-network/boundwitness-model": "^2.51.9",
20
- "@xyo-network/boundwitness-wrapper": "^2.51.9",
21
- "@xyo-network/core": "^2.51.9",
22
- "@xyo-network/diviner-model": "^2.51.9",
23
- "@xyo-network/diviner-wrapper": "^2.51.9",
24
- "@xyo-network/huri": "^2.51.9",
25
- "@xyo-network/module": "^2.51.9",
26
- "@xyo-network/module-model": "^2.51.9",
27
- "@xyo-network/payload-builder": "^2.51.9",
28
- "@xyo-network/payload-model": "^2.51.9",
29
- "@xyo-network/payload-wrapper": "^2.51.9",
30
- "@xyo-network/promise": "^2.51.9",
15
+ "@xyo-network/account": "^2.51.10",
16
+ "@xyo-network/address-payload-plugin": "^2.51.10",
17
+ "@xyo-network/archivist": "^2.51.10",
18
+ "@xyo-network/archivist-wrapper": "^2.51.10",
19
+ "@xyo-network/boundwitness-model": "^2.51.10",
20
+ "@xyo-network/boundwitness-wrapper": "^2.51.10",
21
+ "@xyo-network/diviner-model": "^2.51.10",
22
+ "@xyo-network/diviner-wrapper": "^2.51.10",
23
+ "@xyo-network/huri": "^2.51.10",
24
+ "@xyo-network/module": "^2.51.10",
25
+ "@xyo-network/module-model": "^2.51.10",
26
+ "@xyo-network/payload-builder": "^2.51.10",
27
+ "@xyo-network/payload-model": "^2.51.10",
28
+ "@xyo-network/payload-wrapper": "^2.51.10",
29
+ "@xyo-network/promise": "^2.51.10",
31
30
  "lodash": "^4.17.21"
32
31
  },
33
32
  "devDependencies": {
@@ -69,5 +68,5 @@
69
68
  },
70
69
  "sideEffects": false,
71
70
  "types": "dist/types/index.d.ts",
72
- "version": "2.51.9"
71
+ "version": "2.51.10"
73
72
  }
@@ -1,44 +1,22 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { Account } from '@xyo-network/account'
3
- import { AnyObject } from '@xyo-network/core'
4
- import { DivinerConfig, DivinerModule, XyoDivinerDivineQuerySchema, XyoDivinerQuery } from '@xyo-network/diviner-model'
5
- import {
6
- AbstractModule,
7
- ModuleConfig,
8
- ModuleParams,
9
- ModuleQueryResult,
10
- QueryBoundWitnessWrapper,
11
- XyoErrorBuilder,
12
- XyoQueryBoundWitness,
13
- } from '@xyo-network/module'
3
+ import { DivinerModule, DivinerParams, XyoDivinerConfigSchema, XyoDivinerDivineQuerySchema, XyoDivinerQuery } from '@xyo-network/diviner-model'
4
+ import { AbstractModule, ModuleConfig, ModuleQueryResult, QueryBoundWitnessWrapper, XyoErrorBuilder, XyoQueryBoundWitness } from '@xyo-network/module'
14
5
  import { XyoPayload } from '@xyo-network/payload-model'
15
6
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
16
7
  import { Promisable } from '@xyo-network/promise'
17
8
 
18
- export type DivinerParams<TConfig extends DivinerConfig = DivinerConfig, TAdditional extends AnyObject | undefined = undefined> = ModuleParams<
19
- TConfig,
20
- TAdditional
21
- >
22
-
23
9
  export abstract class AbstractDiviner<TParams extends DivinerParams = DivinerParams>
24
10
  extends AbstractModule<TParams>
25
- implements DivinerModule<TParams['config']>
11
+ implements DivinerModule<TParams>
26
12
  {
27
- static override configSchema: string
13
+ static override configSchema: string = XyoDivinerConfigSchema
28
14
  static targetSchema: string
29
15
 
30
16
  override get queries(): string[] {
31
17
  return [XyoDivinerDivineQuerySchema, ...super.queries]
32
18
  }
33
19
 
34
- get targetSchema() {
35
- return this.config?.targetSchema
36
- }
37
-
38
- static override async create(params?: Partial<ModuleParams<DivinerConfig>>): Promise<AbstractDiviner> {
39
- return (await super.create(params)) as AbstractDiviner
40
- }
41
-
42
20
  override async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(
43
21
  query: T,
44
22
  payloads?: XyoPayload[],
@@ -54,7 +32,9 @@ export abstract class AbstractDiviner<TParams extends DivinerParams = DivinerPar
54
32
  try {
55
33
  switch (typedQuery.schemaName) {
56
34
  case XyoDivinerDivineQuerySchema:
35
+ await this.emit('reportStart', { inPayload: payloads })
57
36
  resultPayloads.push(...(await this.divine(cleanPayloads)))
37
+ await this.emit('reportEnd', { inPayload: payloads, outPayload: resultPayloads })
58
38
  break
59
39
  default:
60
40
  return super.query(query, payloads)
@@ -1,4 +1,3 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
1
  import { DivinerConfig } from '@xyo-network/diviner-model'
3
2
 
4
3
  import { AddressChainSchema } from './Diviner'
@@ -6,12 +5,9 @@ import { AddressChainSchema } from './Diviner'
6
5
  export type AddressChainDivinerConfigSchema = `${AddressChainSchema}.config`
7
6
  export const AddressChainDivinerConfigSchema: AddressChainDivinerConfigSchema = `${AddressChainSchema}.config`
8
7
 
9
- export type AddressChainDivinerConfig = DivinerConfig<
10
- XyoBoundWitness,
11
- {
12
- address: string
13
- maxResults?: number
14
- schema: AddressChainDivinerConfigSchema
15
- startHash: string
16
- }
17
- >
8
+ export type AddressChainDivinerConfig = DivinerConfig<{
9
+ address?: string
10
+ maxResults?: number
11
+ schema: AddressChainDivinerConfigSchema
12
+ startHash?: string
13
+ }>
@@ -3,34 +3,43 @@ import { ArchivistGetQuerySchema } from '@xyo-network/archivist'
3
3
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
4
4
  import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
5
5
  import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
6
- import { ModuleParams } from '@xyo-network/module'
6
+ import { DivinerParams } from '@xyo-network/diviner-model'
7
+ import { AnyConfigSchema } from '@xyo-network/module'
7
8
  import { XyoPayload } from '@xyo-network/payload-model'
8
9
 
9
- import { AbstractDiviner, DivinerParams } from '../AbstractDiviner'
10
+ import { AbstractDiviner } from '../AbstractDiviner'
10
11
  import { AddressChainDivinerConfig, AddressChainDivinerConfigSchema } from './Config'
11
12
  import { AddressChainDiviner } from './Diviner'
12
13
 
13
14
  // This diviner returns the most recent boundwitness signed by the address that can be found
14
15
  // if multiple broken chains are found, all the heads are returned
15
16
 
16
- export class MemoryAddressChainDiviner extends AbstractDiviner<DivinerParams<AddressChainDivinerConfig>> implements AddressChainDiviner {
17
+ export type MemoryAddressChainDivinerParams = DivinerParams<AnyConfigSchema<AddressChainDivinerConfig>>
18
+
19
+ export class MemoryAddressChainDiviner<TParams extends MemoryAddressChainDivinerParams>
20
+ extends AbstractDiviner<TParams>
21
+ implements AddressChainDiviner
22
+ {
17
23
  static override configSchema = AddressChainDivinerConfigSchema
18
24
 
19
- static override async create(params?: Partial<ModuleParams<AddressChainDivinerConfig>>): Promise<MemoryAddressChainDiviner> {
20
- return (await super.create(params)) as MemoryAddressChainDiviner
25
+ get queryAddress() {
26
+ return assertEx(this.config.address, 'Missing address')
21
27
  }
22
28
 
23
29
  async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
24
30
  const result: XyoPayload[] = []
25
31
  assertEx(!payloads?.length, 'MemoryAddressChainDiviner.divine does not allow payloads to be sent')
26
- const archivists = (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? []
27
- let currentHash: string | null = this.config.startHash
32
+ const archivists =
33
+ (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map(
34
+ (archivist) => new ArchivistWrapper({ account: this.account, module: archivist }),
35
+ ) ?? []
36
+ let currentHash: string | null = assertEx(this.config.startHash, 'Missing startHash')
28
37
  while (currentHash && result.length < (this.config.maxResults ?? 1000)) {
29
38
  const bwPayload: XyoBoundWitness | undefined = await this.archivistFindHash(archivists, currentHash)
30
39
  const bw: BoundWitnessWrapper | undefined = BoundWitnessWrapper.parse(bwPayload)
31
40
  if (bw) {
32
41
  result.push(bw)
33
- currentHash = bw.prev(this.config.address)
42
+ currentHash = bw.prev(this.queryAddress)
34
43
  }
35
44
  }
36
45
  return result
@@ -1,4 +1,3 @@
1
- import { XyoBoundWitness } from '@xyo-network/boundwitness-model'
2
1
  import { DivinerConfig } from '@xyo-network/diviner-model'
3
2
 
4
3
  import { AddressHistorySchema } from './Diviner'
@@ -6,10 +5,7 @@ import { AddressHistorySchema } from './Diviner'
6
5
  export type AddressHistoryDivinerConfigSchema = `${AddressHistorySchema}.config`
7
6
  export const AddressHistoryDivinerConfigSchema: AddressHistoryDivinerConfigSchema = `${AddressHistorySchema}.config`
8
7
 
9
- export type AddressHistoryDivinerConfig = DivinerConfig<
10
- XyoBoundWitness,
11
- {
12
- address: string
13
- schema: AddressHistoryDivinerConfigSchema
14
- }
15
- >
8
+ export type AddressHistoryDivinerConfig = DivinerConfig<{
9
+ address?: string
10
+ schema: AddressHistoryDivinerConfigSchema
11
+ }>
@@ -3,27 +3,36 @@ import { ArchivistGetQuerySchema } from '@xyo-network/archivist'
3
3
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
4
4
  import { XyoBoundWitness, XyoBoundWitnessSchema } from '@xyo-network/boundwitness-model'
5
5
  import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
6
- import { ModuleParams } from '@xyo-network/module'
6
+ import { DivinerParams } from '@xyo-network/diviner-model'
7
+ import { AnyConfigSchema } from '@xyo-network/module-model'
7
8
  import { XyoPayload } from '@xyo-network/payload-model'
8
9
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
9
10
 
10
- import { AbstractDiviner, DivinerParams } from '../AbstractDiviner'
11
+ import { AbstractDiviner } from '../AbstractDiviner'
11
12
  import { AddressHistoryDivinerConfig, AddressHistoryDivinerConfigSchema } from './Config'
12
13
  import { AddressHistoryDiviner } from './Diviner'
13
14
 
14
15
  // This diviner returns the most recent boundwitness signed by the address that can be found
15
16
  // if multiple broken chains are found, all the heads are returned
16
17
 
17
- export class MemoryAddressHistoryDiviner extends AbstractDiviner<DivinerParams<AddressHistoryDivinerConfig>> implements AddressHistoryDiviner {
18
- static override configSchema = AddressHistoryDivinerConfigSchema
18
+ export type MemoryAddressHistoryDivinerParams = DivinerParams<AnyConfigSchema<AddressHistoryDivinerConfig>>
19
19
 
20
- static override async create(params?: Partial<ModuleParams<AddressHistoryDivinerConfig>>): Promise<MemoryAddressHistoryDiviner> {
21
- return (await super.create(params)) as MemoryAddressHistoryDiviner
20
+ export class MemoryAddressHistoryDiviner<TParams extends MemoryAddressHistoryDivinerParams>
21
+ extends AbstractDiviner<TParams>
22
+ implements AddressHistoryDiviner
23
+ {
24
+ static override configSchema: string = AddressHistoryDivinerConfigSchema
25
+
26
+ get queryAddress() {
27
+ return assertEx(this.config.address, 'Missing address')
22
28
  }
23
29
 
24
30
  async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
25
31
  assertEx(!payloads?.length, 'MemoryAddressHistoryDiviner.divine does not allow payloads to be sent')
26
- const archivists = (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map((archivist) => new ArchivistWrapper(archivist)) ?? []
32
+ const archivists =
33
+ (await this.resolve({ query: [[ArchivistGetQuerySchema]] }))?.map(
34
+ (archivist) => new ArchivistWrapper({ account: this.account, module: archivist }),
35
+ ) ?? []
27
36
  assertEx(archivists.length > 0, 'Did not find any archivists')
28
37
  const bwLists = (
29
38
  await Promise.all(
@@ -36,7 +45,7 @@ export class MemoryAddressHistoryDiviner extends AbstractDiviner<DivinerParams<A
36
45
 
37
46
  const bwRecords = this.buildWrapperRecords(bwLists)
38
47
 
39
- const chains = Object.values(this.buildAddressChains(this.config.address, bwRecords))
48
+ const chains = Object.values(this.buildAddressChains(this.queryAddress, bwRecords))
40
49
 
41
50
  //return the heads of each chain (get the last bw on each chain)
42
51
  return chains.map((chain) => assertEx(PayloadWrapper.unwrap(chain.shift())))
@@ -66,7 +75,7 @@ export class MemoryAddressHistoryDiviner extends AbstractDiviner<DivinerParams<A
66
75
  //build object with hashes as keys and wrappers as values
67
76
  private buildWrapperRecords(lists: XyoBoundWitness[]) {
68
77
  return lists
69
- .filter((bw) => bw.addresses.includes(this.config.address))
78
+ .filter((bw) => bw.addresses.includes(this.queryAddress))
70
79
  .reduce<Record<string, BoundWitnessWrapper>>((bwRecords, bw) => {
71
80
  const wrapper = new BoundWitnessWrapper(bw)
72
81
  bwRecords[wrapper.hash] = wrapper
@@ -3,36 +3,36 @@ import { AddressSchema } from '@xyo-network/address-payload-plugin'
3
3
  import { ArchivistGetQuerySchema, ArchivistModule } from '@xyo-network/archivist'
4
4
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
5
5
  import { XyoBoundWitness, XyoBoundWitnessSchema } from '@xyo-network/boundwitness-model'
6
- import { DivinerConfig } from '@xyo-network/diviner-model'
7
- import { ModuleParams } from '@xyo-network/module'
6
+ import { DivinerConfig, DivinerParams } from '@xyo-network/diviner-model'
7
+ import { AnyConfigSchema } from '@xyo-network/module'
8
8
  import { XyoPayloadBuilder } from '@xyo-network/payload-builder'
9
9
  import { XyoPayload } from '@xyo-network/payload-model'
10
10
 
11
- import { AbstractDiviner, DivinerParams } from '../AbstractDiviner'
11
+ import { AbstractDiviner } from '../AbstractDiviner'
12
12
  import { AddressSpaceDiviner, AddressSpaceSchema } from './AddressSpaceDiviner'
13
13
 
14
14
  export type MemoryAddressSpaceDivinerConfigSchema = `${AddressSpaceSchema}.memory.config`
15
15
  export const MemoryAddressSpaceDivinerConfigSchema: MemoryAddressSpaceDivinerConfigSchema = `${AddressSpaceSchema}.memory.config`
16
16
 
17
- export type MemoryAddressSpaceDivinerConfig = DivinerConfig<
18
- XyoBoundWitness,
19
- {
20
- address: string
21
- archivists?: string[]
22
- schema: MemoryAddressSpaceDivinerConfigSchema
23
- }
24
- >
17
+ export type MemoryAddressSpaceDivinerConfig = DivinerConfig<{
18
+ address?: string
19
+ archivists?: string[]
20
+ schema: MemoryAddressSpaceDivinerConfigSchema
21
+ }>
22
+
23
+ export type MemoryAddressSpaceDivinerParams<
24
+ TConfig extends AnyConfigSchema<MemoryAddressSpaceDivinerConfig> = AnyConfigSchema<MemoryAddressSpaceDivinerConfig>,
25
+ > = DivinerParams<TConfig>
25
26
 
26
27
  /**
27
28
  * This Diviner returns the list of all addresses encountered for the reachable archivists
28
29
  */
29
- export class MemoryAddressSpaceDiviner extends AbstractDiviner<DivinerParams<MemoryAddressSpaceDivinerConfig>> implements AddressSpaceDiviner {
30
+ export class MemoryAddressSpaceDiviner<TParams extends MemoryAddressSpaceDivinerParams>
31
+ extends AbstractDiviner<TParams>
32
+ implements AddressSpaceDiviner
33
+ {
30
34
  static override configSchema = MemoryAddressSpaceDivinerConfigSchema
31
35
 
32
- static override async create(params?: Partial<ModuleParams<MemoryAddressSpaceDivinerConfig>>): Promise<MemoryAddressSpaceDiviner> {
33
- return (await super.create(params)) as MemoryAddressSpaceDiviner
34
- }
35
-
36
36
  async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
37
37
  assertEx(!payloads?.length, 'MemoryAddressSpaceDiviner.divine does not allow payloads to be sent')
38
38
  const archivists = await this.archivists()
@@ -59,7 +59,9 @@ export class MemoryAddressSpaceDiviner extends AbstractDiviner<DivinerParams<Mem
59
59
  return await this.resolve<ArchivistModule>({ address: this.config.archivists })
60
60
  } else {
61
61
  //get all reachable archivists
62
- return (await this.resolve<ArchivistModule>({ query: [[ArchivistGetQuerySchema]] })).map((archivist) => new ArchivistWrapper(archivist))
62
+ return (await this.resolve<ArchivistModule>({ query: [[ArchivistGetQuerySchema]] })).map(
63
+ (archivist) => new ArchivistWrapper({ account: this.account, module: archivist }),
64
+ )
63
65
  }
64
66
  }
65
67
  }
@@ -1,19 +1,20 @@
1
- import { DivinerConfig, XyoDivinerConfigSchema } from '@xyo-network/diviner-model'
2
- import { ModuleParams } from '@xyo-network/module'
1
+ import { assertEx } from '@xylabs/assert'
2
+ import { ArchivistParams } from '@xyo-network/archivist'
3
+ import { DivinerConfig } from '@xyo-network/diviner-model'
4
+ import { creatableModule } from '@xyo-network/module'
5
+ import { AnyConfigSchema } from '@xyo-network/module-model'
3
6
  import { XyoPayloads } from '@xyo-network/payload-model'
4
7
  import { Promisable } from '@xyo-network/promise'
5
8
 
6
9
  import { AbstractDiviner } from './AbstractDiviner'
7
10
 
8
- export class IdentityDiviner extends AbstractDiviner {
9
- static override configSchema = XyoDivinerConfigSchema
10
- static override targetSchema = 'network.xyo.test'
11
+ export type IdentityDivinerParams<TConfig extends AnyConfigSchema<DivinerConfig> = AnyConfigSchema<DivinerConfig>> = ArchivistParams<TConfig>
11
12
 
12
- static override async create(params?: ModuleParams<DivinerConfig>) {
13
- return (await super.create(params)) as IdentityDiviner
14
- }
13
+ @creatableModule()
14
+ export class IdentityDiviner<TParams extends IdentityDivinerParams = IdentityDivinerParams> extends AbstractDiviner<TParams> {
15
+ static override targetSchema = 'network.xyo.test'
15
16
 
16
- override divine(payloads: XyoPayloads): Promisable<XyoPayloads> {
17
- return payloads
17
+ override divine(payloads?: XyoPayloads): Promisable<XyoPayloads> {
18
+ return assertEx(payloads, 'IdentityDiviner requires passed payload')
18
19
  }
19
20
  }
@@ -1,3 +1,5 @@
1
- import { AbstractDiviner, DivinerParams } from '../AbstractDiviner'
1
+ import { DivinerParams } from '@xyo-network/diviner-model'
2
+
3
+ import { AbstractDiviner } from '../AbstractDiviner'
2
4
 
3
5
  export abstract class AbstractPayloadDiviner<P extends DivinerParams = DivinerParams> extends AbstractDiviner<P> {}
@@ -5,7 +5,6 @@ export type XyoArchivistPayloadDivinerConfigSchema = 'network.xyo.diviner.payloa
5
5
  export const XyoArchivistPayloadDivinerConfigSchema: XyoArchivistPayloadDivinerConfigSchema = 'network.xyo.diviner.payload.archivist.config'
6
6
 
7
7
  export type XyoArchivistPayloadDivinerConfig<T extends XyoPayload = XyoPayload> = DivinerConfig<
8
- XyoPayload,
9
8
  T & {
10
9
  archivist?: string
11
10
  schema: XyoArchivistPayloadDivinerConfigSchema
@@ -1,22 +1,22 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { ArchivistGetQuery, ArchivistGetQuerySchema, ArchivistModule } from '@xyo-network/archivist'
3
3
  import { ArchivistWrapper } from '@xyo-network/archivist-wrapper'
4
+ import { DivinerParams } from '@xyo-network/diviner-model'
4
5
  import { Huri } from '@xyo-network/huri'
5
- import { ModuleParams } from '@xyo-network/module'
6
+ import { AnyConfigSchema } from '@xyo-network/module-model'
6
7
  import { XyoPayload } from '@xyo-network/payload-model'
7
8
  import { PayloadWrapper } from '@xyo-network/payload-wrapper'
8
9
 
9
- import { DivinerParams } from '../../AbstractDiviner'
10
10
  import { AbstractPayloadDiviner } from '../AbstractPayloadDiviner'
11
11
  import { XyoHuriPayload, XyoHuriSchema } from '../XyoHuriPayload'
12
12
  import { XyoArchivistPayloadDivinerConfig, XyoArchivistPayloadDivinerConfigSchema } from './Config'
13
13
 
14
- export class ArchivistPayloadDiviner extends AbstractPayloadDiviner<DivinerParams<XyoArchivistPayloadDivinerConfig>> {
15
- static override configSchema: XyoArchivistPayloadDivinerConfigSchema
14
+ export type ArchivistPayloadDivinerParams<
15
+ TConfig extends AnyConfigSchema<XyoArchivistPayloadDivinerConfig> = AnyConfigSchema<XyoArchivistPayloadDivinerConfig>,
16
+ > = DivinerParams<TConfig>
16
17
 
17
- static override async create(params?: ModuleParams<XyoArchivistPayloadDivinerConfig>): Promise<ArchivistPayloadDiviner> {
18
- return (await super.create(params)) as ArchivistPayloadDiviner
19
- }
18
+ export class ArchivistPayloadDiviner<TParams extends ArchivistPayloadDivinerParams> extends AbstractPayloadDiviner<TParams> {
19
+ static override configSchema: XyoArchivistPayloadDivinerConfigSchema
20
20
 
21
21
  async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
22
22
  const huriPayloads = assertEx(
@@ -40,7 +40,7 @@ export class ArchivistPayloadDiviner extends AbstractPayloadDiviner<DivinerParam
40
40
  ? ((await this.resolve({ address: [configArchivistAddress] })) as unknown as ArchivistModule[]).shift() ?? null
41
41
  : null
42
42
  if (resolvedArchivist) {
43
- return resolvedArchivist ? new ArchivistWrapper(resolvedArchivist) : null
43
+ return resolvedArchivist ? new ArchivistWrapper({ account: this.account, module: resolvedArchivist }) : null
44
44
  }
45
45
  }
46
46
  return null
@@ -6,7 +6,6 @@ export type XyoHuriPayloadDivinerConfigSchema = 'network.xyo.diviner.payload.hur
6
6
  export const XyoHuriPayloadDivinerConfigSchema: XyoHuriPayloadDivinerConfigSchema = 'network.xyo.diviner.payload.huri.config'
7
7
 
8
8
  export type XyoHuriPayloadDivinerConfig<T extends XyoPayload = XyoPayload> = DivinerConfig<
9
- XyoPayload,
10
9
  T & {
11
10
  options?: HuriOptions
12
11
  schema: XyoHuriPayloadDivinerConfigSchema
@@ -1,26 +1,25 @@
1
1
  import { assertEx } from '@xylabs/assert'
2
2
  import { fulfilled } from '@xylabs/promise'
3
+ import { DivinerParams } from '@xyo-network/diviner-model'
3
4
  import { Huri } from '@xyo-network/huri'
4
- import { ModuleParams } from '@xyo-network/module'
5
+ import { AnyConfigSchema } from '@xyo-network/module'
5
6
  import { XyoPayload } from '@xyo-network/payload-model'
6
7
  import compact from 'lodash/compact'
7
8
 
8
- import { DivinerParams } from '../../AbstractDiviner'
9
9
  import { AbstractPayloadDiviner } from '../AbstractPayloadDiviner'
10
10
  import { XyoHuriPayload, XyoHuriSchema } from '../XyoHuriPayload'
11
11
  import { XyoHuriPayloadDivinerConfig, XyoHuriPayloadDivinerConfigSchema } from './Config'
12
12
 
13
- export class HuriPayloadDiviner extends AbstractPayloadDiviner<DivinerParams<XyoHuriPayloadDivinerConfig>> {
13
+ export type HuriPayloadDivinerParams<TConfig extends AnyConfigSchema<XyoHuriPayloadDivinerConfig> = AnyConfigSchema<XyoHuriPayloadDivinerConfig>> =
14
+ DivinerParams<TConfig>
15
+
16
+ export class HuriPayloadDiviner<TParams extends HuriPayloadDivinerParams = HuriPayloadDivinerParams> extends AbstractPayloadDiviner<TParams> {
14
17
  static override configSchema: XyoHuriPayloadDivinerConfigSchema
15
18
 
16
19
  protected get options() {
17
20
  return this.config?.options
18
21
  }
19
22
 
20
- static override async create(params?: Partial<ModuleParams<XyoHuriPayloadDivinerConfig>>): Promise<HuriPayloadDiviner> {
21
- return (await super.create(params)) as HuriPayloadDiviner
22
- }
23
-
24
23
  override async divine(payloads?: XyoPayload[]): Promise<XyoPayload[]> {
25
24
  const huriPayloads = assertEx(
26
25
  payloads?.filter((payload): payload is XyoHuriPayload => payload?.schema === XyoHuriSchema),