@translated/lara-cli 0.2.1

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 (68) hide show
  1. package/README.md +212 -0
  2. package/build/cli/cmd/glossary/glossary.js +55 -0
  3. package/build/cli/cmd/glossary/glossary.js.map +1 -0
  4. package/build/cli/cmd/init/init.input.js +177 -0
  5. package/build/cli/cmd/init/init.input.js.map +1 -0
  6. package/build/cli/cmd/init/init.js +158 -0
  7. package/build/cli/cmd/init/init.js.map +1 -0
  8. package/build/cli/cmd/init/init.types.js +2 -0
  9. package/build/cli/cmd/init/init.types.js.map +1 -0
  10. package/build/cli/cmd/init/init.utils.js +99 -0
  11. package/build/cli/cmd/init/init.utils.js.map +1 -0
  12. package/build/cli/cmd/memory/memory.js +55 -0
  13. package/build/cli/cmd/memory/memory.js.map +1 -0
  14. package/build/cli/cmd/translate/translate.js +149 -0
  15. package/build/cli/cmd/translate/translate.js.map +1 -0
  16. package/build/index.js +25 -0
  17. package/build/index.js.map +1 -0
  18. package/build/interface/parser.js +2 -0
  19. package/build/interface/parser.js.map +1 -0
  20. package/build/messages/messages.js +120 -0
  21. package/build/messages/messages.js.map +1 -0
  22. package/build/modules/common/common.const.js +424 -0
  23. package/build/modules/common/common.const.js.map +1 -0
  24. package/build/modules/common/common.types.js +15 -0
  25. package/build/modules/common/common.types.js.map +1 -0
  26. package/build/modules/config/config.provider.js +47 -0
  27. package/build/modules/config/config.provider.js.map +1 -0
  28. package/build/modules/config/config.types.js +95 -0
  29. package/build/modules/config/config.types.js.map +1 -0
  30. package/build/modules/translation/translation.engine.js +165 -0
  31. package/build/modules/translation/translation.engine.js.map +1 -0
  32. package/build/modules/translation/translation.service.js +45 -0
  33. package/build/modules/translation/translation.service.js.map +1 -0
  34. package/build/parsers/android-xml.parser.js +308 -0
  35. package/build/parsers/android-xml.parser.js.map +1 -0
  36. package/build/parsers/json.parser.js +18 -0
  37. package/build/parsers/json.parser.js.map +1 -0
  38. package/build/parsers/markdown.parser.js +74 -0
  39. package/build/parsers/markdown.parser.js.map +1 -0
  40. package/build/parsers/parser.factory.js +52 -0
  41. package/build/parsers/parser.factory.js.map +1 -0
  42. package/build/parsers/parser.types.js +2 -0
  43. package/build/parsers/parser.types.js.map +1 -0
  44. package/build/parsers/po.parser.js +175 -0
  45. package/build/parsers/po.parser.js.map +1 -0
  46. package/build/parsers/ts.parser.js +176 -0
  47. package/build/parsers/ts.parser.js.map +1 -0
  48. package/build/parsers/vue.parser.js +156 -0
  49. package/build/parsers/vue.parser.js.map +1 -0
  50. package/build/utils/checksum.js +80 -0
  51. package/build/utils/checksum.js.map +1 -0
  52. package/build/utils/cli.js +4 -0
  53. package/build/utils/cli.js.map +1 -0
  54. package/build/utils/display.js +60 -0
  55. package/build/utils/display.js.map +1 -0
  56. package/build/utils/error.js +18 -0
  57. package/build/utils/error.js.map +1 -0
  58. package/build/utils/locale.js +108 -0
  59. package/build/utils/locale.js.map +1 -0
  60. package/build/utils/parser.js +25 -0
  61. package/build/utils/parser.js.map +1 -0
  62. package/build/utils/path.js +173 -0
  63. package/build/utils/path.js.map +1 -0
  64. package/build/utils/progressWithOra.js +72 -0
  65. package/build/utils/progressWithOra.js.map +1 -0
  66. package/build/utils/prompt.js +205 -0
  67. package/build/utils/prompt.js.map +1 -0
  68. package/package.json +89 -0
@@ -0,0 +1,205 @@
1
+ import { createPrompt, useState, useKeypress, usePrefix, usePagination, useRef, useEffect, isEnterKey, isUpKey, isDownKey, } from '@inquirer/core';
2
+ import { Messages } from '#messages/messages.js';
3
+ const colors = {
4
+ cyan: (text) => `\x1b[36m${text}\x1b[0m`,
5
+ dim: (text) => `\x1b[2m${text}\x1b[0m`,
6
+ red: (text) => `\x1b[31m${text}\x1b[0m`,
7
+ bold: (text) => `\x1b[1m${text}\x1b[0m`,
8
+ };
9
+ const cursor = {
10
+ hide: '\x1b[?25l',
11
+ show: '\x1b[?25h',
12
+ };
13
+ const customSelectTheme = {
14
+ icon: {
15
+ checked: '◉',
16
+ unchecked: '◯',
17
+ cursor: '›',
18
+ },
19
+ };
20
+ function isSelectable(item) {
21
+ return item.choice.disabled !== true && typeof item.choice.disabled !== 'string';
22
+ }
23
+ function toggleChoice(choice, selectedChoices) {
24
+ const newSet = new Set(selectedChoices);
25
+ if (newSet.has(choice)) {
26
+ newSet.delete(choice);
27
+ }
28
+ else {
29
+ newSet.add(choice);
30
+ }
31
+ return newSet;
32
+ }
33
+ function selectAll(items) {
34
+ const newSet = new Set();
35
+ items.forEach((item) => {
36
+ if (isSelectable(item)) {
37
+ newSet.add(item.choice);
38
+ }
39
+ });
40
+ return newSet;
41
+ }
42
+ function deselectAll() {
43
+ return new Set();
44
+ }
45
+ export const searchableSelect = createPrompt((config, done) => {
46
+ const multiple = config.multiple !== false;
47
+ const { choices, loop = true, pageSize = 7, required, validate = () => true } = config;
48
+ const theme = { ...customSelectTheme, ...config.theme };
49
+ const [status, setStatus] = useState('pending');
50
+ const prefix = usePrefix({ status });
51
+ const [searchQuery, setSearchQuery] = useState('');
52
+ const [items, setItems] = useState(() => choices.map((choice) => ({
53
+ choice,
54
+ isChecked: multiple
55
+ ? config.multiple
56
+ ? (config.default?.includes(choice.value) ?? false)
57
+ : false
58
+ : false,
59
+ })));
60
+ const selectedChoices = useRef(new Set(items.filter((item) => item.isChecked).map((item) => item.choice)));
61
+ const filteredItems = items.filter((item) => item.choice.label.toLowerCase().includes(searchQuery.toLowerCase()));
62
+ const [active, setActive] = useState(0);
63
+ const [errorMsg, setError] = useState(undefined);
64
+ const [isInitialized, setIsInitialized] = useState(false);
65
+ useEffect(() => {
66
+ if (!isInitialized && !multiple && !config.multiple && config.default) {
67
+ const defaultValue = config.default;
68
+ const defaultIndex = filteredItems.findIndex((item) => item.choice.value === defaultValue);
69
+ if (defaultIndex >= 0) {
70
+ setActive(defaultIndex);
71
+ }
72
+ setIsInitialized(true);
73
+ }
74
+ }, [isInitialized, multiple, config.multiple, config.default, filteredItems]);
75
+ if (active >= filteredItems.length && filteredItems.length > 0) {
76
+ setActive(filteredItems.length - 1);
77
+ }
78
+ useKeypress(async (key) => {
79
+ if (isEnterKey(key)) {
80
+ if (!multiple) {
81
+ const selectedItem = filteredItems[active];
82
+ if (selectedItem && isSelectable(selectedItem)) {
83
+ selectedChoices.current = new Set([selectedItem.choice]);
84
+ setStatus('done');
85
+ done([selectedItem.choice.value]);
86
+ return;
87
+ }
88
+ }
89
+ const selection = Array.from(selectedChoices.current.values());
90
+ const isValid = await validate([...selection.map((choice) => choice.value)]);
91
+ if (required && selection.length === 0) {
92
+ setError(Messages.errors.selectionRequired);
93
+ }
94
+ else if (isValid === true) {
95
+ setStatus('done');
96
+ done(selection.map((choice) => choice.value));
97
+ }
98
+ else if (typeof isValid === 'string') {
99
+ setError(isValid);
100
+ }
101
+ else {
102
+ setError(Messages.errors.selectionRequired);
103
+ }
104
+ }
105
+ else if (isUpKey(key) || isDownKey(key)) {
106
+ if (loop ||
107
+ (isUpKey(key) && active !== 0) ||
108
+ (isDownKey(key) && active !== filteredItems.length - 1)) {
109
+ const offset = isUpKey(key) ? -1 : 1;
110
+ let next = active;
111
+ do {
112
+ next = (next + offset + filteredItems.length) % filteredItems.length;
113
+ } while (!isSelectable(filteredItems[next]));
114
+ setActive(next);
115
+ }
116
+ }
117
+ else if (key.name === 'left' || key.name === 'right') {
118
+ return;
119
+ }
120
+ else if (key.name === 'space') {
121
+ setError(undefined);
122
+ const selectedItem = filteredItems[active];
123
+ if (selectedItem && isSelectable(selectedItem)) {
124
+ if (!multiple) {
125
+ selectedChoices.current = new Set([selectedItem.choice]);
126
+ setStatus('done');
127
+ done([selectedItem.choice.value]);
128
+ }
129
+ else {
130
+ selectedChoices.current = toggleChoice(selectedItem.choice, selectedChoices.current);
131
+ setItems(items.map((item) => item.choice === selectedItem.choice ? { ...item, isChecked: !item.isChecked } : item));
132
+ }
133
+ }
134
+ }
135
+ else if (key.name === 'a' && key.ctrl && multiple) {
136
+ setError(undefined);
137
+ const selectableFilteredItems = filteredItems.filter(isSelectable);
138
+ const allFilteredSelected = selectableFilteredItems.every((item) => item.isChecked);
139
+ if (allFilteredSelected) {
140
+ selectedChoices.current = deselectAll();
141
+ setItems(items.map((item) => ({
142
+ ...item,
143
+ isChecked: false,
144
+ })));
145
+ }
146
+ else {
147
+ const allFilteredChoices = selectableFilteredItems.map((item) => item.choice);
148
+ selectedChoices.current = selectAll(filteredItems);
149
+ setItems(items.map((item) => allFilteredChoices.includes(item.choice) ? { ...item, isChecked: true } : item));
150
+ }
151
+ }
152
+ else if (key.name === 'backspace' || key.name === 'delete') {
153
+ if (searchQuery.length > 0) {
154
+ setSearchQuery(searchQuery.slice(0, -1));
155
+ setActive(0);
156
+ }
157
+ }
158
+ else if (key.name && key.name.length === 1 && !key.ctrl) {
159
+ setSearchQuery((searchQuery ?? '') + key.name);
160
+ setActive(0);
161
+ }
162
+ });
163
+ const message = colors.bold(config.message);
164
+ const page = usePagination({
165
+ items: filteredItems,
166
+ active,
167
+ renderItem({ item, isActive, }) {
168
+ const color = isActive ? colors.cyan : (x) => x;
169
+ const cursor = isActive ? (theme.icon.cursor ?? '›') : ' ';
170
+ const checkbox = multiple
171
+ ? item.isChecked
172
+ ? colors.cyan(theme.icon.checked ?? '◉')
173
+ : (theme.icon.unchecked ?? '◯')
174
+ : '';
175
+ const checkboxSpace = multiple ? ' ' : '';
176
+ if (item.choice.disabled) {
177
+ const disabledLabel = typeof item.choice.disabled === 'string' ? item.choice.disabled : Messages.ui.disabled;
178
+ return colors.dim(`${cursor}${checkboxSpace}${checkbox}${checkbox ? ' ' : ''}${item.choice.label} ${disabledLabel}`);
179
+ }
180
+ return color(`${cursor}${checkboxSpace}${checkbox}${checkbox ? ' ' : ''}${item.choice.label}`);
181
+ },
182
+ pageSize,
183
+ loop,
184
+ });
185
+ if (status === 'done') {
186
+ const selection = Array.from(selectedChoices.current.values())
187
+ .map((choice) => choice.label)
188
+ .join(', ');
189
+ return `${prefix} ${message} ${colors.cyan(selection)}`;
190
+ }
191
+ const helpTip = multiple
192
+ ? colors.dim('\n' +
193
+ Messages.ui.helpMultiSelect(colors.cyan(Messages.ui.navigate), colors.cyan(Messages.ui.space), colors.cyan(Messages.ui.ctrlA)))
194
+ : colors.dim('\n' +
195
+ Messages.ui.helpSingleSelect(colors.cyan(Messages.ui.navigate), colors.cyan(Messages.ui.space + '/' + Messages.ui.enter)));
196
+ const searchIndicator = searchQuery
197
+ ? colors.dim(`\n🔍 ${Messages.ui.searchLabel(colors.cyan(searchQuery))}`)
198
+ : colors.dim(`\n🔍 ${Messages.ui.typeToSearch}`);
199
+ const error = errorMsg ? colors.red(`\n${errorMsg}`) : '';
200
+ return `${cursor.hide}${prefix} ${message}${helpTip}${searchIndicator}\n${page}${error}`;
201
+ });
202
+ export default function customSearchableSelect(config) {
203
+ return searchableSelect(config);
204
+ }
205
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"/","sources":["utils/prompt.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,89 @@
1
+ {
2
+ "name": "@translated/lara-cli",
3
+ "type": "module",
4
+ "version": "0.2.1",
5
+ "description": "CLI tool for automated i18n file translation using Lara Translate",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/translated/lara-cli"
9
+ },
10
+ "main": "./build/index.js",
11
+ "keywords": [
12
+ "laratranslate",
13
+ "lara",
14
+ "localization",
15
+ "translation",
16
+ "ai",
17
+ "translate",
18
+ "translated"
19
+ ],
20
+ "author": {
21
+ "name": "Lara Translate",
22
+ "email": "info@laratranslate.com"
23
+ },
24
+ "license": "ISC",
25
+ "engines": {
26
+ "node": ">=18"
27
+ },
28
+ "bin": {
29
+ "lara-cli": "./build/index.js"
30
+ },
31
+ "files": [
32
+ "build",
33
+ "!build/__tests__"
34
+ ],
35
+ "dependencies": {
36
+ "@babel/parser": "^7.28.6",
37
+ "@babel/traverse": "^7.28.6",
38
+ "@babel/types": "^7.28.6",
39
+ "@inquirer/core": "^10.3.2",
40
+ "@inquirer/prompts": "^7.10.1",
41
+ "@translated/lara": "^1.7.1",
42
+ "commander": "^14.0.2",
43
+ "dotenv": "^17.2.3",
44
+ "fast-xml-parser": "^5.3.3",
45
+ "flat": "^6.0.1",
46
+ "gettext-parser": "^8.0.0",
47
+ "glob": "^11.1.0",
48
+ "ora": "^8.2.0",
49
+ "picomatch": "^4.0.3",
50
+ "remark": "^15.0.1",
51
+ "remark-gfm": "^4.0.1",
52
+ "string-width": "^8.1.0",
53
+ "unist-util-visit": "^5.0.0",
54
+ "yaml": "^2.8.2",
55
+ "zod": "^4.3.5"
56
+ },
57
+ "imports": {
58
+ "#utils/*": "./build/utils/*",
59
+ "#modules/*": "./build/modules/*",
60
+ "#cli/*": "./build/cli/*",
61
+ "#messages/*": "./build/messages/*"
62
+ },
63
+ "devDependencies": {
64
+ "@eslint/js": "^9.39.2",
65
+ "@types/gettext-parser": "^8.0.0",
66
+ "@types/mdast": "^4.0.4",
67
+ "@types/node": "^24.10.8",
68
+ "@types/picomatch": "^4.0.2",
69
+ "@vitest/coverage-v8": "^4.0.17",
70
+ "eslint": "^9.39.2",
71
+ "eslint-config-prettier": "^10.1.8",
72
+ "globals": "^16.5.0",
73
+ "prettier": "^3.7.4",
74
+ "typescript": "^5.9.3",
75
+ "typescript-eslint": "^8.53.0",
76
+ "vitest": "^4.0.17"
77
+ },
78
+ "scripts": {
79
+ "build": "rm -rf build && npx tsc",
80
+ "start": "rm -rf build && npx tsc && node build/index.js",
81
+ "lint": "npx eslint src/**/*.ts",
82
+ "lint:fix": "npx eslint src/**/*.ts --fix",
83
+ "format": "prettier --write \"src/**/*.{ts,js,json}\"",
84
+ "format:check": "prettier --check \"src/**/*.{ts,js,json}\"",
85
+ "test": "vitest run",
86
+ "test:watch": "vitest watch",
87
+ "test:coverage": "vitest run --coverage"
88
+ }
89
+ }