@xyo-network/bridge-http 2.105.1 → 2.106.0-rc.2
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/browser/HttpBridgeBase.d.cts +4 -1
- package/dist/browser/HttpBridgeBase.d.cts.map +1 -1
- package/dist/browser/HttpBridgeBase.d.mts +4 -1
- package/dist/browser/HttpBridgeBase.d.mts.map +1 -1
- package/dist/browser/HttpBridgeBase.d.ts +4 -1
- package/dist/browser/HttpBridgeBase.d.ts.map +1 -1
- package/dist/browser/HttpBridgeModuleResolver.d.cts +18 -2
- package/dist/browser/HttpBridgeModuleResolver.d.cts.map +1 -1
- package/dist/browser/HttpBridgeModuleResolver.d.mts +18 -2
- package/dist/browser/HttpBridgeModuleResolver.d.mts.map +1 -1
- package/dist/browser/HttpBridgeModuleResolver.d.ts +18 -2
- package/dist/browser/HttpBridgeModuleResolver.d.ts.map +1 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.cts +9 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.mts +9 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.ts +9 -1
- package/dist/browser/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/browser/index-browser.cjs +132 -60
- package/dist/browser/index-browser.cjs.map +1 -1
- package/dist/browser/index-browser.js +127 -55
- package/dist/browser/index-browser.js.map +1 -1
- package/dist/neutral/HttpBridgeBase.d.cts +4 -1
- package/dist/neutral/HttpBridgeBase.d.cts.map +1 -1
- package/dist/neutral/HttpBridgeBase.d.mts +4 -1
- package/dist/neutral/HttpBridgeBase.d.mts.map +1 -1
- package/dist/neutral/HttpBridgeBase.d.ts +4 -1
- package/dist/neutral/HttpBridgeBase.d.ts.map +1 -1
- package/dist/neutral/HttpBridgeModuleResolver.d.cts +18 -2
- package/dist/neutral/HttpBridgeModuleResolver.d.cts.map +1 -1
- package/dist/neutral/HttpBridgeModuleResolver.d.mts +18 -2
- package/dist/neutral/HttpBridgeModuleResolver.d.mts.map +1 -1
- package/dist/neutral/HttpBridgeModuleResolver.d.ts +18 -2
- package/dist/neutral/HttpBridgeModuleResolver.d.ts.map +1 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.cts +9 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.mts +9 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.ts +9 -1
- package/dist/neutral/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/neutral/index-browser.cjs +132 -60
- package/dist/neutral/index-browser.cjs.map +1 -1
- package/dist/neutral/index-browser.js +127 -55
- package/dist/neutral/index-browser.js.map +1 -1
- package/dist/node/HttpBridgeBase.d.cts +4 -1
- package/dist/node/HttpBridgeBase.d.cts.map +1 -1
- package/dist/node/HttpBridgeBase.d.mts +4 -1
- package/dist/node/HttpBridgeBase.d.mts.map +1 -1
- package/dist/node/HttpBridgeBase.d.ts +4 -1
- package/dist/node/HttpBridgeBase.d.ts.map +1 -1
- package/dist/node/HttpBridgeModuleResolver.d.cts +18 -2
- package/dist/node/HttpBridgeModuleResolver.d.cts.map +1 -1
- package/dist/node/HttpBridgeModuleResolver.d.mts +18 -2
- package/dist/node/HttpBridgeModuleResolver.d.mts.map +1 -1
- package/dist/node/HttpBridgeModuleResolver.d.ts +18 -2
- package/dist/node/HttpBridgeModuleResolver.d.ts.map +1 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.cts +9 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.cts.map +1 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.mts +9 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.mts.map +1 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.ts +9 -1
- package/dist/node/ModuleProxy/ModuleProxy.d.ts.map +1 -1
- package/dist/node/index.cjs +145 -72
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +139 -66
- package/dist/node/index.js.map +1 -1
- package/package.json +24 -20
- package/src/HttpBridgeBase.ts +52 -5
- package/src/HttpBridgeModuleResolver.ts +42 -35
- package/src/ModuleProxy/ModuleProxy.ts +68 -2
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { AbstractBridgeModuleResolver, BridgeModuleResolverParams } from '@xyo-network/bridge-abstract';
|
|
3
3
|
import { ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
|
|
4
|
-
import {
|
|
4
|
+
import { Mutex } from 'async-mutex';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
import { BridgeQuerySender, HttpModuleProxyParams } from './ModuleProxy';
|
|
5
7
|
export interface HttpBridgeModuleResolverParams extends BridgeModuleResolverParams {
|
|
6
8
|
querySender: BridgeQuerySender;
|
|
7
9
|
rootUrl: string;
|
|
8
10
|
}
|
|
9
11
|
export declare class HttpBridgeModuleResolver<T extends HttpBridgeModuleResolverParams = HttpBridgeModuleResolverParams> extends AbstractBridgeModuleResolver<T> {
|
|
12
|
+
protected _resolvedCache: LRUCache<Lowercase<string>, ModuleInstance<import("@xylabs/object").BaseParamsFields & {
|
|
13
|
+
account?: import("@xyo-network/account").AccountInstance | "random" | undefined;
|
|
14
|
+
addToResolvers?: boolean | undefined;
|
|
15
|
+
additionalSigners?: import("@xyo-network/account").AccountInstance[] | undefined;
|
|
16
|
+
allowNameResolution?: boolean | undefined;
|
|
17
|
+
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
18
|
+
schema: "network.xyo.module.config";
|
|
19
|
+
}, "schema"> & {
|
|
20
|
+
schema: string;
|
|
21
|
+
};
|
|
22
|
+
ephemeralQueryAccountEnabled?: boolean | undefined;
|
|
23
|
+
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
|
|
24
|
+
}, import("@xyo-network/module-model").ModuleEventData<object>>, unknown>;
|
|
25
|
+
protected _resolvedCacheMutex: Mutex;
|
|
10
26
|
get querySender(): BridgeQuerySender;
|
|
11
27
|
moduleUrl(address: Address): URL;
|
|
12
|
-
resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
28
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>, params?: Partial<HttpModuleProxyParams>): Promise<T[]>;
|
|
13
29
|
}
|
|
14
30
|
//# sourceMappingURL=HttpBridgeModuleResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/HttpBridgeModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAE3H,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAEf,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"HttpBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/HttpBridgeModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAE3H,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAEzF,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,WAAW,EAAE,iBAAiB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,wBAAwB,CACnC,CAAC,SAAS,8BAA8B,GAAG,8BAA8B,CACzE,SAAQ,4BAA4B,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,cAAc;;;;;;;;;;;;8EAAuD;IAC/E,SAAS,CAAC,mBAAmB,QAAc;IAE3C,IAAI,WAAW,sBAEd;IAED,SAAS,CAAC,OAAO,EAAE,OAAO;IAIX,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACrE,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,CAAC,EAAE,CAAC;CAuDhB"}
|
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { AbstractBridgeModuleResolver, BridgeModuleResolverParams } from '@xyo-network/bridge-abstract';
|
|
3
3
|
import { ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model';
|
|
4
|
-
import {
|
|
4
|
+
import { Mutex } from 'async-mutex';
|
|
5
|
+
import { LRUCache } from 'lru-cache';
|
|
6
|
+
import { BridgeQuerySender, HttpModuleProxyParams } from './ModuleProxy';
|
|
5
7
|
export interface HttpBridgeModuleResolverParams extends BridgeModuleResolverParams {
|
|
6
8
|
querySender: BridgeQuerySender;
|
|
7
9
|
rootUrl: string;
|
|
8
10
|
}
|
|
9
11
|
export declare class HttpBridgeModuleResolver<T extends HttpBridgeModuleResolverParams = HttpBridgeModuleResolverParams> extends AbstractBridgeModuleResolver<T> {
|
|
12
|
+
protected _resolvedCache: LRUCache<Lowercase<string>, ModuleInstance<import("@xylabs/object").BaseParamsFields & {
|
|
13
|
+
account?: import("@xyo-network/account").AccountInstance | "random" | undefined;
|
|
14
|
+
addToResolvers?: boolean | undefined;
|
|
15
|
+
additionalSigners?: import("@xyo-network/account").AccountInstance[] | undefined;
|
|
16
|
+
allowNameResolution?: boolean | undefined;
|
|
17
|
+
config: import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & Omit<import("@xyo-network/module-model").ArchivingModuleConfig & import("@xyo-network/module-model").ModuleConfigFields & import("@xyo-network/payload-model").SchemaFields & import("@xyo-network/payload-model").PayloadFields & {
|
|
18
|
+
schema: "network.xyo.module.config";
|
|
19
|
+
}, "schema"> & {
|
|
20
|
+
schema: string;
|
|
21
|
+
};
|
|
22
|
+
ephemeralQueryAccountEnabled?: boolean | undefined;
|
|
23
|
+
moduleIdentifierTransformers?: import("@xyo-network/module-model").ModuleIdentifierTransformer[] | undefined;
|
|
24
|
+
}, import("@xyo-network/module-model").ModuleEventData<object>>, unknown>;
|
|
25
|
+
protected _resolvedCacheMutex: Mutex;
|
|
10
26
|
get querySender(): BridgeQuerySender;
|
|
11
27
|
moduleUrl(address: Address): URL;
|
|
12
|
-
resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
28
|
+
resolveHandler<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>, params?: Partial<HttpModuleProxyParams>): Promise<T[]>;
|
|
13
29
|
}
|
|
14
30
|
//# sourceMappingURL=HttpBridgeModuleResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/HttpBridgeModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAE3H,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAEf,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"HttpBridgeModuleResolver.d.ts","sourceRoot":"","sources":["../../src/HttpBridgeModuleResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAsB,MAAM,8BAA8B,CAAA;AAE3H,OAAO,EAIL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAmB,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAEzF,MAAM,WAAW,8BAA+B,SAAQ,0BAA0B;IAChF,WAAW,EAAE,iBAAiB,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,wBAAwB,CACnC,CAAC,SAAS,8BAA8B,GAAG,8BAA8B,CACzE,SAAQ,4BAA4B,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,cAAc;;;;;;;;;;;;8EAAuD;IAC/E,SAAS,CAAC,mBAAmB,QAAc;IAE3C,IAAI,WAAW,sBAEd;IAED,SAAS,CAAC,OAAO,EAAE,OAAO;IAIX,cAAc,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EACrE,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACtC,OAAO,CAAC,CAAC,EAAE,CAAC;CAuDhB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/bridge-abstract';
|
|
4
|
-
import { AttachableModuleInstance, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
4
|
+
import { AttachableModuleInstance, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
export interface BridgeQuerySender {
|
|
7
7
|
sendBridgeQuery: <TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(targetAddress: Address, query: TQuery, payloads?: TIn[]) => Promise<ModuleQueryResult<TOut>>;
|
|
@@ -17,5 +17,13 @@ export declare class HttpModuleProxy<TWrappedModule extends ModuleInstance = Mod
|
|
|
17
17
|
static createCount: number;
|
|
18
18
|
constructor(params: TParams);
|
|
19
19
|
proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult>;
|
|
20
|
+
publicChildren(): Promise<ModuleInstance[]>;
|
|
21
|
+
/** @deprecated do not pass undefined. If trying to get all, pass '*' */
|
|
22
|
+
resolve(): Promise<ModuleInstance[]>;
|
|
23
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
24
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
26
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
27
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=ModuleProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAGlB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,CAAC,IAAI,SAAS,OAAO,GAAG,OAAO,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,OAAO,GAAG,OAAO,EACnI,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KACb,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACtD,WAAW,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAED,qBAAa,eAAe,CACxB,cAAc,SAAS,cAAc,GAAG,cAAc,EACtD,OAAO,SAAS,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IACrI,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAEH,SAAQ,mBAAmB,CAAC,cAAc,EAAE,OAAO,CACnD,YAAW,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAC,WAAW,SAAI;gBAEV,MAAM,EAAE,OAAO;IAQrB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWzH,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAU1D,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACxH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjJ,mDAAmD;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAsCzI"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/bridge-abstract';
|
|
4
|
-
import { AttachableModuleInstance, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
4
|
+
import { AttachableModuleInstance, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
export interface BridgeQuerySender {
|
|
7
7
|
sendBridgeQuery: <TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(targetAddress: Address, query: TQuery, payloads?: TIn[]) => Promise<ModuleQueryResult<TOut>>;
|
|
@@ -17,5 +17,13 @@ export declare class HttpModuleProxy<TWrappedModule extends ModuleInstance = Mod
|
|
|
17
17
|
static createCount: number;
|
|
18
18
|
constructor(params: TParams);
|
|
19
19
|
proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult>;
|
|
20
|
+
publicChildren(): Promise<ModuleInstance[]>;
|
|
21
|
+
/** @deprecated do not pass undefined. If trying to get all, pass '*' */
|
|
22
|
+
resolve(): Promise<ModuleInstance[]>;
|
|
23
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
24
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
26
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
27
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=ModuleProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAGlB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,CAAC,IAAI,SAAS,OAAO,GAAG,OAAO,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,OAAO,GAAG,OAAO,EACnI,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KACb,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACtD,WAAW,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAED,qBAAa,eAAe,CACxB,cAAc,SAAS,cAAc,GAAG,cAAc,EACtD,OAAO,SAAS,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IACrI,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAEH,SAAQ,mBAAmB,CAAC,cAAc,EAAE,OAAO,CACnD,YAAW,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAC,WAAW,SAAI;gBAEV,MAAM,EAAE,OAAO;IAQrB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWzH,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAU1D,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACxH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjJ,mDAAmD;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAsCzI"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Address } from '@xylabs/hex';
|
|
2
2
|
import { QueryBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
3
|
import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/bridge-abstract';
|
|
4
|
-
import { AttachableModuleInstance, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
4
|
+
import { AttachableModuleInstance, ModuleFilter, ModuleFilterOptions, ModuleIdentifier, ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model';
|
|
5
5
|
import { Payload } from '@xyo-network/payload-model';
|
|
6
6
|
export interface BridgeQuerySender {
|
|
7
7
|
sendBridgeQuery: <TOut extends Payload = Payload, TQuery extends QueryBoundWitness = QueryBoundWitness, TIn extends Payload = Payload>(targetAddress: Address, query: TQuery, payloads?: TIn[]) => Promise<ModuleQueryResult<TOut>>;
|
|
@@ -17,5 +17,13 @@ export declare class HttpModuleProxy<TWrappedModule extends ModuleInstance = Mod
|
|
|
17
17
|
static createCount: number;
|
|
18
18
|
constructor(params: TParams);
|
|
19
19
|
proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads?: Payload[]): Promise<ModuleQueryResult>;
|
|
20
|
+
publicChildren(): Promise<ModuleInstance[]>;
|
|
21
|
+
/** @deprecated do not pass undefined. If trying to get all, pass '*' */
|
|
22
|
+
resolve(): Promise<ModuleInstance[]>;
|
|
23
|
+
resolve<T extends ModuleInstance = ModuleInstance>(all: '*', options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
24
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
25
|
+
resolve<T extends ModuleInstance = ModuleInstance>(id: ModuleIdentifier, options?: ModuleFilterOptions<T>): Promise<T | undefined>;
|
|
26
|
+
/** @deprecated use '*' if trying to resolve all */
|
|
27
|
+
resolve<T extends ModuleInstance = ModuleInstance>(filter?: ModuleFilter, options?: ModuleFilterOptions<T>): Promise<T[]>;
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=ModuleProxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModuleProxy.d.ts","sourceRoot":"","sources":["../../../src/ModuleProxy/ModuleProxy.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAa,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrF,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAGlB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,CAAC,IAAI,SAAS,OAAO,GAAG,OAAO,EAAE,MAAM,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,GAAG,SAAS,OAAO,GAAG,OAAO,EACnI,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,GAAG,EAAE,KACb,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;CACtC;AAED,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACtD,WAAW,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAED,qBAAa,eAAe,CACxB,cAAc,SAAS,cAAc,GAAG,cAAc,EACtD,OAAO,SAAS,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IACrI,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;CACjC,CAEH,SAAQ,mBAAmB,CAAC,cAAc,EAAE,OAAO,CACnD,YAAW,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEzE,MAAM,CAAC,WAAW,SAAI;gBAEV,MAAM,EAAE,OAAO;IAQrB,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,GAAE,OAAO,EAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWzH,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAU1D,yEAAyE;IAC1D,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5G,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IACxH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACjJ,mDAAmD;IACpC,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAsCzI"}
|
|
@@ -27,36 +27,42 @@ __export(index_browser_exports, {
|
|
|
27
27
|
module.exports = __toCommonJS(index_browser_exports);
|
|
28
28
|
|
|
29
29
|
// src/HttpBridgeClientOnly.ts
|
|
30
|
-
var
|
|
30
|
+
var import_module_model4 = require("@xyo-network/module-model");
|
|
31
31
|
|
|
32
32
|
// src/HttpBridgeBase.ts
|
|
33
|
-
var
|
|
33
|
+
var import_assert3 = require("@xylabs/assert");
|
|
34
34
|
var import_axios = require("@xylabs/axios");
|
|
35
|
-
var
|
|
35
|
+
var import_exists2 = require("@xylabs/exists");
|
|
36
36
|
var import_forget2 = require("@xylabs/forget");
|
|
37
37
|
var import_object = require("@xylabs/object");
|
|
38
38
|
var import_bridge_abstract3 = require("@xyo-network/bridge-abstract");
|
|
39
39
|
var import_manifest_model = require("@xyo-network/manifest-model");
|
|
40
|
-
var
|
|
40
|
+
var import_module_model3 = require("@xyo-network/module-model");
|
|
41
41
|
var import_node_model = require("@xyo-network/node-model");
|
|
42
42
|
var import_payload_model = require("@xyo-network/payload-model");
|
|
43
|
-
var
|
|
44
|
-
var
|
|
43
|
+
var import_async_mutex2 = require("async-mutex");
|
|
44
|
+
var import_lru_cache2 = require("lru-cache");
|
|
45
45
|
|
|
46
46
|
// src/HttpBridgeConfig.ts
|
|
47
47
|
var HttpBridgeConfigSchema = "network.xyo.bridge.http.config";
|
|
48
48
|
|
|
49
49
|
// src/HttpBridgeModuleResolver.ts
|
|
50
|
-
var
|
|
51
|
-
var
|
|
50
|
+
var import_assert2 = require("@xylabs/assert");
|
|
51
|
+
var import_hex2 = require("@xylabs/hex");
|
|
52
52
|
var import_account = require("@xyo-network/account");
|
|
53
53
|
var import_bridge_abstract2 = require("@xyo-network/bridge-abstract");
|
|
54
54
|
var import_config_payload_plugin = require("@xyo-network/config-payload-plugin");
|
|
55
|
-
var
|
|
55
|
+
var import_module_model2 = require("@xyo-network/module-model");
|
|
56
|
+
var import_async_mutex = require("async-mutex");
|
|
57
|
+
var import_lru_cache = require("lru-cache");
|
|
56
58
|
|
|
57
59
|
// src/ModuleProxy/ModuleProxy.ts
|
|
60
|
+
var import_assert = require("@xylabs/assert");
|
|
61
|
+
var import_exists = require("@xylabs/exists");
|
|
58
62
|
var import_forget = require("@xylabs/forget");
|
|
63
|
+
var import_hex = require("@xylabs/hex");
|
|
59
64
|
var import_bridge_abstract = require("@xyo-network/bridge-abstract");
|
|
65
|
+
var import_module_model = require("@xyo-network/module-model");
|
|
60
66
|
var HttpModuleProxy = class _HttpModuleProxy extends import_bridge_abstract.AbstractModuleProxy {
|
|
61
67
|
static {
|
|
62
68
|
__name(this, "HttpModuleProxy");
|
|
@@ -82,6 +88,40 @@ var HttpModuleProxy = class _HttpModuleProxy extends import_bridge_abstract.Abst
|
|
|
82
88
|
}
|
|
83
89
|
return result;
|
|
84
90
|
}
|
|
91
|
+
async publicChildren() {
|
|
92
|
+
return (await Promise.all(Object.values(await this.childAddressMap()).filter(import_exists.exists).map((address) => this.resolve(address)))).filter(import_exists.exists);
|
|
93
|
+
}
|
|
94
|
+
async resolve(idOrFilter = "*", options = {}) {
|
|
95
|
+
const config = {
|
|
96
|
+
address: this.address,
|
|
97
|
+
dead: this.dead,
|
|
98
|
+
downResolver: this.downResolver,
|
|
99
|
+
logger: this.logger,
|
|
100
|
+
module: this,
|
|
101
|
+
transformers: this.moduleIdentifierTransformers,
|
|
102
|
+
upResolver: this.upResolver
|
|
103
|
+
};
|
|
104
|
+
if (idOrFilter === "*") {
|
|
105
|
+
return await this.publicChildren();
|
|
106
|
+
}
|
|
107
|
+
switch (typeof idOrFilter) {
|
|
108
|
+
case "string": {
|
|
109
|
+
const parts = idOrFilter.split(":");
|
|
110
|
+
const first = (0, import_assert.assertEx)(parts.shift(), () => "Missing first");
|
|
111
|
+
const remainingPath = parts.join(":");
|
|
112
|
+
const address = (0, import_hex.isAddress)(first) ? first : this.id === first ? this.address : this.childAddressByName(first);
|
|
113
|
+
if (!address) return void 0;
|
|
114
|
+
const firstInstance = await this.params.host.resolve(address);
|
|
115
|
+
return remainingPath ? await firstInstance?.resolve(remainingPath) : firstInstance;
|
|
116
|
+
}
|
|
117
|
+
case "object": {
|
|
118
|
+
return (await import_module_model.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
|
|
119
|
+
}
|
|
120
|
+
default: {
|
|
121
|
+
return (await import_module_model.ResolveHelper.resolve(config, idOrFilter, options)).filter((mod) => mod.address !== this.address);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
85
125
|
};
|
|
86
126
|
|
|
87
127
|
// src/HttpBridgeModuleResolver.ts
|
|
@@ -89,63 +129,69 @@ var HttpBridgeModuleResolver = class extends import_bridge_abstract2.AbstractBri
|
|
|
89
129
|
static {
|
|
90
130
|
__name(this, "HttpBridgeModuleResolver");
|
|
91
131
|
}
|
|
132
|
+
_resolvedCache = new import_lru_cache.LRUCache({
|
|
133
|
+
max: 1e3
|
|
134
|
+
});
|
|
135
|
+
_resolvedCacheMutex = new import_async_mutex.Mutex();
|
|
92
136
|
get querySender() {
|
|
93
137
|
return this.params.querySender;
|
|
94
138
|
}
|
|
95
139
|
moduleUrl(address) {
|
|
96
140
|
return new URL(address, this.params.rootUrl);
|
|
97
141
|
}
|
|
98
|
-
async resolveHandler(id, options) {
|
|
142
|
+
async resolveHandler(id, options, params) {
|
|
99
143
|
const parentResult = await super.resolveHandler(id, options);
|
|
100
144
|
if (parentResult.length > 0) {
|
|
101
145
|
return parentResult;
|
|
102
146
|
}
|
|
103
|
-
if (id === "*") {
|
|
104
|
-
return [];
|
|
105
|
-
}
|
|
106
147
|
const idParts = id.split(":");
|
|
107
|
-
const untransformedFirstPart = (0,
|
|
108
|
-
const firstPart = await
|
|
109
|
-
|
|
110
|
-
(0, import_assert.assertEx)((0, import_hex.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
|
|
148
|
+
const untransformedFirstPart = (0, import_assert2.assertEx)(idParts.shift(), () => "Missing module identifier");
|
|
149
|
+
const firstPart = await import_module_model2.ResolveHelper.transformModuleIdentifier(untransformedFirstPart);
|
|
150
|
+
(0, import_assert2.assertEx)((0, import_hex2.isAddress)(firstPart), () => `Invalid module address: ${firstPart}`);
|
|
111
151
|
const remainderParts = idParts.join(":");
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
152
|
+
const instance = await this._resolvedCacheMutex.runExclusive(async () => {
|
|
153
|
+
const cachedMod = this._resolvedCache.get(firstPart);
|
|
154
|
+
if (cachedMod) {
|
|
155
|
+
const result2 = idParts.length <= 0 ? cachedMod : cachedMod.resolve(remainderParts, {
|
|
156
|
+
...options,
|
|
157
|
+
maxDepth: (options?.maxDepth ?? 5) - 1
|
|
158
|
+
});
|
|
159
|
+
return result2;
|
|
160
|
+
}
|
|
161
|
+
const account = import_account.Account.randomSync();
|
|
162
|
+
const finalParams = {
|
|
163
|
+
account,
|
|
164
|
+
archiving: this.params.archiving,
|
|
165
|
+
config: {
|
|
166
|
+
schema: import_module_model2.ModuleConfigSchema
|
|
167
|
+
},
|
|
168
|
+
host: this,
|
|
169
|
+
moduleAddress: firstPart,
|
|
170
|
+
onQuerySendFinished: this.params.onQuerySendFinished,
|
|
171
|
+
onQuerySendStarted: this.params.onQuerySendStarted,
|
|
172
|
+
querySender: this.params.querySender,
|
|
173
|
+
...params
|
|
174
|
+
};
|
|
175
|
+
this.logger?.debug(`creating HttpProxy [${firstPart}] ${id}`);
|
|
176
|
+
console.log(`creating HttpProxy [${firstPart}] ${id}`);
|
|
177
|
+
const proxy = new HttpModuleProxy(finalParams);
|
|
128
178
|
const state = await proxy.state();
|
|
129
179
|
if (state) {
|
|
130
180
|
const configSchema = state.find((payload) => payload.schema === import_config_payload_plugin.ConfigSchema)?.config;
|
|
131
|
-
const config = (0,
|
|
181
|
+
const config = (0, import_assert2.assertEx)(state.find((payload) => payload.schema === configSchema), () => "Unable to locate config");
|
|
132
182
|
proxy.setConfig(config);
|
|
133
183
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
return [
|
|
147
|
-
instance
|
|
148
|
-
];
|
|
184
|
+
console.log(`created HttpProxy [${firstPart}] ${proxy.id}`);
|
|
185
|
+
await proxy.start?.();
|
|
186
|
+
const wrapped = (0, import_bridge_abstract2.wrapModuleWithType)(proxy, account);
|
|
187
|
+
(0, import_assert2.assertEx)((0, import_module_model2.asModuleInstance)(wrapped, {}), () => `Failed to asModuleInstance [${id}]`);
|
|
188
|
+
this._resolvedCache.set(wrapped.address, wrapped);
|
|
189
|
+
return wrapped;
|
|
190
|
+
});
|
|
191
|
+
const result = remainderParts.length > 0 ? await instance.resolve(remainderParts, options) : instance;
|
|
192
|
+
return result ? [
|
|
193
|
+
result
|
|
194
|
+
] : [];
|
|
149
195
|
}
|
|
150
196
|
};
|
|
151
197
|
|
|
@@ -172,8 +218,8 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
172
218
|
static defaultMaxPayloadSizeWarning = 256 * 256;
|
|
173
219
|
static maxFailureCacheSize = 1e3;
|
|
174
220
|
_axios;
|
|
175
|
-
_discoverRootsMutex = new
|
|
176
|
-
_failureTimeCache = new
|
|
221
|
+
_discoverRootsMutex = new import_async_mutex2.Mutex();
|
|
222
|
+
_failureTimeCache = new import_lru_cache2.LRUCache({
|
|
177
223
|
max: _HttpBridgeBase.maxFailureCacheSize
|
|
178
224
|
});
|
|
179
225
|
_querySemaphore;
|
|
@@ -183,7 +229,7 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
183
229
|
return this._axios;
|
|
184
230
|
}
|
|
185
231
|
get clientUrl() {
|
|
186
|
-
return (0,
|
|
232
|
+
return (0, import_assert3.assertEx)(this.config.client?.url ?? this.config.nodeUrl, () => "No Url Set");
|
|
187
233
|
}
|
|
188
234
|
get failureRetryTime() {
|
|
189
235
|
return this.config.failureRetryTime ?? _HttpBridgeBase.defaultFailureRetryTime;
|
|
@@ -195,7 +241,7 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
195
241
|
return this.config.maxPayloadSizeWarning ?? _HttpBridgeBase.defaultMaxPayloadSizeWarning;
|
|
196
242
|
}
|
|
197
243
|
get querySemaphore() {
|
|
198
|
-
this._querySemaphore = this._querySemaphore ?? new
|
|
244
|
+
this._querySemaphore = this._querySemaphore ?? new import_async_mutex2.Semaphore(this.maxConnections);
|
|
199
245
|
return this._querySemaphore;
|
|
200
246
|
}
|
|
201
247
|
get resolver() {
|
|
@@ -225,6 +271,23 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
225
271
|
});
|
|
226
272
|
return this._resolver;
|
|
227
273
|
}
|
|
274
|
+
async connect(id) {
|
|
275
|
+
const transformedId = (0, import_assert3.assertEx)(await import_module_model3.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
|
|
276
|
+
const existingInstance = await this.resolve(transformedId);
|
|
277
|
+
if (existingInstance) {
|
|
278
|
+
return existingInstance.address;
|
|
279
|
+
}
|
|
280
|
+
const [instance] = await this.resolver.resolveHandler(id);
|
|
281
|
+
return this.connectInstance(instance);
|
|
282
|
+
}
|
|
283
|
+
async disconnect(id) {
|
|
284
|
+
const transformedId = (0, import_assert3.assertEx)(await import_module_model3.ResolveHelper.transformModuleIdentifier(id), () => `Unable to transform module identifier: ${id}`);
|
|
285
|
+
const instance = await this.resolve(transformedId);
|
|
286
|
+
if (instance) {
|
|
287
|
+
this.downResolver.remove(instance.address);
|
|
288
|
+
return instance.address;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
228
291
|
exposeHandler(_id, _options) {
|
|
229
292
|
throw new Error("Unsupported");
|
|
230
293
|
}
|
|
@@ -238,7 +301,7 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
238
301
|
this.logger?.debug(`HttpBridge:discoverRoots.state [${state?.length}]`);
|
|
239
302
|
const nodeManifest = state?.find((0, import_payload_model.isPayloadOfSchemaType)(import_manifest_model.NodeManifestPayloadSchema));
|
|
240
303
|
if (nodeManifest) {
|
|
241
|
-
const mods = (await this.resolveRootNode(nodeManifest)).filter(
|
|
304
|
+
const mods = (await this.resolveRootNode(nodeManifest)).filter(import_exists2.exists);
|
|
242
305
|
this.logger?.debug(`HttpBridge:discoverRoots [${mods.length}]`);
|
|
243
306
|
this._roots = mods;
|
|
244
307
|
} else {
|
|
@@ -294,9 +357,16 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
294
357
|
unexposeHandler(_id, _options) {
|
|
295
358
|
throw new Error("Unsupported");
|
|
296
359
|
}
|
|
360
|
+
connectInstance(instance) {
|
|
361
|
+
if (instance) {
|
|
362
|
+
this.downResolver.add(instance);
|
|
363
|
+
this.logger?.log(`Connect: ${instance.id}`);
|
|
364
|
+
return instance.address;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
297
367
|
async getRootState() {
|
|
298
368
|
const queryPayload = {
|
|
299
|
-
schema:
|
|
369
|
+
schema: import_module_model3.ModuleStateQuerySchema
|
|
300
370
|
};
|
|
301
371
|
const boundQuery = await this.bindQuery(queryPayload);
|
|
302
372
|
try {
|
|
@@ -315,12 +385,14 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
315
385
|
}
|
|
316
386
|
}
|
|
317
387
|
async resolveRootNode(nodeManifest) {
|
|
318
|
-
const rootModule = (0,
|
|
319
|
-
|
|
388
|
+
const rootModule = (0, import_assert3.assertEx)((await this.resolver.resolveHandler((0, import_assert3.assertEx)(nodeManifest.status?.address, () => "Root has no address"), void 0, {
|
|
389
|
+
manifest: nodeManifest
|
|
390
|
+
})).at(0), () => `Root not found [${nodeManifest.status?.address}]`);
|
|
391
|
+
(0, import_assert3.assertEx)(rootModule.constructor.name !== "HttpModuleProxy", () => "rootModule is not a Wrapper");
|
|
320
392
|
const rootNode = (0, import_node_model.asAttachableNodeInstance)(rootModule, "Root modules is not a node");
|
|
321
393
|
if (rootNode) {
|
|
322
394
|
this.logger.debug(`rootNode: ${rootNode.id}`);
|
|
323
|
-
this.
|
|
395
|
+
this.connectInstance(rootNode);
|
|
324
396
|
return [
|
|
325
397
|
rootNode
|
|
326
398
|
];
|
|
@@ -329,7 +401,7 @@ var HttpBridgeBase = class _HttpBridgeBase extends import_bridge_abstract3.Abstr
|
|
|
329
401
|
}
|
|
330
402
|
};
|
|
331
403
|
HttpBridgeBase = _ts_decorate([
|
|
332
|
-
(0,
|
|
404
|
+
(0, import_module_model3.creatableModule)()
|
|
333
405
|
], HttpBridgeBase);
|
|
334
406
|
|
|
335
407
|
// src/HttpBridgeClientOnly.ts
|
|
@@ -346,6 +418,6 @@ var HttpBridge = class extends HttpBridgeBase {
|
|
|
346
418
|
}
|
|
347
419
|
};
|
|
348
420
|
HttpBridge = _ts_decorate2([
|
|
349
|
-
(0,
|
|
421
|
+
(0, import_module_model4.creatableModule)()
|
|
350
422
|
], HttpBridge);
|
|
351
423
|
//# sourceMappingURL=index-browser.cjs.map
|