@xyo-network/bridge-module-resolver 2.84.19 → 2.85.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
1
4
  // src/ModuleResolver.ts
2
5
  import { handleError } from "@xylabs/error";
3
6
  import { compact as compact2 } from "@xylabs/lodash";
@@ -22,13 +25,18 @@ import { ModuleManifestPayloadSchema } from "@xyo-network/manifest-model";
22
25
  import { BaseEmitter } from "@xyo-network/module-abstract";
23
26
  import { CompositeModuleResolver } from "@xyo-network/module-resolver";
24
27
  var ProxyModuleConfigSchema = "network.xyo.module.proxy.config";
25
- var ProxyModule = class extends BaseEmitter {
28
+ var _ProxyModule = class _ProxyModule extends BaseEmitter {
29
+ proxyParams;
30
+ upResolver;
31
+ _busyCount;
26
32
  constructor(proxyParams) {
27
- super({ config: proxyParams.bridge.targetConfig(proxyParams.address) });
33
+ super({
34
+ config: proxyParams.bridge.targetConfig(proxyParams.address)
35
+ });
28
36
  this.proxyParams = proxyParams;
37
+ this.upResolver = new CompositeModuleResolver();
38
+ this._busyCount = 0;
29
39
  }
30
- upResolver = new CompositeModuleResolver();
31
- _busyCount = 0;
32
40
  get address() {
33
41
  return this.proxyParams.address.toLowerCase();
34
42
  }
@@ -51,7 +59,10 @@ var ProxyModule = class extends BaseEmitter {
51
59
  async busy(closure) {
52
60
  if (this._busyCount <= 0) {
53
61
  this._busyCount = 0;
54
- const args = { busy: true, module: this };
62
+ const args = {
63
+ busy: true,
64
+ module: this
65
+ };
55
66
  await this.emit("moduleBusy", args);
56
67
  }
57
68
  this._busyCount++;
@@ -61,7 +72,10 @@ var ProxyModule = class extends BaseEmitter {
61
72
  this._busyCount--;
62
73
  if (this._busyCount <= 0) {
63
74
  this._busyCount = 0;
64
- const args = { busy: false, module: this };
75
+ const args = {
76
+ busy: false,
77
+ module: this
78
+ };
65
79
  await this.emit("moduleBusy", args);
66
80
  }
67
81
  }
@@ -76,12 +90,10 @@ var ProxyModule = class extends BaseEmitter {
76
90
  description.name = this.config.name;
77
91
  }
78
92
  const discover = await this.discover();
79
- description.children = compact(
80
- (discover == null ? void 0 : discover.map((payload) => {
81
- const address = payload.schema === AddressSchema ? payload.address : void 0;
82
- return address == this.address ? void 0 : address;
83
- })) ?? []
84
- );
93
+ description.children = compact((discover == null ? void 0 : discover.map((payload) => {
94
+ const address = payload.schema === AddressSchema ? payload.address : void 0;
95
+ return address == this.address ? void 0 : address;
96
+ })) ?? []);
85
97
  return description;
86
98
  });
87
99
  }
@@ -92,7 +104,13 @@ var ProxyModule = class extends BaseEmitter {
92
104
  }
93
105
  manifest(_depth) {
94
106
  const name = this.config.name ?? "Anonymous";
95
- return { config: { name, ...this.config }, schema: ModuleManifestPayloadSchema };
107
+ return {
108
+ config: {
109
+ name,
110
+ ...this.config
111
+ },
112
+ schema: ModuleManifestPayloadSchema
113
+ };
96
114
  }
97
115
  moduleAddress() {
98
116
  throw new Error("Not Implemented");
@@ -103,7 +121,12 @@ var ProxyModule = class extends BaseEmitter {
103
121
  async query(query, payloads) {
104
122
  return await this.busy(async () => {
105
123
  const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), "Remote Query Failed");
106
- await this.emit("moduleQueried", { module: this, payloads, query, result });
124
+ await this.emit("moduleQueried", {
125
+ module: this,
126
+ payloads,
127
+ query,
128
+ result
129
+ });
107
130
  return result;
108
131
  });
109
132
  }
@@ -116,9 +139,17 @@ var ProxyModule = class extends BaseEmitter {
116
139
  });
117
140
  }
118
141
  };
142
+ __name(_ProxyModule, "ProxyModule");
143
+ var ProxyModule = _ProxyModule;
119
144
 
120
145
  // src/ModuleResolver.ts
121
- var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleResolver2 {
146
+ var _BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleResolver2 {
147
+ bridge;
148
+ wrapperAccount;
149
+ options;
150
+ primed;
151
+ remoteAddresses;
152
+ resolvedModules;
122
153
  // TODO: Allow optional ctor param for supplying address for nested Nodes
123
154
  // protected readonly address?: string,
124
155
  constructor(bridge, wrapperAccount, options) {
@@ -126,10 +157,9 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
126
157
  this.bridge = bridge;
127
158
  this.wrapperAccount = wrapperAccount;
128
159
  this.options = options;
160
+ this.primed = void 0;
161
+ this.resolvedModules = {};
129
162
  }
130
- primed = void 0;
131
- remoteAddresses;
132
- resolvedModules = {};
133
163
  get isModuleResolver() {
134
164
  return true;
135
165
  }
@@ -138,27 +168,23 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
138
168
  }
139
169
  async currentResolvedModules() {
140
170
  const result = {};
141
- await Promise.all(
142
- Object.entries(this.resolvedModules).map(async ([key, value]) => {
143
- result[key] = await value;
144
- })
145
- );
171
+ await Promise.all(Object.entries(this.resolvedModules).map(async ([key, value]) => {
172
+ result[key] = await value;
173
+ }));
146
174
  return result;
147
175
  }
148
176
  async getRemoteAddresses() {
149
177
  this.remoteAddresses = this.remoteAddresses ?? (async () => {
150
178
  var _a;
151
179
  const discover = await this.bridge.targetDiscover(void 0, (_a = this.options) == null ? void 0 : _a.maxDepth);
152
- return compact2(
153
- discover == null ? void 0 : discover.map((payload) => {
154
- if (payload.schema === AddressSchema2) {
155
- const schemaPayload = payload;
156
- return schemaPayload.address;
157
- } else {
158
- return null;
159
- }
160
- })
161
- );
180
+ return compact2(discover == null ? void 0 : discover.map((payload) => {
181
+ if (payload.schema === AddressSchema2) {
182
+ const schemaPayload = payload;
183
+ return schemaPayload.address;
184
+ } else {
185
+ return null;
186
+ }
187
+ }));
162
188
  })();
163
189
  return await this.remoteAddresses;
164
190
  }
@@ -179,7 +205,10 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
179
205
  }
180
206
  async resolve(nameOrAddressOrFilter, options) {
181
207
  const unfiltered = await (async () => {
182
- const mutatedOptions = { ...options, maxDepth: ((options == null ? void 0 : options.maxDepth) ?? _BridgeModuleResolver.defaultMaxDepth) - 1 };
208
+ const mutatedOptions = {
209
+ ...options,
210
+ maxDepth: ((options == null ? void 0 : options.maxDepth) ?? _BridgeModuleResolver.defaultMaxDepth) - 1
211
+ };
183
212
  await this.prime();
184
213
  await this.resolveRemoteModules();
185
214
  if (typeof nameOrAddressOrFilter === "string") {
@@ -213,7 +242,13 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
213
242
  return await cached;
214
243
  this.resolvedModules[targetAddress] = this.resolvedModules[targetAddress] ?? (async (address) => {
215
244
  await this.bridge.targetDiscover(address);
216
- const mod = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } });
245
+ const mod = new ProxyModule({
246
+ address,
247
+ bridge: this.bridge,
248
+ config: {
249
+ schema: ProxyModuleConfigSchema
250
+ }
251
+ });
217
252
  try {
218
253
  if (isArchivistModule(mod)) {
219
254
  return ArchivistWrapper.wrap(mod, this.wrapperAccount);
@@ -260,7 +295,9 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
260
295
  if (filter == null ? void 0 : filter.query) {
261
296
  return await this.resolveRemoteModulesByQuery(filter);
262
297
  }
263
- return await this.resolveRemoteModulesByAddress({ address: await this.getRemoteAddresses() });
298
+ return await this.resolveRemoteModulesByAddress({
299
+ address: await this.getRemoteAddresses()
300
+ });
264
301
  }
265
302
  async resolveRemoteModulesByAddress(filter) {
266
303
  return compact2(await Promise.all(filter.address.map((address) => this.resolveByAddress(address))));
@@ -272,6 +309,8 @@ var BridgeModuleResolver = class _BridgeModuleResolver extends CompositeModuleRe
272
309
  return compact2((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery(query)))).flat());
273
310
  }
274
311
  };
312
+ __name(_BridgeModuleResolver, "BridgeModuleResolver");
313
+ var BridgeModuleResolver = _BridgeModuleResolver;
275
314
  export {
276
315
  BridgeModuleResolver,
277
316
  ProxyModule,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ModuleResolver.ts","../../src/ProxyModule.ts"],"sourcesContent":["import { handleError } from '@xylabs/error'\nimport { compact } from '@xylabs/lodash'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { isArchivistModule } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BridgeModule } from '@xyo-network/bridge-model'\nimport { DivinerWrapper } from '@xyo-network/diviner'\nimport { isDivinerModule } from '@xyo-network/diviner-model'\nimport {\n AddressModuleFilter,\n Module,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleInstance,\n ModuleResolver,\n NameModuleFilter,\n QueryModuleFilter,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport { ModuleWrapper } from '@xyo-network/module-wrapper'\nimport { isNodeModule } from '@xyo-network/node-model'\nimport { NodeWrapper } from '@xyo-network/node-wrapper'\nimport { isSentinelModule, SentinelWrapper } from '@xyo-network/sentinel'\nimport { isWitnessModule } from '@xyo-network/witness-model'\nimport { WitnessWrapper } from '@xyo-network/witness-wrapper'\n\nimport { ProxyModule, ProxyModuleConfigSchema, ProxyModuleParams } from './ProxyModule'\n\nexport class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> extends CompositeModuleResolver implements ModuleResolver {\n private primed: Promise<boolean> | undefined = undefined\n private remoteAddresses?: Promise<string[]>\n private resolvedModules: Record<string, Promise<ModuleInstance>> = {}\n\n // TODO: Allow optional ctor param for supplying address for nested Nodes\n // protected readonly address?: string,\n constructor(\n protected readonly bridge: BridgeModule,\n protected wrapperAccount: AccountInstance,\n protected options?: ModuleFilterOptions<T>,\n ) {\n super()\n }\n\n override get isModuleResolver(): boolean {\n return true\n }\n\n override add(module: Module): this\n override add(module: Module[]): this\n override add(_module: Module | Module[]): this {\n throw new Error('Method not implemented.')\n }\n\n async currentResolvedModules<T extends ModuleInstance = ModuleInstance>(): Promise<Record<string, T>> {\n const result: Record<string, T> = {}\n await Promise.all(\n Object.entries(this.resolvedModules).map(async ([key, value]) => {\n result[key] = (await value) as T\n }),\n )\n\n return result\n }\n\n async getRemoteAddresses() {\n this.remoteAddresses =\n this.remoteAddresses ??\n (async () => {\n const discover = await this.bridge.targetDiscover(undefined, this.options?.maxDepth)\n return compact(\n discover?.map((payload) => {\n if (payload.schema === AddressSchema) {\n const schemaPayload = payload as AddressPayload\n return schemaPayload.address\n } else {\n return null\n }\n }),\n )\n })()\n return await this.remoteAddresses\n }\n\n prime() {\n this.primed =\n this.primed ??\n (async () => {\n await this.resolveRemoteModules()\n return true\n })()\n return this.primed\n }\n\n override remove(_address: string | string[]): this {\n throw new Error('Method not implemented.')\n }\n\n reset() {\n this.primed = undefined\n this.remoteAddresses = undefined\n this.resolvedModules = {}\n }\n\n override async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n nameOrAddressOrFilter?: ModuleFilter<T> | string,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const unfiltered = await (async () => {\n const mutatedOptions = { ...options, maxDepth: (options?.maxDepth ?? BridgeModuleResolver.defaultMaxDepth) - 1 }\n await this.prime()\n await this.resolveRemoteModules()\n if (typeof nameOrAddressOrFilter === 'string') {\n if (mutatedOptions.maxDepth < 0) {\n return\n }\n const result: T | undefined = (await this.resolveByAddress<T>(nameOrAddressOrFilter)) ?? (await this.resolveByName<T>(nameOrAddressOrFilter))\n return result\n } else {\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n const result: T[] = await this.resolveRemoteModules<T>(nameOrAddressOrFilter)\n return result\n }\n })()\n\n const identity = options?.identity\n if (identity) {\n return Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module)) : identity(unfiltered) ? unfiltered : undefined\n } else {\n return unfiltered\n }\n }\n\n private async resolveByAddress<T extends ModuleInstance = ModuleInstance>(targetAddress: string): Promise<T | undefined> {\n const remoteAddresses = await this.getRemoteAddresses()\n\n //check if it is even there\n if (!remoteAddresses.includes(targetAddress)) {\n //this.logger?.log(`Not in RA: ${targetAddress}`)\n return undefined\n }\n\n const cached = this.resolvedModules[targetAddress]\n if (cached) return (await cached) as T\n\n this.resolvedModules[targetAddress] =\n this.resolvedModules[targetAddress] ??\n (async (address: string) => {\n //discover it to set the config in the bridge\n await this.bridge.targetDiscover(address)\n\n const mod: Module = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } } as ProxyModuleParams)\n\n try {\n if (isArchivistModule(mod)) {\n return ArchivistWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isDivinerModule(mod)) {\n return DivinerWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isWitnessModule(mod)) {\n return WitnessWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isNodeModule(mod)) {\n return NodeWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isSentinelModule(mod)) {\n return SentinelWrapper.wrap(mod, this.wrapperAccount)\n }\n console.warn(`BridgeModuleResolver: Unknown Module Type: [${targetAddress}]`)\n return ModuleWrapper.wrap(mod, this.wrapperAccount)\n } catch (ex) {\n handleError(ex, (error) => {\n console.error(`BridgeModuleResolver.resolveByAddress: ${error.message} [${targetAddress}]`)\n })\n }\n })(targetAddress)\n\n return (await this.resolvedModules[targetAddress]) as T\n }\n\n private async resolveByName<T extends ModuleInstance = ModuleInstance>(name: string): Promise<T | undefined> {\n const modules = await this.currentResolvedModules()\n return Object.values(modules)\n .filter((module) => module.config.name === name)\n .pop() as T\n }\n\n private async resolveByQuery<T extends ModuleInstance = ModuleInstance>(queries: string[]): Promise<T[]> {\n return Object.values(await this.currentResolvedModules()).filter((module) => {\n //filter out the requested queries\n const found = module.queries.filter((query) => queries.find((q) => q === query))\n\n //did we find all the requested queries?\n return queries.length === found.length\n }) as T[]\n }\n\n private async resolveRemoteModules<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promise<T[]> {\n if ((filter as AddressModuleFilter)?.address) {\n return await this.resolveRemoteModulesByAddress<T>(filter as AddressModuleFilter)\n }\n\n if ((filter as NameModuleFilter)?.name) {\n return await this.resolveRemoteModulesByName<T>(filter as NameModuleFilter)\n }\n\n if ((filter as QueryModuleFilter)?.query) {\n return await this.resolveRemoteModulesByQuery<T>(filter as QueryModuleFilter)\n }\n\n //get all of them\n return await this.resolveRemoteModulesByAddress<T>({ address: await this.getRemoteAddresses() })\n }\n\n private async resolveRemoteModulesByAddress<T extends ModuleInstance = ModuleInstance>(filter: AddressModuleFilter): Promise<T[]> {\n return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress<T>(address))))\n }\n\n private async resolveRemoteModulesByName<T extends ModuleInstance = ModuleInstance>(filter: NameModuleFilter): Promise<T[]> {\n return compact(await Promise.all(filter.name.map(async (name) => await this.resolveByName<T>(name))))\n }\n\n private async resolveRemoteModulesByQuery<T extends ModuleInstance = ModuleInstance>(filter: QueryModuleFilter): Promise<T[]> {\n return compact((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery<T>(query)))).flat())\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BridgeModule } from '@xyo-network/bridge-model'\nimport { ModuleManifestPayload, ModuleManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { BaseEmitter } from '@xyo-network/module-abstract'\nimport {\n AddressPreviousHashPayload,\n ModuleBusyEventArgs,\n ModuleConfig,\n ModuleDescription,\n ModuleEventData,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'\nexport const ProxyModuleConfigSchema: ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'\n\nexport type TProxyModuleConfig = ModuleConfig<{ schema: ProxyModuleConfigSchema }>\n\nexport type ProxyModuleParams = ModuleParams<\n TProxyModuleConfig,\n {\n address: string\n bridge: BridgeModule\n }\n>\n\nexport class ProxyModule extends BaseEmitter<ModuleParams, ModuleEventData> implements ModuleInstance<ModuleParams, ModuleEventData> {\n readonly upResolver = new CompositeModuleResolver()\n\n private _busyCount = 0\n\n constructor(public proxyParams: ProxyModuleParams) {\n super({ config: proxyParams.bridge.targetConfig(proxyParams.address) })\n }\n\n get address() {\n return this.proxyParams.address.toLowerCase()\n }\n\n get bridge() {\n return this.proxyParams.bridge\n }\n\n get config(): ModuleConfig {\n const config = this.bridge.targetConfig(this.address)\n return config\n }\n\n get downResolver() {\n return assertEx(this.bridge.targetDownResolver(this.address), 'Unable to get resolver')\n }\n\n get queries() {\n return this.bridge.targetQueries(this.address)\n }\n\n addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n throw new Error('Not Implemented')\n }\n\n async busy<R>(closure: () => Promise<R>) {\n if (this._busyCount <= 0) {\n this._busyCount = 0\n const args: ModuleBusyEventArgs = { busy: true, module: this }\n await this.emit('moduleBusy', args)\n }\n this._busyCount++\n try {\n return await closure()\n } finally {\n this._busyCount--\n if (this._busyCount <= 0) {\n this._busyCount = 0\n const args: ModuleBusyEventArgs = { busy: false, module: this }\n await this.emit('moduleBusy', args)\n }\n }\n }\n\n async describe(): Promise<ModuleDescription> {\n return await this.busy(async () => {\n const description: ModuleDescription = {\n address: this.address,\n queries: this.queries,\n }\n if (this.config.name) {\n description.name = this.config.name\n }\n\n const discover = await this.discover()\n\n description.children = compact(\n discover?.map((payload) => {\n const address = payload.schema === AddressSchema ? (payload as AddressPayload).address : undefined\n return address == this.address ? undefined : address\n }) ?? [],\n )\n\n return description\n })\n }\n\n async discover(): Promise<Payload[]> {\n return await this.busy(async () => {\n return await this.bridge.targetDiscover()\n })\n }\n\n manifest(_depth?: number): Promisable<ModuleManifestPayload> {\n const name = this.config.name ?? 'Anonymous'\n return { config: { name, ...this.config }, schema: ModuleManifestPayloadSchema }\n }\n\n moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n throw new Error('Not Implemented')\n }\n\n previousHash(): Promise<string | undefined> {\n throw new Error('Not Implemented')\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.busy(async () => {\n const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed')\n await this.emit('moduleQueried', { module: this, payloads, query, result })\n return result\n })\n }\n\n async queryable(query: QueryBoundWitness, payloads?: Payload[], queryConfig?: ModuleConfig): Promise<boolean> {\n return await this.bridge.targetQueryable(this.address, query, payloads, queryConfig)\n }\n\n /* Resolves a filter from the perspective of the module, including through the parent/gateway module */\n resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n resolve(nameOrAddress: string, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n async resolve(\n nameOrAddressOrFilter?: ModuleFilter | string,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n return await this.busy(async () => {\n return await (typeof nameOrAddressOrFilter === 'string'\n ? this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options)\n : this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options))\n })\n }\n}\n"],"mappings":"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","names":["compact","AddressSchema","CompositeModuleResolver","CompositeModuleResolver","compact","AddressSchema"]}
1
+ {"version":3,"sources":["../../src/ModuleResolver.ts","../../src/ProxyModule.ts"],"sourcesContent":["import { handleError } from '@xylabs/error'\nimport { compact } from '@xylabs/lodash'\nimport { AccountInstance } from '@xyo-network/account-model'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { isArchivistModule } from '@xyo-network/archivist-model'\nimport { ArchivistWrapper } from '@xyo-network/archivist-wrapper'\nimport { BridgeModule } from '@xyo-network/bridge-model'\nimport { DivinerWrapper } from '@xyo-network/diviner'\nimport { isDivinerModule } from '@xyo-network/diviner-model'\nimport {\n AddressModuleFilter,\n Module,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleInstance,\n ModuleResolver,\n NameModuleFilter,\n QueryModuleFilter,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport { ModuleWrapper } from '@xyo-network/module-wrapper'\nimport { isNodeModule } from '@xyo-network/node-model'\nimport { NodeWrapper } from '@xyo-network/node-wrapper'\nimport { isSentinelModule, SentinelWrapper } from '@xyo-network/sentinel'\nimport { isWitnessModule } from '@xyo-network/witness-model'\nimport { WitnessWrapper } from '@xyo-network/witness-wrapper'\n\nimport { ProxyModule, ProxyModuleConfigSchema, ProxyModuleParams } from './ProxyModule'\n\nexport class BridgeModuleResolver<T extends ModuleInstance = ModuleInstance> extends CompositeModuleResolver implements ModuleResolver {\n private primed: Promise<boolean> | undefined = undefined\n private remoteAddresses?: Promise<string[]>\n private resolvedModules: Record<string, Promise<ModuleInstance>> = {}\n\n // TODO: Allow optional ctor param for supplying address for nested Nodes\n // protected readonly address?: string,\n constructor(\n protected readonly bridge: BridgeModule,\n protected wrapperAccount: AccountInstance,\n protected options?: ModuleFilterOptions<T>,\n ) {\n super()\n }\n\n override get isModuleResolver(): boolean {\n return true\n }\n\n override add(module: Module): this\n override add(module: Module[]): this\n override add(_module: Module | Module[]): this {\n throw new Error('Method not implemented.')\n }\n\n async currentResolvedModules<T extends ModuleInstance = ModuleInstance>(): Promise<Record<string, T>> {\n const result: Record<string, T> = {}\n await Promise.all(\n Object.entries(this.resolvedModules).map(async ([key, value]) => {\n result[key] = (await value) as T\n }),\n )\n\n return result\n }\n\n async getRemoteAddresses() {\n this.remoteAddresses =\n this.remoteAddresses ??\n (async () => {\n const discover = await this.bridge.targetDiscover(undefined, this.options?.maxDepth)\n return compact(\n discover?.map((payload) => {\n if (payload.schema === AddressSchema) {\n const schemaPayload = payload as AddressPayload\n return schemaPayload.address\n } else {\n return null\n }\n }),\n )\n })()\n return await this.remoteAddresses\n }\n\n prime() {\n this.primed =\n this.primed ??\n (async () => {\n await this.resolveRemoteModules()\n return true\n })()\n return this.primed\n }\n\n override remove(_address: string | string[]): this {\n throw new Error('Method not implemented.')\n }\n\n reset() {\n this.primed = undefined\n this.remoteAddresses = undefined\n this.resolvedModules = {}\n }\n\n override async resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter<T>, options?: ModuleFilterOptions<T>): Promise<T[]>\n override async resolve<T extends ModuleInstance = ModuleInstance>(nameOrAddress: string, options?: ModuleFilterOptions<T>): Promise<T | undefined>\n override async resolve<T extends ModuleInstance = ModuleInstance>(\n nameOrAddressOrFilter?: ModuleFilter<T> | string,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const unfiltered = await (async () => {\n const mutatedOptions = { ...options, maxDepth: (options?.maxDepth ?? BridgeModuleResolver.defaultMaxDepth) - 1 }\n await this.prime()\n await this.resolveRemoteModules()\n if (typeof nameOrAddressOrFilter === 'string') {\n if (mutatedOptions.maxDepth < 0) {\n return\n }\n const result: T | undefined = (await this.resolveByAddress<T>(nameOrAddressOrFilter)) ?? (await this.resolveByName<T>(nameOrAddressOrFilter))\n return result\n } else {\n if (mutatedOptions.maxDepth < 0) {\n return []\n }\n const result: T[] = await this.resolveRemoteModules<T>(nameOrAddressOrFilter)\n return result\n }\n })()\n\n const identity = options?.identity\n if (identity) {\n return Array.isArray(unfiltered) ? unfiltered?.filter((module) => identity(module)) : identity(unfiltered) ? unfiltered : undefined\n } else {\n return unfiltered\n }\n }\n\n private async resolveByAddress<T extends ModuleInstance = ModuleInstance>(targetAddress: string): Promise<T | undefined> {\n const remoteAddresses = await this.getRemoteAddresses()\n\n //check if it is even there\n if (!remoteAddresses.includes(targetAddress)) {\n //this.logger?.log(`Not in RA: ${targetAddress}`)\n return undefined\n }\n\n const cached = this.resolvedModules[targetAddress]\n if (cached) return (await cached) as T\n\n this.resolvedModules[targetAddress] =\n this.resolvedModules[targetAddress] ??\n (async (address: string) => {\n //discover it to set the config in the bridge\n await this.bridge.targetDiscover(address)\n\n const mod: Module = new ProxyModule({ address, bridge: this.bridge, config: { schema: ProxyModuleConfigSchema } } as ProxyModuleParams)\n\n try {\n if (isArchivistModule(mod)) {\n return ArchivistWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isDivinerModule(mod)) {\n return DivinerWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isWitnessModule(mod)) {\n return WitnessWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isNodeModule(mod)) {\n return NodeWrapper.wrap(mod, this.wrapperAccount)\n }\n\n if (isSentinelModule(mod)) {\n return SentinelWrapper.wrap(mod, this.wrapperAccount)\n }\n console.warn(`BridgeModuleResolver: Unknown Module Type: [${targetAddress}]`)\n return ModuleWrapper.wrap(mod, this.wrapperAccount)\n } catch (ex) {\n handleError(ex, (error) => {\n console.error(`BridgeModuleResolver.resolveByAddress: ${error.message} [${targetAddress}]`)\n })\n }\n })(targetAddress)\n\n return (await this.resolvedModules[targetAddress]) as T\n }\n\n private async resolveByName<T extends ModuleInstance = ModuleInstance>(name: string): Promise<T | undefined> {\n const modules = await this.currentResolvedModules()\n return Object.values(modules)\n .filter((module) => module.config.name === name)\n .pop() as T\n }\n\n private async resolveByQuery<T extends ModuleInstance = ModuleInstance>(queries: string[]): Promise<T[]> {\n return Object.values(await this.currentResolvedModules()).filter((module) => {\n //filter out the requested queries\n const found = module.queries.filter((query) => queries.find((q) => q === query))\n\n //did we find all the requested queries?\n return queries.length === found.length\n }) as T[]\n }\n\n private async resolveRemoteModules<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter): Promise<T[]> {\n if ((filter as AddressModuleFilter)?.address) {\n return await this.resolveRemoteModulesByAddress<T>(filter as AddressModuleFilter)\n }\n\n if ((filter as NameModuleFilter)?.name) {\n return await this.resolveRemoteModulesByName<T>(filter as NameModuleFilter)\n }\n\n if ((filter as QueryModuleFilter)?.query) {\n return await this.resolveRemoteModulesByQuery<T>(filter as QueryModuleFilter)\n }\n\n //get all of them\n return await this.resolveRemoteModulesByAddress<T>({ address: await this.getRemoteAddresses() })\n }\n\n private async resolveRemoteModulesByAddress<T extends ModuleInstance = ModuleInstance>(filter: AddressModuleFilter): Promise<T[]> {\n return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress<T>(address))))\n }\n\n private async resolveRemoteModulesByName<T extends ModuleInstance = ModuleInstance>(filter: NameModuleFilter): Promise<T[]> {\n return compact(await Promise.all(filter.name.map(async (name) => await this.resolveByName<T>(name))))\n }\n\n private async resolveRemoteModulesByQuery<T extends ModuleInstance = ModuleInstance>(filter: QueryModuleFilter): Promise<T[]> {\n return compact((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery<T>(query)))).flat())\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { compact } from '@xylabs/lodash'\nimport { Promisable } from '@xylabs/promise'\nimport { AddressPayload, AddressSchema } from '@xyo-network/address-payload-plugin'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { BridgeModule } from '@xyo-network/bridge-model'\nimport { ModuleManifestPayload, ModuleManifestPayloadSchema } from '@xyo-network/manifest-model'\nimport { BaseEmitter } from '@xyo-network/module-abstract'\nimport {\n AddressPreviousHashPayload,\n ModuleBusyEventArgs,\n ModuleConfig,\n ModuleDescription,\n ModuleEventData,\n ModuleFilter,\n ModuleFilterOptions,\n ModuleInstance,\n ModuleParams,\n ModuleQueryResult,\n} from '@xyo-network/module-model'\nimport { CompositeModuleResolver } from '@xyo-network/module-resolver'\nimport { Payload } from '@xyo-network/payload-model'\n\nexport type ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'\nexport const ProxyModuleConfigSchema: ProxyModuleConfigSchema = 'network.xyo.module.proxy.config'\n\nexport type TProxyModuleConfig = ModuleConfig<{ schema: ProxyModuleConfigSchema }>\n\nexport type ProxyModuleParams = ModuleParams<\n TProxyModuleConfig,\n {\n address: string\n bridge: BridgeModule\n }\n>\n\nexport class ProxyModule extends BaseEmitter<ModuleParams, ModuleEventData> implements ModuleInstance<ModuleParams, ModuleEventData> {\n readonly upResolver = new CompositeModuleResolver()\n\n private _busyCount = 0\n\n constructor(public proxyParams: ProxyModuleParams) {\n super({ config: proxyParams.bridge.targetConfig(proxyParams.address) })\n }\n\n get address() {\n return this.proxyParams.address.toLowerCase()\n }\n\n get bridge() {\n return this.proxyParams.bridge\n }\n\n get config(): ModuleConfig {\n const config = this.bridge.targetConfig(this.address)\n return config\n }\n\n get downResolver() {\n return assertEx(this.bridge.targetDownResolver(this.address), 'Unable to get resolver')\n }\n\n get queries() {\n return this.bridge.targetQueries(this.address)\n }\n\n addressPreviousHash(): Promise<AddressPreviousHashPayload> {\n throw new Error('Not Implemented')\n }\n\n async busy<R>(closure: () => Promise<R>) {\n if (this._busyCount <= 0) {\n this._busyCount = 0\n const args: ModuleBusyEventArgs = { busy: true, module: this }\n await this.emit('moduleBusy', args)\n }\n this._busyCount++\n try {\n return await closure()\n } finally {\n this._busyCount--\n if (this._busyCount <= 0) {\n this._busyCount = 0\n const args: ModuleBusyEventArgs = { busy: false, module: this }\n await this.emit('moduleBusy', args)\n }\n }\n }\n\n async describe(): Promise<ModuleDescription> {\n return await this.busy(async () => {\n const description: ModuleDescription = {\n address: this.address,\n queries: this.queries,\n }\n if (this.config.name) {\n description.name = this.config.name\n }\n\n const discover = await this.discover()\n\n description.children = compact(\n discover?.map((payload) => {\n const address = payload.schema === AddressSchema ? (payload as AddressPayload).address : undefined\n return address == this.address ? undefined : address\n }) ?? [],\n )\n\n return description\n })\n }\n\n async discover(): Promise<Payload[]> {\n return await this.busy(async () => {\n return await this.bridge.targetDiscover()\n })\n }\n\n manifest(_depth?: number): Promisable<ModuleManifestPayload> {\n const name = this.config.name ?? 'Anonymous'\n return { config: { name, ...this.config }, schema: ModuleManifestPayloadSchema }\n }\n\n moduleAddress(): Promise<AddressPreviousHashPayload[]> {\n throw new Error('Not Implemented')\n }\n\n previousHash(): Promise<string | undefined> {\n throw new Error('Not Implemented')\n }\n\n async query<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult> {\n return await this.busy(async () => {\n const result = assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed')\n await this.emit('moduleQueried', { module: this, payloads, query, result })\n return result\n })\n }\n\n async queryable(query: QueryBoundWitness, payloads?: Payload[], queryConfig?: ModuleConfig): Promise<boolean> {\n return await this.bridge.targetQueryable(this.address, query, payloads, queryConfig)\n }\n\n /* Resolves a filter from the perspective of the module, including through the parent/gateway module */\n resolve(filter?: ModuleFilter, options?: ModuleFilterOptions): Promise<ModuleInstance[]>\n resolve(nameOrAddress: string, options?: ModuleFilterOptions): Promise<ModuleInstance | undefined>\n async resolve(\n nameOrAddressOrFilter?: ModuleFilter | string,\n options?: ModuleFilterOptions,\n ): Promise<ModuleInstance | ModuleInstance[] | undefined> {\n return await this.busy(async () => {\n return await (typeof nameOrAddressOrFilter === 'string'\n ? this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options)\n : this.bridge.targetResolve(this.address, nameOrAddressOrFilter, options))\n })\n }\n}\n"],"mappings":"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","names":["handleError","compact","AddressSchema","isArchivistModule","ArchivistWrapper","DivinerWrapper","isDivinerModule","CompositeModuleResolver","ModuleWrapper","isNodeModule","NodeWrapper","isSentinelModule","SentinelWrapper","isWitnessModule","WitnessWrapper","assertEx","compact","AddressSchema","ModuleManifestPayloadSchema","BaseEmitter","CompositeModuleResolver","ProxyModuleConfigSchema","ProxyModule","BaseEmitter","upResolver","_busyCount","constructor","proxyParams","config","bridge","targetConfig","address","CompositeModuleResolver","toLowerCase","downResolver","assertEx","targetDownResolver","queries","targetQueries","addressPreviousHash","Error","busy","closure","args","module","emit","describe","description","name","discover","children","compact","map","payload","schema","AddressSchema","undefined","targetDiscover","manifest","_depth","ModuleManifestPayloadSchema","moduleAddress","previousHash","query","payloads","result","targetQuery","queryable","queryConfig","targetQueryable","resolve","nameOrAddressOrFilter","options","targetResolve","BridgeModuleResolver","CompositeModuleResolver","primed","remoteAddresses","resolvedModules","constructor","bridge","wrapperAccount","options","undefined","isModuleResolver","add","_module","Error","currentResolvedModules","result","Promise","all","Object","entries","map","key","value","getRemoteAddresses","discover","targetDiscover","maxDepth","compact","payload","schema","AddressSchema","schemaPayload","address","prime","resolveRemoteModules","remove","_address","reset","resolve","nameOrAddressOrFilter","unfiltered","mutatedOptions","defaultMaxDepth","resolveByAddress","resolveByName","identity","Array","isArray","filter","module","targetAddress","includes","cached","mod","ProxyModule","config","ProxyModuleConfigSchema","isArchivistModule","ArchivistWrapper","wrap","isDivinerModule","DivinerWrapper","isWitnessModule","WitnessWrapper","isNodeModule","NodeWrapper","isSentinelModule","SentinelWrapper","console","warn","ModuleWrapper","ex","handleError","error","message","name","modules","values","pop","resolveByQuery","queries","found","query","find","q","length","resolveRemoteModulesByAddress","resolveRemoteModulesByName","resolveRemoteModulesByQuery","flat"]}
package/package.json CHANGED
@@ -14,25 +14,25 @@
14
14
  "@xylabs/error": "^2.13.20",
15
15
  "@xylabs/lodash": "^2.13.20",
16
16
  "@xylabs/promise": "^2.13.20",
17
- "@xyo-network/account-model": "~2.84.19",
18
- "@xyo-network/address-payload-plugin": "~2.84.19",
19
- "@xyo-network/archivist-model": "~2.84.19",
20
- "@xyo-network/archivist-wrapper": "~2.84.19",
21
- "@xyo-network/boundwitness-model": "~2.84.19",
22
- "@xyo-network/bridge-model": "~2.84.19",
23
- "@xyo-network/diviner": "~2.84.19",
24
- "@xyo-network/diviner-model": "~2.84.19",
25
- "@xyo-network/manifest-model": "~2.84.19",
26
- "@xyo-network/module-abstract": "~2.84.19",
27
- "@xyo-network/module-model": "~2.84.19",
28
- "@xyo-network/module-resolver": "~2.84.19",
29
- "@xyo-network/module-wrapper": "~2.84.19",
30
- "@xyo-network/node-model": "~2.84.19",
31
- "@xyo-network/node-wrapper": "~2.84.19",
32
- "@xyo-network/payload-model": "~2.84.19",
33
- "@xyo-network/sentinel": "~2.84.19",
34
- "@xyo-network/witness-model": "~2.84.19",
35
- "@xyo-network/witness-wrapper": "~2.84.19"
17
+ "@xyo-network/account-model": "~2.85.1",
18
+ "@xyo-network/address-payload-plugin": "~2.85.1",
19
+ "@xyo-network/archivist-model": "~2.85.1",
20
+ "@xyo-network/archivist-wrapper": "~2.85.1",
21
+ "@xyo-network/boundwitness-model": "~2.85.1",
22
+ "@xyo-network/bridge-model": "~2.85.1",
23
+ "@xyo-network/diviner": "~2.85.1",
24
+ "@xyo-network/diviner-model": "~2.85.1",
25
+ "@xyo-network/manifest-model": "~2.85.1",
26
+ "@xyo-network/module-abstract": "~2.85.1",
27
+ "@xyo-network/module-model": "~2.85.1",
28
+ "@xyo-network/module-resolver": "~2.85.1",
29
+ "@xyo-network/module-wrapper": "~2.85.1",
30
+ "@xyo-network/node-model": "~2.85.1",
31
+ "@xyo-network/node-wrapper": "~2.85.1",
32
+ "@xyo-network/payload-model": "~2.85.1",
33
+ "@xyo-network/sentinel": "~2.85.1",
34
+ "@xyo-network/witness-model": "~2.85.1",
35
+ "@xyo-network/witness-wrapper": "~2.85.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@xylabs/ts-scripts-yarn3": "^3.2.25",
@@ -78,6 +78,6 @@
78
78
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
79
79
  },
80
80
  "sideEffects": false,
81
- "version": "2.84.19",
81
+ "version": "2.85.1",
82
82
  "type": "module"
83
83
  }