@katerynakhar/i18n-keeper 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +666 -0
  3. package/dist/apply.d.ts +66 -0
  4. package/dist/apply.js +254 -0
  5. package/dist/apply.js.map +1 -0
  6. package/dist/check.d.ts +5 -0
  7. package/dist/check.js +326 -0
  8. package/dist/check.js.map +1 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +525 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/formats/error.d.ts +12 -0
  13. package/dist/formats/error.js +19 -0
  14. package/dist/formats/error.js.map +1 -0
  15. package/dist/formats/flatten.d.ts +6 -0
  16. package/dist/formats/flatten.js +26 -0
  17. package/dist/formats/flatten.js.map +1 -0
  18. package/dist/formats/json-write.d.ts +7 -0
  19. package/dist/formats/json-write.js +55 -0
  20. package/dist/formats/json-write.js.map +1 -0
  21. package/dist/formats/json.d.ts +6 -0
  22. package/dist/formats/json.js +21 -0
  23. package/dist/formats/json.js.map +1 -0
  24. package/dist/formats/php-write.d.ts +16 -0
  25. package/dist/formats/php-write.js +130 -0
  26. package/dist/formats/php-write.js.map +1 -0
  27. package/dist/formats/php.d.ts +44 -0
  28. package/dist/formats/php.js +356 -0
  29. package/dist/formats/php.js.map +1 -0
  30. package/dist/formats/po-write.d.ts +3 -0
  31. package/dist/formats/po-write.js +200 -0
  32. package/dist/formats/po-write.js.map +1 -0
  33. package/dist/formats/po.d.ts +30 -0
  34. package/dist/formats/po.js +202 -0
  35. package/dist/formats/po.js.map +1 -0
  36. package/dist/formats/write.d.ts +29 -0
  37. package/dist/formats/write.js +19 -0
  38. package/dist/formats/write.js.map +1 -0
  39. package/dist/formats/yaml-write.d.ts +12 -0
  40. package/dist/formats/yaml-write.js +42 -0
  41. package/dist/formats/yaml-write.js.map +1 -0
  42. package/dist/formats/yaml.d.ts +18 -0
  43. package/dist/formats/yaml.js +51 -0
  44. package/dist/formats/yaml.js.map +1 -0
  45. package/dist/glossary.d.ts +38 -0
  46. package/dist/glossary.js +140 -0
  47. package/dist/glossary.js.map +1 -0
  48. package/dist/lengths.d.ts +37 -0
  49. package/dist/lengths.js +195 -0
  50. package/dist/lengths.js.map +1 -0
  51. package/dist/mcp.d.ts +2 -0
  52. package/dist/mcp.js +374 -0
  53. package/dist/mcp.js.map +1 -0
  54. package/dist/memory.d.ts +72 -0
  55. package/dist/memory.js +162 -0
  56. package/dist/memory.js.map +1 -0
  57. package/dist/placeholders.d.ts +15 -0
  58. package/dist/placeholders.js +103 -0
  59. package/dist/placeholders.js.map +1 -0
  60. package/dist/plurals.d.ts +59 -0
  61. package/dist/plurals.js +280 -0
  62. package/dist/plurals.js.map +1 -0
  63. package/dist/report.d.ts +2 -0
  64. package/dist/report.js +126 -0
  65. package/dist/report.js.map +1 -0
  66. package/dist/scan.d.ts +23 -0
  67. package/dist/scan.js +250 -0
  68. package/dist/scan.js.map +1 -0
  69. package/dist/translate.d.ts +93 -0
  70. package/dist/translate.js +369 -0
  71. package/dist/translate.js.map +1 -0
  72. package/dist/types.d.ts +88 -0
  73. package/dist/types.js +50 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/version.d.ts +1 -0
  76. package/dist/version.js +28 -0
  77. package/dist/version.js.map +1 -0
  78. package/package.json +77 -0
  79. package/src/apply.ts +334 -0
  80. package/src/check.ts +468 -0
  81. package/src/cli.ts +637 -0
  82. package/src/formats/error.ts +19 -0
  83. package/src/formats/flatten.ts +38 -0
  84. package/src/formats/json-write.ts +66 -0
  85. package/src/formats/json.ts +27 -0
  86. package/src/formats/php-write.ts +146 -0
  87. package/src/formats/php.ts +414 -0
  88. package/src/formats/po-write.ts +230 -0
  89. package/src/formats/po.ts +233 -0
  90. package/src/formats/write.ts +41 -0
  91. package/src/formats/yaml-write.ts +53 -0
  92. package/src/formats/yaml.ts +62 -0
  93. package/src/glossary.ts +191 -0
  94. package/src/lengths.ts +214 -0
  95. package/src/mcp.ts +451 -0
  96. package/src/memory.ts +227 -0
  97. package/src/placeholders.ts +123 -0
  98. package/src/plurals.ts +320 -0
  99. package/src/report.ts +162 -0
  100. package/src/scan.ts +280 -0
  101. package/src/translate.ts +486 -0
  102. package/src/types.ts +136 -0
  103. package/src/version.ts +27 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,GAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,GAEd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,EAAe,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,iBAAiB,GAElB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGtD,MAAM,UAAU,GAAG,QAAQ,CAAC;AAE5B,2EAA2E;AAC3E,MAAM,YAAY,GAAG,eAAe,CAAC;AAErC,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,SAAS,IAAI,CACX,QAAmB,EACnB,MAAc,EACd,IAAY,EACZ,MAAc,EACd,GAAW,EACX,IAAY,EACZ,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,IAAI,CAAC,UAA4B;IACxC,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,sFAAsF;AACtF,SAAS,kBAAkB,CACzB,MAAc,EACd,QAAmB,EACnB,MAAc,EACd,UAA8B,EAC9B,GAAW,EACX,IAAY,EACZ,KAAa;IAEb,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE5B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EACjE,GAAG,MAAM,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAC/D,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CACtB,MAAoB,EACpB,GAAW,EACX,UAA8B;IAE9B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAClB,MAAc,EACd,MAAoB,EACpB,MAAoB,EACpB,QAAmB,EACnB,MAAqB,EACrB,QAAyB,EACzB,MAAqB;IAErB,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAa,EAAE,CAAC;IAExC,0EAA0E;IAC1E,uEAAuE;IACvE,sBAAsB;IACtB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE/D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,6EAA6E;IAC7E,yCAAyC;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,KAAK,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;IAExD,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAClF,+DAA+D;gBAC/D,aAAa,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9F,wEAAwE;gBACxE,aAAa,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;YAC9C,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBACnC,kEAAkE;gBAClE,kEAAkE;gBAClE,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC1D,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,CAAC,GAAG,UAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,IAAI,EAC/E,GAAG,MAAM,CAAC,MAAM,UAAU,IAAI,CAAC,UAAW,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EACnE,mCAAmC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACpF,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACrE,wEAAwE;YACxE,sEAAsE;YACtE,kEAAkE;YAClE,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EACvE,mBAAmB,CAAC,CAAC;YACvB,yEAAyE;YACzE,qEAAqE;YACrE,SAAS;QACX,CAAC;QACD,UAAU,EAAE,CAAC;QAEb,IACE,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK;YACrC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACjC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAC3C,CAAC;YACD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAC/E,yBAAyB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7F,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC7F,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QAE1F,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAC/E,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAC7E,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EACzE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC7C,CAAC;YAED,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5F,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,YAAY,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CACrE,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAC9E,IAAI,IAAI,CAAC,MAAM,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtF,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;gBACrB,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;QAED,WAAW,CACT,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EACtE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CACnC,CAAC;QAEF,kBAAkB,CAChB,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CACpF,CAAC;QAEF,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,eAAe;QACf,IAAI,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAChF,oEAAoE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACjG,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,6DAA6D;YAC7D,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EACjE,+BAA+B,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EACjE,oDAAoD,CAAC,CAAC;QAC1D,CAAC;aAAM,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EACrE,2BAA2B,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACrC,gFAAgF;QAChF,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAE1E,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAAE,SAAS;QAE5F,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChF,wEAAwE;YACxE,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EACxE,mCAAmC,CAAC,CAAC;YACvC,SAAS;QACX,CAAC;QACD,MAAM,EAAE,CAAC;QACT,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;IAC9F,CAAC;IAED,4EAA4E;IAC5E,uDAAuD;IACvD,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,KAAK,KAAK,MAAM,CAAC,QAAQ;gBAAE,SAAS;YACxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EACnE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAChC,4BAA4B,MAAM,CAAC,QAAQ,eAAe,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI;gBAAE,SAAS,CAAC,qDAAqD;YAE1E,0EAA0E;YAC1E,qBAAqB;YACrB,MAAM,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;YAE1C,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EACpE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAChC,GAAG,MAAM,CAAC,MAAM,UAAU,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAClE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAChC,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC/C,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAE,EACxE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,EAChC,IAAI,QAAQ,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;IAEtD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,UAAU;QACV,2EAA2E;QAC3E,sEAAsE;QACtE,QAAQ,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU;QACvD,OAAO;QACP,MAAM;QACN,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM;QAC1D,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM;KAC/D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAClB,MAAc,EACd,QAAmB,EACnB,MAAc,EACd,GAAW,EACX,IAAY,EACZ,MAAqB,EACrB,OAAgB,EAChB,KAAa,EACb,WAA0B;IAE1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO;IAC/B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EACzD,GAAG,KAAK,mBAAmB,GAAG,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,WAAW,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO;IAC7D,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,KAAK,GAAG,WAAW,GAAG,OAAO,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EACzD,GAAG,KAAK,eAAe,WAAW,gBAAgB,OAAO,gBAAgB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3G,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAClB,MAAc,EACd,MAAoB,EACpB,QAAmB,EACnB,MAAqB;IAErB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,kBAAkB,CAChB,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CACxE,CAAC;QACF,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAG,GAAG,EAAE;IACvC,OAAO,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AACrE,CAAC;AAED,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAC;AAEzD,MAAM,UAAU,KAAK,CACnB,MAAc,EACd,SAAwB,IAAI,EAC5B,WAA4B,IAAI,EAChC,SAAwB,IAAI;IAE5B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAiB,EAAE,CAAC;IAE/B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,MAAM,KAAK,MAAM,CAAC,YAAY;YAAE,SAAS;QAC7C,KAAK,CAAC,IAAI,CACR,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAC5F,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvD,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QAChC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC;QACtC,YAAY,EAAE,MAAM,KAAK,IAAI;QAC7B,KAAK;QACL,QAAQ;KACT,CAAC;AACJ,CAAC"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,525 @@
1
+ #!/usr/bin/env node
2
+ import { parseArgs } from 'node:util';
3
+ import { relative } from 'node:path';
4
+ import { existsSync } from 'node:fs';
5
+ import { applyProposals, loadRun, recheck, recordMachine, saveRun, ApplyError, SAVE_VERSION, } from './apply.js';
6
+ import { check } from './check.js';
7
+ import { FormatError, describeFormatError } from './formats/error.js';
8
+ import { GlossaryError, glossaryPath, loadGlossary, } from './glossary.js';
9
+ import { LimitsError, limitsPath, loadLimits } from './lengths.js';
10
+ import { MemoryError, emptyMemory, loadMemory, markReviewed, unreviewed, memoryPath, saveMemory, syncMemory, } from './memory.js';
11
+ import { renderReport } from './report.js';
12
+ import { collectJobs, runTranslation, DEFAULT_BATCH, DEFAULT_CAP, DEFAULT_MODEL, JOB_KINDS, } from './translate.js';
13
+ import { ALL_SYNTAXES } from './placeholders.js';
14
+ import { ScanError, detectProject, listLocales, loadBundle, sourceIsMsgid } from './scan.js';
15
+ import { RULE_IDS } from './types.js';
16
+ import { VERSION } from './version.js';
17
+ const HELP = `i18n-keeper ${VERSION}
18
+
19
+ i18n-keeper check [path] lint locale files
20
+ i18n-keeper scan [path] show what would be checked
21
+ i18n-keeper sync [path] record current translations in the memory
22
+ i18n-keeper translate [path] fill the missing and stale set with Claude
23
+ i18n-keeper apply <file> [path] write proposals saved by translate
24
+ i18n-keeper review [path] sign off on machine translations
25
+
26
+ Options
27
+ --locales <dir> locales directory (default: auto-detect)
28
+ --source <locale> source locale (default: en, else the first found)
29
+ --locale <locale> limit to this locale (repeatable)
30
+ --memory <file> translation memory (default: .i18n/memory.json)
31
+ --no-memory ignore the memory; disables stale detection
32
+ --glossary <file> glossary (default: .i18n/glossary.json)
33
+ --no-glossary ignore the glossary
34
+ --limits <file> width limits (default: .i18n/limits.json)
35
+ --no-limits ignore the width limits
36
+
37
+ check
38
+ --rule <rule> only report this rule (repeatable)
39
+ --ignore-identical <a,b> values allowed to equal the source, e.g. OK,Email
40
+ --syntax <a,b> placeholder syntaxes: ${ALL_SYNTAXES.join(', ')}
41
+ --limit <n> max findings to print (default: 40)
42
+ --json machine-readable output
43
+
44
+ sync
45
+ --origin <human|machine> who produced these translations (default: human)
46
+ --force also re-record unchanged translations, clearing stale
47
+
48
+ translate
49
+ --write apply accepted translations (otherwise nothing is written)
50
+ --save <file> save the proposals so apply can write them later,
51
+ without paying for the translation twice
52
+ --cap <n> most strings to translate in one run (default: ${DEFAULT_CAP})
53
+ --batch <n> strings per request (default: ${DEFAULT_BATCH})
54
+ --model <id> default: ${DEFAULT_MODEL}
55
+ --effort <level> low|medium|high|xhigh|max (default: medium)
56
+ --only <kind> fill | repair | refresh (repeatable; default: all three)
57
+ fill strings with no translation yet
58
+ repair translations the linter proved wrong
59
+ refresh translations whose source has moved
60
+
61
+ Sends the source strings, their keys and their constraints to the Anthropic
62
+ API. Every proposal is re-checked locally and rejected if it breaks a rule.
63
+
64
+ apply
65
+ --dry-run re-check the saved proposals and report, writing nothing
66
+
67
+ review
68
+ --locale <l> only this locale (repeatable)
69
+ --key <k> only this key (repeatable)
70
+ --all every unreviewed translation
71
+ --dry-run list what would be signed off, changing nothing
72
+
73
+ With no selection it lists what is waiting, and changes nothing. Nothing
74
+ else in the tool can mark a translation reviewed; that is the point of
75
+ recording machine output as unreviewed in the first place.
76
+
77
+ Every proposal is checked again before it is written: a saved file may be
78
+ days old, and it is editable by hand.
79
+
80
+ Exits 1 when there is at least one error.`;
81
+ function fail(message) {
82
+ process.stderr.write(`${message}\n`);
83
+ process.exit(2);
84
+ }
85
+ const { values, positionals } = (() => {
86
+ try {
87
+ return parseArgs({
88
+ allowPositionals: true,
89
+ options: {
90
+ locales: { type: 'string' },
91
+ source: { type: 'string' },
92
+ locale: { type: 'string', multiple: true },
93
+ rule: { type: 'string', multiple: true },
94
+ memory: { type: 'string' },
95
+ 'no-memory': { type: 'boolean' },
96
+ glossary: { type: 'string' },
97
+ 'no-glossary': { type: 'boolean' },
98
+ limits: { type: 'string' },
99
+ 'no-limits': { type: 'boolean' },
100
+ 'ignore-identical': { type: 'string' },
101
+ syntax: { type: 'string' },
102
+ origin: { type: 'string' },
103
+ force: { type: 'boolean' },
104
+ write: { type: 'boolean' },
105
+ model: { type: 'string' },
106
+ effort: { type: 'string' },
107
+ batch: { type: 'string' },
108
+ cap: { type: 'string' },
109
+ only: { type: 'string', multiple: true },
110
+ save: { type: 'string' },
111
+ 'dry-run': { type: 'boolean' },
112
+ key: { type: 'string', multiple: true },
113
+ all: { type: 'boolean' },
114
+ limit: { type: 'string' },
115
+ json: { type: 'boolean' },
116
+ help: { type: 'boolean', short: 'h' },
117
+ version: { type: 'boolean' },
118
+ },
119
+ });
120
+ }
121
+ catch (err) {
122
+ fail(err instanceof Error ? err.message : String(err));
123
+ }
124
+ })();
125
+ if (values.version) {
126
+ process.stdout.write(`${VERSION}\n`);
127
+ process.exit(0);
128
+ }
129
+ const command = positionals[0] ?? 'check';
130
+ if (values.help || command === 'help') {
131
+ process.stdout.write(`${HELP}\n`);
132
+ process.exit(0);
133
+ }
134
+ if (command !== 'check' &&
135
+ command !== 'scan' &&
136
+ command !== 'sync' &&
137
+ command !== 'translate' &&
138
+ command !== 'apply' &&
139
+ command !== 'review') {
140
+ fail(`Unknown command: ${command}\n\n${HELP}`);
141
+ }
142
+ // `apply` takes the proposals file first, then the optional project path.
143
+ const proposalsFile = command === 'apply' ? positionals[1] : undefined;
144
+ if (command === 'apply' && !proposalsFile) {
145
+ fail('apply needs a proposals file:\n i18n-keeper apply <file> [path]');
146
+ }
147
+ const root = (command === 'apply' ? positionals[2] : positionals[1]) ?? process.cwd();
148
+ const limit = values.limit === undefined ? 40 : Number.parseInt(values.limit, 10);
149
+ if (!Number.isFinite(limit) || limit < 0)
150
+ fail('--limit expects a non-negative number');
151
+ for (const rule of values.rule ?? []) {
152
+ if (!RULE_IDS.includes(rule)) {
153
+ fail(`Unknown rule: ${rule}\nAvailable: ${RULE_IDS.join(', ')}`);
154
+ }
155
+ }
156
+ const syntaxes = values.syntax?.split(',').map((s) => s.trim()).filter(Boolean);
157
+ for (const syntax of syntaxes ?? []) {
158
+ if (!ALL_SYNTAXES.includes(syntax)) {
159
+ fail(`Unknown placeholder syntax: ${syntax}\nAvailable: ${ALL_SYNTAXES.join(', ')}`);
160
+ }
161
+ }
162
+ const origin = values.origin ?? 'human';
163
+ if (origin !== 'human' && origin !== 'machine') {
164
+ fail('--origin expects "human" or "machine"');
165
+ }
166
+ const EFFORTS = ['low', 'medium', 'high', 'xhigh', 'max'];
167
+ const effort = values.effort ?? 'medium';
168
+ if (!EFFORTS.includes(effort)) {
169
+ fail(`--effort expects one of: ${EFFORTS.join(', ')}`);
170
+ }
171
+ function positive(flag, raw, fallback) {
172
+ if (raw === undefined)
173
+ return fallback;
174
+ const parsed = Number.parseInt(raw, 10);
175
+ if (!Number.isFinite(parsed) || parsed < 1)
176
+ fail(`${flag} expects a positive number`);
177
+ return parsed;
178
+ }
179
+ for (const kind of values.only ?? []) {
180
+ if (!JOB_KINDS.includes(kind)) {
181
+ fail(`--only expects one of: ${JOB_KINDS.join(', ')}`);
182
+ }
183
+ }
184
+ const cap = positive('--cap', values.cap, DEFAULT_CAP);
185
+ const batchSize = positive('--batch', values.batch, DEFAULT_BATCH);
186
+ /** An explicit --limits must exist; the default path is simply optional. */
187
+ function openLimits(config) {
188
+ const file = limitsPath(config.root, values.limits);
189
+ if (values['no-limits'])
190
+ return { limits: null, file };
191
+ if (values.limits && !existsSync(file))
192
+ fail(`Limits file not found: ${file}`);
193
+ return { limits: loadLimits(file), file };
194
+ }
195
+ /** An explicit --glossary must exist; the default path is simply optional. */
196
+ function openGlossary(config) {
197
+ const file = glossaryPath(config.root, values.glossary);
198
+ if (values['no-glossary'])
199
+ return { glossary: null, file };
200
+ if (values.glossary && !existsSync(file))
201
+ fail(`Glossary file not found: ${file}`);
202
+ return { glossary: loadGlossary(file), file };
203
+ }
204
+ /** An explicit --memory must exist; the default path is simply optional. */
205
+ function openMemory(config) {
206
+ const file = memoryPath(config.root, values.memory);
207
+ if (values['no-memory'])
208
+ return { memory: null, file };
209
+ if (values.memory && !existsSync(file))
210
+ fail(`Memory file not found: ${file}`);
211
+ return { memory: loadMemory(file), file };
212
+ }
213
+ /**
214
+ * Returns an exit code rather than calling process.exit: the HTTP connection
215
+ * pool is still closing when this returns, and exiting underneath it trips a
216
+ * libuv assertion on Windows.
217
+ */
218
+ async function translateCommand(config) {
219
+ const { memory: existing } = openMemory(config);
220
+ const { glossary } = openGlossary(config);
221
+ const { limits } = openLimits(config);
222
+ const report = check(config, existing, glossary, limits);
223
+ const source = loadBundle(config, config.sourceLocale);
224
+ let jobs = collectJobs(config, report.findings, source, glossary, limits, values.locale, values.only);
225
+ const total = jobs.length;
226
+ if (total === 0) {
227
+ process.stdout.write('Nothing to do: no strings to fill, repair or refresh.\n');
228
+ return 0;
229
+ }
230
+ if (total > cap)
231
+ jobs = jobs.slice(0, cap);
232
+ const locales = [...new Set(jobs.map((job) => job.locale))];
233
+ const breakdown = JOB_KINDS.map((kind) => ({
234
+ kind,
235
+ count: jobs.filter((job) => job.kind === kind).length,
236
+ }))
237
+ .filter((entry) => entry.count > 0)
238
+ .map((entry) => `${entry.count} to ${entry.kind}`)
239
+ .join(', ');
240
+ process.stdout.write([
241
+ `Sending ${jobs.length} string${jobs.length === 1 ? '' : 's'} ` +
242
+ `(${locales.join(', ')}) to ${values.model ?? DEFAULT_MODEL} at effort ${effort}: ` +
243
+ `${breakdown}.`,
244
+ total > cap ? `${total - cap} more are waiting; raise --cap to include them.` : '',
245
+ ]
246
+ .filter(Boolean)
247
+ .join('\n') + '\n');
248
+ const run = await runTranslation(config, jobs, glossary, {
249
+ model: values.model ?? DEFAULT_MODEL,
250
+ effort: effort,
251
+ batchSize,
252
+ onBatch: (locale, size, attempt) => {
253
+ process.stderr.write(` ${locale}: ${size} string${size === 1 ? '' : 's'}${attempt > 1 ? ' (retry)' : ''}\n`);
254
+ },
255
+ });
256
+ const proposals = run.proposals;
257
+ if (values.save) {
258
+ saveRun(values.save, {
259
+ version: SAVE_VERSION,
260
+ model: values.model ?? DEFAULT_MODEL,
261
+ sourceLocale: config.sourceLocale,
262
+ createdAt: new Date().toISOString(),
263
+ aborted: run.aborted,
264
+ proposals,
265
+ });
266
+ }
267
+ if (values.json) {
268
+ process.stdout.write(`${JSON.stringify(run, null, 2)}\n`);
269
+ return run.aborted || proposals.some((p) => !p.accepted) ? 1 : 0;
270
+ }
271
+ const accepted = proposals.filter((p) => p.accepted);
272
+ const rejected = proposals.filter((p) => !p.accepted);
273
+ for (const proposal of accepted) {
274
+ process.stdout.write(` ${proposal.locale} ${proposal.kind.padEnd(7)} ${proposal.key}\n ${proposal.value}\n`);
275
+ }
276
+ if (rejected.length > 0) {
277
+ process.stdout.write('\nrejected\n');
278
+ for (const proposal of rejected) {
279
+ process.stdout.write(` ${proposal.locale} ${proposal.kind.padEnd(7)} ${proposal.key}\n` +
280
+ ` ${proposal.value || '(nothing returned)'}\n` +
281
+ proposal.rejections.map((r) => ` ! ${r}\n`).join(''));
282
+ }
283
+ }
284
+ process.stdout.write(`\n${accepted.length} accepted, ${rejected.length} rejected\n`);
285
+ // An error that is not a content refusal stopped the run before the checks
286
+ // could say anything, so it must not be reported as a rejection.
287
+ if (run.aborted) {
288
+ const hint = /authentication|api[ _-]?key|credential|unauthor/i.test(run.aborted)
289
+ ? '\nSet ANTHROPIC_API_KEY, or sign in with `ant auth login`.'
290
+ : '';
291
+ process.stderr.write(`Translation stopped: ${run.aborted}\n` +
292
+ `${jobs.length - proposals.length} of ${jobs.length} strings were never attempted.${hint}\n`);
293
+ return 2;
294
+ }
295
+ if (!values.write) {
296
+ process.stdout.write(values.save
297
+ ? `Nothing written. Saved to ${values.save}; apply with: i18n-keeper apply ${values.save}\n`
298
+ : 'Nothing written. Pass --write to apply, or --save <file> to apply later.\n');
299
+ return rejected.length > 0 ? 1 : 0;
300
+ }
301
+ const applied = applyProposals(config, source, proposals);
302
+ const memoryFile = memoryPath(config.root, values.memory);
303
+ const memory = existing ?? emptyMemory(config.sourceLocale);
304
+ recordMachine(memory, accepted, new Date().toISOString());
305
+ saveMemory(memoryFile, memory);
306
+ process.stdout.write(`Wrote ${applied.written} string${applied.written === 1 ? '' : 's'} to ` +
307
+ `${applied.files.length} file${applied.files.length === 1 ? '' : 's'}, ` +
308
+ `recorded as unreviewed machine output in ${relative(config.root, memoryFile)}.\n`);
309
+ for (const skip of applied.skipped) {
310
+ process.stdout.write(` not written: ${skip.locale} ${skip.key} — ${skip.reason}\n`);
311
+ }
312
+ return rejected.length > 0 ? 1 : 0;
313
+ }
314
+ try {
315
+ const config = detectProject(root, { localesDir: values.locales, sourceLocale: values.source });
316
+ if (syntaxes && syntaxes.length > 0)
317
+ config.placeholderSyntaxes = syntaxes;
318
+ if (values['ignore-identical']) {
319
+ config.ignoreIdentical = values['ignore-identical']
320
+ .split(',')
321
+ .map((s) => s.trim())
322
+ .filter(Boolean);
323
+ }
324
+ if (command === 'scan') {
325
+ const { layout, locales } = listLocales(config.localesDir);
326
+ const { memory, file } = openMemory(config);
327
+ const glossaryInfo = openGlossary(config);
328
+ const limitsInfo = openLimits(config);
329
+ // Files that were read but carry nothing translatable are worth naming:
330
+ // silently ignoring part of a project is how a linter comes to be trusted
331
+ // for coverage it never had.
332
+ const sourceBundle = loadBundle(config, config.sourceLocale);
333
+ const passedOver = sourceBundle.skipped;
334
+ const summary = {
335
+ localesDir: config.localesDir,
336
+ layout,
337
+ sourceLocale: config.sourceLocale,
338
+ locales,
339
+ placeholderSyntaxes: config.placeholderSyntaxes,
340
+ memory: memory ? file : null,
341
+ glossary: glossaryInfo.glossary ? glossaryInfo.file : null,
342
+ limits: limitsInfo.limits ? limitsInfo.file : null,
343
+ };
344
+ if (values.json) {
345
+ process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`);
346
+ }
347
+ else {
348
+ process.stdout.write([
349
+ `locales dir ${summary.localesDir}`,
350
+ `layout ${summary.layout}`,
351
+ `source ${summary.sourceLocale}${sourceIsMsgid(sourceBundle)
352
+ ? ' — gettext, so the source text comes from each msgid, not from this locale'
353
+ : ''}`,
354
+ `locales ${summary.locales.join(', ')}`,
355
+ `placeholders ${summary.placeholderSyntaxes.join(', ')}`,
356
+ `memory ${memory ? relative(config.root, file) : 'none'}`,
357
+ ...(passedOver.length > 0
358
+ ? [
359
+ '',
360
+ 'passed over:',
361
+ ...passedOver.map((s) => ` ${relative(config.root, s.file)} — ${s.reason}`),
362
+ ]
363
+ : []),
364
+ `glossary ${glossaryInfo.glossary
365
+ ? `${relative(config.root, glossaryInfo.file)} (${glossaryInfo.glossary.terms.length} terms, ${glossaryInfo.glossary.doNotTranslate.length} verbatim)`
366
+ : 'none'}`,
367
+ `limits ${limitsInfo.limits
368
+ ? `${relative(config.root, limitsInfo.file)} (${Object.keys(limitsInfo.limits.keys).length} keys, ${limitsInfo.limits.patterns.length} patterns)`
369
+ : 'none'}`,
370
+ '',
371
+ ].join('\n'));
372
+ }
373
+ process.exit(0);
374
+ }
375
+ if (command === 'review') {
376
+ const memoryFile = memoryPath(config.root, values.memory);
377
+ const memory = loadMemory(memoryFile);
378
+ if (!memory) {
379
+ process.stdout.write(`No memory at ${relative(config.root, memoryFile)}; nothing to review.\n`);
380
+ process.exit(0);
381
+ }
382
+ const source = loadBundle(config, config.sourceLocale);
383
+ const selected = values.all === true;
384
+ const narrowed = (values.locale?.length ?? 0) > 0 || (values.key?.length ?? 0) > 0;
385
+ const waiting = unreviewed(memory, values.locale, values.key);
386
+ if (waiting.length === 0) {
387
+ process.stdout.write('Nothing waiting: every recorded translation has been reviewed.\n');
388
+ process.exit(0);
389
+ }
390
+ for (const item of waiting) {
391
+ const current = source.leaves.get(item.key)?.value;
392
+ process.stdout.write(` ${item.locale} ${item.key} (${item.entry.origin})\n`);
393
+ if (current !== undefined) {
394
+ process.stdout.write(` ${config.sourceLocale} ${current}\n`);
395
+ }
396
+ process.stdout.write(` ${item.locale} ${item.entry.value}\n`);
397
+ }
398
+ if (!selected && !narrowed) {
399
+ process.stdout.write(`\n${waiting.length} waiting. Sign off with --all, or narrow with --locale / --key.\n`);
400
+ process.exit(0);
401
+ }
402
+ if (values['dry-run']) {
403
+ process.stdout.write(`\n${waiting.length} would be marked reviewed. Nothing written.\n`);
404
+ process.exit(0);
405
+ }
406
+ const marked = markReviewed(waiting, new Date().toISOString());
407
+ saveMemory(memoryFile, memory);
408
+ process.stdout.write(`\nMarked ${marked} translation${marked === 1 ? '' : 's'} reviewed in ` +
409
+ `${relative(config.root, memoryFile)}.\n`);
410
+ process.exit(0);
411
+ }
412
+ if (command === 'apply') {
413
+ const saved = loadRun(proposalsFile);
414
+ const { glossary } = openGlossary(config);
415
+ const { limits } = openLimits(config);
416
+ const source = loadBundle(config, config.sourceLocale);
417
+ const { ready, dropped } = recheck(config, source, glossary, limits, saved.proposals);
418
+ process.stdout.write(`${saved.proposals.length} proposal${saved.proposals.length === 1 ? '' : 's'} from ` +
419
+ `${saved.model}${saved.createdAt ? `, saved ${saved.createdAt}` : ''}\n`);
420
+ for (const proposal of ready) {
421
+ process.stdout.write(` ${proposal.locale} ${proposal.kind.padEnd(7)} ${proposal.key}\n ${proposal.value}\n`);
422
+ }
423
+ if (dropped.length > 0) {
424
+ process.stdout.write('\ndropped\n');
425
+ for (const entry of dropped) {
426
+ process.stdout.write(` ${entry.proposal.locale} ${entry.proposal.key}\n ! ${entry.reason}\n`);
427
+ }
428
+ }
429
+ process.stdout.write(`\n${ready.length} to apply, ${dropped.length} dropped\n`);
430
+ if (values['dry-run']) {
431
+ process.stdout.write('Dry run: nothing written.\n');
432
+ process.exit(dropped.length > 0 ? 1 : 0);
433
+ }
434
+ const applied = applyProposals(config, source, ready);
435
+ const memoryFile = memoryPath(config.root, values.memory);
436
+ const memory = loadMemory(memoryFile) ?? emptyMemory(config.sourceLocale);
437
+ recordMachine(memory, ready, new Date().toISOString());
438
+ saveMemory(memoryFile, memory);
439
+ process.stdout.write(`Wrote ${applied.written} string${applied.written === 1 ? '' : 's'} to ` +
440
+ `${applied.files.length} file${applied.files.length === 1 ? '' : 's'}, ` +
441
+ `recorded as unreviewed machine output in ${relative(config.root, memoryFile)}.\n`);
442
+ for (const skip of applied.skipped) {
443
+ process.stdout.write(` not written: ${skip.locale} ${skip.key} — ${skip.reason}\n`);
444
+ }
445
+ process.exit(dropped.length > 0 ? 1 : 0);
446
+ }
447
+ if (command === 'sync') {
448
+ const file = memoryPath(config.root, values.memory);
449
+ const memory = (values['no-memory'] ? null : loadMemory(file)) ?? emptyMemory(config.sourceLocale);
450
+ const result = syncMemory(config, memory, {
451
+ origin,
452
+ reviewed: origin === 'human',
453
+ locales: values.locale,
454
+ force: values.force === true,
455
+ });
456
+ saveMemory(file, memory);
457
+ if (values.json) {
458
+ process.stdout.write(`${JSON.stringify({ memory: file, ...result }, null, 2)}\n`);
459
+ }
460
+ else {
461
+ process.stdout.write([
462
+ `memory ${relative(config.root, file)}`,
463
+ `created ${result.created} updated ${result.updated} ` +
464
+ `kept-stale ${result.keptStale} unchanged ${result.unchanged} removed ${result.removed}`,
465
+ result.keptStale > 0 && !values.force
466
+ ? `\n${result.keptStale} translation(s) still stale — retranslate them, or run sync --force to accept as-is.`
467
+ : '',
468
+ ]
469
+ .filter(Boolean)
470
+ .join('\n') + '\n');
471
+ }
472
+ process.exit(0);
473
+ }
474
+ if (command === 'translate') {
475
+ process.exitCode = await translateCommand(config);
476
+ }
477
+ else {
478
+ const localeFilter = new Set(values.locale ?? []);
479
+ const ruleFilter = new Set((values.rule ?? []));
480
+ // Naming a rule explicitly turns it on; otherwise --rule untracked, which is
481
+ // off by default, would print nothing and look broken.
482
+ for (const rule of ruleFilter) {
483
+ if (config.rules[rule] === 'off')
484
+ config.rules[rule] = 'warning';
485
+ }
486
+ const { memory } = openMemory(config);
487
+ const { glossary } = openGlossary(config);
488
+ const { limits } = openLimits(config);
489
+ const report = check(config, memory, glossary, limits);
490
+ if (localeFilter.size > 0 || ruleFilter.size > 0) {
491
+ report.findings = report.findings.filter((f) => (localeFilter.size === 0 || localeFilter.has(f.locale)) &&
492
+ (ruleFilter.size === 0 || ruleFilter.has(f.rule)));
493
+ if (localeFilter.size > 0) {
494
+ report.stats = report.stats.filter((s) => localeFilter.has(s.locale));
495
+ }
496
+ }
497
+ if (values.json) {
498
+ process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
499
+ }
500
+ else {
501
+ process.stdout.write(`${renderReport(report, config.root, limit)}\n`);
502
+ if (ruleFilter.size > 0) {
503
+ // The table stays project-wide on purpose; only the list below it is filtered.
504
+ process.stdout.write(`(list filtered to: ${[...ruleFilter].join(', ')})\n`);
505
+ }
506
+ }
507
+ process.exit(report.findings.some((f) => f.severity === 'error') ? 1 : 0);
508
+ }
509
+ }
510
+ catch (err) {
511
+ if (err instanceof ScanError)
512
+ fail(err.message);
513
+ if (err instanceof MemoryError)
514
+ fail(err.message);
515
+ if (err instanceof GlossaryError)
516
+ fail(err.message);
517
+ if (err instanceof LimitsError)
518
+ fail(err.message);
519
+ if (err instanceof ApplyError)
520
+ fail(err.message);
521
+ if (err instanceof FormatError)
522
+ fail(describeFormatError(err));
523
+ throw err;
524
+ }
525
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Base for every format reader's failure.
3
+ *
4
+ * The CLI and the MCP server catch this one type, so adding a format cannot
5
+ * leave a new error class escaping as an uncaught stack trace.
6
+ */
7
+ export declare class FormatError extends Error {
8
+ readonly file: string;
9
+ readonly line?: number | undefined;
10
+ constructor(file: string, message: string, line?: number | undefined);
11
+ }
12
+ export declare function describeFormatError(err: FormatError): string;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Base for every format reader's failure.
3
+ *
4
+ * The CLI and the MCP server catch this one type, so adding a format cannot
5
+ * leave a new error class escaping as an uncaught stack trace.
6
+ */
7
+ export class FormatError extends Error {
8
+ file;
9
+ line;
10
+ constructor(file, message, line) {
11
+ super(line === undefined ? message : `${message} (line ${line})`);
12
+ this.file = file;
13
+ this.line = line;
14
+ }
15
+ }
16
+ export function describeFormatError(err) {
17
+ return `Cannot read ${err.file}\n ${err.message}`;
18
+ }
19
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/formats/error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAElB;IAEA;IAHlB,YACkB,IAAY,EAC5B,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,IAAI,GAAG,CAAC,CAAC;QAJlD,SAAI,GAAJ,IAAI,CAAQ;QAEZ,SAAI,GAAJ,IAAI,CAAS;IAG/B,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAgB;IAClD,OAAO,eAAe,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Leaf } from '../types.js';
2
+ export type PlainValue = string | number | boolean | null | PlainValue[] | {
3
+ [key: string]: PlainValue;
4
+ };
5
+ /** Flattens a parsed locale value into dot-notation keys, shared by every format. */
6
+ export declare function flattenValue(node: unknown, prefix: string, file: string, leaves: Map<string, Leaf>, containers: Set<string>): void;