{"_id":"@elchika-inc/todoke","name":"@elchika-inc/todoke","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@elchika-inc/todoke","version":"0.1.0","type":"module","description":"TypeScript SDK for todoke Web Push SaaS","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"vitest run","prepublishOnly":"tsc -p tsconfig.build.json"},"devDependencies":{"typescript":"^5.7.2","vitest":"^3.1.1"},"license":"MIT","sideEffects":false,"publishConfig":{"access":"public"},"homepage":"https://todoke.dev","keywords":["web-push","push-notifications","cloudflare","mcp","todoke"],"gitHead":"d651f5751854e480b083803d2901795392be7190","_id":"@elchika-inc/todoke@0.1.0","_nodeVersion":"24.21.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-hj5dbMLUscuk0pm4ZWBhtYUMbV/U1qO8UWgkh+9P+XIugLVU1fi5XdnJxWtA2Me6m+8RRrMv63QZdxAnE4sN/g==","shasum":"5f3239120bf1d3948a35046ff4d051b91552aec0","tarball":"https://registry.npmjs.org/@elchika-inc/todoke/-/todoke-0.1.0.tgz","fileCount":15,"unpackedSize":14203,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD6l0NNQVUuRQc1uq5wScsCLk9kZ47ISF9ZS34fSgQHpQIgV/EDU1PZWsnENgjlL3GJnlGV19+qPu2kq87Fb9vEwoM="}]},"_npmUser":{"name":"naoto24kawa","email":"naoto24kawa@gmail.com"},"directories":{},"maintainers":[{"name":"naoto24kawa","email":"naoto24kawa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/todoke_0.1.0_1789048272731_0.09223396304008125"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-10T13:51:12.493Z","0.1.0":"2026-09-10T13:51:12.857Z","modified":"2026-09-10T13:51:13.285Z"},"maintainers":[{"name":"naoto24kawa","email":"naoto24kawa@gmail.com"}],"description":"TypeScript SDK for todoke Web Push SaaS","homepage":"https://todoke.dev","keywords":["web-push","push-notifications","cloudflare","mcp","todoke"],"license":"MIT","readme":"# @elchika-inc/todoke\n\nTypeScript SDK for [todoke](https://todoke.dev) — the minimal Web Push notification SaaS with first-class AI (MCP) support.\n\n## Install\n\n> **Note**: `@elchika-inc/todoke` is not yet published to npm. Until it is, build it from this repository:\n>\n> ```bash\n> # after cloning the todoke monorepo\n> bun install\n> cd packages/sdk\n> bun run build   # emits dist/ (ESM + type declarations)\n> ```\n\nOnce published, installation will be:\n\n```bash\nnpm install @elchika-inc/todoke\n# or: bun add @elchika-inc/todoke / pnpm add @elchika-inc/todoke\n```\n\n## Quick start\n\n```typescript\nimport { PushCF } from \"@elchika-inc/todoke\";\n\nconst client = new PushCF({\n  apiKey: \"pk_your_key\",\n  // baseUrl: \"https://api.todoke.dev\" // default\n});\n\n// Subscribe (browser — requires a service worker at /sw.js)\nconst registration = await navigator.serviceWorker.ready;\nawait client.subscribe({ registration });\n\n// Send a notification to all active subscribers\nawait client.notify({\n  title: \"お知らせ\",\n  body: \"新しいメッセージがあります\",\n  url: \"https://yourapp.com/messages\",\n});\n\n// Stats\nconst stats = await client.getStats();\n```\n\n## API key scopes\n\ntodoke issues API keys with three scopes — use the narrowest one for each surface:\n\n| Scope | Use for |\n|---|---|\n| `subscribe_only` | Safe to embed in frontend code (subscribe only) |\n| `notify` | Server-side sending |\n| `full` | Management operations |\n\n## Documentation\n\nFull guides and API reference: **https://docs.todoke.dev**\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-a185875640eb2d26cfcb884f5ea1592f"}