{"_id":"1baton","_rev":"7-735984c156271024c757846a86a83288","name":"1baton","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"1baton","version":"1.0.0","_id":"1baton@1.0.0","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"dae8f824ba2d67dae18658345b046599c67443ba","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.0.tgz","fileCount":9,"integrity":"sha512-GBA123yJ65G7KE1kbQh7hw4pTzJt5/Mz5b1dSAnfWkGGE+zB0fbyyq3RvFR6rjV1YS4ZPLm9pi4EeU1+3sjt1A==","signatures":[{"sig":"MEUCIHV0l1HSeCs0jomF25u2D4Ioa8jfqHSsZ9ambxDHA8MHAiEA0tHd5nQzcym93VHntb4+xBT6POdKRIMYfC0bQUlG8/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19148},"type":"module","gitHead":"572663f8d8e976562b5c1ca195575201384f0e02","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.0_1778244277766_0.0870881707839053","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"1baton","version":"1.0.1","_id":"1baton@1.0.1","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"deeca69a74bcaa5bc1043902ebaf19034cd9fb01","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.1.tgz","fileCount":10,"integrity":"sha512-VtCqeSMTOfIjQDnR6pc3KWwrI/wdiN48IMLVfiB6emq/CgIkj43b/jZT99dq0hw6DgoQZr9garaBVhSXMM+2pw==","signatures":[{"sig":"MEQCIBL3oc7T8pi4b8PziAE4/uo+mv62i+/X2KzO3zkMCqA0AiB+8PXSgQVitlZz8SNEaz9k0WDn+ZRyCODI59+K2RBTCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20654},"type":"module","gitHead":"572663f8d8e976562b5c1ca195575201384f0e02","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","description":"1Baton runner","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.1_1778331927903_0.18363177448614953","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"1baton","version":"1.0.2","_id":"1baton@1.0.2","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"58dea54215f2ac6bf091fe73a9887a6c703c7901","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.2.tgz","fileCount":11,"integrity":"sha512-F9L6zqnbzlUD1gWAzottsMzwoRWPgFDXFFH1Sd0pxYcIgnB1Elz4n8+wm1wxHpsn1dCGK70K4SFzyilV7aRh2w==","signatures":[{"sig":"MEQCIAz+EpKknEXnErU6YNi6Z2ZrzDA+BViB+U/iAxyfOnSHAiBjuPbfHeyO4oV/y0oMaFxMiqG8o3wnJ+WWKVftCGXSRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29496},"type":"module","gitHead":"51ef5d7cf2d5e8c0339361b883de8f8f6cbf010f","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","description":"1Baton runner","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.2_1779533833538_0.007229497012472885","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"1baton","version":"1.0.3","_id":"1baton@1.0.3","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"fc2f7364db1c143817c4e8e74a571c89aea14c90","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.3.tgz","fileCount":11,"integrity":"sha512-4ngdr7SZH07TGcLKVFdyg7Oaef3hjyBbQqhybmDdf3u4yPoj2KqUnc2AhuVJe5F//N47DhtCjLL2HHOJTgIPMg==","signatures":[{"sig":"MEYCIQCizCnhNOxHl0+/HxPAy/+xzBofR0bgY0PDkNElWUC/QQIhAKXNhqXTc2MkjCa4G8m1+gk9s+pf3EKxIlFL6yPa2yJd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29611},"type":"module","gitHead":"8117411febad85bff5be0a2aebd0a656bf786d4e","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","description":"1Baton runner","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.3_1779545364807_0.7618632405890362","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"1baton","version":"1.0.4","_id":"1baton@1.0.4","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"4b79c6c92a26592fe0a6af79348b6fb4fb7da975","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.4.tgz","fileCount":11,"integrity":"sha512-OrHAvRgLVex4a+KYwGVxtM5aQeKfyVjeA2EdGsWXoa5SaIOKZCPNsbTQzHqRdsjunX7diPXZVSXXFOAfcJC3Nw==","signatures":[{"sig":"MEQCIA38b4FkPw4gLE4h++/My3B9zDq3inTBNKh76ShTjc+VAiAHTc/a/sbLMgI12Z3jEo0P1QIOm7JWNH2w+XoX+p1rVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29611},"type":"module","gitHead":"b7d3359f287e17382699dd7b51b776fa80c1152c","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","description":"1Baton runner","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.4_1779545725476_0.5344139420586356","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"1baton","version":"1.0.5","_id":"1baton@1.0.5","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"bin":{"1baton":"src/index.ts"},"dist":{"shasum":"ce14b607776ff1ed818bf13a415f33e3856d8ec4","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.5.tgz","fileCount":10,"integrity":"sha512-fLoXMUPACAGs9PC2otkKuRlgxn+wberACrRM7IABWcn09Ft+wsromDyO0eehTYUMqZ9UiuKZ/Bp5RzvrLsOwAA==","signatures":[{"sig":"MEUCIQC/sr0uL/m3YnkHVsi7yGGxhA3AjhMh64mbcxfEJUCMMAIgTnyGwU/tOiGIuu+XKse3Jv1b0s2z3V/FB9twU8wgorg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22970},"type":"module","gitHead":"1a09b4b7df3550ad0be546c4dd5ef99c3b568052","scripts":{"dev":"tsx watch src/index.ts","test":"vitest run","start":"tsx src/index.ts","test:watch":"vitest"},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"_npmVersion":"11.7.0","description":"1Baton runner","directories":{},"_nodeVersion":"20.19.1","dependencies":{"tsx":"^4.19.4","cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.3","supertest":"^7.2.2","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/node":"^22.15.3","@types/express":"^5.0.2","@types/supertest":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/1baton_1.0.5_1782045493681_0.9404949415795698","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"1baton","version":"1.0.6","description":"1Baton runner","type":"module","bin":{"1baton":"src/index.ts"},"scripts":{"start":"tsx src/index.ts","dev":"tsx watch src/index.ts","test":"vitest run","test:watch":"vitest"},"dependencies":{"cors":"^2.8.5","express":"^4.21.2","jsonpath-plus":"^10.3.0","tsx":"^4.19.4"},"devDependencies":{"@types/cors":"^2.8.17","@types/express":"^5.0.2","@types/node":"^22.15.3","@types/supertest":"^7.2.0","supertest":"^7.2.2","typescript":"^5.8.3","vitest":"^3.1.3"},"gitHead":"7fe84830a3756650744ffb0dd0430801ff55b1ae","_id":"1baton@1.0.6","_nodeVersion":"20.19.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-tD8eTGiur1pdU22OwqxFaiJW3jP7t+MolB761NiKwTSmVcFpAUNHiiN1JIjyJFYa4qolnHb9mvR2e+cU+fQ3ow==","shasum":"6efd00dee1804dc513a4df77ee9d7c9d8c123627","tarball":"https://registry.npmjs.org/1baton/-/1baton-1.0.6.tgz","fileCount":11,"unpackedSize":29978,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFc3jL8srkoiry5nsMXghkSYWKxDhQAr7OEdpeMOxHVgAiEAoc1AqZ7J0QLCKlaJUp1psgiSHRcpeXUgpGqCDGR0wB4="}]},"_npmUser":{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"},"directories":{},"maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1baton_1.0.6_1783083112196_0.8799282042129959"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-08T12:44:37.765Z","modified":"2026-07-03T12:51:52.457Z","1.0.0":"2026-05-08T12:44:37.904Z","1.0.1":"2026-05-09T13:05:28.055Z","1.0.2":"2026-05-23T10:57:13.797Z","1.0.3":"2026-05-23T14:09:24.987Z","1.0.4":"2026-05-23T14:15:25.622Z","1.0.5":"2026-06-21T12:38:13.800Z","1.0.6":"2026-07-03T12:51:52.345Z"},"description":"1Baton runner","maintainers":[{"name":"sagivyatom","email":"sagiv.yatom@gmail.com"}],"readme":"# 1Baton\n\nA local runner for the [1Baton](https://1baton.com) app. Start it on your machine so the browser can execute real HTTP API calls against your internal services.\n\n## Why\n\nBrowsers can't call most internal APIs directly — they block cross-origin requests (CORS) and have no access to your private network. The runner fills that gap: it runs as a local process with full network access, receives the Playbook from the browser, calls your APIs, and streams results back in real time.\n\n```\n1Baton app (browser)\n    │  POST /api/run      → sends the Playbook\n    │  GET  /api/run/:id/stream  ← live step results\n    ▼\nRunner (localhost:7331)\n    │  real HTTP calls\n    ▼\nYour internal APIs\n```\n\n## Usage\n\n```bash\nnpx 1baton --port 7331\n```\n\nLeave it running in a terminal while you use the 1Baton app. The app detects it automatically and switches from simulation to real execution.\n\n## Options\n\n| Flag | Default | Description |\n|------|---------|-------------|\n| `--port`, `-p` | `7331` | Port to listen on |\n\n## How it works\n\n1. The browser POSTs the Playbook to `/api/run` and receives a `runId`\n2. The browser opens a streaming connection to `/api/run/:runId/stream`\n3. The runner executes each step sequentially, resolving variables and making real HTTP calls\n4. Each step result is streamed back as a Server-Sent Event\n\nSee [RUNNER.md](./RUNNER.md) for a full explanation of variable scoping, output promotion, assertions, and the API reference.\n","readmeFilename":"README.md"}