@xyo-network/bridge-module-resolver 2.47.9 → 2.48.0
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.
- package/dist/cjs/ModuleResolver.js +33 -17
- package/dist/cjs/ModuleResolver.js.map +1 -1
- package/dist/cjs/ProxyModule.js +2 -1
- package/dist/cjs/ProxyModule.js.map +1 -1
- package/dist/docs.json +404 -372
- package/dist/esm/ModuleResolver.js +32 -15
- package/dist/esm/ModuleResolver.js.map +1 -1
- package/dist/esm/ProxyModule.js +2 -1
- package/dist/esm/ProxyModule.js.map +1 -1
- package/dist/types/ModuleResolver.d.ts +2 -1
- package/dist/types/ModuleResolver.d.ts.map +1 -1
- package/dist/types/ProxyModule.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/ModuleResolver.ts +35 -17
- package/src/ProxyModule.ts +2 -1
|
@@ -5,6 +5,7 @@ import flatten from 'lodash/flatten';
|
|
|
5
5
|
import { ProxyModule } from './ProxyModule';
|
|
6
6
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
7
7
|
bridge;
|
|
8
|
+
remoteAddresses;
|
|
8
9
|
resolvedModules = {};
|
|
9
10
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
10
11
|
// protected readonly address?: string,
|
|
@@ -25,25 +26,36 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
25
26
|
}));
|
|
26
27
|
return result;
|
|
27
28
|
}
|
|
29
|
+
async getRemoteAddresses() {
|
|
30
|
+
this.remoteAddresses =
|
|
31
|
+
this.remoteAddresses ??
|
|
32
|
+
(async () => {
|
|
33
|
+
const discover = await this.bridge.targetDiscover();
|
|
34
|
+
return compact(discover?.map((payload) => {
|
|
35
|
+
if (payload.schema === AddressSchema) {
|
|
36
|
+
const schemaPayload = payload;
|
|
37
|
+
return schemaPayload.address;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
})();
|
|
44
|
+
return await this.remoteAddresses;
|
|
45
|
+
}
|
|
28
46
|
remove(_address) {
|
|
29
47
|
throw new Error('Method not implemented.');
|
|
30
48
|
}
|
|
31
49
|
async resolve(filter) {
|
|
32
50
|
return await Promise.all(flatten(await this.resolveRemoteModules(filter)));
|
|
33
51
|
}
|
|
34
|
-
async getRemoteAddresses() {
|
|
35
|
-
const discover = await this.bridge.targetDiscover();
|
|
36
|
-
return compact(discover.map((payload) => {
|
|
37
|
-
if (payload.schema === AddressSchema) {
|
|
38
|
-
const schemaPayload = payload;
|
|
39
|
-
return schemaPayload.address;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
52
|
async resolveByAddress(targetAddress) {
|
|
53
|
+
const remoteAddresses = await this.getRemoteAddresses();
|
|
54
|
+
//check if it is even there
|
|
55
|
+
if (!remoteAddresses.find((address) => address === targetAddress)) {
|
|
56
|
+
console.log(`Not in RA: ${targetAddress}`);
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
47
59
|
const cached = this.resolvedModules[targetAddress];
|
|
48
60
|
if (cached)
|
|
49
61
|
return await cached;
|
|
@@ -51,9 +63,14 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
51
63
|
this.resolvedModules[targetAddress] ??
|
|
52
64
|
(async (address) => {
|
|
53
65
|
const mod = new ProxyModule(this.bridge, address);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
66
|
+
try {
|
|
67
|
+
//discover it to set the config in the bridge
|
|
68
|
+
await this.bridge.targetDiscover(address);
|
|
69
|
+
return mod;
|
|
70
|
+
}
|
|
71
|
+
catch (ex) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
57
74
|
})(targetAddress);
|
|
58
75
|
return await this.resolvedModules[targetAddress];
|
|
59
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,OAAO,oBAAqB,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/ProxyModule.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert';
|
|
1
2
|
export class ProxyModule {
|
|
2
3
|
bridge;
|
|
3
4
|
_address;
|
|
@@ -18,7 +19,7 @@ export class ProxyModule {
|
|
|
18
19
|
return this.bridge.targetResolver;
|
|
19
20
|
}
|
|
20
21
|
async query(query, payloads) {
|
|
21
|
-
return await this.bridge.targetQuery(this.address, query, payloads);
|
|
22
|
+
return assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed');
|
|
22
23
|
}
|
|
23
24
|
async queryable(query, payloads, queryConfig) {
|
|
24
25
|
return await this.bridge.targetQueryable(this.address, query, payloads, queryConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProxyModule.js","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,MAAM,OAAO,WAAW;IACS;IAAyC;IAAxE,YAA+B,MAAoB,EAAqB,QAAgB;QAAzD,WAAM,GAAN,MAAM,CAAc;QAAqB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAE5F,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAwD,KAAQ,EAAE,QAAuB;QAClG,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACtG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA2B,EAAE,QAAuB,EAAE,WAA0B;QAC9F,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACtF,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC9D,CAAC;CACF"}
|
|
@@ -4,15 +4,16 @@ import { Module, ModuleFilter } from '@xyo-network/module-model';
|
|
|
4
4
|
import { ProxyModule } from './ProxyModule';
|
|
5
5
|
export declare class BridgeModuleResolver extends CompositeModuleResolver {
|
|
6
6
|
protected readonly bridge: BridgeModule;
|
|
7
|
+
private remoteAddresses?;
|
|
7
8
|
private resolvedModules;
|
|
8
9
|
constructor(bridge: BridgeModule);
|
|
9
10
|
get isModuleResolver(): boolean;
|
|
10
11
|
add(module: Module): this;
|
|
11
12
|
add(module: Module[]): this;
|
|
12
13
|
currentResolvedModules(): Promise<Record<string, ProxyModule>>;
|
|
14
|
+
getRemoteAddresses(): Promise<string[]>;
|
|
13
15
|
remove(_address: string | string[]): this;
|
|
14
16
|
resolve(filter?: ModuleFilter): Promise<ProxyModule[]>;
|
|
15
|
-
private getRemoteAddresses;
|
|
16
17
|
private resolveByAddress;
|
|
17
18
|
private resolveByName;
|
|
18
19
|
private resolveByQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAuC,MAAM,2BAA2B,CAAA;AAI1H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,qBAAa,oBAAqB,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ModuleResolver.d.ts","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAuB,MAAM,EAAE,YAAY,EAAuC,MAAM,2BAA2B,CAAA;AAI1H,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,qBAAa,oBAAqB,SAAQ,uBAAuB;IAMnD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IALnD,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAA2C;gBAInC,MAAM,EAAE,YAAY;IAInD,IAAa,gBAAgB,IAAI,OAAO,CAEvC;IAEQ,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IACzB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAK9B,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAW9D,kBAAkB;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAInC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAIvD,gBAAgB;YA8BhB,aAAa;YAIb,cAAc;YAUd,oBAAoB;YAiBpB,6BAA6B;YAI7B,0BAA0B;YAI1B,2BAA2B;CAG1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProxyModule.d.ts","sourceRoot":"","sources":["../../src/ProxyModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACjH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,qBAAa,WAAY,YAAW,MAAM;IAC5B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAAzD,MAAM,EAAE,YAAY,EAAqB,QAAQ,EAAE,MAAM;IAExF,IAAI,OAAO,WAEV;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,OAAO,aAEV;IAED,IAAI,QAAQ;;;;;;;;;QAEX;IAEK,KAAK,CAAC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI3H,SAAS,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7G,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxD"}
|
package/package.json
CHANGED
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@
|
|
14
|
-
"@xyo-network/
|
|
15
|
-
"@xyo-network/
|
|
16
|
-
"@xyo-network/module
|
|
17
|
-
"@xyo-network/
|
|
13
|
+
"@xylabs/assert": "^2.7.4",
|
|
14
|
+
"@xyo-network/address-payload-plugin": "^2.48.0",
|
|
15
|
+
"@xyo-network/bridge-model": "^2.48.0",
|
|
16
|
+
"@xyo-network/module": "^2.48.0",
|
|
17
|
+
"@xyo-network/module-model": "^2.48.0",
|
|
18
|
+
"@xyo-network/payload-model": "^2.48.0",
|
|
18
19
|
"lodash": "^4.17.21"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
@@ -55,5 +56,5 @@
|
|
|
55
56
|
},
|
|
56
57
|
"sideEffects": false,
|
|
57
58
|
"types": "dist/types/index.d.ts",
|
|
58
|
-
"version": "2.
|
|
59
|
+
"version": "2.48.0"
|
|
59
60
|
}
|
package/src/ModuleResolver.ts
CHANGED
|
@@ -8,6 +8,7 @@ import flatten from 'lodash/flatten'
|
|
|
8
8
|
import { ProxyModule } from './ProxyModule'
|
|
9
9
|
|
|
10
10
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
11
|
+
private remoteAddresses?: Promise<string[]>
|
|
11
12
|
private resolvedModules: Record<string, Promise<ProxyModule>> = {}
|
|
12
13
|
|
|
13
14
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
@@ -37,6 +38,25 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
37
38
|
return result
|
|
38
39
|
}
|
|
39
40
|
|
|
41
|
+
async getRemoteAddresses() {
|
|
42
|
+
this.remoteAddresses =
|
|
43
|
+
this.remoteAddresses ??
|
|
44
|
+
(async () => {
|
|
45
|
+
const discover = await this.bridge.targetDiscover()
|
|
46
|
+
return compact(
|
|
47
|
+
discover?.map((payload) => {
|
|
48
|
+
if (payload.schema === AddressSchema) {
|
|
49
|
+
const schemaPayload = payload as AddressPayload
|
|
50
|
+
return schemaPayload.address
|
|
51
|
+
} else {
|
|
52
|
+
return null
|
|
53
|
+
}
|
|
54
|
+
}),
|
|
55
|
+
)
|
|
56
|
+
})()
|
|
57
|
+
return await this.remoteAddresses
|
|
58
|
+
}
|
|
59
|
+
|
|
40
60
|
override remove(_address: string | string[]): this {
|
|
41
61
|
throw new Error('Method not implemented.')
|
|
42
62
|
}
|
|
@@ -45,21 +65,15 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
45
65
|
return await Promise.all(flatten(await this.resolveRemoteModules(filter)))
|
|
46
66
|
}
|
|
47
67
|
|
|
48
|
-
private async getRemoteAddresses() {
|
|
49
|
-
const discover = await this.bridge.targetDiscover()
|
|
50
|
-
return compact(
|
|
51
|
-
discover.map((payload) => {
|
|
52
|
-
if (payload.schema === AddressSchema) {
|
|
53
|
-
const schemaPayload = payload as AddressPayload
|
|
54
|
-
return schemaPayload.address
|
|
55
|
-
} else {
|
|
56
|
-
return null
|
|
57
|
-
}
|
|
58
|
-
}),
|
|
59
|
-
)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
68
|
private async resolveByAddress(targetAddress: string): Promise<ProxyModule | undefined> {
|
|
69
|
+
const remoteAddresses = await this.getRemoteAddresses()
|
|
70
|
+
|
|
71
|
+
//check if it is even there
|
|
72
|
+
if (!remoteAddresses.find((address) => address === targetAddress)) {
|
|
73
|
+
console.log(`Not in RA: ${targetAddress}`)
|
|
74
|
+
return undefined
|
|
75
|
+
}
|
|
76
|
+
|
|
63
77
|
const cached = this.resolvedModules[targetAddress]
|
|
64
78
|
if (cached) return await cached
|
|
65
79
|
|
|
@@ -68,10 +82,14 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
68
82
|
(async (address: string) => {
|
|
69
83
|
const mod = new ProxyModule(this.bridge, address)
|
|
70
84
|
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
try {
|
|
86
|
+
//discover it to set the config in the bridge
|
|
87
|
+
await this.bridge.targetDiscover(address)
|
|
73
88
|
|
|
74
|
-
|
|
89
|
+
return mod
|
|
90
|
+
} catch (ex) {
|
|
91
|
+
return undefined
|
|
92
|
+
}
|
|
75
93
|
})(targetAddress)
|
|
76
94
|
|
|
77
95
|
return await this.resolvedModules[targetAddress]
|
package/src/ProxyModule.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
1
2
|
import { BridgeModule } from '@xyo-network/bridge-model'
|
|
2
3
|
import { Module, ModuleConfig, ModuleFilter, ModuleQueryResult, XyoQueryBoundWitness } from '@xyo-network/module'
|
|
3
4
|
import { XyoPayload } from '@xyo-network/payload-model'
|
|
@@ -22,7 +23,7 @@ export class ProxyModule implements Module {
|
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
async query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult> {
|
|
25
|
-
return await this.bridge.targetQuery(this.address, query, payloads)
|
|
26
|
+
return assertEx(await this.bridge.targetQuery(this.address, query, payloads), 'Remote Query Failed')
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
async queryable(query: XyoQueryBoundWitness, payloads?: XyoPayload[], queryConfig?: ModuleConfig): Promise<boolean> {
|