{"versions":{"0.3.0":{"name":"@moeru/eventa","type":"module","version":"0.3.0","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^5.4.1","@electron-toolkit/preload":"^3.0.2","@types/node":"^24.6.2","@vitest/web-worker":"^3.2.4","bumpp":"^10.2.3","crossws":"^0.4.1","eslint":"^9.37.0","taze":"^19.7.0","tsdown":"^0.13.5","typescript":"^5.9.3","unplugin-unused":"^0.5.3","vite":"^7.1.9","vitest":"^3.2.4"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@0.3.0","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-/U9BNwd+a3OAlbolkW4yWbKtbtL2poiu0V44yekV31SKOAGy9NZJe6hmAAr5nwwDO5Iu6uK/Kz/l+3maEwsUnQ==","_resolved":"/tmp/777d0662611f7c7081ff7a5a9b0ac847/moeru-eventa-0.3.0.tgz","_from":"file:moeru-eventa-0.3.0.tgz","_nodeVersion":"25.2.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-/U9BNwd+a3OAlbolkW4yWbKtbtL2poiu0V44yekV31SKOAGy9NZJe6hmAAr5nwwDO5Iu6uK/Kz/l+3maEwsUnQ==","shasum":"70e0bf18352a4b41c7ed99518a395bcc7eb22382","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-0.3.0.tgz","fileCount":46,"unpackedSize":164056,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGIbBvjnnjezy2++qL/qF5z42UXGZQjD1vE4jzBLnB1qAiBy2lOl492HY/zpRQejsAG2PlXX+pGvTfTqI/odWOkU3w=="}],"size":31512},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_0.3.0_1763199534666_0.08813699855680346"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-15T09:38:54.882Z","publish_time":1763199534882,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.7":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.7","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.2.0","@electron-toolkit/preload":"^3.0.2","@types/node":"^24.10.1","@vitest/web-worker":"^4.0.13","bumpp":"^10.3.1","crossws":"^0.4.1","eslint":"^9.39.1","taze":"^19.9.0","tsdown":"^0.16.6","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.4","vitest":"^4.0.13"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.7","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-z6iFGxq0VpmcIFIQaybVV2dwyKxtNLQ+R17UBy5wEH0EIBnoPlvPfZmX6+mJCe11/rk6eLa8QL8sWL6CTLdSvw==","_resolved":"/tmp/d8af922fdd3ad03a1e98a44cd0991202/moeru-eventa-1.0.0-alpha.7.tgz","_from":"file:moeru-eventa-1.0.0-alpha.7.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-z6iFGxq0VpmcIFIQaybVV2dwyKxtNLQ+R17UBy5wEH0EIBnoPlvPfZmX6+mJCe11/rk6eLa8QL8sWL6CTLdSvw==","shasum":"389599fa8198532455088b10e49280172827fff4","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.7.tgz","fileCount":46,"unpackedSize":165493,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC2Q1+F4rMtwPODwAvlneEWg9+6A2zGebs9e0QUvxQoLgIgFG4rSZNk6NYyR6BB/5ydre4MuMINs45+RUQPcBb2AU8="}],"size":32276},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.7_1764180262588_0.34493857746704504"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-11-26T18:04:22.759Z","publish_time":1764180262759,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.9":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.9","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.4.1","@electron-toolkit/preload":"^3.0.2","@types/node":"^24.10.1","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.1","taze":"^19.9.2","tsdown":"^0.17.0-beta.6","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.6","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.9","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-beD5pQJzI/aZ3fe5trSO6BZjHzxV6+dKJPD6UXpE8olesmoxNSGv5hb79an3IpA35Kup1SLrY4mQGeL1szUdog==","_resolved":"/tmp/89e0bea140c99c08fdbc2a1f59815198/moeru-eventa-1.0.0-alpha.9.tgz","_from":"file:moeru-eventa-1.0.0-alpha.9.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-beD5pQJzI/aZ3fe5trSO6BZjHzxV6+dKJPD6UXpE8olesmoxNSGv5hb79an3IpA35Kup1SLrY4mQGeL1szUdog==","shasum":"bc72ab72f204ffdcb8f28c364de41e70146b319f","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.9.tgz","fileCount":49,"unpackedSize":173496,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDCA7yK7tLSr47Q4qRxaNGGF0kaQ+J5VdQkuMPzywpjfQIgWnZZfiDjlFG2vL13E2o5opqbGBHzFdqCp9ih0ibyOMs="}],"size":33339},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.9_1764855010752_0.7816443352955538"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-04T13:30:10.898Z","publish_time":1764855010898,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.10":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.10","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.10","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-JXwSd+/N3ahbD+JNbMYbEZwaEWnfesp81AXOoS39fnvBeL54PtuffDbGNZiuK+uQZ9i4nA7D1k04NP2uP99KYA==","_resolved":"/tmp/d76e7733bf0785458930ab9114c38af9/moeru-eventa-1.0.0-alpha.10.tgz","_from":"file:moeru-eventa-1.0.0-alpha.10.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-JXwSd+/N3ahbD+JNbMYbEZwaEWnfesp81AXOoS39fnvBeL54PtuffDbGNZiuK+uQZ9i4nA7D1k04NP2uP99KYA==","shasum":"c482dbf19c36ab236a9b665299591ac2e4ec0753","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.10.tgz","fileCount":49,"unpackedSize":173535,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD6cUtJWvzXRbc5WBM96jEUWPltXBxdpjiLisIrqRRz5QIhAOrof0JQvhOoJPzkU+LXJNqlxjBlXjhBmZLZsXPQ+t2o"}],"size":33352},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.10_1765709977086_0.7490899359724861"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2025-12-14T10:59:37.234Z","publish_time":1765709977234,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.11":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.11","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.11","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-5i2LYA19E9siAdqhobVm386dqkV4EZw0+uGDEwLiGqfopE/3yX1zdgOkdvEoT+YJf0SIUqDwuMZoYXkvfWV/kA==","_resolved":"/tmp/94797e0dadaba314dda78708872f97fb/moeru-eventa-1.0.0-alpha.11.tgz","_from":"file:moeru-eventa-1.0.0-alpha.11.tgz","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-5i2LYA19E9siAdqhobVm386dqkV4EZw0+uGDEwLiGqfopE/3yX1zdgOkdvEoT+YJf0SIUqDwuMZoYXkvfWV/kA==","shasum":"612138ead874f27f153d7d3d9e9c5153b3d985d5","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.11.tgz","fileCount":49,"unpackedSize":175881,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDLo9brStQ2zTKGl+h8xkAXMFdNmcdRUIfNtKOdV4R0ogIgbXrpz5Iq8TrAC2eQueXlKT5rBQUB3oBIBhsnFmJ1cEY="}],"size":33632},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.11_1768145473791_0.8347860480799894"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-01-11T15:31:13.935Z","publish_time":1768145473935,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.12":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.12","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.12","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-btgylKdLPqfK1rrTRRseXTOsNsACz8vydVEdU7dkf2SYDudS89okxOGXZ5kEExlEugKIbsRhSn6WELlE1qppLQ==","_resolved":"/tmp/046607f37ef8950021b3bc6349301a5e/moeru-eventa-1.0.0-alpha.12.tgz","_from":"file:moeru-eventa-1.0.0-alpha.12.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-btgylKdLPqfK1rrTRRseXTOsNsACz8vydVEdU7dkf2SYDudS89okxOGXZ5kEExlEugKIbsRhSn6WELlE1qppLQ==","shasum":"b506988acf1fc94cbd42f810115e549f2145da89","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.12.tgz","fileCount":49,"unpackedSize":264332,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDeR7Hz1R3VA4nn0jqc/eHU+kBIlMg97R05j5cvoGxJcQIhAJ+yEZSvPGFDmF44BXDYzVUTcat1uHHqEJ7OqoXCy/sD"}],"size":51386},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.12_1770034334377_0.03349208308873819"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-02T12:12:14.547Z","publish_time":1770034334547,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.13":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.13","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.13","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-zYbC+CFEJ4oyLCVmgR3C+VG4oSq2cJtBOhM5RaH1n7WixHr2KGQKPUJezQAtRQvr4ZtNF+jr+GbDR09uR9/SaQ==","_resolved":"/tmp/a8c45aa69a6f3e1b05fec6cdda3e63ac/moeru-eventa-1.0.0-alpha.13.tgz","_from":"file:moeru-eventa-1.0.0-alpha.13.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-zYbC+CFEJ4oyLCVmgR3C+VG4oSq2cJtBOhM5RaH1n7WixHr2KGQKPUJezQAtRQvr4ZtNF+jr+GbDR09uR9/SaQ==","shasum":"32d40642fe5506f7e92ccc0826321acc2e5921f3","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.13.tgz","fileCount":49,"unpackedSize":265373,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHnAIoKe6XaPOIncolmeTannI4VB+OE2QfzA3AqDctDZAiEA8LFCQM4d5F2wy+loEGvCcgqzSo50V1DuzvD3i3Nrjtw="}],"size":51642},"_npmUser":{"name":"anonymous","email":"kwa@kwaa.dev"},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.13_1770045353341_0.339179305420368"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-02T15:15:53.477Z","publish_time":1770045353477,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.14":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.14","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.14","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-VMz75aYTJO85yXj0jj/M8ImakOYr6OUZnV/I5gmseVrMFcqBc8UC6Pk2LTwoMQw/EWaU59557a1lpnUqeyTMQw==","_resolved":"/tmp/5410d2696db0aafe882cc94a58269dd1/moeru-eventa-1.0.0-alpha.14.tgz","_from":"file:moeru-eventa-1.0.0-alpha.14.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-VMz75aYTJO85yXj0jj/M8ImakOYr6OUZnV/I5gmseVrMFcqBc8UC6Pk2LTwoMQw/EWaU59557a1lpnUqeyTMQw==","shasum":"9e3e10be9c91edca6481e81f22f086652aed56d4","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.14.tgz","fileCount":55,"unpackedSize":295115,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGBUS6+ulvJiCnldf60WrZfIHQXqiBi02CyVuqBiONXQAiEAnwAgcm9aPsd4sxMxHzqwr8yr/3YN1h6S80f3+qaF3l8="}],"size":57424},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.14_1770309006754_0.8608013978404041"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-05T16:30:06.925Z","publish_time":1770309006925,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.15":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.15","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.15","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-zC9WNRSczdK5w//dzb1/1nHxemtaxBP8AcZB3B8KHHaBvCZLZFOti2i7ZkYwG7Emk/pgOYSWdhIP2e+Ry9Qydg==","_resolved":"/tmp/15537a281358acda4ba4037c3d39bb3c/moeru-eventa-1.0.0-alpha.15.tgz","_from":"file:moeru-eventa-1.0.0-alpha.15.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-zC9WNRSczdK5w//dzb1/1nHxemtaxBP8AcZB3B8KHHaBvCZLZFOti2i7ZkYwG7Emk/pgOYSWdhIP2e+Ry9Qydg==","shasum":"1f527f3f54fed126c88fba59d97f52fa5eae0b1e","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.15.tgz","fileCount":55,"unpackedSize":295331,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCfvbTEIH6pkKdyhwON59YGemSz6adtHToK10FBTqKfJQIhAO1L3F8fvigpAKjWaqV8QiLcu8LzZUdJaMELo2lVIRJA"}],"size":57491},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.15_1770390949502_0.9594789771892644"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-06T15:15:49.652Z","publish_time":1770390949652,"_source_registry_name":"default","contributors":[]},"1.0.0-alpha.16":{"name":"@moeru/eventa","type":"module","version":"1.0.0-alpha.16","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-alpha.16","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-sEa6TyGKu+Ce2x1nD4ngy6+mRUKGZKq6Nhjg9ZIuDJ93AEPd2qCv0oWYZdK5MW2fTOvddEjrByBbFVq3rprxaA==","_resolved":"/tmp/db06db9847ef070c4c3179bf829d13ec/moeru-eventa-1.0.0-alpha.16.tgz","_from":"file:moeru-eventa-1.0.0-alpha.16.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-sEa6TyGKu+Ce2x1nD4ngy6+mRUKGZKq6Nhjg9ZIuDJ93AEPd2qCv0oWYZdK5MW2fTOvddEjrByBbFVq3rprxaA==","shasum":"192d9aab81e2741a5881ff83b0cee9d04c3316b8","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-alpha.16.tgz","fileCount":55,"unpackedSize":296556,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-alpha.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCoZRgMaLtrAl/aMVzW+oZPOmPkH3XNDQ+CAsQrqA6oiwIgSD8tgYrDyJksu/4QP953eWuV5PTGkXo+Wf+nSXUk2PY="}],"size":57701},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-alpha.16_1770482222183_0.0041869371431007"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-07T16:37:02.347Z","publish_time":1770482222347,"_source_registry_name":"default","contributors":[]},"1.0.0-beta.1":{"name":"@moeru/eventa","type":"module","version":"1.0.0-beta.1","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-beta.1","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-4VPs+FlTdIMtlNdBvERvF+e9pnSbz+PN7dgztADtaETCQsSDk9ptHJuzajRBhOlr364k4TotroZa9rrIoVelRQ==","_resolved":"/tmp/dd4a7524d28227b9cedec08255a7d537/moeru-eventa-1.0.0-beta.1.tgz","_from":"file:moeru-eventa-1.0.0-beta.1.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-4VPs+FlTdIMtlNdBvERvF+e9pnSbz+PN7dgztADtaETCQsSDk9ptHJuzajRBhOlr364k4TotroZa9rrIoVelRQ==","shasum":"174c4373df61274a9b78fd8e2b48d913475ca465","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-beta.1.tgz","fileCount":55,"unpackedSize":296554,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDNQNE9RY6i6Sz3KGh9W8W3QnKmqHbYEoYrDe3qC/X9NwIhAKbqnnw7uJoZK7AsWvLXOBqEqjfTNnL0NIWAmwi/0AKy"}],"size":57699},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-beta.1_1770482245475_0.22690066781794793"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-07T16:37:25.654Z","publish_time":1770482245654,"_source_registry_name":"default","contributors":[]},"1.0.0-beta.2":{"name":"@moeru/eventa","type":"module","version":"1.0.0-beta.2","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-beta.2","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-Sr4GMRaFNURj72coeK3ZoPz8bvOTSJopTmRcHiVjaae2U3bzrz1gNZXcaN3dRSvd+3Vxm7VPrsUGFHkcPZ2c0w==","_resolved":"/tmp/825a552446ed5caa85187c527204a804/moeru-eventa-1.0.0-beta.2.tgz","_from":"file:moeru-eventa-1.0.0-beta.2.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-Sr4GMRaFNURj72coeK3ZoPz8bvOTSJopTmRcHiVjaae2U3bzrz1gNZXcaN3dRSvd+3Vxm7VPrsUGFHkcPZ2c0w==","shasum":"2e808bc5e501ca9b99c269c8fbf9ff5ed30ec894","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-beta.2.tgz","fileCount":55,"unpackedSize":296708,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDcBVJ0Crp/jfqRjfzo8PjtHDhXrTgR9tFxCU7U8x/d2QIgAXlG6ibAloeLiVhRclbnpG6mW46gALgexKF9h/I4pl0="}],"size":57755},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-beta.2_1774532222070_0.8471019602233583"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-26T13:37:02.220Z","publish_time":1774532222220,"_source_registry_name":"default","contributors":[]},"1.0.0-beta.3":{"name":"@moeru/eventa","type":"module","version":"1.0.0-beta.3","description":"Events are all you need","author":{"name":"RainbowBird","email":"rbxin2003@outlook.com","url":"https://github.com/luoling8192"},"license":"MIT","homepage":"https://github.com/moeru-ai/eventa","repository":{"type":"git","url":"git+https://github.com/moeru-ai/eventa.git"},"exports":{".":{"type":"./dist/index.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./adapters/electron/main":{"type":"./dist/adapters/electron/main.mts","import":"./dist/adapters/electron/main.mjs","default":"./dist/adapters/electron/main.mjs"},"./adapters/electron/renderer":{"type":"./dist/adapters/electron/renderer.mts","import":"./dist/adapters/electron/renderer.mjs","default":"./dist/adapters/electron/renderer.mjs"},"./adapters/event-emitter":{"type":"./dist/adapters/event-emitter/index.mts","import":"./dist/adapters/event-emitter/index.mjs","default":"./dist/adapters/event-emitter/index.mjs"},"./adapters/broadcast-channel":{"type":"./dist/adapters/broadcast-channel/index.mts","import":"./dist/adapters/broadcast-channel/index.mjs","default":"./dist/adapters/broadcast-channel/index.mjs"},"./adapters/event-target":{"type":"./dist/adapters/event-target/index.mts","import":"./dist/adapters/event-target/index.mjs","default":"./dist/adapters/event-target/index.mjs"},"./adapters/worker-threads":{"type":"./dist/adapters/worker-threads/index.mts","import":"./dist/adapters/worker-threads/index.mjs","default":"./dist/adapters/worker-threads/index.mjs"},"./adapters/worker-threads/worker":{"type":"./dist/adapters/worker-threads/worker/index.mts","import":"./dist/adapters/worker-threads/worker/index.mjs","default":"./dist/adapters/worker-threads/worker/index.mjs"},"./adapters/webworkers/worker":{"type":"./dist/adapters/webworkers/worker/index.mts","import":"./dist/adapters/webworkers/worker/index.mjs","default":"./dist/adapters/webworkers/worker/index.mjs"},"./adapters/webworkers":{"type":"./dist/adapters/webworkers/index.mts","import":"./dist/adapters/webworkers/index.mjs","default":"./dist/adapters/webworkers/index.mjs"},"./adapters/websocket/native":{"type":"./dist/adapters/websocket/native/index.mts","import":"./dist/adapters/websocket/native/index.mjs","default":"./dist/adapters/websocket/native/index.mjs"},"./adapters/websocket/h3":{"type":"./dist/adapters/websocket/h3/index.mts","import":"./dist/adapters/websocket/h3/index.mjs","default":"./dist/adapters/websocket/h3/index.mjs"},"./adapters/websocket":{"type":"./dist/adapters/websocket/index.mts","import":"./dist/adapters/websocket/index.mjs","default":"./dist/adapters/websocket/index.mjs"}},"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.mts","peerDependencies":{"electron":">=30","h3":"2.0.0-beta.1","web-worker":"^1.5.0"},"peerDependenciesMeta":{"electron":{"optional":true},"h3":{"optional":true},"web-worker":{"optional":true}},"dependencies":{"nanoid":"^5.1.6","picomatch":"^4.0.3"},"devDependencies":{"@antfu/eslint-config":"^6.7.1","@electron-toolkit/preload":"^3.0.2","@moeru/std":"0.1.0-beta.15","@types/node":"^25.0.2","@vitest/coverage-v8":"^4.0.15","@vitest/web-worker":"^4.0.15","bumpp":"^10.3.2","crossws":"^0.4.1","eslint":"^9.39.2","taze":"^19.9.2","tsdown":"^0.17.4","tsx":"^4.21.0","typescript":"^5.9.3","unplugin-unused":"^0.5.6","vite":"^7.2.7","vitest":"^4.0.15"},"scripts":{"build":"tsdown","test":"vitest --coverage","test:run":"vitest run","lint":"eslint --cache .","lint:fix":"eslint --cache --fix .","typecheck":"tsc --noEmit","up":"taze -w -r -I -f && pnpm prune && pnpm dedupe"},"_id":"@moeru/eventa@1.0.0-beta.3","bugs":{"url":"https://github.com/moeru-ai/eventa/issues"},"_integrity":"sha512-ug/jrF2MNiJBVkqgxWUMAePRH6LDW8pItRVkrT744Rz4CCE0A7BJBGYg4QJnumSZP0fXkNxCnZ2Q+7BCjtUNdA==","_resolved":"/tmp/59ce69b51c7aaa61ee8c809b50ad6dc3/moeru-eventa-1.0.0-beta.3.tgz","_from":"file:moeru-eventa-1.0.0-beta.3.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-ug/jrF2MNiJBVkqgxWUMAePRH6LDW8pItRVkrT744Rz4CCE0A7BJBGYg4QJnumSZP0fXkNxCnZ2Q+7BCjtUNdA==","shasum":"f346a992e8c3796c408108008bdb9d9e62c87959","tarball":"http://123.232.10.234:8212/nexus/content/groups/npm-public/@moeru/eventa/-/eventa-1.0.0-beta.3.tgz","fileCount":55,"unpackedSize":309625,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@moeru%2feventa@1.0.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDRCiKe6lID5PLx3KSk69pKselkgwq1UUIzbBvLwIfVDgIgecOYyg0Q6OIwz9396jpdX+wDK3DOhj+d2/ZH0Z508kE="}],"size":60254},"_npmUser":{"name":"anonymous","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:143fcea3-eb62-4e5d-8ca0-f5d23bf1b98a"}},"directories":{},"maintainers":[{"name":"anonymous","email":"kwa@kwaa.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eventa_1.0.0-beta.3_1774794429170_0.25289601797764316"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-03-29T14:27:09.383Z","publish_time":1774794429383,"_source_registry_name":"default","contributors":[]}},"dist-tags":{"latest":"1.0.0-beta.3"},"name":"@moeru/eventa","time":{"created":"2025-11-15T09:39:06.601Z","modified":"2026-03-29T14:27:22.889Z","0.3.0":"2025-11-15T09:38:54.882Z","1.0.0-alpha.7":"2025-11-26T18:04:22.759Z","1.0.0-alpha.9":"2025-12-04T13:30:10.898Z","1.0.0-alpha.10":"2025-12-14T10:59:37.234Z","1.0.0-alpha.11":"2026-01-11T15:31:13.935Z","1.0.0-alpha.12":"2026-02-02T12:12:14.547Z","1.0.0-alpha.13":"2026-02-02T15:15:53.477Z","1.0.0-alpha.14":"2026-02-05T16:30:06.925Z","1.0.0-alpha.15":"2026-02-06T15:15:49.652Z","1.0.0-alpha.16":"2026-02-07T16:37:02.347Z","1.0.0-beta.1":"2026-02-07T16:37:25.654Z","1.0.0-beta.2":"2026-03-26T13:37:02.220Z","1.0.0-beta.3":"2026-03-29T14:27:09.383Z"},"readme":"# `eventa`\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![bundle][bundle-src]][bundle-href]\n[![JSDocs][jsdocs-src]][jsdocs-href]\n[![License][license-src]][license-href]\n[![Ask DeepWiki][deepwiki-src]][deepwiki-href]\n\nTransport-aware events powering ergonomic RPC and streaming flows.\n\n> Heavily inspired by pragmatic RPC flows, but centred on pure events so transports stay swappable.\n\n> [!WARNING]\n> Eventa forwards whatever payload you emit. Validate data at the edges before sending it to untrusted peers.\n\n## Installation\n\n```sh\nnpm install @moeru/eventa\npnpm i @moeru/eventa\nbun i @moeru/eventa\nni @moeru/eventa\nyarn add @moeru/eventa\n```\n\n### Agent Skills\n\nInstall the [eventa skill](https://skills.sh) to your AI coding agent:\n\n```sh\nnpx skills add moeru-ai/eventa\n```\n\n## Getting Started\n\n### Event\n\nIt's very simple:\n\n- `defineEventa`: all event should be defined with this util, it produces type safe constraints\n- `context`: a channel bridges to peers (Electron, Worker, WebSocket Peer, you name it)\n- `createContext`: to wrap any compatible event listener\n\nIf you need only events without RPC mechanism, then use with `context.emit(...)` and `context.on(...)`\n\n```ts\nimport { createContext, defineEventa } from '@moeru/eventa'\n\nconst move = defineEventa<{ x: number, y: number }>()\nconst ctx = createContext()\n\nctx.emit(move, { x: 100, y: 200 })\nctx.on(move, ({ body }) => console.log(body.x, body.y))\n```\n\n### RPC/Stream RPC\n\nEvents can be seen as packets transferring in networks, so we can use pure event to form a RPC/Stream RPC like how gRPC and tRPC works.\n\n- `defineInvokeEventa`: define types of RPC/Stream RPC\n- `defineInvoke`: this produce a `function` returns `Promise` for your RPC call to be used later, you can store and use it everywhere you want\n- `defineInvokeHandler`: similar to how Nuxt, h3 defines their handler, we use `defineInvokeHandler` to hook a auto\n- `defineStreamInvokeHandler`: similar to gRPC, when one RPC invocation produces not only one response, but multiple intermediate events, you may want to use it\n\n#### Simple Example\n\nThe most simple way to show how it works:\n\n```ts\nimport { createContext, defineInvoke, defineInvokeEventa, defineInvokeHandler } from '@moeru/eventa'\n\nconst ctx = createContext()\nconst someMethodDefine = defineInvokeEventa<{ output: string }, { input: number }>('random name')\ndefineInvokeHandler(ctx, someMethodDefine, ({ input }) => ({ output: String(input) }))\n\nconst someMethod = defineInvoke(ctx, someMethodDefine)\nconsole.log(await someMethod(42)) // => { output: '42' }\n```\n\n### Adapters\n\nEventa comes with various adapters for common use scenarios across browsers and Node.js, escalating the event orchestration in Electron, Web Workers, and WebSockets, etc.\n\n<details>\n  <summary>Electron</summary>\n\n  1. Create a shared events module:\n      ```ts\n      import { defineInvokeEventa } from '@moeru/eventa'\n\n      export const readdir = defineInvokeEventa<{ directories: string[] }, { cwd: string, target: string }>('rpc:node:fs/promise:readdir')\n      ```\n\n  2. In the main process, bridge the adapter to `ipcMain` and your `BrowserWindow` instance:\n     ```ts\n     import { createContext as createMainContext } from '@moeru/eventa/adapters/electron/main'\n     import { app, BrowserWindow, ipcMain } from 'electron'\n\n     import { readdir } from './events/readdir'\n\n     app.on('ready', () => {\n       // ... other code\n       const { context: mainCtx } = createMainContext(ipcMain, mainWindow.webContents)\n       defineInvokeHandler(mainCtx, readdir, async ({ cwd, target }) => {\n         const fs = await import('node:fs/promises')\n         const path = await import('node:path')\n         const fullPath = path.resolve(cwd, target)\n         const directories = await fs.readdir(fullPath, { withFileTypes: true })\n         return { directories: directories.filter(dirent => dirent.isDirectory()).map(dirent => dirent.name) }\n       })\n     })\n     ```\n  3. In the renderer (not restricted to preload scripts, but recommended), bridge to `ipcRenderer` and expose a safe API:\n     ```ts\n     import { createContext as createRendererContext } from '@moeru/eventa/adapters/electron/renderer'\n     import { contextBridge, ipcRenderer } from 'electron'\n\n     import { defineInvoke, readdir } from './events/readdir'\n\n     const { context: rendererCtx } = createRendererContext(ipcRenderer)\n     const invokeReaddir = defineInvoke(rendererCtx, readdir)\n\n     document.addEventListener('DOMContentLoaded', () => {\n       invokeReaddir({ cwd: '/', target: 'usr' }).then((result) => {\n         console.log('directories', result.directories)\n       })\n     })\n     ```\n  4. The main and renderer contexts now share the invoke pipeline used throughout the examples in `src/adapters/electron/*.test.ts`.\n\n</details>\n\n<details>\n  <summary>Web Worker</summary>\n\n  1. Spawn the worker and wrap it with the main-thread adapter:\n      ```ts\n      import Worker from 'web-worker'\n\n      import { createContext, defineInvoke, defineInvokeEventa } from '@moeru/eventa/adapters/webworkers'\n\n      const worker = new Worker(new URL('./worker.js', import.meta.url), { type: 'module' })\n      const { context: mainCtx } = createContext(worker)\n\n      export const syncEvents = defineInvokeEventa<{ status: string }, { jobId: string }>('worker:sync')\n      export const invokeSync = defineInvoke(mainCtx, syncEvents)\n      ```\n  2. Inside the worker entry, create the worker context and register handlers:\n     ```ts\n     import { defineInvokeHandler } from '@moeru/eventa'\n     import { createContext } from '@moeru/eventa/adapters/webworkers/worker'\n\n     import { syncEvents } from '../sync'\n\n     const { context: workerCtx } = createContext()\n     defineInvokeHandler(workerCtx, syncEvents, ({ jobId }) => ({ status: `synced ${jobId}` }))\n     ```\n  3. The same pattern works for streaming handlers and for sending transferrable(s) by switching to `defineStreamInvoke` or `defineOutboundWorkerEventa` as shown in `src/adapters/webworkers/index.spec.ts`.\n\n</details>\n\n<details>\n  <summary>BroadcastChannel</summary>\n\n  ```ts\n  import { defineEventa } from '@moeru/eventa'\n  import { createContext } from '@moeru/eventa/adapters/broadcast-channel'\n\n  const channel = new BroadcastChannel('eventa-demo')\n  const { context: ctx } = createContext(channel)\n\n  const ping = defineEventa<{ message: string }>('bc:ping')\n  ctx.on(ping, ({ body }) => {\n    console.log('received', body.message)\n  })\n\n  ctx.emit(ping, { message: 'Hello from BroadcastChannel' })\n  ```\n</details>\n\n<details>\n  <summary>EventTarget</summary>\n\n  ```ts\n  import { defineInvoke, defineInvokeEventa, defineInvokeHandler } from '@moeru/eventa'\n  import { createContext } from '@moeru/eventa/adapters/event-target'\n\n  const eventTarget = new EventTarget()\n  const { context: ctx } = createContext(eventTarget)\n\n  const echoEvents = defineInvokeEventa<{ output: string }, { input: string }>('et:echo')\n  defineInvokeHandler(ctx, echoEvents, ({ input }) => ({ output: input.toUpperCase() }))\n\n  const echo = defineInvoke(ctx, echoEvents)\n  console.log(await echo({ input: 'eventa' })) // => { output: 'EVENTA' }\n  ```\n</details>\n\n<details>\n  <summary>EventEmitter (Node.js)</summary>\n\n  ```ts\n  import { EventEmitter } from 'node:events'\n\n  import { defineEventa } from '@moeru/eventa'\n  import { createContext } from '@moeru/eventa/adapters/event-emitter'\n\n  const emitter = new EventEmitter()\n  const { context: ctx } = createContext(emitter)\n\n  const logEvent = defineEventa<{ message: string }>('emitter:log')\n  ctx.on(logEvent, ({ body }) => console.log(body.message))\n  ctx.emit(logEvent, { message: 'Hello from EventEmitter' })\n  ```\n</details>\n\n<details>\n  <summary>Worker Threads (Node.js)</summary>\n\n  1. Main thread:\n      ```ts\n      import { Worker } from 'node:worker_threads'\n\n      import { defineInvoke, defineInvokeEventa } from '@moeru/eventa'\n      import { createContext } from '@moeru/eventa/adapters/worker-threads'\n\n      const worker = new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' })\n      const { context: mainCtx } = createContext(worker)\n\n      const helloEvents = defineInvokeEventa<{ output: string }, { input: string }>('node-worker-hello')\n      const hello = defineInvoke(mainCtx, helloEvents)\n      console.log(await hello({ input: 'Eventa' })) // => { output: 'Hello, Eventa' }\n      ```\n  2. Worker entry:\n      ```ts\n      import { defineInvokeEventa, defineInvokeHandler } from '@moeru/eventa'\n      import { createContext } from '@moeru/eventa/adapters/worker-threads/worker'\n\n      const helloEvents = defineInvokeEventa<{ output: string }, { input: string }>('node-worker-hello')\n\n      const { context: workerCtx } = createContext()\n      defineInvokeHandler(workerCtx, helloEvents, ({ input }) => ({ output: `Hello, ${input}` }))\n      ```\n</details>\n\n<details>\n  <summary>WebSocket (Client)</summary>\n\n  1. Open a `WebSocket` and wrap it with the native adapter:\n      ```ts\n      import { defineInvoke, defineInvokeEventa } from '@moeru/eventa'\n      import { createContext as createWsContext } from '@moeru/eventa/adapters/websocket/native'\n\n      const socket = new WebSocket('wss://example.com/ws')\n      const { context: wsCtx } = createWsContext(socket)\n\n      const chatEvents = defineInvokeEventa<{ message: string }, { text: string }>('chat:send')\n      export const sendChat = defineInvoke(wsCtx, chatEvents)\n      ```\n  2. Listen for connection lifecycle events to update UI state or retry logic:\n     ```ts\n     import { wsConnectedEvent, wsDisconnectedEvent } from '@moeru/eventa/adapters/websocket/native'\n\n     wsCtx.on(wsConnectedEvent, () => console.log('connected'))\n     wsCtx.on(wsDisconnectedEvent, () => console.log('disconnected'))\n     ```\n  3. Pair the client with either the H3 global or peer adapter on the server for a full RPC channel (`src/adapters/websocket/h3/*.test.ts`).\n\n</details>\n\n<details>\n  <summary>WebSocket (Server with H3)</summary>\n\n  ```ts\n  import { defineInvoke, defineInvokeHandler } from '@moeru/eventa'\n  // we support h3 by default, you can implement whatever you want, it's simple\n  import { createContext } from '@moeru/eventa/adapters/websocket/h3'\n\n  const chatEvents = defineInvokeEventa<{ message: string }, { text: string }>('chat:send')\n\n  const app = new H3()\n  const { untilLeastOneConnected, hooks } = createPeerHooks()\n  app.get('/ws', defineWebSocketHandler(hooks))\n\n  const { context } = await untilLeastOneConnected\n  defineInvokeHandler(context, chatEvents, ({ text: string }) => {\n    // you can safely throw any error you want, you can even make the error type safe when using `defineInvoke`\n    return { message: `Echo: ${text}` }\n  })\n  ```\n</details>\n\n### Advanced Usage\n\n#### Streaming RPC\n\n`defineInvokeHandler` is complemented by `defineStreamInvokeHandler` for long-running operations that need to report progress or intermediate results.\n\n```ts\nimport { createContext, defineInvokeEventa, defineStreamInvoke, defineStreamInvokeHandler, toStreamHandler } from '@moeru/eventa'\n\nconst ctx = createContext()\nconst syncEvents = defineInvokeEventa<\n  { type: 'progress' | 'result', value: number },\n  { jobId: string }\n>('rpc:sync')\n\n// toStreamHelper converts an async function into an async generator\n// so you can use imperative code instead of a generator function.\ndefineStreamInvokeHandler(ctx, syncEvents, toStreamHandler(async ({ payload, emit }) => {\n  emit({ type: 'progress', value: 0 })\n  for (let i = 1; i <= 5; i++) {\n    emit({ type: 'progress', value: i * 20 })\n  }\n  emit({ type: 'result', value: 100 })\n}))\n\nconst sync = defineStreamInvoke(ctx, syncEvents)\nfor await (const update of sync({ jobId: 'import' })) {\n  console.log(update.type, update.value)\n}\n```\n\nBoth generator-style and imperative handlers are exercised in `src/stream.spec.ts:7`.\n\n#### Abort/Cancel\n\nEventa supports cancellation via `AbortSignal` on the client side and exposes an `AbortController` inside handlers so you can stop work early.\n\nClient-side (unary invoke):\n\n```ts\nimport { createContext, defineInvoke, defineInvokeEventa } from '@moeru/eventa'\n\nconst ctx = createContext()\nconst slowEvents = defineInvokeEventa<{ output: string }, { input: string }>('rpc:slow')\nconst slow = defineInvoke(ctx, slowEvents)\n\nconst controller = new AbortController()\nconst promise = slow({ input: 'work' }, { signal: controller.signal })\n\ncontroller.abort('user cancelled')\nawait promise // rejects with AbortError\n```\n\nServer-side handler (unary):\n\n```ts\nimport { defineInvokeHandler } from '@moeru/eventa'\n\ndefineInvokeHandler(ctx, slowEvents, async ({ input }, options) => {\n  const signal = options?.abortController?.signal\n  if (signal?.aborted) {\n    return { output: 'aborted' }\n  }\n\n  signal?.addEventListener('abort', () => {\n    // clean up resources, cancel timers, close connections, etc.\n  }, { once: true })\n\n  // ... do work\n  return { output: `done: ${input}` }\n})\n```\n\nClient-side (stream invoke):\n\n```ts\nimport { defineInvokeEventa, defineStreamInvoke } from '@moeru/eventa'\n\nconst streamEvents = defineInvokeEventa<{ type: 'progress' | 'done', value: number }, { jobId: string }>('rpc:stream')\nconst stream = defineStreamInvoke(ctx, streamEvents)\n\nconst controller = new AbortController()\nconst results = stream({ jobId: 'import' }, { signal: controller.signal })\n\nsetTimeout(() => controller.abort('timeout'), 1000)\nfor await (const msg of results) {\n  console.log(msg)\n}\n```\n\nServer-side handler (streaming):\n\n```ts\nimport { defineStreamInvokeHandler } from '@moeru/eventa'\n\ndefineStreamInvokeHandler(ctx, streamEvents, async function* ({ jobId }, options) {\n  const signal = options?.abortController?.signal\n\n  for (let i = 0; i <= 5; i++) {\n    if (signal?.aborted) {\n      return\n    }\n    yield { type: 'progress', value: i * 20 }\n    await new Promise(r => setTimeout(r, 200))\n  }\n\n  yield { type: 'done', value: 100 }\n})\n```\n\n#### Streaming Input\n\nEventa supports stream inputs on unary invokes (client-streaming) and full bidirectional streaming. This mirrors the gRPC shapes:\n\n```proto\n// Client-streaming request -> unary response\nrpc RecordRoute(stream Point) returns (RouteSummary) {}\n\n// Bidirectional streaming request/response\nrpc RouteChat(stream RouteNote) returns (stream RouteNote) {}\n```\n\nClient-streaming input with `defineInvoke` (stream in, single response out):\n\n```ts\nimport { createContext, defineInvoke, defineInvokeEventa, defineInvokeHandler } from '@moeru/eventa'\n\nconst ctx = createContext()\n\nconst recordRoute = defineInvokeEventa<\n  { distance: number, points: number },\n  ReadableStream<{ lat: number, lng: number }>\n>('rpc:record-route')\n\ndefineInvokeHandler(ctx, recordRoute, async (stream) => {\n  let points = 0\n  for await (const _ of stream) {\n    points += 1\n  }\n  return { distance: points * 10, points }\n})\n\nconst input = new ReadableStream({\n  start(controller) {\n    controller.enqueue({ lat: 0, lng: 0 })\n    controller.enqueue({ lat: 1, lng: 1 })\n    controller.close()\n  },\n})\n\nconst invoke = defineInvoke(ctx, recordRoute)\nconsole.log(await invoke(input))\n```\n\nBidirectional streaming with `defineStreamInvoke` (stream in, stream out):\n\n```ts\nimport { createContext, defineInvokeEventa, defineStreamInvoke, defineStreamInvokeHandler } from '@moeru/eventa'\n\nconst ctx = createContext()\n\nconst routeChat = defineInvokeEventa<\n  { message: string },\n  ReadableStream<{ message: string }>\n>('rpc:route-chat')\n\ndefineStreamInvokeHandler(ctx, routeChat, async function* (incoming) {\n  for await (const note of incoming) {\n    yield { message: `echo: ${note.message}` }\n  }\n})\n\nconst outgoing = new ReadableStream({\n  start(controller) {\n    controller.enqueue({ message: 'hello' })\n    controller.enqueue({ message: 'from stream' })\n    controller.close()\n  },\n})\n\nconst stream = defineStreamInvoke(ctx, routeChat)\nfor await (const note of stream(outgoing)) {\n  console.log(note.message)\n}\n```\n\n#### Shorthands for `defineInvokeHandler` and `defineInvoke`\n\nWhen you have multiple invoke events to register handlers for, or to create invoke functions for, you can use `defineInvokeHandlers` and `defineInvokes` to do so in bulk.\n\n```ts\nconst events = {\n  double: defineInvokeEventa<number, number>(),\n  append: defineInvokeEventa<string, string>(),\n}\n\ndefineInvokeHandlers(ctx, events, {\n  double: input => input * 2,\n  append: input => `${input}!`,\n})\n\nconst {\n  double: invokeDouble,\n  append: invokeAppend,\n} = defineInvokes(ctx, events)\n\nawait invokeDouble(5) // 10\nawait invokeAppend('test') // 'test!'\n```\n\n## Development\n\n```sh\npnpm i\npnpm test\n```\n\n> [!NOTE]\n> `pnpm test` runs Vitest interactively. Use `pnpm test:run` for a single pass.\n\n## Similar projects\n\n- [`birpc`](https://github.com/antfu-collective/birpc): We dislike the way the API designs, we want fully free sharable invok-able functions, streaming input, streaming output, etc.\n- [`async-call-rpc`](https://github.com/Jack-Works/async-call-rpc): it only works with JSON-RPC, but the DX is similar\n\n## License\n\nMIT\n\n[npm-version-src]: https://img.shields.io/npm/v/@moeru/eventa?style=flat&colorA=080f12&colorB=1fa669\n[npm-version-href]: https://npmjs.com/package/@moeru/eventa\n[npm-downloads-src]: https://img.shields.io/npm/dm/@moeru/eventa?style=flat&colorA=080f12&colorB=1fa669\n[npm-downloads-href]: https://npmjs.com/package/@moeru/eventa\n[bundle-src]: https://img.shields.io/bundlephobia/minzip/@moeru/eventa?style=flat&colorA=080f12&colorB=1fa669&label=minzip\n[bundle-href]: https://bundlephobia.com/result?p=@moeru/eventa\n[license-src]: https://img.shields.io/github/license/moeru-ai/eventa.svg?style=flat&colorA=080f12&colorB=1fa669\n[license-href]: https://github.com/moeru-ai/eventa/blob/main/LICENSE\n[jsdocs-src]: https://img.shields.io/badge/jsdocs-reference-080f12?style=flat&colorA=080f12&colorB=1fa669\n[jsdocs-href]: https://www.jsdocs.io/package/@moeru/eventa\n[deepwiki-src]: https://deepwiki.com/badge.svg\n[deepwiki-href]: https://deepwiki.com/moeru-ai/eventa","users":{}}