{"_id":"@fieldlyab/translator-cli","_rev":"16-5ea9a0fec00b33e6909f1fbce866200b","name":"@fieldlyab/translator-cli","dist-tags":{"latest":"0.12.1"},"versions":{"0.1.0":{"name":"@fieldlyab/translator-cli","version":"0.1.0","license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.1.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"a967c3ffced2c5e078acfc6f9bac22cb8bf66753","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.1.0.tgz","fileCount":3,"integrity":"sha512-JY3MYpk6vpm1tC0VqgDD9ifocdpMmoq2AwLWQjD2SHBfCccEcE1hYZe6d+Sj5He17lVDuO3cqw7TId4+qWdbPw==","signatures":[{"sig":"MEQCIC85p4U060+d/AJHYrpTbqC5VkM3z+Z+4l4bYEQNJDIkAiBBAbObEUNeAuv2ikhCB7MR0ZHqDQwQ/BGUiuE/XDGK3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39735},"type":"module","engines":{"node":">=18"},"gitHead":"b57139b65db4fec3e6bb83d1a86553c151d1cafc","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.1.0_1783871252924_0.0067138680262262","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@fieldlyab/translator-cli","version":"0.2.0","license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.2.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"1e4d79f963200bb530055c760353968a4924dbf4","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.2.0.tgz","fileCount":3,"integrity":"sha512-FmKrYE69KhHxJe6jkYdBsmhVgQNrefvetg+TCMB6J3LEg3rhj0IcwWuYiyCrj2ERamYt80lSlSS9GYRc28pqHg==","signatures":[{"sig":"MEYCIQCKGEF8Io/uorGJDVOeUQoi5y09UZsnzVOL2HEwyVRFOgIhAKA2Qwy1M0DA8NjNJFeeW+Cne5+bixC8NIM7ADb/pIIR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45931},"type":"module","engines":{"node":">=18"},"gitHead":"0a20456f1287e98421b1dbb514f8d63d34f0fc18","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.2.0_1784461457618_0.7213614557274308","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@fieldlyab/translator-cli","version":"0.2.1","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.2.1","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"46c9b9c01c7be818896a7f74fac9fc606a76f172","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.2.1.tgz","fileCount":3,"integrity":"sha512-yldfbRQYXE09VKDOnLAE/Q21EzvkvRv3pkPjn/35zPU/3Hx4H6TlVxZjV+lec5KJs/Bhcv211W3CjoSzWEYE0g==","signatures":[{"sig":"MEUCIQCDFcZnoWseuddWw/Sx2Wjstgl4f7BfgpxA2CWa245+jwIgDG85u53LN6Cbb1Bouo/wcpGxzJbNBo9H+3CBSuhM+Ww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51057},"type":"module","engines":{"node":">=18"},"gitHead":"c4fb89046e28970cbffcd25ce555144513b53755","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.2.1_1784479283793_0.06990005965181756","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@fieldlyab/translator-cli","version":"0.2.2","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.2.2","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"e3e3effa1ed5c41b9333e9813d0067c54f8879c9","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.2.2.tgz","fileCount":3,"integrity":"sha512-Zt5//W8kr4OmlDqKv7R5UZmqN5iF20wuzbhAUJRnfrPrlFrceks6m+uAIy6ZoSYQJVg6GnEQqPagV0j92D4xuw==","signatures":[{"sig":"MEUCIC+x0mKIFI6bQXynQyRNYh8IGxC3Y4F8ZIG3WfICQsmJAiEAlItfc40d7UZaQf94R4IApkfJ6IfAQjy3fsTeOjG/PDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50779},"type":"module","engines":{"node":">=18"},"gitHead":"9ba4696fb8cb5237ad673533dd695875b08c8ed6","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.2.2_1784483712773_0.11884056105634078","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@fieldlyab/translator-cli","version":"0.2.3","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.2.3","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"4f171222add9dc2d3ff3ff0e906a411a8ae10350","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.2.3.tgz","fileCount":3,"integrity":"sha512-B4rn9Bw+HGnGTQwR28894794X/lU4X/62FSPKdFjiDJrUJG3fJkAlTZEgZo8lKYSxCkYQA+a0dM154GYOvCbOg==","signatures":[{"sig":"MEUCIQCuohlL3Nr+2xk1c5RU5qc6Nbuz6JvSZp7MhXTV/Vm3DAIgCs9DspDdGvK5dK50oMJ8zpkHKcuLGpeTaHvRU1kep8s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51057},"type":"module","engines":{"node":">=18"},"gitHead":"c53aa8c829ca74c99a069c4ee05c7549c6a24674","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.2.3_1784486297448_0.6505615290944926","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@fieldlyab/translator-cli","version":"0.3.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.3.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"24054c437ce8d9f2dcb1dd3473f85b00c7e05e5b","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.3.0.tgz","fileCount":3,"integrity":"sha512-Dk0hPaoZKHW4U7vd5FvJ/0P1+IPpHEJQzQoCjv1yh0pizH3XoPwoFF7Kc5OnQViM/KtF51pxg0fnS2OQ6qfdrw==","signatures":[{"sig":"MEYCIQDkFBYePE8XovyrSvza+ujoG4NLw+on7kJnWOubQXci4wIhAP/sQ3WvYIVc3+UkxzjRS4oLEoSi518WPkW554gwsfFv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51721},"type":"module","engines":{"node":">=18"},"gitHead":"f310a875831965282063b574cf42cfc70b24e8f2","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.3.0_1784528949073_0.6724939669942633","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@fieldlyab/translator-cli","version":"0.3.1","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.3.1","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"d3220aa8e7394ef988d829a9a604d159a2156f5a","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.3.1.tgz","fileCount":3,"integrity":"sha512-lcrrAOKk2zFQg+lPHywHw6EZp21ewHh3Mv6coZ3xxJlgeLf657Ko6dTN6bUlkyE+bdg4a240iEPPE5ftgtb7pw==","signatures":[{"sig":"MEYCIQDTTAvMrsWKxfSooGwwXgrYgQVJ7AINBhrnbUg/wVANOgIhAPQQBEEKfYdEHultBuFSxYj5EvQ2RS9odZoOcx+D4+Jr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52228},"type":"module","engines":{"node":">=18"},"gitHead":"300940fb39eed4956d91a5b286d995073aaf8966","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.3.1_1785496081965_0.1384794279593209","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@fieldlyab/translator-cli","version":"0.4.1","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.4.1","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"ac112cb804bc972ff17f41367cc6bae1c388027b","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.4.1.tgz","fileCount":3,"integrity":"sha512-ao3WOFV0RQiuxlqxf9U+jhHd7F9Uo4MN0l7GYCM6ApaVJ4p+d5TNJqmeM+llvnfyTeAHDpEmLAPeo0mikHJfqQ==","signatures":[{"sig":"MEUCIEOTBhSq+mPD4cLSeMfgNgFTQ0YztLvP/ce0412Z8XUlAiEApQLYHi8n1s3gJAmjv4w33EYvWhdXfsGV01mPjdKtBVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55101},"type":"module","engines":{"node":">=18"},"gitHead":"a4a72c6cd169182ee7ebbe5d9b477f1626147e87","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.4.1_1785503945370_0.19320674507251634","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@fieldlyab/translator-cli","version":"0.5.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.5.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"2440fef6588e03a7c682a5d26d5cd7ab9fad09b9","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.5.0.tgz","fileCount":3,"integrity":"sha512-taXw0TGdAf21n4fWswVmtP3N/FLDRq/tSoB0oBIGa3zHV/ia9D5bZWCYSD61/Cu9M+DYkj4wWwYgll8bYFElog==","signatures":[{"sig":"MEYCIQCn7LIiHmPmctAEZREf1IK8DC9D2DqR65CmaG5f1ukS7QIhALN1sahacd84cL621N7cWLTZNs9lzDpLMn+l6Tk8jLay","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58603},"type":"module","engines":{"node":">=18"},"gitHead":"6f3cb9ab5c0f809487c3d34d3984b03d59558ee4","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.5.0_1785582401805_0.1737252412207939","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@fieldlyab/translator-cli","version":"0.6.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.6.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"3e75946724b6dae97cc2fee302468ecadb58ebc6","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.6.0.tgz","fileCount":3,"integrity":"sha512-pXwq2fRee4C10HRq472zI4AWUR6faQ85yHky3JZzeR3riPzLWh2qiLfse4uAxpYJr69GXqDMCR3G4dgiQE+EFA==","signatures":[{"sig":"MEYCIQCsUFxhdrhFUXmHqxKtBbxsh3GC4q1BwiPFQyx+EfmqZAIhAIKotBNA9qP38acFrCEVvDuaoYdm5EHRHtH1VveHVOVU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64037},"type":"module","engines":{"node":">=18"},"gitHead":"cfb43f0b44eab7fc5c9447964d30d6d48e57c01a","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.6.0_1785584841973_0.600431216053265","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@fieldlyab/translator-cli","version":"0.8.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.8.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"9224c4426f46ed3ca8b34f3d68586e7ca76c0e61","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.8.0.tgz","fileCount":3,"integrity":"sha512-3xw+2a51ZfUUbbSqjm5BnByCGDz5UEt1P1QU9GPHqDS7DbZ9tYim8L582cuh8qhmcTKghVF2I0aNV2iGS9AIsw==","signatures":[{"sig":"MEUCIQC+RN1qBJpUuOVu06UeIVOM8gpOCasHJDcBNYjOPVsCUAIgHyDRchbaM1QuoxADmuvEqlkuLVyXxSGs3sv42xLrStw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71250},"type":"module","engines":{"node":">=18"},"gitHead":"35ab938d1416d98a880c28e4b6accfe27c8691ea","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.8.0_1786447256856_0.5013281317148357","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@fieldlyab/translator-cli","version":"0.9.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.9.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"e4f23fe0f2046d55a333bfd4d5c35670bc6637fb","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.9.0.tgz","fileCount":3,"integrity":"sha512-rKdPwnAVJTxNtQmhR0PZv5dHDPyZx6fEVfJR8q2lzJZZAMsqyrIR220jh8NhXEuEGTHC4P4jKnAG8xq31WDf5g==","signatures":[{"sig":"MEUCIQDMEV9b7XQn4BjBt+8VMEiaykb7NERfIhQabchOGvR0UwIgJsOAeCyDX+LjiLjXyQdDDKI1TvWXzwQ9SLrq81Z4tDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73731},"type":"module","engines":{"node":">=18"},"gitHead":"d0452b64ca6e8026fc736d7e834ad146c42ba44b","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.9.0_1786449088272_0.5175910142207798","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@fieldlyab/translator-cli","version":"0.11.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.11.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"37a2afda613e45f49a5df925d67bebd92baf56f6","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.11.0.tgz","fileCount":3,"integrity":"sha512-drFPiSySyFNHeaaawiWj/n5LccplMM/ASsZZXUZd6sL7DLtqpKWl2tbqY2kmP1mlTybHnOi7DeCSwX3KeevTKA==","signatures":[{"sig":"MEYCIQDnx6nrFyvmvx5XiuZBYnCLUfOA1PpFeVOxePhIUrfqFQIhALadn+WPxy5kflQvUlNOO2xCjT9MnXMUDEowUnL/XyM+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74918},"type":"module","engines":{"node":">=18"},"gitHead":"feb8a7cbd5e5e01dd48184aed00b475532abe210","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.11.0_1787474560927_0.4573142989111494","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@fieldlyab/translator-cli","version":"0.11.1","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.11.1","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"d4ba105422d12718e5502bb4ee47a8aa36b3f980","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.11.1.tgz","fileCount":3,"integrity":"sha512-AkVp0EqwUWZvjuKhKmtJxRJel8DqTdphlRuFY9RVqDfOnqyZllsMKSAUGqomYDP/mYa6zwlBCH8p+CeIG2x58A==","signatures":[{"sig":"MEUCIAORLctAeTy6Gvn4p0j3J2yhjJPRsqVOtU4tNB7gV8CXAiEAq+7kCNM7GjuIjpAKcLiMrKecKTdE6s0RB8eDDbFZakg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76293},"type":"module","engines":{"node":">=18"},"gitHead":"1dca7122113c37616205917ee4ae6f19f6337317","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.11.1_1787545694742_0.8467897738055601","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@fieldlyab/translator-cli","version":"0.12.0","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"license":"UNLICENSED","_id":"@fieldlyab/translator-cli@0.12.0","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"homepage":"https://ft.fieldly.com","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"dist":{"shasum":"ff1b7f1a3a492ed584d409fc5db5ad78e313a42e","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.12.0.tgz","fileCount":3,"integrity":"sha512-pxyFibYST7ySQ1QzAMSlOrJfU3nVAeYrztADO+R1RLznZ4PJJXIoSBRG1tehUG5xUpk2Yuscfp2QzcRbE9yZ0Q==","signatures":[{"sig":"MEYCIQCt5/EUrwCJ2+euxFT5wRirVQnSiHITIdakggHmXUukgwIhAP1MtU9GJfCYXFei1RGqmzK9baPN4fE38o8PEwaYkG3x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82748},"type":"module","engines":{"node":">=18"},"gitHead":"4142c92463cc94fa0a2223875857dd4d519464e7","private":false,"scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup src/index.ts --format esm --target node18 --clean","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"overrides":{"esbuild":"^0.28.1"},"_npmVersion":"11.13.0","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"yaml":"^2.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^4.1.9","typescript":"^5.6.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/translator-cli_0.12.0_1787916149451_0.5744026148959169","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@fieldlyab/translator-cli","version":"0.12.1","description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","homepage":"https://ft.fieldly.com","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"type":"module","bin":{"ft":"dist/index.js","fieldly-translator":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsup src/index.ts --format esm --target node18 --clean","dev":"tsx src/index.ts","test":"vitest run","test:coverage":"vitest run --coverage","test:ci":"vitest run --coverage","typecheck":"tsc --noEmit"},"dependencies":{"yaml":"^2.5.0"},"devDependencies":{"@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9","tsup":"^8.3.0","tsx":"^4.19.0","typescript":"^5.6.0","vitest":"^4.1.9"},"overrides":{"esbuild":"^0.28.1"},"license":"UNLICENSED","private":false,"publishConfig":{"access":"public"},"gitHead":"7e43f956505facdc119469a50e0b1661d2ca9690","_id":"@fieldlyab/translator-cli@0.12.1","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-SLJGCkypUHGaRPYHdMzeBzFolwsxQvgj7AK3zpNXk3IHJa3CwiSHhi8G67gx0FyFGmGTLw9dXIJvrYww8gQgWw==","shasum":"32941be6adf1048eddcb2ae7c74b86ed34f389e9","tarball":"https://registry.npmjs.org/@fieldlyab/translator-cli/-/translator-cli-0.12.1.tgz","fileCount":3,"unpackedSize":83604,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8zdM6+jzw4j6/qDpJeBKJebT/VMG57kbqOxLLRX0zdgIgQ1JoQxteRWIft7TRcTO/3VtKC0CBxnKIJ+234OQ1vzs="}]},"_npmUser":{"name":"znitz","email":"lars@fieldly.com"},"directories":{},"maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/translator-cli_0.12.1_1787988818435_0.28300147887423144"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-12T15:47:32.785Z","modified":"2026-08-29T07:33:38.750Z","0.1.0":"2026-07-12T15:47:33.045Z","0.2.0":"2026-07-19T11:44:17.759Z","0.2.1":"2026-07-19T16:41:23.915Z","0.2.2":"2026-07-19T17:55:12.909Z","0.2.3":"2026-07-19T18:38:17.571Z","0.3.0":"2026-07-20T06:29:09.228Z","0.3.1":"2026-07-31T11:08:02.095Z","0.4.1":"2026-07-31T13:19:05.521Z","0.5.0":"2026-08-01T11:06:41.944Z","0.6.0":"2026-08-01T11:47:22.111Z","0.8.0":"2026-08-11T11:20:57.001Z","0.9.0":"2026-08-11T11:51:28.479Z","0.11.0":"2026-08-23T08:42:41.089Z","0.11.1":"2026-08-24T04:28:14.867Z","0.12.0":"2026-08-28T11:22:29.590Z","0.12.1":"2026-08-29T07:33:38.569Z"},"license":"UNLICENSED","homepage":"https://ft.fieldly.com","keywords":["fieldly","translator","i18n","l10n","localization","translation","cli"],"description":"Fieldly Translator developer CLI (ft) — push/pull/status translations between repos and Fieldly Translator.","maintainers":[{"name":"znitz","email":"lars@fieldly.com"}],"readme":"# `ft` — Fieldly Translator CLI\n\nA thin command-line transport between your repo's translation files and Fieldly\nTranslator (FT). It **does not parse translation formats** — it reads raw files\nat configured paths and POSTs/GETs them; FT's server-side engine handles every\nformat (Rails YAML, ngx-translate/Transloco JSON, Android XML, iOS\nstrings/stringsdict/xcstrings).\n\nCross-platform (macOS / Windows / Linux) via Node ≥ 18.\n\n**Fieldly Translator:** [ft.fieldly.com](https://ft.fieldly.com)\n\n## Install\n\n```\nnpm install -g @fieldlyab/translator-cli\n```\n\nor run without installing:\n\n```\nnpx @fieldlyab/translator-cli login\n```\n\nThe binary is exposed as both `ft` and `fieldly-translator`.\n\n## Requirements\n\nFieldly Translator is **invite-only for now** — there is no self-service\nsign-up yet, so installing this CLI on its own does not grant access. You need\nan existing Fieldly Translator account that an admin, from Fieldly, has added.\nIf you don't have access, contact your Fieldly Translator administrator.\n\nRun `ft` from a repo that has a `fieldly-translator.yml` file at its root.\n\n## Commands\n\n```\nft login   [--token [T]] [--host URL]              sign in via browser SSO, or paste a token\nft push    [--locales L] [--branch B] [--force] [--dry-run]  send new/changed source+authored keys up\nft pull    [--locales L] [--branch B] [--release V] [--force] [--dry-run]  write FT-owned target locales\nft status  [--branch B] [--locales L] [--min-status S]  report completeness; non-zero exit gates CI\nft get     KEY [--locale L] [--namespace N]         fetch a single key\nft set     KEY code=\"text\" [...] [--branch B] [--namespace N] [--status S] [--no-write|--write]  hand-fill locale values on a key\nft create  KEY \"Source\" [code=\"text\" ...] [--branch B] [--namespace N] [--description D] [--status S] [--no-write|--write] [--wait]  create a key with source + values\nft config  push | check                             apply this repo's locale roles to FT, or report drift\nft init    PROJECT [--force]                        write a fieldly-translator.yml from the project\nft request [--locales L] [--all]                    trigger translations for missing targets\n\nft --version | -v                                   print the ft version\nft --help    | -h                                   show usage\n```\n\nA flag this list does not name is a **usage error** (exit 2), never something\n`ft` drops on the floor — the closest real flag is suggested. Before 0.12.0 an\nunrecognised flag was accepted and ignored, so `ft pull --brnach x` quietly\npulled live head and `ft pull --dry-runn` quietly *wrote* your locale files.\n`--flag=value` works the same as `--flag value`, and a boolean flag no longer\nswallows the word after it.\n\nThe CLI sends `User-Agent: ft/<version>` on every request, and the server answers\nwith the oldest version it considers safe. If yours is below it, `ft` prints a\nwarning to stderr naming what is at risk — once per run, never changing the exit\ncode, and never blocking the command. The floor moves only when an older CLI\nwould corrupt a repo or lose data, not for new features.\n\nRun `ft <command> --help` for the full option list.\n\n## Working on a feature branch\n\nName your branch and the strings a feature adds stay out of everyone else's way\nuntil it ships:\n\n```bash\nft push --branch fp-1234-new-quotes     # new keys are STAGED on that branch\nft create checkout.title \"Checkout\" --branch fp-1234-new-quotes\nft pull --branch fp-1234-new-quotes     # main + branch: your branch's strings included\nft status --branch fp-1234-new-quotes   # gate CI on just this feature's strings\n```\n\nA key **born** under `--branch` is staged: stored in FT, translated by AI and\nreviewed as usual, but absent from `ft pull` on main, from exports, and from\ncompleteness — until someone merges the branch in FT, which promotes it to live.\nSo a delayed feature is just an unmerged branch, and no half-finished wording\nleaks into production.\n\n`ft pull --branch B` is the developer's view of that: live head **plus** B's\nstaged keys, with B's staged edits overriding head values — everything the merge\nwill produce. A plain `ft pull` stays pure live head. `--branch` and `--release`\nare mutually exclusive: a release is an immutable snapshot.\n\nNaming a branch FT has never heard of does **not** fail the pull — \"main +\nbranch\" where the branch contributes nothing is just live head, so\n`ft pull --branch $(git branch --show-current)` is safe in a script on a branch\nthat has not staged a key yet. It warns and names the branch you meant, so a\ntypo is still obvious rather than quietly handing you head:\n\n```\nBranch \"fp-4048-quotes-calclation\" is not in FT — pulling live head only.\n  Did you mean \"fp-4048-quotes-calculation\"?\n```\n\nThe match runs server-side across every open branch, so it finds the one you\nmeant however long ago it was pushed. When nothing is close enough to be a\ntypo, no guess is offered and the project's open branches are listed instead.\n\n`ft status --branch` is stricter and still **fails** on an unknown branch: its\nfallback would be a gate over zero keys, which passes CI green for a branch\nnobody checked. It names the branch you meant too, so the failure tells you\nwhat to fix.\n\nWriting a value to a key that **already exists** on live (`ft set --branch`,\nor `ft push --branch` over unchanged keys) is not staging — the value goes live\nimmediately and the branch is recorded for reporting, so `ft status --branch`\nand the GitHub PR check cover it.\n\nHand-filled target values land as `needs_review` by default; `--status` is\nhonored when you're signed in via SSO and have editor rights on the locale.\nAI fill (`ft request`) only ever fills missing values, so it never overwrites\nwhat you set.\n\nBoth commands also update the mapped local files (skip with `--no-write`):\ntarget files are re-exported like a scoped `ft pull`, while the repo-owned\nsource file gets just the new key spliced in — your unpushed source edits\nsurvive. YAML/JSON formats only for now.\n\nHow much of that you want is a setting, because the two halves cost very\ndifferently — the splice is local and instant, the target re-export is one\nrequest per (locale, file block), so a batch of `ft create`s spends most of its\ntime re-downloading catalogues:\n\n```yaml\nlocal_write: all        # all (default) | authored | off\n```\n\n`authored` keeps the splice and leaves target files to your next `ft pull`;\n`off` writes nothing. Per run, `--no-write` means `off` and `--write` means\n`all`, whatever the file says.\n\n`ft pull` (and the target half of the local write) **merges** rather than\noverwriting: entries FT cannot store — Rails' `date.day_names`, `number.format.\nprecision`, and anything else the import reported as a skipped non-string value —\nare kept in the file. FT still wins on every key it holds, so a key FT dropped\nstill disappears, and a file with nothing to preserve is written exactly as\nexported.\n\n## Configuration\n\nA single `fieldly-translator.yml` at the repo root declares the FT project, the\nlocale roles (source / authored / target), and the translation file paths per\nplatform and app.\n\nWhen a repo's filenames disagree with FT's canonical locale code — Rails writes\n`en_au.yml`, FT stores the BCP-47 `en-AU` — map them per format block:\n\n```yaml\ntargets: [en-AU]                   # the CANONICAL code\nformats:\n  - platform: rails\n    format: rails-yaml\n    path: config/locales/{locale}.yml\n    locale_map:\n      en-AU: en_au                 # canonical -> on-disk filename\n```\n\n`locale_map` changes the **filename only**, never the file contents. Declaring\nthe on-disk spelling in `targets:` instead creates a second locale in FT, and the\ntwo then split the same language's translations between them.\n","readmeFilename":"README.md"}