@xyo-network/bridge-module-resolver 2.49.3 → 2.49.5
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 +8 -9
- package/dist/cjs/ModuleResolver.js.map +1 -1
- package/dist/docs.json +7830 -2787
- package/dist/esm/ModuleResolver.js +8 -9
- package/dist/esm/ModuleResolver.js.map +1 -1
- package/dist/types/ModuleResolver.d.ts +2 -3
- package/dist/types/ModuleResolver.d.ts.map +1 -1
- package/dist/types/ProxyModule.d.ts +2 -22
- package/dist/types/ProxyModule.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/ModuleResolver.ts +24 -25
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AddressSchema } from '@xyo-network/address-payload-plugin';
|
|
2
2
|
import { CompositeModuleResolver } from '@xyo-network/module';
|
|
3
3
|
import compact from 'lodash/compact';
|
|
4
|
-
import flatten from 'lodash/flatten';
|
|
5
4
|
import { ProxyModule } from './ProxyModule';
|
|
6
5
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
7
6
|
bridge;
|
|
@@ -22,7 +21,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
22
21
|
async currentResolvedModules() {
|
|
23
22
|
const result = {};
|
|
24
23
|
await Promise.all(Object.entries(this.resolvedModules).map(async ([key, value]) => {
|
|
25
|
-
result[key] = await value;
|
|
24
|
+
result[key] = (await value);
|
|
26
25
|
}));
|
|
27
26
|
return result;
|
|
28
27
|
}
|
|
@@ -47,7 +46,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
47
46
|
throw new Error('Method not implemented.');
|
|
48
47
|
}
|
|
49
48
|
async resolve(filter) {
|
|
50
|
-
return await
|
|
49
|
+
return await this.resolveRemoteModules(filter);
|
|
51
50
|
}
|
|
52
51
|
async resolveByAddress(targetAddress) {
|
|
53
52
|
const remoteAddresses = await this.getRemoteAddresses();
|
|
@@ -58,7 +57,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
58
57
|
}
|
|
59
58
|
const cached = this.resolvedModules[targetAddress];
|
|
60
59
|
if (cached)
|
|
61
|
-
return await cached;
|
|
60
|
+
return (await cached);
|
|
62
61
|
this.resolvedModules[targetAddress] =
|
|
63
62
|
this.resolvedModules[targetAddress] ??
|
|
64
63
|
(async (address) => {
|
|
@@ -72,7 +71,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
72
71
|
return undefined;
|
|
73
72
|
}
|
|
74
73
|
})(targetAddress);
|
|
75
|
-
return await this.resolvedModules[targetAddress];
|
|
74
|
+
return (await this.resolvedModules[targetAddress]);
|
|
76
75
|
}
|
|
77
76
|
async resolveByName(name) {
|
|
78
77
|
return Object.values(await this.currentResolvedModules()).filter((module) => module.config.name === name);
|
|
@@ -87,16 +86,16 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
87
86
|
}
|
|
88
87
|
async resolveRemoteModules(filter) {
|
|
89
88
|
if (filter?.address) {
|
|
90
|
-
return this.resolveRemoteModulesByAddress(filter);
|
|
89
|
+
return await this.resolveRemoteModulesByAddress(filter);
|
|
91
90
|
}
|
|
92
91
|
if (filter?.name) {
|
|
93
|
-
return this.resolveRemoteModulesByName(filter);
|
|
92
|
+
return await this.resolveRemoteModulesByName(filter);
|
|
94
93
|
}
|
|
95
94
|
if (filter?.query) {
|
|
96
|
-
return this.resolveRemoteModulesByQuery(filter);
|
|
95
|
+
return await this.resolveRemoteModulesByQuery(filter);
|
|
97
96
|
}
|
|
98
97
|
//get all of them
|
|
99
|
-
return this.resolveRemoteModulesByAddress({ address: await this.getRemoteAddresses() });
|
|
98
|
+
return await this.resolveRemoteModulesByAddress({ address: await this.getRemoteAddresses() });
|
|
100
99
|
}
|
|
101
100
|
async resolveRemoteModulesByAddress(filter) {
|
|
102
101
|
return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress(address))));
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ModuleResolver.js","sourceRoot":"","sources":["../../src/ModuleResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { BridgeModule } from '@xyo-network/bridge-model';
|
|
2
2
|
import { CompositeModuleResolver } from '@xyo-network/module';
|
|
3
3
|
import { Module, ModuleFilter } from '@xyo-network/module-model';
|
|
4
|
-
import { ProxyModule } from './ProxyModule';
|
|
5
4
|
export declare class BridgeModuleResolver extends CompositeModuleResolver {
|
|
6
5
|
protected readonly bridge: BridgeModule;
|
|
7
6
|
private remoteAddresses?;
|
|
@@ -10,10 +9,10 @@ export declare class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
10
9
|
get isModuleResolver(): boolean;
|
|
11
10
|
add(module: Module): this;
|
|
12
11
|
add(module: Module[]): this;
|
|
13
|
-
currentResolvedModules(): Promise<Record<string,
|
|
12
|
+
currentResolvedModules<T extends Module = Module>(): Promise<Record<string, T>>;
|
|
14
13
|
getRemoteAddresses(): Promise<string[]>;
|
|
15
14
|
remove(_address: string | string[]): this;
|
|
16
|
-
resolve(filter?: ModuleFilter): Promise<
|
|
15
|
+
resolve<T extends Module = Module>(filter?: ModuleFilter): Promise<T[]>;
|
|
17
16
|
private resolveByAddress;
|
|
18
17
|
private resolveByName;
|
|
19
18
|
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;
|
|
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;AAK1H,qBAAa,oBAAqB,SAAQ,uBAAuB;IAMnD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IALnD,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,eAAe,CAAsC;gBAI9B,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,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAW/E,kBAAkB;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAInC,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;YAIxE,gBAAgB;YA8BhB,aAAa;YAIb,cAAc;YAUd,oBAAoB;YAiBpB,6BAA6B;YAI7B,0BAA0B;YAI1B,2BAA2B;CAG1C"}
|
|
@@ -4,31 +4,11 @@ import { XyoPayload } from '@xyo-network/payload-model';
|
|
|
4
4
|
export declare class ProxyModule implements Module {
|
|
5
5
|
protected readonly bridge: BridgeModule;
|
|
6
6
|
protected readonly _address: string;
|
|
7
|
-
readonly upResolver: CompositeModuleResolver
|
|
8
|
-
name?: string | undefined;
|
|
9
|
-
security?: {
|
|
10
|
-
allowAnonymous?: boolean | undefined;
|
|
11
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
12
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
13
|
-
} | undefined;
|
|
14
|
-
storeQueries?: boolean | undefined;
|
|
15
|
-
} & {
|
|
16
|
-
schema: string;
|
|
17
|
-
}>>;
|
|
7
|
+
readonly upResolver: CompositeModuleResolver;
|
|
18
8
|
constructor(bridge: BridgeModule, _address: string);
|
|
19
9
|
get address(): string;
|
|
20
10
|
get config(): ModuleConfig;
|
|
21
|
-
get downResolver(): import("@xyo-network/module").ModuleResolver
|
|
22
|
-
name?: string | undefined;
|
|
23
|
-
security?: {
|
|
24
|
-
allowAnonymous?: boolean | undefined;
|
|
25
|
-
allowed?: Record<string, (string | import("@xyo-network/module").CosigningAddressSet)[]> | undefined;
|
|
26
|
-
disallowed?: Record<string, string[]> | undefined;
|
|
27
|
-
} | undefined;
|
|
28
|
-
storeQueries?: boolean | undefined;
|
|
29
|
-
} & {
|
|
30
|
-
schema: string;
|
|
31
|
-
}>>;
|
|
11
|
+
get downResolver(): import("@xyo-network/module").ModuleResolver;
|
|
32
12
|
get queries(): string[];
|
|
33
13
|
query<T extends XyoQueryBoundWitness = XyoQueryBoundWitness>(query: T, payloads?: XyoPayload[]): Promise<ModuleQueryResult>;
|
|
34
14
|
queryable(query: XyoQueryBoundWitness, payloads?: XyoPayload[], queryConfig?: ModuleConfig): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
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,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,qBAAa,WAAY,YAAW,MAAM;IAG5B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAFxF,QAAQ,CAAC,UAAU
|
|
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,uBAAuB,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1I,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,qBAAa,WAAY,YAAW,MAAM;IAG5B,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAFxF,QAAQ,CAAC,UAAU,0BAAgC;gBAEpB,MAAM,EAAE,YAAY,EAAqB,QAAQ,EAAE,MAAM;IAExF,IAAI,OAAO,WAEV;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,YAAY,iDAEf;IAED,IAAI,OAAO,aAEV;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
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@xylabs/assert": "^2.7.4",
|
|
14
|
-
"@xyo-network/address-payload-plugin": "^2.49.
|
|
15
|
-
"@xyo-network/bridge-model": "^2.49.
|
|
16
|
-
"@xyo-network/module": "^2.49.
|
|
17
|
-
"@xyo-network/module-model": "^2.49.
|
|
18
|
-
"@xyo-network/payload-model": "^2.49.
|
|
14
|
+
"@xyo-network/address-payload-plugin": "^2.49.5",
|
|
15
|
+
"@xyo-network/bridge-model": "^2.49.5",
|
|
16
|
+
"@xyo-network/module": "^2.49.5",
|
|
17
|
+
"@xyo-network/module-model": "^2.49.5",
|
|
18
|
+
"@xyo-network/payload-model": "^2.49.5",
|
|
19
19
|
"lodash": "^4.17.21"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
},
|
|
57
57
|
"sideEffects": false,
|
|
58
58
|
"types": "dist/types/index.d.ts",
|
|
59
|
-
"version": "2.49.
|
|
59
|
+
"version": "2.49.5"
|
|
60
60
|
}
|
package/src/ModuleResolver.ts
CHANGED
|
@@ -3,13 +3,12 @@ import { BridgeModule } from '@xyo-network/bridge-model'
|
|
|
3
3
|
import { CompositeModuleResolver } from '@xyo-network/module'
|
|
4
4
|
import { AddressModuleFilter, Module, ModuleFilter, NameModuleFilter, QueryModuleFilter } from '@xyo-network/module-model'
|
|
5
5
|
import compact from 'lodash/compact'
|
|
6
|
-
import flatten from 'lodash/flatten'
|
|
7
6
|
|
|
8
7
|
import { ProxyModule } from './ProxyModule'
|
|
9
8
|
|
|
10
9
|
export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
11
10
|
private remoteAddresses?: Promise<string[]>
|
|
12
|
-
private resolvedModules: Record<string, Promise<
|
|
11
|
+
private resolvedModules: Record<string, Promise<Module>> = {}
|
|
13
12
|
|
|
14
13
|
// TODO: Allow optional ctor param for supplying address for nested Nodes
|
|
15
14
|
// protected readonly address?: string,
|
|
@@ -27,11 +26,11 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
27
26
|
throw new Error('Method not implemented.')
|
|
28
27
|
}
|
|
29
28
|
|
|
30
|
-
async currentResolvedModules(): Promise<Record<string,
|
|
31
|
-
const result: Record<string,
|
|
29
|
+
async currentResolvedModules<T extends Module = Module>(): Promise<Record<string, T>> {
|
|
30
|
+
const result: Record<string, T> = {}
|
|
32
31
|
await Promise.all(
|
|
33
32
|
Object.entries(this.resolvedModules).map(async ([key, value]) => {
|
|
34
|
-
result[key] = await value
|
|
33
|
+
result[key] = (await value) as T
|
|
35
34
|
}),
|
|
36
35
|
)
|
|
37
36
|
|
|
@@ -61,11 +60,11 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
61
60
|
throw new Error('Method not implemented.')
|
|
62
61
|
}
|
|
63
62
|
|
|
64
|
-
override async resolve(filter?: ModuleFilter): Promise<
|
|
65
|
-
return await
|
|
63
|
+
override async resolve<T extends Module = Module>(filter?: ModuleFilter): Promise<T[]> {
|
|
64
|
+
return await this.resolveRemoteModules<T>(filter)
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
private async resolveByAddress(targetAddress: string): Promise<
|
|
67
|
+
private async resolveByAddress<T extends Module = Module>(targetAddress: string): Promise<T | undefined> {
|
|
69
68
|
const remoteAddresses = await this.getRemoteAddresses()
|
|
70
69
|
|
|
71
70
|
//check if it is even there
|
|
@@ -75,7 +74,7 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
75
74
|
}
|
|
76
75
|
|
|
77
76
|
const cached = this.resolvedModules[targetAddress]
|
|
78
|
-
if (cached) return await cached
|
|
77
|
+
if (cached) return (await cached) as T
|
|
79
78
|
|
|
80
79
|
this.resolvedModules[targetAddress] =
|
|
81
80
|
this.resolvedModules[targetAddress] ??
|
|
@@ -92,15 +91,15 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
92
91
|
}
|
|
93
92
|
})(targetAddress)
|
|
94
93
|
|
|
95
|
-
return await this.resolvedModules[targetAddress]
|
|
94
|
+
return (await this.resolvedModules[targetAddress]) as T
|
|
96
95
|
}
|
|
97
96
|
|
|
98
|
-
private async resolveByName(name: string): Promise<
|
|
99
|
-
return Object.values(await this.currentResolvedModules()).filter((module) => module.config.name === name)
|
|
97
|
+
private async resolveByName<T extends Module = Module>(name: string): Promise<T[]> {
|
|
98
|
+
return Object.values(await this.currentResolvedModules<T>()).filter((module) => module.config.name === name)
|
|
100
99
|
}
|
|
101
100
|
|
|
102
|
-
private async resolveByQuery(queries: string[]): Promise<
|
|
103
|
-
return Object.values(await this.currentResolvedModules()).filter((module) => {
|
|
101
|
+
private async resolveByQuery<T extends Module = Module>(queries: string[]): Promise<T[]> {
|
|
102
|
+
return Object.values(await this.currentResolvedModules<T>()).filter((module) => {
|
|
104
103
|
//filter out the requested queries
|
|
105
104
|
const found = module.queries.filter((query) => queries.find((q) => q === query))
|
|
106
105
|
|
|
@@ -109,32 +108,32 @@ export class BridgeModuleResolver extends CompositeModuleResolver {
|
|
|
109
108
|
})
|
|
110
109
|
}
|
|
111
110
|
|
|
112
|
-
private async resolveRemoteModules(filter?: ModuleFilter): Promise<
|
|
111
|
+
private async resolveRemoteModules<T extends Module = Module>(filter?: ModuleFilter): Promise<T[]> {
|
|
113
112
|
if ((filter as AddressModuleFilter)?.address) {
|
|
114
|
-
return this.resolveRemoteModulesByAddress(filter as AddressModuleFilter)
|
|
113
|
+
return await this.resolveRemoteModulesByAddress<T>(filter as AddressModuleFilter)
|
|
115
114
|
}
|
|
116
115
|
|
|
117
116
|
if ((filter as NameModuleFilter)?.name) {
|
|
118
|
-
return this.resolveRemoteModulesByName(filter as NameModuleFilter)
|
|
117
|
+
return await this.resolveRemoteModulesByName<T>(filter as NameModuleFilter)
|
|
119
118
|
}
|
|
120
119
|
|
|
121
120
|
if ((filter as QueryModuleFilter)?.query) {
|
|
122
|
-
return this.resolveRemoteModulesByQuery(filter as QueryModuleFilter)
|
|
121
|
+
return await this.resolveRemoteModulesByQuery<T>(filter as QueryModuleFilter)
|
|
123
122
|
}
|
|
124
123
|
|
|
125
124
|
//get all of them
|
|
126
|
-
return this.resolveRemoteModulesByAddress({ address: await this.getRemoteAddresses() })
|
|
125
|
+
return await this.resolveRemoteModulesByAddress<T>({ address: await this.getRemoteAddresses() })
|
|
127
126
|
}
|
|
128
127
|
|
|
129
|
-
private async resolveRemoteModulesByAddress(filter: AddressModuleFilter): Promise<
|
|
130
|
-
return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress(address))))
|
|
128
|
+
private async resolveRemoteModulesByAddress<T extends Module = Module>(filter: AddressModuleFilter): Promise<T[]> {
|
|
129
|
+
return compact(await Promise.all(filter.address.map((address) => this.resolveByAddress<T>(address))))
|
|
131
130
|
}
|
|
132
131
|
|
|
133
|
-
private async resolveRemoteModulesByName(filter: NameModuleFilter): Promise<
|
|
134
|
-
return compact((await Promise.all(filter.name.map(async (name) => await this.resolveByName(name)))).flat())
|
|
132
|
+
private async resolveRemoteModulesByName<T extends Module = Module>(filter: NameModuleFilter): Promise<T[]> {
|
|
133
|
+
return compact((await Promise.all(filter.name.map(async (name) => await this.resolveByName<T>(name)))).flat())
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
private async resolveRemoteModulesByQuery(filter: QueryModuleFilter): Promise<
|
|
138
|
-
return compact((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery(query)))).flat())
|
|
136
|
+
private async resolveRemoteModulesByQuery<T extends Module = Module>(filter: QueryModuleFilter): Promise<T[]> {
|
|
137
|
+
return compact((await Promise.all(filter.query.map(async (query) => await this.resolveByQuery<T>(query)))).flat())
|
|
139
138
|
}
|
|
140
139
|
}
|