{"_id":"@0xlimao/traduora-cli","_rev":"3-bfad9037bccc01ae08f255f3758def94","name":"@0xlimao/traduora-cli","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@0xlimao/traduora-cli","version":"0.1.0","keywords":["traduora","cli","i18n"],"license":"MIT","_id":"@0xlimao/traduora-cli@0.1.0","maintainers":[{"name":"flyinglimao","email":"hi@limaois.me"}],"homepage":"https://flyinglimao.github.io/traduora-cli/","bugs":{"url":"https://github.com/flyinglimao/traduora-cli/issues"},"bin":{"traduora":"dist/index.js"},"dist":{"shasum":"814a67afa1a1d4a51b2b23f44d15b4772ca15dc1","tarball":"https://registry.npmjs.org/@0xlimao/traduora-cli/-/traduora-cli-0.1.0.tgz","fileCount":12,"integrity":"sha512-sdtckToEQKK6oV7OIOCwAb+YeIQ0l1nIWmdmdFSt+5O2lSr9IbeerksAi4oj0J4IDjyVWUxEvt0CG/vGLd2h0w==","signatures":[{"sig":"MEQCIGiyXF2ahQUPhR9vVpwcR72Yzrh0nMPasAG5V36foAY5AiBBRlcNYkAKLBusaAwB+PXimhrcVnX85Yscf0yqo7EVRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127743},"main":"./dist/lib.cjs","type":"module","_from":"file:0xlimao-traduora-cli-0.1.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/lib.js","require":"./dist/lib.cjs"},"./cli":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/index.ts","build":"tsup src/index.ts src/lib.ts --format esm,cjs --dts --clean","typecheck":"tsc --noEmit","test:e2e:local":"bash test/e2e/run-local.sh","docs:api-reference":"rm -rf docs/content/sdk-reference && typedoc --options typedoc.json"},"_npmUser":{"name":"flyinglimao","email":"hi@limaois.me"},"_resolved":"/private/var/folders/jw/knppc_9x64ggv4shvcn020lm0000gn/T/0e09018aff60ca71b72b5a987d4d8932/0xlimao-traduora-cli-0.1.0.tgz","_integrity":"sha512-sdtckToEQKK6oV7OIOCwAb+YeIQ0l1nIWmdmdFSt+5O2lSr9IbeerksAi4oj0J4IDjyVWUxEvt0CG/vGLd2h0w==","repository":{"url":"git+https://github.com/flyinglimao/traduora-cli.git","type":"git"},"_npmVersion":"10.9.4","description":"Modern Traduora CLI with TypeScript and client_credentials support","directories":{},"_nodeVersion":"22.21.1","dependencies":{"jiti":"^2.6.1","dotenv":"^17.2.3","commander":"^14.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","typedoc":"^0.28.17","typescript":"^5.9.2","@types/node":"^24.3.0","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/traduora-cli_0.1.0_1771423510367_0.5785449042835864","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@0xlimao/traduora-cli","version":"0.2.0","keywords":["traduora","cli","i18n"],"license":"MIT","_id":"@0xlimao/traduora-cli@0.2.0","maintainers":[{"name":"flyinglimao","email":"hi@limaois.me"}],"homepage":"https://flyinglimao.github.io/traduora-cli/","bugs":{"url":"https://github.com/flyinglimao/traduora-cli/issues"},"bin":{"traduora":"dist/index.js"},"dist":{"shasum":"ff60ed97921ea109d9ab404b5b8359afa1d119ad","tarball":"https://registry.npmjs.org/@0xlimao/traduora-cli/-/traduora-cli-0.2.0.tgz","fileCount":12,"integrity":"sha512-oPWB6BkDpcQrA8yh+dfwDSQLFBsu3gx+j+AZHNjgulWOtO55AYEB+qNxxX+vfBkrDmGw4EzHDSiEJCKlPsIilw==","signatures":[{"sig":"MEQCIB1Iz3griF7FD+8aqVvyW3QuzlbnXFcDR9AubMZ+bz+nAiB9tgPjRdEXNJRZVUnCUT0swYs8szoUF6lDLOcQMGJLYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xlimao%2ftraduora-cli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":139399},"main":"./dist/lib.cjs","type":"module","_from":"file:0xlimao-traduora-cli-0.2.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","engines":{"node":">=22"},"exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/lib.js","require":"./dist/lib.cjs"},"./cli":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/index.ts","build":"tsup src/index.ts src/lib.ts --format esm,cjs --dts --clean","typecheck":"tsc --noEmit","test:e2e:local":"bash test/e2e/run-local.sh","docs:api-reference":"rm -rf docs/content/sdk-reference && typedoc --options typedoc.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c180f387-44bd-45a2-8f4e-fb5960fbc5a6"}},"_resolved":"/tmp/14679c21ba2adcfe59a535346f9774fe/0xlimao-traduora-cli-0.2.0.tgz","_integrity":"sha512-oPWB6BkDpcQrA8yh+dfwDSQLFBsu3gx+j+AZHNjgulWOtO55AYEB+qNxxX+vfBkrDmGw4EzHDSiEJCKlPsIilw==","repository":{"url":"git+https://github.com/flyinglimao/traduora-cli.git","type":"git"},"_npmVersion":"11.6.2","description":"Modern Traduora CLI with TypeScript and client_credentials support","directories":{},"_nodeVersion":"24.13.0","dependencies":{"jiti":"^2.6.1","dotenv":"^17.2.3","commander":"^14.0.1","@inquirer/prompts":"^7.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.5","tsup":"^8.5.0","typedoc":"^0.28.17","typescript":"^5.9.2","@types/node":"^24.3.0","typedoc-plugin-markdown":"^4.10.0"},"_npmOperationalInternal":{"tmp":"tmp/traduora-cli_0.2.0_1771487408158_0.9831920088745767","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@0xlimao/traduora-cli","version":"0.2.1","description":"Modern Traduora CLI with TypeScript and client_credentials support","type":"module","main":"./dist/lib.cjs","module":"./dist/lib.js","types":"./dist/lib.d.ts","exports":{".":{"types":"./dist/lib.d.ts","import":"./dist/lib.js","require":"./dist/lib.cjs"},"./cli":{"import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"bin":{"traduora":"dist/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=22"},"keywords":["traduora","cli","i18n"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/flyinglimao/traduora-cli.git"},"bugs":{"url":"https://github.com/flyinglimao/traduora-cli/issues"},"homepage":"https://flyinglimao.github.io/traduora-cli/","dependencies":{"@inquirer/prompts":"^7.9.0","commander":"^14.0.1","dotenv":"^17.2.3","jiti":"^2.6.1"},"devDependencies":{"@types/node":"^24.3.0","tsup":"^8.5.0","tsx":"^4.20.5","typedoc":"^0.28.17","typedoc-plugin-markdown":"^4.10.0","typescript":"^5.9.2"},"scripts":{"build":"tsup src/index.ts src/lib.ts --format esm,cjs --dts --clean","docs:api-reference":"rm -rf docs/content/sdk-reference && typedoc --options typedoc.json","dev":"tsx src/index.ts","test:e2e:local":"bash test/e2e/run-local.sh","typecheck":"tsc --noEmit"},"_id":"@0xlimao/traduora-cli@0.2.1","_integrity":"sha512-pVCNESRH4BedEGPrE1/LPcXupNSPZAJYIKDqKnO96l7kmtNSL5XjhwyuKcszhuhZYZAxNQjjl0W1BgvqVghVyw==","_resolved":"/tmp/ea46f96586c3a45be97449990a331d7b/0xlimao-traduora-cli-0.2.1.tgz","_from":"file:0xlimao-traduora-cli-0.2.1.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-pVCNESRH4BedEGPrE1/LPcXupNSPZAJYIKDqKnO96l7kmtNSL5XjhwyuKcszhuhZYZAxNQjjl0W1BgvqVghVyw==","shasum":"6285953f3e1e47cb6d2222243c55ee4d0001a221","tarball":"https://registry.npmjs.org/@0xlimao/traduora-cli/-/traduora-cli-0.2.1.tgz","fileCount":12,"unpackedSize":139444,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@0xlimao%2ftraduora-cli@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDhP1oqgqc9SMWoc9iJf3frBOmAo0hKkz1mwHVlqbibtAiEAyBBzGmwnAe0XNXlK0dY4zJDqlwqVRQMCg5dOoIvdjR8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c180f387-44bd-45a2-8f4e-fb5960fbc5a6"}},"directories":{},"maintainers":[{"name":"flyinglimao","email":"hi@limaois.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/traduora-cli_0.2.1_1771571966709_0.7438302023956052"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-18T14:05:10.247Z","modified":"2026-02-20T07:19:27.090Z","0.1.0":"2026-02-18T14:05:10.505Z","0.2.0":"2026-02-19T07:50:08.326Z","0.2.1":"2026-02-20T07:19:26.840Z"},"bugs":{"url":"https://github.com/flyinglimao/traduora-cli/issues"},"license":"MIT","homepage":"https://flyinglimao.github.io/traduora-cli/","keywords":["traduora","cli","i18n"],"repository":{"type":"git","url":"git+https://github.com/flyinglimao/traduora-cli.git"},"description":"Modern Traduora CLI with TypeScript and client_credentials support","maintainers":[{"name":"flyinglimao","email":"hi@limaois.me"}],"readme":"# @0xlimao/traduora-cli\n\nA modern CLI and JavaScript SDK for [Traduora](https://docs.traduora.co/) with first-class `client_credentials` support.\n\n- CLI commands for project status, terms, translations, and exports\n- Interactive `init` flow to bootstrap credentials and default state\n- SDK package for scripting with both ESM and CommonJS\n- Docusaurus documentation with English, Traditional Chinese, Simplified Chinese, and Japanese\n\n## Table of Contents\n\n- [Highlights](#highlights)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [CLI Usage](#cli-usage)\n- [Configuration](#configuration)\n- [JavaScript SDK](#javascript-sdk)\n- [Documentation Site](#documentation-site)\n- [Development](#development)\n- [Testing](#testing)\n- [Release](#release)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Highlights\n\n- Uses term `value` as the user-facing key (instead of UUIDs)\n- Supports `client_credentials` as the default auth model\n- Supports interactive account login to create a project client automatically\n- Supports config file logic (`json/js/ts`) and environment variable fallback\n\n## Installation\n\n### From npm\n\n```bash\npnpm add @0xlimao/traduora-cli\n```\n\n### Global CLI install\n\n```bash\npnpm add -g @0xlimao/traduora-cli\n```\n\n### From source\n\n```bash\ngit clone https://github.com/flyinglimao/traduora-cli.git\ncd traduora-cli\npnpm install\npnpm build\n```\n\n## Quick Start\n\nInitialize interactively:\n\n```bash\ntraduora init\n```\n\nShow help:\n\n```bash\ntraduora --help\ntraduora project --help\ntraduora term --help\ntraduora translation --help\ntraduora export --help\n```\n\nTypical flow:\n\n```bash\ntraduora project status\ntraduora translation use en_GB\ntraduora term add form.email.required\ntraduora translation add --term form.email.required --value \"E-mail input is required\"\ntraduora export --format jsonnested --output ./i18n/en_GB.json\n```\n\n## CLI Usage\n\n### Init\n\n```bash\ntraduora init --help\n```\n\n`init` supports:\n\n- Input API credentials directly (`client_credentials`), then prompt for project ID\n- Login with account/password, select a project, then create a project client (`--role admin|editor|viewer`)\n\n### Project\n\n```bash\ntraduora project --help\ntraduora project status --help\n```\n\n`project` only provides `status`.\nIt always uses the current project from state/config.\n\nFor term/translation/export commands, project is resolved from `currentProjectId` in state.\n\n### Term\n\n```bash\ntraduora term --help\ntraduora term add --help\ntraduora term list --help\ntraduora term update --help\ntraduora term delete --help\n```\n\n### Translation\n\n```bash\ntraduora translation --help\ntraduora translation use --help\ntraduora translation add --help\ntraduora translation list --help\ntraduora translation update --help\ntraduora translation delete --help\n```\n\n### Export\n\n```bash\ntraduora export --help\n```\n\n## Configuration\n\nPriority order:\n\n1. Environment variables\n2. Config file\n3. CLI options\n\nSupported config files:\n\n- `traduora.config.json`\n- `traduora.config.ts`\n- `traduora.config.js`\n- `traduora.config.mjs`\n- `traduora.config.cjs`\n\nSupported environment variables:\n\n- `TRADUORA_BASE_URL`\n- `TRADUORA_GRANT_TYPE`\n- `TRADUORA_CLIENT_ID`\n- `TRADUORA_CLIENT_SECRET`\n- `TRADUORA_USERNAME`\n- `TRADUORA_PASSWORD`\n- `TRADUORA_ACCESS_TOKEN`\n\nState (`currentProjectId`, `currentLocale`) is stored in `.traduora.state.json`.\n\n## JavaScript SDK\n\n### ESM\n\n```ts\nimport { createApi } from \"@0xlimao/traduora-cli\";\n\nconst { api } = await createApi();\nconst terms = await api.listTerms(\"<projectId>\");\nconsole.log(terms);\n```\n\n### CommonJS\n\n```js\nconst { createApi } = require(\"@0xlimao/traduora-cli\");\n\n(async () => {\n  const { api } = await createApi();\n  const terms = await api.listTerms(\"<projectId>\");\n  console.log(terms);\n})();\n```\n\nFor full method details, see the SDK TypeScript Reference in the docs site.\n\n## Documentation Site\n\n- Production: <https://flyinglimao.github.io/traduora-cli/>\n- Source: `docs/`\n\nRun locally:\n\n```bash\ncd docs\npnpm install\npnpm start\n```\n\n## Development\n\n```bash\npnpm install\npnpm build\npnpm typecheck\npnpm dev -- --help\n```\n\n## Testing\n\nLocal Docker integration test (CLI + SDK against real Traduora instance):\n\n```bash\npnpm test:e2e:local\n```\n\nSee test instructions in `test/README.md`.\n\n## Release\n\n- npm publish is handled by GitHub Actions with npm Trusted Publishing (OIDC)\n- Docs are deployed to GitHub Pages by GitHub Actions\n\n## Contributing\n\nIssues and pull requests are welcome:\n\n- Issues: <https://github.com/flyinglimao/traduora-cli/issues>\n- Repository: <https://github.com/flyinglimao/traduora-cli>\n\n## License\n\nMIT. See `LICENSE`.\n","readmeFilename":"README.md"}