@xyo-network/bridge-pub-sub 2.91.3 → 2.92.0-rc.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 (107) hide show
  1. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.cts +3 -0
  2. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.cts.map +1 -1
  3. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.mts +3 -0
  4. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.mts.map +1 -1
  5. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.ts +3 -0
  6. package/dist/browser/AsyncQueryBus/AsyncQueryBusBase.d.ts.map +1 -1
  7. package/dist/browser/AsyncQueryBus/AsyncQueryBusHost.d.cts +1 -1
  8. package/dist/browser/AsyncQueryBus/AsyncQueryBusHost.d.mts +1 -1
  9. package/dist/browser/AsyncQueryBus/AsyncQueryBusHost.d.ts +1 -1
  10. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.cts +1 -1
  11. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.cts.map +1 -1
  12. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.mts +1 -1
  13. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.mts.map +1 -1
  14. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.ts +1 -1
  15. package/dist/browser/AsyncQueryBus/ModuleHost/ModuleHost.d.ts.map +1 -1
  16. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +1 -1
  17. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  18. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +1 -1
  19. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  20. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +1 -1
  21. package/dist/browser/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  22. package/dist/browser/PubSubBridge.d.cts +8 -18
  23. package/dist/browser/PubSubBridge.d.cts.map +1 -1
  24. package/dist/browser/PubSubBridge.d.mts +8 -18
  25. package/dist/browser/PubSubBridge.d.mts.map +1 -1
  26. package/dist/browser/PubSubBridge.d.ts +8 -18
  27. package/dist/browser/PubSubBridge.d.ts.map +1 -1
  28. package/dist/browser/index.cjs +81 -255
  29. package/dist/browser/index.cjs.map +1 -1
  30. package/dist/browser/index.d.cts +1 -1
  31. package/dist/browser/index.d.cts.map +1 -1
  32. package/dist/browser/index.d.mts +1 -1
  33. package/dist/browser/index.d.mts.map +1 -1
  34. package/dist/browser/index.d.ts +1 -1
  35. package/dist/browser/index.d.ts.map +1 -1
  36. package/dist/browser/index.js +76 -250
  37. package/dist/browser/index.js.map +1 -1
  38. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.cts +3 -0
  39. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.cts.map +1 -1
  40. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.mts +3 -0
  41. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.mts.map +1 -1
  42. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.ts +3 -0
  43. package/dist/node/AsyncQueryBus/AsyncQueryBusBase.d.ts.map +1 -1
  44. package/dist/node/AsyncQueryBus/AsyncQueryBusHost.d.cts +1 -1
  45. package/dist/node/AsyncQueryBus/AsyncQueryBusHost.d.mts +1 -1
  46. package/dist/node/AsyncQueryBus/AsyncQueryBusHost.d.ts +1 -1
  47. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.cts +1 -1
  48. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.cts.map +1 -1
  49. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.mts +1 -1
  50. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.mts.map +1 -1
  51. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.ts +1 -1
  52. package/dist/node/AsyncQueryBus/ModuleHost/ModuleHost.d.ts.map +1 -1
  53. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts +1 -1
  54. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.cts.map +1 -1
  55. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts +1 -1
  56. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.mts.map +1 -1
  57. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts +1 -1
  58. package/dist/node/AsyncQueryBus/ModuleProxy/ModuleProxy.d.ts.map +1 -1
  59. package/dist/node/PubSubBridge.d.cts +8 -18
  60. package/dist/node/PubSubBridge.d.cts.map +1 -1
  61. package/dist/node/PubSubBridge.d.mts +8 -18
  62. package/dist/node/PubSubBridge.d.mts.map +1 -1
  63. package/dist/node/PubSubBridge.d.ts +8 -18
  64. package/dist/node/PubSubBridge.d.ts.map +1 -1
  65. package/dist/node/index.cjs +83 -256
  66. package/dist/node/index.cjs.map +1 -1
  67. package/dist/node/index.d.cts +1 -1
  68. package/dist/node/index.d.cts.map +1 -1
  69. package/dist/node/index.d.mts +1 -1
  70. package/dist/node/index.d.mts.map +1 -1
  71. package/dist/node/index.d.ts +1 -1
  72. package/dist/node/index.d.ts.map +1 -1
  73. package/dist/node/index.js +77 -250
  74. package/dist/node/index.js.map +1 -1
  75. package/package.json +26 -31
  76. package/src/AsyncQueryBus/AsyncQueryBusBase.ts +11 -0
  77. package/src/AsyncQueryBus/AsyncQueryBusHost.ts +19 -19
  78. package/src/AsyncQueryBus/ModuleHost/ModuleHost.ts +1 -1
  79. package/src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts +1 -1
  80. package/src/PubSubBridge.ts +32 -89
  81. package/src/index.ts +1 -1
  82. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.cts +0 -90
  83. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.cts.map +0 -1
  84. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.mts +0 -90
  85. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.mts.map +0 -1
  86. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.ts +0 -90
  87. package/dist/browser/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +0 -1
  88. package/dist/browser/AbstractModuleProxy/index.d.cts +0 -2
  89. package/dist/browser/AbstractModuleProxy/index.d.cts.map +0 -1
  90. package/dist/browser/AbstractModuleProxy/index.d.mts +0 -2
  91. package/dist/browser/AbstractModuleProxy/index.d.mts.map +0 -1
  92. package/dist/browser/AbstractModuleProxy/index.d.ts +0 -2
  93. package/dist/browser/AbstractModuleProxy/index.d.ts.map +0 -1
  94. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.cts +0 -90
  95. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.cts.map +0 -1
  96. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.mts +0 -90
  97. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.mts.map +0 -1
  98. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.ts +0 -90
  99. package/dist/node/AbstractModuleProxy/AbstractModuleProxy.d.ts.map +0 -1
  100. package/dist/node/AbstractModuleProxy/index.d.cts +0 -2
  101. package/dist/node/AbstractModuleProxy/index.d.cts.map +0 -1
  102. package/dist/node/AbstractModuleProxy/index.d.mts +0 -2
  103. package/dist/node/AbstractModuleProxy/index.d.mts.map +0 -1
  104. package/dist/node/AbstractModuleProxy/index.d.ts +0 -2
  105. package/dist/node/AbstractModuleProxy/index.d.ts.map +0 -1
  106. package/src/AbstractModuleProxy/AbstractModuleProxy.ts +0 -239
  107. package/src/AbstractModuleProxy/index.ts +0 -1
@@ -1,162 +1,11 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
- // src/AbstractModuleProxy/AbstractModuleProxy.ts
5
- import { assertEx } from "@xylabs/assert";
6
- import { compact } from "@xylabs/lodash";
4
+ // src/AbstractModuleHost/AbstractModuleHost.ts
7
5
  import { Base } from "@xylabs/object";
8
- import { PromiseEx } from "@xylabs/promise";
9
- import { QueryBoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
10
- import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
11
- import { AddressPreviousHashSchema, ModuleAddressQuerySchema, ModuleConfigSchema, ModuleDescribeQuerySchema, ModuleDiscoverQuerySchema, ModuleManifestQuerySchema } from "@xyo-network/module-model";
12
- import { ModuleErrorSchema } from "@xyo-network/payload-model";
13
- var AbstractModuleProxy = class extends Base {
6
+ var AbstractModuleHost = class extends Base {
14
7
  static {
15
- __name(this, "AbstractModuleProxy");
16
- }
17
- static requiredQueries = [
18
- ModuleDiscoverQuerySchema
19
- ];
20
- eventData = {};
21
- proxyParams;
22
- constructor(params) {
23
- super({
24
- config: {
25
- schema: ModuleConfigSchema
26
- }
27
- });
28
- this.proxyParams = params;
29
- }
30
- get account() {
31
- return this.proxyParams.account;
32
- }
33
- get address() {
34
- return this.proxyParams.moduleAddress;
35
- }
36
- get config() {
37
- return this.params.config;
38
- }
39
- get downResolver() {
40
- throw new Error("Unsupported");
41
- }
42
- get id() {
43
- return this.proxyParams.moduleAddress;
44
- }
45
- get queries() {
46
- return this.proxyParams.queries;
47
- }
48
- get upResolver() {
49
- throw new Error("Unsupported");
50
- }
51
- static hasRequiredQueries(module) {
52
- return this.missingRequiredQueries(module).length === 0;
53
- }
54
- static missingRequiredQueries(module) {
55
- const moduleQueries = module.queries;
56
- return compact(this.requiredQueries.map((query) => {
57
- return moduleQueries.includes(query) ? null : query;
58
- }));
59
- }
60
- async addressPreviousHash() {
61
- const queryPayload = {
62
- schema: ModuleAddressQuerySchema
63
- };
64
- return assertEx((await this.sendQuery(queryPayload)).find((payload) => payload.schema === AddressPreviousHashSchema), "Result did not include correct payload");
65
- }
66
- clearListeners(_eventNames) {
67
- throw new Error("Unsupported");
68
- }
69
- //TODO: Make ModuleDescription into real payload
70
- async describe() {
71
- const queryPayload = {
72
- schema: ModuleDescribeQuerySchema
73
- };
74
- return (await this.sendQuery(queryPayload))[0];
75
- }
76
- async discover() {
77
- const queryPayload = {
78
- schema: ModuleDiscoverQuerySchema
79
- };
80
- return await this.sendQuery(queryPayload);
81
- }
82
- emit(_eventName, _eventArgs) {
83
- throw new Error("Unsupported");
84
- }
85
- emitSerial(_eventName, _eventArgs) {
86
- throw new Error("Unsupported");
87
- }
88
- listenerCount(_eventNames) {
89
- throw new Error("Unsupported");
90
- }
91
- async manifest(maxDepth) {
92
- const queryPayload = {
93
- schema: ModuleManifestQuerySchema,
94
- ...maxDepth === void 0 ? {} : {
95
- maxDepth
96
- }
97
- };
98
- return (await this.sendQuery(queryPayload))[0];
99
- }
100
- async moduleAddress() {
101
- const queryPayload = {
102
- schema: ModuleAddressQuerySchema
103
- };
104
- return await this.sendQuery(queryPayload);
105
- }
106
- off(_eventNames, _listener) {
107
- throw new Error("Unsupported");
108
- }
109
- offAny(_listener) {
110
- throw new Error("Unsupported");
111
- }
112
- on(_eventNames, _listener) {
113
- throw new Error("Unsupported");
114
- }
115
- onAny(_listener) {
116
- throw new Error("Unsupported");
117
- }
118
- once(_eventName, _listener) {
119
- throw new Error("Unsupported");
120
- }
121
- async previousHash() {
122
- const queryPayload = {
123
- schema: ModuleAddressQuerySchema
124
- };
125
- return (await this.sendQuery(queryPayload)).pop().previousHash;
126
- }
127
- queryable(_query, _payloads) {
128
- return true;
129
- }
130
- resolve(nameOrAddressOrFilter, _options) {
131
- return typeof nameOrAddressOrFilter === "string" ? void 0 : [];
132
- }
133
- state() {
134
- return [];
135
- }
136
- bindQuery(query, payloads, account = this.account) {
137
- const promise = new PromiseEx(async (resolve) => {
138
- const result = await this.bindQueryInternal(query, payloads, account);
139
- resolve?.(result);
140
- return result;
141
- }, account);
142
- return promise;
143
- }
144
- async bindQueryInternal(query, payloads, account = this.account) {
145
- const builder = await new QueryBoundWitnessBuilder().payloads(payloads).query(query);
146
- const result = await (account ? builder.witness(account) : builder).build();
147
- return result;
148
- }
149
- async filterErrors(result) {
150
- const wrapper = await BoundWitnessWrapper.wrap(result[0], result[1]);
151
- return wrapper.payloadsBySchema(ModuleErrorSchema);
152
- }
153
- async sendQuery(queryPayload, payloads) {
154
- const query = await this.bindQuery(queryPayload, payloads);
155
- const [, resultPayloads, errors] = await this.query(query[0], query[1]);
156
- if (errors && errors.length > 0) {
157
- throw errors[0];
158
- }
159
- return resultPayloads;
8
+ __name(this, "AbstractModuleHost");
160
9
  }
161
10
  };
162
11
 
@@ -170,7 +19,7 @@ import { PayloadBuilder } from "@xyo-network/payload-builder";
170
19
  import { LRUCache as LRUCache2 } from "lru-cache";
171
20
 
172
21
  // src/AsyncQueryBus/AsyncQueryBusBase.ts
173
- import { assertEx as assertEx2 } from "@xylabs/assert";
22
+ import { assertEx } from "@xylabs/assert";
174
23
  import { Base as Base2 } from "@xylabs/object";
175
24
  import { asArchivistInstance } from "@xyo-network/archivist-model";
176
25
  import { asDivinerInstance } from "@xyo-network/diviner-model";
@@ -179,6 +28,7 @@ var AsyncQueryBusBase = class extends Base2 {
179
28
  static {
180
29
  __name(this, "AsyncQueryBusBase");
181
30
  }
31
+ _exposedAddresses = /* @__PURE__ */ new Set();
182
32
  _lastState;
183
33
  _targetConfigs = {};
184
34
  _targetQueries = {};
@@ -205,17 +55,25 @@ var AsyncQueryBusBase = class extends Base2 {
205
55
  this._lastState = this._lastState ?? new LRUCache(requiredConfig);
206
56
  return this._lastState;
207
57
  }
58
+ expose(address, validate = true) {
59
+ assertEx(!validate || !this._exposedAddresses.has(address), () => `Address already exposed [${address}]`);
60
+ this._exposedAddresses.add(address);
61
+ }
208
62
  async queriesArchivist() {
209
- return assertEx2(asArchivistInstance(await this.resolver.resolve(this.config?.intersect?.queries?.archivist)), () => `Unable to resolve queriesArchivist [${this.config?.intersect?.queries?.archivist}]`);
63
+ return assertEx(asArchivistInstance(await this.resolver.resolve(this.config?.intersect?.queries?.archivist)), () => `Unable to resolve queriesArchivist [${this.config?.intersect?.queries?.archivist}]`);
210
64
  }
211
65
  async queriesDiviner() {
212
- return assertEx2(asDivinerInstance(await this.resolver.resolve(this.config?.intersect?.queries?.boundWitnessDiviner)), () => `Unable to resolve queriesDiviner [${this.config?.intersect?.queries?.boundWitnessDiviner}]`);
66
+ return assertEx(asDivinerInstance(await this.resolver.resolve(this.config?.intersect?.queries?.boundWitnessDiviner)), () => `Unable to resolve queriesDiviner [${this.config?.intersect?.queries?.boundWitnessDiviner}]`);
213
67
  }
214
68
  async responsesArchivist() {
215
- return assertEx2(asArchivistInstance(await this.resolver.resolve(this.config?.intersect?.responses?.archivist)), () => `Unable to resolve responsesArchivist [${this.config?.intersect?.responses?.archivist}]`);
69
+ return assertEx(asArchivistInstance(await this.resolver.resolve(this.config?.intersect?.responses?.archivist)), () => `Unable to resolve responsesArchivist [${this.config?.intersect?.responses?.archivist}]`);
216
70
  }
217
71
  async responsesDiviner() {
218
- return assertEx2(asDivinerInstance(await this.resolver.resolve(this.config?.intersect?.responses?.boundWitnessDiviner)), () => `Unable to resolve responsesDiviner [${this.config?.intersect?.responses?.boundWitnessDiviner}]`);
72
+ return assertEx(asDivinerInstance(await this.resolver.resolve(this.config?.intersect?.responses?.boundWitnessDiviner)), () => `Unable to resolve responsesDiviner [${this.config?.intersect?.responses?.boundWitnessDiviner}]`);
73
+ }
74
+ unexpose(address, validate = true) {
75
+ assertEx(!validate || this._exposedAddresses.has(address), () => `Address not exposed [${address}]`);
76
+ this._exposedAddresses.delete(address);
219
77
  }
220
78
  /**
221
79
  * Commit the internal state of the process. This is similar
@@ -434,7 +292,7 @@ var AsyncQueryBusClient = class extends AsyncQueryBusBase {
434
292
 
435
293
  // src/AsyncQueryBus/AsyncQueryBusHost.ts
436
294
  import { containsAll } from "@xylabs/array";
437
- import { assertEx as assertEx3 } from "@xylabs/assert";
295
+ import { assertEx as assertEx2 } from "@xylabs/assert";
438
296
  import { clearTimeoutEx as clearTimeoutEx2, setTimeoutEx as setTimeoutEx2 } from "@xylabs/timer";
439
297
  import { isQueryBoundWitnessWithMeta } from "@xyo-network/boundwitness-model";
440
298
  import { BoundWitnessDivinerQuerySchema as BoundWitnessDivinerQuerySchema2 } from "@xyo-network/diviner-boundwitness-model";
@@ -455,7 +313,7 @@ var AsyncQueryBusHost = class extends AsyncQueryBusBase {
455
313
  return !!this._pollId;
456
314
  }
457
315
  async listeningModules() {
458
- const mods = this.config?.listeningModules ? await Promise.all(this.config.listeningModules.map(async (listeningModule) => assertEx3(asModuleInstance(await this.resolver.resolve(listeningModule)), () => `Unable to resolve listeningModule [${listeningModule}]`))) : await this.resolver.resolve(void 0, {
316
+ const mods = this.config?.listeningModules ? await Promise.all(this.config.listeningModules.map(async (listeningModule) => assertEx2(asModuleInstance(await this.resolver.resolve(listeningModule)), () => `Unable to resolve listeningModule [${listeningModule}]`))) : await this.resolver.resolve(void 0, {
459
317
  direction: "down"
460
318
  });
461
319
  return mods;
@@ -478,38 +336,39 @@ var AsyncQueryBusHost = class extends AsyncQueryBusBase {
478
336
  const localModuleName = localModule.config.name ?? localModule.address;
479
337
  const queryArchivist = await this.queriesArchivist();
480
338
  const responseArchivist = await this.responsesArchivist();
481
- const commandDestination = query.$meta?.destination;
482
- if (commandDestination && commandDestination?.includes(localModule.address)) {
339
+ const queryDestination = query.$meta?.destination;
340
+ if (queryDestination && queryDestination?.includes(localModule.address)) {
483
341
  const queryIndex = query.payload_hashes.indexOf(query.query);
484
342
  if (queryIndex !== -1) {
485
343
  const querySchema = query.payload_schemas[queryIndex];
486
344
  if (localModule.queries.includes(querySchema)) {
487
- const commandPayloads = await queryArchivist.get(query.payload_hashes);
488
- const commandPayloadsDict = await PayloadBuilder2.toAllHashMap(commandPayloads);
489
- const commandHash = (await PayloadBuilder2.build(query)).$hash;
490
- if (!containsAll(Object.keys(commandPayloadsDict), query.payload_hashes)) {
491
- this.logger?.error(`Error processing command ${commandHash} for module ${localModuleName}, missing payloads`);
345
+ const queryPayloads = await queryArchivist.get(query.payload_hashes);
346
+ const queryPayloadsDict = await PayloadBuilder2.toAllHashMap(queryPayloads);
347
+ const queryHash = (await PayloadBuilder2.build(query)).$hash;
348
+ if (!containsAll(Object.keys(queryPayloadsDict), query.payload_hashes)) {
349
+ this.logger?.error(`Error processing command ${queryHash} for module ${localModuleName}, missing payloads`);
492
350
  return;
493
351
  }
494
352
  try {
495
- const commandSchema = commandPayloadsDict[query.query].schema;
496
- this.logger?.debug(`Issuing command ${commandSchema} (${commandHash}) addressed to module: ${localModuleName}`);
497
- const response = await localModule.query(query, commandPayloads);
353
+ const querySchema2 = queryPayloadsDict[query.query].schema;
354
+ this.logger?.debug(`Issuing query ${querySchema2} (${queryHash}) addressed to module: ${localModuleName}`);
355
+ const response = await localModule.query(query, queryPayloads);
498
356
  const [bw, payloads, errors] = response;
499
- this.logger?.debug(`Replying to command ${commandHash} addressed to module: ${localModuleName}`);
357
+ this.logger?.debug(`Replying to query ${queryHash} addressed to module: ${localModuleName}`);
500
358
  const insertResult = await responseArchivist.insert([
501
359
  bw,
502
360
  ...payloads,
503
361
  ...errors
504
362
  ]);
505
363
  if (insertResult.length === 0) {
506
- this.logger?.error(`Error replying to command ${commandHash} addressed to module: ${localModuleName}`);
364
+ this.logger?.error(`Error replying to query ${queryHash} addressed to module: ${localModuleName}`);
507
365
  }
508
366
  if (query?.timestamp) {
509
367
  await this.commitState(localModule.address, query.timestamp);
510
368
  }
511
369
  } catch (error) {
512
- this.logger?.error(`Error processing command ${commandHash} for module ${localModuleName}: ${error}`);
370
+ this.logger?.error(`Error processing query ${queryHash} for module ${localModuleName}: ${error}`);
371
+ console.error(`Error processing query ${queryHash} for module ${localModuleName}: ${error}`);
513
372
  }
514
373
  }
515
374
  }
@@ -560,37 +419,29 @@ var AsyncQueryBusHost = class extends AsyncQueryBusBase {
560
419
  }, this.pollFrequencyConfig);
561
420
  }
562
421
  /**
563
- * Background process for checking for inbound commands
422
+ * Background process for checking for inbound queries
564
423
  */
565
424
  processIncomingQueries = async () => {
566
- this.logger?.debug("Checking for inbound commands");
425
+ this.logger?.debug("Checking for inbound queries");
567
426
  const localModules = await this.listeningModules();
568
427
  await Promise.allSettled(localModules.map(async (localModule) => {
569
428
  try {
570
429
  const localModuleName = localModule.config.name ?? localModule.address;
571
- this.logger?.debug(`Checking for inbound commands to ${localModuleName}`);
430
+ this.logger?.debug(`Checking for inbound queries to ${localModuleName}`);
572
431
  const queries = await this.findQueriesToAddress(localModule.address);
573
432
  if (queries.length === 0)
574
433
  return;
575
- this.logger?.debug(`Found commands addressed to local module: ${localModuleName}`);
434
+ this.logger?.debug(`Found queries addressed to local module: ${localModuleName}`);
576
435
  for (const query of queries) {
577
436
  await this.callLocalModule(localModule, query);
578
437
  }
579
438
  } catch (error) {
580
- this.logger?.error(`Error processing commands for address ${localModule.address}: ${error}`);
439
+ this.logger?.error(`Error processing queries for address ${localModule.address}: ${error}`);
581
440
  }
582
441
  }));
583
442
  };
584
443
  };
585
444
 
586
- // src/AbstractModuleHost/AbstractModuleHost.ts
587
- import { Base as Base3 } from "@xylabs/object";
588
- var AbstractModuleHost = class extends Base3 {
589
- static {
590
- __name(this, "AbstractModuleHost");
591
- }
592
- };
593
-
594
445
  // src/AsyncQueryBus/ModuleHost/ModuleHost.ts
595
446
  var AsyncQueryBusModuleHost = class extends AbstractModuleHost {
596
447
  static {
@@ -620,6 +471,7 @@ var AsyncQueryBusModuleHost = class extends AbstractModuleHost {
620
471
  };
621
472
 
622
473
  // src/AsyncQueryBus/ModuleProxy/ModuleProxy.ts
474
+ import { AbstractModuleProxy } from "@xyo-network/abstract-bridge";
623
475
  var AsyncQueryBusModuleProxy = class extends AbstractModuleProxy {
624
476
  static {
625
477
  __name(this, "AsyncQueryBusModuleProxy");
@@ -636,12 +488,10 @@ var PubSubBridgeSchema = "network.xyo.bridge.pubsub";
636
488
  var PubSubBridgeConfigSchema = `${PubSubBridgeSchema}.config`;
637
489
 
638
490
  // src/PubSubBridge.ts
639
- import { assertEx as assertEx4 } from "@xylabs/assert";
640
- import { isAddress } from "@xylabs/hex";
491
+ import { assertEx as assertEx3 } from "@xylabs/assert";
641
492
  import { AbstractBridge } from "@xyo-network/abstract-bridge";
642
493
  import { Account } from "@xyo-network/account";
643
- import { ModuleManifestPayloadSchema } from "@xyo-network/manifest-model";
644
- import { creatableModule, ModuleConfigSchema as ModuleConfigSchema2 } from "@xyo-network/module-model";
494
+ import { creatableModule } from "@xyo-network/module-model";
645
495
  function _ts_decorate(decorators, target, key, desc) {
646
496
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
647
497
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
@@ -664,74 +514,51 @@ var PubSubBridge = class extends AbstractBridge {
664
514
  _configRootAddress = "";
665
515
  _configStateStoreArchivist = "";
666
516
  _configStateStoreBoundWitnessDiviner = "";
517
+ _exposedAddresses = [];
667
518
  _lastState;
668
519
  _busClient;
669
520
  _busHost;
670
521
  get moduleName() {
671
522
  return `${this.config.name ?? moduleName}`;
672
523
  }
673
- get rootAddress() {
674
- return this._configRootAddress;
675
- }
676
- connect() {
677
- this.connected = true;
678
- return this.connected;
679
- }
680
- async disconnect() {
681
- await Promise.resolve();
682
- this.connected = false;
683
- return true;
684
- }
685
- getRootAddress() {
686
- return this.rootAddress;
687
- }
688
- async resolve(idOrFilter, _options) {
689
- if (idOrFilter === void 0) {
690
- return [];
691
- }
692
- if (typeof idOrFilter === "string") {
693
- const upResolve = await this.upResolver.resolve(idOrFilter);
694
- if (upResolve)
695
- return upResolve;
696
- assertEx4(!isAddress(idOrFilter), "Name resolutions not supported");
697
- const params = {
698
- account: Account.randomSync(),
699
- busClient: assertEx4(this.busClient(), "Bus client not initialized"),
700
- moduleAddress: idOrFilter,
701
- queries: []
702
- };
703
- return await Promise.resolve(new AsyncQueryBusModuleProxy(params));
704
- } else {
705
- throw new TypeError("Filter not Supported");
524
+ async exposeHandler(id, options) {
525
+ const filterOptions = {
526
+ direction: options?.direction
527
+ };
528
+ const module = await super.resolve(id, filterOptions);
529
+ if (module) {
530
+ const host = assertEx3(this.busHost(), "Not configured as a host");
531
+ host.expose(module.address);
532
+ return [
533
+ module.address
534
+ ];
706
535
  }
536
+ return [];
707
537
  }
708
- targetConfig(_address) {
709
- return {
710
- schema: ModuleConfigSchema2
538
+ resolveHandler(id, _options) {
539
+ const account = Account.randomSync();
540
+ const params = {
541
+ account,
542
+ bridge: this,
543
+ busClient: assertEx3(this.busClient(), "Bus client not initialized"),
544
+ moduleAddress: id
711
545
  };
546
+ return new AsyncQueryBusModuleProxy(params);
712
547
  }
713
- targetManifest(_address, _maxDepth) {
714
- return {
715
- config: {
716
- name: "",
717
- schema: ModuleConfigSchema2
718
- },
719
- schema: ModuleManifestPayloadSchema
548
+ async unexposeHandler(id, options) {
549
+ const filterOptions = {
550
+ direction: options?.direction
720
551
  };
721
- }
722
- targetQueries(_address) {
552
+ const module = await super.resolve(id, filterOptions);
553
+ if (module) {
554
+ const host = assertEx3(this.busHost(), "Not configured as a host");
555
+ host.unexpose(module.address);
556
+ return [
557
+ module.address
558
+ ];
559
+ }
723
560
  return [];
724
561
  }
725
- async targetQuery(address, query, payloads) {
726
- if (!this.connected)
727
- throw new Error("Not connected");
728
- await this.started("throw");
729
- const bus = assertEx4(this.busClient(), "Client not configured");
730
- return bus?.send(address, query, payloads);
731
- }
732
- targetQueryable(_address, _query, _payloads, _queryConfig) {
733
- return true;
734
- }
735
562
  busClient() {
736
563
  if (!this._busClient && this.config.client) {
737
564
  this._busClient = new AsyncQueryBusClient({
@@ -752,10 +579,9 @@ var PubSubBridge = class extends AbstractBridge {
752
579
  }
753
580
  return this._busHost;
754
581
  }
755
- async startHandler() {
756
- await Promise.resolve(this.connect());
582
+ startHandler() {
757
583
  this.busHost()?.start();
758
- return true;
584
+ return Promise.resolve(true);
759
585
  }
760
586
  stopHandler(_timeout) {
761
587
  this.busHost()?.stop();
@@ -766,7 +592,7 @@ PubSubBridge = _ts_decorate([
766
592
  creatableModule()
767
593
  ], PubSubBridge);
768
594
  export {
769
- AbstractModuleProxy,
595
+ AbstractModuleHost,
770
596
  AsyncQueryBusClient,
771
597
  AsyncQueryBusHost,
772
598
  AsyncQueryBusModuleHost,