@xyo-network/node 2.65.5 → 2.65.6

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.
@@ -6,7 +6,7 @@ import { handleErrorAsync } from '@xyo-network/error';
6
6
  import { NodeManifestPayloadSchema } from '@xyo-network/manifest-model';
7
7
  import { ModuleWrapper } from '@xyo-network/module';
8
8
  import { AbstractIndirectModule, CompositeModuleResolver, ModuleErrorBuilder } from '@xyo-network/module-abstract';
9
- import { duplicateModules, isDirectModule } from '@xyo-network/module-model';
9
+ import { duplicateModules, isDirectModule, } from '@xyo-network/module-model';
10
10
  import { NodeAttachedQuerySchema, NodeAttachQuerySchema, NodeConfigSchema, NodeDetachQuerySchema, NodeRegisteredQuerySchema, } from '@xyo-network/node-model';
11
11
  import { PayloadBuilder } from '@xyo-network/payload-builder';
12
12
  export class AbstractNode extends AbstractIndirectModule {
@@ -34,7 +34,7 @@ export class AbstractNode extends AbstractIndirectModule {
34
34
  return (await this.attachedModules()).map((module) => module.address);
35
35
  }
36
36
  async attachedModules() {
37
- return await (this.privateResolver.resolve() ?? []);
37
+ return (await (this.downResolver.resolve() ?? [])).filter((module) => module.address !== this.address);
38
38
  }
39
39
  register(_module) {
40
40
  throw new Error('Method not implemented.');
@@ -45,20 +45,33 @@ export class AbstractNode extends AbstractIndirectModule {
45
45
  registeredModules() {
46
46
  throw new Error('Method not implemented.');
47
47
  }
48
- async resolvePrivate(nameOrAddressOrFilter) {
49
- switch (typeof nameOrAddressOrFilter) {
50
- case 'string': {
51
- const byAddress = Account.isAddress(nameOrAddressOrFilter)
52
- ? (await this.privateResolver.resolve({ address: [nameOrAddressOrFilter] })).pop() ??
53
- (await this.resolve({ address: [nameOrAddressOrFilter] })).pop()
54
- : undefined;
55
- return (byAddress ??
56
- (await this.privateResolver.resolve({ name: [nameOrAddressOrFilter] })).pop() ??
57
- (await this.resolve({ name: [nameOrAddressOrFilter] })).pop());
48
+ async resolve(nameOrAddressOrFilter, options) {
49
+ //checking type of nameOrAddressOrFilter before calling other functions since TS seems
50
+ //to need help here narrowing before the call
51
+ if (typeof nameOrAddressOrFilter === 'string') {
52
+ switch (options?.visibility) {
53
+ case 'private': {
54
+ return await this.resolvePrivate(nameOrAddressOrFilter);
55
+ }
56
+ case 'all': {
57
+ return await this.resolveAll(nameOrAddressOrFilter);
58
+ }
59
+ default: {
60
+ return await super.resolve(nameOrAddressOrFilter, options);
61
+ }
58
62
  }
59
- default: {
60
- const filter = nameOrAddressOrFilter;
61
- return [...(await this.privateResolver.resolve(filter)), ...(await this.resolve(filter))].filter(duplicateModules);
63
+ }
64
+ else {
65
+ switch (options?.visibility) {
66
+ case 'all': {
67
+ return await this.resolveAll(nameOrAddressOrFilter);
68
+ }
69
+ case 'private': {
70
+ return await this.resolvePrivate(nameOrAddressOrFilter);
71
+ }
72
+ default: {
73
+ return await super.resolve(nameOrAddressOrFilter, options);
74
+ }
62
75
  }
63
76
  }
64
77
  }
@@ -74,12 +87,16 @@ export class AbstractNode extends AbstractIndirectModule {
74
87
  const manifest = { ...(await super.manifestHandler()), schema: NodeManifestPayloadSchema };
75
88
  const notThisModule = (module) => module.address !== this.address;
76
89
  const toManifest = (module) => (isDirectModule(module) ? module.manifest() : ModuleWrapper.wrap(module, this.account).manifest());
90
+ const privateModulesList = await this.privateResolver.resolve();
77
91
  const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest));
92
+ console.log(`manifestHandler:privateModules:${privateModulesList.length}`);
78
93
  if (privateModules.length > 0) {
79
94
  manifest.modules = manifest.modules ?? {};
80
95
  manifest.modules.private = privateModules;
81
96
  }
97
+ const publicModulesList = await this.downResolver.resolve();
82
98
  const publicModules = await Promise.all((await this.downResolver.resolve()).filter(notThisModule).map(toManifest));
99
+ console.log(`manifestHandler:publicModules:${publicModulesList.length}`);
83
100
  if (publicModules.length > 0) {
84
101
  manifest.modules = manifest.modules ?? {};
85
102
  manifest.modules.public = publicModules;
@@ -143,5 +160,30 @@ export class AbstractNode extends AbstractIndirectModule {
143
160
  }
144
161
  return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0];
145
162
  }
163
+ async resolveAll(nameOrAddressOrFilter, options) {
164
+ switch (typeof nameOrAddressOrFilter) {
165
+ case 'string': {
166
+ return (await this.resolvePrivate(nameOrAddressOrFilter, options)) ?? (await super.resolve(nameOrAddressOrFilter, options));
167
+ }
168
+ default: {
169
+ return [
170
+ ...(await this.resolvePrivate(nameOrAddressOrFilter, options)),
171
+ ...(await super.resolve(nameOrAddressOrFilter, options)),
172
+ ].filter(duplicateModules);
173
+ }
174
+ }
175
+ }
176
+ async resolvePrivate(nameOrAddressOrFilter, options) {
177
+ const direction = options?.direction ?? 'all';
178
+ const down = direction === 'down' || direction === 'all';
179
+ switch (typeof nameOrAddressOrFilter) {
180
+ case 'string': {
181
+ return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined;
182
+ }
183
+ default: {
184
+ return down ? await this.privateResolver.resolve(nameOrAddressOrFilter) : undefined;
185
+ }
186
+ }
187
+ }
146
188
  }
147
189
  //# sourceMappingURL=AbstractNode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractNode.js","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"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"}
@@ -6,24 +6,31 @@ export class MemoryNode extends AbstractNode {
6
6
  static configSchemas = [NodeConfigSchema];
7
7
  registeredModuleMap = {};
8
8
  async attach(nameOrAddress, external) {
9
+ await this.started('throw');
9
10
  return (await this.attachUsingAddress(nameOrAddress, external)) ?? (await this.attachUsingName(nameOrAddress, external));
10
11
  }
11
12
  async describe() {
13
+ await this.started('throw');
12
14
  return await super.describeHandler();
13
15
  }
14
16
  async detach(nameOrAddress) {
17
+ await this.started('throw');
15
18
  return (await this.detachUsingAddress(nameOrAddress)) ?? (await this.detachUsingName(nameOrAddress));
16
19
  }
17
20
  async discover() {
21
+ await this.started('throw');
18
22
  return await super.discoverHandler();
19
23
  }
20
24
  async manifest() {
25
+ await this.started('throw');
21
26
  return await super.manifestHandler();
22
27
  }
23
28
  async moduleAddress() {
29
+ await this.started('throw');
24
30
  return await super.moduleAddressHandler();
25
31
  }
26
32
  async register(module) {
33
+ await this.started('throw');
27
34
  assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`);
28
35
  this.registeredModuleMap[module.address] = module;
29
36
  const args = { module, name: module.config.name };
@@ -43,12 +50,16 @@ export class MemoryNode extends AbstractNode {
43
50
  return super.subscribeHandler();
44
51
  }
45
52
  async unregister(module) {
53
+ await this.started('throw');
46
54
  await this.detach(module.address);
47
55
  delete this.registeredModuleMap[module.address];
48
56
  const args = { module, name: module.config.name };
49
57
  await this.emit('moduleUnregistered', args);
50
58
  return this;
51
59
  }
60
+ startHandler() {
61
+ return super.startHandler();
62
+ }
52
63
  async attachUsingAddress(address, external) {
53
64
  const existingModule = (await this.resolve({ address: [address] })).pop();
54
65
  assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`);
@@ -74,15 +85,19 @@ export class MemoryNode extends AbstractNode {
74
85
  }));
75
86
  };
76
87
  const notificationList = await getModulesToNotifyAbout(module);
77
- this.privateResolver.addResolver(module.downResolver);
78
- //give it inside access
88
+ //give it private access
79
89
  module.upResolver.addResolver?.(this.privateResolver);
90
+ //give it public access
91
+ module.upResolver.addResolver?.(this.downResolver);
80
92
  //give it outside access
81
93
  module.upResolver.addResolver?.(this.upResolver);
82
94
  if (external) {
83
95
  //expose it externally
84
96
  this.downResolver.addResolver(module.downResolver);
85
97
  }
98
+ else {
99
+ this.privateResolver.addResolver(module.downResolver);
100
+ }
86
101
  const args = { module, name: module.config.name };
87
102
  await this.emit('moduleAttached', args);
88
103
  if (isNodeModule(module)) {
@@ -113,7 +128,6 @@ export class MemoryNode extends AbstractNode {
113
128
  if (!module) {
114
129
  return;
115
130
  }
116
- this.privateResolver.removeResolver(module.downResolver);
117
131
  //remove inside access
118
132
  module.upResolver?.removeResolver?.(this.privateResolver);
119
133
  //remove outside access
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryNode.js","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { QueryBoundWitness } from '@xyo-network/boundwitness-builder';
2
2
  import { NodeManifestPayload } from '@xyo-network/manifest-model';
3
3
  import { AbstractIndirectModule, CompositeModuleResolver } from '@xyo-network/module-abstract';
4
- import { Module, ModuleConfig, ModuleFilter, ModuleQueryResult } from '@xyo-network/module-model';
4
+ import { Module, ModuleConfig, ModuleFilter, ModuleFilterOptions, ModuleQueryResult } from '@xyo-network/module-model';
5
5
  import { IndirectNodeModule, NodeModuleEventData, NodeModuleParams, NodeQueryBase } from '@xyo-network/node-model';
6
6
  import { Payload } from '@xyo-network/payload-model';
7
7
  import { Promisable } from '@xyo-network/promise';
@@ -18,12 +18,14 @@ export declare abstract class AbstractNode<TParams extends NodeModuleParams = No
18
18
  register(_module: Module): Promisable<void>;
19
19
  registered(): Promisable<string[]>;
20
20
  registeredModules(): Promisable<Module[]>;
21
- resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>;
22
- resolvePrivate<TModule extends Module = Module>(nameOrAddress: string): Promise<TModule | undefined>;
21
+ resolve<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>;
22
+ resolve<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>;
23
23
  unregister(_module: Module): Promisable<this>;
24
24
  protected discoverHandler(): Promise<Payload[]>;
25
25
  protected manifestHandler(): Promise<NodeManifestPayload>;
26
26
  protected queryHandler<T extends QueryBoundWitness = QueryBoundWitness, TConfig extends ModuleConfig = ModuleConfig>(query: T, payloads?: Payload[], queryConfig?: TConfig): Promise<ModuleQueryResult>;
27
+ private resolveAll;
28
+ private resolvePrivate;
27
29
  abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>;
28
30
  abstract detach(nameOrAddress: string): Promisable<string | undefined>;
29
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAE/F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAA;AAE5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,8BAA8B,CAAA;AAClH,OAAO,EAAoC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACnI,OAAO,EACL,kBAAkB,EAKlB,mBAAmB,EACnB,gBAAgB,EAEhB,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAe,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,8BAAsB,YAAY,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CAClJ,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAE/E,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOnF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAInC,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1F,cAAc,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAqB1G,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;cAIpB,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;cASrC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAqB/C,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;IA2D7B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;CACvE"}
1
+ {"version":3,"file":"AbstractNode.d.ts","sourceRoot":"","sources":["../../src/AbstractNode.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,mCAAmC,CAAA;AAE/F,OAAO,EAAE,mBAAmB,EAA6B,MAAM,6BAA6B,CAAA;AAE5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAsB,MAAM,8BAA8B,CAAA;AAClH,OAAO,EAGL,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,kBAAkB,EAKlB,mBAAmB,EACnB,gBAAgB,EAEhB,aAAa,EAEd,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAe,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,8BAAsB,YAAY,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CAClJ,SAAQ,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAClD,YAAW,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IAE/E,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAqB;IAErE,SAAS,CAAC,QAAQ,CAAC,eAAe,0BAAgC;IAElE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAO;IAE9B,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAa,OAAO,IAAI,MAAM,EAAE,CAE/B;IAED,cAAuB,kBAAkB,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAOnF;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;IAIvB,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI7B,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAI3C,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAIlC,iBAAiB,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;IAI1B,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAClH,OAAO,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkC3I,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;cAIpB,eAAe,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;cASrC,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAyB/C,YAAY,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,SAAS,YAAY,GAAG,YAAY,EAChI,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,OAAO,EAAE,EACpB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,iBAAiB,CAAC;YA2Df,UAAU;YAmBV,cAAc;IAkB5B,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;CACvE"}
@@ -19,6 +19,7 @@ export declare class MemoryNode<TParams extends MemoryNodeParams = MemoryNodePar
19
19
  registeredModules(): Module[];
20
20
  subscribe(_queryAccount?: AccountInstance): void;
21
21
  unregister(module: Module): Promise<this>;
22
+ protected startHandler(): Promise<boolean>;
22
23
  private attachUsingAddress;
23
24
  private attachUsingName;
24
25
  private detachUsingAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAiB,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAClI,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAGV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;AAE5E,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACvI,SAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,CACxC,YAAW,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEhD,OAAgB,aAAa,8BAAqB;IAElD,OAAO,CAAC,mBAAmB,CAA6B;IAEzC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAIzD,QAAQ,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAIpC,MAAM,CAAC,aAAa,EAAE,MAAM;IAIrC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIxC,aAAa,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAI7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAO7B,UAAU;IAMV,iBAAiB;IAM1B,SAAS,CAAC,aAAa,CAAC,EAAE,eAAe;IAI1B,UAAU,CAAC,MAAM,EAAE,MAAM;YAQ1B,kBAAkB;YA8ElB,eAAe;YAOf,kBAAkB;YAgDlB,eAAe;IAQ7B,OAAO,CAAC,qBAAqB;CAM9B"}
1
+ {"version":3,"file":"MemoryNode.d.ts","sourceRoot":"","sources":["../../src/MemoryNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAiB,MAAM,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AAClI,OAAO,EACL,gBAAgB,EAEhB,UAAU,EAGV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;AAE5E,qBAAa,UAAU,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,UAAU,SAAS,mBAAmB,GAAG,mBAAmB,CACvI,SAAQ,YAAY,CAAC,OAAO,EAAE,UAAU,CACxC,YAAW,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAEhD,OAAgB,aAAa,8BAAqB;IAElD,OAAO,CAAC,mBAAmB,CAA6B;IAEzC,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO;IAKzD,QAAQ,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAKpC,MAAM,CAAC,aAAa,EAAE,MAAM;IAKrC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK9B,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKxC,aAAa,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;IAK7C,QAAQ,CAAC,MAAM,EAAE,MAAM;IAQ7B,UAAU;IAMV,iBAAiB;IAM1B,SAAS,CAAC,aAAa,CAAC,EAAE,eAAe;IAI1B,UAAU,CAAC,MAAM,EAAE,MAAM;cASrB,YAAY;YAIjB,kBAAkB;YAiFlB,eAAe;YAOf,kBAAkB;YA8ClB,eAAe;IAQ7B,OAAO,CAAC,qBAAqB;CAM9B"}
package/package.json CHANGED
@@ -11,26 +11,26 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@xylabs/assert": "^2.9.3",
14
- "@xyo-network/account": "^2.65.5",
15
- "@xyo-network/account-model": "^2.65.5",
16
- "@xyo-network/address-payload-plugin": "^2.65.5",
17
- "@xyo-network/boundwitness-builder": "^2.65.5",
18
- "@xyo-network/error": "^2.65.5",
19
- "@xyo-network/manifest-model": "^2.65.5",
20
- "@xyo-network/module": "^2.65.5",
21
- "@xyo-network/module-abstract": "^2.65.5",
22
- "@xyo-network/module-model": "^2.65.5",
23
- "@xyo-network/node-model": "^2.65.5",
24
- "@xyo-network/node-wrapper": "^2.65.5",
25
- "@xyo-network/payload-builder": "^2.65.5",
26
- "@xyo-network/payload-model": "^2.65.5",
27
- "@xyo-network/promise": "^2.65.5",
14
+ "@xyo-network/account": "^2.65.6",
15
+ "@xyo-network/account-model": "^2.65.6",
16
+ "@xyo-network/address-payload-plugin": "^2.65.6",
17
+ "@xyo-network/boundwitness-builder": "^2.65.6",
18
+ "@xyo-network/error": "^2.65.6",
19
+ "@xyo-network/manifest-model": "^2.65.6",
20
+ "@xyo-network/module": "^2.65.6",
21
+ "@xyo-network/module-abstract": "^2.65.6",
22
+ "@xyo-network/module-model": "^2.65.6",
23
+ "@xyo-network/node-model": "^2.65.6",
24
+ "@xyo-network/node-wrapper": "^2.65.6",
25
+ "@xyo-network/payload-builder": "^2.65.6",
26
+ "@xyo-network/payload-model": "^2.65.6",
27
+ "@xyo-network/promise": "^2.65.6",
28
28
  "lodash": "^4.17.21"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/lodash": "^4.14.195",
32
- "@xylabs/ts-scripts-yarn3": "^2.18.10",
33
- "@xylabs/tsconfig": "^2.18.10",
32
+ "@xylabs/ts-scripts-yarn3": "^2.18.11",
33
+ "@xylabs/tsconfig": "^2.18.11",
34
34
  "typescript": "^5.1.6"
35
35
  },
36
36
  "description": "Primary SDK for using XYO Protocol 2.0",
@@ -66,5 +66,5 @@
66
66
  },
67
67
  "sideEffects": false,
68
68
  "types": "dist/types/index.d.ts",
69
- "version": "2.65.5"
69
+ "version": "2.65.6"
70
70
  }
@@ -6,7 +6,15 @@ import { handleErrorAsync } from '@xyo-network/error'
6
6
  import { NodeManifestPayload, NodeManifestPayloadSchema } from '@xyo-network/manifest-model'
7
7
  import { ModuleWrapper } from '@xyo-network/module'
8
8
  import { AbstractIndirectModule, CompositeModuleResolver, ModuleErrorBuilder } from '@xyo-network/module-abstract'
9
- import { duplicateModules, isDirectModule, Module, ModuleConfig, ModuleFilter, ModuleQueryResult } from '@xyo-network/module-model'
9
+ import {
10
+ duplicateModules,
11
+ isDirectModule,
12
+ Module,
13
+ ModuleConfig,
14
+ ModuleFilter,
15
+ ModuleFilterOptions,
16
+ ModuleQueryResult,
17
+ } from '@xyo-network/module-model'
10
18
  import {
11
19
  IndirectNodeModule,
12
20
  NodeAttachedQuerySchema,
@@ -59,7 +67,7 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
59
67
  }
60
68
 
61
69
  async attachedModules(): Promise<Module[]> {
62
- return await (this.privateResolver.resolve() ?? [])
70
+ return (await (this.downResolver.resolve() ?? [])).filter((module) => module.address !== this.address)
63
71
  }
64
72
 
65
73
  register(_module: Module): Promisable<void> {
@@ -74,24 +82,37 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
74
82
  throw new Error('Method not implemented.')
75
83
  }
76
84
 
77
- async resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter): Promise<TModule[]>
78
- async resolvePrivate<TModule extends Module = Module>(nameOrAddress: string): Promise<TModule | undefined>
79
- async resolvePrivate<TModule extends Module = Module>(nameOrAddressOrFilter?: ModuleFilter | string): Promise<TModule | TModule[] | undefined> {
80
- switch (typeof nameOrAddressOrFilter) {
81
- case 'string': {
82
- const byAddress = Account.isAddress(nameOrAddressOrFilter)
83
- ? (await this.privateResolver.resolve<TModule>({ address: [nameOrAddressOrFilter] })).pop() ??
84
- (await this.resolve<TModule>({ address: [nameOrAddressOrFilter] })).pop()
85
- : undefined
86
- return (
87
- byAddress ??
88
- (await this.privateResolver.resolve<TModule>({ name: [nameOrAddressOrFilter] })).pop() ??
89
- (await this.resolve<TModule>({ name: [nameOrAddressOrFilter] })).pop()
90
- )
85
+ override async resolve<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
86
+ override async resolve<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
87
+ override async resolve<TModule extends Module = Module>(
88
+ nameOrAddressOrFilter?: ModuleFilter | string,
89
+ options?: ModuleFilterOptions,
90
+ ): Promise<TModule | TModule[] | undefined> {
91
+ //checking type of nameOrAddressOrFilter before calling other functions since TS seems
92
+ //to need help here narrowing before the call
93
+ if (typeof nameOrAddressOrFilter === 'string') {
94
+ switch (options?.visibility) {
95
+ case 'private': {
96
+ return await this.resolvePrivate<TModule>(nameOrAddressOrFilter)
97
+ }
98
+ case 'all': {
99
+ return await this.resolveAll<TModule>(nameOrAddressOrFilter)
100
+ }
101
+ default: {
102
+ return await super.resolve<TModule>(nameOrAddressOrFilter, options)
103
+ }
91
104
  }
92
- default: {
93
- const filter: ModuleFilter | undefined = nameOrAddressOrFilter
94
- return [...(await this.privateResolver.resolve<TModule>(filter)), ...(await this.resolve<TModule>(filter))].filter(duplicateModules)
105
+ } else {
106
+ switch (options?.visibility) {
107
+ case 'all': {
108
+ return await this.resolveAll<TModule>(nameOrAddressOrFilter)
109
+ }
110
+ case 'private': {
111
+ return await this.resolvePrivate<TModule>(nameOrAddressOrFilter)
112
+ }
113
+ default: {
114
+ return await super.resolve<TModule>(nameOrAddressOrFilter, options)
115
+ }
95
116
  }
96
117
  }
97
118
  }
@@ -115,13 +136,17 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
115
136
  const notThisModule = (module: Module) => module.address !== this.address
116
137
  const toManifest = (module: Module) => (isDirectModule(module) ? module.manifest() : ModuleWrapper.wrap(module, this.account).manifest())
117
138
 
139
+ const privateModulesList = await this.privateResolver.resolve()
118
140
  const privateModules = await Promise.all((await this.privateResolver.resolve()).filter(notThisModule).map(toManifest))
141
+ console.log(`manifestHandler:privateModules:${privateModulesList.length}`)
119
142
  if (privateModules.length > 0) {
120
143
  manifest.modules = manifest.modules ?? {}
121
144
  manifest.modules.private = privateModules
122
145
  }
123
146
 
147
+ const publicModulesList = await this.downResolver.resolve()
124
148
  const publicModules = await Promise.all((await this.downResolver.resolve()).filter(notThisModule).map(toManifest))
149
+ console.log(`manifestHandler:publicModules:${publicModulesList.length}`)
125
150
  if (publicModules.length > 0) {
126
151
  manifest.modules = manifest.modules ?? {}
127
152
  manifest.modules.public = publicModules
@@ -193,6 +218,43 @@ export abstract class AbstractNode<TParams extends NodeModuleParams = NodeModule
193
218
  return (await this.bindQueryResult(queryPayload, resultPayloads, [queryAccount], errorPayloads))[0]
194
219
  }
195
220
 
221
+ private async resolveAll<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
222
+ private async resolveAll<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
223
+ private async resolveAll<TModule extends Module = Module>(
224
+ nameOrAddressOrFilter?: ModuleFilter | string,
225
+ options?: ModuleFilterOptions,
226
+ ): Promise<TModule | TModule[] | undefined> {
227
+ switch (typeof nameOrAddressOrFilter) {
228
+ case 'string': {
229
+ return (await this.resolvePrivate<TModule>(nameOrAddressOrFilter, options)) ?? (await super.resolve<TModule>(nameOrAddressOrFilter, options))
230
+ }
231
+ default: {
232
+ return [
233
+ ...(await this.resolvePrivate<TModule>(nameOrAddressOrFilter, options)),
234
+ ...(await super.resolve<TModule>(nameOrAddressOrFilter, options)),
235
+ ].filter(duplicateModules)
236
+ }
237
+ }
238
+ }
239
+
240
+ private async resolvePrivate<TModule extends Module = Module>(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<TModule[]>
241
+ private async resolvePrivate<TModule extends Module = Module>(nameOrAddress: string, options?: ModuleFilterOptions): Promise<TModule | undefined>
242
+ private async resolvePrivate<TModule extends Module = Module>(
243
+ nameOrAddressOrFilter?: ModuleFilter | string,
244
+ options?: ModuleFilterOptions,
245
+ ): Promise<TModule | TModule[] | undefined> {
246
+ const direction = options?.direction ?? 'all'
247
+ const down = direction === 'down' || direction === 'all'
248
+ switch (typeof nameOrAddressOrFilter) {
249
+ case 'string': {
250
+ return down ? await this.privateResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined
251
+ }
252
+ default: {
253
+ return down ? await this.privateResolver.resolve<TModule>(nameOrAddressOrFilter) : undefined
254
+ }
255
+ }
256
+ }
257
+
196
258
  abstract attach(nameOrAddress: string, external?: boolean): Promisable<string | undefined>
197
259
  abstract detach(nameOrAddress: string): Promisable<string | undefined>
198
260
  }
package/src/MemoryNode.ts CHANGED
@@ -27,30 +27,37 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
27
27
  private registeredModuleMap: Record<string, Module> = {}
28
28
 
29
29
  override async attach(nameOrAddress: string, external?: boolean) {
30
+ await this.started('throw')
30
31
  return (await this.attachUsingAddress(nameOrAddress, external)) ?? (await this.attachUsingName(nameOrAddress, external))
31
32
  }
32
33
 
33
34
  async describe(): Promise<ModuleDescriptionPayload> {
35
+ await this.started('throw')
34
36
  return await super.describeHandler()
35
37
  }
36
38
 
37
39
  override async detach(nameOrAddress: string) {
40
+ await this.started('throw')
38
41
  return (await this.detachUsingAddress(nameOrAddress)) ?? (await this.detachUsingName(nameOrAddress))
39
42
  }
40
43
 
41
44
  async discover(): Promise<Payload[]> {
45
+ await this.started('throw')
42
46
  return await super.discoverHandler()
43
47
  }
44
48
 
45
49
  async manifest(): Promise<NodeManifestPayload> {
50
+ await this.started('throw')
46
51
  return await super.manifestHandler()
47
52
  }
48
53
 
49
54
  async moduleAddress(): Promise<AddressPreviousHashPayload[]> {
55
+ await this.started('throw')
50
56
  return await super.moduleAddressHandler()
51
57
  }
52
58
 
53
59
  override async register(module: Module) {
60
+ await this.started('throw')
54
61
  assertEx(!this.registeredModuleMap[module.address], `Module already registered at that address[${module.address}]`)
55
62
  this.registeredModuleMap[module.address] = module
56
63
  const args = { module, name: module.config.name }
@@ -74,6 +81,7 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
74
81
  }
75
82
 
76
83
  override async unregister(module: Module) {
84
+ await this.started('throw')
77
85
  await this.detach(module.address)
78
86
  delete this.registeredModuleMap[module.address]
79
87
  const args = { module, name: module.config.name }
@@ -81,6 +89,10 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
81
89
  return this
82
90
  }
83
91
 
92
+ protected override startHandler() {
93
+ return super.startHandler()
94
+ }
95
+
84
96
  private async attachUsingAddress(address: string, external?: boolean) {
85
97
  const existingModule = (await this.resolve({ address: [address] })).pop()
86
98
  assertEx(!existingModule, `Module [${existingModule?.config.name ?? existingModule?.address}] already attached at address [${address}]`)
@@ -116,17 +128,20 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
116
128
 
117
129
  const notificationList = await getModulesToNotifyAbout(module)
118
130
 
119
- this.privateResolver.addResolver(module.downResolver)
120
-
121
- //give it inside access
131
+ //give it private access
122
132
  module.upResolver.addResolver?.(this.privateResolver)
123
133
 
134
+ //give it public access
135
+ module.upResolver.addResolver?.(this.downResolver)
136
+
124
137
  //give it outside access
125
138
  module.upResolver.addResolver?.(this.upResolver)
126
139
 
127
140
  if (external) {
128
141
  //expose it externally
129
142
  this.downResolver.addResolver(module.downResolver)
143
+ } else {
144
+ this.privateResolver.addResolver(module.downResolver)
130
145
  }
131
146
 
132
147
  const args = { module, name: module.config.name }
@@ -173,8 +188,6 @@ export class MemoryNode<TParams extends MemoryNodeParams = MemoryNodeParams, TEv
173
188
  return
174
189
  }
175
190
 
176
- this.privateResolver.removeResolver(module.downResolver)
177
-
178
191
  //remove inside access
179
192
  module.upResolver?.removeResolver?.(this.privateResolver)
180
193