{"_id":"@astronautlabs/wdi","_rev":"14-01dfe9e32a819a3145c215cacc7b0262","name":"@astronautlabs/wdi","dist-tags":{"latest":"0.0.14"},"versions":{"0.0.1":{"name":"@astronautlabs/wdi","version":"0.0.1","author":{"name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.1","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"dist":{"shasum":"5bb932f380fd7a0c304a7054bcb4827db8e345a5","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.1.tgz","fileCount":50,"integrity":"sha512-BDu+lJ0V1RzJTLp5yIEw8PsuOCNaqEUodOqfKSOWcnS2EVdYYmSCONaV95e/s+y6Ke7eNtjJrw55eV8+Db5a0w==","signatures":[{"sig":"MEUCIQD3r8DHbrhLmznqTKQ+qJwFbp7B5pJQegs/kJsTHL0RzAIgOFhNbjQDexlaNclkKBVM+Rxb0vSTzDdBAQtpQ389WJA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":118889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfa/+UCRA9TVsSAnZWagAAKzoP/1liDzMcEKU2+TExcRuZ\nKsuz+QPfVIvdUi/hOiEsMvHkUhIiQ3vPXOPwKXjIR3ifnzfj58w8aWAUs5tN\njVvHtLwzIhFMhZ2RG55HqjRqYHfB65jEnGgGGlDk8cin3a1KdEvWs4pgnuc0\nj+mcDDaLXh1NMUmP6N+EXWxqIOOl/ACJO+mDbwszrIZAtFLBdPljXq/bv6xD\n4d0vWJVwEoBkrLsrHKGhPJifN+J7SedhqcqHGV3GxwTXQfiT6nHDtIWVoQOd\nnSqcyt2UyykxVBlTw83kTnQK29d94w6P4JF27hHTIreLISPck9n0CMDDR8j7\ncNNypfpegKSMvKgVl5aG8C1RTf8mhUtS4z1ENkICzxxXnAhDYGuk00HeBwMt\nQ76VNR8f/NeLYozDgXmmaBh8eST4ABEUhHgvsOdly/YPqgGWQNMdBa9L+IaC\n6zbkbCPAtQbWiS2WGnmYK4yOQDmLjsQ6tuTR9J6dKazbeF8BJb+os5J9IbV0\nHx0mfbE2ebpnDegWbc8Uzd7FsohHfFu1U4sKRgG9cqr0mnCJfpQ3UsII9r9O\nE4ZE07HmIMfPAxISzotb+L9LuPKoLunDfqVMfLgYvvnWQyyuwg7p7YEiHlTh\nHe2ufbg5+ualEBufYOZky9ydSGgOxrI7MmMLe9sD8xnG7AWBWm6JYofO6rpI\nG8JM\r\n=46ID\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"_npmVersion":"6.11.2","description":"","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.1_1600913299913_0.1315494475742509","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@astronautlabs/wdi","version":"0.0.2","author":{"name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.2","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"dist":{"shasum":"c1da920b6ba03034c507b3519bdc52fae36560b2","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.2.tgz","fileCount":51,"integrity":"sha512-wj/rO9JeEZUxVpMnPYL7y0TEppiEXZF5dEaD3u+gqquuQ9gWqTg+savAx9lBxGdSmw2bex273Dc/j8gGrlvuRQ==","signatures":[{"sig":"MEUCIEq6Ituvu7CWuco+Da1oWjpp33wa+kYOikNocqe1eG8bAiEA8lLkF3Q6PHwmB2julB+y83FhiC06BZFkLK6r4wpA9B4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbD39CRA9TVsSAnZWagAAjKAP/0gPxpy0FsuhIWtjgg20\nAF1N8LmcbwUKQgotgKcmquo4ePQnkzahCWlCVPqSPZMXGATfKKpOHZiK33mv\nz+xALQLgYpiahELXI85lNmnUyCsjSFU7bhwsO7HJkeRYJCZRnjufbrV/ydJr\nFu9VPW7wyiDFx8qB7U8ObnnkRxGc2n7clrs5ZTVNnYwbslxfcWMOh3crEZLN\n5rZ4qoqihFbDzviTwkXKuOAv9I0W72csp6+mk1DG8ASEXRDgmVewS9JcrU4o\nmIuIbJ3i9x0WdM6tTuwx9xA9kxmCti+NLzrgbEox0BFZfdAmY8AQANv5mkVS\nYQGp3LDaommEQWUwJXtFEVXqgh7bn9irB00OmvNDh/lczqU3S1SUvw+/gGzv\nT04cHsrcQYyVxf2ZW6RqaBS3UZuOn2bPEC7i7GqSSE0bEYCjGNqFo6ZtEEE1\nsq1+hotDipeEBtqbZ/F3W8pRTvkHIOqjcdhE5hjmf6vfAd89cMHG6Gjr5MDI\nHJby9+UQqWPP0R+/bHLH14pi7K2lyW+d/Cc+to2pYzSSa3rpz2hH1AGzoBIM\ntYKqrMlogGzfy+Gl4JY6HA0xDZp/GwT9Wi+974FPChBnEYjC0x/UJ0kRxHj2\nrFEDoGrPBJF1DXn9UgtCG5n75e8mULhfZDPQ1vMsYgN7Dte4RGTmo+mvO/cc\nWylA\r\n=XMme\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"_npmVersion":"6.11.2","description":"[Home](../README.md) | Reference Implementation | [Example](https://github.com/astronautlabs/wdi/blob/master/example/README.md)","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.2_1600929276864_0.8579746749253214","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@astronautlabs/wdi","version":"0.0.3","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.3","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi/issues","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"cdc38a94b8d72d800aff61945ddfc029697ac289","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.3.tgz","fileCount":51,"integrity":"sha512-AiElEAmvOcJNr/YZUMj71GQ7ReWrwVhgqsXrzJVaLdItuusNrKNo/oHpSIvPYbsKzmOh7fKu/ydF89LFBSVnrg==","signatures":[{"sig":"MEQCIBgYUdsxl15FH4jedMZcpoNhviLx/iCD9ZsNpb/enRitAiA9filrE2QEtZQfxCnL5B98YzG6+q3O7u6sexADfIr44w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbEAwCRA9TVsSAnZWagAAXK4P/Rp2MKXeb24EAxNR2r2y\nklleKXUY66xL5dusCVLFzSTd9QB2XAH4z+8NQ6QJe5zy3bCUZz5CXiSXVNcg\nCb1sQ0MYnzeUi+3h4k0RodS8RuFXyNHs0dyjnXxMdY15sBR6KD7Nt3u/iXp7\nuXefKkCNLA70atpKZOMCYbUoG3WyD0yLLalhoo/1bZSoCvhGQqwGABMPmsEL\nbUnzNvp+q3qtOZ5rHHnQRFSyPmCn8Hp0iV6Pu3ofoV7FdAnmu4ooddaXBNKN\nYS8kCQqjmDTDpMxy2S2ScCHey+f2k1kbHv+8ynkp7tGQxagKBrPF6ffuGSsB\nu/VXylnkCnfvk57R3Gq801Lmzhx8E6s/QI4+S4UUUcLA0vsGpmXTNO7TmT62\nmRQut4acr+f5EKczUgGTVNQu4UlYRaDMn1K7fcSozrtWIzbcuCr8BwOhM0Bh\nJSFRo1VGCg3SZjH64Wwz71COCM/IukCqKuByC0ESNSfD9JskzopyoSz9dsdJ\nWoHv0RUE64LfbuKg3cWrn7XJwTxwU3ukE6leHEBjAhs9UT1lo/IHrffazp42\nitbX/jnhuiBpus8kl30tvu77w7HINVX6HatfRRkPyA28JzeUtVH1DtUcik/a\ng4HuHPAH5yXjxdsjkEQjjHWi0StM3vw4K37o+neuezCk+4gsAS7NtIUPz6H4\nlGOk\r\n=WY0S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"6.11.2","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.3_1600929839765_0.17415457323050232","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@astronautlabs/wdi","version":"0.0.4","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.4","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"669648edd0ed2a7a2a52cfb4424a7a05e7f35536","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.4.tgz","fileCount":51,"integrity":"sha512-angtVrYp+C0+SqqceD/83fTgF50zAViFuiKzfOFyqzYx1C2u9lVwz2nYoj+YWjeeJHJfJ0Bh8iL2SXtVkfgyJg==","signatures":[{"sig":"MEUCIQDUEE5uyMidoAC88qaJiJ8elRt3kIk1KH6g54A4tD6fvgIgZa7opfmtJVq/3wRLZ4iWNpgvq0dw7/1COzRK926MLp8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbEF2CRA9TVsSAnZWagAABbAQAKEtDSsy6yuQZU6gmkGz\nduTob/0BfhcPeVtriVlNmy5wJDsJSTip2uJ7yLTfmz+rGF3IQDU2GwC265PM\nKfLEj/bci+CjUg3ouMculkl6Jc4MFVDdMU05A+uCfjrIjD8Xsn1FWvLkStDp\nbvf/tPvJWu7WdCqw+Dog03fzLp1BPEOyO//dm1kEwRUXaRYymuS5wgwKO31v\n3sUFY8SQ814fq6NexYUPuySZnXH6CUHuIhTT72OmQ9p9Aya343zRltFVrJcE\ndE0kTawSbIENu4Ygyisi/dxjx9xhABC5vtdR/oqdOQK1TphvxbK3IR4kfc0H\nnEliKdl9CNAt9BMKxbNE15LPELluyzQ26Onuk4ogX/Olmg8AfrnmfQrFtqm8\nkHEQI1OZK0XvVRdtOgbJ+7xMUr0rdvdbMz/2TONZrzudVU5dRX3lXVkq41+F\n+oDN1ywBQxp2rQv/2oixiNYtxB3jyKPdBHiIhPop0/pChEPcq6zR1L6kD9D+\nvcAAyJUuWEM3z5CmR6haDtjav6dCvTePa8yqsK7FQc1PxwnB1E1ve7omimqH\ny66stWw8ZyihPDDfllyPHhOBtRIJg8pZaR2xYmtKb4n063mDQnV11ksTxnRr\nfo/UB7ExB4r3bRJslpDmpC+KEvcGQM+jpl4YUaenJBAxC57I14jKDfUoU+UX\nCt6H\r\n=pnnE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"6.11.2","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.4_1600930165897_0.7863341498888359","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@astronautlabs/wdi","version":"0.0.5","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.5","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"32809b5258f130460ec82938cb051b14717ca869","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.5.tgz","fileCount":55,"integrity":"sha512-R9NsWO3lyIydiZiERhdHQiYpnEdk02vESx2ZuY8cEmHDXhfhdJ5QI3lPnCKO9fwZi5TdEFPwa0W+h3Ea1odYmQ==","signatures":[{"sig":"MEUCIQD2bsYzUhK3VCgQ5S3ZuV43n+xXcyvXHbwkb/m7mZam0wIgWkThiMgHJcPBtZbQA0XGmk8ZJCt/oLfr0xZQQK4vle4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcDpVCRA9TVsSAnZWagAAyVAP/A2tnBFLoTJHeqPwIsRZ\nX3APezvBH6nOdKb/q/5ktxJLtR/l9SZ7kHbyeUyfAzHA0DsbwfdUHOz2CiYJ\npMNFnjijJH6aueeSo5z99YRARaclK7JVOKCHXwo1Clmw5+U/VeLYoWBDmg1Y\nGcd+zlOUQcNKRcVpXmwADSuwjvogWY6ln0wnHDUxk22pcWPgn7WDw3u1t3jh\nsRK8nj0Va6j8s3xAy9rYzzsRvvLYCJTRmP2Uv3zyedZuF7MLh9NoJEL6q8vB\nylhitdeiu/ZBrlqQcjTv065X8/RAwICh7YAUNQS72V7B+6UbVkC6D33eEVVk\nI/HLDcMNvgbmDoDyV/X3bHw6O/BIQ7n/Jz79NLjnGVZpTkrJMAPhLo5BiDPF\nWnJ0gqBp3KtkxeXNO0L2vP5AJKNpJM+k15KHG9cfcBV9mm30QOv6bhumN4xY\nQQMrpymld7x2ncIWUMJIvtQ4YHrIs45gcMrWJ82nG09nJ+iwdpoFjeMeQ0KL\nlgxkUA051+IYUVVAOgjBe5MwtlFBcnLEUYpzi2PGfAdsewBohd6wTZK4iQkM\nJKSrIo5uFrUO7YhC1mk0sZrMfcpyyl6m2Zf9dGs7zSPzFyo8JfgcRHV60u9R\nUA3/Pqj7187mEODewW5zsF0kVdwulv/a+r7KIQTDurdiEa0ZpiE2RGP4e53u\nuBGF\r\n=ji7t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"6.11.2","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.5_1601190484648_0.1107989368834541","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@astronautlabs/wdi","version":"0.0.6","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.6","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"02992c739107e0c886cd7762504fe62c71984cba","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.6.tgz","fileCount":55,"integrity":"sha512-YDLMjF7oUziYJ0YqVbLYhHv6mI2MO6rv3OG6UowhsYmpZxSH28gaEoKAv+4ZF3r+31A7iAhDvpRXKsjO2wVmqw==","signatures":[{"sig":"MEUCIQC5B3D1HLkGgciP3DkODlGa/GZR086Qoi0rZj/wlW3UgAIgblNa0UGnBF+QxWtRbFP1FeBWHsR3iPBV5r+l9M39Xkg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131684,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcEZACRA9TVsSAnZWagAAec4QAInGBy/07tcKomOp+6iX\nIg/jnR+jJneKC01hdLIjxoWHpJiKJo4NUgJEFEdmAO/zFRBXcVh9xcz/P3wz\nx4jgR8tuy9rzYpEYZxO0MUky4/VpTlkklRQb0O1XAR9RzeEnwycDgB2IWbqM\nteXL/Scwc9wnKzXzc2BMn45EmkJ9oKaB+Zfnbck0TQ2/uPFHhtbpjIOdgBNp\n7Nzxl4HveLnD4xiygD9bZ+URfwM7242gsIgOGreM8xm/P2Lw/lGT84q/+X1R\nxM8wyCV/ZxtOY+/s+HWymzOtFnCFWQi/IulNOfo/Bbpyvwfa4kUc5l8enkMC\n7gTkkL2+6lNOPDmRWCYdOmkul0bnG1uztxeeoy6d3eMaSYaufWTLM6s/4atk\nUAd5pLyHZ5p6y3BQxEHB5Ev3OZ2btHsVVWHbQNCvx4NIo4mnFQz1mrca8S4j\nrpzhtxbvaSvb/A8fuwH2LfRv6oZWoamriAGddU7JbYGhecdo/JIutxC+Uoed\nsKWQt6FweDlop73keM84t9ghGbJ/MfhLwkAeqAnorCYhH/84ihNhbjoy6xWf\nsZz9MyQexzOM4yaEMXhcniDBLFys3hpjNH3s7CFq/jYkFzbhMaYm2G8NTofF\nXroEYQaK32/fO0F/Nth6/CFNxUv2TsdVIxN9M0NLkg402gsIkZt8rRMxhDXf\nnuo8\r\n=c70b\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"6.11.2","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"10.15.3","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.6_1601193535873_0.8559659358027776","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@astronautlabs/wdi","version":"0.0.7","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.7","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"fd67a2c1f1c9413ad0e58cd38cf7cff92c9aedf8","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.7.tgz","fileCount":55,"integrity":"sha512-OH5rgIxcaArwXZ26RRDWJ6k6Oc5Sa5vAmfSuqarBvYmbLCX2ikBwE6Y+vuXDkC9XHlyEY3tGp3/zNnw4xEUyiA==","signatures":[{"sig":"MEYCIQC2MrGE+LNan8vtU4MAMK7Lv9Y7cCcxn/jr7ezs9/CI1QIhAKIeZ8Mg0w42GYVHsW4rlupC39ZcGXO1kpj1rVJl8NXS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":135912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmmfvCRA9TVsSAnZWagAAf64P/0WxXBxXD+6CD2M8Mz8s\n4gaeMAJLNwrsSXJvlVuAe4P9G86X19EEOMOkM7ldH/DKPrs6GHZPD7JqgDRD\nAU6Ut4oiN465zVj+6iL62bU1BUK+dPD5fB28cAnsPsxiWdyhtWHMYEKOrP+u\nfLKVwDXNt05/+7VtU34OliwcGF58KqbSQI10M6wQQ382BMq1iVo08h7bwD8x\nAW4CeX35iDxfeAtKrA+YWjEkpG5FuM8QaQq3rU2VGQFjcnBWxTpeix5HWHGu\noNdPBQlA1rKVRsUsNQ9Afidn2YwmOGqaTqYpyPDzMjmvXn4gkl8mQxy84lcV\nnLLKf/xiQZRHvSi+s0hlYGNn6k6TH6ivTIqPpf0pT3VfPLc2msbH2uwiXjHy\nmPsVSF/H7h7EvJTQKBYirm1TsEM7VXMVYMpgLrI9p7DuWTSKlU6ntx1JN4es\nrnai63t+K+KhDeq3LC8X4YkVCCY1fuu9GpNFWOrdFAtCfxXA4IJuJSeOWRkA\nEl2cR40PqSilereUwnAgNm5dxrCzvYeCON/o6W0nVroFKl732TBdTiKM5kew\nCe9w8JNaIB1ZcvH6fo6E/bsfMYO7knpKi/KZrLdRauyiCcI6hBh5Xe1H9oFq\npmuQKsZawlmJgNLtvYrmeW8D1li8VoT9ipC8zkdD43krM4TKhfqvHISwwFN/\nG2eV\r\n=RqT5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"6.11.2","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"12.18.4","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.7_1603954671354_0.41040274619008965","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@astronautlabs/wdi","version":"0.0.8","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.8","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"8e289577f631e4c844634ebce790f222429305c4","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.8.tgz","fileCount":56,"integrity":"sha512-bn7HJ7zGlvEVKZumu3S6Lyu0gvTwDfWLJk0j/iLoPqXQxUmmtBBCtAyARztIEHjVyBEO3zHaPZE6uuTfhSGx/g==","signatures":[{"sig":"MEUCIHBPMkddbmPCBpYDh2J0142NpTTVimURS9Ue+VgGU8QbAiEA6niiOqTUY9lXel+/bK9zyPntgKidgmdJT4K+tbbypRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFt+HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7kRAAg8mCFW0mqEIa09WnAqtqiYyCfazZ0CXqk+ocVsmva0q9YTzG\r\nQ8CQQDEdt+bgPtoRKWdiRnTD6bqR6j19cs7Mf4ifWLv/FJ2NRNcr/1F/MESq\r\nCZI3QuJhYX/Va/2nhLMH0mEy2IZQldnwe0K2t3HkradK25WyXSYW7IOQoXfd\r\n1x7vkSq0gqFagB1EJtAiXOYpkHYSbZ4IJwd+/fvnQ5r/TivB2gU24Q+6jvvx\r\n8abNuOrDTJshW48YgPEwc5W+mMza7QSznNNhtUAIIumPf2G4M25yX+UBsIY0\r\nqre1p1tLbyoZYjzqPKszebnJz48+YISGyfNN3cshy3KGYpAnkIhVowv1Uw9C\r\niTT+QppIFlXTyL0uBruDscGhzI5q76AHuzrfH64w0SjRVtZyHP1y9K5kef4m\r\nvUB5pKRfMLm+W5NdUjo5e55gRiZs47V9WZILxlXH8fdXiwLsaHlAmtEJWGop\r\n0Zge5fV/WTINJCbYVQKLktPgdxYgSjMuahTw6AOzJ7UcrKtzWEO721QVApmQ\r\nony6uzUQCKUIxyl61yOoYPteBeTunmTtQkCpcgBeQ1XTJ0V6n7cWD/ZhrinC\r\nPm8TIia6sxeY6fkNGffhDyE4wfRt4SNRy13+87DUnOJ3XGafwJyR4rIdCBWN\r\n0FSGXTgo9vm/V5nsrl17261xwlkNarkoh1w=\r\n=wZ4e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"3f5c2ac254add967d62f43c77bb5783a645aa673","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"8.19.1","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"14.19.1","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0","@astronautlabs/webrpc":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.8.2","@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.8_1662443399378_0.029639240844833825","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@astronautlabs/wdi","version":"0.0.9","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.9","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"232ec7323be628d79fee65fe7b9417ef489616bc","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.9.tgz","fileCount":56,"integrity":"sha512-7PbbcC6cwtqZsL3HUQzaKkwGT5ioSpi/Ss7qk1XGsC3bafdQHgfd4kJmt/jFP5voDFqQoKydq6Fz1EeCIDsrWQ==","signatures":[{"sig":"MEUCIBkSGHEtVO/KocNglWD9a3zGAcMGBYTuloE6zp0N0ODDAiEAwr/kIvjPwdPwa8ShaL6oL9x6U3tJ4vPJaypJ+9r/JoQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":143069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFvdcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLABAAkt1YDEderPbzMMVYvieP8ciE7++wa8PEoYniZOTnPOosc3w4\r\n3O9v5aWXb6OybzaBxo0mYt5/uLgM6YW4qXBrwC8SerYEziwjpSEso1rVRRkT\r\n1Zy8m/lzfTZcVyYV6csZUWv1GnOH9LqcxYD60j03coyv0BJfvTBbziwKhVrk\r\nfebYCOmU+Yyj7B5d3Oq/Vpds99xK2pAP3oeOni/2WPAzK3fJAJlib3azMt6A\r\nIWDgI2mdCq41YwZZdt85Tu7rsZlgFsI52ZVIL8/dHGd4BntvNUPbSd33qPwm\r\nW8oTFoUDbUTLUlIqUTX87zVL+tY9reYp5vLyc4kHDv1NabUQcOouLC9jCx7M\r\nxJjqPeInaQ+xmJLBO3noNw49nTdHRde07/R6+R8X0J/zvVd360P8DXqUlynP\r\nlBSFNtqTcSnZgtY+p3l2hPsKCZX6Q9CQVZFP8lxc3LmC69H47sIJTcOWe9Hm\r\npLioakG6LXm/841c5P2I3fu/GCfCtWkoaKXJftyhWLg5Qid051ZDYZZC1JRZ\r\nTFWPWoR66erTu/aUXBG+xz+Ff+W1XmZ4cYjzBV9zKb5HwhSXK8THbg/gVJWD\r\nUo4zmU3JUr/3VSZASLHEv9+K/LongKPiKqt1j0087qT2AdqrcNmeVNiuJve9\r\nYtgo1k+oeYhEkwHoApdU/aCoIFZcreuNSic=\r\n=up4P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"14282fef5defdb479187705433509dd166c81040","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"8.19.1","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"14.19.1","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0","@astronautlabs/webrpc":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.8.2","@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.9_1662449500257_0.18354756904185643","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@astronautlabs/wdi","version":"0.0.10","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.10","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"4cf1b28c3be59fd9462cf06358e787dd15fc5723","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.10.tgz","fileCount":56,"integrity":"sha512-4hLaoDFnqUrMNja5fN1rHgaW6GlcpxmPZxT4tjwLaHYEuGiNmhkImT9YqV04ZOZcNSi5nEUIurMgzhf/jHxhcw==","signatures":[{"sig":"MEUCIQD1ibBbqJ4nLZ2f7ZuTgcUkHkkcSq2DNYW4GgGI9Ru6jwIgcg5e51536kpgsVAQjavj8bGEb3BFFPsdH98ImCh66wQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":144367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjMCnyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3ZA/+K4qLgdGZSL4doxITA44EbenuKn4wKzXiCyrAIQueRmrbNWUm\r\neWYAmSxcJw9Sq8PL+5FqtwtBYu0JN34B/dRZu5IgHf+h3rochV7IikH7J4BO\r\ngqCFMpz7BsenYrRFL7eUACKgVOjnrzdMV0JMgMixKO+welRQbrqtpCh/n8fE\r\nfAETR22MOcIknzcAiIqF3Ojtd1YdTCVg4tIfW5N7DwNpwd2l7ERL+lsvjETk\r\nwTzW5REAw9CGG0Nhtou1o3NC09fUMsMw0UbQ/HEXCprelxfVMHdCgkfx1njF\r\nZ+4LoaIwq0ZLDnpv7792kmrNV+K+Pj25rBkm1ALzrMvgI84Ul0xbqjeJqVFr\r\nrUr6crqKKQtJwYpu8p+rQdf1lt83PZuskJBIwZa4iwWjwY2TPbZ1EwMttP1B\r\nrFVtwf+xvpwOj9wWe6RGg2aQyTlYUcdY8rloHxauJHrjarrGV0xI3uyn4Ucd\r\nZa44+ZTS/HMZtu+sSss+VqVTSvCniwv11C1gDO/lQ8/qo31U/vw/dltzNbco\r\nN4B5sEkLahbNWh79nvE0MnE8prj5WGjMoORQgaoF/TqESMezMyxx4f+0YNpu\r\nttB4AozXePt/O+fAkXEcBkcSzLPiQ5LZdWm3/OlxIaO0vSf/LoG25rJ/ghw4\r\n0xv+VOiJDMDsZmRUdp2zU835gPR+wGdd6Vc=\r\n=1Fe5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2e9f6059a8bcd7aca9ce8b46496f7c7d5f94a952","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"8.19.1","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"14.19.1","dependencies":{"rxjs":"^6.6.3","uuid":"^8.3.0","@astronautlabs/webrpc":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.8.2","@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.10_1664100849840_0.7115234194626048","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"@astronautlabs/wdi","version":"0.0.12","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.12","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"805726c1cc49b4302edd74f017642b99f953c7ae","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.12.tgz","fileCount":56,"integrity":"sha512-/VXrfBYa7Qgp3Lq5TP+rnxOepseADgktmf7rXY/8IQGCYn2Y2psVTT5byumDqGAa/hJJ/MdWeKdWMXNnJXgQFg==","signatures":[{"sig":"MEQCIDqlCyQI5Upjg7N1pxU5P0bets5UOTH1SNClPz0Q/oYbAiBDmV8xCVTqOxoDFCQTdY0kbJfsmcy0xIMdRZxo8b5cuA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145671},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e7acc66ad256def5abba32bca0920c38cdff48a9","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"8.19.1","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"18.16.0","dependencies":{"rxjs":"^7.8.1","uuid":"^8.3.0","@astronautlabs/conduit":"^0.4.7"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.8.2","@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.12_1687676116498_0.5785374375710199","host":"s3://npm-registry-packages"}},"0.0.13":{"name":"@astronautlabs/wdi","version":"0.0.13","keywords":["webrtc","streaming","media","websockets"],"author":{"url":"https://astronautlabs.com/","name":"Astronaut Labs"},"license":"MIT","_id":"@astronautlabs/wdi@0.0.13","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"homepage":"https://github.com/astronautlabs/wdi","bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"dist":{"shasum":"d667f3f60487f05647e738efbef127e56160d50e","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.13.tgz","fileCount":56,"integrity":"sha512-Num4PJeEhfAzSiAkGIvGbXBfUAJWgEBwFMXe1cCF8+6kze9Tc7+m+nu6SqGsRYgz2bMsRbQ5FxxnACVPd/W+IA==","signatures":[{"sig":"MEUCIQC58Lq/TAJwvXyffb390iB5CM5sYageiZc+Dqwq9adP8AIgRe9V7K7No0RZaMJlepDm5WNON0jddQ6fHQ4M4jF9kMg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":145795},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"86e2ff9e4a15e1114cc4fe84547c3a3b67205c94","scripts":{"test":"npm run build","build":"tsc -p .","prepublishOnly":"npm test"},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"_npmVersion":"8.19.1","description":"A web-native media transport protocol to replace RTMP","directories":{},"_nodeVersion":"18.16.0","dependencies":{"rxjs":"^7.8.1","uuid":"^8.3.0","@astronautlabs/conduit":"^0.4.7"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.8.2","@types/uuid":"^8.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wdi_0.0.13_1687676567897_0.4214515294456529","host":"s3://npm-registry-packages"}},"0.0.14":{"name":"@astronautlabs/wdi","version":"0.0.14","description":"A web-native media transport protocol to replace RTMP","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc -p .","prepublishOnly":"npm test","test":"npm run build"},"keywords":["webrtc","streaming","media","websockets"],"author":{"name":"Astronaut Labs","url":"https://astronautlabs.com/"},"homepage":"https://github.com/astronautlabs/wdi","repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"license":"MIT","devDependencies":{"@types/uuid":"^8.3.0","typescript":"^4.8.2"},"dependencies":{"@astronautlabs/conduit":"^0.4.7","rxjs":"^7.8.1","uuid":"^8.3.0"},"gitHead":"a583f1d2df57e1a5ee3571d3ca8a9813db3fdcd5","_id":"@astronautlabs/wdi@0.0.14","_nodeVersion":"22.23.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-iZRVbgNOK6xwJ8FrqKWVUB9ywu7C/mbJpqSkkdjoX/Q3BSioAU/9MKIHGjwa2APqf55wT2lqSzUmwRKXgHu1sA==","shasum":"e7813ece99e2879e8ce75a5b3437a6b674b32262","tarball":"https://registry.npmjs.org/@astronautlabs/wdi/-/wdi-0.0.14.tgz","fileCount":56,"unpackedSize":151918,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC5BebO1hwq7MzcgQo6qnoXlNLFGGTjYoxXcAJJ5ChplQIga9uhaBqmL0MF/TM4SO4tS3d1T4pWDcb5BupxvAIAuDw="}]},"_npmUser":{"name":"rezonant","email":"wilahti@gmail.com"},"directories":{},"maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wdi_0.0.14_1787001763939_0.40315896076311497"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-24T02:08:19.913Z","modified":"2026-08-17T21:22:44.269Z","0.0.1":"2020-09-24T02:08:20.176Z","0.0.2":"2020-09-24T06:34:37.026Z","0.0.3":"2020-09-24T06:43:59.927Z","0.0.4":"2020-09-24T06:49:26.021Z","0.0.5":"2020-09-27T07:08:04.779Z","0.0.6":"2020-09-27T07:58:56.067Z","0.0.7":"2020-10-29T06:57:51.591Z","0.0.8":"2022-09-06T05:49:59.571Z","0.0.9":"2022-09-06T07:31:40.421Z","0.0.10":"2022-09-25T10:14:10.053Z","0.0.12":"2023-06-25T06:55:16.727Z","0.0.13":"2023-06-25T07:02:48.165Z","0.0.14":"2026-08-17T21:22:44.082Z"},"bugs":{"url":"https://github.com/astronautlabs/wdi/issues"},"author":{"name":"Astronaut Labs","url":"https://astronautlabs.com/"},"license":"MIT","homepage":"https://github.com/astronautlabs/wdi","keywords":["webrtc","streaming","media","websockets"],"repository":{"url":"git+ssh://git@github.com/astronautlabs/wdi.git"},"description":"A web-native media transport protocol to replace RTMP","maintainers":[{"name":"rezonant","email":"wilahti@gmail.com"}],"readme":"# @/wdi » Reference Implementation\r\n## A web-native media transport protocol to replace RTMP\r\n\r\n[Home](https://github.com/astronautlabs/wdi) | Reference Implementation | [Example](https://github.com/astronautlabs/wdi/blob/master/examples/README.md)\r\n\r\n> **Alpha Quality**  \r\n> This software is very new and unstable. Use with caution, and avoid use in \r\n> production without careful consideration. Major API changes may be made \r\n> frequently.\r\n\r\n---\r\n\r\n[![Version](https://img.shields.io/npm/v/@astronautlabs/wdi.svg)](https://www.npmjs.com/package/@astronautlabs/wdi)\r\n\r\nWDI (the Web Device Interface) is a client/server media transport scheme \r\nbased on WebRTC and WebSockets, this is the reference implementation for that \r\nspecification. It can be used to easily add WDI support to any Javascript \r\nor Typescript app, both in the browser and on the server using Node.js.\r\n\r\n# Usage in the Browser\r\n\r\nFor the browser, it is sufficient to just install the reference implementation:\r\n\r\n```\r\nnpm install @astronautlabs/wdi\r\n```\r\n\r\nWithin the package you will find a class called `WDIClient` that lets you easily\r\nestablish connections to WDI servers (via WebSockets and WebRTC).\r\n\r\n```typescript\r\nlet client = new WDIClient(`wss://mywdiserver.example.com:1234/path`);\r\nawait client.addStream(someMediaStream);\r\nawait client.connect();\r\n```\r\n\r\nYou can also pass arbitrary metadata with your stream.\r\n\r\n```typescript\r\nawait client.addStream(someMediaStream, {\r\n  yourDataHere: 123\r\n});\r\n```\r\n\r\nFor convenience, you can pass a URL as the identity parameter \r\ninstead. \r\n\r\n```typescript\r\nawait client.addStream(someMediaStream, 'https://example.com/');\r\n```\r\n\r\nWDI will expand this into a `StreamIdentity` object like so:\r\n\r\n```json\r\n{\r\n  \"url\": \"https://example.com/\"\r\n}\r\n```\r\n\r\nNote that WDI itself assigns no special meaning to the identity data passed \r\nalongside a stream. The meaning needs to be agreed upon between the client and \r\nserver applications.\r\n\r\nWDI servers can also forward streams to the client. You can listen for incoming \r\nstreams:\r\n\r\n```typescript\r\nclient.remoteStreamAdded.subscribe(remoteStream => {\r\n  let stream : MediaStream = remoteStream.stream;\r\n  // do something with the stream\r\n});\r\n```\r\n\r\nThe API for sending and receiving streams is isomorphic; it works the same on the \r\nserver as on the client. Both sides can also request that a new stream be delivered.\r\n\r\n```typescript\r\nclient.acquireStream(identityMetadata)\r\n```\r\n\r\nYou can receive acquired streams by listening to `remoteStreamAdded`, or by awaiting\r\nthe promise returned by `acquireStream`\r\n\r\n```typescript\r\nlet remoteStream = await client.acquireStream(identityMetadata);\r\n```\r\n\r\nConceptually, `acquireStream` just sends a simple message to the server. It is \r\nthen up to the server to produce and forward a stream to send back to the client \r\nfor that request. \r\n\r\n# Usage on the Server\r\n\r\nIn addition to WDI itself, you will need implementations for WebRTC and \r\nWebSockets. We recommend `wrtc` (based on Google's `libwebrtc`) and \r\n`ws`, but you can use any standards compliant implementations.\r\n\r\n```\r\nnpm install @astronautlabs/wdi wrtc ws\r\n```\r\n\r\nYou'll need to ensure that the `RTCPeerConnection` class from your chosen\r\nimplementation is available in the global scope before trying to use WDI.\r\n\r\n```typescript\r\nimport { RTCPeerConnection } from 'wrtc';\r\nglobal['RTCPeerConnection'] = RTCPeerConnection;\r\n```\r\n\r\nYour server application will be responsible for accepting incoming `WebSocket` \r\nsessions and passing them to an instance of `WDIServer`. \r\n\r\n```typescript\r\nimport { WDIServer } from '@astronautlabs/wdi';\r\nimport { WebSocket } from 'ws';\r\n\r\n// Construct a WDI server instance and subscribe \r\n// to incoming remote streams. \r\n\r\nconst wdiServer = new WDIServer();\r\nwdiServer.remoteStreamAdded.subscribe(async remoteStream => {\r\n  let stream : MediaStream = remoteStream.stream;\r\n  // do something with the stream (perhaps guided by remoteStream.identity)\r\n});\r\n\r\n// Start a WebSocket server and pass clients to the WDI server\r\nnew WebSocket.Server({ port: 3000 })\r\n  .addListener('connection', socket => wdiServer.accept(<any>socket))\r\n;\r\n\r\n```\r\nFor metadata sent alongside the stream from the client,\r\nsee `remoteStream.identity`. \r\n\r\nThe types of things you can do with the MediaStream depends on the WebRTC \r\nimplementation you have selected. The `wrtc` package offers a set of classes\r\nthat let you send/receive raw audio/video data from streams sent over WebSockets.\r\nFor that, see `RTCVideoSink`, `RTCVideoSource`, `RTCAudioSink`, `RTCAudioSource`.\r\n\r\nNote that operations on video frames (especially 1080p and up) are expensive, you\r\nshould take care to minimize unnecessary copies or frame transformations. For \r\nmore information see [Performance](#Performance).\r\n\r\n# Handling `acquireStream` requests\r\n\r\nYou can handle `acquireStream` requests (see above) on both clients and servers \r\nby subclassing `WDIClient` and/or `WDIServer` and implementing `provideStream`:\r\n\r\n```typescript\r\nprotected async provideStream(identity : StreamIdentity): Promise<NonNullable<MediaStream>>;\r\n```\r\n\r\nIf your application can provide a stream that matches the given identity (however\r\nyou decide to interpret it), return it and the stream will be automatically returned\r\nacross WebRTC to the requestor. \r\n\r\nIf your application cannot service the request, throw an error. WDI will catch \r\nthe error and send it back to the client, where it will be cause the promise \r\nreturned by `acquireStream()` to reject/throw.\r\n\r\n# Performance\r\n\r\nThe reference implementation is very small and does none of the heavy lifting.\r\nThe performance you observe will be heavily dependent on what you do with the \r\nmedia streams being sent/received. \r\n\r\n## Transforming Video Frames\r\n\r\nRaw video frames at modern resolutions are very large. Copying, converting, \r\nscaling and rotating video frames efficiently requires use of the host CPU's \r\nSIMD (single input, multple destination) instructions, or at least a highly \r\noptimized naive implementation. The easiest way to achieve this is to offload \r\nframe manipulation to WebAssembly (in the browser) and native C/C++/Rust addons \r\n(on Node.js).\r\n\r\nThe included server example utilizes \r\n[Astronaut Labs' `libyuv` NPM package](https://github.com/astronautlabs/libyuv-node), \r\na native add-on for Node.js that exposes Chromium's `libyuv` library.\r\nChromium's `libyuv` is written in C++ and implements SIMD on x64, ARM and MIPS.\r\n`libyuv` provides color space conversions, scaling, and rotation routines for \r\nraw video frames, like the kind produced by `wrtc`. \r\n","readmeFilename":"README.md"}