{"_id":"@dream-encode/secret-santa-hat-build-tools","_rev":"2-557f33c9f9aafaebf83296140c6b5893","name":"@dream-encode/secret-santa-hat-build-tools","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@dream-encode/secret-santa-hat-build-tools","version":"0.1.0","keywords":["secret-santa-hat","release","build","changelog","versioning","git","github"],"author":{"name":"David Baumwald","email":"david@dream-encode.com"},"license":"MIT","_id":"@dream-encode/secret-santa-hat-build-tools@0.1.0","maintainers":[{"name":"davidbaumwald","email":"david@dream-encode.com"}],"homepage":"https://github.com/dream-encode/secret-santa-hat-build-tools#readme","bugs":{"url":"https://github.com/dream-encode/secret-santa-hat-build-tools/issues"},"bin":{"ssh-release":"bin/ssh-release.js","secret-santa-hat-build-tools":"bin/setup.js"},"dist":{"shasum":"6da4ad5899ca331ce216dca8657e5bbfb6ef98fd","tarball":"https://registry.npmjs.org/@dream-encode/secret-santa-hat-build-tools/-/secret-santa-hat-build-tools-0.1.0.tgz","fileCount":15,"integrity":"sha512-BfkrLjg44Kmf4gPUZe+NtVZ1Jp7CB1H2LvTvjZJBfrNeE1KEq7WNDJ5uLLHL69qvkP9NxpFENYE5s1mmCPYK6g==","signatures":[{"sig":"MEYCIQDXJG+pyHa2tUmMa0Lyv26E85QKzWW9yySjzqco5GkC7QIhAJer2qyUumFJEQ7PO31mKzpn1edLuBZ+GPxTdDMehu6W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43592},"type":"commonjs","engines":{"node":">=18"},"gitHead":"9c21549b451f3096dcd634196bf083d6847c64a6","scripts":{"postinstall":"node scripts/postinstall.js"},"_npmUser":{"name":"davidbaumwald","email":"david@dream-encode.com"},"repository":{"url":"git+https://github.com/dream-encode/secret-santa-hat-build-tools.git","type":"git"},"_npmVersion":"11.16.0","description":"Release build tools for Secret Santa Hat JavaScript repositories. Provides the `ssh-release` command, a JS-tailored port of the gcrq (git_create_release_quiet) release flow.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/secret-santa-hat-build-tools_0.1.0_1784216952727_0.5417872749657164","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Moved to @secret-santa-hat/build-tools. Please install @secret-santa-hat/build-tools instead."}},"time":{"created":"2026-07-16T15:49:12.585Z","modified":"2026-07-16T16:38:32.679Z","0.1.0":"2026-07-16T15:49:12.863Z"},"bugs":{"url":"https://github.com/dream-encode/secret-santa-hat-build-tools/issues"},"author":{"name":"David Baumwald","email":"david@dream-encode.com"},"license":"MIT","homepage":"https://github.com/dream-encode/secret-santa-hat-build-tools#readme","keywords":["secret-santa-hat","release","build","changelog","versioning","git","github"],"repository":{"url":"git+https://github.com/dream-encode/secret-santa-hat-build-tools.git","type":"git"},"description":"Release build tools for Secret Santa Hat JavaScript repositories. Provides the `ssh-release` command, a JS-tailored port of the gcrq (git_create_release_quiet) release flow.","maintainers":[{"name":"davidbaumwald","email":"david@dream-encode.com"}],"readme":"# Secret Santa Hat Build Tools\n\nRelease tooling for the Secret Santa Hat JavaScript repositories. Ships the\n`ssh-release` command, a JS-tailored port of the `gcrq`\n(`git_create_release_quiet`) bash flow, so every repo releases the same way\nwithout depending on a personal shell profile.\n\n## What it does\n\nRunning `ssh-release` from a repo on the `development` (or `hotfix`) branch:\n\n1. Verifies the branch and that `CHANGELOG.md` has a\n   `## [NEXT_VERSION] - [UNRELEASED]` section at the top.\n2. Bumps the version (interactive menu, or `patch`/`minor`/`major`/`hotfix`):\n   - `package.json`\n   - `public/manifest.json` (if present)\n   - any file containing the `[NEXT_VERSION]` placeholder\n3. Commits the bump, then rewrites the changelog `NEXT_VERSION` header to the\n   new version and date and commits that.\n4. Pushes, creates a `release/<version>` branch, and tags `v<version>`.\n5. Creates a GitHub release from the changelog notes and appends a\n   **Full Changelog** compare link.\n6. Merges the release branch into the default branch (`main`/`master`) and\n   pushes it.\n7. Re-seeds a fresh `NEXT_VERSION` changelog section and resets\n   `public/sw.js` `APP_VERSION` back to `[NEXT_VERSION]`, then returns to the\n   working branch.\n\nJSON edits are done with `node` (always present in a Node project), so `jq` is\nnot required.\n\n## Requirements\n\n- **git**\n- **gh** (GitHub CLI), authenticated: `gh auth login`\n- **bash** — Git Bash on Windows; already present on macOS/Linux\n- **node** — provided by the project itself\n\nCheck everything with:\n\n```bash\nssh-release --check-tools\n```\n\n## Install\n\n```bash\n# yarn (classic)\nyarn add --dev @dream-encode/secret-santa-hat-build-tools\n\n# npm\nnpm install --save-dev @dream-encode/secret-santa-hat-build-tools\n```\n\nAfter install, wire the `release` script into the project:\n\n```bash\nnpx @dream-encode/secret-santa-hat-build-tools setup          # interactive\nnpx @dream-encode/secret-santa-hat-build-tools setup --force  # no prompts\n```\n\nThis sets `\"release\": \"ssh-release\"`. Any existing custom release script is\nbacked up as `release-backup`. An existing `prerelease` script is left alone.\n\n## `yarn release` = prerelease + release\n\nyarn (classic) and npm run a `prerelease` script automatically before\n`release`. Keep each repo's pre-flight checks in its own `prerelease` script,\nand `yarn release` runs them and then the release flow:\n\n```jsonc\n{\n  \"scripts\": {\n    // repo-specific pre-flight (tests, lint, build, browserslist refresh, ...)\n    \"prerelease\": \"yarn maintenance && yarn test:unit\",\n    // the shared release flow\n    \"release\": \"ssh-release\"\n  }\n}\n```\n\n```bash\nyarn release          # prerelease, then interactive release\nyarn release --dry-run\n```\n\n## Usage\n\n```bash\nssh-release                 # interactive version selection\nssh-release patch           # 1.0.0 -> 1.0.1\nssh-release minor           # 1.0.0 -> 1.1.0\nssh-release major           # 1.0.0 -> 2.0.0\nssh-release hotfix          # 1.0.0 -> 1.0.0.1\nssh-release --dry-run minor # preview without making changes\nssh-release --check-tools   # verify git + gh\nssh-release --help\n```\n\nBecause `release` passes arguments through, `yarn release patch` and\n`yarn release --dry-run` work too.\n\n## Configuration\n\nOptional. Copy `bin/config/release.conf.example` to `bin/config/release.conf`\ninside the installed package to override defaults:\n\n- `SSH_RELEASE_MAIN_BRANCH` — the branch releases merge into (auto-detected as\n  `main`, then `master`, when unset).\n\n## Notes\n\n- Releases are allowed only from `development` or `hotfix`.\n- The version bump commit runs `git add .`, so the working tree should hold\n  only what you intend to ship.\n- The re-seeded `NEXT_VERSION` changelog section and the `sw.js` reset are left\n  uncommitted on the working branch, ready for the next cycle.\n","readmeFilename":"README.md"}