@xyo-network/module-abstract 2.94.20 → 2.94.22

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 (35) hide show
  1. package/dist/browser/AbstractModule.d.cts +3 -7
  2. package/dist/browser/AbstractModule.d.cts.map +1 -1
  3. package/dist/browser/AbstractModule.d.mts +3 -7
  4. package/dist/browser/AbstractModule.d.mts.map +1 -1
  5. package/dist/browser/AbstractModule.d.ts +3 -7
  6. package/dist/browser/AbstractModule.d.ts.map +1 -1
  7. package/dist/browser/AbstractModuleInstance.d.cts +10 -0
  8. package/dist/browser/AbstractModuleInstance.d.cts.map +1 -1
  9. package/dist/browser/AbstractModuleInstance.d.mts +10 -0
  10. package/dist/browser/AbstractModuleInstance.d.mts.map +1 -1
  11. package/dist/browser/AbstractModuleInstance.d.ts +10 -0
  12. package/dist/browser/AbstractModuleInstance.d.ts.map +1 -1
  13. package/dist/browser/index.cjs +32 -18
  14. package/dist/browser/index.cjs.map +1 -1
  15. package/dist/browser/index.js +32 -18
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/node/AbstractModule.d.cts +3 -7
  18. package/dist/node/AbstractModule.d.cts.map +1 -1
  19. package/dist/node/AbstractModule.d.mts +3 -7
  20. package/dist/node/AbstractModule.d.mts.map +1 -1
  21. package/dist/node/AbstractModule.d.ts +3 -7
  22. package/dist/node/AbstractModule.d.ts.map +1 -1
  23. package/dist/node/AbstractModuleInstance.d.cts +10 -0
  24. package/dist/node/AbstractModuleInstance.d.cts.map +1 -1
  25. package/dist/node/AbstractModuleInstance.d.mts +10 -0
  26. package/dist/node/AbstractModuleInstance.d.mts.map +1 -1
  27. package/dist/node/AbstractModuleInstance.d.ts +10 -0
  28. package/dist/node/AbstractModuleInstance.d.ts.map +1 -1
  29. package/dist/node/index.cjs +32 -18
  30. package/dist/node/index.cjs.map +1 -1
  31. package/dist/node/index.js +32 -18
  32. package/dist/node/index.js.map +1 -1
  33. package/package.json +18 -18
  34. package/src/AbstractModule.ts +6 -15
  35. package/src/AbstractModuleInstance.ts +42 -0
@@ -17,12 +17,14 @@ import {
17
17
  ModuleNameResolver,
18
18
  ModuleParams,
19
19
  ModuleQueryResult,
20
+ ModuleResolver,
20
21
  ModuleStateQuery,
21
22
  ModuleStateQuerySchema,
22
23
  ObjectFilterOptions,
23
24
  ResolveHelper,
24
25
  ResolveHelperConfig,
25
26
  } from '@xyo-network/module-model'
27
+ import { CompositeModuleResolver } from '@xyo-network/module-resolver'
26
28
  import { Payload, Query, WithMeta } from '@xyo-network/payload-model'
27
29
 
28
30
  import { AbstractModule } from './AbstractModule'
@@ -32,6 +34,11 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
32
34
  implements ModuleInstance<TParams, TEventData>, ModuleNameResolver
33
35
  {
34
36
  static override readonly uniqueName = globallyUnique('AbstractModuleInstance', AbstractModuleInstance, 'xyo')
37
+
38
+ private _downResolver?: CompositeModuleResolver
39
+ private _privateResolver?: CompositeModuleResolver
40
+ private _upResolver?: CompositeModuleResolver
41
+
35
42
  constructor(privateConstructorKey: string, params: TParams, account: AccountInstance) {
36
43
  assertEx(AbstractModule.privateConstructorKey === privateConstructorKey, () => 'Use create function instead of constructor')
37
44
  // Clone params to prevent mutation of the incoming object
@@ -44,6 +51,28 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
44
51
  }
45
52
  }
46
53
 
54
+ get downResolver() {
55
+ this._downResolver =
56
+ this._downResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
57
+ return this._downResolver
58
+ }
59
+
60
+ get privateResolver() {
61
+ this._privateResolver =
62
+ this._privateResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
63
+ return this._privateResolver
64
+ }
65
+
66
+ get root() {
67
+ return this
68
+ }
69
+
70
+ get upResolver() {
71
+ this._upResolver =
72
+ this._upResolver ?? new CompositeModuleResolver({ moduleIdentifierTransformers: this.params.moduleIdentifierTransformers, root: this })
73
+ return this._upResolver
74
+ }
75
+
47
76
  manifest(maxDepth?: number): Promise<ModuleManifestPayload> {
48
77
  this._checkDead()
49
78
  return this.busy(async () => {
@@ -111,6 +140,19 @@ export abstract class AbstractModuleInstance<TParams extends ModuleParams = Modu
111
140
  }
112
141
  }
113
142
 
143
+ async resolvePrivate<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>
144
+ async resolvePrivate<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>
145
+ async resolvePrivate<T extends ModuleInstance = ModuleInstance>(
146
+ id: ModuleIdentifier = '*',
147
+ options: ModuleFilterOptions<T> = {},
148
+ ): Promise<T | T[] | undefined> {
149
+ return (
150
+ (await this.privateResolver.resolve(id, options)) ??
151
+ (await this.upResolver.resolve(id, options)) ??
152
+ (await this.downResolver.resolve(id, options))
153
+ )
154
+ }
155
+
114
156
  state() {
115
157
  this._checkDead()
116
158
  return this.busy(async () => {