@kyneta/bridge-transport 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/bridge.ts"],"mappings":";;;;AAwCA;;;;;;cAAa,MAAA;EAAA,SACF,UAAA,EAAU,GAAA,SAAA,eAAA;EAEnB,YAAA,CAAa,SAAA,EAAW,eAAA;EAOxB,eAAA,CAAgB,WAAA;EATP;;;;;;;EAoBT,UAAA,CACE,eAAA,UACA,aAAA,UACA,KAAA,EAAO,UAAA;EAAA,IAOL,YAAA,CAAA,GAAgB,GAAA;AAAA;AAAA,KASjB,sBAAA;EACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/bridge.ts"],"mappings":";;;;AAwCA;;;;;;cAAa,MAAA;EAAA,SACF,UAAA,EAAU,GAAA,SAAA,eAAA;EAEnB,YAAA,CAAa,SAAA,EAAW,eAAA;EAOxB,eAAA,CAAgB,WAAA;EATP;;;;;;;EAoBT,UAAA,CACE,eAAA,UACA,aAAA,UACA,KAAA,EAAO,UAAA;EAAA,IAOL,YAAA,CAAA,GAAgB,GAAA;AAAA;AAAA,KASjB,sBAAA;EACH,iBAAiB;AAAA;AAAA,KAGP,qBAAA;EAbU,+EAepB,WAAA;EAfuB;AAGxB;;;EAiBC,aAAA;EACA,MAAA,EAAQ,MAAM;AAAA;;;;;;;;;AAAA;AAgBhB;;;;cAAa,eAAA,SAAwB,SAAA,CAAU,sBAAA;EAAA,SACpC,MAAA,EAAQ,MAAA;EAAA,QAGT,gBAAA;EAAA,QACA,gBAAA;EAAA,QAIA,mBAAA;;IAEM,WAAA;IAAa,aAAA;IAAe;EAAA,GAAU,qBAAA;EAKpD,QAAA,CAAS,OAAA,EAAS,sBAAA,GAAyB,gBAAA;EAyBrC,OAAA,CAAA,GAAW,OAAA;EAqBX,MAAA,CAAA,GAAU,OAAA;EAgBhB,eAAA,CAAgB,iBAAA;EAQhB,eAAA,CAAgB,iBAAA;EAtF4B;;;;;;;EAuG5C,YAAA,CAAa,eAAA,UAAyB,KAAA,EAAO,UAAA;AAAA;;;;;;;;;;;;iBAsC/B,qBAAA,CACd,MAAA,EAAQ,qBAAA,GACP,gBAAgB"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/bridge.ts"],"sourcesContent":["// bridge-adapter — in-process transport with alias-aware delivery.\n//\n// BridgeTransport is a real transport that runs the alias-aware pipeline\n// end-to-end and applies the docId/schemaHash alias transformer at the\n// channel send/receive boundary — exactly like every other binary\n// transport. Async delivery is preserved via `queueMicrotask()` to keep\n// test behavior representative of real network adapters.\n//\n// Usage:\n// const bridge = new Bridge()\n// const exchangeA = new Exchange({\n// transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n// })\n\nimport type {\n ChannelId,\n GeneratedChannel,\n TransportFactory,\n} from \"@kyneta/transport\"\nimport { Transport } from \"@kyneta/transport\"\nimport {\n type AliasState,\n applyInboundAliasing,\n applyOutboundAliasing,\n decodeWireMessage,\n emptyAliasState,\n encodeWireMessage,\n} from \"@kyneta/wire\"\n\n// ---------------------------------------------------------------------------\n// Bridge — message router connecting multiple BridgeTransports in-process\n// ---------------------------------------------------------------------------\n\n/**\n * In-process byte router connecting multiple `BridgeTransport`s,\n * keyed by each transport's unique `transportId`.\n *\n * Channel-level sends produce alias-aware encoded bytes via the wire-layer\n * transformer and call `routeBytes`.\n */\nexport class Bridge {\n readonly transports = new Map<string, BridgeTransport>()\n\n addTransport(transport: BridgeTransport): void {\n if (!transport.transportId) {\n throw new Error(\"can't add transport without transport id\")\n }\n this.transports.set(transport.transportId, transport)\n }\n\n removeTransport(transportId: string): void {\n this.transports.delete(transportId)\n }\n\n /**\n * Route already-encoded bytes from one transport to another. The\n * receiving transport's `deliverBytes` is responsible for decoding\n * and applying the inbound alias transformer.\n *\n * Used by `BridgeTransport`'s channel send path.\n */\n routeBytes(\n fromTransportId: string,\n toTransportId: string,\n bytes: Uint8Array,\n ): void {\n const toTransport = this.transports.get(toTransportId)\n if (!toTransport) return\n toTransport.deliverBytes(fromTransportId, bytes)\n }\n\n get transportIds(): Set<string> {\n return new Set(this.transports.keys())\n }\n}\n\n// ---------------------------------------------------------------------------\n// BridgeTransport — in-process network adapter for testing\n// ---------------------------------------------------------------------------\n\ntype BridgeTransportContext = {\n targetTransportId: string\n}\n\nexport type BridgeTransportParams = {\n /** Unique identifier for this transport instance (e.g. \"peer-a\", \"server\"). */\n transportId: string\n /**\n * Transport type category. Defaults to \"bridge\".\n * Stored in ChannelMeta for informational purposes.\n */\n transportType?: string\n bridge: Bridge\n}\n\n/**\n * In-memory transport that runs the alias-aware pipeline end-to-end.\n * Tests that use this transport exercise the same wire path as\n * production transports.\n *\n * @example\n * ```typescript\n * const bridge = new Bridge()\n * const exchangeA = new Exchange({\n * transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n * })\n * ```\n */\nexport class BridgeTransport extends Transport<BridgeTransportContext> {\n readonly bridge: Bridge\n\n // Track which remote transport each channel connects to.\n private channelToAdapter = new Map<ChannelId, string>()\n private adapterToChannel = new Map<string, ChannelId>()\n\n // Per-channel alias state. Created with the channel; lives until removal.\n // Keyed by channelId.\n private aliasStateByChannel = new Map<ChannelId, AliasState>()\n\n constructor({ transportId, transportType, bridge }: BridgeTransportParams) {\n super({ transportType: transportType ?? \"bridge\", transportId })\n this.bridge = bridge\n }\n\n generate(context: BridgeTransportContext): GeneratedChannel {\n return {\n transportType: this.transportType,\n send: msg => {\n const channelId = this.adapterToChannel.get(context.targetTransportId)\n if (channelId === undefined) return\n\n const state =\n this.aliasStateByChannel.get(channelId) ?? emptyAliasState()\n const { state: nextState, wire } = applyOutboundAliasing(state, msg)\n this.aliasStateByChannel.set(channelId, nextState)\n\n const bytes = encodeWireMessage(wire)\n this.bridge.routeBytes(\n this.transportId,\n context.targetTransportId,\n bytes,\n )\n },\n stop: () => {\n // Cleanup handled by removeChannel.\n },\n }\n }\n\n async onStart(): Promise<void> {\n this.bridge.addTransport(this)\n\n // Phase 1: Create all channels (no establishment yet).\n for (const [transportId, adapter] of this.bridge.transports) {\n if (transportId !== this.transportId) {\n adapter.createChannelTo(this.transportId)\n }\n }\n for (const transportId of this.bridge.transports.keys()) {\n if (transportId !== this.transportId) {\n this.createChannelTo(transportId)\n }\n }\n\n // Phase 2: Only the joining transport initiates establishment.\n for (const channelId of this.adapterToChannel.values()) {\n this.establishChannel(channelId)\n }\n }\n\n async onStop(): Promise<void> {\n for (const [transportId, adapter] of this.bridge.transports) {\n if (transportId !== this.transportId) {\n adapter.removeChannelTo(this.transportId)\n }\n }\n this.bridge.removeTransport(this.transportId)\n\n for (const channelId of this.channelToAdapter.keys()) {\n this.removeChannel(channelId)\n this.aliasStateByChannel.delete(channelId)\n }\n this.channelToAdapter.clear()\n this.adapterToChannel.clear()\n }\n\n createChannelTo(targetTransportId: string): void {\n if (this.adapterToChannel.has(targetTransportId)) return\n const channel = this.addChannel({ targetTransportId })\n this.channelToAdapter.set(channel.channelId, targetTransportId)\n this.adapterToChannel.set(targetTransportId, channel.channelId)\n this.aliasStateByChannel.set(channel.channelId, emptyAliasState())\n }\n\n removeChannelTo(targetTransportId: string): void {\n const channelId = this.adapterToChannel.get(targetTransportId)\n if (channelId !== undefined) {\n this.removeChannel(channelId)\n this.channelToAdapter.delete(channelId)\n this.adapterToChannel.delete(targetTransportId)\n this.aliasStateByChannel.delete(channelId)\n }\n }\n\n /**\n * Deliver encoded bytes to the appropriate channel.\n *\n * Decodes via `decodeWireMessage`, applies the inbound alias\n * transformer, and delivers each resolved message asynchronously\n * via `queueMicrotask()`.\n */\n deliverBytes(fromTransportId: string, bytes: Uint8Array): void {\n const channelId = this.adapterToChannel.get(fromTransportId)\n if (channelId === undefined) return\n\n const channel = this.channels.get(channelId)\n if (!channel) return\n\n const wire = decodeWireMessage(bytes)\n const state = this.aliasStateByChannel.get(channelId) ?? emptyAliasState()\n const result = applyInboundAliasing(state, wire)\n this.aliasStateByChannel.set(channelId, result.state)\n\n if (result.error || !result.msg) {\n console.warn(\"[BridgeTransport] alias resolution failed:\", result.error)\n return\n }\n const msg = result.msg\n queueMicrotask(() => {\n channel.onReceive(msg)\n })\n }\n}\n\n// ---------------------------------------------------------------------------\n// Factory function\n// ---------------------------------------------------------------------------\n\n/**\n * Create a BridgeTransport factory for in-process testing.\n *\n * @example\n * ```typescript\n * const bridge = new Bridge()\n * const exchangeA = new Exchange({\n * transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n * })\n * ```\n */\nexport function createBridgeTransport(\n params: BridgeTransportParams,\n): TransportFactory {\n return () => new BridgeTransport(params)\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/bridge.ts"],"sourcesContent":["// bridge-adapter — in-process transport with alias-aware delivery.\n//\n// BridgeTransport is a real transport that runs the alias-aware pipeline\n// end-to-end and applies the docId/schemaHash alias transformer at the\n// channel send/receive boundary — exactly like every other binary\n// transport. Async delivery is preserved via `queueMicrotask()` to keep\n// test behavior representative of real network adapters.\n//\n// Usage:\n// const bridge = new Bridge()\n// const exchangeA = new Exchange({\n// transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n// })\n\nimport type {\n ChannelId,\n GeneratedChannel,\n TransportFactory,\n} from \"@kyneta/transport\"\nimport { Transport } from \"@kyneta/transport\"\nimport {\n type AliasState,\n applyInboundAliasing,\n applyOutboundAliasing,\n decodeWireMessage,\n emptyAliasState,\n encodeWireMessage,\n} from \"@kyneta/wire\"\n\n// ---------------------------------------------------------------------------\n// Bridge — message router connecting multiple BridgeTransports in-process\n// ---------------------------------------------------------------------------\n\n/**\n * In-process byte router connecting multiple `BridgeTransport`s,\n * keyed by each transport's unique `transportId`.\n *\n * Channel-level sends produce alias-aware encoded bytes via the wire-layer\n * transformer and call `routeBytes`.\n */\nexport class Bridge {\n readonly transports = new Map<string, BridgeTransport>()\n\n addTransport(transport: BridgeTransport): void {\n if (!transport.transportId) {\n throw new Error(\"can't add transport without transport id\")\n }\n this.transports.set(transport.transportId, transport)\n }\n\n removeTransport(transportId: string): void {\n this.transports.delete(transportId)\n }\n\n /**\n * Route already-encoded bytes from one transport to another. The\n * receiving transport's `deliverBytes` is responsible for decoding\n * and applying the inbound alias transformer.\n *\n * Used by `BridgeTransport`'s channel send path.\n */\n routeBytes(\n fromTransportId: string,\n toTransportId: string,\n bytes: Uint8Array,\n ): void {\n const toTransport = this.transports.get(toTransportId)\n if (!toTransport) return\n toTransport.deliverBytes(fromTransportId, bytes)\n }\n\n get transportIds(): Set<string> {\n return new Set(this.transports.keys())\n }\n}\n\n// ---------------------------------------------------------------------------\n// BridgeTransport — in-process network adapter for testing\n// ---------------------------------------------------------------------------\n\ntype BridgeTransportContext = {\n targetTransportId: string\n}\n\nexport type BridgeTransportParams = {\n /** Unique identifier for this transport instance (e.g. \"peer-a\", \"server\"). */\n transportId: string\n /**\n * Transport type category. Defaults to \"bridge\".\n * Stored in ChannelMeta for informational purposes.\n */\n transportType?: string\n bridge: Bridge\n}\n\n/**\n * In-memory transport that runs the alias-aware pipeline end-to-end.\n * Tests that use this transport exercise the same wire path as\n * production transports.\n *\n * @example\n * ```typescript\n * const bridge = new Bridge()\n * const exchangeA = new Exchange({\n * transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n * })\n * ```\n */\nexport class BridgeTransport extends Transport<BridgeTransportContext> {\n readonly bridge: Bridge\n\n // Track which remote transport each channel connects to.\n private channelToAdapter = new Map<ChannelId, string>()\n private adapterToChannel = new Map<string, ChannelId>()\n\n // Per-channel alias state. Created with the channel; lives until removal.\n // Keyed by channelId.\n private aliasStateByChannel = new Map<ChannelId, AliasState>()\n\n constructor({ transportId, transportType, bridge }: BridgeTransportParams) {\n super({ transportType: transportType ?? \"bridge\", transportId })\n this.bridge = bridge\n }\n\n generate(context: BridgeTransportContext): GeneratedChannel {\n return {\n transportType: this.transportType,\n send: msg => {\n const channelId = this.adapterToChannel.get(context.targetTransportId)\n if (channelId === undefined) return\n\n const state =\n this.aliasStateByChannel.get(channelId) ?? emptyAliasState()\n const { state: nextState, wire } = applyOutboundAliasing(state, msg)\n this.aliasStateByChannel.set(channelId, nextState)\n\n const bytes = encodeWireMessage(wire)\n this.bridge.routeBytes(\n this.transportId,\n context.targetTransportId,\n bytes,\n )\n },\n stop: () => {\n // Cleanup handled by removeChannel.\n },\n }\n }\n\n async onStart(): Promise<void> {\n this.bridge.addTransport(this)\n\n // Phase 1: Create all channels (no establishment yet).\n for (const [transportId, adapter] of this.bridge.transports) {\n if (transportId !== this.transportId) {\n adapter.createChannelTo(this.transportId)\n }\n }\n for (const transportId of this.bridge.transports.keys()) {\n if (transportId !== this.transportId) {\n this.createChannelTo(transportId)\n }\n }\n\n // Phase 2: Only the joining transport initiates establishment.\n for (const channelId of this.adapterToChannel.values()) {\n this.establishChannel(channelId)\n }\n }\n\n async onStop(): Promise<void> {\n for (const [transportId, adapter] of this.bridge.transports) {\n if (transportId !== this.transportId) {\n adapter.removeChannelTo(this.transportId)\n }\n }\n this.bridge.removeTransport(this.transportId)\n\n for (const channelId of this.channelToAdapter.keys()) {\n this.removeChannel(channelId)\n this.aliasStateByChannel.delete(channelId)\n }\n this.channelToAdapter.clear()\n this.adapterToChannel.clear()\n }\n\n createChannelTo(targetTransportId: string): void {\n if (this.adapterToChannel.has(targetTransportId)) return\n const channel = this.addChannel({ targetTransportId })\n this.channelToAdapter.set(channel.channelId, targetTransportId)\n this.adapterToChannel.set(targetTransportId, channel.channelId)\n this.aliasStateByChannel.set(channel.channelId, emptyAliasState())\n }\n\n removeChannelTo(targetTransportId: string): void {\n const channelId = this.adapterToChannel.get(targetTransportId)\n if (channelId !== undefined) {\n this.removeChannel(channelId)\n this.channelToAdapter.delete(channelId)\n this.adapterToChannel.delete(targetTransportId)\n this.aliasStateByChannel.delete(channelId)\n }\n }\n\n /**\n * Deliver encoded bytes to the appropriate channel.\n *\n * Decodes via `decodeWireMessage`, applies the inbound alias\n * transformer, and delivers each resolved message asynchronously\n * via `queueMicrotask()`.\n */\n deliverBytes(fromTransportId: string, bytes: Uint8Array): void {\n const channelId = this.adapterToChannel.get(fromTransportId)\n if (channelId === undefined) return\n\n const channel = this.channels.get(channelId)\n if (!channel) return\n\n const wire = decodeWireMessage(bytes)\n const state = this.aliasStateByChannel.get(channelId) ?? emptyAliasState()\n const result = applyInboundAliasing(state, wire)\n this.aliasStateByChannel.set(channelId, result.state)\n\n if (result.error || !result.msg) {\n console.warn(\"[BridgeTransport] alias resolution failed:\", result.error)\n return\n }\n const msg = result.msg\n queueMicrotask(() => {\n channel.onReceive(msg)\n })\n }\n}\n\n// ---------------------------------------------------------------------------\n// Factory function\n// ---------------------------------------------------------------------------\n\n/**\n * Create a BridgeTransport factory for in-process testing.\n *\n * @example\n * ```typescript\n * const bridge = new Bridge()\n * const exchangeA = new Exchange({\n * transports: [createBridgeTransport({ transportId: \"peer-a\", bridge })],\n * })\n * ```\n */\nexport function createBridgeTransport(\n params: BridgeTransportParams,\n): TransportFactory {\n return () => new BridgeTransport(params)\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kyneta/bridge-transport",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "In-process transport for @kyneta/exchange — codec-faithful + alias-aware delivery for testing multi-peer scenarios in a single process",
|
|
5
5
|
"author": "Duane Johnson",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
"./src/*": "./src/*"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"@kyneta/transport": "^1.
|
|
29
|
-
"@kyneta/wire": "^1.
|
|
28
|
+
"@kyneta/transport": "^1.6.0",
|
|
29
|
+
"@kyneta/wire": "^1.6.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"tsdown": "^0.
|
|
32
|
+
"tsdown": "^0.22.0",
|
|
33
33
|
"typescript": "^5.9.2",
|
|
34
34
|
"vitest": "^4.0.17",
|
|
35
|
-
"@kyneta/schema": "^1.
|
|
36
|
-
"@kyneta/
|
|
37
|
-
"@kyneta/
|
|
35
|
+
"@kyneta/schema": "^1.6.0",
|
|
36
|
+
"@kyneta/wire": "^1.6.0",
|
|
37
|
+
"@kyneta/transport": "^1.6.0"
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "tsdown",
|