{"_id":"@byteb4rb1e/mime-todo","_rev":"8-6a57eed8b9cf61196ca3db7d3ffcea54","name":"@byteb4rb1e/mime-todo","dist-tags":{"latest":"0.5.0"},"versions":{"0.3.0":{"name":"@byteb4rb1e/mime-todo","version":"0.3.0","keywords":["todo","issue-tracker","mime","bugzilla","cli","gitflow"],"author":{"name":"Tiara Rodney","email":"me@tiararodney.com"},"license":"CC-BY-ND-4.0","_id":"@byteb4rb1e/mime-todo@0.3.0","maintainers":[{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"}],"homepage":"https://bitbucket.org/byteb4rb1e/mime-todo-cli","bugs":{"url":"https://bugs.code.tiararodney.com/buglist.cgi?component=CLI&product=MIME%20TODO"},"bin":{"bugzilla":"bin/bugzilla.js","mime-todo":"bin/main.js"},"dist":{"shasum":"a4ec5e38603bfd1bcbf70ee8ba50762fa94cc545","tarball":"https://registry.npmjs.org/@byteb4rb1e/mime-todo/-/mime-todo-0.3.0.tgz","fileCount":56,"integrity":"sha512-6Oc0wssAxk3cjY/BxM6g1qp4nHbBiq1lCosEx2thH1cYBIlaXC/PZv9bkpPYBADWGGVJ/sjanYueqfL/6roFeQ==","signatures":[{"sig":"MEYCIQC8qdgxgTy6HPv3x47fjvAa/V5UNUuu6pu40aKuy5NybQIhAOFeElz6HQkMKHEVTuel/maC7k+PTZERYcdGisPUkupt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96587},"main":"lib/file.js","type":"module","types":"./lib/file.d.ts","engines":{"node":">=18.0.0"},"gitHead":"659171eaabbfcacea6093dcf6861bc817f72217e","scripts":{"test":"vitest run","build":"npm run build:lib && npm run build:bin","bugzilla":"tsx bin/bugzilla.ts","build:bin":"tsc -p tsconfig.bin.json","build:lib":"tsc -p tsconfig.lib.json && cp src/file.schema.json lib/","mime-todo":"tsx bin/main.ts","test-reports/unit":"vitest run"},"_npmUser":{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"},"repository":{"url":"git+ssh://git@bitbucket.org/byteb4rb1e/mime-todo-cli.git","type":"git"},"_npmVersion":"9.2.0","description":"CLI for the MIME TODO issue tracker specification with Bugzilla integration","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ajv":"^8.17.1","yargs":"^18.0.0","mailparser":"^3.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.7.0","eslint":"^9.25.1","vitest":"^4.0.18","@eslint/js":"^9.24.0","typescript":"^5.8.3","@types/node":"^22.14.1","@types/yargs":"^17.0.35","@types/mailparser":"^3.4.5","typescript-eslint":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/mime-todo_0.3.0_1773547972657_0.3594247984696386","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@byteb4rb1e/mime-todo","version":"0.3.1","keywords":["todo","issue-tracker","mime","bugzilla","cli","gitflow"],"author":{"name":"Tiara Rodney","email":"me@tiararodney.com"},"license":"CC-BY-ND-4.0","_id":"@byteb4rb1e/mime-todo@0.3.1","maintainers":[{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"}],"homepage":"https://bitbucket.org/byteb4rb1e/mime-todo-cli","bugs":{"url":"https://bugs.code.tiararodney.com/buglist.cgi?component=CLI&product=MIME%20TODO"},"bin":{"bugzilla":"bin/bugzilla.js","mime-todo":"bin/main.js"},"dist":{"shasum":"d0d1e4387e99a26b85a433ff57d722ccaec1dc8a","tarball":"https://registry.npmjs.org/@byteb4rb1e/mime-todo/-/mime-todo-0.3.1.tgz","fileCount":56,"integrity":"sha512-QWzBCSIjkd6jNBf22cSiuW2ZMpXRE7+kF39Q3Y1wzmXp8YrljVhZoCYKwvI/j7991sBriMXTM+/qTgMbenIH0Q==","signatures":[{"sig":"MEUCIQDwLePTW63v+AsOWz0Pfy04x6zPixveNkUlMHvfSxtR9QIgQCtNpmjL3oL2HB7hiQQ066XLD6ZiTAt/iZYSxQYzYOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96578},"main":"lib/file.js","type":"module","types":"./lib/file.d.ts","engines":{"node":">=18.0.0"},"gitHead":"659171eaabbfcacea6093dcf6861bc817f72217e","scripts":{"test":"vitest run","build":"npm run build:lib && npm run build:bin","bugzilla":"tsx bin/bugzilla.ts","build:bin":"tsc -p tsconfig.bin.json","build:lib":"tsc -p tsconfig.lib.json && cp src/file.schema.json lib/","mime-todo":"tsx bin/main.ts","test-reports/unit":"vitest run"},"_npmUser":{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"},"repository":{"url":"git+ssh://git@bitbucket.org/byteb4rb1e/mime-todo-cli.git","type":"git"},"_npmVersion":"9.2.0","description":"CLI for the MIME TODO issue tracker specification with Bugzilla integration","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ajv":"^8.17.1","yargs":"^18.0.0","mailparser":"^3.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.7.0","eslint":"^9.25.1","vitest":"^4.0.18","@eslint/js":"^9.24.0","typescript":"^5.8.3","@types/node":"^22.14.1","@types/yargs":"^17.0.35","@types/mailparser":"^3.4.5","typescript-eslint":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/mime-todo_0.3.1_1774030853403_0.08448879212873539","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@byteb4rb1e/mime-todo","version":"0.4.0","keywords":["todo","issue-tracker","mime","bugzilla","cli","gitflow"],"author":{"name":"Tiara Rodney","email":"me@tiararodney.com"},"license":"CC-BY-ND-4.0","_id":"@byteb4rb1e/mime-todo@0.4.0","maintainers":[{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"}],"homepage":"https://bitbucket.org/byteb4rb1e/mime-todo-cli","bugs":{"url":"https://bugs.code.tiararodney.com/buglist.cgi?component=CLI&product=MIME%20TODO"},"bin":{"bugzilla":"bin/bugzilla.js","mime-todo":"bin/main.js"},"dist":{"shasum":"17e4205717109eca2a6b047af56a065a43657e03","tarball":"https://registry.npmjs.org/@byteb4rb1e/mime-todo/-/mime-todo-0.4.0.tgz","fileCount":56,"integrity":"sha512-DOelOhqLHBHRxhXPIkAnyVOPrWk//nLDggLooZxTlYl3t/mrBcbAj5CXcSaYJIPT2I8SF2iYhzG6yUDAVoZH7A==","signatures":[{"sig":"MEUCIQCPfEIsvOAVQ/z+/Oo0CVgEIprUX9f+Msz7wkBqf2U6YwIgbtyOuGwczDD67RcUIz8HQ/xf0jagowtBnvMykLxD80A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99077},"main":"lib/file.js","type":"module","types":"./lib/file.d.ts","engines":{"node":">=18.0.0"},"gitHead":"659171eaabbfcacea6093dcf6861bc817f72217e","scripts":{"test":"vitest run","build":"npm run build:lib && npm run build:bin","bugzilla":"tsx bin/bugzilla.ts","build:bin":"tsc -p tsconfig.bin.json","build:lib":"tsc -p tsconfig.lib.json && cp src/file.schema.json lib/","mime-todo":"tsx bin/main.ts","test-reports/unit":"vitest run"},"_npmUser":{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"},"repository":{"url":"git+ssh://git@bitbucket.org/byteb4rb1e/mime-todo-cli.git","type":"git"},"_npmVersion":"9.2.0","description":"CLI for the MIME TODO issue tracker specification with Bugzilla integration","directories":{},"_nodeVersion":"20.19.4","dependencies":{"ajv":"^8.17.1","yargs":"^18.0.0","mailparser":"^3.9.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.7.0","eslint":"^9.25.1","vitest":"^4.0.18","@eslint/js":"^9.24.0","typescript":"^5.8.3","@types/node":"^22.14.1","@types/yargs":"^17.0.35","@types/mailparser":"^3.4.5","typescript-eslint":"^8.31.0"},"_npmOperationalInternal":{"tmp":"tmp/mime-todo_0.4.0_1774038245633_0.26241433085880406","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@byteb4rb1e/mime-todo","version":"0.5.0","description":"CLI for the MIME TODO issue tracker specification with Bugzilla integration","author":{"name":"Tiara Rodney","email":"me@tiararodney.com"},"license":"CC-BY-ND-4.0","type":"module","repository":{"type":"git","url":"git+ssh://git@bitbucket.org/byteb4rb1e/mime-todo-cli.git"},"homepage":"https://bitbucket.org/byteb4rb1e/mime-todo-cli","bugs":{"url":"https://bugs.code.tiararodney.com/buglist.cgi?component=CLI&product=MIME%20TODO"},"keywords":["todo","issue-tracker","mime","bugzilla","cli","gitflow"],"bin":{"mime-todo":"bin/main.js","bugzilla":"bin/bugzilla.js"},"main":"lib/file.js","scripts":{"build:bin":"tsc -p tsconfig.bin.json","build:lib":"tsc -p tsconfig.lib.json && cp src/file.schema.json lib/","build":"npm run build:lib && npm run build:bin","mime-todo":"tsx bin/main.ts","bugzilla":"tsx bin/bugzilla.ts","test":"vitest run","test-reports/unit":"vitest run"},"dependencies":{"ajv":"^8.17.1","mailparser":"^3.9.3","yargs":"^18.0.0"},"devDependencies":{"@eslint/js":"^9.24.0","@types/mailparser":"^3.4.5","@types/node":"^22.14.1","@types/yargs":"^17.0.35","eslint":"^9.25.1","tsx":"^3.7.0","typescript":"^5.8.3","typescript-eslint":"^8.31.0","vitest":"^4.0.18"},"engines":{"node":">=18.0.0"},"types":"./lib/file.d.ts","gitHead":"659171eaabbfcacea6093dcf6861bc817f72217e","_id":"@byteb4rb1e/mime-todo@0.5.0","_nodeVersion":"20.19.4","_npmVersion":"9.2.0","dist":{"integrity":"sha512-nuRVtlJ24j4TfyVlgK9r9yU7h2dcHiUMOcf725y+mjl0wMWQsb2/166akkLXNskklat9H1oGTAADYqPVJlz5CQ==","shasum":"4d382bc35275b546fb930086d9a6657bf2dfda70","tarball":"https://registry.npmjs.org/@byteb4rb1e/mime-todo/-/mime-todo-0.5.0.tgz","fileCount":56,"unpackedSize":99134,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCR2UFlFlC3XgzX0r7WIMxAj5HtlPFPYn048s3dO2GG8AIgbP8gQt+bSA1QyrVH2T0yh8MqE/I1RGuXASoHLXG4nLw="}]},"_npmUser":{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"},"directories":{},"maintainers":[{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mime-todo_0.5.0_1774142969165_0.419075846021685"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T04:12:52.606Z","modified":"2026-03-22T01:29:29.440Z","0.1.0":"2026-03-15T02:28:35.953Z","0.2.0":"2026-03-15T03:08:47.597Z","0.3.0":"2026-03-15T04:12:52.819Z","0.3.1":"2026-03-20T18:20:53.550Z","0.4.0":"2026-03-20T20:24:05.809Z","0.5.0":"2026-03-22T01:29:29.323Z"},"bugs":{"url":"https://bugs.code.tiararodney.com/buglist.cgi?component=CLI&product=MIME%20TODO"},"author":{"name":"Tiara Rodney","email":"me@tiararodney.com"},"license":"CC-BY-ND-4.0","homepage":"https://bitbucket.org/byteb4rb1e/mime-todo-cli","keywords":["todo","issue-tracker","mime","bugzilla","cli","gitflow"],"repository":{"type":"git","url":"git+ssh://git@bitbucket.org/byteb4rb1e/mime-todo-cli.git"},"description":"CLI for the MIME TODO issue tracker specification with Bugzilla integration","maintainers":[{"name":"byteb4rb1e","email":"npmjs@h1d3.23d080rla94we2beocz4.xyz"}],"readme":"# @byteb4rb1e/mime-todo\n\nCLI implementation for the [MIME TODO specification](https://bitbucket.org/byteb4rb1e/mime-todo-spec) \n\nA deterministic, spec-first issue tracker that lives inside a SCM repository as\na plain-text `TODO` file.\n\n## Install\n\n```sh\nnpm install -g @byteb4rb1e/mime-todo\n```\n\n## Quick Start\n\n```sh\n# Create a TODO file and start tracking issues\nmime-todo create --type feature --title \"Add login\" --plan \"Implement OAuth2 flow\"\nmime-todo start 1 --plan \"Using passport.js with Google provider\"\nmime-todo push          # sync to Bugzilla\nmime-todo done 1 --summary \"OAuth2 login with Google, GitHub providers\"\n```\n\n## Commands\n\n### Issue Lifecycle\n\n| Command | Branch | Description |\n|---------|--------|-------------|\n| `mime-todo create --type --title --plan` | `develop` | Create a new issue |\n| `mime-todo start <id> --plan` | `develop` | Set issue to in-progress |\n| `mime-todo done <id> --summary` | `<type>/<id>` | Mark issue as done |\n| `mime-todo hold <id> --reason` | `<type>/<id>` | Put issue on hold |\n| `mime-todo cancel <id> --reason` | `develop` or `<type>/<id>` | Cancel an issue |\n\nEach lifecycle command creates a dedicated commit (`todo(<id>): <status>`)\nthat modifies only the `TODO` file.\n\n### Read-Only\n\n| Command | Description |\n|---------|-------------|\n| `mime-todo list` | List all issues |\n| `mime-todo show <id>` | Show issue details |\n| `mime-todo sprints` | List all sprints |\n| `mime-todo issues-in-sprint <name>` | List issues in a sprint |\n\n### Bugzilla Integration\n\n| Command | Description |\n|---------|-------------|\n| `mime-todo init` | Check/create Bugzilla products and components |\n| `mime-todo push [ref]` | Push commits as Bugzilla comments |\n\n#### `mime-todo init`\n\nReads the `application/bugzilla` part from the `TODO` file and ensures the\nreferenced products and components exist on the Bugzilla server.\n\n```sh\nmime-todo init                                          # check what exists\nmime-todo init --dry-run                                # preview changes\nmime-todo init --confirm --assignee user@example.com    # create missing items\n```\n\n#### `mime-todo push`\n\nPushes git commits to Bugzilla as comments. Context-aware:\n\n- **On issue branches**: pushes work commits as comments on the\n  corresponding bug (work log).\n- **On `develop`**: pushes `todo(<id>): <status>` transition commits,\n  updating bug status and posting the commit body as a comment.\n\n```sh\nmime-todo push              # push all unpushed commits\nmime-todo push HEAD~3       # push only the last 3 commits\nmime-todo push --dry-run    # preview without pushing\nmime-todo push --strategy full   # re-scan all bugs (not just targeted)\n```\n\nEach comment includes a clickable link to the commit. Comments are tagged\nwith `git-<short-hash>` for idempotency — running `push` twice is safe.\n\n### Standalone Bugzilla CLI\n\nA separate `bugzilla` command provides direct access to the Bugzilla REST\nAPI:\n\n```sh\nbugzilla products\nbugzilla product \"MIME TODO\"\nbugzilla components \"MIME TODO\"\nbugzilla search --product \"MIME TODO\"\nbugzilla get <id>\nbugzilla create --summary \"Bug title\" --description \"Details\"\nbugzilla create-product --name \"Product\" --description \"Desc\"\nbugzilla create-component --product \"Product\" --name \"Comp\" \\\n  --description \"Desc\" --assignee user@example.com\n```\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `BUGZILLA_URL` | Bugzilla REST API URL (e.g. `https://bugs.example.com/rest`) |\n| `BUGZILLA_API_KEY` | Bugzilla API key |\n\n### TODO File\n\nThe `TODO` file can contain `application/modules` and `application/bugzilla`\nparts to configure module-to-product/component mappings:\n\n```\n--ISSUE\nContent-Type: application/modules\nModules:\n        - Name: Specification\n          Path: src\n        - Name: CLI\n          Path: scripts/cli\n\n--ISSUE\nContent-Type: application/bugzilla\nURL: https://bugs.example.com/rest\nMappings:\n        - Module: Specification\n          Product: MIME TODO\n          Component: Specification\n        - Module: CLI\n          Product: MIME TODO\n          Component: CLI\n```\n\n## Specification\n\nThis CLI implements the [MIME TODO specification](https://bitbucket.org/byteb4rb1e/mime-todo-spec).\nThe specification defines the file format, field semantics, status transition\nrules, and commit conventions.\n\n## License\n\n[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0/)\n","readmeFilename":"README.md"}