{"_id":"@autotranslate/typescript-plugin","_rev":"4-35149c6e5b4f1a71a5209c39a3bfa78e","name":"@autotranslate/typescript-plugin","dist-tags":{"beta":"1.0.0-beta.2","latest":"1.0.0-beta.2"},"versions":{"1.0.0-beta.0":{"name":"@autotranslate/typescript-plugin","version":"1.0.0-beta.0","keywords":["i18n","typescript","tsserver","language-service-plugin","translation"],"author":{"name":"Tamim Bin Hakim","email":"tamimbinhakim.work@gmail.com"},"license":"MIT","_id":"@autotranslate/typescript-plugin@1.0.0-beta.0","maintainers":[{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"}],"homepage":"https://github.com/tamimbinhakim/autotranslate/tree/main/packages/typescript-plugin#readme","bugs":{"url":"https://github.com/tamimbinhakim/autotranslate/issues"},"dist":{"shasum":"7b11a9342c610f1771663fc114efddc45666b594","tarball":"https://registry.npmjs.org/@autotranslate/typescript-plugin/-/typescript-plugin-1.0.0-beta.0.tgz","fileCount":7,"integrity":"sha512-E27Cakstq3Nr8hOUTf8izqHnfDiXjFWbs6xJGKFx49Vvw9n/+HG1ETh55+RvgT7/ZXu+2X8yL8T+/IfF13+RjQ==","signatures":[{"sig":"MEQCIGoKG1Akao6+tjovmPA05/2TYfkz1qv6O5aubCq3tSqrAiBSbF2qLhCfMp293bp/pQcAxyijAzNtZUrlt/y5yXwa5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22435},"main":"./dist/index.js","_from":"file:autotranslate-typescript-plugin-1.0.0-beta.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist .turbo *.tsbuildinfo","test:ci":"vitest run --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"},"_resolved":"/private/var/folders/_c/ykfq1m6969q998tywrcbmphc0000gn/T/9ff34bcb77efa4ff1b1611a9c1a3fa6e/autotranslate-typescript-plugin-1.0.0-beta.0.tgz","_integrity":"sha512-E27Cakstq3Nr8hOUTf8izqHnfDiXjFWbs6xJGKFx49Vvw9n/+HG1ETh55+RvgT7/ZXu+2X8yL8T+/IfF13+RjQ==","repository":{"url":"git+https://github.com/tamimbinhakim/autotranslate.git","type":"git","directory":"packages/typescript-plugin"},"_npmVersion":"11.12.1","description":"TypeScript Language Service plugin: warns when t('literal') keys are missing from the source catalog.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^4.1.5","typescript":"^5.7.2","@types/node":"^25.6.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/typescript-plugin_1.0.0-beta.0_1777385362689_0.8892426492332703","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.1":{"name":"@autotranslate/typescript-plugin","version":"1.0.0-beta.1","keywords":["i18n","typescript","tsserver","language-service-plugin","translation"],"author":{"name":"Tamim Bin Hakim","email":"tamimbinhakim.work@gmail.com"},"license":"MIT","_id":"@autotranslate/typescript-plugin@1.0.0-beta.1","maintainers":[{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"}],"homepage":"https://github.com/tamimbinhakim/autotranslate/tree/main/packages/typescript-plugin#readme","bugs":{"url":"https://github.com/tamimbinhakim/autotranslate/issues"},"dist":{"shasum":"9d446ed09c1b2af0cbf4c18bcc521850c79ea729","tarball":"https://registry.npmjs.org/@autotranslate/typescript-plugin/-/typescript-plugin-1.0.0-beta.1.tgz","fileCount":7,"integrity":"sha512-/hncbbLdwX+Q7oZ5B2ee8b3wxaZQr4warFuLWeLzaoISCHD5D6JWHjBSC/gwAw/sdjEvtG5cpWTOCU1c1ZXRxw==","signatures":[{"sig":"MEUCICTlP9uyNwcVEV6bBFtz0MdeOzlRDr5ER9j/zvcgmSgNAiEA8XKPpeLSCcudvMJirGzNnvuFJYaeSZKPQLpKgSDHuk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26795},"main":"./dist/index.js","_from":"file:autotranslate-typescript-plugin-1.0.0-beta.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist .turbo *.tsbuildinfo","test:ci":"vitest run --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"},"_resolved":"/private/var/folders/_c/ykfq1m6969q998tywrcbmphc0000gn/T/08bd223cd89b7a18f946fa5f4fb4c027/autotranslate-typescript-plugin-1.0.0-beta.1.tgz","_integrity":"sha512-/hncbbLdwX+Q7oZ5B2ee8b3wxaZQr4warFuLWeLzaoISCHD5D6JWHjBSC/gwAw/sdjEvtG5cpWTOCU1c1ZXRxw==","repository":{"url":"git+https://github.com/tamimbinhakim/autotranslate.git","type":"git","directory":"packages/typescript-plugin"},"_npmVersion":"11.12.1","description":"TypeScript Language Service plugin: warns when t('literal') keys are missing from the source catalog.","directories":{},"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.3.5","vitest":"^4.1.5","typescript":"^5.7.2","@types/node":"^25.6.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/typescript-plugin_1.0.0-beta.1_1777440871770_0.058646539455071256","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"@autotranslate/typescript-plugin","version":"1.0.0-beta.2","keywords":["i18n","typescript","tsserver","language-service-plugin","translation"],"author":{"name":"Tamim Bin Hakim","email":"tamimbinhakim.work@gmail.com"},"license":"MIT","_id":"@autotranslate/typescript-plugin@1.0.0-beta.2","maintainers":[{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"}],"homepage":"https://github.com/ruwadgroup/autotranslate/tree/main/packages/typescript-plugin#readme","bugs":{"url":"https://github.com/ruwadgroup/autotranslate/issues"},"dist":{"shasum":"c8e1f3c026d93fd49cfa3861cb25ee9c1219b499","tarball":"https://registry.npmjs.org/@autotranslate/typescript-plugin/-/typescript-plugin-1.0.0-beta.2.tgz","fileCount":6,"integrity":"sha512-QbS8n/vZ9hTdUs3K/ImKFprVGRbumrmVKg9z63df90mS84ofNBlXjxGvwJKjLmkfTrn4NLaTlur3ob3tSF3MXw==","signatures":[{"sig":"MEQCIGg/seWgLzYxlzlcpaqASmlCF3DowmFjh4CXCQUk/2/MAiBX0PWhpvmuOXPYiMPmqgg+uBg2+ustnJ06KcjtVHEHgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autotranslate%2ftypescript-plugin@1.0.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38866},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"gitHead":"8d1d7bdda27c8e09be22f6bcf83e0666af54e6bb","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","clean":"rm -rf dist .turbo *.tsbuildinfo","test:ci":"vitest run --passWithNoTests","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12214cc7-4507-4481-9b00-6ee14ee58da3"}},"repository":{"url":"git+https://github.com/ruwadgroup/autotranslate.git","type":"git","directory":"packages/typescript-plugin"},"_npmVersion":"11.16.0","description":"TypeScript Language Service plugin: warns when t('literal') keys are missing from the source catalog.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.1.9","typescript":"^5.9.3","@types/node":"^26.1.0"},"peerDependencies":{"typescript":">=5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/typescript-plugin_1.0.0-beta.2_1784036431384_0.8558550355818846","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-28T14:09:22.599Z","modified":"2026-07-14T13:45:49.339Z","1.0.0-beta.0":"2026-04-28T14:09:22.828Z","1.0.0-beta.1":"2026-04-29T05:34:31.912Z","1.0.0-beta.2":"2026-07-14T13:40:31.549Z"},"bugs":{"url":"https://github.com/ruwadgroup/autotranslate/issues"},"author":{"name":"Tamim Bin Hakim","email":"tamimbinhakim.work@gmail.com"},"license":"MIT","homepage":"https://github.com/ruwadgroup/autotranslate/tree/main/packages/typescript-plugin#readme","keywords":["i18n","typescript","tsserver","language-service-plugin","translation"],"repository":{"url":"git+https://github.com/ruwadgroup/autotranslate.git","type":"git","directory":"packages/typescript-plugin"},"description":"TypeScript Language Service plugin: warns when t('literal') keys are missing from the source catalog.","maintainers":[{"name":"tamimbinhakim","email":"tamimbinhakim.work@gmail.com"}],"readme":"# @autotranslate/typescript-plugin\n\nTypeScript Language Service plugin. Editor-time warning when `t('literal')` is\ncalled with a key that isn't in the source-locale catalog yet.\n\n```\nYou have not run `extract` yet on this string.\n   t('Sign ouy')   ←  highlighted in the editor\n```\n\nThe same check runs on `<T>` blocks via the eslint plugin. This package covers\nthe string side - `useT()` and standalone `t()` - and runs in real time as you\ntype.\n\n## Install\n\n```bash\npnpm add -D @autotranslate/typescript-plugin\n```\n\nAdd to `tsconfig.json`:\n\n```json\n{\n  \"compilerOptions\": {\n    \"plugins\": [{ \"name\": \"@autotranslate/typescript-plugin\" }]\n  }\n}\n```\n\nIn VS Code, run **TypeScript: Select TypeScript Version → Use Workspace\nVersion** so the plugin is loaded by the workspace's `tsserver`. JetBrains IDEs\npick it up automatically.\n\n## Config\n\n```json\n{\n  \"compilerOptions\": {\n    \"plugins\": [\n      {\n        \"name\": \"@autotranslate/typescript-plugin\",\n        \"outDir\": \".translations\",\n        \"source\": \"en\",\n        \"severity\": \"warning\",\n        \"locale\": \"fr\"\n      }\n    ]\n  }\n}\n```\n\n| option     | default                     | meaning                                            |\n| ---------- | --------------------------- | -------------------------------------------------- |\n| `outDir`   | `.translations`             | catalog root, relative to project root             |\n| `source`   | `en`                        | source-locale folder name                          |\n| `severity` | `warning`                   | `error` / `warning` / `suggestion`                 |\n| `locale`   | first non-source locale dir | locale whose translations are shown as inlay hints |\n\n## What it tracks\n\nImports from `@autotranslate/react`, `@autotranslate/core/t`, and\n`@autotranslate/core/standalone`:\n\n```tsx\nimport { useT } from '@autotranslate/react';\nconst t = useT();\nt('Sign out'); // ← checked\n```\n\n```tsx\nimport { t } from '@autotranslate/core/t';\nt('Welcome'); // ← checked\n```\n\nIt follows aliasing (`const x = useT()`) and skips literals beginning with `t.`\n(legacy dotted-path guard).\n\n## What it does not do\n\n- **No type generation.** Run `autotranslate generate-types` for the typed\n  `Catalog` keys. The plugin is for keys that don't exist yet, before they're\n  extracted.\n- **No JSX `<T>` checking.** That lives in\n  [`@autotranslate/eslint-plugin`](../eslint-plugin) where the rule\n  infrastructure is friendlier.\n- **No quick-fix yet.** Future versions may add a \"run extract\" code action.\n","readmeFilename":"README.md"}