@xyo-network/bridge-websocket 2.94.18 → 2.94.20
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/index.cjs +1 -0
- package/dist/browser/index.cjs.map +1 -1
- package/dist/browser/index.js +1 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/node/index.cjs +1 -0
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/package.json +15 -15
- package/src/Bridge.ts +1 -1
package/dist/browser/index.cjs
CHANGED
|
@@ -138,6 +138,7 @@ var WebsocketBridge = class extends import_abstract_bridge3.AbstractBridge {
|
|
|
138
138
|
get resolver() {
|
|
139
139
|
this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({
|
|
140
140
|
bridge: this,
|
|
141
|
+
root: this,
|
|
141
142
|
url: this.url,
|
|
142
143
|
wrapperAccount: this.account
|
|
143
144
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["export * from './Bridge'\nexport * from './Config'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["import_assert","import_abstract_bridge","import_module_model","WebsocketBridgeConfigSchema","import_abstract_bridge","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","creatableModule"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["export * from './Bridge'\nexport * from './Config'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, root: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["import_assert","import_abstract_bridge","import_module_model","WebsocketBridgeConfigSchema","import_abstract_bridge","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","root","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","creatableModule"]}
|
package/dist/browser/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["assertEx","AbstractBridge","creatableModule","WebsocketBridgeConfigSchema","assertEx","isAddress","AbstractBridgeModuleResolver","wrapModuleWithType","Account","ConfigSchema","asModuleInstance","ModuleConfigSchema","AbstractModuleProxy","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","creatableModule"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, root: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["assertEx","AbstractBridge","creatableModule","WebsocketBridgeConfigSchema","assertEx","isAddress","AbstractBridgeModuleResolver","wrapModuleWithType","Account","ConfigSchema","asModuleInstance","ModuleConfigSchema","AbstractModuleProxy","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","root","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","creatableModule"]}
|
package/dist/node/index.cjs
CHANGED
|
@@ -136,6 +136,7 @@ var _WebsocketBridge = class _WebsocketBridge extends import_abstract_bridge3.Ab
|
|
|
136
136
|
get resolver() {
|
|
137
137
|
this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({
|
|
138
138
|
bridge: this,
|
|
139
|
+
root: this,
|
|
139
140
|
url: this.url,
|
|
140
141
|
wrapperAccount: this.account
|
|
141
142
|
});
|
package/dist/node/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["export * from './Bridge'\nexport * from './Config'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["import_assert","import_abstract_bridge","import_module_model","WebsocketBridgeConfigSchema","import_abstract_bridge","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","creatableModule"]}
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts","../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["export * from './Bridge'\nexport * from './Config'\n","import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, root: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["import_assert","import_abstract_bridge","import_module_model","WebsocketBridgeConfigSchema","import_abstract_bridge","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","root","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","creatableModule"]}
|
package/dist/node/index.js
CHANGED
|
@@ -111,6 +111,7 @@ var _WebsocketBridge = class _WebsocketBridge extends AbstractBridge {
|
|
|
111
111
|
get resolver() {
|
|
112
112
|
this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({
|
|
113
113
|
bridge: this,
|
|
114
|
+
root: this,
|
|
114
115
|
url: this.url,
|
|
115
116
|
wrapperAccount: this.account
|
|
116
117
|
});
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["assertEx","AbstractBridge","creatableModule","WebsocketBridgeConfigSchema","assertEx","isAddress","AbstractBridgeModuleResolver","wrapModuleWithType","Account","ConfigSchema","asModuleInstance","ModuleConfigSchema","AbstractModuleProxy","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","creatableModule"]}
|
|
1
|
+
{"version":3,"sources":["../../src/Bridge.ts","../../src/Config.ts","../../src/ModuleResolver.ts","../../src/ModuleProxy/ModuleProxy.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Address } from '@xylabs/hex'\nimport { Promisable } from '@xylabs/promise'\nimport { AbstractBridge } from '@xyo-network/abstract-bridge'\nimport { BridgeExposeOptions, BridgeModule, BridgeParams, BridgeUnexposeOptions } from '@xyo-network/bridge-model'\nimport { AnyConfigSchema, creatableModule, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketBridgeConfig, WebsocketBridgeConfigSchema } from './Config'\nimport { WebsocketBridgeModuleResolver } from './ModuleResolver'\n\nexport type WebsocketBridgeParams<TConfig extends AnyConfigSchema<WebsocketBridgeConfig> = AnyConfigSchema<WebsocketBridgeConfig>> =\n BridgeParams<TConfig>\n\n@creatableModule()\nexport class WebsocketBridge<TParams extends WebsocketBridgeParams> extends AbstractBridge<TParams> implements BridgeModule<TParams> {\n static override configSchemas = [WebsocketBridgeConfigSchema]\n static maxPayloadSizeWarning = 256 * 256\n\n private _resolver?: WebsocketBridgeModuleResolver\n\n override get resolver() {\n this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, root: this, url: this.url, wrapperAccount: this.account })\n return this._resolver\n }\n\n get url() {\n return assertEx(this.config.url, () => 'No Url Set')\n }\n\n override async discoverRoots(): Promise<ModuleInstance[]> {\n return await Promise.resolve([])\n }\n\n override exposeHandler(_id: string, _options?: BridgeExposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n\n override exposedHandler(): Promisable<Address[]> {\n throw new Error('Unsupported')\n }\n\n override async startHandler(): Promise<boolean> {\n // eslint-disable-next-line deprecation/deprecation\n const { discoverRoot = true, legacyMode } = this.config\n if (discoverRoot || legacyMode) {\n await this.discoverRoots()\n }\n return true\n }\n\n override unexposeHandler(_id: string, _options?: BridgeUnexposeOptions | undefined): Promisable<ModuleInstance[]> {\n throw new Error('Unsupported')\n }\n}\n","import { EmptyObject } from '@xylabs/object'\nimport { BridgeConfig } from '@xyo-network/bridge-model'\n\nexport const WebsocketBridgeConfigSchema = 'network.xyo.bridge.websocket.config'\nexport type WebsocketBridgeConfigSchema = typeof WebsocketBridgeConfigSchema\n\nexport type WebsocketBridgeConfig<TConfig extends EmptyObject = EmptyObject, TSchema extends string | void = void> = BridgeConfig<\n {\n discoverRoot?: boolean\n /** @deprecated Do not use this for any new development */\n legacyMode?: boolean\n schema: WebsocketBridgeConfigSchema\n url?: string\n } & TConfig,\n TSchema extends string ? TSchema : WebsocketBridgeConfigSchema\n>\n","import { assertEx } from '@xylabs/assert'\nimport { Address, isAddress } from '@xylabs/hex'\nimport { AbstractBridgeModuleResolver, BridgeModuleResolverParams, wrapModuleWithType } from '@xyo-network/abstract-bridge'\nimport { Account } from '@xyo-network/account'\nimport { ConfigPayload, ConfigSchema } from '@xyo-network/config-payload-plugin'\nimport { asModuleInstance, ModuleConfig, ModuleConfigSchema, ModuleFilterOptions, ModuleIdentifier, ModuleInstance } from '@xyo-network/module-model'\n\nimport { WebsocketModuleProxy, WebsocketModuleProxyParams } from './ModuleProxy'\n\nexport interface WebsocketBridgeModuleResolverOptions extends BridgeModuleResolverParams {\n url: string\n}\n\nexport class WebsocketBridgeModuleResolver<\n T extends WebsocketBridgeModuleResolverOptions = WebsocketBridgeModuleResolverOptions,\n> extends AbstractBridgeModuleResolver<T> {\n moduleUrl(address: Address) {\n return new URL(address, this.params.url)\n }\n\n override async resolveHandler<T extends ModuleInstance = ModuleInstance>(\n id: ModuleIdentifier,\n options?: ModuleFilterOptions<T>,\n ): Promise<T | T[] | undefined> {\n const parentResult = await super.resolveHandler(id, options)\n if (parentResult) {\n return parentResult\n }\n if (id === '*') {\n return []\n }\n const idParts = id.split(':')\n const firstPart = assertEx(idParts.shift(), () => 'Missing firstPart')\n const moduleAddress = firstPart as Address\n assertEx(isAddress(firstPart), () => `Invalid module address: ${firstPart}`)\n const remainderParts = idParts.join(':')\n const params: WebsocketModuleProxyParams = {\n account: Account.randomSync(),\n config: { schema: ModuleConfigSchema },\n host: this,\n moduleAddress,\n moduleUrl: this.moduleUrl(moduleAddress).href,\n }\n\n //console.log(`creating WebsocketProxy [${moduleAddress}] ${id}`)\n\n const proxy = new WebsocketModuleProxy<T, WebsocketModuleProxyParams>(params)\n //calling state here to get the config\n if (proxy) {\n const state = await proxy.state()\n if (state) {\n const configSchema = (state.find((payload) => payload.schema === ConfigSchema) as ConfigPayload | undefined)?.config\n const config = assertEx(\n state.find((payload) => payload.schema === configSchema),\n () => 'Unable to locate config',\n ) as ModuleConfig\n proxy.setConfig(config)\n }\n }\n\n await proxy.start()\n\n const wrapped = assertEx(wrapModuleWithType(proxy, Account.randomSync()) as unknown as T, () => `Failed to wrapModuleWithType [${id}]`)\n const as = assertEx(asModuleInstance<T>(wrapped, {}), () => `Failed to asModuleInstance [${id}]`)\n proxy.upResolver.add(as)\n proxy.downResolver.add(as)\n\n if (remainderParts.length > 0) {\n const result = await wrapped.resolve<T>(remainderParts, options)\n return result\n }\n\n //console.log(`resolved: ${proxy.address} [${wrapped.constructor.name}] [${as.constructor.name}]`)\n return as\n }\n}\n","import { AbstractModuleProxy, ModuleProxyParams } from '@xyo-network/abstract-bridge'\nimport { QueryBoundWitness } from '@xyo-network/boundwitness-model'\nimport { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport { io as Client } from 'socket.io-client'\n\nexport type WebsocketModuleProxyParams = ModuleProxyParams & {\n client?: typeof Client\n maxPayloadSizeWarning?: number\n moduleUrl: string\n}\n\nexport class WebsocketModuleProxy<\n TWrappedModule extends ModuleInstance = ModuleInstance,\n TParams extends Omit<WebsocketModuleProxyParams, 'config'> & { config: TWrappedModule['config'] } = Omit<WebsocketModuleProxyParams, 'config'> & {\n config: TWrappedModule['config']\n },\n >\n extends AbstractModuleProxy<TWrappedModule, TParams>\n implements ModuleInstance<TParams, TWrappedModule['eventData']>\n{\n async proxyQueryHandler<T extends QueryBoundWitness = QueryBoundWitness>(query: T, payloads: Payload[] = []): Promise<ModuleQueryResult> {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { client, moduleUrl, maxPayloadSizeWarning } = this.params\n const payloadSize = JSON.stringify([query, payloads]).length\n if (maxPayloadSizeWarning && payloadSize > maxPayloadSizeWarning) {\n this.logger?.warn(\n `Large targetQuery being sent: ${payloadSize} bytes [${this.address}][${this.moduleAddress}] [${query.schema}] [${payloads?.length}]`,\n )\n }\n await Promise.resolve()\n throw new Error('Unsupported')\n }\n}\n"],"mappings":"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","names":["assertEx","AbstractBridge","creatableModule","WebsocketBridgeConfigSchema","assertEx","isAddress","AbstractBridgeModuleResolver","wrapModuleWithType","Account","ConfigSchema","asModuleInstance","ModuleConfigSchema","AbstractModuleProxy","WebsocketModuleProxy","AbstractModuleProxy","proxyQueryHandler","query","payloads","client","moduleUrl","maxPayloadSizeWarning","params","payloadSize","JSON","stringify","length","logger","warn","address","moduleAddress","schema","Promise","resolve","Error","WebsocketBridgeModuleResolver","AbstractBridgeModuleResolver","moduleUrl","address","URL","params","url","resolveHandler","id","options","parentResult","idParts","split","firstPart","assertEx","shift","moduleAddress","isAddress","remainderParts","join","account","Account","randomSync","config","schema","ModuleConfigSchema","host","href","proxy","WebsocketModuleProxy","state","configSchema","find","payload","ConfigSchema","setConfig","start","wrapped","wrapModuleWithType","as","asModuleInstance","upResolver","add","downResolver","length","result","resolve","WebsocketBridge","AbstractBridge","_resolver","resolver","WebsocketBridgeModuleResolver","bridge","root","url","wrapperAccount","account","assertEx","config","discoverRoots","Promise","resolve","exposeHandler","_id","_options","Error","exposedHandler","startHandler","discoverRoot","legacyMode","unexposeHandler","configSchemas","WebsocketBridgeConfigSchema","maxPayloadSizeWarning","creatableModule"]}
|
package/package.json
CHANGED
|
@@ -14,27 +14,27 @@
|
|
|
14
14
|
"@xylabs/hex": "^3.0.25",
|
|
15
15
|
"@xylabs/object": "^3.0.25",
|
|
16
16
|
"@xylabs/promise": "^3.0.25",
|
|
17
|
-
"@xyo-network/abstract-bridge": "~2.94.
|
|
18
|
-
"@xyo-network/account": "~2.94.
|
|
19
|
-
"@xyo-network/boundwitness-model": "~2.94.
|
|
20
|
-
"@xyo-network/bridge-model": "~2.94.
|
|
21
|
-
"@xyo-network/config-payload-plugin": "~2.94.
|
|
22
|
-
"@xyo-network/module-model": "~2.94.
|
|
23
|
-
"@xyo-network/payload-model": "~2.94.
|
|
17
|
+
"@xyo-network/abstract-bridge": "~2.94.21",
|
|
18
|
+
"@xyo-network/account": "~2.94.21",
|
|
19
|
+
"@xyo-network/boundwitness-model": "~2.94.21",
|
|
20
|
+
"@xyo-network/bridge-model": "~2.94.21",
|
|
21
|
+
"@xyo-network/config-payload-plugin": "~2.94.21",
|
|
22
|
+
"@xyo-network/module-model": "~2.94.21",
|
|
23
|
+
"@xyo-network/payload-model": "~2.94.21",
|
|
24
24
|
"socket.io": "^4.7.5",
|
|
25
25
|
"socket.io-client": "^4.7.5"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@xylabs/ts-scripts-yarn3": "^3.9.0",
|
|
29
29
|
"@xylabs/tsconfig": "^3.9.0",
|
|
30
|
-
"@xyo-network/account": "~2.94.
|
|
31
|
-
"@xyo-network/archivist-model": "~2.94.
|
|
32
|
-
"@xyo-network/node-memory": "~2.94.
|
|
33
|
-
"@xyo-network/node-model": "~2.94.
|
|
34
|
-
"@xyo-network/payload-builder": "~2.94.
|
|
35
|
-
"@xyo-network/payload-wrapper": "~2.94.
|
|
30
|
+
"@xyo-network/account": "~2.94.21",
|
|
31
|
+
"@xyo-network/archivist-model": "~2.94.21",
|
|
32
|
+
"@xyo-network/node-memory": "~2.94.21",
|
|
33
|
+
"@xyo-network/node-model": "~2.94.21",
|
|
34
|
+
"@xyo-network/payload-builder": "~2.94.21",
|
|
35
|
+
"@xyo-network/payload-wrapper": "~2.94.21",
|
|
36
36
|
"socket.io-client": "^4.7.5",
|
|
37
|
-
"typescript": "^5.4.
|
|
37
|
+
"typescript": "^5.4.4"
|
|
38
38
|
},
|
|
39
39
|
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
40
40
|
"types": "dist/node/index.d.ts",
|
|
@@ -75,6 +75,6 @@
|
|
|
75
75
|
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
76
76
|
},
|
|
77
77
|
"sideEffects": false,
|
|
78
|
-
"version": "2.94.
|
|
78
|
+
"version": "2.94.20",
|
|
79
79
|
"type": "module"
|
|
80
80
|
}
|
package/src/Bridge.ts
CHANGED
|
@@ -19,7 +19,7 @@ export class WebsocketBridge<TParams extends WebsocketBridgeParams> extends Abst
|
|
|
19
19
|
private _resolver?: WebsocketBridgeModuleResolver
|
|
20
20
|
|
|
21
21
|
override get resolver() {
|
|
22
|
-
this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, url: this.url, wrapperAccount: this.account })
|
|
22
|
+
this._resolver = this._resolver ?? new WebsocketBridgeModuleResolver({ bridge: this, root: this, url: this.url, wrapperAccount: this.account })
|
|
23
23
|
return this._resolver
|
|
24
24
|
}
|
|
25
25
|
|