@localheroai/cli 0.0.10 → 0.0.11

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.
package/README.md CHANGED
@@ -82,6 +82,17 @@ npx @localheroai/cli push
82
82
 
83
83
  Push updates from your local translation files to LocalHero.ai. This command will upload any new or modified translations from your local files to the service.
84
84
 
85
+ ### Clone
86
+
87
+ ```bash
88
+ npx @localheroai/cli clone
89
+ ```
90
+
91
+ Download all translation files from LocalHero.ai to your local project directory. This command is useful when your translation files aren't checked into version control. For example when:
92
+
93
+ - Setting up a new workspace
94
+ - Fetching latest translation files during deploy
95
+
85
96
  ## Environment Variables ⚙️
86
97
 
87
98
  Typically you don't need to set these. The cli will use `LOCALHERO_API_KEY` if it's set, otherwise it will check the file `.localhero_key` for a API key.
@@ -0,0 +1,67 @@
1
+ import { getApiKey } from '../utils/auth.js';
2
+ import { apiRequest } from './client.js';
3
+ import { promises as fs } from 'fs';
4
+ import path from 'path';
5
+ /**
6
+ * Parse the raw API response into a structured format
7
+ * @param rawResponse The raw API response
8
+ * @returns Parsed response with files and retry information
9
+ */
10
+ export function parseCloneResponse(rawResponse) {
11
+ const files = {};
12
+ let retryAfter;
13
+ for (const [key, value] of Object.entries(rawResponse)) {
14
+ if (key === 'retry_after' && typeof value === 'number') {
15
+ retryAfter = value;
16
+ }
17
+ else if (typeof value === 'object' && value !== null) {
18
+ files[key] = value;
19
+ }
20
+ }
21
+ return { files, retryAfter };
22
+ }
23
+ /**
24
+ * Request clone generation for a project
25
+ * @param projectId The ID of the project
26
+ * @param params Clone request parameters
27
+ * @returns The parsed clone response with file statuses
28
+ */
29
+ export async function requestClone(projectId) {
30
+ const apiKey = await getApiKey();
31
+ const rawResponse = await apiRequest(`/api/v1/projects/${projectId}/clone`, { apiKey });
32
+ return parseCloneResponse(rawResponse);
33
+ }
34
+ /**
35
+ * Download a file from a URL to a local path
36
+ * @param url The URL to download from
37
+ * @param filePath The local file path to save to
38
+ * @param deps Optional dependencies for testing
39
+ * @returns Promise that resolves when download is complete
40
+ */
41
+ export async function downloadFile(url, filePath, deps = {}) {
42
+ const { fs: fsModule = fs, path: pathModule = path, fetch: fetchFn = fetch } = deps;
43
+ const apiKey = await getApiKey();
44
+ if (!url) {
45
+ throw new Error('URL is required for file download');
46
+ }
47
+ try {
48
+ const response = await fetchFn(url, { headers: { 'Authorization': `Bearer ${apiKey}` } });
49
+ if (!response.ok) {
50
+ throw new Error(`Failed to download file: ${response.status} ${response.statusText}`);
51
+ }
52
+ const content = await response.text();
53
+ const dir = pathModule.dirname(filePath);
54
+ await fsModule.mkdir(dir, { recursive: true });
55
+ await fsModule.writeFile(filePath, content, 'utf8');
56
+ }
57
+ catch (error) {
58
+ if (error.code === 'EACCES') {
59
+ throw new Error(`Permission denied writing to ${filePath}. Check file permissions.`);
60
+ }
61
+ if (error.code === 'ENOSPC') {
62
+ throw new Error(`No space left on device when writing to ${filePath}`);
63
+ }
64
+ throw new Error(`Failed to download file to ${filePath}: ${error.message}`);
65
+ }
66
+ }
67
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/api/clone.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -9,6 +9,7 @@ import { pull } from './commands/pull.js';
9
9
  import { push } from './commands/push.js';
10
10
  import { init } from './commands/init.js';
11
11
  import { translate } from './commands/translate.js';
12
+ import { clone } from './commands/clone.js';
12
13
  import { configService } from './utils/config.js';
13
14
  const __filename = fileURLToPath(import.meta.url);
14
15
  const __dirname = dirname(__filename);
@@ -81,5 +82,11 @@ program
81
82
  const config = await configService.getValidProjectConfig();
82
83
  return push(config, options);
83
84
  }));
85
+ program
86
+ .command('clone')
87
+ .description('Clone all translations from LocalHero.ai to your local files')
88
+ .option('-v, --verbose', 'Show detailed progress information')
89
+ .option('-f, --force', 'Force, override existing files')
90
+ .action(wrapCommandAction((options) => clone(options)));
84
91
  program.parse();
85
92
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { cloneService as defaultCloneService } from '../utils/clone-service.js';
2
+ import chalk from 'chalk';
3
+ export async function clone(options = {}, deps = { cloneService: defaultCloneService }) {
4
+ const { verbose = false, force = false } = options;
5
+ const { cloneService } = deps;
6
+ if (verbose) {
7
+ console.log(chalk.blue('Starting clone...'));
8
+ }
9
+ const result = await cloneService.cloneProject(verbose, force);
10
+ if (!verbose) {
11
+ if (result.failedFiles.length > 0) {
12
+ console.log(chalk.yellow(`⚠️ ${result.failedFiles.length} files failed to download`));
13
+ }
14
+ if (result.downloadedFiles === result.totalFiles) {
15
+ console.log(chalk.green(`✓ Clone completed - ${result.downloadedFiles} files downloaded`));
16
+ }
17
+ }
18
+ return result;
19
+ }
20
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/commands/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,MAAM,OAAO,CAAC;AAuB1B,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,UAAwB,EAAE,EAC1B,OAA0B,EAAE,YAAY,EAAE,mBAAmB,EAAE;IAE/D,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE9B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,2BAA2B,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,eAAe,mBAAmB,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -5,7 +5,6 @@ import { createTranslationJob, checkJobStatus } from '../api/translations.js';
5
5
  import { updateTranslationFile } from '../utils/translation-updater/index.js';
6
6
  import { checkAuth } from '../utils/auth.js';
7
7
  import { findMissingTranslations, batchKeysWithMissing, findMissingTranslationsByLocale } from '../utils/translation-utils.js';
8
- import { syncService } from '../utils/sync-service.js';
9
8
  import { autoCommitChanges } from '../utils/github.js';
10
9
  import { processTranslationBatches } from '../utils/translation-processor.js';
11
10
  import { ApiResponseError } from '../types/index.js';
@@ -22,16 +21,16 @@ const defaultDeps = {
22
21
  batchKeysWithMissing,
23
22
  findMissingTranslationsByLocale
24
23
  },
25
- syncService,
26
24
  gitUtils: { autoCommitChanges }
27
25
  };
28
26
  export async function translate(options = {}, deps = defaultDeps) {
29
- const { console, configUtils, authUtils, fileUtils, translationUtils, syncService, gitUtils } = deps;
27
+ const { console, configUtils, authUtils, fileUtils, translationUtils, gitUtils } = deps;
30
28
  const { verbose } = options;
31
29
  const isAuthenticated = await authUtils.checkAuth();
32
30
  if (!isAuthenticated) {
33
31
  console.error(chalk.red('\n✖ Your API key is invalid. Please run `npx @localheroai/cli login` to authenticate.\n'));
34
32
  process.exit(1);
33
+ return;
35
34
  }
36
35
  const config = await configUtils.getProjectConfig();
37
36
  if (!config) {
@@ -44,10 +43,6 @@ export async function translate(options = {}, deps = defaultDeps) {
44
43
  process.exit(1);
45
44
  return;
46
45
  }
47
- const { hasUpdates, updates } = await syncService.checkForUpdates(verbose);
48
- if (hasUpdates && updates) {
49
- await syncService.applyUpdates(updates, verbose);
50
- }
51
46
  if (verbose) {
52
47
  console.log(chalk.blue('\nℹ Using configuration:'));
53
48
  console.log(chalk.gray(` Project ID: ${config.projectId}`));
@@ -60,6 +55,7 @@ export async function translate(options = {}, deps = defaultDeps) {
60
55
  if (!allFiles || allFiles.length === 0) {
61
56
  console.error(chalk.red('\n✖ No translation files found in the specified paths.\n'));
62
57
  process.exit(1);
58
+ return;
63
59
  }
64
60
  if (verbose) {
65
61
  console.log(chalk.blue(`\nℹ Found ${allFiles.length} translation files`));
@@ -72,6 +68,7 @@ export async function translate(options = {}, deps = defaultDeps) {
72
68
  console.error(chalk.yellow(' 3. There was an error parsing one or more files (check for syntax errors in YAML or JSON)\n'));
73
69
  console.error(chalk.yellow('Try running with the --verbose flag for more detailed information.\n'));
74
70
  process.exit(1);
71
+ return;
75
72
  }
76
73
  if (verbose) {
77
74
  console.log(chalk.blue(`ℹ Found ${sourceFiles.length} source files for locale ${config.sourceLocale}`));
@@ -104,6 +101,7 @@ export async function translate(options = {}, deps = defaultDeps) {
104
101
  console.error(chalk.red(` ${error.message}`));
105
102
  }
106
103
  process.exit(1);
104
+ return;
107
105
  }
108
106
  try {
109
107
  const translationResult = await processTranslationBatches(batches, missingByLocale, config, !!verbose, { console, translationUtils });
@@ -151,6 +149,7 @@ export async function translate(options = {}, deps = defaultDeps) {
151
149
  }
152
150
  }
153
151
  process.exit(1);
152
+ return;
154
153
  }
155
154
  }
156
155
  //# sourceMappingURL=translate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/commands/translate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import chalk from 'chalk';
2
+ import fs from 'fs/promises';
3
+ import { configService } from './config.js';
4
+ import { requestClone, downloadFile } from '../api/clone.js';
5
+ // Default polling configuration
6
+ const DEFAULT_POLL_INTERVAL = 5000; // 5 seconds
7
+ const MAX_POLL_ATTEMPTS = 60; // 5 minutes total
8
+ const RETRY_DELAY_MS = 1000; // 1 second
9
+ /**
10
+ * Sleep for a specified number of milliseconds
11
+ */
12
+ function sleep(ms) {
13
+ return new Promise(resolve => setTimeout(resolve, ms));
14
+ }
15
+ /**
16
+ * Download a file with retry
17
+ */
18
+ async function downloadFileWithRetry(filePath, fileStatus, maxRetries = 3, verbose = false) {
19
+ if (!fileStatus.url) {
20
+ if (verbose) {
21
+ console.log(chalk.yellow(`⚠️ No URL available for ${filePath}`));
22
+ }
23
+ return false;
24
+ }
25
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
26
+ try {
27
+ await downloadFile(fileStatus.url, filePath);
28
+ if (verbose) {
29
+ console.log(chalk.green(`✓ Downloaded ${filePath} (${fileStatus.language})`));
30
+ }
31
+ return true;
32
+ }
33
+ catch (error) {
34
+ if (attempt === maxRetries) {
35
+ console.error(chalk.red(`❌ Failed to download ${filePath} after ${maxRetries} attempts: ${error.message}`));
36
+ return false;
37
+ }
38
+ if (verbose) {
39
+ console.log(chalk.yellow(`⚠️ Download attempt ${attempt} failed for ${filePath}, retrying...`));
40
+ }
41
+ await sleep(RETRY_DELAY_MS * attempt);
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+ export const cloneService = {
47
+ /**
48
+ * Clone all translations for a project
49
+ * @param verbose Whether to show verbose output
50
+ * @param force Whether to overwrite existing files
51
+ * @returns Result with download statistics
52
+ */
53
+ async cloneProject(verbose = false, force = false) {
54
+ const config = await configService.getValidProjectConfig();
55
+ if (!config.projectId) {
56
+ throw new Error('Project not initialized. Please run `localhero init` first.');
57
+ }
58
+ if (verbose) {
59
+ console.log(chalk.blue(`Requesting clone for project ${config.projectId}...`));
60
+ }
61
+ // Request clone from API
62
+ const response = await requestClone(config.projectId);
63
+ if (verbose) {
64
+ const fileCount = Object.keys(response.files).length;
65
+ console.log(chalk.blue(`Found ${fileCount} files to clone`));
66
+ }
67
+ // Poll for completion if needed
68
+ const completedResponse = await this.pollForCompletion(response, verbose);
69
+ // Download all completed files
70
+ return await this.downloadFiles(completedResponse, verbose, force);
71
+ },
72
+ /**
73
+ * Poll the API until all files are ready for download
74
+ * @param response Initial clone response
75
+ * @param verbose Whether to show verbose output
76
+ * @returns Updated response with completed files
77
+ */
78
+ async pollForCompletion(response, verbose = false) {
79
+ let currentResponse = response;
80
+ let pollAttempts = 0;
81
+ while (pollAttempts < MAX_POLL_ATTEMPTS) {
82
+ const pendingFiles = Object.entries(currentResponse.files).filter(([, fileStatus]) => fileStatus.status === 'generating');
83
+ if (pendingFiles.length === 0) {
84
+ // All files are ready
85
+ break;
86
+ }
87
+ if (verbose) {
88
+ console.log(chalk.blue(`⏳ ${pendingFiles.length} files still generating...`));
89
+ for (const [filePath, fileStatus] of pendingFiles) {
90
+ console.log(chalk.gray(` ${filePath} (${fileStatus.language}) - ${fileStatus.status}`));
91
+ }
92
+ }
93
+ const retryAfter = currentResponse.retryAfter || DEFAULT_POLL_INTERVAL / 1000;
94
+ if (verbose) {
95
+ console.log(chalk.gray(` Retry in ${retryAfter} seconds...`));
96
+ }
97
+ await sleep(retryAfter * 1000);
98
+ try {
99
+ const config = await configService.getValidProjectConfig();
100
+ currentResponse = await requestClone(config.projectId);
101
+ pollAttempts++;
102
+ }
103
+ catch (error) {
104
+ console.error(chalk.yellow(`⚠️ Failed to check status: ${error.message}`));
105
+ pollAttempts++;
106
+ await sleep(RETRY_DELAY_MS);
107
+ }
108
+ }
109
+ if (pollAttempts >= MAX_POLL_ATTEMPTS) {
110
+ console.warn(chalk.yellow('⚠️ Polling timeout reached. Try again.'));
111
+ }
112
+ return currentResponse;
113
+ },
114
+ /**
115
+ * Download all completed files from the response
116
+ * @param response Clone response with file URLs
117
+ * @param verbose Whether to show verbose output
118
+ * @param force Whether to overwrite existing files
119
+ * @returns Result with download statistics
120
+ */
121
+ async downloadFiles(response, verbose = false, force = false) {
122
+ const files = Object.entries(response.files);
123
+ const totalFiles = files.length;
124
+ let downloadedFiles = 0;
125
+ const failedFiles = [];
126
+ if (verbose) {
127
+ console.log(chalk.blue(`Starting download of ${totalFiles} files...`));
128
+ }
129
+ const downloadPromises = files.map(async ([filePath, fileStatus]) => {
130
+ if (fileStatus.status === 'completed') {
131
+ const fileExists = await fs.access(filePath).then(() => true).catch(() => false);
132
+ if (fileExists && !force) {
133
+ console.log(chalk.gray(`File already exists, skipping: ${filePath} (${fileStatus.language})`));
134
+ return;
135
+ }
136
+ if (fileStatus.url) {
137
+ const success = await downloadFileWithRetry(filePath, fileStatus, 3, verbose);
138
+ if (success) {
139
+ downloadedFiles++;
140
+ if (fileExists && force && verbose) {
141
+ console.log(chalk.blue(` Overwritten existing file: ${filePath} (${fileStatus.language})`));
142
+ }
143
+ }
144
+ else {
145
+ failedFiles.push(filePath);
146
+ }
147
+ }
148
+ else {
149
+ if (verbose) {
150
+ console.log(chalk.yellow(`⚠️ No URL available for completed file: ${filePath} (${fileStatus.language})`));
151
+ }
152
+ failedFiles.push(filePath);
153
+ }
154
+ }
155
+ else if (fileStatus.status === 'failed') {
156
+ if (verbose) {
157
+ console.log(chalk.red(`❌ File generation failed: ${filePath} (${fileStatus.language})`));
158
+ }
159
+ failedFiles.push(filePath);
160
+ }
161
+ else if (fileStatus.status === 'generating') {
162
+ if (verbose) {
163
+ console.log(chalk.yellow(`⏳ File still generating: ${filePath} (${fileStatus.language})`));
164
+ }
165
+ failedFiles.push(filePath);
166
+ }
167
+ });
168
+ await Promise.all(downloadPromises);
169
+ if (downloadedFiles > 0 && verbose) {
170
+ console.log(chalk.green(`✓ Downloaded ${downloadedFiles} files`));
171
+ }
172
+ if (failedFiles.length > 0) {
173
+ console.log(chalk.yellow(`⚠️ ${failedFiles.length} files failed to download`));
174
+ if (verbose) {
175
+ for (const filePath of failedFiles) {
176
+ console.log(chalk.gray(` - ${filePath}`));
177
+ }
178
+ }
179
+ }
180
+ return {
181
+ totalFiles,
182
+ downloadedFiles,
183
+ failedFiles
184
+ };
185
+ }
186
+ };
187
+ //# sourceMappingURL=clone-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone-service.js","sourceRoot":"","sources":["../../src/utils/clone-service.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { getUpdates } from '../api/translations.js';
4
4
  import { updateTranslationFile, deleteKeysFromTranslationFile } from './translation-updater/index.js';
5
5
  import { findTranslationFiles } from './files.js';
6
6
  import path from 'path';
7
- const MAX_PAGES = 50;
7
+ const MAX_PAGES = 100;
8
8
  export const syncService = {
9
9
  /**
10
10
  * Check for updates since the last sync
@@ -1 +1 @@
1
- {"version":3,"file":"sync-service.js","sourceRoot":"","sources":["../../src/utils/sync-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-service.js","sourceRoot":"","sources":["../../src/utils/sync-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@localheroai/cli",
3
- "version": "0.0.10",
3
+ "version": "0.0.11",
4
4
  "description": "CLI tool for managing translations with LocalHero.ai",
5
5
  "homepage": "https://localhero.ai",
6
6
  "repository": {