{"_id":"@eleven-am/vox-rtc-client","_rev":"10-f219341ab7d678dc1bfac13f30cef0b4","name":"@eleven-am/vox-rtc-client","dist-tags":{"latest":"0.2.5"},"versions":{"0.1.0":{"name":"@eleven-am/vox-rtc-client","version":"0.1.0","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.1.0","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"3eed662625fe595da2d559c3aa34c4fc0442d670","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.1.0.tgz","fileCount":8,"integrity":"sha512-E1M7gk1I+PqR9MKKrL5/wxE9NuEUdsq/XCn8QMblX88qIBWYnjDGVw64mkbF4nAWCYPfGwt6ol77oBSkNxFuxA==","signatures":[{"sig":"MEYCIQCKMpaHDQl8d3gYLZKGxrzOiF30G+W9WjysFqx7NdXW0gIhAJifN1GWH3OV4eUGLBNx9IeygyCD27mrjbtIjwBNBOuy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22068},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"f307d663a28815ff56f5590b9b655dbcc21f0bc2","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.1.0_1778656215267_0.5004168297504215","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eleven-am/vox-rtc-client","version":"0.1.1","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.1.1","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"7bd617963f3e5fbc75b9f51ae3c85403819d9e31","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.1.1.tgz","fileCount":8,"integrity":"sha512-tWH601MzFqOy2ponCQPrxU7SJTmT1/XuTXYchMvhBbjaU3ufJSHJ0JzISq501vG6igh5n167PzU5Uj4dRMpHDw==","signatures":[{"sig":"MEUCIQC+9kDKXyrpNOlHGqJfgQ8ZZNaLTK6nXRvOUh9MHQQDzQIgNSZ738Bjb5RccaeyeKKWhXb1f+u6xK+syndV7zoqptQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22583},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e2e827f90335b0a7179b6a72fe22155a04486af8","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.1.1_1778780589885_0.34783194276302476","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@eleven-am/vox-rtc-client","version":"0.1.2","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.1.2","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"dist":{"shasum":"edfae7ce85b31c7e530f081f67c0a6c860a2fa13","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.1.2.tgz","fileCount":8,"integrity":"sha512-HbisslN2RyTN2Ga8Dn10Uy4qfJb8hE2MrO9lqJ5miKaAy0FV2kLzOfxah17lly1884N3HNByDQVU94WXIsyNPA==","signatures":[{"sig":"MEYCIQCNxdJWyMvFX8UJhVclbAhsQ5avd5V+2oCKYuClaV2qjQIhAKX1PomOQM+F82mXuAPLy5ozCmna8z135FZyNTyMPI33","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38107},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e2e827f90335b0a7179b6a72fe22155a04486af8","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"eleven-am","email":"maixperiyon@gmail.com"},"_npmVersion":"11.4.2","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.1.2_1778797296301_0.09480473404842282","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@eleven-am/vox-rtc-client","version":"0.1.3","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.1.3","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"61819447787f96b7d480fc782d8526445e470919","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.1.3.tgz","fileCount":8,"integrity":"sha512-3poaEObWY7eiwbOXLuc7jJRoPlK+CWZr+5c5S63bjz8j+C8jS9+PxBA6wY0fdFBpFXX1f3hWKfPzOQsUMM+5vA==","signatures":[{"sig":"MEQCIHhasEysNB1uDd/l5QeFNXSxQTILOduTu51oHW3kMn22AiBl3ps9H6HhI7gbPMiAcVq8VChSCQAeJeounQhLHaEgsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39333},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"189579c0d40c89623204ab3816fcab560333caaa","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.1","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.1.3_1784148877811_0.6974823532890455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@eleven-am/vox-rtc-client","version":"0.2.0","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.2.0","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"120bf66f8d833df6f93744db57c5306ebcc8a111","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.0.tgz","fileCount":10,"integrity":"sha512-MhksKiS99HRpjwUCY3HMz3DbqV+gHs1mgiVHJi/p5I10CyVG23HcfSbaFMOfV53Wzz1GQLYVlBjuOYbzpFlLfA==","signatures":[{"sig":"MEUCIFSupfA+L2cxgzZNaOrfZKp7FyA5VNv8hJGQuUltHQXiAiEAuJUSurSYzWNjEjzJ43MFuU/NC0vQcshtoV4MIVrPOW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48566},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"a393bb0d904250fb57f50bfdf11d2a50badf448f","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.1","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.2.0_1784235695120_0.694667185713395","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@eleven-am/vox-rtc-client","version":"0.2.1","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.2.1","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"5ee17b302a19b6d5b9ac2dd502b3c459ca5e4817","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.1.tgz","fileCount":12,"integrity":"sha512-ilheIomlzefkS2zehYqXy+bxhTpShedv0Zd/H7CQQjclbLCdzxt75Rz2tqPTYLrQMJRRQkkmiiWf9d2WGLM3vQ==","signatures":[{"sig":"MEQCIF/I/1jjkS8q3TOFbtqrbvc8Kj6nB9VhqN3F8gxy4JevAiAwkwJYwJcgjwjEzntbJ3gmPJo+xgWUK1Hu2W1bEUPLJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53066},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8a883bc3607ed9d57686fb3708404628af112327","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.1","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.2.1_1784368789078_0.007380181066485525","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@eleven-am/vox-rtc-client","version":"0.2.2","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.2.2","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"95068b4f154cb7f0587f67d54a1186ef95bbfb1c","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.2.tgz","fileCount":12,"integrity":"sha512-Cp/b2s9so6lFlDZ90xkkkHflZnHbra/a7ZGH2YD+TzOqrJrLBOeVHHj702Iw7R9RQ/G6VthwEe+x46VdBoJd2w==","signatures":[{"sig":"MEUCIQC4CSbTNyKQBec1uLuxXiJ53pscbAoxq2uRyknvABQ9SAIgOga8AQX2WT1YgTEFDNzDOQ02aU2mwVw70Nv6OkxnisU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45766},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e4b9e6739d4d770dc519ae81fd308ea44b1f6aed","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.1","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.2.2_1784581656161_0.1509650536987006","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@eleven-am/vox-rtc-client","version":"0.2.3","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.2.3","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"ad10fecea54009dda36a317b746f17dd348cb8b9","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.3.tgz","fileCount":12,"integrity":"sha512-2Y0miCay1PzzbES735QeGZ13A4FMuAijDwVbdF2HjHR8SxXnRxAGD1E/3nD5JkCoFWJuOmObfsNDTmHs8jBDyQ==","signatures":[{"sig":"MEUCIQDW2O6eOQHKGHXHzgxYIMG0X3yCBXT/UIEu8CGCULfHEgIgI0keyVpUe0vujKsESPsBadbZfvH2zoMNX/yci8CJX30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51420},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b3564aae20783cf305246182961e03a5e482c41d","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.1","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.2.3_1784924421050_0.6039575528441841","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@eleven-am/vox-rtc-client","version":"0.2.4","license":"GPL-3.0","_id":"@eleven-am/vox-rtc-client@0.2.4","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"homepage":"https://github.com/eleven-am/vox-sdks#readme","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"dist":{"shasum":"a39497ffadc61d154ec524f335e7d580e85f7d53","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.4.tgz","fileCount":12,"integrity":"sha512-t7uENvsyT8qpH7D9RnchuLEqdQS+7qGM7w8QSVj62O2CL+E9CdKsX1amjYqpi1PfIeRRY1VJGVTOYbvVhpihRQ==","signatures":[{"sig":"MEUCIQCAGlULyX+ednDI4J2wLMQ6EDeURlQuM953qwgdwIIosgIgeSmilvCbwwEdREAiZsWFiZWdWpikip0nBIPfa4Yc/5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55377},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9b6e3b854bbd5489f4f81285a74742ffb78de93f","scripts":{"test":"tsx --test test/*.test.ts","build":"tsc -p tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"repository":{"url":"git+https://github.com/eleven-am/vox-sdks.git","type":"git","directory":"typescript/vox-rtc-client"},"_npmVersion":"12.0.2","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.1"},"_npmOperationalInternal":{"tmp":"tmp/vox-rtc-client_0.2.4_1786393467504_0.2216708296881822","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@eleven-am/vox-rtc-client","version":"0.2.5","description":"Browser-side SDK for Vox-hosted WebRTC media sessions","license":"GPL-3.0","repository":{"type":"git","url":"git+https://github.com/eleven-am/vox-sdks.git","directory":"typescript/vox-rtc-client"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","test":"tsx --test test/*.test.ts"},"devDependencies":{"@types/node":"^24.10.1","tsx":"^4.20.6","typescript":"^5.9.3"},"engines":{"node":">=20"},"gitHead":"2ec6dd93be1e3776badfed5d933413260ea00a7d","_id":"@eleven-am/vox-rtc-client@0.2.5","bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"homepage":"https://github.com/eleven-am/vox-sdks#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-NXh9PiJpOqofzZfJcawFHONk4Ug0/Kdd56dsph7X3W95+yG9HiPBVu/GZtRoA5TMkvvdrjdBmQY2wOTvKMMozA==","shasum":"bb35293ca6829e9dd0471d796868e193b57e4453","tarball":"https://registry.npmjs.org/@eleven-am/vox-rtc-client/-/vox-rtc-client-0.2.5.tgz","fileCount":12,"unpackedSize":56128,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eleven-am%2fvox-rtc-client@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIExNNMJtESU23/kkPdgcAXIY9momF3hi8uMhU4kCtWpNAiAfuGOqm4uXdM7VD3C+vp+8wX3HYi2KTtS9+obRCiZEDQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:cbe259b7-94e4-4f5e-92dd-ac49d9d95f36"}},"directories":{},"maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vox-rtc-client_0.2.5_1786653417309_0.7216302271256436"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T07:10:15.135Z","modified":"2026-08-13T20:36:57.850Z","0.1.0":"2026-05-13T07:10:15.399Z","0.1.1":"2026-05-14T17:43:10.034Z","0.1.2":"2026-05-14T22:21:36.486Z","0.1.3":"2026-07-15T20:54:37.951Z","0.2.0":"2026-07-16T21:01:35.268Z","0.2.1":"2026-07-18T09:59:49.203Z","0.2.2":"2026-07-20T21:07:36.294Z","0.2.3":"2026-07-24T20:20:21.218Z","0.2.4":"2026-08-10T20:24:27.646Z","0.2.5":"2026-08-13T20:36:57.465Z"},"bugs":{"url":"https://github.com/eleven-am/vox-sdks/issues"},"license":"GPL-3.0","homepage":"https://github.com/eleven-am/vox-sdks#readme","repository":{"type":"git","url":"git+https://github.com/eleven-am/vox-sdks.git","directory":"typescript/vox-rtc-client"},"description":"Browser-side SDK for Vox-hosted WebRTC media sessions","maintainers":[{"name":"eleven-am","email":"maixperiyon@gmail.com"}],"readme":"# `@eleven-am/vox-rtc-client`\n\nBrowser WebRTC client for Vox conversations. It captures microphone audio,\nplays assistant audio, performs full-trickle ICE, and receives Vox control\nevents through one application-owned signaling endpoint.\n\n## Install\n\n```bash\nnpm install @eleven-am/vox-rtc-client\n```\n\n## Connect\n\n```ts\nimport { VoxRtcBrowserClient } from \"@eleven-am/vox-rtc-client\";\n\nconst client = new VoxRtcBrowserClient({\n  signalingEndpoint: \"/api/vox/rtc\",\n  audioElement: document.querySelector(\"audio\")!,\n  audioConstraints: {\n    echoCancellation: true,\n    noiseSuppression: true,\n    autoGainControl: true,\n  },\n  audioDucking: true,\n});\n\nclient.on(\"state\", (state) => {\n  console.log(state.status, state.peerConnectionState, state.iceConnectionState);\n});\n\nclient.on(\"signalingMessage\", (event) => {\n  if (event.type === \"conversation.item.input_audio_transcription.completed\") {\n    console.log(\"user said\", event.data.transcript);\n  }\n});\n\nclient.onClientEvent((event) => {\n  console.log(\"server event\", event.event, event.payload);\n});\n\nawait client.connect();\n```\n\n`signalingEndpoint` must be a same-origin path. Direct Vox URLs, direct session\nbootstraps, route collections, and EventSource control bridges are not supported.\n\n## Signaling and media\n\nThe client opens one WebSocket to the application gateway. It sends the SDP\noffer, each local ICE candidate, and explicit end-of-candidates as they become\navailable. Vox's answer and candidates arrive over the same socket. Candidates\nthat arrive before the matching answer are buffered and applied in order.\n\nAfter negotiation, media flows directly between the browser and Vox. The\napplication gateway does not relay audio.\n\n`connect()` resolves only after the peer connection reports that media is\nconnected. Receiving an SDP answer is not treated as call readiness. If the\npeer fails, closes, or does not connect within 15 seconds, `connect()` rejects\nand releases the microphone, peer connection, and signaling socket. Configure\nthat independent media deadline when needed:\n\n```ts\nconst client = new VoxRtcBrowserClient({\n  signalingEndpoint: \"/api/vox/rtc\",\n  mediaConnectionTimeoutMs: 20_000,\n});\n```\n\nUse a real ICE restart when the network path changes:\n\n```ts\nawait client.restartIce();\n```\n\nOnly one negotiation may run at a time. A failed restart closes the signaling\nsession and media rather than leaving a partially controlled call alive.\n\n## Application events\n\nServer-to-browser events sent by the server session's `sendClientEvent` arrive\nover the WebRTC data channel:\n\n```ts\nclient.onClientEvent(({ event, payload }) => {\n  console.log(event, payload);\n});\n```\n\nBrowser-to-server events use the same data channel and arrive on the server as\n`browser.event`:\n\n```ts\nclient.sendEvent({ event: \"ui.select\", payload: { id: \"choice-a\" } });\n```\n\n## Error handling\n\nVox session `error` frames arrive over the gateway signaling socket and are\nsurfaced as typed session errors:\n\n```ts\nimport { isFatalVoxError, isVoxErrorCode } from \"@eleven-am/vox-rtc-client\";\n\nclient.onSessionError((error) => {\n  if (isFatalVoxError(error)) {\n    endCallUi(error.message ?? \"Call session error\");\n    return;\n  }\n  console.warn(\"recoverable Vox error\", error.code, error.generationId);\n});\n```\n\nEach conversation `error` frame carries `message`, `code`, `recoverable`, and\n`generationId`. `code` values are the stable contract set exported as\n`VOX_ERROR_CODES` (check membership with `isVoxErrorCode`). Old Vox servers\nomit `code` and `recoverable`; the SDK normalizes an empty `code` to\n`undefined` and treats missing `recoverable` as `true`. Conversation errors do\nnot also emit the generic `error` event.\n\nA WebRTC signaling failure (`rtc.signaling_error`, which Vox sends as\n`{ message, generation }`) is different: it is terminal — Vox closes the session\nimmediately after emitting it. It surfaces through the same `onSessionError`\nchannel with `recoverable: false` and no `code` or `generationId`, so\n`isFatalVoxError` is always `true` for it.\n\nOnly a fatal error (`recoverable === false`, which includes\n`code === \"session_failed\"`) or an actual transport/connection failure (the\n`error` event, an unexpected gateway close, or a failed `connect()`) should end\nthe call UI. Recoverable errors are per-command failures: the session stays\nhealthy, so handle them in place — for example, stop pumping the generation\nnamed by `generationId` after a `response_stale_generation` error — and keep\nthe call running.\n\nBrowser-native data-channel events correlated to a response\n(`response.created`, `response.done`, `response.cancelled`,\n`response.audio.clear`, `interruption.detected`,\n`interruption.false_positive`) expose `generationId` on the envelope when the\nserver supplies one:\n\n```ts\nclient.onClientEvent(({ event, generationId }) => {\n  if (event === \"response.cancelled\" && generationId) {\n    abortGeneration(generationId);\n  }\n});\n```\n\n## Audio ducking\n\nAudio ducking changes playback volume while Vox decides whether detected speech\nis a real interruption. Vox remains authoritative for VAD, interruption, and\nresponse cancellation.\n\n```ts\nconst client = new VoxRtcBrowserClient({\n  signalingEndpoint: \"/api/vox/rtc\",\n  audioElement,\n  audioDucking: {\n    duckVolume: 0.2,\n    releaseDelayMs: 350,\n  },\n});\n```\n\nDucking follows the authoritative Vox speech and interruption events that the\ngateway already forwards, so applications do not need another SSE or WebSocket\nconnection. Vox owns the interruption decision; ducking only adjusts local\nplayback volume while that decision is pending. Queued audio is never dropped —\nonly `response.audio.clear` tells a client to discard playback.\n\nVox interruption candidates also use `response.audio.suspend` and\n`response.audio.resume`. The browser client applies these events automatically,\neven when optional ducking is disabled. Suspension mutes the remote media\nelement without pausing, loading, or replacing its stream, and a resume is\naccepted only from the candidate that owns the suspension. This makes VAD onset\nquiet immediately while preserving buffered audio for a false-positive resume.\n\nTwo independent signals hold the duck, and playback returns to its original\nvolume once both have cleared:\n\n| Signal | Engaged by | Cleared by |\n| --- | --- | --- |\n| Speech | `input_audio_buffer.speech_started`, `interruption.detected` | `input_audio_buffer.speech_stopped`, `interruption.false_positive`, `response.audio.clear`, `response.cancelled`, `response.done` |\n| Hold | `turn.state_changed` with state `paused`, `listening`, or `interrupted` | `turn.state_changed` with state `speaking`, `thinking`, or `idle` |\n\nVox emits `input_audio_buffer.speech_started` at VAD onset, before the turn\nstate machine runs, so the speech signal ducks the buffered WebRTC audio a full\nserver round-trip earlier than `turn.state_changed: paused` could. The hold\nsignal then keeps the duck engaged for as long as Vox reports the output held —\nincluding while Vox waits for a final transcript after the user has already\nstopped speaking, which is when the speech signal alone would release too early.\n\n## Private data\n\nSession objects exposed to application code contain only the session ID, ICE\nservers, and expiry metadata. The Vox API key, internal hostname, and socket\nendpoint stay on the gateway and never reach the browser.\n","readmeFilename":"README.md"}