colyn-cli 3.1.4

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 (263) hide show
  1. package/README-en.md +85 -0
  2. package/README.md +85 -0
  3. package/bin/colyn +25 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +116 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/add.d.ts +6 -0
  9. package/dist/commands/add.d.ts.map +1 -0
  10. package/dist/commands/add.helpers.d.ts +48 -0
  11. package/dist/commands/add.helpers.d.ts.map +1 -0
  12. package/dist/commands/add.helpers.js +251 -0
  13. package/dist/commands/add.helpers.js.map +1 -0
  14. package/dist/commands/add.js +286 -0
  15. package/dist/commands/add.js.map +1 -0
  16. package/dist/commands/checkout.d.ts +16 -0
  17. package/dist/commands/checkout.d.ts.map +1 -0
  18. package/dist/commands/checkout.js +428 -0
  19. package/dist/commands/checkout.js.map +1 -0
  20. package/dist/commands/completion.d.ts +10 -0
  21. package/dist/commands/completion.d.ts.map +1 -0
  22. package/dist/commands/completion.js +380 -0
  23. package/dist/commands/completion.js.map +1 -0
  24. package/dist/commands/config.d.ts +11 -0
  25. package/dist/commands/config.d.ts.map +1 -0
  26. package/dist/commands/config.js +338 -0
  27. package/dist/commands/config.js.map +1 -0
  28. package/dist/commands/index.d.ts +10 -0
  29. package/dist/commands/index.d.ts.map +1 -0
  30. package/dist/commands/index.js +41 -0
  31. package/dist/commands/index.js.map +1 -0
  32. package/dist/commands/info.d.ts +6 -0
  33. package/dist/commands/info.d.ts.map +1 -0
  34. package/dist/commands/info.js +374 -0
  35. package/dist/commands/info.js.map +1 -0
  36. package/dist/commands/init.d.ts +6 -0
  37. package/dist/commands/init.d.ts.map +1 -0
  38. package/dist/commands/init.handlers.d.ts +27 -0
  39. package/dist/commands/init.handlers.d.ts.map +1 -0
  40. package/dist/commands/init.handlers.js +314 -0
  41. package/dist/commands/init.handlers.js.map +1 -0
  42. package/dist/commands/init.helpers.d.ts +42 -0
  43. package/dist/commands/init.helpers.d.ts.map +1 -0
  44. package/dist/commands/init.helpers.js +275 -0
  45. package/dist/commands/init.helpers.js.map +1 -0
  46. package/dist/commands/init.js +61 -0
  47. package/dist/commands/init.js.map +1 -0
  48. package/dist/commands/install.d.ts +6 -0
  49. package/dist/commands/install.d.ts.map +1 -0
  50. package/dist/commands/install.helpers.d.ts +32 -0
  51. package/dist/commands/install.helpers.d.ts.map +1 -0
  52. package/dist/commands/install.helpers.js +124 -0
  53. package/dist/commands/install.helpers.js.map +1 -0
  54. package/dist/commands/install.js +104 -0
  55. package/dist/commands/install.js.map +1 -0
  56. package/dist/commands/list-project.d.ts +11 -0
  57. package/dist/commands/list-project.d.ts.map +1 -0
  58. package/dist/commands/list-project.js +260 -0
  59. package/dist/commands/list-project.js.map +1 -0
  60. package/dist/commands/list.d.ts +15 -0
  61. package/dist/commands/list.d.ts.map +1 -0
  62. package/dist/commands/list.helpers.d.ts +50 -0
  63. package/dist/commands/list.helpers.d.ts.map +1 -0
  64. package/dist/commands/list.helpers.js +143 -0
  65. package/dist/commands/list.helpers.js.map +1 -0
  66. package/dist/commands/list.js +530 -0
  67. package/dist/commands/list.js.map +1 -0
  68. package/dist/commands/merge.d.ts +6 -0
  69. package/dist/commands/merge.d.ts.map +1 -0
  70. package/dist/commands/merge.helpers.d.ts +74 -0
  71. package/dist/commands/merge.helpers.d.ts.map +1 -0
  72. package/dist/commands/merge.helpers.js +307 -0
  73. package/dist/commands/merge.helpers.js.map +1 -0
  74. package/dist/commands/merge.js +260 -0
  75. package/dist/commands/merge.js.map +1 -0
  76. package/dist/commands/release.d.ts +6 -0
  77. package/dist/commands/release.d.ts.map +1 -0
  78. package/dist/commands/release.helpers.d.ts +61 -0
  79. package/dist/commands/release.helpers.d.ts.map +1 -0
  80. package/dist/commands/release.helpers.js +277 -0
  81. package/dist/commands/release.helpers.js.map +1 -0
  82. package/dist/commands/release.js +127 -0
  83. package/dist/commands/release.js.map +1 -0
  84. package/dist/commands/remove.d.ts +6 -0
  85. package/dist/commands/remove.d.ts.map +1 -0
  86. package/dist/commands/remove.helpers.d.ts +59 -0
  87. package/dist/commands/remove.helpers.d.ts.map +1 -0
  88. package/dist/commands/remove.helpers.js +190 -0
  89. package/dist/commands/remove.helpers.js.map +1 -0
  90. package/dist/commands/remove.js +137 -0
  91. package/dist/commands/remove.js.map +1 -0
  92. package/dist/commands/repair.d.ts +6 -0
  93. package/dist/commands/repair.d.ts.map +1 -0
  94. package/dist/commands/repair.helpers.d.ts +5 -0
  95. package/dist/commands/repair.helpers.d.ts.map +1 -0
  96. package/dist/commands/repair.helpers.js +499 -0
  97. package/dist/commands/repair.helpers.js.map +1 -0
  98. package/dist/commands/repair.js +28 -0
  99. package/dist/commands/repair.js.map +1 -0
  100. package/dist/commands/status.d.ts +6 -0
  101. package/dist/commands/status.d.ts.map +1 -0
  102. package/dist/commands/status.js +116 -0
  103. package/dist/commands/status.js.map +1 -0
  104. package/dist/commands/system-integration.d.ts +6 -0
  105. package/dist/commands/system-integration.d.ts.map +1 -0
  106. package/dist/commands/system-integration.helpers.d.ts +70 -0
  107. package/dist/commands/system-integration.helpers.d.ts.map +1 -0
  108. package/dist/commands/system-integration.helpers.js +313 -0
  109. package/dist/commands/system-integration.helpers.js.map +1 -0
  110. package/dist/commands/system-integration.js +132 -0
  111. package/dist/commands/system-integration.js.map +1 -0
  112. package/dist/commands/tmux.d.ts +11 -0
  113. package/dist/commands/tmux.d.ts.map +1 -0
  114. package/dist/commands/tmux.js +500 -0
  115. package/dist/commands/tmux.js.map +1 -0
  116. package/dist/commands/todo.d.ts +6 -0
  117. package/dist/commands/todo.d.ts.map +1 -0
  118. package/dist/commands/todo.helpers.d.ts +50 -0
  119. package/dist/commands/todo.helpers.d.ts.map +1 -0
  120. package/dist/commands/todo.helpers.js +297 -0
  121. package/dist/commands/todo.helpers.js.map +1 -0
  122. package/dist/commands/todo.js +579 -0
  123. package/dist/commands/todo.js.map +1 -0
  124. package/dist/commands/update.d.ts +18 -0
  125. package/dist/commands/update.d.ts.map +1 -0
  126. package/dist/commands/update.helpers.d.ts +89 -0
  127. package/dist/commands/update.helpers.d.ts.map +1 -0
  128. package/dist/commands/update.helpers.js +335 -0
  129. package/dist/commands/update.helpers.js.map +1 -0
  130. package/dist/commands/update.js +187 -0
  131. package/dist/commands/update.js.map +1 -0
  132. package/dist/core/config-loader.d.ts +47 -0
  133. package/dist/core/config-loader.d.ts.map +1 -0
  134. package/dist/core/config-loader.js +188 -0
  135. package/dist/core/config-loader.js.map +1 -0
  136. package/dist/core/config-merger.d.ts +29 -0
  137. package/dist/core/config-merger.d.ts.map +1 -0
  138. package/dist/core/config-merger.js +100 -0
  139. package/dist/core/config-merger.js.map +1 -0
  140. package/dist/core/config-migration.d.ts +64 -0
  141. package/dist/core/config-migration.d.ts.map +1 -0
  142. package/dist/core/config-migration.js +340 -0
  143. package/dist/core/config-migration.js.map +1 -0
  144. package/dist/core/config-new.d.ts +19 -0
  145. package/dist/core/config-new.d.ts.map +1 -0
  146. package/dist/core/config-new.js +58 -0
  147. package/dist/core/config-new.js.map +1 -0
  148. package/dist/core/config-schema.d.ts +221 -0
  149. package/dist/core/config-schema.d.ts.map +1 -0
  150. package/dist/core/config-schema.js +168 -0
  151. package/dist/core/config-schema.js.map +1 -0
  152. package/dist/core/config.d.ts +55 -0
  153. package/dist/core/config.d.ts.map +1 -0
  154. package/dist/core/config.js +143 -0
  155. package/dist/core/config.js.map +1 -0
  156. package/dist/core/dev-server.d.ts +29 -0
  157. package/dist/core/dev-server.d.ts.map +1 -0
  158. package/dist/core/dev-server.js +54 -0
  159. package/dist/core/dev-server.js.map +1 -0
  160. package/dist/core/discovery.d.ts +51 -0
  161. package/dist/core/discovery.d.ts.map +1 -0
  162. package/dist/core/discovery.js +247 -0
  163. package/dist/core/discovery.js.map +1 -0
  164. package/dist/core/env.d.ts +13 -0
  165. package/dist/core/env.d.ts.map +1 -0
  166. package/dist/core/env.js +75 -0
  167. package/dist/core/env.js.map +1 -0
  168. package/dist/core/git.d.ts +31 -0
  169. package/dist/core/git.d.ts.map +1 -0
  170. package/dist/core/git.js +56 -0
  171. package/dist/core/git.js.map +1 -0
  172. package/dist/core/paths.d.ts +86 -0
  173. package/dist/core/paths.d.ts.map +1 -0
  174. package/dist/core/paths.js +256 -0
  175. package/dist/core/paths.js.map +1 -0
  176. package/dist/core/tmux-config.d.ts +174 -0
  177. package/dist/core/tmux-config.d.ts.map +1 -0
  178. package/dist/core/tmux-config.js +545 -0
  179. package/dist/core/tmux-config.js.map +1 -0
  180. package/dist/core/tmux-config.legacy.d.ts +243 -0
  181. package/dist/core/tmux-config.legacy.d.ts.map +1 -0
  182. package/dist/core/tmux-config.legacy.js +896 -0
  183. package/dist/core/tmux-config.legacy.js.map +1 -0
  184. package/dist/core/tmux.d.ts +214 -0
  185. package/dist/core/tmux.d.ts.map +1 -0
  186. package/dist/core/tmux.js +712 -0
  187. package/dist/core/tmux.js.map +1 -0
  188. package/dist/core/toolchain-resolver.d.ts +51 -0
  189. package/dist/core/toolchain-resolver.d.ts.map +1 -0
  190. package/dist/core/toolchain-resolver.js +364 -0
  191. package/dist/core/toolchain-resolver.js.map +1 -0
  192. package/dist/core/worktree-status.d.ts +20 -0
  193. package/dist/core/worktree-status.d.ts.map +1 -0
  194. package/dist/core/worktree-status.js +67 -0
  195. package/dist/core/worktree-status.js.map +1 -0
  196. package/dist/i18n/index.d.ts +36 -0
  197. package/dist/i18n/index.d.ts.map +1 -0
  198. package/dist/i18n/index.js +157 -0
  199. package/dist/i18n/index.js.map +1 -0
  200. package/dist/i18n/locales/en.d.ts +866 -0
  201. package/dist/i18n/locales/en.d.ts.map +1 -0
  202. package/dist/i18n/locales/en.js +985 -0
  203. package/dist/i18n/locales/en.js.map +1 -0
  204. package/dist/i18n/locales/zh-CN.d.ts +865 -0
  205. package/dist/i18n/locales/zh-CN.d.ts.map +1 -0
  206. package/dist/i18n/locales/zh-CN.js +985 -0
  207. package/dist/i18n/locales/zh-CN.js.map +1 -0
  208. package/dist/index.d.ts +2 -0
  209. package/dist/index.d.ts.map +1 -0
  210. package/dist/index.js +4 -0
  211. package/dist/index.js.map +1 -0
  212. package/dist/plugins/builtin/gradle.d.ts +9 -0
  213. package/dist/plugins/builtin/gradle.d.ts.map +1 -0
  214. package/dist/plugins/builtin/gradle.js +164 -0
  215. package/dist/plugins/builtin/gradle.js.map +1 -0
  216. package/dist/plugins/builtin/maven.d.ts +9 -0
  217. package/dist/plugins/builtin/maven.d.ts.map +1 -0
  218. package/dist/plugins/builtin/maven.js +127 -0
  219. package/dist/plugins/builtin/maven.js.map +1 -0
  220. package/dist/plugins/builtin/npm.d.ts +9 -0
  221. package/dist/plugins/builtin/npm.d.ts.map +1 -0
  222. package/dist/plugins/builtin/npm.js +238 -0
  223. package/dist/plugins/builtin/npm.js.map +1 -0
  224. package/dist/plugins/builtin/pip.d.ts +9 -0
  225. package/dist/plugins/builtin/pip.d.ts.map +1 -0
  226. package/dist/plugins/builtin/pip.js +210 -0
  227. package/dist/plugins/builtin/pip.js.map +1 -0
  228. package/dist/plugins/builtin/xcode.d.ts +12 -0
  229. package/dist/plugins/builtin/xcode.d.ts.map +1 -0
  230. package/dist/plugins/builtin/xcode.js +438 -0
  231. package/dist/plugins/builtin/xcode.js.map +1 -0
  232. package/dist/plugins/index.d.ts +13 -0
  233. package/dist/plugins/index.d.ts.map +1 -0
  234. package/dist/plugins/index.js +24 -0
  235. package/dist/plugins/index.js.map +1 -0
  236. package/dist/plugins/manager.d.ts +93 -0
  237. package/dist/plugins/manager.d.ts.map +1 -0
  238. package/dist/plugins/manager.js +270 -0
  239. package/dist/plugins/manager.js.map +1 -0
  240. package/dist/plugins/utils.d.ts +42 -0
  241. package/dist/plugins/utils.d.ts.map +1 -0
  242. package/dist/plugins/utils.js +175 -0
  243. package/dist/plugins/utils.js.map +1 -0
  244. package/dist/types/index.d.ts +104 -0
  245. package/dist/types/index.d.ts.map +1 -0
  246. package/dist/types/index.js +21 -0
  247. package/dist/types/index.js.map +1 -0
  248. package/dist/types/plugin.d.ts +200 -0
  249. package/dist/types/plugin.d.ts.map +1 -0
  250. package/dist/types/plugin.js +19 -0
  251. package/dist/types/plugin.js.map +1 -0
  252. package/dist/utils/logger.d.ts +42 -0
  253. package/dist/utils/logger.d.ts.map +1 -0
  254. package/dist/utils/logger.js +80 -0
  255. package/dist/utils/logger.js.map +1 -0
  256. package/docs/en/manual/04-command-reference/README.md +58 -0
  257. package/docs/en/manual/README.md +108 -0
  258. package/docs/zh-CN/manual/04-command-reference/README.md +58 -0
  259. package/docs/zh-CN/manual/README.md +108 -0
  260. package/package.json +65 -0
  261. package/shell/colyn.sh +55 -0
  262. package/shell/completion.bash +270 -0
  263. package/shell/completion.zsh +167 -0
@@ -0,0 +1,157 @@
1
+ /**
2
+ * i18n initialization and exports
3
+ */
4
+ import i18next from 'i18next';
5
+ import { en } from './locales/en.js';
6
+ import { zhCN } from './locales/zh-CN.js';
7
+ import { getLang } from '../core/config.js';
8
+ // Debug flag
9
+ const DEBUG = process.env.DEBUG?.includes('colyn:i18n');
10
+ /**
11
+ * Supported languages
12
+ */
13
+ const SUPPORTED_LANGUAGES = ['en', 'zh-CN'];
14
+ /**
15
+ * Check if a language is supported
16
+ */
17
+ function isSupported(lang) {
18
+ // Normalize language code
19
+ const normalized = normalizeLanguage(lang);
20
+ return SUPPORTED_LANGUAGES.includes(normalized);
21
+ }
22
+ /**
23
+ * Normalize language code
24
+ * e.g., 'zh_CN.UTF-8' -> 'zh-CN', 'en_US.UTF-8' -> 'en'
25
+ */
26
+ function normalizeLanguage(lang) {
27
+ // Remove encoding suffix (e.g., .UTF-8)
28
+ const withoutEncoding = lang.split('.')[0];
29
+ // Handle Chinese variants
30
+ if (withoutEncoding.startsWith('zh')) {
31
+ return 'zh-CN';
32
+ }
33
+ // Handle English variants
34
+ if (withoutEncoding.startsWith('en')) {
35
+ return 'en';
36
+ }
37
+ // Return the base language code
38
+ return withoutEncoding.replace('_', '-');
39
+ }
40
+ /**
41
+ * Detect language from all sources
42
+ * Priority:
43
+ * 1. COLYN_LANG environment variable
44
+ * 2. Project config file (.colyn/config.json)
45
+ * 3. User config file (~/.colyn/config.json)
46
+ * 4. System language (LANG/LC_ALL)
47
+ * 5. Default to English
48
+ */
49
+ async function detectLanguage(configDir) {
50
+ // 1. Check COLYN_LANG environment variable
51
+ const colynLang = process.env.COLYN_LANG;
52
+ if (colynLang) {
53
+ const normalized = normalizeLanguage(colynLang);
54
+ if (isSupported(normalized)) {
55
+ if (DEBUG) {
56
+ console.error(`[i18n] Using COLYN_LANG: ${colynLang} -> ${normalized}`);
57
+ }
58
+ return normalized;
59
+ }
60
+ if (DEBUG) {
61
+ console.error(`[i18n] COLYN_LANG "${colynLang}" not supported, falling back`);
62
+ }
63
+ }
64
+ // 2-3. Check config files (project + user)
65
+ try {
66
+ const configLang = await getLang(configDir);
67
+ if (configLang && configLang !== 'en') { // Skip if it's the default value
68
+ const normalized = normalizeLanguage(configLang);
69
+ if (isSupported(normalized)) {
70
+ if (DEBUG) {
71
+ console.error(`[i18n] Using config language: ${configLang} -> ${normalized}`);
72
+ }
73
+ return normalized;
74
+ }
75
+ if (DEBUG) {
76
+ console.error(`[i18n] Config language "${configLang}" not supported, falling back`);
77
+ }
78
+ }
79
+ }
80
+ catch (error) {
81
+ // Config file read error, continue to next source
82
+ if (DEBUG) {
83
+ console.error(`[i18n] Error reading config: ${error}`);
84
+ }
85
+ }
86
+ // 4. Check system language
87
+ const systemLang = process.env.LC_ALL || process.env.LANG || '';
88
+ if (systemLang) {
89
+ const normalized = normalizeLanguage(systemLang);
90
+ if (isSupported(normalized)) {
91
+ if (DEBUG) {
92
+ console.error(`[i18n] Using system language: ${systemLang} -> ${normalized}`);
93
+ }
94
+ return normalized;
95
+ }
96
+ if (DEBUG) {
97
+ console.error(`[i18n] System language "${systemLang}" not supported, falling back to English`);
98
+ }
99
+ }
100
+ // 5. Default to English
101
+ if (DEBUG) {
102
+ console.error('[i18n] Using default language: en');
103
+ }
104
+ return 'en';
105
+ }
106
+ // Initialize i18next with default language (will be updated by initI18n)
107
+ i18next.init({
108
+ lng: 'en',
109
+ fallbackLng: 'en',
110
+ debug: DEBUG,
111
+ resources: {
112
+ en: { translation: en },
113
+ 'zh-CN': { translation: zhCN },
114
+ },
115
+ interpolation: {
116
+ escapeValue: false, // Not needed for CLI
117
+ },
118
+ returnNull: false,
119
+ returnEmptyString: false,
120
+ });
121
+ /**
122
+ * Initialize i18n with language detection from all sources
123
+ * This should be called as early as possible in the CLI entry point
124
+ * @param configDir .colyn directory path (optional)
125
+ */
126
+ export async function initI18n(configDir) {
127
+ const detectedLanguage = await detectLanguage(configDir);
128
+ if (detectedLanguage !== i18next.language) {
129
+ await i18next.changeLanguage(detectedLanguage);
130
+ if (DEBUG) {
131
+ console.error(`[i18n] Language changed to: ${detectedLanguage}`);
132
+ }
133
+ }
134
+ }
135
+ /**
136
+ * Translation function with type safety
137
+ */
138
+ export function t(key, options) {
139
+ return i18next.t(key, options);
140
+ }
141
+ /**
142
+ * Get current language
143
+ */
144
+ export function getCurrentLanguage() {
145
+ return i18next.language;
146
+ }
147
+ /**
148
+ * Check if current language is Chinese
149
+ */
150
+ export function isChinese() {
151
+ return i18next.language === 'zh-CN';
152
+ }
153
+ /**
154
+ * Export i18next instance for advanced usage
155
+ */
156
+ export { i18next };
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}