@better-translate/cli 1.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.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/ai-sdk-generator-WPQCTPGA.js +37 -0
- package/dist/ai-sdk-generator.d.ts +3 -0
- package/dist/ai-sdk-generator.d.ts.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +174 -0
- package/dist/chunk-JFSWNLL6.js +854 -0
- package/dist/chunk-WMIZO3GE.js +19 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/config-loader.d.ts +6 -0
- package/dist/config-loader.d.ts.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +8 -0
- package/dist/define-config.d.ts +3 -0
- package/dist/define-config.d.ts.map +1 -0
- package/dist/env.d.ts +3 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/generate.d.ts +3 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/markdown.d.ts +18 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/messages.d.ts +13 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/module-loader.d.ts +2 -0
- package/dist/module-loader.d.ts.map +1 -0
- package/dist/prompts.d.ts +24 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/provider-models.d.ts +5 -0
- package/dist/provider-models.d.ts.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/validation.d.ts +12 -0
- package/dist/validation.d.ts.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// src/define-config.ts
|
|
2
|
+
function defineConfig(config) {
|
|
3
|
+
return config;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// src/provider-models.ts
|
|
7
|
+
function openai(modelId, options) {
|
|
8
|
+
return {
|
|
9
|
+
apiKey: options.apiKey,
|
|
10
|
+
kind: "provider-model",
|
|
11
|
+
modelId,
|
|
12
|
+
provider: "openai"
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
defineConfig,
|
|
18
|
+
openai
|
|
19
|
+
};
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAgDA,wBAAsB,MAAM,CAC1B,IAAI,WAAwB,EAC5B,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,GACL,OAAO,CAAC,MAAM,CAAC,CAoCjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,8BAA8B,EAG/B,MAAM,YAAY,CAAC;AAuJpB,wBAAsB,aAAa,CACjC,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACT,GACL,OAAO,CAAC,8BAA8B,CAAC,CAyBzC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,YAAY,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,YAAY,CAAC,OAAO,SAAS,wBAAwB,EACnE,MAAM,EAAE,OAAO,GACd,OAAO,CAET"}
|
package/dist/env.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BlD;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,MAAM,EAAE,CAUV"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAGV,sBAAsB,EACtB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAgHpB,wBAAsB,eAAe,CACnC,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CA6KhC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { loadCliConfig } from "./config-loader.js";
|
|
2
|
+
export { defineConfig } from "./define-config.js";
|
|
3
|
+
export { generateProject } from "./generate.js";
|
|
4
|
+
export { openai } from "./provider-models.js";
|
|
5
|
+
export type { BetterTranslateCliConfig, BetterTranslateCliGatewayConfig, BetterTranslateCliOpenAIConfig, CliLogger, CliWriteOperation, GenerateProjectOptions, GenerateProjectResult, LoadedBetterTranslateCliConfig, MarkdownExtension, OpenAIProviderModelSpec, ResolvedBetterTranslateCliConfig, ResolvedBetterTranslateCliGatewayConfig, ResolvedBetterTranslateCliOpenAIConfig, StructuredGenerationRequest, StructuredGenerator, } from "./types.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,YAAY,EACV,wBAAwB,EACxB,+BAA+B,EAC/B,8BAA8B,EAC9B,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,8BAA8B,EAC9B,iBAAiB,EACjB,uBAAuB,EACvB,gCAAgC,EAChC,uCAAuC,EACvC,sCAAsC,EACtC,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,mBAAmB,IAAI,SAAS,CAuI/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TranslationMessages } from "@better-translate/core";
|
|
2
|
+
import type { MarkdownExtension } from "./types.js";
|
|
3
|
+
export interface LoadedMarkdownDocument {
|
|
4
|
+
body: string;
|
|
5
|
+
frontmatter: Record<string, unknown>;
|
|
6
|
+
frontmatterStrings: TranslationMessages;
|
|
7
|
+
relativePath: string;
|
|
8
|
+
schema: object;
|
|
9
|
+
sourceText: string;
|
|
10
|
+
sourcePath: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function createMarkdownOutputSchema(frontmatterStrings: TranslationMessages): object;
|
|
13
|
+
export declare function applyMarkdownTranslation(sourceFrontmatter: Record<string, unknown>, translatedStrings: TranslationMessages, body: string): string;
|
|
14
|
+
export declare function listMarkdownSourceFiles(rootDir: string, extensions: readonly MarkdownExtension[]): Promise<string[]>;
|
|
15
|
+
export declare function loadMarkdownDocument(rootDir: string, sourcePath: string): Promise<LoadedMarkdownDocument>;
|
|
16
|
+
export declare function deriveTargetMarkdownRoot(rootDir: string, sourceLocale: string, targetLocale: string): string;
|
|
17
|
+
export declare function deriveTargetMarkdownPath(rootDir: string, sourceLocale: string, targetLocale: string, relativePath: string): string;
|
|
18
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoED,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,mBAAmB,GACtC,MAAM,CAYR;AA6BD,wBAAgB,wBAAwB,CACtC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1C,iBAAiB,EAAE,mBAAmB,EACtC,IAAI,EAAE,MAAM,GACX,MAAM,CAKR;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,iBAAiB,EAAE,GACvC,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAmBjC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CASR;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAKR"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type TranslationMessages } from "@better-translate/core";
|
|
2
|
+
export interface LoadedSourceMessages {
|
|
3
|
+
format: "json" | "ts";
|
|
4
|
+
keyPaths: readonly string[];
|
|
5
|
+
messages: TranslationMessages;
|
|
6
|
+
schema: object;
|
|
7
|
+
sourceText: string;
|
|
8
|
+
sourcePath: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function loadSourceMessages(sourcePath: string, sourceLocale: string): Promise<LoadedSourceMessages>;
|
|
11
|
+
export declare function deriveTargetMessagesPath(sourcePath: string, sourceLocale: string, targetLocale: string): string;
|
|
12
|
+
export declare function serializeMessages(messages: TranslationMessages, format: "json" | "ts", locale: string): string;
|
|
13
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,wBAAwB,CAAC;AAUhC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAsC/B;AAyBD,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAWR;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,MAAM,EAAE,MAAM,GACb,MAAM,CASR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"AA6CA,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { TranslationMessages } from "@better-translate/core";
|
|
2
|
+
export declare function createMessagesPrompt(options: {
|
|
3
|
+
keyPaths: readonly string[];
|
|
4
|
+
sourceLocale: string;
|
|
5
|
+
sourceMessages: TranslationMessages;
|
|
6
|
+
sourceText: string;
|
|
7
|
+
sourcePath: string;
|
|
8
|
+
targetLocale: string;
|
|
9
|
+
}): {
|
|
10
|
+
prompt: string;
|
|
11
|
+
system: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function createMarkdownPrompt(options: {
|
|
14
|
+
body: string;
|
|
15
|
+
frontmatterStrings: Record<string, unknown>;
|
|
16
|
+
relativePath: string;
|
|
17
|
+
sourceLocale: string;
|
|
18
|
+
sourceText: string;
|
|
19
|
+
targetLocale: string;
|
|
20
|
+
}): {
|
|
21
|
+
prompt: string;
|
|
22
|
+
system: string;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAgClE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAwBA;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG;IACF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAwBA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-models.d.ts","sourceRoot":"","sources":["../src/provider-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,uBAAuB,CAOzB"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export type MarkdownExtension = ".md" | ".mdx";
|
|
2
|
+
interface BetterTranslateCliConfigBase {
|
|
3
|
+
locales: string[];
|
|
4
|
+
markdown?: {
|
|
5
|
+
extensions?: readonly MarkdownExtension[];
|
|
6
|
+
rootDir: string;
|
|
7
|
+
};
|
|
8
|
+
messages: {
|
|
9
|
+
entry: string;
|
|
10
|
+
};
|
|
11
|
+
sourceLocale: string;
|
|
12
|
+
}
|
|
13
|
+
export interface OpenAIProviderModelSpec {
|
|
14
|
+
apiKey: string;
|
|
15
|
+
kind: "provider-model";
|
|
16
|
+
modelId: string;
|
|
17
|
+
provider: "openai";
|
|
18
|
+
}
|
|
19
|
+
export interface BetterTranslateCliGatewayConfig extends BetterTranslateCliConfigBase {
|
|
20
|
+
gateway: {
|
|
21
|
+
apiKey: string;
|
|
22
|
+
};
|
|
23
|
+
model: string;
|
|
24
|
+
}
|
|
25
|
+
export interface BetterTranslateCliOpenAIConfig extends BetterTranslateCliConfigBase {
|
|
26
|
+
gateway?: never;
|
|
27
|
+
model: OpenAIProviderModelSpec;
|
|
28
|
+
}
|
|
29
|
+
export type BetterTranslateCliConfig = BetterTranslateCliGatewayConfig | BetterTranslateCliOpenAIConfig;
|
|
30
|
+
interface ResolvedBetterTranslateCliConfigBase {
|
|
31
|
+
locales: readonly string[];
|
|
32
|
+
markdown?: {
|
|
33
|
+
extensions: readonly MarkdownExtension[];
|
|
34
|
+
rootDir: string;
|
|
35
|
+
};
|
|
36
|
+
messages: {
|
|
37
|
+
entry: string;
|
|
38
|
+
};
|
|
39
|
+
sourceLocale: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ResolvedBetterTranslateCliGatewayConfig extends ResolvedBetterTranslateCliConfigBase {
|
|
42
|
+
gateway: {
|
|
43
|
+
apiKey: string;
|
|
44
|
+
};
|
|
45
|
+
model: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ResolvedBetterTranslateCliOpenAIConfig extends ResolvedBetterTranslateCliConfigBase {
|
|
48
|
+
model: OpenAIProviderModelSpec;
|
|
49
|
+
}
|
|
50
|
+
export type ResolvedBetterTranslateCliConfig = ResolvedBetterTranslateCliGatewayConfig | ResolvedBetterTranslateCliOpenAIConfig;
|
|
51
|
+
export interface LoadedBetterTranslateCliConfig {
|
|
52
|
+
config: ResolvedBetterTranslateCliConfig;
|
|
53
|
+
directory: string;
|
|
54
|
+
path: string;
|
|
55
|
+
}
|
|
56
|
+
export interface CliWriteOperation {
|
|
57
|
+
content: string;
|
|
58
|
+
kind: "markdown" | "messages";
|
|
59
|
+
locale: string;
|
|
60
|
+
sourcePath: string;
|
|
61
|
+
targetPath: string;
|
|
62
|
+
}
|
|
63
|
+
export interface CliLogger {
|
|
64
|
+
error(message: string): void;
|
|
65
|
+
info(message: string): void;
|
|
66
|
+
}
|
|
67
|
+
export interface StructuredGenerationRequest<TOutput> {
|
|
68
|
+
kind: "markdown" | "messages";
|
|
69
|
+
prompt: string;
|
|
70
|
+
schema: object;
|
|
71
|
+
sourcePath: string;
|
|
72
|
+
system: string;
|
|
73
|
+
targetLocale: string;
|
|
74
|
+
validate?: (value: unknown) => TOutput;
|
|
75
|
+
}
|
|
76
|
+
export type StructuredGenerator = <TOutput>(request: StructuredGenerationRequest<TOutput>) => Promise<TOutput>;
|
|
77
|
+
export interface GenerateProjectOptions {
|
|
78
|
+
configPath?: string;
|
|
79
|
+
cwd?: string;
|
|
80
|
+
dryRun?: boolean;
|
|
81
|
+
generator?: StructuredGenerator;
|
|
82
|
+
logger?: CliLogger;
|
|
83
|
+
}
|
|
84
|
+
export interface GenerateProjectResult {
|
|
85
|
+
dryRun: boolean;
|
|
86
|
+
loadedConfig: LoadedBetterTranslateCliConfig;
|
|
87
|
+
writes: CliWriteOperation[];
|
|
88
|
+
}
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MarkdownExtension } from "./types.js";
|
|
2
|
+
type UnknownRecord = Record<string, unknown>;
|
|
3
|
+
export declare function isRecord(value: unknown): value is UnknownRecord;
|
|
4
|
+
export declare function assert(condition: unknown, message: string): asserts condition;
|
|
5
|
+
export declare function isTranslationMessages(value: unknown): value is UnknownRecord;
|
|
6
|
+
export declare function assertTranslationMessages(value: unknown, message: string): asserts value is UnknownRecord;
|
|
7
|
+
export declare function flattenTranslationKeys(messages: UnknownRecord, prefix?: string): string[];
|
|
8
|
+
export declare function assertExactMessageShape(reference: UnknownRecord, candidate: unknown, pathParts?: string[]): asserts candidate is UnknownRecord;
|
|
9
|
+
export declare function normalizeMarkdownExtensions(value: unknown): readonly MarkdownExtension[];
|
|
10
|
+
export declare function toJavaScriptIdentifier(value: string): string;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAE/D;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAI7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAY5E;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,IAAI,aAAa,CAEhC;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EACvB,MAAM,SAAK,GACV,MAAM,EAAE,CAeV;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,OAAO,EAClB,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,SAAS,IAAI,aAAa,CAoCpC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,SAAS,iBAAiB,EAAE,CAwB9B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAgB5D"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@better-translate/cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-powered translation generation CLI for Better Translate.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"bin": {
|
|
11
|
+
"bt": "./dist/bin.js"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./config": {
|
|
19
|
+
"types": "./dist/config.d.ts",
|
|
20
|
+
"import": "./dist/config.js"
|
|
21
|
+
},
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
"files": ["dist", "LICENSE", "README.md"],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsup src/index.ts src/config.ts src/bin.ts --format esm --clean && tsc -p tsconfig.build.json",
|
|
27
|
+
"check-types": "tsc --noEmit",
|
|
28
|
+
"test": "bun test tests/runtime",
|
|
29
|
+
"test:types": "tsc -p tests/types/tsconfig.json --noEmit"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "git+https://github.com/jralvarenga/better-translate.git",
|
|
37
|
+
"directory": "packages/cli"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/jralvarenga/better-translate/tree/main/packages/cli#readme",
|
|
40
|
+
"bugs": {
|
|
41
|
+
"url": "https://github.com/jralvarenga/better-translate/issues"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@ai-sdk/openai": "^3.0.41",
|
|
45
|
+
"ai": "^6.0.116",
|
|
46
|
+
"@better-translate/core": "workspace:^",
|
|
47
|
+
"dotenv": "^17.2.3",
|
|
48
|
+
"gray-matter": "^4.0.3",
|
|
49
|
+
"ora": "^8.2.0",
|
|
50
|
+
"picocolors": "^1.1.1",
|
|
51
|
+
"typescript": "5.9.2"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@repo/typescript-config": "*",
|
|
55
|
+
"@types/node": "^24.5.2"
|
|
56
|
+
},
|
|
57
|
+
"keywords": ["ai", "cli", "i18n", "l10n", "translations", "typescript"]
|
|
58
|
+
}
|