{"_id":"@repeaterjs/repeater","_rev":"15-e84d894ed2f9bd821281f6688bb6b6cf","name":"@repeaterjs/repeater","dist-tags":{"latest":"3.1.0","beta":"3.1.0-beta.1"},"versions":{"1.0.0":{"name":"@repeaterjs/repeater","version":"1.0.0","license":"MIT","_id":"@repeaterjs/repeater@1.0.0","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"homepage":"https://channel.js.org/","dist":{"shasum":"adf1496df7fee33dff31fb54074ef0174d2b4b38","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-1.0.0.tgz","fileCount":11,"integrity":"sha512-X6Z9LWcanrhlFNxbWvgbENqwfT/bnC1h0WcNnbEen0SHXPxy8k8hHF4jmmfrik4BTULd1EgoWaUJcz3WFkH4nQ==","signatures":[{"sig":"MEQCIDNef4d7naYICrLlu3Q3T2MF9pPGWWAbPWF/EzfdU4M2AiBITxHcFwSm6+ckFNUgsMvDaYWod7bX7P9e29i4I4Xx2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXgWcCRA9TVsSAnZWagAAfUoP/A0tfXateMMk+YWpfOR+\nrAWbIknjkt1EmPZnLbrNBbPifS15yKAOIe1icnwRpw2G+/hDq0iWqAiFg8zh\nKEnSc5HOYND8jswWUwW8DQ8cVfp3jyqQwajEWZQWBQRhTU1mqF1kvyY8oVKM\nzblytfLcS8HHSu/hEQ840DEI5N2EY1t60BjGDwq5/ljxTn9r4GHln0mH7mOh\nV7H706HL/2N32ZYLclqNDWf/0xtnlq1uIix76GxKbBRcytGuK+iKqEcvXmZD\n4fgUlmuxJedYuSJRfPSrgvYobS34ozk5O1IxX+jYg5KxC66jIJ/YF2U1gCSs\nx/I6UFQuMyC+L6zbP0o21CEDkcLWVOcXXmKr9hYWbeOwuP55DPZFsEqf52wp\nqGMQYNfRz3RLZxATocJf4mhcxPivYY7jrl0xTo1Y7TVCIuKVG4VWY3X2Yzo5\nhbmZvqsP8O2ERlliZ44m3NUP1x+0Gz4Xfna5EwU2iAD5wYwC4A0NMAwPDC9F\nSMC3X93+xujD0am/6m8hK4pquYWwg7IAP3qeLyijKkJV6b1eLOwE7+akz7sc\nyBaUKWzk03ZROkDORMBOh6/M4YzoxsFo6WTF6BjjBlJ24rY3yHuKfZ8ZnAS9\nWEgeT7jRCdKu6r5oR5YHUvkt8fFLv6OtQYTtwl2KUWfnBFPTKrvumdMx13/0\nJthq\r\n=FuYt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.cjs.js","types":"lib/index.d.ts","module":"lib/index.esm.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ../../jest.config.js --rootDir --color","build":"rollup -c ../../rollup.config.js","clean":"shx rm -rf ./lib","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/channel"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/repeater_1.0.0_1566442907743_0.07003991708593804","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@repeaterjs/repeater","version":"2.0.0","license":"MIT","_id":"@repeaterjs/repeater@2.0.0","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"06e906c7bbd24f4707cbed74704cbace38ec2009","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-2.0.0.tgz","fileCount":10,"integrity":"sha512-x0ObBZvxbYB25qYanf95ku2eZDQ9FKsLP8ncZ0mPlaV3o35WwdbX0G0ZlCsLGhL44Ui8YO6h/q64zDMZm07lMQ==","signatures":[{"sig":"MEQCIBncD5xzLi29vnGgcY7k0BELc8nNfZQ/qVt/ns376tmoAiBAwbk9OJXpbfw3F2fgDDFdSp+SJhPUP61un8oTjanXig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":89616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYaWZCRA9TVsSAnZWagAA1F8QAJBzd2pHnNadS4EkuWf2\nJMLVYp/cyFovpVL5CvSpA4ZGKZjKf1b4RlXMv2bWqQ0Ob3H2Zsymyz0u+PsP\nZfrAzl5yXOOrKiuBj2wvnNQGrnYAhMhVeBf66p9I8i1XYPDj60NXr8M4RTt1\n9D0a0AIhwe2DP/alVzXlbE46siH5Xnm4exZeCexpzqXG6FVeZzVtBHfdPcQF\ndfEwaYvZMTkwnJedbHeCSgXP2t01cPM3AfiacYtOPBXtG3HbP+tSUDs3xNuo\nRUFraKWHxRfOyNhDcVLmaI0QlIaEGTmT3br+VLvd2eCgjYVRhECXQtB8xgVj\nJ7mdvLVM8TEYvDNi48Pv8OkOdZb+2ztlujy4CXrXMQjIzc8RlIn1ito21JOJ\nUx3YocB4TCu88lQLhDhY+zQVr4L4qwQk2PC6d3qgIvbIl2DQjiNBK40S2ZKd\nk3vmwZORR+hjNtl9vbjAljlNOxq42RUz3fa+YPPUQwt72YLV0xr6Gg5jge1y\nWya4txuYnohm7sG+Cio5jLiOpP7liHaXlzrpjjQhEZPkg5eIKavnWO7sro8z\n6M5rD4qXRwJC9WQvI2VfGIAT3vCL5QxFZvpLgESkN//+TbFhdvmWVYze44iC\nYcbPZyia4SQlY/08hlQq7wXLgW5ipBHrsVpx7ZyG+OpbvceSDIIsVxwsRHMV\nVOcf\r\n=YBQS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/repeater.cjs.js","types":"lib/repeater.d.ts","module":"lib/repeater.esm.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ../../jest.config.js --rootDir --color","build":"rollup -c ../../rollup.config.js","clean":"shx rm -rf ./lib","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^24.9.0","weak":"^1.0.1","eslint":"^6.2.1","rollup":"^1.20.0","ts-jest":"^24.0.0","prettier":"^1.18.2","typescript":"^3.5.3","@types/jest":"^24.0.18","eslint-plugin-jest":"^22.15.2","eslint-config-prettier":"^6.1.0","eslint-plugin-prettier":"^3.1.0","@typescript-eslint/parser":"^2.0.0","rollup-plugin-typescript2":"^0.22.1","@typescript-eslint/eslint-plugin":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_2.0.0_1566680472388_0.5209562579739597","host":"s3://npm-registry-packages"}},"3.0.0-beta.1":{"name":"@repeaterjs/repeater","version":"3.0.0-beta.1","license":"MIT","_id":"@repeaterjs/repeater@3.0.0-beta.1","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"ccb3fbde8a7d0393094db861481d1c4bc7f6cbd1","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.0-beta.1.tgz","fileCount":10,"integrity":"sha512-AhBKnBStxIbe9MjnSwJn3RjOmFvvvNBLeSZliDqo5QJ6l4oKAglLUMOqMaA+IuNGd6USec2LhIIFsr+QlwMJBA==","signatures":[{"sig":"MEQCIGhvzVsIexxsVP2tHU2gKxmgDx+JWUzl9U5ThqUkk4PeAiAj9FzmdMFvUcUvD2dhCy0m7WoUOOgse3ECnSMuDWLUTw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtlrDCRA9TVsSAnZWagAAo2wP/142q7eyTGGvEfe8EY2g\nZG/+4KEeYq1Lmr0/mVifW40JbXM2zyCFshQIV2KuKmT0NB95GWjlg1v0S0lF\nGA0+vMDdVoTRTzwC1jGSty0WGQn/rT3Ylkj2oyQx9fDpzavjM5ZHwBPdpWzV\nio/+Lg6zv4NiLG+N54BT1W0P5fV++vKSgdWwVjyOPi8+dzCyKw9CS4hIvqjW\nTxJL1nE6qlnZBIrneLeBRFmdWeOjskZgxYEl7Fomtd03ZUWhbZlvw3wk5alp\ndoVVb32TMWpbZZ0Ka5NW29x7Ud3G2PNE4B/j2aNVRTciZlls4prIKsIsZf3+\n8CJbDkRpqoY2VB7sWNHrdXz6i3QHhLK0ZWXSrq9HR1dlvOMorPBNqeU7kfXw\nXu6B73dk8/C+UZb7JgVSeslrPjCQ6F5Bu61VH0ghFnYgngtl7bOr5MV3X9AW\ndt7FzZIChbCWgLeZVwWLM/+xWHUxc1ZiDpfFR5zld5y4JEkwsTG/xr4qyflu\nfch4HaTdqEppgB9d29gkmLQk2fOh9xNOVFogsttvHN/aEyaaD+2HXFcFh4NX\nQi8Offo9n6TuLbT/59os65K6nvWUs6RYANb7J+NBKzo8lO08CCB8RnIZKfhK\ne3Xr5qb+lja86cTc30lnR5joIolwqzjLsuAFYrVT6TA5rDajuKqrqrTfgTkV\n3kqG\r\n=1trN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/repeater.cjs.js","types":"lib/repeater.d.ts","module":"lib/repeater.esm.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.js --rootDir --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf ./lib","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"shx":"^0.3.2","jest":"^24.9.0","weak":"^1.0.1","eslint":"^6.5.1","rollup":"^1.23.1","ts-jest":"^24.1.0","prettier":"^1.18.2","typescript":"^3.6.4","@types/jest":"^24.0.18","eslint-plugin-jest":"^22.19.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","@typescript-eslint/parser":"^2.3.3","rollup-plugin-typescript2":"^0.24.3","@typescript-eslint/eslint-plugin":"^2.3.3","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.0-beta.1_1572231875112_0.9366097122430375","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@repeaterjs/repeater","version":"3.0.0","license":"MIT","_id":"@repeaterjs/repeater@3.0.0","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"79a4bf454d7ffc518dccc9181c4325a9d51179ee","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.0.tgz","fileCount":10,"integrity":"sha512-7RbWmQLcYjpXydCHwbXwo+9QaULbn+7uBNjF+Vv8Ko8300wLEf69YUio+rlr44PeBSImM+fXvsz8XMmk9BRB7A==","signatures":[{"sig":"MEYCIQDamh4yZLYIEJGPi1/dB1JP9H/BmCr4sfJQ/PraO7E/5QIhALdEbekJQbcPkgq7el/vuhkgmVenmaUz3DTBon2AbcVt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53512,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyASyCRA9TVsSAnZWagAA1GYP/jxa5YWUBtrhnu+lmhQg\nJN7u0VGFsLj7B4jGd1eX3p3pUNvMbs7kr5BdyxoJyKIMQv5BHvKp2Oy/561a\nEG2xho+GBpKYwOd0zVxuADFNk1g6HBo81lOGw9ijvqiJq4NBPk2Q/jyuqXWE\n/Bnlp1T3llhRY+KjM3Xi1BiXaKOYqHbIU6ourulbI7Fd0dUj3405H8Cua4CI\nrLK1EYebPsHBGqR6ErWwbxGeB3jBhu0QKBoLCNXOdUgV566HOzmR+v/Tr1LJ\n+5V06aTp0PFJW3eBS/PnfP9RlnvOFmOBZIR3t+EzL5uY8KEbH8u1y26Xirqn\ntXDlUrPeBYNScehBquK9uEXbYVwxHq+byQFKkk2qQInDaXixfj2ChxHKyRsz\ncvVt9m6DRIqQ2RiHnUQ1ZWOENKZju9NfmA8jIDMsgyQ6DMNXSjZ0DFemFcvB\nv5jyEcgJ8Y+hm44npycqqSEp4rg77/a6eLDiWf5kayddb83i7mCEkvlZ2WFE\nnDhy83lNOpERNJXWGfKDFVYnhZphPND6/eCr30WErNTIrdOUexGgY2FeowcS\n/9THgjpnkhm72yA6wO23/nQEddoWUSWnSfQSIL5Er/ebftMyK54o2Py2JQNj\nlw52Fk6iaOXaQG763KYOrmJNGCVlbTG/H10I02dbTeRtKqMWMlLzcH+EurbM\nWthR\r\n=YZ1J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/repeater.cjs.js","types":"lib/repeater.d.ts","module":"lib/repeater.esm.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.js --rootDir --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf ./lib","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^24.9.0","weak":"^1.0.1","eslint":"^6.5.1","rollup":"^1.23.1","ts-jest":"^24.1.0","prettier":"^1.18.2","typescript":"^3.6.4","@types/jest":"^24.0.18","eslint-plugin-jest":"^22.19.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","@typescript-eslint/parser":"^2.3.3","rollup-plugin-typescript2":"^0.24.3","@typescript-eslint/eslint-plugin":"^2.3.3","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.0_1573389490413_0.624541135916916","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"@repeaterjs/repeater","version":"3.0.1","license":"MIT","_id":"@repeaterjs/repeater@3.0.1","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"506641792ae5fdc5b8c3981ceb210bce407cd104","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.1.tgz","fileCount":10,"integrity":"sha512-kqdrZRvTLFfvgPTeMgj8DpREYZXU+sz4/kdX2825zMNGmiaEUzM6u7A4YBoI4WzqXX4q123VftkllAw1C/4rMg==","signatures":[{"sig":"MEUCIHDNa0W1phZkyazAcfJPDuj+5mdtuPLQaU6V9NGRGSbYAiEA24rpb+r1rBGwg27i4BrYlDpOCZXVvluyFJbE5eZUywk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyCBZCRA9TVsSAnZWagAAwHMP/RYfD4JxOhHHnJ9n8Ww/\nLFkB5L/aPJEYuHv7JIUebFkl2mVBiWcc+ltYrOTNkdNr5K0V6+Dx77WHuts4\ny7gGghc800KrlGTsaNpqvpNOht+vhlac2ZJsksad74sczjafzndTfUbQ+xUB\nrsgK7tfE1jEeb+OV1JkaHsPejm4kETC2T2RyI3Jc1kuqrk8YOi6YbfSK6tFc\nqPOpjOLVrFfQbYQgIvdnL67HIg+8rSr/sgsh1vdzZzKNliSabceumtipk4wF\n0/MiCaDShBbfmcRLzSe+W/fV+55r1e+Tzl2Q/N0BqbOo3l8KH9ce+dtUMIrL\nvMm5Vmio8qTiuE98VPosHkylFi2GAx1PunQEKSvfZgtviJQnrw7Vs22CruGP\nRAgHTLoYgHQWCK2eIUnmdil/N/msi39n7l3HUa25QLoOoNYerFSQai85Ace+\n+7sewrZCuEdhA8eVXU2v/ph2tjC6FbGBmRas31nMs2vqbdULaDBHQ+dSaql4\nkqAnZ+Z2usYPaazx4gq28fvhcBbrTggtRR0wQ9lG+kWgeO04xf9I1VHlj5Kq\n/igbD+S+8aFo5NWz9VkyKP4a16gTD0X0wQOIj64jtqgYWbwF5JdRx3J95ulp\nWu15SkKwpZdoLV2K46aVVFoREODa3FAoMZyC38rEncaP2P47u/3MUrwLBHSQ\nqHJr\r\n=3HwX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/repeater.cjs.js","types":"lib/repeater.d.ts","module":"lib/repeater.esm.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.js --rootDir --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf ./lib","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^24.9.0","weak":"^1.0.1","eslint":"^6.5.1","rollup":"^1.23.1","ts-jest":"^24.1.0","prettier":"^1.18.2","typescript":"^3.6.4","@types/jest":"^24.0.18","eslint-plugin-jest":"^22.19.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.1","@typescript-eslint/parser":"^2.3.3","rollup-plugin-typescript2":"^0.24.3","@typescript-eslint/eslint-plugin":"^2.3.3","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.1_1573396569553_0.8782510979527076","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"@repeaterjs/repeater","version":"3.0.2","license":"MIT","_id":"@repeaterjs/repeater@3.0.2","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"375c4493dbf91832b6d7178db9e08fd54cea90fa","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.2.tgz","fileCount":10,"integrity":"sha512-8PwEBE9qBpNbJuzu74YGC3xOfItwRI6eWhJdinDqYXeis6guBS1nQ29Aa5cpXWFG5c0eKRaq3wbHkXdjwq3VsQ==","signatures":[{"sig":"MEUCICbFKkhrCSml9d8Gz8fXdqZDx79uzB43Vu07Ur0SFt3aAiEA/yqhhn21UmrTMvGB4GfaydXpJXGiiAs/8arNHjgNgjo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":60714,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFqZCRA9TVsSAnZWagAAsOIP/3Ravc+4Eaf+0qUsPPVg\nWReLt+da4+mu5aFoLg729dbSIC36HSEB2X+h6G5bwf1K5hfMXSW76uahSbl2\nfF23gz06gR4I5EnfZdlHF7DxJLCmrTIgEVN8M+0UOXvxhM8hy0Mp+/cnTxtU\nkPc52fRN+T+OxQNhzxd5pivV/g1pfJaC4Wm0shpyuooU31NaJW2xqlRgTXyL\nYWtMoPatro1bQXL7zAaKHzIDMVu97oe69JQ15FaePCiAfQ/qP2Uvh1AZIKOO\nAoffqoz2AfWtrVJVPr5SJdtTRwmB5yfnzRQb0huepDWrLq7m0Gf95OVHgQMy\nQZqVP7ok+4LvuB5fuoLe80fG8PX0imLL/Dvp62UGpiqlib4sWlM79KbozpKA\n4qbz36tnGpDagKiJvrmhTGRN5pBZ0RbEsSTDEfYc/jB0xhwpn4WSFTzsxV9o\nyrfklOzMWnL+fKNtJHWeqLBqoovGDTQKUoyjAqleGfG1KDPjgyXKlRQfcSui\nJN//7Q6YjdYN/a72r51dHs9IA6WojBB8J2s/7Pqq1o67MisRfEhBpcblZM8D\n0NwZ8WqyeKvDYRKCm0JU55BgxOAgyHLeuWXx28yD0C75MyThNeTHN5AUMIpT\nyDXv3XmPyOI28M1pnpL+vsPV9yHEaAlmo7o9jz64rFg3GgZiNOzGGz7+88Q7\n5Rh5\r\n=4f3x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"cjs/repeater.js","type":"module","types":"repeater.d.ts","module":"repeater.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.cjs --rootDir ./ --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf cjs dist repeater.js *.d.ts *.js.map","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"dependencies":{"magic-string":"^0.25.7","ts-transform-import-path-rewrite":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^26.2.1","eslint":"^7.5.0","rollup":"^2.23.0","ts-jest":"^26.1.4","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.7","eslint-plugin-jest":"^23.20.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.7.1","rollup-plugin-typescript2":"^0.27.1","@typescript-eslint/eslint-plugin":"^3.7.1","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.2_1596480152698_0.5909643734242076","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"@repeaterjs/repeater","version":"3.0.3","license":"MIT","_id":"@repeaterjs/repeater@3.0.3","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"873dc5ddb8892c964f9d548faa4bb8137811f6f1","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.3.tgz","fileCount":11,"integrity":"sha512-x6KLhH8BoNLJuxkAnyhl/+GPvdQlz3NYlgNQkZFgqGa7sbkO/SthUAi5TkAazcbdzWrOB0aYp5jTAcjEa3JnVA==","signatures":[{"sig":"MEYCIQDoRu0Q7Zz2KJqkciZdDq8ojH3dn7oMe+gsaIVuX4W0hAIhAMP+xSfMqnFlE1WZQ7W/VfFTyLt/4LPoUchakAGsj5cB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":99073,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFvDCRA9TVsSAnZWagAATesP/R3DH5v1mwGuFutkhn1P\nortyzhTVhFEFrLKHw0glO0DnO9Eti1jc7J36crAkUSuTp6edIxzfDlSiJTKX\n/049NluAntShImWScbgIV5Sk+eCiv5ji8xfv+2o8DndvAqFquhGFm1C1BL7V\nb0SWJueo0IAMclD0iD6HIsjOCZYs5kzRTxNQdrb5IqTZmWIepOnaGh9XAwlr\nl1CFAeViE3fltKwEa6efkrwYS2uoR2qbt9nd619re0yAzPGols0q5ey1Okne\n+6N7eYrLTVsp1F34cHF0Cwm9UbxqVXQM6c512sW68dkUkrLbcdPwGdZHsdj5\nmP+D5IJ6XDDu3DRS/qWiU/CLiHhjjxgB5WQVd5xYBjn/A2RDHxSd4tnxyBAe\nrSDwj9gnb7ONL+2GEW7q8pbs6MpAmSU4DSzL2oCrem7F2DEMGPDIZ1Sy4ZNG\nwaev1By90s9RRgu7LzL+bU27NkkVewYio36jsc+HzLTo1GPSQizL6QIVGAUv\n0IJzm41gBthWC8SxAUCNsMWjzdjTtIyRj1cVzVIJKVA47JzM/KQ67S63PMxK\n4iM+QYguN2C+F/+DbXJzVL/22ekcgIVOjk+XrlntYq/CfE7DCbtRHRpc5C7C\nIjN4JeA7xWDXswhKwGgy/BGjIfF5kEnBjqbOx7MrUHmL+lbv4FrdeKa+dXmi\nWX/b\r\n=1hAd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"cjs/repeater.js","type":"module","types":"repeater.d.ts","module":"repeater.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.cjs --rootDir ./ --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf cjs dist repeater.js *.d.ts *.js.map","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"dependencies":{"magic-string":"^0.25.7","ts-transform-import-path-rewrite":"^0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^26.2.1","eslint":"^7.5.0","rollup":"^2.23.0","ts-jest":"^26.1.4","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.7","eslint-plugin-jest":"^23.20.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.7.1","rollup-plugin-typescript2":"^0.27.1","@typescript-eslint/eslint-plugin":"^3.7.1","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.3_1596480450304_0.6369663800754501","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"@repeaterjs/repeater","version":"3.0.4","license":"MIT","_id":"@repeaterjs/repeater@3.0.4","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.4.tgz","fileCount":11,"integrity":"sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==","signatures":[{"sig":"MEUCIQCavD0uazGvKJEPdpaq6dYV0zoUVLkDiV+dhDq+B83LvwIga507z1qE2iSlC1fTDW5AGdAggOHcL5V7glAIHDJXxMU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":104803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUAkwCRA9TVsSAnZWagAAR/IP/jv3QiM2m3YqUdVhxMQL\nKChXMXEO++KZtA1n6hq8qNqhgYBW5AXf6UuaJwqK5COAwdY19wqVD2Hg8YVR\nZ4SEXLxrkvqbU706xZSmHqS5Z1bdybi6wRc7IM9HZjHma1moa2mK+fek5I9U\nH2nlAVRbsNSYWIKu3joXWqZ415KHSBt3zeJfY4KjkcBPSuHWvdIJkf5yMsD9\nI56ErkfsH75VtzOAo6iC+0NCRJ5PFKuaP78Sx0GnuUSZjsqMJ5JcYjIywM+h\n5Ooetsf173t1aXdYfBwWP5S3RuQ7UHBM7EGC6W5A9X3r4JxiujGkQ8hZpie0\nwMzfRTDca27lJXHVZJaBiDw5NsyS6i755Kn8TcoKozfmAoxDHeYnpRWxmLg7\nx5EHFXayLjUkKEK6OFTZx6sBrf0rjADjNWSnk1eubqTgqELTi0jaUwDiVfUL\neLaNxLEyoZ8E4FDnotf+WOMi1A2iI3tF145qjHFh0EuiZYjklyLZOXHfUT2J\n+cW/ZdrC9LA2c1nSAck28OuvJc0YXDseWV36t1/d1rjZZStlS1WfLzHPXpPZ\n7m1fMm3Aia8NBCUwfkuE4ZVP3yk7nNDXn7By8CFpFtSbHIVoWDDNWlR1r7bL\nkR2xXjRx5i7j4AWWvNA/pB7BM7hXS6yB2pJUNYwQC46bHxTImqYCYZZraBmp\nPpWu\r\n=mrxC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"cjs/repeater.js","type":"module","types":"repeater.d.ts","module":"repeater.js","scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.cjs --rootDir ./ --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf cjs dist repeater.js *.d.ts *.js.map","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^26.2.1","eslint":"^7.5.0","rollup":"^2.23.0","ts-jest":"^26.1.4","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.7","magic-string":"^0.25.7","eslint-plugin-jest":"^23.20.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.7.1","rollup-plugin-typescript2":"^0.27.1","@typescript-eslint/eslint-plugin":"^3.7.1","ts-transform-import-path-rewrite":"^0.2.1","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.4_1599080751549_0.8591168714966464","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"@repeaterjs/repeater","version":"3.0.5","license":"MIT","_id":"@repeaterjs/repeater@3.0.5","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"b77571685410217a548a9c753aa3cdfc215bfc78","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz","fileCount":11,"integrity":"sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==","signatures":[{"sig":"MEUCIBEcnucA1gb1fpcDDt9MWmGxJ09towbyHADqWAwbyz3QAiEAq5jwnPJn30D8zYCJgxntjKiHrgVqdYv/AWtL3v78sNk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105014},"main":"cjs/repeater.js","type":"module","types":"repeater.d.ts","module":"repeater.js","exports":{".":{"types":"./repeater.d.ts","default":"./repeater.js","require":{"types":"./cjs/repeater.d.ts","default":"./cjs/repeater.js"}}},"scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.cjs --rootDir ./ --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf cjs dist repeater.js *.d.ts *.js.map","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^26.2.1","eslint":"^7.5.0","rollup":"^2.23.0","ts-jest":"^26.1.4","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.7","magic-string":"^0.25.7","eslint-plugin-jest":"^23.20.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.7.1","rollup-plugin-typescript2":"^0.27.1","@typescript-eslint/eslint-plugin":"^3.7.1","ts-transform-import-path-rewrite":"^0.2.1","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.5_1699387601641_0.7923988118414977","host":"s3://npm-registry-packages"}},"3.0.6":{"name":"@repeaterjs/repeater","version":"3.0.6","license":"MIT","_id":"@repeaterjs/repeater@3.0.6","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"dist":{"shasum":"be23df0143ceec3c69f8b6c2517971a5578fdaa2","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.6.tgz","fileCount":11,"integrity":"sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==","signatures":[{"sig":"MEUCIQCdjfJj67wQORWbpPNwM29MLTqWTilVTRdnrNEWlicG1gIgQZYQaTmtJAlWXGSMF6gqS/qyWuYaEX+t9HiFVUsbop4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105282},"main":"cjs/repeater.js","type":"module","types":"repeater.d.ts","module":"repeater.js","exports":{".":{"types":"./repeater.d.ts","default":"./repeater.js","require":{"types":"./cjs/repeater.d.ts","default":"./cjs/repeater.js"}}},"scripts":{"lint":"eslint --ext ts src","test":"jest --config ./jest.config.cjs --rootDir ./ --color","build":"rollup -c ./rollup.config.js","clean":"shx rm -rf cjs dist repeater.js *.d.ts *.js.map","prebuild":"yarn run clean","prepublishOnly":"yarn run test && yarn run build"},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"https://github.com/repeaterjs/repeater","type":"git","directory":"packages/repeater"},"description":"The missing constructor function for creating safe async iterators","directories":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.2","jest":"^26.2.1","eslint":"^7.5.0","rollup":"^2.23.0","ts-jest":"^26.1.4","prettier":"^2.0.5","typescript":"^3.9.7","@types/jest":"^26.0.7","magic-string":"^0.25.7","eslint-plugin-jest":"^23.20.0","eslint-config-prettier":"^6.4.0","eslint-plugin-prettier":"^3.1.4","@typescript-eslint/parser":"^3.7.1","rollup-plugin-typescript2":"^0.27.1","@typescript-eslint/eslint-plugin":"^3.7.1","ts-transform-import-path-rewrite":"^0.2.1","eslint-config-recommended-plus-types":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.0.6_1715198331673_0.9482979268675351","host":"s3://npm-registry-packages"}},"3.1.0-beta.1":{"name":"@repeaterjs/repeater","version":"3.1.0-beta.1","license":"MIT","_id":"@repeaterjs/repeater@3.1.0-beta.1","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"homepage":"https://github.com/repeaterjs/repeater#readme","bugs":{"url":"https://github.com/repeaterjs/repeater/issues"},"dist":{"shasum":"507154b65481a301d04db79215e65a1ac8813f60","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.1.0-beta.1.tgz","fileCount":21,"integrity":"sha512-7SY/PE8cewWr9F072dpT2HOMTuMAENzf75+QdqcH1RMVzv866RqW5/9cvPhYbdndlohp59vMfubzxauT0dk9tw==","signatures":[{"sig":"MEUCIQCMGcguFXEl9i0rHDFbhJvCs3YFoxp11Q6Sz70Cr4apOgIgc7jkC5wbdYCLjaxqqok1ASgitPYR6SlM+YeAJp3lfZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79305},"main":"src/index.cjs","type":"module","types":"src/index.d.ts","module":"src/index.js","exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./core":{"types":"./src/core.d.ts","import":"./src/core.js","require":"./src/core.cjs"},"./index":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./timers":{"types":"./src/timers.d.ts","import":"./src/timers.js","require":"./src/timers.cjs"},"./core.js":{"types":"./src/core.d.ts","import":"./src/core.js","require":"./src/core.cjs"},"./index.js":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./limiters":{"types":"./src/limiters.d.ts","import":"./src/limiters.js","require":"./src/limiters.cjs"},"./timers.js":{"types":"./src/timers.d.ts","import":"./src/timers.js","require":"./src/timers.cjs"},"./combinators":{"types":"./src/combinators.d.ts","import":"./src/combinators.js","require":"./src/combinators.cjs"},"./limiters.js":{"types":"./src/limiters.d.ts","import":"./src/limiters.js","require":"./src/limiters.cjs"},"./package.json":"./package.json","./combinators.js":{"types":"./src/combinators.d.ts","import":"./src/combinators.js","require":"./src/combinators.cjs"}},"gitHead":"8af8872c784dd0bb2a7fb4651d190ae80912d2d0","_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"repository":{"url":"git+https://github.com/repeaterjs/repeater.git","type":"git"},"_npmVersion":"11.8.0","description":"The missing constructor function for creating safe async iterators","directories":{},"_nodeVersion":"25.5.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"sinon":"^22.0.0","bun-types":"^1.3.14","fast-check":"^4.8.0","typescript":"^5.9.3","@b9g/libuild":"^0.1.24","@types/sinon":"^21.0.1"},"_npmOperationalInternal":{"tmp":"tmp/repeater_3.1.0-beta.1_1780763833302_0.514410574683732","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@repeaterjs/repeater","version":"3.1.0","description":"The missing constructor function for creating safe async iterators","license":"MIT","repository":{"type":"git","url":"git+https://github.com/repeaterjs/repeater.git"},"devDependencies":{"@b9g/libuild":"^0.1.24","@types/sinon":"^21.0.1","bun-types":"^1.3.14","fast-check":"^4.8.0","sinon":"^22.0.0","typescript":"^5.9.3"},"type":"module","types":"src/index.d.ts","main":"src/index.cjs","module":"src/index.js","exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./core":{"types":"./src/core.d.ts","import":"./src/core.js","require":"./src/core.cjs"},"./core.js":{"types":"./src/core.d.ts","import":"./src/core.js","require":"./src/core.cjs"},"./index":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./index.js":{"types":"./src/index.d.ts","import":"./src/index.js","require":"./src/index.cjs"},"./limiters":{"types":"./src/limiters.d.ts","import":"./src/limiters.js","require":"./src/limiters.cjs"},"./limiters.js":{"types":"./src/limiters.d.ts","import":"./src/limiters.js","require":"./src/limiters.cjs"},"./timers":{"types":"./src/timers.d.ts","import":"./src/timers.js","require":"./src/timers.cjs"},"./timers.js":{"types":"./src/timers.d.ts","import":"./src/timers.js","require":"./src/timers.cjs"},"./package.json":"./package.json","./combinators":{"types":"./src/combinators.d.ts","import":"./src/combinators.js","require":"./src/combinators.cjs"},"./combinators.js":{"types":"./src/combinators.d.ts","import":"./src/combinators.js","require":"./src/combinators.cjs"}},"gitHead":"eaf5609f792d881c3f82104c9cada0fd28b8f154","_id":"@repeaterjs/repeater@3.1.0","bugs":{"url":"https://github.com/repeaterjs/repeater/issues"},"homepage":"https://github.com/repeaterjs/repeater#readme","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-TaoVksZRSx2KWYYpyLQtMQXXeS98VsgZImzW65xmiVgbYhXLk+aEsmzPLirqVuE4/XuUapH2iMtxUzaBNDzdSQ==","shasum":"312b20a655e5b3ebfe8b1e04ec7df567bcb48d87","tarball":"https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.1.0.tgz","fileCount":21,"unpackedSize":79304,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDo2G+DSChDyNp7Mjisrj8eteDMMKPhpoBHxaOZgQOaRAiEAoA/B8aZpG7KUoQr1RMhVv/sGH42QvxhcfKxc39otV0I="}]},"_npmUser":{"name":"brainkim","email":"briankimpossible@gmail.com"},"directories":{},"maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repeater_3.1.0_1780937999556_0.7707947963887944"},"_hasShrinkwrap":false}},"time":{"created":"2019-08-22T03:01:47.545Z","modified":"2026-06-08T16:59:59.792Z","1.0.0":"2019-08-22T03:01:47.957Z","2.0.0":"2019-08-24T21:01:12.646Z","3.0.0-beta.0":"2019-10-28T02:55:12.280Z","3.0.0-beta.1":"2019-10-28T03:04:35.235Z","3.0.0":"2019-11-10T12:38:10.555Z","3.0.1":"2019-11-10T14:36:09.699Z","3.0.2":"2020-08-03T18:42:32.804Z","3.0.3":"2020-08-03T18:47:30.841Z","3.0.4":"2020-09-02T21:05:51.651Z","3.0.5":"2023-11-07T20:06:41.800Z","3.0.6":"2024-05-08T19:58:51.835Z","3.1.0-beta.1":"2026-06-06T16:37:13.449Z","3.1.0":"2026-06-08T16:59:59.671Z"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/repeaterjs/repeater.git"},"description":"The missing constructor function for creating safe async iterators","maintainers":[{"name":"brainkim","email":"briankimpossible@gmail.com"}],"readme":"# Repeater.js\nThe missing constructor for creating safe async iterators.\n\nFor more information, visit [repeater.js.org](https://repeater.js.org).\n\n## Installation\n\nRepeater.js is available on [npm](https://www.npmjs.com/package/@repeaterjs/repeater) in the CommonJS and ESModule formats.\n\n`$ npm install @repeaterjs/repeater`\n\n`$ yarn add @repeaterjs/repeater`\n\n## Requirements\n\nThe core `@repeaterjs/repeater` module has no dependencies, but requires the following globals in order to work:\n- `Promise`\n- `WeakMap`\n- `Symbol`\n  - `Symbol.iterator`\n  - `Symbol.asyncIterator`\n\nIn addition, repeaters are most useful when used via `async/await` and `for await…of` syntax. You can transpile your code with babel or typescript to support enviroments which lack these features.\n\n## Examples\n\n<h4 id=\"timestamps\">Logging timestamps with setInterval</h4>\n\n```js\nimport { Repeater } from \"@repeaterjs/repeater\";\n\nconst timestamps = new Repeater(async (push, stop) => {\n  push(Date.now());\n  const interval = setInterval(() => push(Date.now()), 1000);\n  await stop;\n  clearInterval(interval);\n});\n\n(async function() {\n  let i = 0;\n  for await (const timestamp of timestamps) {\n    console.log(timestamp);\n    i++;\n    if (i >= 10) {\n      console.log(\"ALL DONE!\");\n      break; // triggers clearInterval above\n    }\n  }\n})();\n```\n\n<h4 id=\"websocket\">Creating a repeater from a websocket</h4>\n\n```js\nimport { Repeater } from \"@repeaterjs/repeater\";\n\nconst socket = new WebSocket(\"ws://echo.websocket.org\");\nconst messages = new Repeater(async (push, stop) => {\n  socket.onmessage = (ev) => push(ev.data);\n  socket.onerror = () => stop(new Error(\"WebSocket error\"));\n  socket.onclose = () => stop();\n  await stop;\n  socket.close();\n});\n\n(async function() {\n  for await (const message of messages) {\n    console.log(message);\n    if (message === \"close\") {\n      console.log(\"Closing!\");\n      break; // closes the socket\n    }\n  }\n})();\n\nsocket.onopen = () => {\n  socket.send(\"hello\"); // \"hello\"\n  socket.send(\"world\"); // \"world\"\n  socket.send(\"close\"); // \"close\", \"Closing!\"\n};\n```\n\n<h4 id=\"konami-code\">Listening for the <a href=\"https://en.wikipedia.org/wiki/Konami_Code\">Konami Code</a> and canceling if <kbd>Escape</kbd> is pressed</h4>\n\n```js\nimport { Repeater } from \"@repeaterjs/repeater\";\n\nconst keys = new Repeater(async (push, stop) => {\n  const listener = (ev) => {\n    if (ev.key === \"Escape\") {\n      stop();\n    } else {\n      push(ev.key);\n    }\n  };\n  window.addEventListener(\"keyup\", listener);\n  await stop;\n  window.removeEventListener(\"keyup\", listener);\n});\n\nconst konami = [\"ArrowUp\", \"ArrowUp\", \"ArrowDown\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"ArrowLeft\", \"ArrowRight\", \"b\", \"a\"];\n\n(async function() {\n  let i = 0;\n  for await (const key of keys) {\n    if (key === konami[i]) {\n      i++;\n    } else {\n      i = 0;\n    }\n    if (i >= konami.length) {\n      console.log(\"KONAMI!!!\");\n      break; // removes the keyup listener\n    }\n  }\n})();\n```\n\n<h4 id=\"observables\">Converting an observable to an async iterator</h4>\n\n```js\nimport { Subject } from \"rxjs\";\nimport { Repeater } from \"@repeaterjs/repeater\";\n\nconst observable = new Subject();\nconst repeater = new Repeater(async (push, stop) => {\n  const subscription = observable.subscribe({\n    next: (value) => push(value),\n    error: (err) => stop(err),\n    complete: () => stop(),\n  });\n  await stop;\n  subscription.unsubscribe();\n});\n\n(async function() {\n  try {\n    for await (const value of repeater) {\n      console.log(\"Value: \", value);\n    }\n  } catch (err) {\n    console.log(\"Error caught: \", err);\n  }\n})();\nobservable.next(1);\n// Value: 1\nobservable.next(2);\n// Value: 2\nobservable.error(new Error(\"Hello from observable\"));\n// Error caught: Error: Hello from observable\n```\n","readmeFilename":"README.md","homepage":"https://github.com/repeaterjs/repeater#readme","bugs":{"url":"https://github.com/repeaterjs/repeater/issues"}}