{"_id":"@codeforbreakfast/eventsourcing-transport-websocket","_rev":"14-254e1cf76b6cb5c6aa441f6be1312c7b","name":"@codeforbreakfast/eventsourcing-transport-websocket","dist-tags":{"latest":"0.5.7"},"versions":{"0.2.2":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.2.2","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.2.2","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"c805df906f5869536b71e3ac0859ef2862bf4945","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.2.2.tgz","fileCount":20,"integrity":"sha512-WBKgZiF1o4ywT45j707vsDOYQh4Gdq2plua8+r8eM46KzgnjwfJM9KF25pyfNgHoUEZ9+7PxK+dAff0ouGBy8g==","signatures":[{"sig":"MEUCIQCrM5QfY7LM+ZRx0HyApZNPaJZeLBu4Qvqu8OAKUZ6PNwIgZ77V6bzx9/16hGxddR5M/k3OxvTU2jdToNmCBdqtvzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211676},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"9510ad686c016cbbf486f3572a78ce3b8e031131","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"10.8.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/platform":"0.90.10","@codeforbreakfast/eventsourcing-transport-contracts":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","vitest":"3.2.4","bun-types":"1.2.22","typescript":"5.9.2","@types/node":"24.5.2","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.2.2_1758706997086_0.006862655726817879","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.3.0","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.3.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"826f0eb197584207d00f93d2a434d8f6d1f49eb0","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.3.0.tgz","fileCount":28,"integrity":"sha512-NX6xedURkNpaoK6+qRyLM5v77IRx0n92FjXtcjEUjLRTydGMFJ0o1RYvl/QYLG0nUg4p5Oz2I5SX0GAqftibOA==","signatures":[{"sig":"MEUCIQCs8ODmaVoncMZdZk62ZQ9zT1awBrnwZpLrXgfMlj1biQIgBiqMUCeoORQ9IY2uivGe5DACqrxqUKW65kHA/B//7B8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246967},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"18e324d0d06e1524923d166cf7f6d84958155b5a","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public"},"_npmUser":{"name":"graemef","email":"graemef@gmail.com"},"repository":{"url":"git+https://github.com/codeforbreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"10.8.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/platform":"0.91.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","bun-types":"1.2.22","typescript":"5.9.2","@types/node":"24.5.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.3.0_1759054234942_0.285472567519629","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.4.0","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.4.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"f74aa11f3414f9f6e7fe43a44030f6547db6c825","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.4.0.tgz","fileCount":28,"integrity":"sha512-lGuka3hzo9o4EHUfjBlxbXl05rPaRA+0KdWzZDrYFek/OeEBFNxqDTNgUlCzpBi8tuWor7vQqpxcYKdTRDylbQ==","signatures":[{"sig":"MEQCIHTkAN6A/hYSUWb7PsXANDRSmqgNNyNDyHDgwhkkiQYaAiADucPgley4qLpq8uMaLMP3DdD5Tjsd0MieosD56/DuFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":246407},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b51721207db43b5ba8b9228b79cfa36219146005","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/platform":"0.91.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","bun-types":"1.2.22","typescript":"5.9.2","@types/node":"24.5.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.4.0_1759068017571_0.9110673486602343","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.4.1","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.4.1","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"f18b1ee7f8e4e0160c1f4044c210e458902e67b7","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.4.1.tgz","fileCount":28,"integrity":"sha512-6WyctKwxeacWgmAyVDKoDl6R2YcpbB+HDQ5/pLRxbOAni2o8zVYfoDhe/ZeBd31cUR4hO15AnEARnbGBHG5WpA==","signatures":[{"sig":"MEYCIQC6LGdGu1pvmDnI5C5PWgYRY1hwV9YSFyw8X7INUdoqjQIhAKM9nF7hfr602R1kAINRqQZaxWj3Oi4KkPs+HsF/mZJV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":289053},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"35106a1245f942e488807eea940f69a8a8af3b13","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@effect/platform":"0.91.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.17.14","eslint":"9.36.0","bun-types":"1.2.22","typescript":"5.9.2","@types/node":"24.5.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.4.1_1759154769353_0.5284023339808246","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.4.2","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.4.2","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"d455f9ac761f2edd266ffc31bc90275a92bcbbd9","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.4.2.tgz","fileCount":28,"integrity":"sha512-jtl/nnk3JvlE+5k16AaCpJe8XtfrVPahVy/2f5otR7I6pyY6RVknPyQs6xTVVXvwGdoTK9wwYNcZhjxsxjktUQ==","signatures":[{"sig":"MEQCICd2wMacrjAiJnvGYJEoyHYN0WzmVKez2sslaRjnsw46AiAnN2DRJ/OAhwXERB+fJj7nPp6W0vgxX/Snj2pzAEiexA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":309629},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"25c05b1804fe30d707ce5508addc73813ed6ebfc","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.1","eslint":"9.36.0","bun-types":"1.2.23","typescript":"5.9.3","@types/node":"24.6.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.4.2_1759677757896_0.36569177600472913","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.4.3","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.4.3","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"63ce4b2113b614d0b984927dbcdacf329d1a0114","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.4.3.tgz","fileCount":28,"integrity":"sha512-OWua7Iek+UYSfgzNTZOGdri+Sz7sQY0LyAM+TPVP8LEWbWrE/LkT83pKs4ZHtaHrkBfnSN195VE53Zejsh37JA==","signatures":[{"sig":"MEUCIQD+3DShjfcfPgtRx4u+LH/YQRSu9CtEkUzJRVsGxyU9PAIgUPl4mD2S8Gu52+sFir0Ng4ci9dXAJXpFtmPKN+CSp7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":310944},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"37f4fc8c1953c6018760271ab3d6b8c4d30ec88c","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.1","eslint":"9.36.0","bun-types":"1.2.23","typescript":"5.9.3","@types/node":"24.6.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.4.3_1759854550112_0.922346781405605","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.0","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.0","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"14d51e9059f2975c5f83da11697c76d80f5086de","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.0.tgz","fileCount":20,"integrity":"sha512-DUUFApNotBAhgnFZyWgHZ5EvVki6du8DKGiBKWFymKtzqD5m535HUwmjqNU+S2TDDgRM3fTb+wnf0oblR0Gd9g==","signatures":[{"sig":"MEUCIQC31Ka2VcmpyZEXnPk8NUw7iYk73zfsjb3KMj9oYOfb6QIgDK94wHsIfzrvvuEh5oWsrp3oqRPH6ew8JDKRs82/uDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282324},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"a08bc28abdeee0246774319e45da970b1a47a151","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.36.0","bun-types":"1.2.23","typescript":"5.9.3","@types/node":"24.6.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.0_1760169352273_0.9016926026513938","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.1","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.1","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"37500df1a6c70f3652d0d2981a0f29fa71c3c6fd","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.1.tgz","fileCount":20,"integrity":"sha512-4eGMgotdx074GnCXqE/qpRPn+AkMKT3g+wMQjy6fg26bz1TLoKSC1EPf3Tl82xIdzlCDn9oKeZIPOfNk+Yd8WA==","signatures":[{"sig":"MEYCIQDDfI61Aw79i+jbM8DMZqVgkl8qsmPA1DhR/duh7noVPAIhAIboMs/qT0gFELKhzkScHltp1uu9gJxBGOT/ToFEskrH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282590},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"6b33e587b5948de08c6fcfd7bebc0f93e22cd24b","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target bun --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc --build","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.1","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.36.0","bun-types":"1.2.23","typescript":"5.9.3","@types/node":"24.6.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.1_1760267630214_0.23348221299180127","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.2","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.2","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"bd53592071bfec58ebc07a4e7e873f70e4cfc269","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.2.tgz","fileCount":14,"integrity":"sha512-tGMVY8NxtApheWj3Mv1PcOyMWGP86WotUpy/aYkR6P3AT6XlCETopk6k1yqlp6eiHhBsFWa/twF3qUT57QjLuA==","signatures":[{"sig":"MEUCIAL6sjAisbXL3v38APZJkX2NOst7fzFG0XNF3Zv9WRSxAiEA5i7VXI2223zA/IJU9Wt+xcIYKZN7eW/3hKQuNA4w1Sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"209ef435978ce052d57ea888fdc847b07011a674","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.0.1","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.37.0","bun-types":"1.3.0","typescript":"5.9.3","@types/node":"24.7.1","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.2_1760430184480_0.04346986338611969","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.3","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.3","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"05f25321a035de3932f162e6f010d48ff004734e","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.3.tgz","fileCount":14,"integrity":"sha512-HgRBytQEIT0fw0gIWvLo9QwNSvuhP4pivDSodKwhZXyo4hxwh3/swLQJ5vg0fd6IhFRDZlZ9hOEseksw1saCJg==","signatures":[{"sig":"MEYCIQDBijaVKpFwOCw/2NskIkQoTpbrK4U28rzE35PQZFg1eQIhAK6EL3xUnot8Vv1Fd/4ci14Es9MgxyHvM2CNnpz2Ymdz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92414},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"b86d91ea14ffcb2c9209ebfcbf6c48b4a9ff5876","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.37.0","bun-types":"1.3.0","typescript":"5.9.3","@types/node":"24.7.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.3_1760796640308_0.40858608754278714","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.4","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.4","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"d8b34dce478c610d71a0bb883704587a85736a56","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.4.tgz","fileCount":14,"integrity":"sha512-G8zvsVAUKZcnDM3KVR88tb9A8aEXclm4xfyVjrzXeea0PjZQ44xFOXHv7HJfSx6dNPUB7LXqCZ6PI0+EBRY8ZA==","signatures":[{"sig":"MEYCIQDKPsSlDpVwlo8ZFPULG8QAp5huhr+ddiisrn6iPqAlnQIhAPuJfxX49uU/B21jRNSVZphlV3Zr5eBQUrsJt6Qvk08k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92398},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8aeb86d53d72d178720c7a9543b57a8a85177f25","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.38.0","bun-types":"1.3.1","typescript":"5.9.3","@types/node":"24.9.1","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.4_1761488009452_0.11466505043503172","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.5","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.5","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"d48c0a0ba3650e5752a8095f1cae7d0a7a95480b","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.5.tgz","fileCount":14,"integrity":"sha512-C5G07jBvzhaVCsxz2rV0sb+u+mjfRKFy9bYW1wVPUBhwr+D5b/IF5hK3YnHCHdOHtFlyoLVNUmzSQfe9gqjyFA==","signatures":[{"sig":"MEYCIQC/epGDBpeA3HghV0SLjVzgiQsKvye6zdlef6wQqSiwnQIhALcVT4A6LInAvDOugMXodTKn7K9tVftvZP74XXp8JnjC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92409},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7f67156700fc3a5d4036c8d9fd4f905897e41917","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.1.0","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.38.0","bun-types":"1.3.1","typescript":"5.9.3","@types/node":"24.9.2","@codeforbreakfast/buntest":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.5_1762159726339_0.5340544961071401","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.6","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.6","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"dist":{"shasum":"8bbc0a6cf2d5dc288731b2b6de04538afeb69de2","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.6.tgz","fileCount":14,"integrity":"sha512-JGbZaWesSxVCjkF9MmYZU1mZvM4mjyxMl0Yc4KrDtd2DQ9SSZKfV7XIi75Z0OKWyonm5ibd+mTFcRnmSEj4x9g==","signatures":[{"sig":"MEQCIF4nzFNPtRZLMnEOLRD9OhaEBWpkbcJkeVjQm1/ItcbWAiBXPCJ9p4tXSJIwh6Zwvs+sDSg3ni3mYUkoHA9yBHjPhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92445},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"572968daaa6a79b98fb010df951d5f75bcd7f1c7","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"bun test","build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit","test:watch":"bun test --watch","validate:docs":"bun ../../scripts/validate-markdown-examples.ts","validate:pack":"bun pm pack --dry-run","typecheck:test":"tsc --noEmit --project tsconfig.test.json","publish:package":"npm publish --access public","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"repository":{"url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","type":"git","directory":"packages/eventsourcing-transport-websocket"},"_npmVersion":"11.6.2","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"type-fest":"5.2.0","@effect/platform":"0.92.1","@codeforbreakfast/eventsourcing-transport":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"effect":"3.18.4","eslint":"9.39.1","bun-types":"1.3.2","typescript":"5.9.3","@types/node":"24.10.0","@codeforbreakfast/bun-test-effect":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*"},"peerDependencies":{"effect":"^3.17.0"},"_npmOperationalInternal":{"tmp":"tmp/eventsourcing-transport-websocket_0.5.6_1764059360145_0.9656418633436914","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"@codeforbreakfast/eventsourcing-transport-websocket","version":"0.5.7","description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"build":"bun build ./src/index.ts --outdir ./dist --target node --format esm --external effect --external @effect/* --external @codeforbreakfast/* && bun x tsc","test":"bun test","test:watch":"bun test --watch","lint":"eslint . --ext .ts,.tsx","typecheck":"tsc --noEmit","typecheck:test":"tsc --noEmit --project tsconfig.test.json","clean":"rm -rf dist","publish:package":"npm publish --access public","validate:pack":"bun pm pack --dry-run","check:publishable":"npm view $npm_package_name@$npm_package_version version >/dev/null 2>&1 && exit 1 || exit 0","validate:docs":"bun ../../scripts/validate-markdown-examples.ts"},"keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"author":{"name":"Code for Breakfast"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","directory":"packages/eventsourcing-transport-websocket"},"bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","peerDependencies":{"effect":"^3.17.0"},"dependencies":{"@codeforbreakfast/eventsourcing-transport":"workspace:*","@effect/platform":"0.93.6","type-fest":"5.2.0"},"devDependencies":{"@codeforbreakfast/bun-test-effect":"workspace:*","@codeforbreakfast/eventsourcing-testing-contracts":"workspace:*","@types/node":"24.10.0","bun-types":"1.3.2","effect":"3.19.9","eslint":"9.39.1","typescript":"5.9.3"},"publishConfig":{"access":"public"},"sideEffects":false,"engines":{"node":">=18.0.0"},"gitHead":"dc9291553d278cb59572e9fb1569fe0c01194eea","_id":"@codeforbreakfast/eventsourcing-transport-websocket@0.5.7","_nodeVersion":"20.19.6","_npmVersion":"11.6.2","dist":{"integrity":"sha512-uBZDNSu6LiH2D5XoSU5QDYbYlMjPadz1oX4PioLrb1zpMrTUet0vdnh5xfV4nxUgL55Tm3MVqYBpWsvxST4Ezg==","shasum":"99ef171430f56dcf69e58f4f32caa3c51752b394","tarball":"https://registry.npmjs.org/@codeforbreakfast/eventsourcing-transport-websocket/-/eventsourcing-transport-websocket-0.5.7.tgz","fileCount":14,"unpackedSize":92445,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@codeforbreakfast%2feventsourcing-transport-websocket@0.5.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC2ciNxND97e5ytHgi8ucbeiSn0WgW2qjddxBr5+9K1MAiEA+1orot6XERyYFuBYVkaxsrrcxi8k3NRH7BvbNBlo/E0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c98aea3c-aa49-4101-9d9f-e126556693ae"}},"directories":{},"maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventsourcing-transport-websocket_0.5.7_1765443331533_0.7910635203925767"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-24T09:43:16.974Z","modified":"2025-12-11T08:55:32.018Z","0.2.2":"2025-09-24T09:43:17.255Z","0.3.0":"2025-09-28T10:10:35.153Z","0.4.0":"2025-09-28T14:00:17.749Z","0.4.1":"2025-09-29T14:06:09.532Z","0.4.2":"2025-10-05T15:22:38.096Z","0.4.3":"2025-10-07T16:29:10.308Z","0.5.0":"2025-10-11T07:55:52.457Z","0.5.1":"2025-10-12T11:13:50.405Z","0.5.2":"2025-10-14T08:23:04.648Z","0.5.3":"2025-10-18T14:10:40.498Z","0.5.4":"2025-10-26T14:13:29.650Z","0.5.5":"2025-11-03T08:48:46.553Z","0.5.6":"2025-11-25T08:29:20.361Z","0.5.7":"2025-12-11T08:55:31.676Z"},"bugs":{"url":"https://github.com/codeforbreakfast/eventsourcing/issues"},"author":{"name":"Code for Breakfast"},"license":"MIT","homepage":"https://github.com/codeforbreakfast/eventsourcing#readme","keywords":["websocket","transport","message-transport","connection","streaming","event-sourcing","protocol-agnostic","real-time","effect","effect-ts","functional-programming","fp","typescript","type-safe"],"repository":{"type":"git","url":"git+https://github.com/CodeForBreakfast/eventsourcing.git","directory":"packages/eventsourcing-transport-websocket"},"description":"WebSocket transport implementation for event sourcing - Protocol-agnostic message transport over WebSocket connections","maintainers":[{"name":"graemef","email":"graemef@gmail.com"}],"readme":"# @codeforbreakfast/eventsourcing-transport-websocket\n\nWebSocket transport implementation for event sourcing - Real-time bidirectional message transport over WebSocket connections.\n\n## Overview\n\nThis package provides WebSocket client and server transport implementations that follow the transport contracts defined in `@codeforbreakfast/eventsourcing-transport`. It enables real-time, bidirectional communication between clients and servers using WebSockets.\n\n## Key Features\n\n- ✅ **Real-time Communication**: WebSocket-based bidirectional messaging\n- ✅ **Client & Server Support**: Both WebSocket client connector and server acceptor\n- ✅ **Effect-Native**: Built with Effect for composability and type safety\n- ✅ **Contract Compliant**: Implements transport contract interfaces\n- ✅ **Connection Management**: Handles connection lifecycle with proper cleanup\n- ✅ **Message Filtering**: Subscribe to specific message types\n- ✅ **Broadcasting**: Server can broadcast messages to all connected clients\n- ✅ **Scope-based Resources**: Automatic cleanup with Effect Scope\n\n## Installation\n\n```bash\nbun add @codeforbreakfast/eventsourcing-transport-websocket\n```\n\n## Client Usage\n\n### Basic Connection\n\n```typescript\nimport { Effect, Stream, pipe } from 'effect';\nimport { WebSocketConnector } from '@codeforbreakfast/eventsourcing-transport-websocket';\nimport { makeMessageId } from '@codeforbreakfast/eventsourcing-transport';\n\nconst program = Effect.scoped(\n  Effect.gen(function* () {\n    // Connect to WebSocket server\n    const transport = yield* WebSocketConnector.connect('ws://localhost:8080');\n\n    // Monitor connection state\n    yield* pipe(\n      transport.connectionState,\n      Stream.runForEach((state) => Effect.sync(() => console.log('Connection state:', state))),\n      Effect.fork\n    );\n\n    // Subscribe to messages\n    const subscription = yield* transport.subscribe();\n\n    // Handle incoming messages\n    yield* pipe(\n      subscription,\n      Stream.runForEach((message) => Effect.sync(() => console.log('Received:', message))),\n      Effect.fork\n    );\n\n    // Publish a message\n    yield* transport.publish({\n      id: makeMessageId('msg-1'),\n      type: 'chat.message',\n      payload: JSON.stringify({ text: 'Hello WebSocket!' }),\n      metadata: {},\n    });\n  })\n);\n\n// Run with automatic cleanup\nawait Effect.runPromise(program);\n```\n\n### Message Filtering\n\n```typescript\nimport { Effect, Stream, pipe } from 'effect';\nimport { WebSocketConnector } from '@codeforbreakfast/eventsourcing-transport-websocket';\n\nconst program = Effect.scoped(\n  Effect.gen(function* () {\n    const transport = yield* WebSocketConnector.connect('ws://localhost:8080');\n\n    // Subscribe only to specific message types\n    const chatMessages = yield* transport.subscribe((msg) => msg.type.startsWith('chat.'));\n\n    // Handle filtered messages\n    yield* pipe(\n      chatMessages,\n      Stream.runForEach((message) => Effect.sync(() => console.log('Chat message:', message)))\n    );\n  })\n);\n```\n\n## Server Usage\n\n### Basic Server\n\n```typescript\nimport { Effect, Stream, pipe } from 'effect';\nimport { WebSocketAcceptor } from '@codeforbreakfast/eventsourcing-transport-websocket';\nimport { makeMessageId } from '@codeforbreakfast/eventsourcing-transport';\n\nconst program = Effect.scoped(\n  Effect.gen(function* () {\n    // Create WebSocket server\n    const acceptor = yield* WebSocketAcceptor.make({\n      port: 8080,\n      host: 'localhost',\n    });\n\n    // Start accepting connections\n    const transport = yield* acceptor.start();\n\n    // Handle new client connections\n    yield* pipe(\n      transport.connections,\n      Stream.runForEach((connection) =>\n        Effect.gen(function* () {\n          console.log('Client connected:', connection.clientId);\n\n          // Subscribe to messages from this client\n          const messages = yield* connection.transport.subscribe();\n\n          // Echo messages back to client\n          yield* pipe(\n            messages,\n            Stream.runForEach((message) =>\n              connection.transport.publish({\n                ...message,\n                id: makeMessageId(`echo-${message.id}`),\n                type: 'echo.response',\n              })\n            ),\n            Effect.fork\n          );\n        })\n      )\n    );\n  })\n);\n\n// Run server\nawait Effect.runPromise(program);\n```\n\n### Broadcasting to All Clients\n\n```typescript\nimport { Effect } from 'effect';\nimport { WebSocketAcceptor } from '@codeforbreakfast/eventsourcing-transport-websocket';\nimport { makeMessageId } from '@codeforbreakfast/eventsourcing-transport';\n\nconst program = Effect.scoped(\n  Effect.gen(function* () {\n    const acceptor = yield* WebSocketAcceptor.make({\n      port: 8080,\n      host: 'localhost',\n    });\n\n    const transport = yield* acceptor.start();\n\n    // Broadcast to all connected clients\n    yield* transport.broadcast({\n      id: makeMessageId('broadcast-1'),\n      type: 'server.announcement',\n      payload: JSON.stringify({ message: 'Server is shutting down in 5 minutes' }),\n      metadata: {},\n    });\n  })\n);\n```\n\n## Connection States\n\nThe transport tracks connection states:\n\n- `connecting`: Initial connection attempt\n- `connected`: Successfully connected\n- `disconnected`: Connection closed\n- `error`: Connection error occurred\n\n```typescript\nimport { Effect, Stream, pipe } from 'effect';\nimport { WebSocketConnector } from '@codeforbreakfast/eventsourcing-transport-websocket';\n\nconst program = Effect.scoped(\n  Effect.gen(function* () {\n    const transport = yield* WebSocketConnector.connect('ws://localhost:8080');\n\n    // Monitor connection state changes\n    yield* pipe(\n      transport.connectionState,\n      Stream.runForEach((state) =>\n        Effect.sync(() => {\n          switch (state) {\n            case 'connected':\n              console.log('Connected to server');\n              break;\n            case 'disconnected':\n              console.log('Disconnected from server');\n              break;\n            case 'error':\n              console.error('Connection error');\n              break;\n          }\n        })\n      )\n    );\n  })\n);\n```\n\n## Error Handling\n\nThe transport uses typed errors from the contracts package:\n\n```typescript\nimport { Effect, pipe } from 'effect';\nimport { WebSocketConnector } from '@codeforbreakfast/eventsourcing-transport-websocket';\n\nconst program = Effect.scoped(\n  pipe(\n    WebSocketConnector.connect('ws://invalid-server:9999'),\n    Effect.catchTag('ConnectionError', (error) =>\n      Effect.sync(() => console.error('Failed to connect:', error.message))\n    )\n  )\n);\n```\n\n## Testing\n\nThe package includes comprehensive tests:\n\n### Unit Tests\n\nTests edge cases using mock WebSockets:\n\n- Connection errors\n- Malformed messages\n- Rapid state changes\n\n### Integration Tests\n\nTests real WebSocket communication:\n\n- Client-server message exchange\n- Broadcasting\n- Multiple client connections\n- Connection lifecycle\n- Resource cleanup\n\n```bash\n# Run all tests\nbun test packages/eventsourcing-transport-websocket\n\n# Run unit tests only\nbun test packages/eventsourcing-transport-websocket/src/lib/websocket-transport.test.ts\n\n# Run integration tests only\nbun test packages/eventsourcing-transport-websocket/src/tests/integration/\n```\n\n## Architecture\n\nThis package implements the transport layer abstraction:\n\n```\n┌─────────────────────────────────────┐\n│     Application Layer               │  ← Your application\n├─────────────────────────────────────┤\n│     Protocol Layer                  │  ← Domain protocols (optional)\n├─────────────────────────────────────┤\n│     Transport Layer                 │  ← This package (WebSocket)\n└─────────────────────────────────────┘\n```\n\nThe transport is protocol-agnostic and moves `TransportMessage` objects between clients and servers without understanding their content.\n\n## API Reference\n\n### Client API\n\n#### WebSocketConnector\n\n```typescript\nimport { Effect, Scope } from 'effect';\nimport { Client, ConnectionError } from '@codeforbreakfast/eventsourcing-transport';\n\ndeclare const WebSocketConnector: {\n  connect(url: string): Effect.Effect<Client.Transport, ConnectionError, Scope.Scope>;\n};\n```\n\n#### Client.Transport\n\n```typescript\nimport { Effect, Stream } from 'effect';\nimport { TransportError, ConnectionState } from '@codeforbreakfast/eventsourcing-transport';\n\ndeclare const transport: {\n  connectionState: Stream.Stream<ConnectionState, never, never>;\n\n  publish(message: unknown): Effect.Effect<void, TransportError, never>;\n\n  subscribe(\n    filter?: (message: unknown) => boolean\n  ): Effect.Effect<Stream.Stream<unknown, never, never>, TransportError, never>;\n};\n```\n\n### Server API\n\n#### WebSocketAcceptor\n\n```typescript\nimport { Effect, Context } from 'effect';\nimport { Server } from '@codeforbreakfast/eventsourcing-transport';\n\ndeclare const WebSocketAcceptor: {\n  make(config: {\n    port: number;\n    host: string;\n  }): Effect.Effect<Context.Tag.Service<typeof Server.Acceptor>, never, never>;\n};\n```\n\n#### Server.Transport\n\n```typescript\nimport { Effect, Stream } from 'effect';\nimport { Server, TransportError } from '@codeforbreakfast/eventsourcing-transport';\n\ndeclare const transport: {\n  connections: Stream.Stream<Server.ClientConnection, never, never>;\n\n  broadcast(message: unknown): Effect.Effect<void, TransportError, never>;\n};\n```\n\n## Implementation Notes\n\n- Uses Bun's native WebSocket implementation for performance\n- Handles connection lifecycle with Effect's Scope for automatic cleanup\n- Message parsing errors are silently dropped to prevent stream corruption\n- Each client subscription gets its own queue for message isolation\n- Server maintains a map of connected clients with their state\n\n## Contributing\n\nThis package is part of the `@codeforbreakfast/eventsourcing` monorepo. See the main repository for contribution guidelines.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}