{"_id":"@atcute/tap","_rev":"7-640fc2ac3c7f0727f070b2267e0d0599","name":"@atcute/tap","dist-tags":{"latest":"1.0.3"},"versions":{"0.1.0":{"name":"@atcute/tap","version":"0.1.0","license":"0BSD","_id":"@atcute/tap@0.1.0","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"55525de2e3473f12bcb8b6a80206372060cf4425","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-0.1.0.tgz","fileCount":38,"integrity":"sha512-mVZUMZG4Rxl+FoUrsI5cdV7sWyYyd/ny3nMiy3sR0ZSP6oJdBciLS+bcHNfvCito6xyFjpW4eG5J+HWQn0AUnQ==","signatures":[{"sig":"MEQCIHRM1GjYhwmDnOXdzfOBw0i0RDcW3Xy5xKGWeALRImEwAiARoeK5ywVmL5kf2oDwVDLb3HXVWI4i3Gr8a07bd+5L5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53497},"type":"module","_from":"file:atcute-tap-0.1.0.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsgo --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/16d349461109eeae2d27f3fa70a7b654/atcute-tap-0.1.0.tgz","_integrity":"sha512-mVZUMZG4Rxl+FoUrsI5cdV7sWyYyd/ny3nMiy3sR0ZSP6oJdBciLS+bcHNfvCito6xyFjpW4eG5J+HWQn0AUnQ==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/clients/tap"},"_npmVersion":"10.9.4","description":"an atproto Tap client","directories":{},"_nodeVersion":"22.21.1","dependencies":{"type-fest":"^4.41.0","partysocket":"^1.1.6","@badrap/valita":"^0.4.6","@atcute/identity":"^1.1.3","@atcute/lexicons":"^1.2.5","@atcute/multibase":"^1.1.6","@atcute/uint8array":"^1.0.6","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","vitest":"^4.0.14","@types/ws":"^8.18.1"},"_npmOperationalInternal":{"tmp":"tmp/tap_0.1.0_1765683747746_0.7167875094719978","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atcute/tap","version":"0.1.1","license":"0BSD","_id":"@atcute/tap@0.1.1","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"homepage":"https://github.com/mary-ext/atcute#readme","bugs":{"url":"https://github.com/mary-ext/atcute/issues"},"dist":{"shasum":"db79325b2ee33c21f9a9820393921c3215437fe6","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-0.1.1.tgz","fileCount":38,"integrity":"sha512-cK2Zyt7+JHKTS5pbIw64pAJUKaNhRCJvlXw/dl1gMvpK/SAeBUE3BZLeJgiL7wadouFVysuOVnzr4os6bMdZMw==","signatures":[{"sig":"MEQCIFE5L4rBIM9TGfbqanxWHjoz5gJ3Nc6CtjdmFQSGUnREAiBQqX2Y70gsJF93/m7p0al0+HGmstvcP8GTPkaP1cwUkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60265},"type":"module","_from":"file:atcute-tap-0.1.1.tgz","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsgo --project tsconfig.build.json","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"_resolved":"/tmp/4317c9b2cfef01a77d1a8243a85c896d/atcute-tap-0.1.1.tgz","_integrity":"sha512-cK2Zyt7+JHKTS5pbIw64pAJUKaNhRCJvlXw/dl1gMvpK/SAeBUE3BZLeJgiL7wadouFVysuOVnzr4os6bMdZMw==","repository":{"url":"git+https://github.com/mary-ext/atcute.git","directory":"packages/clients/tap"},"_npmVersion":"10.9.4","description":"an atproto Tap client","directories":{},"_nodeVersion":"22.21.1","dependencies":{"type-fest":"^4.41.0","partysocket":"^1.1.6","@badrap/valita":"^0.4.6","@atcute/identity":"^1.1.3","@atcute/lexicons":"^1.2.5","@atcute/multibase":"^1.1.6","@atcute/uint8array":"^1.0.6","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","vitest":"^4.0.14","@types/ws":"^8.18.1"},"_npmOperationalInternal":{"tmp":"tmp/tap_0.1.1_1765756997252_0.02908631742594303","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atcute/tap","version":"0.1.2","license":"0BSD","_id":"@atcute/tap@0.1.2","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"dist":{"shasum":"68054dec6d13f56f1024d3f8a818b3370bb9554f","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-0.1.2.tgz","fileCount":38,"integrity":"sha512-7JPMhR684m+4HdiZQTc7fZYQsGrSu/vThCM/FpRdIctIAOWsJ5peZzyw/xpkZnjGQmS2uLGP/ofHR9rIyuLqqQ==","signatures":[{"sig":"MEUCIGyrSx2xE26XhEht6HO5wbhtdiEh29DSVir0PtjQOsqRAiEA0YShyjzR/7E1rP2dTawPYWj/cdsX/ppmKxbwmV2fBCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59229},"type":"module","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsgo","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/clients/tap"},"description":"an atproto Tap client","directories":{},"_nodeVersion":"26.0.0","dependencies":{"type-fest":"^4.41.0","partysocket":"^1.1.18","@badrap/valita":"^0.4.6","@atcute/identity":"^1.1.5","@atcute/lexicons":"^1.3.1","@atcute/multibase":"^1.2.0","@atcute/uint8array":"^1.1.1","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.20.0","vitest":"^4.1.5","@types/ws":"^8.18.1"},"peerDependencies":{"@atcute/identity":"^1.0.0","@atcute/lexicons":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tap_0.1.2_1778205570705_0.275537632261589","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@atcute/tap","version":"1.0.0","license":"0BSD","_id":"@atcute/tap@1.0.0","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"dist":{"shasum":"ebcc3ab949ed431caa4fbd38928614045c0c463a","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-1.0.0.tgz","fileCount":33,"integrity":"sha512-L4bZnUSxtkVL5ud12EWRYEZTfcOpDDAZRylccPyEhWc12LYjrlrQyqIh0tGvKpdi/alMAN+oBYvt500ULixdMw==","signatures":[{"sig":"MEQCIDvgCxaAVwHeBHDXBvpNI/XndFPX+6uZP+1pLkjZD9SWAiBftpOUrW6FwXVgj68xpoG/TJmRDwNAzgYVrSdhX1a+EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62075},"type":"module","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsgo","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/clients/tap"},"description":"an atproto Tap client","directories":{},"_nodeVersion":"26.0.0","dependencies":{"valibot":"^1.4.0","type-fest":"^4.41.0","partysocket":"^1.1.18","@atcute/identity":"^2.0.0","@atcute/lexicons":"^2.0.0","@atcute/multibase":"^1.2.0","@atcute/uint8array":"^1.1.1","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.20.0","vitest":"^4.1.5","@types/ws":"^8.18.1"},"peerDependencies":{"@atcute/identity":"^2.0.0","@atcute/lexicons":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tap_1.0.0_1778312761363_0.33265408144594333","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@atcute/tap","version":"1.0.1","license":"0BSD","_id":"@atcute/tap@1.0.1","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"dist":{"shasum":"7b877f94296eab706560e3c14e140e0c7e42b898","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-1.0.1.tgz","fileCount":15,"integrity":"sha512-Bv5UifFPTe9rym4whOofrXFK/GZWAsTrffnoZy78lBwDYAo9sKwB1MwsiU9UdwRM7VoZwLkcx2OUH/bMTjwRbg==","signatures":[{"sig":"MEQCIEjB27aYN9VFxFqFNn7SaLpDmsWXHXyznAYYX+A8jyUXAiBl6E+kFyNUcV7mjqV78P+emVWT+Assh4NGZNG8xOhbAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27780},"type":"module","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsgo","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/clients/tap"},"description":"an atproto Tap client","directories":{},"_nodeVersion":"26.0.0","dependencies":{"valibot":"^1.4.1","type-fest":"^4.41.0","partysocket":"^1.3.0","@atcute/identity":"^2.0.1","@atcute/lexicons":"^2.0.2","@atcute/multibase":"^1.2.4","@atcute/uint8array":"^1.1.3","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","vitest":"^4.1.9","@types/ws":"^8.18.1"},"peerDependencies":{"@atcute/identity":"^2.0.0","@atcute/lexicons":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tap_1.0.1_1782736418602_0.8993727675406171","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@atcute/tap","version":"1.0.2","license":"0BSD","_id":"@atcute/tap@1.0.2","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"dist":{"shasum":"1a2c6ac975818687fd9e501df95073dceff1921c","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-1.0.2.tgz","fileCount":15,"integrity":"sha512-gB1NGo9I4hxmsZFZPauq2FiRpj2Y5USMljij3Z/GOPTLEohn6sjWy154W9UQIquCyrL5TjvObO2GKYeC3ZQkqw==","signatures":[{"sig":"MEUCIC4LJAu6xjee0N51fro0AmVobSPYs+vnUFW/NvcDXMY8AiEAuIEP/O4vcvaxDWKJ7Emj81g72EE+wmoisu1gV+yJXiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28401},"type":"module","exports":{".":"./dist/index.js"},"scripts":{"test":"vitest run","build":"tsc","prepublish":"rm -rf dist; pnpm run build"},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"repository":{"url":"https://github.com/mary-ext/atcute","directory":"packages/clients/tap"},"description":"an atproto Tap client","directories":{},"_nodeVersion":"26.0.0","dependencies":{"valibot":"^1.4.2","type-fest":"^4.41.0","partysocket":"^1.3.0","@atcute/identity":"^2.0.2","@atcute/lexicons":"^2.0.3","@atcute/multibase":"^1.2.5","@atcute/uint8array":"^1.1.5","@mary-ext/event-iterator":"^1.0.0","@mary-ext/simple-event-emitter":"^1.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","vitest":"^4.1.10","@types/ws":"^8.18.1"},"peerDependencies":{"@atcute/identity":"^2.0.0","@atcute/lexicons":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tap_1.0.2_1784160609831_0.5546252203415978","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@atcute/tap","version":"1.0.3","description":"an atproto Tap client","license":"0BSD","repository":{"url":"https://tangled.org/did:plc:pljn5qch4tgadongtc7i6qij","directory":"packages/clients/tap"},"type":"module","sideEffects":false,"exports":{".":"./dist/index.js"},"publishConfig":{"access":"public"},"dependencies":{"@atcute/identity":"^2.0.2","@atcute/lexicons":"^2.1.0","@atcute/multibase":"^1.2.5","@atcute/uint8array":"^1.1.5","@mary-ext/event-iterator":"^1.1.0","@mary-ext/simple-event-emitter":"^1.0.2","partysocket":"^1.3.0","valibot":"^1.4.2"},"devDependencies":{"@types/ws":"^8.18.1","vitest":"^4.1.11","ws":"^8.21.3"},"peerDependencies":{"@atcute/identity":"^2.0.0","@atcute/lexicons":"^2.0.0"},"scripts":{"build":"tsc","test":"vitest run","prepublish":"rm -rf dist; pnpm run build"},"_id":"@atcute/tap@1.0.3","dist":{"integrity":"sha512-B/N2oEn0m161IyxvkppWvjkTPwK7+q7j/IGSNh+qynIR6gqHAmqM/P2zD79cA09Q9wa5ubdkVO8jUgzyQVPPYA==","shasum":"ea16d581313b78492c81d7312a7e967c2a366622","tarball":"https://registry.npmjs.org/@atcute/tap/-/tap-1.0.3.tgz","fileCount":17,"unpackedSize":28916,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGhOjjs55WPmxh5dvyiPwFAHUZArONZjwT+D5/QVYjqwAiEA+i4XSOdwMnOLfFvt8KSs1fXh55xmS3Ii9bwITAJU94k="}]},"_npmUser":{"name":"externdefs","email":"hi@mary.my.id"},"directories":{},"maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tap_1.0.3_1789047707707_0.5110377415425862"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-14T03:42:27.683Z","modified":"2026-09-10T13:41:48.108Z","0.1.0":"2025-12-14T03:42:27.891Z","0.1.1":"2025-12-15T00:03:17.408Z","0.1.2":"2026-05-08T01:59:30.825Z","1.0.0":"2026-05-09T07:46:01.526Z","1.0.1":"2026-06-29T12:33:38.745Z","1.0.2":"2026-07-16T00:10:10.072Z","1.0.3":"2026-09-10T13:41:47.881Z"},"license":"0BSD","repository":{"url":"https://tangled.org/did:plc:pljn5qch4tgadongtc7i6qij","directory":"packages/clients/tap"},"description":"an atproto Tap client","maintainers":[{"name":"externdefs","email":"hi@mary.my.id"}],"readme":"# @atcute/tap\n\nan atproto Tap client.\n\n```sh\nnpm install @atcute/tap\n```\n\nTap is a sync utility that connects to the relay firehose, verifies data, performs backfill, and\nstreams simple JSON events to clients over a local websocket.\n\n## usage\n\n```ts\nimport { TapClient } from '@atcute/tap';\n\nconst tap = new TapClient({\n\turl: 'http://localhost:2480',\n\t// adminPassword: process.env.TAP_ADMIN_PASSWORD,\n});\n\nawait tap.addRepos(['did:plc:...']);\n\nfor await (const { event, ack } of tap.subscribe()) {\n\t// process event idempotently\n\tawait ack();\n}\n```\n\n## acks\n\nTap’s default mode requires that clients acknowledge each event after it has been processed. if you\ndon’t call `ack()`, Tap will retry delivery later.\n","readmeFilename":""}