{"_id":"@cmichel/healthlog","_rev":"2-cd0eee8fbaf45aacdc16594ab00a214e","name":"@cmichel/healthlog","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@cmichel/healthlog","version":"0.1.0","_id":"@cmichel/healthlog@0.1.0","maintainers":[{"name":"cmichelio","email":"mail@cmichel.io"}],"bin":{"healthlog":"dist/cli.js"},"dist":{"shasum":"b1c71638af954f19813fac771811c6be0cde8c61","tarball":"https://registry.npmjs.org/@cmichel/healthlog/-/healthlog-0.1.0.tgz","fileCount":64,"integrity":"sha512-a9NIz+sY24V3vE0RI7YNqvQB7gSY2CjAKt0r8zOWpwBFvX80iBWrRVCmx7JoG6N19jJo/A4S06w2IWjdr4JqDA==","signatures":[{"sig":"MEUCIHTcJcmgvjZTwgiKbfDpIWpY0IMmyEij7M7j/qDef+zgAiEAuCvLW1FJLKvlj9CXWLzlVARfcnMC0J8+3Rnp6eL8GYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180964},"type":"module","_from":"file:cmichel-healthlog-0.1.0.tgz","engines":{"node":">=22"},"scripts":{"ci":"pnpm run check && pnpm run typecheck && pnpm test && pnpm run build","test":"vitest run","build":"tsc -p tsconfig.build.json","check":"biome check .","start":"tsx src/cli.ts","format":"biome format --write .","typecheck":"tsc --noEmit -p tsconfig.json","pack:check":"npm pack --dry-run","test:integration":"HEALTHLOG_INTEGRATION=1 vitest run integration"},"_npmUser":{"name":"cmichelio","email":"mail@cmichel.io"},"_resolved":"/private/var/folders/z7/8yhdljsd1x3g6rrb6xgtvpkh0000gn/T/b106f50d35d78ce0e24428e9ac536660/cmichel-healthlog-0.1.0.tgz","_integrity":"sha512-a9NIz+sY24V3vE0RI7YNqvQB7gSY2CjAKt0r8zOWpwBFvX80iBWrRVCmx7JoG6N19jJo/A4S06w2IWjdr4JqDA==","_npmVersion":"10.9.4","description":"`healthlog` is a TypeScript CLI that syncs Garmin and Hevy workout data into a local SQLite database and dumps a normalized JSON view for analysis.","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^4.4.3","commander":"^14.0.2","picocolors":"^1.1.1","better-sqlite3":"^12.2.0","garmin-connect":"^1.6.2","@inquirer/prompts":"^7.8.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.1.9","typescript":"^5.9.3","@types/node":"^24.10.1","@biomejs/biome":"^2.3.8","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/healthlog_0.1.0_1782675707792_0.71500268679539","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cmichel/healthlog","version":"0.2.0","type":"module","packageManager":"pnpm@10.10.0","engines":{"node":">=22"},"bin":{"healthlog":"dist/cli.js"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","check":"biome check .","ci":"pnpm run check && pnpm run typecheck && pnpm test && pnpm run build","format":"biome format --write .","pack:check":"npm pack --dry-run","prepack":"pnpm run build","prepublishOnly":"pnpm run ci","start":"tsx src/cli.ts","test":"vitest run","test:integration":"HEALTHLOG_INTEGRATION=1 vitest run integration","typecheck":"tsc --noEmit -p tsconfig.json"},"dependencies":{"@inquirer/prompts":"^7.8.4","better-sqlite3":"^12.2.0","commander":"^14.0.2","garmin-connect":"^1.6.2","picocolors":"^1.1.1","zod":"^4.4.3"},"devDependencies":{"@biomejs/biome":"^2.3.8","@types/better-sqlite3":"^7.6.13","@types/node":"^24.10.1","tsx":"^4.20.6","typescript":"^5.9.3","vitest":"^4.1.9"},"pnpm":{"onlyBuiltDependencies":["better-sqlite3"]},"_id":"@cmichel/healthlog@0.2.0","gitHead":"cea2cc652ce3b140348c35dcce1fb4db262aacd6","description":"`healthlog` is a TypeScript CLI that syncs Garmin and Hevy workouts plus Withings body measurements and dumps a normalized JSON view for analysis.","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-9EaWt/qkLNPfmaRQhcZtEAg7IZHnQj+Sld1/bBM84/YVYVBdCEJrU0+DYv2i/wBdjbyurjEtQJVD6jhLbUNCnw==","shasum":"0a07277ffb3d80b7b42f93b543b455e1fface678","tarball":"https://registry.npmjs.org/@cmichel/healthlog/-/healthlog-0.2.0.tgz","fileCount":80,"unpackedSize":263417,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCTp1J35UuPWCF6tKStQzTG/bRkSb5NdQoTOt26i1BG0AIgOD8IZBJm3s0+0rph+9SNZqMoMKkSdAT6LFPrJDJWgTU="}]},"_npmUser":{"name":"cmichelio","email":"mail@cmichel.io"},"directories":{},"maintainers":[{"name":"cmichelio","email":"mail@cmichel.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/healthlog_0.2.0_1783221493236_0.4671854695906277"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T19:41:47.460Z","modified":"2026-07-05T03:18:13.506Z","0.1.0":"2026-06-28T19:41:47.935Z","0.2.0":"2026-07-05T03:18:13.389Z"},"description":"`healthlog` is a TypeScript CLI that syncs Garmin and Hevy workouts plus Withings body measurements and dumps a normalized JSON view for analysis.","maintainers":[{"name":"cmichelio","email":"mail@cmichel.io"}],"readme":"# healthlog\n\n`healthlog` is a TypeScript CLI that syncs Garmin and Hevy workouts plus Withings body measurements and dumps a normalized JSON view for analysis.\n\n## Setup\n\nInstall the CLI:\n\n```sh\npnpm add -g @cmichel/healthlog\n```\n\nFor local development:\n\n```sh\npnpm install\npnpm build\n```\n\nConfigure Garmin:\n\n```sh\nhealthlog setup garmin\n```\n\nConfigure Hevy:\n\n```sh\nhealthlog setup hevy\n```\n\nGet the Hevy API key from [Hevy developer settings](https://hevy.com/settings?developer). This requires Hevy Pro.\n\nConfigure Withings:\n\n```sh\nhealthlog setup withings\n```\n\nCreate a Withings app in the [Withings developer dashboard](https://developer.withings.com/dashboard/) and register `http://localhost:8088/callback` as the redirect URI while the app is in integration mode. The setup command prints an authorization URL; open it in any browser, then paste the redirected URL or code back into the CLI.\n\nDump data:\n\n```sh\n# First sync may take a while as it syncs all activities.\nhealthlog dump --verbose --pretty\nhealthlog dump --from 2026-01-01 --to 2026-06-27\n```\n","readmeFilename":"README.md"}