lezu 0.0.41 → 0.0.42

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.
@@ -1,213 +0,0 @@
1
- // src/api.ts
2
- import fetch from "node-fetch";
3
- var LezuApiClient = class {
4
- config;
5
- constructor(config) {
6
- this.config = config;
7
- }
8
- async validateCredentials() {
9
- try {
10
- await this.request("/v1/projects");
11
- return true;
12
- } catch (error) {
13
- throw error;
14
- }
15
- }
16
- async request(endpoint, options = {}) {
17
- const url = `${this.config.apiUrl}${endpoint}`;
18
- if (process.env.DEBUG === "true" || this.config.debug) {
19
- console.error(`
20
- [Lezu CLI] Request Details:`);
21
- console.error(` URL: ${url}`);
22
- console.error(` Method: ${options.method || "GET"}`);
23
- console.error(` Headers:`);
24
- console.error(` Authorization: Bearer ${this.config.apiKey?.substring(0, 10)}...`);
25
- console.error(` Content-Type: application/json`);
26
- if (options.body) {
27
- console.error(` Body: ${options.body}`);
28
- }
29
- }
30
- try {
31
- const response = await fetch(url, {
32
- ...options,
33
- headers: {
34
- "Authorization": `Bearer ${this.config.apiKey}`,
35
- "Content-Type": "application/json",
36
- ...options.headers
37
- }
38
- });
39
- if (!response.ok) {
40
- let errorMessage = "";
41
- try {
42
- const errorText = await response.text();
43
- try {
44
- const errorData = JSON.parse(errorText);
45
- errorMessage = errorData.error || errorData.message || errorText;
46
- } catch {
47
- errorMessage = errorText;
48
- }
49
- } catch {
50
- errorMessage = response.statusText;
51
- }
52
- const errorDetails = `
53
-
54
- Request failed:
55
- Endpoint: ${options.method || "GET"} ${url}
56
- Status: ${response.status} ${response.statusText}
57
- Response: ${errorMessage || "No error details provided"}
58
-
59
- Try running with DEBUG=true for more details.`;
60
- if (response.status === 401) {
61
- throw new Error(`Authentication failed. Please check your API key.${errorDetails}`);
62
- } else if (response.status === 403) {
63
- throw new Error(`Access denied. Your API key may not have permission for this action.${errorDetails}`);
64
- } else if (response.status === 404) {
65
- throw new Error(`Resource not found. Please check your project ID and configuration.${errorDetails}`);
66
- } else if (response.status === 500) {
67
- if (errorMessage.includes("project") || errorMessage.includes("not found")) {
68
- throw new Error(`Project not found. Please verify your project ID is correct.${errorDetails}`);
69
- } else if (errorMessage.includes("invalid") || errorMessage.includes("malformed")) {
70
- throw new Error(`Invalid project ID format. Please check your configuration.${errorDetails}`);
71
- }
72
- throw new Error(`Server error: ${errorMessage || "Internal server error"}${errorDetails}`);
73
- } else {
74
- throw new Error(`API error: ${errorMessage || response.statusText}${errorDetails}`);
75
- }
76
- }
77
- return response.json();
78
- } catch (error) {
79
- if (error instanceof Error) {
80
- if (error.message.includes("ENOTFOUND") || error.message.includes("ECONNREFUSED")) {
81
- throw new Error(`Cannot connect to Lezu API at ${this.config.apiUrl}. Please check your internet connection and API URL.`);
82
- }
83
- throw error;
84
- }
85
- throw new Error("An unexpected error occurred");
86
- }
87
- }
88
- async getTranslations() {
89
- let endpoint = `/v1/projects/${this.config.projectId}/translations?environment=${this.config.environment}`;
90
- if (this.config.release) {
91
- endpoint = `/v1/releases/${this.config.release}/bundle`;
92
- }
93
- if (this.config.languages && this.config.languages.length > 0) {
94
- const params = new URLSearchParams();
95
- this.config.languages.forEach((lang) => params.append("languages", lang));
96
- endpoint += `&${params.toString()}`;
97
- }
98
- const response = await this.request(endpoint);
99
- return {
100
- translations: response.translations || response,
101
- meta: {
102
- version: response.version,
103
- timestamp: response.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
104
- languages: response.languages || Object.keys(response.translations || response)
105
- }
106
- };
107
- }
108
- async getReleases() {
109
- return this.request(
110
- `/v1/projects/${this.config.projectId}/releases?environment=${this.config.environment}`
111
- );
112
- }
113
- async getEnvironments() {
114
- const projectData = await this.getProject();
115
- return {
116
- environments: projectData.project.environments || []
117
- };
118
- }
119
- async getCurrentRelease(environmentName) {
120
- try {
121
- const envName = environmentName || this.config.environment;
122
- const releases = await this.request(
123
- `/v1/projects/${this.config.projectId}/releases?environment=${envName}`
124
- );
125
- if (releases.releases && releases.releases.length > 0) {
126
- const currentRelease = releases.releases.find((release) => release.is_current);
127
- if (currentRelease) {
128
- return currentRelease.id;
129
- }
130
- return releases.releases[0].id;
131
- }
132
- return null;
133
- } catch (error) {
134
- return null;
135
- }
136
- }
137
- async getLatestRelease() {
138
- try {
139
- const releases = await this.getReleases();
140
- if (releases.releases && releases.releases.length > 0) {
141
- return releases.releases[0].id;
142
- }
143
- return null;
144
- } catch (error) {
145
- return null;
146
- }
147
- }
148
- async getLanguages() {
149
- const projectData = await this.getProject();
150
- return {
151
- languages: projectData.project.languages?.map((lang) => ({
152
- language_code: typeof lang === "string" ? lang : lang.code,
153
- name: typeof lang === "string" ? lang : lang.name,
154
- enabled: true
155
- })) || []
156
- };
157
- }
158
- async addTranslationKey(key, translations) {
159
- return this.request(
160
- `/v1/keys`,
161
- {
162
- method: "POST",
163
- body: JSON.stringify({ key, translations })
164
- }
165
- );
166
- }
167
- async translateKey(text, sourceLanguage, targetLanguages) {
168
- const response = await this.request("/v1/translations/translate/batch", {
169
- method: "POST",
170
- body: JSON.stringify({
171
- texts: [text],
172
- sourceLanguage,
173
- targetLanguages
174
- })
175
- });
176
- return response.translations[text] || {};
177
- }
178
- async createRelease(data = {}) {
179
- let environmentId = data.environmentId;
180
- if (!environmentId) {
181
- const projectData = await this.getProject();
182
- const project = projectData.project;
183
- const envName = this.config.environment || "production";
184
- const environment = project.environments?.find((env) => env.name === envName);
185
- if (!environment) {
186
- throw new Error(`Environment '${envName}' not found for project`);
187
- }
188
- environmentId = environment.id;
189
- }
190
- return this.request(
191
- `/v1/projects/${this.config.projectId}/releases`,
192
- {
193
- method: "POST",
194
- body: JSON.stringify({
195
- environmentId,
196
- version: data.version || (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
197
- name: data.name,
198
- description: data.description,
199
- reviewedOnly: data.reviewedOnly || false,
200
- setAsCurrent: true
201
- })
202
- }
203
- );
204
- }
205
- async getProject() {
206
- return this.request(`/v1/projects/${this.config.projectId}`);
207
- }
208
- };
209
-
210
- export {
211
- LezuApiClient
212
- };
213
- //# sourceMappingURL=chunk-HFRJAE6K.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api.ts"],"sourcesContent":["import fetch from 'node-fetch'\nimport type { Config, ApiResponse, ReleaseResponse } from './types.js'\n\nexport class LezuApiClient {\n private config: Config\n\n constructor(config: Config) {\n this.config = config\n }\n \n async validateCredentials(): Promise<boolean> {\n try {\n // Try to list projects - this works with both API keys and JWT tokens\n await this.request<any>('/v1/projects')\n return true\n } catch (error) {\n throw error\n }\n }\n\n private async request<T>(endpoint: string, options: any = {}): Promise<T> {\n const url = `${this.config.apiUrl}${endpoint}`\n \n // Log request details for debugging (only when DEBUG=true)\n if (process.env.DEBUG === 'true' || this.config.debug) {\n console.error(`\\n[Lezu CLI] Request Details:`)\n console.error(` URL: ${url}`)\n console.error(` Method: ${options.method || 'GET'}`)\n console.error(` Headers:`)\n console.error(` Authorization: Bearer ${this.config.apiKey?.substring(0, 10)}...`)\n console.error(` Content-Type: application/json`)\n if (options.body) {\n console.error(` Body: ${options.body}`)\n }\n }\n \n try {\n const response = await fetch(url, {\n ...options,\n headers: {\n 'Authorization': `Bearer ${this.config.apiKey}`,\n 'Content-Type': 'application/json',\n ...options.headers\n }\n })\n\n if (!response.ok) {\n let errorMessage = ''\n \n try {\n const errorText = await response.text()\n try {\n const errorData = JSON.parse(errorText)\n errorMessage = errorData.error || errorData.message || errorText\n } catch {\n errorMessage = errorText\n }\n } catch {\n errorMessage = response.statusText\n }\n\n // Provide user-friendly error messages with details\n const errorDetails = `\\n\\nRequest failed:\n Endpoint: ${options.method || 'GET'} ${url}\n Status: ${response.status} ${response.statusText}\n Response: ${errorMessage || 'No error details provided'}\n \nTry running with DEBUG=true for more details.`\n\n if (response.status === 401) {\n throw new Error(`Authentication failed. Please check your API key.${errorDetails}`)\n } else if (response.status === 403) {\n throw new Error(`Access denied. Your API key may not have permission for this action.${errorDetails}`)\n } else if (response.status === 404) {\n throw new Error(`Resource not found. Please check your project ID and configuration.${errorDetails}`)\n } else if (response.status === 500) {\n // Check for common 500 errors\n if (errorMessage.includes('project') || errorMessage.includes('not found')) {\n throw new Error(`Project not found. Please verify your project ID is correct.${errorDetails}`)\n } else if (errorMessage.includes('invalid') || errorMessage.includes('malformed')) {\n throw new Error(`Invalid project ID format. Please check your configuration.${errorDetails}`)\n }\n throw new Error(`Server error: ${errorMessage || 'Internal server error'}${errorDetails}`)\n } else {\n throw new Error(`API error: ${errorMessage || response.statusText}${errorDetails}`)\n }\n }\n\n return response.json() as Promise<T>\n } catch (error) {\n if (error instanceof Error) {\n // Check for network errors\n if (error.message.includes('ENOTFOUND') || error.message.includes('ECONNREFUSED')) {\n throw new Error(`Cannot connect to Lezu API at ${this.config.apiUrl}. Please check your internet connection and API URL.`)\n }\n throw error\n }\n throw new Error('An unexpected error occurred')\n }\n }\n\n async getTranslations(): Promise<ApiResponse> {\n let endpoint = `/v1/projects/${this.config.projectId}/translations?environment=${this.config.environment}`\n \n if (this.config.release) {\n endpoint = `/v1/releases/${this.config.release}/bundle`\n }\n\n // Add language filter if specified\n if (this.config.languages && this.config.languages.length > 0) {\n const params = new URLSearchParams()\n this.config.languages.forEach(lang => params.append('languages', lang))\n endpoint += `&${params.toString()}`\n }\n\n const response = await this.request<any>(endpoint)\n \n // Transform the response to match our expected format\n return {\n translations: response.translations || response,\n meta: {\n version: response.version,\n timestamp: response.timestamp || new Date().toISOString(),\n languages: response.languages || Object.keys(response.translations || response)\n }\n }\n }\n\n async getReleases(): Promise<ReleaseResponse> {\n return this.request<ReleaseResponse>(\n `/v1/projects/${this.config.projectId}/releases?environment=${this.config.environment}`\n )\n }\n\n async getEnvironments(): Promise<any> {\n const projectData = await this.getProject()\n return {\n environments: projectData.project.environments || []\n }\n }\n\n async getCurrentRelease(environmentName?: string): Promise<string | null> {\n try {\n const envName = environmentName || this.config.environment\n const releases = await this.request<ReleaseResponse>(\n `/v1/projects/${this.config.projectId}/releases?environment=${envName}`\n )\n \n if (releases.releases && releases.releases.length > 0) {\n // Find the current release for this environment\n const currentRelease = releases.releases.find((release: any) => release.is_current)\n if (currentRelease) {\n return currentRelease.id\n }\n // Fallback to latest release if no current release is marked\n return releases.releases[0].id\n }\n return null\n } catch (error) {\n // Silently return null - the calling code will handle no releases\n return null\n }\n }\n\n async getLatestRelease(): Promise<string | null> {\n try {\n const releases = await this.getReleases()\n if (releases.releases && releases.releases.length > 0) {\n // Releases are ordered by created_at desc, so first one is latest\n return releases.releases[0].id\n }\n return null\n } catch (error) {\n // Silently return null - the calling code will handle no releases\n return null\n }\n }\n\n async getLanguages(): Promise<any> {\n // Get project details to extract languages\n const projectData = await this.getProject()\n return {\n languages: projectData.project.languages?.map((lang: any) => ({\n language_code: typeof lang === 'string' ? lang : lang.code,\n name: typeof lang === 'string' ? lang : lang.name,\n enabled: true\n })) || []\n }\n }\n\n async addTranslationKey(key: string, translations: Record<string, string>): Promise<any> {\n return this.request<any>(\n `/v1/keys`,\n {\n method: 'POST',\n body: JSON.stringify({ key, translations })\n }\n )\n }\n\n async translateKey(text: string, sourceLanguage: string, targetLanguages: string[]): Promise<Record<string, string>> {\n // Use batch translate for efficiency\n const response = await this.request<any>('/v1/translations/translate/batch', {\n method: 'POST',\n body: JSON.stringify({\n texts: [text],\n sourceLanguage,\n targetLanguages\n })\n })\n \n return response.translations[text] || {}\n }\n\n async createRelease(data: {\n version?: string\n name?: string\n description?: string\n reviewedOnly?: boolean\n environmentId?: string\n } = {}): Promise<any> {\n // If no environmentId provided, we need to fetch it\n let environmentId = data.environmentId\n \n if (!environmentId) {\n // First, get the project to find environments\n const projectData = await this.getProject()\n const project = projectData.project\n \n // Find the environment ID for the specified environment name\n const envName = this.config.environment || 'production'\n const environment = project.environments?.find((env: any) => env.name === envName)\n \n if (!environment) {\n throw new Error(`Environment '${envName}' not found for project`)\n }\n \n environmentId = environment.id\n }\n \n return this.request<any>(\n `/v1/projects/${this.config.projectId}/releases`,\n {\n method: 'POST',\n body: JSON.stringify({\n environmentId,\n version: data.version || new Date().toISOString().split('T')[0],\n name: data.name,\n description: data.description,\n reviewedOnly: data.reviewedOnly || false,\n setAsCurrent: true\n })\n }\n )\n }\n\n async getProject(): Promise<any> {\n return this.request<any>(`/v1/projects/${this.config.projectId}`)\n }\n}"],"mappings":"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","names":[]}
@@ -1,217 +0,0 @@
1
- import {
2
- loadConfig,
3
- validateConfig
4
- } from "./chunk-EDQCBUBB.js";
5
- import {
6
- LezuApiClient
7
- } from "./chunk-HFRJAE6K.js";
8
-
9
- // src/commands/get.ts
10
- import { Command } from "commander";
11
- import chalk from "chalk";
12
- import ora from "ora";
13
- function createGetCommand() {
14
- const command = new Command("get").description("Get information about your project");
15
- command.command("languages").alias("langs").description("List all languages in your project").option("-p, --project <id>", "Project ID").option("-a, --api-key <key>", "API key").option("--api-url <url>", "API URL", "https://api.lezu.app").option("--include-disabled", "Include disabled languages").option("--json", "Output as JSON").action(async (options) => {
16
- try {
17
- const config = loadConfig(options);
18
- const errors = validateConfig(config);
19
- if (errors.length > 0) {
20
- console.error(chalk.red("Configuration errors:"));
21
- errors.forEach((error) => console.error(chalk.red(` - ${error}`)));
22
- process.exit(1);
23
- }
24
- await getLanguages(config, options);
25
- } catch (error) {
26
- console.error(chalk.red("\n[Error]"), error instanceof Error ? error.message : error);
27
- process.exit(1);
28
- }
29
- });
30
- command.command("releases").description("List all releases in your project").option("-p, --project <id>", "Project ID").option("-a, --api-key <key>", "API key").option("--api-url <url>", "API URL", "https://api.lezu.app").option("-e, --environment <env>", "Environment", "production").option("--json", "Output as JSON").option("--limit <n>", "Limit number of results", "10").action(async (options) => {
31
- try {
32
- const config = loadConfig(options);
33
- const errors = validateConfig(config);
34
- if (errors.length > 0) {
35
- console.error(chalk.red("Configuration errors:"));
36
- errors.forEach((error) => console.error(chalk.red(` - ${error}`)));
37
- process.exit(1);
38
- }
39
- await getReleases(config, options);
40
- } catch (error) {
41
- console.error(chalk.red("\n[Error]"), error instanceof Error ? error.message : error);
42
- process.exit(1);
43
- }
44
- });
45
- command.command("project").alias("info").description("Get project information and statistics").option("-p, --project <id>", "Project ID").option("-a, --api-key <key>", "API key").option("--api-url <url>", "API URL", "https://api.lezu.app").option("--json", "Output as JSON").option("--stats", "Include detailed statistics").action(async (options) => {
46
- try {
47
- const config = loadConfig(options);
48
- const errors = validateConfig(config);
49
- if (errors.length > 0) {
50
- console.error(chalk.red("Configuration errors:"));
51
- errors.forEach((error) => console.error(chalk.red(` - ${error}`)));
52
- process.exit(1);
53
- }
54
- await getProject(config, options);
55
- } catch (error) {
56
- console.error(chalk.red("\n[Error]"), error instanceof Error ? error.message : error);
57
- process.exit(1);
58
- }
59
- });
60
- return command;
61
- }
62
- async function getLanguages(config, options) {
63
- const spinner = ora("Fetching languages...").start();
64
- try {
65
- const client = new LezuApiClient(config);
66
- const response = await client.getLanguages();
67
- spinner.succeed("Languages fetched successfully!");
68
- if (options.json) {
69
- console.log(JSON.stringify(response, null, 2));
70
- return;
71
- }
72
- console.log(chalk.green("\n[Project Languages]"));
73
- if (!response.languages || response.languages.length === 0) {
74
- console.log(chalk.gray(" No languages found"));
75
- return;
76
- }
77
- response.languages.forEach((lang) => {
78
- const status = lang.enabled ? chalk.green("[ON]") : chalk.gray("[OFF]");
79
- const progress = lang.progress ? ` (${lang.progress.percentage}% complete)` : "";
80
- const source = lang.is_source ? chalk.yellow(" [SOURCE]") : "";
81
- console.log(` ${status} ${lang.language?.name || lang.language_code} (${lang.language_code})${source}${progress}`);
82
- if (lang.progress && lang.progress.total > 0) {
83
- console.log(chalk.gray(` ${lang.progress.translated}/${lang.progress.total} keys translated`));
84
- }
85
- });
86
- console.log(chalk.gray(`
87
- Total: ${response.total} languages`));
88
- } catch (error) {
89
- spinner.fail("Failed to fetch languages");
90
- throw error;
91
- }
92
- }
93
- async function getReleases(config, options) {
94
- const spinner = ora("Fetching releases...").start();
95
- try {
96
- const client = new LezuApiClient(config);
97
- const response = await client.getReleases();
98
- spinner.succeed("Releases fetched successfully!");
99
- if (options.json) {
100
- console.log(JSON.stringify(response, null, 2));
101
- return;
102
- }
103
- console.log(chalk.green(`
104
- [Releases] (${options.environment} environment):`));
105
- if (!response.releases || response.releases.length === 0) {
106
- console.log(chalk.gray(" No releases found"));
107
- return;
108
- }
109
- const limit = parseInt(options.limit, 10);
110
- const releases = response.releases.slice(0, limit);
111
- releases.forEach((release, index) => {
112
- const current = release.is_current ? chalk.yellow(" [CURRENT]") : "";
113
- const date = new Date(release.created_at).toLocaleDateString();
114
- const reviewedTag = release.reviewed_only ? chalk.blue(" [REVIEWED ONLY]") : "";
115
- console.log(` ${index + 1}. ${release.version}${current}${reviewedTag}`);
116
- if (release.name && release.name !== release.version) {
117
- console.log(chalk.gray(` ${release.name}`));
118
- }
119
- if (release.description) {
120
- console.log(chalk.gray(` ${release.description}`));
121
- }
122
- console.log(chalk.gray(` Created: ${date}`));
123
- if (release.created_by_user?.email) {
124
- console.log(chalk.gray(` By: ${release.created_by_user.email}`));
125
- }
126
- console.log();
127
- });
128
- if (response.releases.length > limit) {
129
- console.log(chalk.gray(`... and ${response.releases.length - limit} more releases`));
130
- console.log(chalk.gray(`Use --limit ${response.releases.length} to see all releases`));
131
- }
132
- } catch (error) {
133
- spinner.fail("Failed to fetch releases");
134
- throw error;
135
- }
136
- }
137
- async function getProject(config, options) {
138
- const spinner = ora("Fetching project information...").start();
139
- try {
140
- const client = new LezuApiClient(config);
141
- let projectData, statsData;
142
- if (options.stats) {
143
- const [projectResponse, statsResponse] = await Promise.all([
144
- client.getProject(),
145
- fetch(`${config.apiUrl}/v1/projects/${config.projectId}/stats`, {
146
- headers: {
147
- "Authorization": `Bearer ${config.apiKey}`
148
- }
149
- }).then((r) => r.json())
150
- ]);
151
- projectData = projectResponse.project;
152
- statsData = statsResponse.stats;
153
- } else {
154
- const response = await client.getProject();
155
- projectData = response.project;
156
- }
157
- spinner.succeed("Project information fetched successfully!");
158
- if (options.json) {
159
- console.log(JSON.stringify({ project: projectData, stats: statsData }, null, 2));
160
- return;
161
- }
162
- console.log(chalk.green("\n[Project Information]"));
163
- console.log(` Name: ${projectData.name}`);
164
- console.log(` Key: ${projectData.key}`);
165
- console.log(` ID: ${projectData.id}`);
166
- if (projectData.description) {
167
- console.log(` Description: ${projectData.description}`);
168
- }
169
- console.log(` Source Language: ${projectData.source_language}`);
170
- console.log(` Created: ${new Date(projectData.created_at).toLocaleDateString()}`);
171
- if (projectData.stats) {
172
- console.log(chalk.green("\n[Basic Statistics]"));
173
- console.log(` Translation Keys: ${projectData.stats.keys}`);
174
- console.log(` Languages: ${projectData.stats.languages}`);
175
- console.log(` Translations: ${projectData.stats.translations}`);
176
- console.log(` Completeness: ${projectData.stats.completeness}%`);
177
- }
178
- if (statsData) {
179
- console.log(chalk.green("\n[Detailed Statistics]"));
180
- console.log(` Total Keys: ${statsData.overview.totalKeys}`);
181
- console.log(` Total Languages: ${statsData.overview.totalLanguages}`);
182
- console.log(` Total Releases: ${statsData.overview.totalReleases}`);
183
- console.log(` Keys Added Last Month: ${statsData.overview.keysAddedLastMonth}`);
184
- if (statsData.languages && statsData.languages.length > 0) {
185
- console.log(chalk.green("\n[Language Progress]"));
186
- statsData.languages.forEach((lang) => {
187
- const percentage = lang.percentage;
188
- const bar = "#".repeat(Math.floor(percentage / 5)) + "-".repeat(20 - Math.floor(percentage / 5));
189
- console.log(` ${lang.language_code}: [${bar}] ${percentage}%`);
190
- console.log(chalk.gray(` ${lang.translated}/${lang.total} translated, ${lang.reviewed} reviewed, ${lang.missing} missing`));
191
- });
192
- }
193
- if (statsData.recentReleases && statsData.recentReleases.length > 0) {
194
- console.log(chalk.green("\n[Recent Releases]"));
195
- statsData.recentReleases.forEach((release) => {
196
- const date = new Date(release.created_at).toLocaleDateString();
197
- console.log(` - ${release.version} (${date})`);
198
- });
199
- }
200
- }
201
- if (projectData.environments && projectData.environments.length > 0) {
202
- console.log(chalk.green("\n[Environments]"));
203
- projectData.environments.forEach((env) => {
204
- const current = env.current_release_id ? ` (current: ${env.current_release_id.substring(0, 8)}...)` : "";
205
- console.log(` - ${env.name}${current}`);
206
- });
207
- }
208
- } catch (error) {
209
- spinner.fail("Failed to fetch project information");
210
- throw error;
211
- }
212
- }
213
-
214
- export {
215
- createGetCommand
216
- };
217
- //# sourceMappingURL=chunk-NQBVD6F7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/commands/get.ts"],"sourcesContent":["import { Command } from 'commander'\nimport chalk from 'chalk'\nimport ora from 'ora'\nimport { loadConfig, validateConfig } from '../config.js'\nimport { LezuApiClient } from '../api.js'\nimport type { Config } from '../types.js'\n\nexport function createGetCommand() {\n const command = new Command('get')\n .description('Get information about your project')\n \n // Languages subcommand\n command\n .command('languages')\n .alias('langs')\n .description('List all languages in your project')\n .option('-p, --project <id>', 'Project ID')\n .option('-a, --api-key <key>', 'API key')\n .option('--api-url <url>', 'API URL', 'https://api.lezu.app')\n .option('--include-disabled', 'Include disabled languages')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const config = loadConfig(options)\n const errors = validateConfig(config)\n if (errors.length > 0) {\n console.error(chalk.red('Configuration errors:'))\n errors.forEach(error => console.error(chalk.red(` - ${error}`)))\n process.exit(1)\n }\n \n await getLanguages(config, options)\n } catch (error) {\n console.error(chalk.red('\\n[Error]'), error instanceof Error ? error.message : error)\n process.exit(1)\n }\n })\n \n // Releases subcommand\n command\n .command('releases')\n .description('List all releases in your project')\n .option('-p, --project <id>', 'Project ID')\n .option('-a, --api-key <key>', 'API key')\n .option('--api-url <url>', 'API URL', 'https://api.lezu.app')\n .option('-e, --environment <env>', 'Environment', 'production')\n .option('--json', 'Output as JSON')\n .option('--limit <n>', 'Limit number of results', '10')\n .action(async (options) => {\n try {\n const config = loadConfig(options)\n const errors = validateConfig(config)\n if (errors.length > 0) {\n console.error(chalk.red('Configuration errors:'))\n errors.forEach(error => console.error(chalk.red(` - ${error}`)))\n process.exit(1)\n }\n \n await getReleases(config, options)\n } catch (error) {\n console.error(chalk.red('\\n[Error]'), error instanceof Error ? error.message : error)\n process.exit(1)\n }\n })\n \n // Project info subcommand\n command\n .command('project')\n .alias('info')\n .description('Get project information and statistics')\n .option('-p, --project <id>', 'Project ID')\n .option('-a, --api-key <key>', 'API key')\n .option('--api-url <url>', 'API URL', 'https://api.lezu.app')\n .option('--json', 'Output as JSON')\n .option('--stats', 'Include detailed statistics')\n .action(async (options) => {\n try {\n const config = loadConfig(options)\n const errors = validateConfig(config)\n if (errors.length > 0) {\n console.error(chalk.red('Configuration errors:'))\n errors.forEach(error => console.error(chalk.red(` - ${error}`)))\n process.exit(1)\n }\n \n await getProject(config, options)\n } catch (error) {\n console.error(chalk.red('\\n[Error]'), error instanceof Error ? error.message : error)\n process.exit(1)\n }\n })\n \n return command\n}\n\nasync function getLanguages(config: Config, options: any) {\n const spinner = ora('Fetching languages...').start()\n \n try {\n const client = new LezuApiClient(config)\n const response = await client.getLanguages()\n \n spinner.succeed('Languages fetched successfully!')\n \n if (options.json) {\n console.log(JSON.stringify(response, null, 2))\n return\n }\n \n console.log(chalk.green('\\n[Project Languages]'))\n \n if (!response.languages || response.languages.length === 0) {\n console.log(chalk.gray(' No languages found'))\n return\n }\n \n response.languages.forEach((lang: any) => {\n const status = lang.enabled ? chalk.green('[ON]') : chalk.gray('[OFF]')\n const progress = lang.progress ? ` (${lang.progress.percentage}% complete)` : ''\n const source = lang.is_source ? chalk.yellow(' [SOURCE]') : ''\n \n console.log(` ${status} ${lang.language?.name || lang.language_code} (${lang.language_code})${source}${progress}`)\n \n if (lang.progress && lang.progress.total > 0) {\n console.log(chalk.gray(` ${lang.progress.translated}/${lang.progress.total} keys translated`))\n }\n })\n \n console.log(chalk.gray(`\\nTotal: ${response.total} languages`))\n \n } catch (error) {\n spinner.fail('Failed to fetch languages')\n throw error\n }\n}\n\nasync function getReleases(config: Config, options: any) {\n const spinner = ora('Fetching releases...').start()\n \n try {\n const client = new LezuApiClient(config)\n const response = await client.getReleases()\n \n spinner.succeed('Releases fetched successfully!')\n \n if (options.json) {\n console.log(JSON.stringify(response, null, 2))\n return\n }\n \n console.log(chalk.green(`\\n[Releases] (${options.environment} environment):`))\n \n if (!response.releases || response.releases.length === 0) {\n console.log(chalk.gray(' No releases found'))\n return\n }\n \n const limit = parseInt(options.limit, 10)\n const releases = response.releases.slice(0, limit)\n \n releases.forEach((release: any, index: number) => {\n const current = release.is_current ? chalk.yellow(' [CURRENT]') : ''\n const date = new Date(release.created_at).toLocaleDateString()\n const reviewedTag = release.reviewed_only ? chalk.blue(' [REVIEWED ONLY]') : ''\n \n console.log(` ${index + 1}. ${release.version}${current}${reviewedTag}`)\n if (release.name && release.name !== release.version) {\n console.log(chalk.gray(` ${release.name}`))\n }\n if (release.description) {\n console.log(chalk.gray(` ${release.description}`))\n }\n console.log(chalk.gray(` Created: ${date}`))\n if (release.created_by_user?.email) {\n console.log(chalk.gray(` By: ${release.created_by_user.email}`))\n }\n console.log() // empty line\n })\n \n if (response.releases.length > limit) {\n console.log(chalk.gray(`... and ${response.releases.length - limit} more releases`))\n console.log(chalk.gray(`Use --limit ${response.releases.length} to see all releases`))\n }\n \n } catch (error) {\n spinner.fail('Failed to fetch releases')\n throw error\n }\n}\n\nasync function getProject(config: Config, options: any) {\n const spinner = ora('Fetching project information...').start()\n \n try {\n const client = new LezuApiClient(config)\n \n let projectData, statsData\n \n if (options.stats) {\n // Fetch both project info and detailed stats\n const [projectResponse, statsResponse] = await Promise.all([\n client.getProject(),\n fetch(`${config.apiUrl}/v1/projects/${config.projectId}/stats`, {\n headers: {\n 'Authorization': `Bearer ${config.apiKey}`,\n },\n }).then(r => r.json())\n ])\n projectData = projectResponse.project\n statsData = statsResponse.stats\n } else {\n const response = await client.getProject()\n projectData = response.project\n }\n \n spinner.succeed('Project information fetched successfully!')\n \n if (options.json) {\n console.log(JSON.stringify({ project: projectData, stats: statsData }, null, 2))\n return\n }\n \n console.log(chalk.green('\\n[Project Information]'))\n console.log(` Name: ${projectData.name}`)\n console.log(` Key: ${projectData.key}`)\n console.log(` ID: ${projectData.id}`)\n if (projectData.description) {\n console.log(` Description: ${projectData.description}`)\n }\n console.log(` Source Language: ${projectData.source_language}`)\n console.log(` Created: ${new Date(projectData.created_at).toLocaleDateString()}`)\n \n // Basic stats (always available)\n if (projectData.stats) {\n console.log(chalk.green('\\n[Basic Statistics]'))\n console.log(` Translation Keys: ${projectData.stats.keys}`)\n console.log(` Languages: ${projectData.stats.languages}`)\n console.log(` Translations: ${projectData.stats.translations}`)\n console.log(` Completeness: ${projectData.stats.completeness}%`)\n }\n \n // Detailed stats (when --stats is used)\n if (statsData) {\n console.log(chalk.green('\\n[Detailed Statistics]'))\n console.log(` Total Keys: ${statsData.overview.totalKeys}`)\n console.log(` Total Languages: ${statsData.overview.totalLanguages}`)\n console.log(` Total Releases: ${statsData.overview.totalReleases}`)\n console.log(` Keys Added Last Month: ${statsData.overview.keysAddedLastMonth}`)\n \n if (statsData.languages && statsData.languages.length > 0) {\n console.log(chalk.green('\\n[Language Progress]'))\n statsData.languages.forEach((lang: any) => {\n const percentage = lang.percentage\n const bar = '#'.repeat(Math.floor(percentage / 5)) + '-'.repeat(20 - Math.floor(percentage / 5))\n console.log(` ${lang.language_code}: [${bar}] ${percentage}%`)\n console.log(chalk.gray(` ${lang.translated}/${lang.total} translated, ${lang.reviewed} reviewed, ${lang.missing} missing`))\n })\n }\n \n if (statsData.recentReleases && statsData.recentReleases.length > 0) {\n console.log(chalk.green('\\n[Recent Releases]'))\n statsData.recentReleases.forEach((release: any) => {\n const date = new Date(release.created_at).toLocaleDateString()\n console.log(` - ${release.version} (${date})`)\n })\n }\n }\n \n // Show environments\n if (projectData.environments && projectData.environments.length > 0) {\n console.log(chalk.green('\\n[Environments]'))\n projectData.environments.forEach((env: any) => {\n const current = env.current_release_id ? ` (current: ${env.current_release_id.substring(0, 8)}...)` : ''\n console.log(` - ${env.name}${current}`)\n })\n }\n \n } catch (error) {\n spinner.fail('Failed to fetch project information')\n throw error\n }\n}"],"mappings":"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","names":[]}
@@ -1,9 +0,0 @@
1
- import {
2
- createGetCommand
3
- } from "./chunk-NQBVD6F7.js";
4
- import "./chunk-EDQCBUBB.js";
5
- import "./chunk-HFRJAE6K.js";
6
- export {
7
- createGetCommand
8
- };
9
- //# sourceMappingURL=get-2SEC6NXW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }