{"_id":"@cardos/service-bus-portal","_rev":"14-1914b3900e56ad88052784660f7c7c38","name":"@cardos/service-bus-portal","dist-tags":{"latest":"1.0.13"},"versions":{"1.0.0":{"name":"@cardos/service-bus-portal","version":"1.0.0","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.0","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"b1e5ea6907ac65e2d95322a29c30e69a9401a261","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.0.tgz","fileCount":11,"integrity":"sha512-2csCEz6BiCvjQ+PkHR1URvPaVD1ctE5U9gRt0PV0PidTRghojHlxn1xs930sVi7ooB1JBffSwko+au9T9OLSlA==","signatures":[{"sig":"MEQCIAZzcdj1/TTYBZnSUHW/85afjH25HyGe31gmNHaG2hPXAiBnWWE0BGrLtPrr1rBiY6u5EOKKxxDk9A/t33N0MGBssw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95896},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8aef6fc44baad62b855ce159349e8f08eb859d78","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.0_1753506558598_0.8105126807023277","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cardos/service-bus-portal","version":"1.0.1","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.1","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"5b4b602157227f091e65b34a087175e0286be137","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.1.tgz","fileCount":11,"integrity":"sha512-BSGlpNLBRR3GbM0DNTmeTTbZjeV2Q11IGf1vbZgLxlqpnXt3E4uni0WVvjQOZST7iwBV7A9ryMFBSUBoKjnQZg==","signatures":[{"sig":"MEYCIQDrukXgmTpiyNjGDM/3WM/IF62OVeRTA0cZig5nsRMUUAIhAMq202Y7MFKdC3RA6a7CaXqJVRvCZ0xBNEA6F9N8FMcc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95946},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"8aef6fc44baad62b855ce159349e8f08eb859d78","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.1_1753506674414_0.835224441498718","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@cardos/service-bus-portal","version":"1.0.2","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.2","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"bfc416b3815a13410b9fee17c5b5ed0020abb615","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.2.tgz","fileCount":11,"integrity":"sha512-KB8kzfei/tyPphKWOu7HhyCU2FkzOWNtW7dDY+QCRm91cCJRkPHdZ5vxlV7iRc2gm0H2ld1gyZyDFlGRrEKybg==","signatures":[{"sig":"MEQCIAUZ/o2DzpCjnn0kmAFxXj8EB93XSevnIN0DQR8ZHzO3AiBr0BRK+oHi/E0/ihxfAd9MJcpuPKGo1wxcQr/c0GuRMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96353},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.2_1753628179696_0.2915468203187894","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@cardos/service-bus-portal","version":"1.0.3","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.3","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"f36887909e2c2e67078dcf76a9d57cdbd49f21c8","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.3.tgz","fileCount":11,"integrity":"sha512-7VjQRFLUuK7scyqcnTFPu7ttM0A3Rkh0tfLOcx9sz+UTs+bX/ydUcPulKH4eqoNiqao26QK4Fzv1uP/wUcesMA==","signatures":[{"sig":"MEYCIQCGVwF0fSdPf3suxdQtyKP7mbkwTx7yChDtGcH6NG4evQIhAMwRKzUw9m7B+j6psNQXqS95SeRDdFsbmlkvv0/803vm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105915},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.3_1753628605147_0.24452097363625835","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@cardos/service-bus-portal","version":"1.0.4","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.4","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"14e5671e64971b38699b18fe099041ac4ec618c8","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.4.tgz","fileCount":11,"integrity":"sha512-pJzEvSYYc7Flsri3Kn7EldP9YmvPi5tTUS5VPBf6qow5IcNHCg0NGwIUVh+jkWVrq2a+qGCAM1lJ3miqCjecSA==","signatures":[{"sig":"MEUCIAphRwZ4qUGBDel5WOjaiUt4xytRaYuVFZE/V3AQ5e9KAiEAkOpun0Yzt1PeqLrQi3D88UCrexFetnJ1kWCuFJOHvmE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109237},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.4_1753628795589_0.9249087616747003","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@cardos/service-bus-portal","version":"1.0.5","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.5","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"ca652442a444b68df48b9d9479e9ae31fdc545d3","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.5.tgz","fileCount":11,"integrity":"sha512-nDZNgmHi5MUFl4RFUrKZ4iivSskoK04PR1afK0pn5GZiWyyPeinm50q7NYiMOSfb8Vjrdk+ThZhCQSg7O2A9tA==","signatures":[{"sig":"MEUCIQC1V7+MgPxVrZJv1VeAOuTqH6RFPikAx2ZPjOmPBgl1zwIgYZBVSRxS+49L3WZa+aCF3tdsu4poF+A5d/YYPIL91OQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":109869},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.5_1753629287080_0.23712106963459445","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@cardos/service-bus-portal","version":"1.0.6","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.6","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"276b5e2b64021cacd7c6a843262c81d74504edea","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.6.tgz","fileCount":11,"integrity":"sha512-vcH63d6ifIhjjKxSx7gZDhNKSclv39f9BFyULo5rHU/J3rBv5AUtciAa2I6PbwexfSB9Jf+keD9F26qEnn7YpQ==","signatures":[{"sig":"MEUCIG3NjMMPvGlYPsd+RP28B4kAxxANH3cF6EGaFCozgwK1AiEAtPeBDJPERRvtS3PLMmkwwZRsbLnlZaLuk+tVfQ8hpJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116095},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.6_1753630038504_0.14004025550046428","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@cardos/service-bus-portal","version":"1.0.7","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.7","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"8c31904ead5af0b5e19c1e59e223f7cab051115d","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.7.tgz","fileCount":11,"integrity":"sha512-TQkWEJhbJ12rnmLRQPOGzvPxGhB6hsITBja+GRCqoBKTIMGDormqtXTYWnWnIbeyn6yz9FF+Fkr2Fxly+R2TJA==","signatures":[{"sig":"MEQCIE4syNhhnq06XFMODIHeNtpdStq8G66hT5iBaPFQwQxFAiBSU7ThG7d/5NglKJHB/NmgeNuh42eYk1XLVimb/KWAAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116365},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.7_1753630198314_0.8052833888402622","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@cardos/service-bus-portal","version":"1.0.8","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.8","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"e05e2060671e3a7a6b39d2bdd519c6cfb7a5b7a9","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.8.tgz","fileCount":11,"integrity":"sha512-gy92rn9qatvTWmVNrO31ut+lEshlfxr+Qt/zeuSX3kcgXsgrh8CjqhhQsEUEzdpRDf66KbECPzE7aLv9NYS22g==","signatures":[{"sig":"MEUCIQDR5mzJti3kDa38gTx33vto5VG7zcA0p1cXZ6FHDtb2ZQIgf9CtcueqGYtere2pwXw2DG1lHbpdSVnU3i1mT5GpQKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116411},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.8_1753630402681_0.4130234491599014","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@cardos/service-bus-portal","version":"1.0.9","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.9","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"c597c6e5ea6708fd8ad854ba116b7fac5c23d74e","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.9.tgz","fileCount":11,"integrity":"sha512-tpMYBsMbETMsMcWzZdY4EuIkvkf+l13m7w5Ny0/ssdgBrDHjQ1s04VDqgCOoL41v4nFjiFOaExqWZ2qsk0qVjQ==","signatures":[{"sig":"MEQCIGLfAapxlKaiBfafzNUvTct0INBYl9c5FfPqoF0M6+N3AiBygZfJPSDrCx6rF9OAjZiYTqlMZfMxsQUNViR+sTD5nQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117827},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.9_1753630814394_0.11435565512353674","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@cardos/service-bus-portal","version":"1.0.10","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.10","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"3d408bd0b0b84eaa7be9b08720c74bebd99e6908","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.10.tgz","fileCount":11,"integrity":"sha512-knCpik7vzQM5x2oTBiXe2GCoC6XK44njYaPZrx/NgWueP1PbQeU0HY8d04cSNdBIT00hEwc6GKNr9biBa9d+Og==","signatures":[{"sig":"MEYCIQCOw6QwDQ8zr+jbtf8Hex2cefUC0h5LIPdY/M4NvBSSDwIhALoYRn59l9ekK4XkF6G/4IqjdBbbtTTXTwLC+V/0E6zM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117812},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.10_1753631621662_0.890243785517977","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@cardos/service-bus-portal","version":"1.0.11","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.11","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"1964618cfec1fd39d17164cc2575e27c5e78f115","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.11.tgz","fileCount":12,"integrity":"sha512-w3NjQOCKTpvE+XZQ963UTfa5S5l1lV5y9QhOEeXVz05tB5DkMWzKYZf2FLmACJ+aXj2cegyb1LovKuhKkjflqQ==","signatures":[{"sig":"MEUCIQDQy5DnCHAzqFk7wShWWFFGMQ96UoF94xx3P1R2hRyWYAIgInKAFvPgOFtKi+gS8iIpmOMqwQojb5d3ulLFdkXhZNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118202},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=16.0.0"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.11_1753632148739_0.3038941462746412","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@cardos/service-bus-portal","version":"1.0.12","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","_id":"@cardos/service-bus-portal@1.0.12","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"dist":{"shasum":"8f53fc6258c4f6675a10f7aa1fbffbe554cbc90d","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.12.tgz","fileCount":12,"integrity":"sha512-3JITWaNw1/f84EOcCo/jxJXjQjwKZqTIgtwMWqJzsGAWIimPwTNTj+WGRpX8G4eh+TAnc/SJbPedhML9PHPtPA==","signatures":[{"sig":"MEQCIGVfkcxiZJyW4VLHRfPsJFrpwpt2EwsJGc2pmdxJt+XEAiBKQ409RtKjcRbrxzu04UAG/rTDQ3MrItjxg2GS7LPwcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108508},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=16.0.0"},"gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","scripts":{"dev":"tsdown --watch","lint":"eslint src --ext .ts,.tsx","build":"tsdown","clean":"rm -rf dist","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"repository":{"url":"git+https://github.com/Peiiii/AgentVerse.git","type":"git","directory":"packages/service-bus-portal"},"_npmVersion":"10.9.2","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/service-bus-portal_1.0.12_1753632939705_0.4628773048329877","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@cardos/service-bus-portal","version":"1.0.13","description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js","types":"./dist/index.d.ts"},"./package.json":"./package.json"},"scripts":{"build":"tsdown","dev":"tsdown --watch","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run build","lint":"eslint src --ext .ts,.tsx","type-check":"tsc --noEmit"},"keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"author":{"name":"Cardos Team"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Peiiii/AgentVerse.git","directory":"packages/service-bus-portal"},"bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","devDependencies":{"@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","tsdown":"^0.13.0","typescript":"^5.0.0"},"peerDependencies":{"typescript":">=4.9.0"},"engines":{"node":">=16.0.0"},"publishConfig":{"access":"public"},"_id":"@cardos/service-bus-portal@1.0.13","gitHead":"f66745929c7a851b1cd356d76c2045fefb34f346","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-wWKlb06o03pwcaG7yK6/xuMG2GYSsjkZm1zB1EGFDEnE0LsW8r4ow5id83ohwD6INo51RjyLnqDSZGNzg7Vt+g==","shasum":"74c58154e8526246320936c94a001b3feed1f6a3","tarball":"https://registry.npmjs.org/@cardos/service-bus-portal/-/service-bus-portal-1.0.13.tgz","fileCount":11,"unpackedSize":108488,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJ/8OyzhykWBNxglZAGHvda1IobPpErKex75Ci7y5PFAIhAIXZuCnSDq5/g8Rds4KS17tNBySFzUrb6rWk19TPe59H"}]},"_npmUser":{"name":"peiiii","email":"1535376447@qq.com"},"directories":{},"maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/service-bus-portal_1.0.13_1753633865390_0.7534683294197313"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-26T05:09:18.531Z","modified":"2025-07-27T16:31:05.780Z","1.0.0":"2025-07-26T05:09:18.791Z","1.0.1":"2025-07-26T05:11:14.636Z","1.0.2":"2025-07-27T14:56:19.867Z","1.0.3":"2025-07-27T15:03:25.340Z","1.0.4":"2025-07-27T15:06:35.782Z","1.0.5":"2025-07-27T15:14:47.286Z","1.0.6":"2025-07-27T15:27:18.728Z","1.0.7":"2025-07-27T15:29:58.499Z","1.0.8":"2025-07-27T15:33:22.894Z","1.0.9":"2025-07-27T15:40:14.587Z","1.0.10":"2025-07-27T15:53:41.846Z","1.0.11":"2025-07-27T16:02:28.950Z","1.0.12":"2025-07-27T16:15:39.984Z","1.0.13":"2025-07-27T16:31:05.581Z"},"bugs":{"url":"https://github.com/Peiiii/AgentVerse/issues"},"author":{"name":"Cardos Team"},"license":"MIT","homepage":"https://github.com/Peiiii/AgentVerse/tree/main/packages/service-bus-portal#readme","keywords":["portal","service-bus","web-worker","iframe","cross-context","communication","typescript","postmessage","event-target"],"repository":{"type":"git","url":"git+https://github.com/Peiiii/AgentVerse.git","directory":"packages/service-bus-portal"},"description":"A modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers","maintainers":[{"name":"peiiii","email":"1535376447@qq.com"}],"readme":"# @cardos/service-bus-portal\n\nA modular, composable cross-context communication system for Web Workers, iframes, Shared Workers, and Service Workers.\n\n## Features\n\n- 🔄 **Cross-Context Communication**: Seamless communication between different JavaScript execution contexts\n- 🏗️ **Modular Architecture**: Clean separation of concerns with type-safe interfaces\n- 🎯 **Multiple Portal Types**: Support for PostMessage, EventTarget, and custom communication channels\n- 🔧 **Service Bus Integration**: Easy integration with existing service bus patterns\n- 📦 **TypeScript First**: Full TypeScript support with comprehensive type definitions\n- 🚀 **Lightweight**: Minimal bundle size with zero dependencies\n- 🧪 **Testable**: Each component can be tested independently\n\n## Installation\n\n```bash\nnpm install @cardos/service-bus-portal\n```\n\n## Quick Start\n\n### Basic Usage\n\n```typescript\nimport { PortalFactory, PortalServiceBusProxy } from '@cardos/service-bus-portal';\n\n// Create a portal for Web Worker communication\nconst portal = PortalFactory.createWorkerPortal(worker);\n\n// Create a proxy for remote service calls\nconst proxy = new PortalServiceBusProxy(portal);\nawait proxy.connect();\n\n// Create a typed proxy\nconst serviceProxy = proxy.createProxy() as MyServices;\n\n// Use the proxy\nconst result = await serviceProxy['math.add'](5, 3);\n```\n\n### Multi-Portal Composition\n\n```typescript\nimport { PortalComposer } from '@cardos/service-bus-portal';\n\nconst composer = new PortalComposer();\n\n// Add multiple portals\ncomposer.addPortal(workerPortal);\ncomposer.addPortal(iframePortal);\n\n// Create connectors for each portal\ncomposer.createConnector(workerPortal.id, serviceBus);\ncomposer.createConnector(iframePortal.id, serviceBus);\n\n// Connect all portals\nawait composer.connectAll();\n```\n\n## Portal Types\n\n### PostMessage Portal\n\nFor communication between different windows, workers, or iframes:\n\n```typescript\nconst portal = PortalFactory.createPostMessagePortal(\n  'my-portal',\n  'window-to-worker',\n  worker,\n  { timeoutMs: 5000 }\n);\n```\n\n### EventTarget Portal\n\nFor communication within the same context using custom events:\n\n```typescript\nconst portal = PortalFactory.createEventTargetPortal(\n  'event-portal',\n  'window-to-window',\n  document,\n  'my-channel'\n);\n```\n\n### Worker Portal\n\nConvenient factory for Web Worker communication:\n\n```typescript\nconst portal = PortalFactory.createWorkerPortal(worker);\n```\n\n### Iframe Portal\n\nConvenient factory for iframe communication:\n\n```typescript\nconst portal = PortalFactory.createIframePortal(iframe);\n```\n\n## Service Bus Integration\n\n### Creating a Connector\n\nExpose services through a portal:\n\n```typescript\nimport { PortalServiceBusConnector } from '@cardos/service-bus-portal';\n\nconst connector = new PortalServiceBusConnector(portal, serviceBus);\nawait connector.connect();\n\n### Creating a Proxy\n\nCreate a proxy for remote service calls:\n\n```typescript\nimport { PortalServiceBusProxy } from '@cardos/service-bus-portal';\n\nconst proxy = new PortalServiceBusProxy(portal);\nawait proxy.connect();\n\nconst serviceProxy = proxy.createProxy() as MyServices;\n\n## Advanced Configuration\n\n### Portal Configuration\n\n```typescript\nconst config = {\n  timeoutMs: 15000,\n  retryAttempts: 3,\n  security: {\n    allowedOrigins: ['https://myapp.com'],\n    requireAuthentication: true\n  },\n  metadata: {\n    version: '1.0.0',\n    environment: 'production'\n  }\n};\n\nconst portal = PortalFactory.createPostMessagePortal(\n  'secure-portal',\n  'window-to-worker',\n  worker,\n  config\n);\n```\n\n### Error Handling and Retries\n\n```typescript\nconst robustProxy = new Proxy(serviceProxy, {\n  get(target, prop) {\n    const originalMethod = target[prop as keyof typeof target];\n    \n    if (typeof originalMethod === 'function') {\n      return async (...args: unknown[]) => {\n        let lastError: Error;\n        \n        for (let attempt = 1; attempt <= 3; attempt++) {\n          try {\n            return await (originalMethod as any)(...args);\n          } catch (error) {\n            lastError = error as Error;\n            console.warn(`Service call failed (attempt ${attempt}/3):`, error);\n            \n            if (attempt < 3) {\n              await new Promise(resolve => setTimeout(resolve, 1000 * attempt));\n            }\n          }\n        }\n        \n        throw lastError!;\n      };\n    }\n    \n    return originalMethod;\n  }\n});\n```\n\n## Type Safety\n\n### Defining Service Types\n\n```typescript\ninterface MainThreadServices {\n  'math.add': (a: number, b: number) => Promise<number>;\n  'math.multiply': (a: number, b: number) => Promise<number>;\n  'storage.getItem': (key: string) => Promise<string | null>;\n  'storage.setItem': (key: string, value: string) => Promise<boolean>;\n}\n\nconst serviceProxy = proxy.createProxy() as MainThreadServices;\n```\n\n## API Reference\n\n### PortalFactory\n\n#### `createPostMessagePortal(id, type, target, config?)`\nCreates a PostMessage-based portal.\n\n#### `createEventTargetPortal(id, type, eventTarget, channel, config?)`\nCreates an EventTarget-based portal.\n\n#### `createWorkerPortal(worker, config?)`\nCreates a portal for Web Worker communication.\n\n#### `createIframePortal(iframe, config?)`\nCreates a portal for iframe communication.\n\n### PortalServiceBusProxy\n\n#### `constructor(portal)`\nCreates a new proxy instance.\n\n#### `connect()`\nConnects the portal.\n\n#### `disconnect()`\nDisconnects the portal and cleans up pending requests.\n\n#### `createProxy()`\nCreates a proxy object for remote service calls.\n\n### PortalComposer\n\n#### `addPortal(portal)`\nAdds a portal to the composer.\n\n#### `removePortal(portalId)`\nRemoves a portal from the composer.\n\n#### `createConnector(portalId, serviceBus)`\nCreates a service bus connector for a portal.\n\n#### `createProxy(portalId)`\nCreates a service bus proxy for a portal.\n\n#### `connectAll()`\nConnects all portals.\n\n#### `disconnectAll()`\nDisconnects all portals.\n\n## Examples\n\nFor comprehensive examples demonstrating Web Worker, iframe, and multi-portal communication, see the [examples directory](./examples/README.md).\n\n### Quick Examples\n\n**Web Worker Communication:**\n```typescript\nimport { PortalFactory, PortalServiceBusProxy } from '@cardos/service-bus-portal';\n\n// Create worker portal\nconst worker = new Worker('/worker.js');\nconst portal = PortalFactory.createWorkerPortal(worker);\nconst proxy = new PortalServiceBusProxy(portal);\nawait proxy.connect();\n\n// Use worker services\nconst services = proxy.createProxy() as WorkerServices;\nconst result = await services['math.add'](5, 3);\n```\n\n**Iframe Communication:**\n```typescript\nimport { PortalFactory, PortalServiceBusProxy } from '@cardos/service-bus-portal';\n\n// Create iframe portal\nconst iframe = document.createElement('iframe');\niframe.src = '/iframe-page.html';\nconst portal = PortalFactory.createIframePortal(iframe);\nconst proxy = new PortalServiceBusProxy(portal);\nawait proxy.connect();\n\n// Use iframe services\nconst services = proxy.createProxy() as IframeServices;\nconst html = await services['ui.render']('button', { text: 'Click me' });\n```\n\n**Multi-Portal Composition:**\n```typescript\nimport { PortalComposer } from '@cardos/service-bus-portal';\n\nconst composer = new PortalComposer();\ncomposer.addPortal(workerPortal);\ncomposer.addPortal(iframePortal);\nawait composer.connectAll();\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests\n5. Submit a pull request\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details. ","readmeFilename":"README.md"}