glotto 2.8.0 → 3.0.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 (230) hide show
  1. package/README.md +86 -55
  2. package/esm/cli.js +49 -41
  3. package/esm/deno.d.ts +1 -1
  4. package/esm/deno.js +7 -7
  5. package/esm/deps/jsr.io/@std/cli/1.0.29/_data.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.d.ts.map +1 -1
  7. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.d.ts.map +1 -1
  8. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.d.ts.map +1 -1
  9. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.js +17 -3
  10. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.d.ts.map +1 -1
  11. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.js +1 -1
  12. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.d.ts.map +1 -1
  13. package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.d.ts.map +1 -1
  14. package/esm/deps/jsr.io/@std/internal/1.0.13/_os.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.js +1 -1
  16. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts.map +1 -1
  17. package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.js +1 -1
  18. package/esm/deps/jsr.io/@std/path/1.1.4/basename.js +1 -1
  19. package/esm/deps/jsr.io/@std/path/1.1.4/constants.js +1 -1
  20. package/esm/deps/jsr.io/@std/path/1.1.4/dirname.js +1 -1
  21. package/esm/deps/jsr.io/@std/path/1.1.4/extname.js +1 -1
  22. package/esm/deps/jsr.io/@std/path/1.1.4/format.js +1 -1
  23. package/esm/deps/jsr.io/@std/path/1.1.4/from_file_url.js +1 -1
  24. package/esm/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.js +1 -1
  25. package/esm/deps/jsr.io/@std/path/1.1.4/is_absolute.js +1 -1
  26. package/esm/deps/jsr.io/@std/path/1.1.4/join.js +1 -1
  27. package/esm/deps/jsr.io/@std/path/1.1.4/join_globs.js +1 -1
  28. package/esm/deps/jsr.io/@std/path/1.1.4/normalize.js +1 -1
  29. package/esm/deps/jsr.io/@std/path/1.1.4/normalize_glob.js +1 -1
  30. package/esm/deps/jsr.io/@std/path/1.1.4/parse.js +1 -1
  31. package/esm/deps/jsr.io/@std/path/1.1.4/relative.js +1 -1
  32. package/esm/deps/jsr.io/@std/path/1.1.4/resolve.js +1 -1
  33. package/esm/deps/jsr.io/@std/path/1.1.4/to_file_url.js +1 -1
  34. package/esm/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.js +1 -1
  35. package/esm/src/contants.d.ts +2 -3
  36. package/esm/src/contants.d.ts.map +1 -1
  37. package/esm/src/contants.js +22 -13
  38. package/esm/src/file.d.ts +2 -7
  39. package/esm/src/file.d.ts.map +1 -1
  40. package/esm/src/file.js +1 -93
  41. package/esm/src/providers/anthropic.d.ts +6 -11
  42. package/esm/src/providers/anthropic.d.ts.map +1 -1
  43. package/esm/src/providers/anthropic.js +14 -103
  44. package/esm/src/providers/gemini.d.ts +6 -11
  45. package/esm/src/providers/gemini.d.ts.map +1 -1
  46. package/esm/src/providers/gemini.js +13 -109
  47. package/esm/src/providers/openai.d.ts +6 -11
  48. package/esm/src/providers/openai.d.ts.map +1 -1
  49. package/esm/src/providers/openai.js +10 -104
  50. package/esm/src/translator.d.ts +8 -0
  51. package/esm/src/translator.d.ts.map +1 -0
  52. package/esm/src/translator.js +200 -0
  53. package/esm/src/types.d.ts +28 -11
  54. package/esm/src/types.d.ts.map +1 -1
  55. package/esm/src/utilites.d.ts +1 -6
  56. package/esm/src/utilites.d.ts.map +1 -1
  57. package/esm/src/utilites.js +18 -77
  58. package/package.json +4 -4
  59. package/script/cli.js +47 -39
  60. package/script/deno.d.ts +1 -1
  61. package/script/deno.js +7 -7
  62. package/script/deps/jsr.io/@std/cli/1.0.29/_data.d.ts.map +1 -0
  63. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.d.ts.map +1 -1
  64. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.d.ts.map +1 -1
  65. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.d.ts.map +1 -1
  66. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.js +17 -3
  67. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.d.ts.map +1 -1
  68. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.js +1 -1
  69. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.d.ts.map +1 -1
  70. package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.d.ts.map +1 -1
  71. package/script/deps/jsr.io/@std/internal/1.0.13/_os.d.ts.map +1 -0
  72. package/script/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.js +1 -1
  73. package/script/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts.map +1 -1
  74. package/script/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.js +1 -1
  75. package/script/deps/jsr.io/@std/path/1.1.4/basename.js +1 -1
  76. package/script/deps/jsr.io/@std/path/1.1.4/constants.js +1 -1
  77. package/script/deps/jsr.io/@std/path/1.1.4/dirname.js +1 -1
  78. package/script/deps/jsr.io/@std/path/1.1.4/extname.js +1 -1
  79. package/script/deps/jsr.io/@std/path/1.1.4/format.js +1 -1
  80. package/script/deps/jsr.io/@std/path/1.1.4/from_file_url.js +1 -1
  81. package/script/deps/jsr.io/@std/path/1.1.4/glob_to_regexp.js +1 -1
  82. package/script/deps/jsr.io/@std/path/1.1.4/is_absolute.js +1 -1
  83. package/script/deps/jsr.io/@std/path/1.1.4/join.js +1 -1
  84. package/script/deps/jsr.io/@std/path/1.1.4/join_globs.js +1 -1
  85. package/script/deps/jsr.io/@std/path/1.1.4/normalize.js +1 -1
  86. package/script/deps/jsr.io/@std/path/1.1.4/normalize_glob.js +1 -1
  87. package/script/deps/jsr.io/@std/path/1.1.4/parse.js +1 -1
  88. package/script/deps/jsr.io/@std/path/1.1.4/relative.js +1 -1
  89. package/script/deps/jsr.io/@std/path/1.1.4/resolve.js +1 -1
  90. package/script/deps/jsr.io/@std/path/1.1.4/to_file_url.js +1 -1
  91. package/script/deps/jsr.io/@std/path/1.1.4/to_namespaced_path.js +1 -1
  92. package/script/src/contants.d.ts +2 -3
  93. package/script/src/contants.d.ts.map +1 -1
  94. package/script/src/contants.js +23 -14
  95. package/script/src/file.d.ts +2 -7
  96. package/script/src/file.d.ts.map +1 -1
  97. package/script/src/file.js +2 -99
  98. package/script/src/providers/anthropic.d.ts +6 -11
  99. package/script/src/providers/anthropic.d.ts.map +1 -1
  100. package/script/src/providers/anthropic.js +13 -102
  101. package/script/src/providers/gemini.d.ts +6 -11
  102. package/script/src/providers/gemini.d.ts.map +1 -1
  103. package/script/src/providers/gemini.js +12 -108
  104. package/script/src/providers/openai.d.ts +6 -11
  105. package/script/src/providers/openai.d.ts.map +1 -1
  106. package/script/src/providers/openai.js +9 -103
  107. package/script/src/translator.d.ts +8 -0
  108. package/script/src/translator.d.ts.map +1 -0
  109. package/script/src/translator.js +209 -0
  110. package/script/src/types.d.ts +28 -11
  111. package/script/src/types.d.ts.map +1 -1
  112. package/script/src/utilites.d.ts +1 -6
  113. package/script/src/utilites.d.ts.map +1 -1
  114. package/script/src/utilites.js +19 -80
  115. package/esm/deps/jsr.io/@std/cli/1.0.27/_data.d.ts.map +0 -1
  116. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  117. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  118. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -51
  119. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common32.d.ts +0 -35
  120. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common32.d.ts.map +0 -1
  121. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common32.js +0 -192
  122. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts +0 -35
  123. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts.map +0 -1
  124. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common64.js +0 -113
  125. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  126. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  127. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -13
  128. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  129. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  130. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -2
  131. package/esm/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.d.ts +0 -2
  132. package/esm/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.d.ts.map +0 -1
  133. package/esm/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.js +0 -26
  134. package/esm/deps/jsr.io/@std/encoding/1.0.10/ascii85.d.ts +0 -61
  135. package/esm/deps/jsr.io/@std/encoding/1.0.10/ascii85.d.ts.map +0 -1
  136. package/esm/deps/jsr.io/@std/encoding/1.0.10/ascii85.js +0 -152
  137. package/esm/deps/jsr.io/@std/encoding/1.0.10/base32.d.ts +0 -40
  138. package/esm/deps/jsr.io/@std/encoding/1.0.10/base32.d.ts.map +0 -1
  139. package/esm/deps/jsr.io/@std/encoding/1.0.10/base32.js +0 -87
  140. package/esm/deps/jsr.io/@std/encoding/1.0.10/base58.d.ts +0 -40
  141. package/esm/deps/jsr.io/@std/encoding/1.0.10/base58.d.ts.map +0 -1
  142. package/esm/deps/jsr.io/@std/encoding/1.0.10/base58.js +0 -131
  143. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts +0 -40
  144. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts.map +0 -1
  145. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64.js +0 -82
  146. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64url.d.ts +0 -40
  147. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64url.d.ts.map +0 -1
  148. package/esm/deps/jsr.io/@std/encoding/1.0.10/base64url.js +0 -72
  149. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  150. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  151. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -87
  152. package/esm/deps/jsr.io/@std/encoding/1.0.10/mod.d.ts +0 -98
  153. package/esm/deps/jsr.io/@std/encoding/1.0.10/mod.d.ts.map +0 -1
  154. package/esm/deps/jsr.io/@std/encoding/1.0.10/mod.js +0 -99
  155. package/esm/deps/jsr.io/@std/encoding/1.0.10/varint.d.ts +0 -120
  156. package/esm/deps/jsr.io/@std/encoding/1.0.10/varint.d.ts.map +0 -1
  157. package/esm/deps/jsr.io/@std/encoding/1.0.10/varint.js +0 -205
  158. package/esm/deps/jsr.io/@std/internal/1.0.12/_os.d.ts.map +0 -1
  159. package/script/deps/jsr.io/@std/cli/1.0.27/_data.d.ts.map +0 -1
  160. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  161. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  162. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -57
  163. package/script/deps/jsr.io/@std/encoding/1.0.10/_common32.d.ts +0 -35
  164. package/script/deps/jsr.io/@std/encoding/1.0.10/_common32.d.ts.map +0 -1
  165. package/script/deps/jsr.io/@std/encoding/1.0.10/_common32.js +0 -198
  166. package/script/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts +0 -35
  167. package/script/deps/jsr.io/@std/encoding/1.0.10/_common64.d.ts.map +0 -1
  168. package/script/deps/jsr.io/@std/encoding/1.0.10/_common64.js +0 -119
  169. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  170. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  171. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -16
  172. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  173. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  174. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -3
  175. package/script/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.d.ts +0 -2
  176. package/script/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.d.ts.map +0 -1
  177. package/script/deps/jsr.io/@std/encoding/1.0.10/_validate_binary_like.js +0 -29
  178. package/script/deps/jsr.io/@std/encoding/1.0.10/ascii85.d.ts +0 -61
  179. package/script/deps/jsr.io/@std/encoding/1.0.10/ascii85.d.ts.map +0 -1
  180. package/script/deps/jsr.io/@std/encoding/1.0.10/ascii85.js +0 -156
  181. package/script/deps/jsr.io/@std/encoding/1.0.10/base32.d.ts +0 -40
  182. package/script/deps/jsr.io/@std/encoding/1.0.10/base32.d.ts.map +0 -1
  183. package/script/deps/jsr.io/@std/encoding/1.0.10/base32.js +0 -91
  184. package/script/deps/jsr.io/@std/encoding/1.0.10/base58.d.ts +0 -40
  185. package/script/deps/jsr.io/@std/encoding/1.0.10/base58.d.ts.map +0 -1
  186. package/script/deps/jsr.io/@std/encoding/1.0.10/base58.js +0 -135
  187. package/script/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts +0 -40
  188. package/script/deps/jsr.io/@std/encoding/1.0.10/base64.d.ts.map +0 -1
  189. package/script/deps/jsr.io/@std/encoding/1.0.10/base64.js +0 -86
  190. package/script/deps/jsr.io/@std/encoding/1.0.10/base64url.d.ts +0 -40
  191. package/script/deps/jsr.io/@std/encoding/1.0.10/base64url.d.ts.map +0 -1
  192. package/script/deps/jsr.io/@std/encoding/1.0.10/base64url.js +0 -76
  193. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  194. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  195. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -91
  196. package/script/deps/jsr.io/@std/encoding/1.0.10/mod.d.ts +0 -98
  197. package/script/deps/jsr.io/@std/encoding/1.0.10/mod.d.ts.map +0 -1
  198. package/script/deps/jsr.io/@std/encoding/1.0.10/mod.js +0 -115
  199. package/script/deps/jsr.io/@std/encoding/1.0.10/varint.d.ts +0 -120
  200. package/script/deps/jsr.io/@std/encoding/1.0.10/varint.d.ts.map +0 -1
  201. package/script/deps/jsr.io/@std/encoding/1.0.10/varint.js +0 -211
  202. package/script/deps/jsr.io/@std/internal/1.0.12/_os.d.ts.map +0 -1
  203. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_data.d.ts +0 -0
  204. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_data.js +0 -0
  205. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.d.ts +0 -0
  206. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.js +0 -0
  207. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.d.ts +0 -0
  208. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.js +0 -0
  209. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.d.ts +0 -0
  210. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.d.ts +0 -0
  211. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.d.ts +0 -0
  212. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.js +0 -0
  213. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.d.ts +0 -0
  214. /package/esm/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.js +0 -0
  215. /package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.d.ts +0 -0
  216. /package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts +0 -0
  217. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_data.d.ts +0 -0
  218. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_data.js +0 -0
  219. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.d.ts +0 -0
  220. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/_run_length.js +0 -0
  221. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.d.ts +0 -0
  222. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/mod.js +0 -0
  223. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/parse_args.d.ts +0 -0
  224. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/prompt_secret.d.ts +0 -0
  225. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.d.ts +0 -0
  226. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unicode_width.js +0 -0
  227. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.d.ts +0 -0
  228. /package/script/deps/jsr.io/@std/cli/{1.0.27 → 1.0.29}/unstable_spinner.js +0 -0
  229. /package/script/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/_os.d.ts +0 -0
  230. /package/script/deps/jsr.io/@std/internal/{1.0.12 → 1.0.13}/os.d.ts +0 -0
package/README.md CHANGED
@@ -1,32 +1,42 @@
1
1
  # Glotto AI Translator
2
2
 
3
- Glotto is a powerful tool designed to translate i18n JSON files using advanced AI technology. It streamlines the localization process by automatically
4
- translating your language files to any target language while maintaining the JSON structure.
5
-
6
- ## Features
7
-
8
- - Translate JSON files while preserving the original structure
9
- - Support for multiple language pairs
10
- - Configurable batch processing with customizable key limits
11
- - Command-line interface for easy integration into your workflow
3
+ Glotto translates i18n JSON files (i18next, react-intl, vue-i18n, etc.) using AI providers without forcing the model to produce JSON. It walks the input JSON,
4
+ extracts every string leaf with its path, sends them to the model as plain-text tagged batches, and reconstructs the JSON from the responses. The original
5
+ structure, keys, arrays, variables and HTML tags are preserved by Glotto itself — the model only sees and produces text.
6
+
7
+ ## Why this approach
8
+
9
+ - **Provider-agnostic**: works with Gemini, OpenAI/OpenAI-compatible (Ollama, vLLM, TogetherAI, etc.) and Anthropic. Every provider implements the same
10
+ `TextTranslator` contract: text in, text out.
11
+ - **No JSON deadlock**: the model is never asked to emit valid JSON, so grammar-constrained sampling, broken responses and infinite loops on local models are
12
+ eliminated.
13
+ - **Structure-safe**: keys, nesting, arrays and non-string leaves (numbers, booleans, null, empty objects/arrays) are preserved by reconstruction, not by the
14
+ model.
15
+ - **Token efficient**: source size per request is bounded; failed entries are retried individually instead of re-sending the whole batch.
16
+ - **Variable preservation**: the prompt instructs the model to keep `{{name}}`, `__VAR__`, `$t(...)`, `%s`, `%d`, HTML tags and markdown intact.
17
+
18
+ ## How it works
19
+
20
+ 1. **Extract** — recursively walk the JSON and collect every leaf as `{ id, path, value, translatable }`. Empty objects/arrays are kept as non-translatable
21
+ leaves so the structure is rebuildable.
22
+ 2. **Batch** — group translatable leaves into batches by source byte size (`--max-batch-size`, default 12 KB).
23
+ 3. **Encode** — wrap each entry as `≪id≫value≪/id≫` and send a single prompt per batch.
24
+ 4. **Translate** — call `provider.translate(prompt) → string`. No JSON mode is requested.
25
+ 5. **Decode** — parse the response with the same tag regex, mapping `id → translation`.
26
+ 6. **Reconstruct** — walk all leaves, place translated values (or original values for non-translatable leaves) back into a fresh object/array tree following the
27
+ recorded path, then write the resulting JSON.
28
+
29
+ If a batch response is missing some IDs, only the missing entries are retried (with exponential backoff) — the successful ones are kept.
12
30
 
13
31
  ## Installation
14
32
 
15
- Glotto can be installed and used through either JSR (Deno) or npm. Choose the method that best suits your development environment.
16
-
17
33
  ### [JSR (Deno)](https://jsr.io/@ibodev/glotto)
18
34
 
19
- #### Global Installation
20
-
21
- Install Glotto globally to use it as a CLI tool from anywhere:
22
-
23
35
  ```bash
24
36
  deno install --global --name glotto -A jsr:@ibodev/glotto
25
37
  ```
26
38
 
27
- #### Direct Execution
28
-
29
- Alternatively, run Glotto directly without installation:
39
+ Or run without installing:
30
40
 
31
41
  ```bash
32
42
  deno run -A jsr:@ibodev/glotto
@@ -34,19 +44,11 @@ deno run -A jsr:@ibodev/glotto
34
44
 
35
45
  ### [npm (Node)](https://www.npmjs.com/package/glotto)
36
46
 
37
- #### Global Installation
38
-
39
- Install Glotto globally via npm to use it as a CLI tool:
40
-
41
47
  ```bash
42
48
  npm install --global glotto
43
49
  ```
44
50
 
45
- After installation, the `glotto` command will be available in your terminal.
46
-
47
- #### Direct Execution
48
-
49
- Run Glotto directly using npx without installation:
51
+ Or via npx:
50
52
 
51
53
  ```bash
52
54
  npx glotto
@@ -54,73 +56,102 @@ npx glotto
54
56
 
55
57
  ## Usage
56
58
 
57
- ### Basic usage (default Gemini)
59
+ ### Basic (default Gemini)
58
60
 
59
61
  ```bash
60
62
  glotto --key <gemini-api-key> -i en.json -o ar.json -f English -t Arabic
61
63
  ```
62
64
 
63
- ### Use OpenAI instead of Gemini
65
+ ### OpenAI / OpenAI-compatible (Ollama, vLLM, etc.)
66
+
67
+ ```bash
68
+ glotto --key <openai-api-key> -i en.json -o tr.json -f English -t Turkish -p openai
69
+ ```
70
+
71
+ Custom base URL (e.g. local Ollama):
64
72
 
65
73
  ```bash
66
- glotto --key <openai-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p openai
74
+ glotto --key any-string -i en.json -o tr.json -f English -t Turkish \
75
+ -p openai -m qwen2.5:32b --url http://localhost:11434/v1
67
76
  ```
68
77
 
69
- Optional custom OpenAI base URL:
78
+ ### Anthropic (Claude)
70
79
 
71
80
  ```bash
72
- glotto --key <openai-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p openai --url=https://api.openai.com/v1
81
+ glotto --key <anthropic-api-key> -i en.json -o tr.json -f English -t Turkish -p anthropic
73
82
  ```
74
83
 
75
- ### Use Anthropic (Claude)
84
+ ### Override the model
76
85
 
77
86
  ```bash
78
- glotto --key <anthropic-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p anthropic
87
+ glotto --key <openai-api-key> -i en.json -o tr.json -f English -t Turkish -p openai -m gpt-4.1
79
88
  ```
80
89
 
81
- Optional custom Anthropic base URL:
90
+ ### Disable rate-limit delay and request timeout
82
91
 
83
92
  ```bash
84
- glotto --key <anthropic-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p anthropic --url=https://api.anthropic.com
93
+ glotto --key <key> -i en.json -o tr.json -f English -t Turkish --no-limit --no-timeout
85
94
  ```
86
95
 
87
- Override default model for a provider:
96
+ ### Tune batch size
97
+
98
+ `--max-batch-size` is the maximum source bytes per batch, in KB. Smaller batches mean more requests but lower per-request token cost; larger batches mean fewer
99
+ requests.
88
100
 
89
101
  ```bash
90
- glotto --key <openai-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p openai -m gpt-4.1
102
+ glotto --key <key> -i en.json -o tr.json -f English -t Turkish --max-batch-size 8
91
103
  ```
92
104
 
93
- ### Parameters
105
+ ## Parameters
106
+
107
+ | Flag | Description |
108
+ | ------------------ | ------------------------------------------------------------------------------------ |
109
+ | `--key` | API key for the chosen provider (required) |
110
+ | `-p`, `--provider` | `gemini` \| `openai` \| `anthropic` (default `gemini`) |
111
+ | `-m`, `--model` | Model name (defaults: `gemini-2.5-flash`, `gpt-4.1-mini`, `claude-3-5-haiku-latest`) |
112
+ | `-i`, `--input` | Source JSON file (required) |
113
+ | `-o`, `--output` | Target JSON file (required) |
114
+ | `-f`, `--from` | Source language |
115
+ | `-t`, `--to` | Target language |
116
+ | `--url` | Custom base URL for OpenAI/Anthropic |
117
+ | `--no-limit` | Skip the inter-batch rate-limit delay |
118
+ | `--no-timeout` | Disable request timeout |
119
+ | `--max-batch-size` | Max source bytes per batch in KB (default 12) |
120
+ | `-h`, `--help` | Help |
121
+ | `-v`, `--version` | Version |
122
+
123
+ ## Recommended models
94
124
 
95
- - `--key`: API key for the selected AI provider
96
- - `--input` or `-i`: Source JSON file
97
- - `--output` or `-o`: Target JSON file
98
- - `--from` or `-f`: Source language
99
- - `--to` or `-t`: Target language
100
- - `--provider` or `-p`: AI provider (`gemini` | `openai` | `anthropic`, default: `gemini`)
101
- - `--model` or `-m`: Model name for the selected provider (defaults: `gemini-2.5-flash`, `gpt-4.1-mini`, `claude-3-5-haiku-latest`)
102
- - `--url`: Custom base URL for OpenAI/Anthropic (optional)
125
+ For high-quality multilingual output via OpenAI-compatible endpoints (Ollama, vLLM):
126
+
127
+ - `aya-expanse:32b` Cohere multilingual specialist, strong Turkish/Arabic/EU languages
128
+ - `qwen2.5:32b` / `qwen2.5:14b` strong general multilingual + instruction-following
129
+ - `mistral-small3:24b` lighter, ~13 GB at q4
130
+ - `gemma3:27b-it` Google instruction-tuned
131
+
132
+ Pure translation-only models (e.g. translategemma) are not ideal here: the prompt asks the model to preserve tags and follow per-entry instructions, which
133
+ requires instruction-following rather than a sentence-translation fine-tune.
103
134
 
104
135
  ## Development
105
136
 
106
- To run the project in development mode:
137
+ Run from source:
107
138
 
108
139
  ```bash
109
- deno task cli --key <gemini-or-openai-api-key> --input=en.json --output=tr.json --from=English --to=Turkish -p gemini
140
+ deno task cli --key <key> -i en.json -o tr.json -f English -t Turkish -p gemini
110
141
  ```
111
142
 
112
- ### Building the Project
113
-
114
- To create a production build:
143
+ Build a single-file binary:
115
144
 
116
145
  ```bash
117
146
  deno task build
118
147
  ```
119
148
 
120
- ## Contributing
149
+ Build npm package:
121
150
 
122
- Contributions are welcome! Feel free to submit issues and pull requests.
151
+ ```bash
152
+ deno task build:npm
153
+ ```
123
154
 
124
155
  ## License
125
156
 
126
- MIT Licence @ 2026
157
+ MIT © 2026
package/esm/cli.js CHANGED
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import "./_dnt.polyfills.js";
3
3
  import * as dntShim from "./_dnt.shims.js";
4
- import { Spinner } from './deps/jsr.io/@std/cli/1.0.27/unstable_spinner.js';
5
- import { parseArgs } from './deps/jsr.io/@std/cli/1.0.27/mod.js';
6
- import { getImportJson, resolvePath, splitJson, writeOutput } from './src/file.js';
7
- import { DEFAULT_PROVIDER, HELP_TEXT } from './src/contants.js';
4
+ import { Spinner } from './deps/jsr.io/@std/cli/1.0.29/unstable_spinner.js';
5
+ import { parseArgs } from './deps/jsr.io/@std/cli/1.0.29/mod.js';
6
+ import { getImportJson, resolvePath, writeOutput } from './src/file.js';
7
+ import { extractLeaves, groupIntoBatches, reconstruct, runBatches } from './src/translator.js';
8
+ import { DEFAULT_MAX_BATCH_BYTES, DEFAULT_PROVIDER, HELP_TEXT } from './src/contants.js';
8
9
  import { formatBytes, validateArgs } from './src/utilites.js';
9
10
  import { logger } from './src/logger.js';
10
11
  import denoJson from './deno.js';
@@ -12,11 +13,23 @@ import Gemini from './src/providers/gemini.js';
12
13
  import OpenAIModel from './src/providers/openai.js';
13
14
  import AnthropicModel from './src/providers/anthropic.js';
14
15
  const spinner = new Spinner({ message: 'AI Thinks...', color: 'cyan' });
16
+ const createTranslator = (args, options) => {
17
+ switch (args.provider) {
18
+ case 'gemini':
19
+ return new Gemini(args.key, args.model, options);
20
+ case 'openai':
21
+ return new OpenAIModel(args.key, args.url, args.model, options);
22
+ case 'anthropic':
23
+ return new AnthropicModel(args.key, args.url, args.model, options);
24
+ default:
25
+ throw new Error(`Unknown provider: ${args.provider}`);
26
+ }
27
+ };
15
28
  async function main() {
16
29
  try {
17
30
  const args = parseArgs(dntShim.Deno.args, {
18
- string: ['key', 'provider', 'model', 'input', 'output', 'from', 'to', 'url'],
19
- boolean: ['help', 'version'],
31
+ string: ['key', 'provider', 'model', 'input', 'output', 'from', 'to', 'url', 'max-batch-size'],
32
+ boolean: ['help', 'version', 'no-limit', 'no-timeout'],
20
33
  alias: {
21
34
  provider: 'p',
22
35
  model: 'm',
@@ -33,8 +46,7 @@ async function main() {
33
46
  const help = args.help || dntShim.Deno.args.length === 0;
34
47
  const version = args.version;
35
48
  if (version) {
36
- const VERSION = denoJson.version;
37
- logger.info('Glotto version: ' + VERSION);
49
+ logger.info('Glotto version: ' + denoJson.version);
38
50
  dntShim.Deno.exit(0);
39
51
  }
40
52
  if (help) {
@@ -43,49 +55,45 @@ async function main() {
43
55
  }
44
56
  const validatedArgs = validateArgs(args);
45
57
  const fileContent = await getImportJson(validatedArgs.input);
46
- const chunks = splitJson(fileContent);
47
- const totalBytes = chunks.reduce((sum, c) => sum + c.byteSize, 0);
48
- const totalKeys = chunks.reduce((sum, c) => sum + c.keyCount, 0);
49
- const outputPath = resolvePath(validatedArgs.output);
58
+ const allLeaves = extractLeaves(fileContent);
59
+ const translatableLeaves = allLeaves.filter((leaf) => leaf.translatable);
60
+ const batches = groupIntoBatches(allLeaves, validatedArgs.maxBatchBytes);
61
+ const totalBytes = batches.reduce((sum, b) => sum + b.byteSize, 0);
50
62
  logger.info('Provider: ', validatedArgs.provider);
51
63
  logger.info('Input: ', validatedArgs.input);
52
64
  logger.info('Output: ', validatedArgs.output);
53
65
  logger.info('From: ', validatedArgs.from);
54
66
  logger.info('To: ', validatedArgs.to);
55
- if (validatedArgs.model) {
67
+ if (validatedArgs.model)
56
68
  logger.info('Model: ', validatedArgs.model);
57
- }
58
- if (validatedArgs.url) {
69
+ if (validatedArgs.url)
59
70
  logger.info('URL: ', validatedArgs.url);
71
+ if (validatedArgs.noLimit)
72
+ logger.info('Rate limit protection: disabled (--no-limit)');
73
+ if (validatedArgs.noTimeout)
74
+ logger.info('Request timeout: disabled (--no-timeout)');
75
+ if (validatedArgs.maxBatchBytes !== DEFAULT_MAX_BATCH_BYTES) {
76
+ logger.info(`Max batch size: ${formatBytes(validatedArgs.maxBatchBytes)}`);
60
77
  }
61
- logger.info(`Total: ${totalKeys} keys, ${formatBytes(totalBytes)}, split into ${chunks.length} chunk(s)`);
62
- for (const chunk of chunks) {
63
- logger.info(` Chunk ${chunk.index + 1}: ${chunk.keyCount} keys, ${formatBytes(chunk.byteSize)}`);
78
+ logger.info(`Total: ${translatableLeaves.length} translatable entries (of ${allLeaves.length} leaves), ${formatBytes(totalBytes)}, split into ${batches.length} batch(es)`);
79
+ for (const batch of batches) {
80
+ logger.info(` Batch ${batch.index + 1}: ${batch.leaves.length} entries, ${formatBytes(batch.byteSize)}`);
64
81
  }
65
- spinner.start();
66
- let result = '';
67
- switch (validatedArgs.provider) {
68
- case 'gemini': {
69
- const gemini = new Gemini(validatedArgs.key, chunks, validatedArgs.from, validatedArgs.to, validatedArgs.model);
70
- result = await gemini.translate();
71
- break;
72
- }
73
- case 'openai': {
74
- const openai = new OpenAIModel(validatedArgs.key, chunks, validatedArgs.from, validatedArgs.to, validatedArgs.url, validatedArgs.model);
75
- result = await openai.translate();
76
- break;
77
- }
78
- case 'anthropic': {
79
- const anthropic = new AnthropicModel(validatedArgs.key, chunks, validatedArgs.from, validatedArgs.to, validatedArgs.url, validatedArgs.model);
80
- result = await anthropic.translate();
81
- break;
82
- }
83
- default: {
84
- logger.warn('Provider not found');
85
- break;
86
- }
82
+ if (batches.length === 0) {
83
+ logger.warn('No translatable entries found, copying input to output');
84
+ await writeOutput(resolvePath(validatedArgs.output), JSON.stringify(fileContent, null, 2));
85
+ dntShim.Deno.exit(0);
87
86
  }
88
- await writeOutput(outputPath, result);
87
+ const translateOptions = {
88
+ noLimit: validatedArgs.noLimit,
89
+ noTimeout: validatedArgs.noTimeout,
90
+ };
91
+ const translator = createTranslator(validatedArgs, translateOptions);
92
+ spinner.start();
93
+ const translations = await runBatches(batches, translator, validatedArgs.from, validatedArgs.to, translateOptions);
94
+ const result = reconstruct(allLeaves, translations);
95
+ const outputPath = resolvePath(validatedArgs.output);
96
+ await writeOutput(outputPath, JSON.stringify(result, null, 2));
89
97
  spinner.stop();
90
98
  logger.success('Translation completed');
91
99
  }
package/esm/deno.d.ts CHANGED
@@ -23,10 +23,10 @@ declare namespace _default {
23
23
  "@google/genai": string;
24
24
  "@openai/openai": string;
25
25
  "@std/cli": string;
26
- "@std/encoding": string;
27
26
  "@std/path": string;
28
27
  consola: string;
29
28
  };
29
+ let allowScripts: string[];
30
30
  }
31
31
  export default _default;
32
32
  //# sourceMappingURL=deno.d.ts.map
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "@ibodev/glotto",
3
- "version": "2.8.0",
3
+ "version": "3.0.0",
4
4
  "exports": "./cli.ts",
5
5
  "lock": false,
6
6
  "nodeModulesDir": "auto",
@@ -18,13 +18,13 @@ export default {
18
18
  "lineWidth": 160
19
19
  },
20
20
  "imports": {
21
- "@anthropic-ai/sdk": "npm:@anthropic-ai/sdk@^0.74.0",
21
+ "@anthropic-ai/sdk": "npm:@anthropic-ai/sdk@^0.95.0",
22
22
  "@deno/dnt": "jsr:@deno/dnt@^0.42.3",
23
- "@google/genai": "npm:@google/genai@^1.41.0",
24
- "@openai/openai": "npm:openai@^4.77.3",
25
- "@std/cli": "jsr:@std/cli@^1.0.27",
26
- "@std/encoding": "jsr:@std/encoding@^1.0.10",
23
+ "@google/genai": "npm:@google/genai@^1.52.0",
24
+ "@openai/openai": "npm:openai@^6.36.0",
25
+ "@std/cli": "jsr:@std/cli@^1.0.29",
27
26
  "@std/path": "jsr:@std/path@^1.1.4",
28
27
  "consola": "npm:consola@^3.4.2"
29
- }
28
+ },
29
+ "allowScripts": ["npm:@google/genai@1.52.0", "npm:protobufjs@7.5.6"]
30
30
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_data.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/_data.js"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"_run_length.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/_run_length.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE;;;EA0B5C;AAED,wBAAgB,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,2BAUjE"}
1
+ {"version":3,"file":"_run_length.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/_run_length.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE;;;EA0B5C;AAED,wBAAgB,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,2BAUjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse_args.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/parse_args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse_args.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/parse_args.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2026 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- const FLAG_REGEXP = /^(?:-(?:(?<doubleDash>-)(?<negated>no-)?)?)(?<key>.+?)(?:=(?<value>.+?))?$/s;
3
+ const FLAG_REGEXP = /^(?:-(?:(?<doubleDash>-)(?<negated>no-)?)?)(?<key>.+?)(?:=(?<value>.*))?$/s;
4
4
  const LETTER_REGEXP = /[A-Za-z]/;
5
5
  const NUMBER_REGEXP = /-?\d+(\.\d*)?(e-?\d+)?$/;
6
6
  const HYPHEN_REGEXP = /^(-|--)[^-]/;
@@ -11,10 +11,20 @@ const NON_WHITESPACE_REGEXP = /\S/;
11
11
  function isNumber(string) {
12
12
  return NON_WHITESPACE_REGEXP.test(string) && Number.isFinite(Number(string));
13
13
  }
14
+ function isConstructorOrProto(obj, key) {
15
+ return (key === "constructor" && typeof obj[key] === "function") ||
16
+ key === "__proto__";
17
+ }
14
18
  function setNested(object, keys, value, collect = false) {
15
19
  keys = [...keys];
16
20
  const key = keys.pop();
17
- keys.forEach((key) => object = (object[key] ??= {}));
21
+ for (const k of keys) {
22
+ if (isConstructorOrProto(object, k))
23
+ return;
24
+ object = (object[k] ??= {});
25
+ }
26
+ if (isConstructorOrProto(object, key))
27
+ return;
18
28
  if (collect) {
19
29
  const v = object[key];
20
30
  if (Array.isArray(v)) {
@@ -239,7 +249,7 @@ export function parseArgs(args, options) {
239
249
  let key = groups.key;
240
250
  let value = groups.value;
241
251
  if (doubleDash) {
242
- if (value) {
252
+ if (value != null) {
243
253
  if (booleanSet.has(key))
244
254
  value = parseBooleanString(value);
245
255
  setArgument(key, value, arg, true);
@@ -281,6 +291,10 @@ export function parseArgs(args, options) {
281
291
  setArgument(letter, next, arg, true);
282
292
  continue;
283
293
  }
294
+ if (next === "=") {
295
+ setArgument(letter, "", arg, true);
296
+ continue argsLoop;
297
+ }
284
298
  if (LETTER_REGEXP.test(letter)) {
285
299
  const groups = VALUE_REGEXP.exec(next)?.groups;
286
300
  if (groups) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompt_secret.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/prompt_secret.ts"],"names":[],"mappings":"AAiBA,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,OAAO,SAAW,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,GAAG,IAAI,CAyDf"}
1
+ {"version":3,"file":"prompt_secret.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/prompt_secret.ts"],"names":[],"mappings":"AAiBA,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,OAAO,SAAW,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,GAAG,IAAI,CAyDf"}
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2026 the Deno authors. MIT license.
2
2
  import * as dntShim from "../../../../../_dnt.shims.js";
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  const encoder = new TextEncoder();
5
5
  const decoder = new TextDecoder();
6
6
  const LF = "\n".charCodeAt(0); // ^J - Enter on Linux
@@ -1 +1 @@
1
- {"version":3,"file":"unicode_width.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/unicode_width.ts"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
1
+ {"version":3,"file":"unicode_width.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/unicode_width.ts"],"names":[],"mappings":"AAsCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"unstable_spinner.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.27/unstable_spinner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAUxD;;;;;;;GAOG;AAEH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,IAAI,CAAC;AAcT;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAClE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,OAAO;;IAGlB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,EAAE,MAAM,CAAC;IAOhB;;;;OAIG;gBACS,OAAO,CAAC,EAAE,cAAc;IAcpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAEjC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAE7B;IAED;;;;;;;;;;OAUG;IACH,KAAK;IA4BL;;;;;;;;;;;;;;;OAeG;IACH,IAAI;CAML"}
1
+ {"version":3,"file":"unstable_spinner.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/cli/1.0.29/unstable_spinner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAUxD;;;;;;;GAOG;AAEH,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC;AAE/B;;;;GAIG;AACH,MAAM,MAAM,KAAK,GACb,OAAO,GACP,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,IAAI,CAAC;AAcT;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAClE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,OAAO;;IAGlB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,EAAE,MAAM,CAAC;IAOhB;;;;OAIG;gBACS,OAAO,CAAC,EAAE,cAAc;IAcpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAEjC;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAE7B;IAED;;;;;;;;;;OAUG;IACH,KAAK;IA4BL;;;;;;;;;;;;;;;OAeG;IACH,IAAI;CAML"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_os.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.13/_os.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,IAAI,OAAO,CAUtC"}
@@ -1,4 +1,4 @@
1
- // Copyright 2018-2025 the Deno authors. MIT license.
1
+ // Copyright 2018-2026 the Deno authors. MIT license.
2
2
  import * as dntShim from "../../../../../_dnt.shims.js";
3
3
  export function checkWindows() {
4
4
  // deno-lint-ignore no-explicit-any
@@ -1 +1 @@
1
- {"version":3,"file":"os.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.12/os.ts"],"names":[],"mappings":"AAKA,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,OAAwB,CAAC"}
1
+ {"version":3,"file":"os.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/internal/1.0.13/os.ts"],"names":[],"mappings":"AAKA,8CAA8C;AAC9C,eAAO,MAAM,SAAS,EAAE,OAAwB,CAAC"}
@@ -1,4 +1,4 @@
1
- // Copyright 2018-2025 the Deno authors. MIT license.
1
+ // Copyright 2018-2026 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
3
  import { checkWindows } from "./_os.js";
4
4
  /** Whether the current platform is Windows */
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { basename as posixBasename } from "./posix/basename.js";
5
5
  import { basename as windowsBasename } from "./windows/basename.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  /**
5
5
  * The character used to separate entries in the PATH environment variable.
6
6
  * On Windows, this is `;`. On all other platforms, this is `:`.
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { dirname as posixDirname } from "./posix/dirname.js";
5
5
  import { dirname as windowsDirname } from "./windows/dirname.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { extname as posixExtname } from "./posix/extname.js";
5
5
  import { extname as windowsExtname } from "./windows/extname.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { format as posixFormat } from "./posix/format.js";
5
5
  import { format as windowsFormat } from "./windows/format.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { fromFileUrl as posixFromFileUrl } from "./posix/from_file_url.js";
5
5
  import { fromFileUrl as windowsFromFileUrl } from "./windows/from_file_url.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { globToRegExp as posixGlobToRegExp } from "./posix/glob_to_regexp.js";
5
5
  import { globToRegExp as windowsGlobToRegExp, } from "./windows/glob_to_regexp.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { isAbsolute as posixIsAbsolute } from "./posix/is_absolute.js";
5
5
  import { isAbsolute as windowsIsAbsolute } from "./windows/is_absolute.js";
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  // Copyright 2018-2025 the Deno authors. MIT license.
2
2
  // This module is browser compatible.
3
- import { isWindows } from "../../internal/1.0.12/os.js";
3
+ import { isWindows } from "../../internal/1.0.13/os.js";
4
4
  import { join as posixJoin } from "./posix/join.js";
5
5
  import { join as windowsJoin } from "./windows/join.js";
6
6
  /**