{"_id":"@boardgamebuddy/game-pack-cli","_rev":"5-7ed05db72f44e3aa125533dc9cc98e7c","name":"@boardgamebuddy/game-pack-cli","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@boardgamebuddy/game-pack-cli","version":"0.0.1","_id":"@boardgamebuddy/game-pack-cli@0.0.1","maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"bin":{"bgb":"cli.js"},"dist":{"shasum":"d2eea06516fe28f026c3816b642ee06edfbb34f4","tarball":"https://registry.npmjs.org/@boardgamebuddy/game-pack-cli/-/game-pack-cli-0.0.1.tgz","fileCount":2,"integrity":"sha512-3tfOUmvD3xhsq4guNQkSkPeXKC1vQ/oXNTtcOFxNGm0Ppm/a21nqcB2ReuOStFD5WWqg2RNKXQk8jWq07XWeKg==","signatures":[{"sig":"MEUCIQC08lvQc1f1cj4T29gEPTvspzmt/xiEalLEwWSyQ9UEmwIgBLZDrbc5N2p+baz9sagVBHK0uGGx7198xVfCf0jatXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10377},"engines":{"node":">=18"},"gitHead":"b303c02f59eeaf3df807aaaceb4689b624ef6631","_npmUser":{"name":"klangenk","email":"k.langenk@gmail.com"},"_npmVersion":"11.10.1","description":"Developer CLI for BoardGameBuddy game packs","directories":{},"_nodeVersion":"24.14.0","dependencies":{"commander":"^12.0.0","qrcode-terminal":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/game-pack-cli_0.0.1_1772291318632_0.8293502501395205","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@boardgamebuddy/game-pack-cli","version":"0.0.7","_id":"@boardgamebuddy/game-pack-cli@0.0.7","maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"homepage":"https://github.com/BoardGameBuddy/game-pack-cli#readme","bugs":{"url":"https://github.com/BoardGameBuddy/game-pack-cli/issues"},"bin":{"bgb":"cli.js"},"dist":{"shasum":"c23bcf50389f90b24dcfef2cab029095d2a1b68c","tarball":"https://registry.npmjs.org/@boardgamebuddy/game-pack-cli/-/game-pack-cli-0.0.7.tgz","fileCount":2,"integrity":"sha512-h8O8m6cuVvdg2dsmKPVEwLsFnLWH4ceZceBlB3IWm9VPU1naMAHRdoZTo+gbI5gAZLb8YQMh0zOIBIciZtT1KA==","signatures":[{"sig":"MEUCICnnFjry63uMbhGy4tnRDv40NFV8VjwIuWfweL9ePU1KAiEAtW1kAKArz06imYg9UG8u+GrOymeNlkW/+DRMwUMDZYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@boardgamebuddy%2fgame-pack-cli@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10203},"engines":{"node":">=18"},"gitHead":"37bdcf43012ee53810a8d125dcc94d984df766c4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:547def61-bee0-4070-a30f-9b769d54c5fe"}},"repository":{"url":"git+https://github.com/BoardGameBuddy/game-pack-cli.git"},"_npmVersion":"11.8.0","description":"Developer CLI for BoardGameBuddy game packs","directories":{},"_nodeVersion":"24.13.1","dependencies":{"commander":"^12.0.0","qrcode-terminal":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/game-pack-cli_0.0.7_1772293552665_0.6395586799046424","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@boardgamebuddy/game-pack-cli","version":"0.0.8","_id":"@boardgamebuddy/game-pack-cli@0.0.8","maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"homepage":"https://github.com/BoardGameBuddy/game-pack-cli#readme","bugs":{"url":"https://github.com/BoardGameBuddy/game-pack-cli/issues"},"bin":{"bgb":"cli.js"},"dist":{"shasum":"373b49f4315e2fd575526a07a47db450cecd1038","tarball":"https://registry.npmjs.org/@boardgamebuddy/game-pack-cli/-/game-pack-cli-0.0.8.tgz","fileCount":3,"integrity":"sha512-Vg3gqE7zQmglsNjHd19W5KBFeZVw8tHFCCFUN/cay943y6C5yOjlZVjS0sUGvqy+vmQhDjGT6OsoBrxEGY4cDg==","signatures":[{"sig":"MEUCIQDHpMfLRZYgpN1Y5AZZzCx2WgdiCMm5IReJaD4dq5P0nAIgOugtiiOKS5riesvKcKyo4V3lpLBxs/WZR9GARtXvcZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@boardgamebuddy%2fgame-pack-cli@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12500},"engines":{"node":">=18"},"gitHead":"b44faea0c17d83b5eeb1cf038006ad11b718a547","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:547def61-bee0-4070-a30f-9b769d54c5fe"}},"repository":{"url":"git+https://github.com/BoardGameBuddy/game-pack-cli.git"},"_npmVersion":"11.8.0","description":"Developer CLI for BoardGameBuddy game packs","directories":{},"_nodeVersion":"24.13.1","dependencies":{"commander":"^12.0.0","qrcode-terminal":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/game-pack-cli_0.0.8_1772305669480_0.7656645738770718","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@boardgamebuddy/game-pack-cli","version":"0.0.9","_id":"@boardgamebuddy/game-pack-cli@0.0.9","maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"homepage":"https://github.com/BoardGameBuddy/game-pack-cli#readme","bugs":{"url":"https://github.com/BoardGameBuddy/game-pack-cli/issues"},"bin":{"bgb":"cli.js"},"dist":{"shasum":"aa012dc702aae0b4357494d68c034d79136663d7","tarball":"https://registry.npmjs.org/@boardgamebuddy/game-pack-cli/-/game-pack-cli-0.0.9.tgz","fileCount":3,"integrity":"sha512-9mdIfsWQZUYHxhRtmw1rIWfLPWZL14z56nwycRd1VHDFKS/V4TWpr46YVAiA770M4nxxOgfqD2+vgnMKaHdQZg==","signatures":[{"sig":"MEUCIQDdZhCyxOoHNAIXkviZW9K0ZoWkq4yGNGTd1TwGXPSDxgIgUlkBM50xvUrDLw68Nh3cmpOFd+28hJ1YGaATkOJ+4UU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@boardgamebuddy%2fgame-pack-cli@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13197},"engines":{"node":">=18"},"gitHead":"5560fb0ab4ec93cc49ceeb3f63ea490ab0a9f0cf","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:547def61-bee0-4070-a30f-9b769d54c5fe"}},"repository":{"url":"git+https://github.com/BoardGameBuddy/game-pack-cli.git"},"_npmVersion":"11.8.0","description":"Developer CLI for BoardGameBuddy game packs","directories":{},"_nodeVersion":"24.13.1","dependencies":{"commander":"^12.0.0","qrcode-terminal":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/game-pack-cli_0.0.9_1772307170279_0.8915764810807614","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@boardgamebuddy/game-pack-cli","version":"0.1.0","description":"Developer CLI for BoardGameBuddy game packs","bin":{"bgb":"cli.js"},"repository":{"url":"git+https://github.com/BoardGameBuddy/game-packs.git","directory":"cli"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"dependencies":{"commander":"^12.0.0","qrcode-terminal":"^0.12.0"},"gitHead":"d8f1e5aa7a06d83c206bc716266e20c78b4f880a","_id":"@boardgamebuddy/game-pack-cli@0.1.0","bugs":{"url":"https://github.com/BoardGameBuddy/game-packs/issues"},"homepage":"https://github.com/BoardGameBuddy/game-packs#readme","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-pHHyewN6MpMYNhKtyAAQ0VZHHaeSt/DET1Kdu10fTAnsSJsr38H/HNDkEjC9Rrxy6LSVGbA8Eebbj8c09NHq/Q==","shasum":"292d0eb6ec74009b35662e2ba800cf0b8661623a","tarball":"https://registry.npmjs.org/@boardgamebuddy/game-pack-cli/-/game-pack-cli-0.1.0.tgz","fileCount":3,"unpackedSize":13218,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@boardgamebuddy%2fgame-pack-cli@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCq3KFUbbL6D6BX1Rct29jlMu7yCglBEWWOxPEbA9u2DQIgT0LKZDF1rI8sT6KYK7EogDT4Q5cTu0r6R0cYgsCSoG0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1b36c046-f1a5-4fb3-9c76-ef70ee71dd20"}},"directories":{},"maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/game-pack-cli_0.1.0_1772310273955_0.9790192632301682"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-28T15:08:38.542Z","modified":"2026-02-28T20:24:34.421Z","0.0.1":"2026-02-28T15:08:38.772Z","0.0.7":"2026-02-28T15:45:52.809Z","0.0.8":"2026-02-28T19:07:49.622Z","0.0.9":"2026-02-28T19:32:50.426Z","0.1.0":"2026-02-28T20:24:34.090Z"},"bugs":{"url":"https://github.com/BoardGameBuddy/game-packs/issues"},"homepage":"https://github.com/BoardGameBuddy/game-packs#readme","repository":{"url":"git+https://github.com/BoardGameBuddy/game-packs.git","directory":"cli"},"description":"Developer CLI for BoardGameBuddy game packs","maintainers":[{"name":"klangenk","email":"k.langenk@gmail.com"}],"readme":"# @boardgamebuddy/game-pack-cli\n\nDeveloper CLI for creating and testing [BoardGameBuddy](https://github.com/BoardGameBuddy) game packs.\n\n## Installation\n\n```bash\nnpm install -g @boardgamebuddy/game-pack-cli\n```\n\n## Commands\n\n### `bgb new <game-id>`\n\nScaffold a new game pack from the upstream template.\n\n```bash\nbgb new ticket-to-ride\nbgb new ticket-to-ride --name \"Ticket to Ride\"\n```\n\n**Arguments**\n\n| Argument | Description |\n|---|---|\n| `game-id` | Unique identifier for the game. Lowercase alphanumeric and hyphens only (e.g. `ticket-to-ride`). |\n\n**Options**\n\n| Option | Description |\n|---|---|\n| `-n, --name <displayName>` | Display name shown in the app. Defaults to the title-cased `game-id`. |\n\nThis command downloads the template from [`BoardGameBuddy/game-packs`](https://github.com/BoardGameBuddy/game-packs) and creates the pack under `<game-id>/` in the current directory:\n\n```\nticket-to-ride/\n  game.json        ← patched with your game-id and display name\n  scorer.ts        ← implement your scoring logic here\n  scorer.js        ← compiled output (generated)\n  embeddings.json  ← card embeddings\n```\n\n### `bgb serve [pack-dir]`\n\nStart a local dev server for a game pack with live reload whenever `scorer.ts` changes.\n\n```bash\n# from inside the pack directory\ncd games/ticket-to-ride\nbgb serve\n\n# or pass the path explicitly\nbgb serve games/ticket-to-ride\n```\n\nThe server starts on port `3000` (override with the `PORT` environment variable) and prints a QR code you can scan in the BoardGameBuddy app to load the pack directly.\n\nWhen `scorer.ts` changes, the CLI automatically recompiles it with `tsc` and pushes a reload event to the app via Server-Sent Events.\n\n## Developing a game pack\n\n1. **Scaffold** the pack:\n   ```bash\n   bgb new my-game\n   ```\n\n2. **Implement scoring** in `my-game/scorer.ts`. The `score` function receives all players and their detected cards and must return a score result for each player:\n   ```ts\n   export function score(players: PlayerInput[]): PlayerScoreResult[] {\n     // your logic here\n   }\n   ```\n\n3. **Start the dev server**:\n   ```bash\n   bgb serve my-game\n   ```\n\n4. **Open the app**, navigate to Pack Store, and scan the QR code to load your pack. The app reloads automatically whenever you save `scorer.ts`.\n\n## Requirements\n\n- Node.js >= 18\n","readmeFilename":"README.md"}