{"_id":"@bridgekit-uxlogic/relay","_rev":"7-b88504a78f65487e789b581be22ff2e1","name":"@bridgekit-uxlogic/relay","dist-tags":{"latest":"0.2.8"},"versions":{"0.2.1":{"name":"@bridgekit-uxlogic/relay","version":"0.2.1","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.1","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"10720555aa644bad4669a7e637fa62a4200c5d59","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.1.tgz","fileCount":26,"integrity":"sha512-yKZ2j8ETR3vKgu9icMMkKy69TIPkrKZlABIQZ5r52PWy0VXDlClkS6yNyq/ssqKequoyCCN+b7/iSY4LqBIz5Q==","signatures":[{"sig":"MEYCIQC8toWJjej4LY1vZhmFJoHKT94611miIr4qJBvZYxxAVwIhAIRUJVSQjphfOKStqgcFsZTE+2ytr7VoPy42AHnigzcR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75758},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.1_1780817570440_0.9008139080274751","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bridgekit-uxlogic/relay","version":"0.2.2","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.2","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"c91bf2002fd7cc3390d562e45995289cdb1f14fb","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.2.tgz","fileCount":26,"integrity":"sha512-gvfGL2TOLVlLbV8x8O/O+mZtcHQqZgc9vkob3nGsrOYaXmJjJvruWg4lJGVmrvWVrqEO/Xpzi5Tod2Yu8nmzYA==","signatures":[{"sig":"MEYCIQDe1QGi1Bd9OYtiMkA8qINa7rZHnw0qqy/SdZRdEew6hAIhAOXcso96qDftNvWyqtrMp3vkFvLbLi2TnSScG9Y/849u","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75804},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.1"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.2_1780818027719_0.378612420918903","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bridgekit-uxlogic/relay","version":"0.2.3","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.3","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"6beabe54129f74bcfb56263811a5769cd20cd45a","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.3.tgz","fileCount":26,"integrity":"sha512-NqbwlOJX6tY5S1t0933QwhkUJ8OLJvl1yIEZlVxWOp+3qBn036DWIfGNtmg8USkzGWhElxLMDvwPekc/XrKagA==","signatures":[{"sig":"MEUCIQDdj9f3IYs20wsyGGbgU5xQyA9O4/s4nAAVezLHHTZKfQIgAM46qb7jJYnl9o03u1S+GVjle7/UpRw9cXZ1q8jjW+E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94005},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.2"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.3_1780820982018_0.42568838495704053","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@bridgekit-uxlogic/relay","version":"0.2.5","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.5","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"7d7ddf0dd3cdc4ff457dedeca650f343125cf8c1","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.5.tgz","fileCount":26,"integrity":"sha512-nLcpdZl314HYHmaBIIijashsiEuWXdZwhsw70WiIYbCyTep32V91CfQ0hHflSsDSPZz0i9SDEQppXh4qJGs11w==","signatures":[{"sig":"MEQCIBwwffN0N7O+hFGjqWcZlKuj59AyGgamcardnz3uORwrAiAN7CJKXcIJhBuNaDi00rri3QZQqqob5xn6LQBOD1gmjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121721},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.5_1780824720626_0.2575283724250299","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@bridgekit-uxlogic/relay","version":"0.2.6","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.6","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"aa634bf534f2a85b38f8d85d163eb5a39b12f979","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.6.tgz","fileCount":26,"integrity":"sha512-3aiW3twugXjCADfyRQkoZqLLYd7l4q2wMvIrxstk5WviV0/6Ah1iCFDZeH3WOP0rkWCtR6t0hIOCfuJ4CLynyA==","signatures":[{"sig":"MEUCIGqnXDVLnwU+lO6EbfkjEY3ITuwVYY54toKVSK22uNFTAiEA1vGbMuUM/VmDgmxDsHYRfZfXTV4lO+fMmYpqOfHpgKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132357},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.6_1780827133330_0.6138445679752909","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@bridgekit-uxlogic/relay","version":"0.2.7","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"license":"Apache-2.0","_id":"@bridgekit-uxlogic/relay@0.2.7","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"bin":{"bridgekit-relay":"dist/src/cli.js"},"dist":{"shasum":"8b2317e1ba65304a911484a8fa33c04bddd62de4","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.7.tgz","fileCount":26,"integrity":"sha512-duzOohvnezdB9IYV38atS/Gfqsk/Zn81i7j0WPANzY+iYYbVOl82fyBGGsg3b1afEsomWNGpPvauvUay+ZZfnQ==","signatures":[{"sig":"MEUCIBeu6aaHJNRbyMwc06r0nYHXwYJU0vh/G8+UVQHmScN+AiEAvA5d0WNpnF31zfa8WhR3yS5BqoxKjzTbT7K/5IGvGOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133279},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","scripts":{"test":"node --test dist/test/*.test.js","build":"tsc -b"},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"_npmVersion":"11.12.1","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ws":"^8.21.0","@bridgekit-uxlogic/protocol":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.3"},"_npmOperationalInternal":{"tmp":"tmp/relay_0.2.7_1780827833680_0.8308854175750215","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@bridgekit-uxlogic/relay","version":"0.2.8","license":"Apache-2.0","description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","type":"module","main":"./dist/src/index.js","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"},"./webcontainer-node":{"types":"./dist/src/webcontainer-node.d.ts","import":"./dist/src/webcontainer-node.js"},"./webcontainer-browser":{"types":"./dist/src/webcontainer-browser.d.ts","import":"./dist/src/webcontainer-browser.js"}},"bin":{"bridgekit-relay":"dist/src/cli.js"},"scripts":{"build":"tsc -b","test":"node --test dist/test/*.test.js"},"dependencies":{"@bridgekit-uxlogic/protocol":"0.2.2","ws":"^8.21.0"},"devDependencies":{"@bridgekit-uxlogic/agent":"0.2.3"},"publishConfig":{"access":"public"},"keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"gitHead":"aaf2e36c3995a0c186f8432943a0209a3f8cbdfb","_id":"@bridgekit-uxlogic/relay@0.2.8","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-qvjwwkPljf9YuXmues2P+cTcuIo2igwHUGcftXzkueAKpDGOYSWTEEf0w4xU+nZO/u2JCMsazaiosha75tP4ZA==","shasum":"79f6da99b300d6cd9e1d77c5fec99af4de30183a","tarball":"https://registry.npmjs.org/@bridgekit-uxlogic/relay/-/relay-0.2.8.tgz","fileCount":26,"unpackedSize":135146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID+YZK+0AUkg+QR2a46a0O4J89Bj+zHyzh/I7Pdx3pU/AiBWQcuvN2wY7Oz1WT1cKs0oKhWvfFdA7u0ohfIWt9ZdRw=="}]},"_npmUser":{"name":"pauloloka","email":"paulolokaux@gmail.com"},"directories":{},"maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/relay_0.2.8_1780835053219_0.8981417826667668"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-07T07:32:50.277Z","modified":"2026-06-07T12:24:13.459Z","0.2.1":"2026-06-07T07:32:50.572Z","0.2.2":"2026-06-07T07:40:27.844Z","0.2.3":"2026-06-07T08:29:42.156Z","0.2.5":"2026-06-07T09:32:00.769Z","0.2.6":"2026-06-07T10:12:13.475Z","0.2.7":"2026-06-07T10:23:53.867Z","0.2.8":"2026-06-07T12:24:13.354Z"},"license":"Apache-2.0","keywords":["bridgekit","relay","tcp-proxy","webcontainer","sandbox","protocol-proxy"],"description":"BridgeKit protocol proxy relay runtime for local/WebContainer development.","maintainers":[{"name":"pauloloka","email":"paulolokaux@gmail.com"}],"readme":"# @bridgekit-uxlogic/relay\n\nProtocol-proxy relay runtime for BridgeKit.\n\nThis package is the main public API for the backend/relay-first direction. It lets normal application drivers connect through approved BridgeKit relay ports instead of using package-specific BridgeKit adapters.\n\n## Install\n\n```bash\nnpm install @bridgekit-uxlogic/relay\n```\n\n## Create a project manifest\n\nBridgeKit does not mutate your project during `npm install`. Generate the manifest explicitly:\n\n```bash\nnpx bridgekit-relay init\n```\n\nThe interactive wizard asks for:\n\n- project name\n- runtime: `node`, `webcontainer`, or `bolt`\n- output path\n- resource types to request\n- resource IDs for MongoDB, PostgreSQL, MySQL, Redis, custom TCP, files, HTTP/HTTPS, or WebSocket\n\nFor scripted setup, use flags:\n\n```bash\nnpx bridgekit-relay init --name stacktest --mongodb local-mongodb\n```\n\nUseful init flags:\n\n```bash\nnpx bridgekit-relay init --mongodb local-mongodb --file uploads\nnpx bridgekit-relay init --postgres local-postgres --http local-api\nnpx bridgekit-relay init --tcp local-redis:6379:redis --websocket local-ws\n```\n\nThe init command creates `bridgekit.config.json`, including `requires` capability declarations and `relays[]` entries for TCP driver-compatible services.\n\nFor StackBlitz/WebContainer projects, also generate the small browser companion and a root HTML template:\n\n```bash\nnpx bridgekit-relay init --mongodb local-mongodb --webcontainer-assets\n```\n\nThis creates:\n\n- `src/bridgekit-browser.js`\n- `index.html`\n\nThe generated frontend file only connects the browser companion transport. It does not contain database credentials, queries, or app business logic.\n\n## Start TCP relays from a manifest\n\n```ts\nimport { connectAndStartTcpRelays } from '@bridgekit-uxlogic/relay';\n\nconst bridge = await connectAndStartTcpRelays({\n  manifestPath: 'bridgekit.config.json',\n  agentUrl: 'ws://localhost:7777/bridgekit'\n});\n\nconsole.log(bridge.relays.map((relay) => relay.url));\n```\n\n## Manifest example\n\n```json\n{\n  \"name\": \"driver-compatible-demo\",\n  \"runtime\": \"node\",\n  \"requires\": {\n    \"services\": [\n      { \"id\": \"local-mongodb\", \"type\": \"tcp\", \"permissions\": [\"stream\"] }\n    ]\n  },\n  \"relays\": [\n    {\n      \"id\": \"mongo-driver-port\",\n      \"type\": \"tcp\",\n      \"resourceId\": \"local-mongodb\",\n      \"protocol\": \"mongodb\",\n      \"listen\": { \"host\": \"localhost\", \"port\": 27017 },\n      \"options\": { \"keepAlive\": true, \"noDelay\": true }\n    }\n  ]\n}\n```\n\n## Normal driver usage\n\n```ts\nimport mongoose from 'mongoose';\n\nawait mongoose.connect(process.env.MONGODB_URI ?? 'mongodb://localhost:27017/stacktest');\n```\n\n## WebContainer backend bridge\n\n```ts\nimport { BridgeKitClient, startTcpRelaysFromManifest } from '@bridgekit-uxlogic/relay';\nimport { startWebContainerBridgeServer } from '@bridgekit-uxlogic/relay/webcontainer-node';\nimport manifest from './bridgekit.config.json' assert { type: 'json' };\n\nconst bridgeServer = await startWebContainerBridgeServer({ host: 'localhost', port: 8787 });\nconst bridgekit = new BridgeKitClient({ transport: bridgeServer.transport, manifest });\n\nawait bridgekit.connect();\nawait startTcpRelaysFromManifest({ manifest, client: bridgekit });\n```\n\nBrowser companion:\n\n```ts\nimport { createWebContainerRelayCompanion } from '@bridgekit-uxlogic/relay/webcontainer-browser';\n\ncreateWebContainerRelayCompanion({ backendUrl: 'ws://localhost:8787/bridgekit-relay' });\n```\n","readmeFilename":"README.md"}