@scoutello/i18n-magic 0.18.0 → 0.19.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/README.md +43 -16
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +2 -1
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/create-pruned-namespace.d.ts.map +1 -1
- package/dist/commands/create-pruned-namespace.js +2 -1
- package/dist/commands/create-pruned-namespace.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/types.d.ts +4 -6
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +19 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +46 -2
- package/dist/lib/utils.js.map +1 -1
- package/package.json +3 -2
- package/src/commands/clean.ts +4 -1
- package/src/commands/create-pruned-namespace.ts +4 -1
- package/src/index.ts +1 -1
- package/src/lib/types.ts +4 -6
- package/src/lib/utils.ts +59 -2
package/README.md
CHANGED
|
@@ -45,13 +45,34 @@ Create an `i18n-magic.js` file in your project root with your project-specific s
|
|
|
45
45
|
|
|
46
46
|
```js
|
|
47
47
|
module.exports = {
|
|
48
|
-
globPatterns: [
|
|
48
|
+
globPatterns: [
|
|
49
|
+
'./components/**/*.tsx',
|
|
50
|
+
'./pages/**/*.tsx',
|
|
51
|
+
'./lib/**/*.ts',
|
|
52
|
+
// Namespace-specific patterns for pruned translations
|
|
53
|
+
{
|
|
54
|
+
pattern: './apps/dashboard/**/*.tsx',
|
|
55
|
+
namespaces: ['dashboard'],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
pattern: './apps/dashboard/**/*.ts',
|
|
59
|
+
namespaces: ['dashboard'],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
pattern: './apps/mobile/**/*.tsx',
|
|
63
|
+
namespaces: ['mobile'],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
pattern: './apps/mobile/**/*.ts',
|
|
67
|
+
namespaces: ['mobile'],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
49
70
|
loadPath: 'locales/{{lng}}/{{ns}}.json',
|
|
50
71
|
savePath: 'locales/{{lng}}/{{ns}}.json',
|
|
51
72
|
locales: ['en', 'de'],
|
|
52
73
|
defaultLocale: 'de',
|
|
53
74
|
defaultNamespace: 'common',
|
|
54
|
-
namespaces: ['common', 'forms'],
|
|
75
|
+
namespaces: ['common', 'forms', 'dashboard', 'mobile'],
|
|
55
76
|
context:
|
|
56
77
|
'This is a context which increases the quality of the translations by giving context to the LLM',
|
|
57
78
|
// Optional configurations
|
|
@@ -60,23 +81,29 @@ module.exports = {
|
|
|
60
81
|
GEMINI_API_KEY: '', // Alternative to using .env file
|
|
61
82
|
disableTranslation: false, // Set to true to skip automatic translations during the scan step. Useful if you want to sync the other languages during CI/CD using sync.
|
|
62
83
|
autoClear: true, // When using the scan command, always run the clean before
|
|
63
|
-
|
|
64
|
-
// Optional: Namespace-specific configurations for pruned translations
|
|
65
|
-
pruneNamespaces: [
|
|
66
|
-
{
|
|
67
|
-
sourceNamespace: 'common',
|
|
68
|
-
newNamespace: 'dashboard',
|
|
69
|
-
globPatterns: ['./apps/dashboard/**/*.tsx', './apps/dashboard/**/*.ts'],
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
sourceNamespace: 'common',
|
|
73
|
-
newNamespace: 'mobile',
|
|
74
|
-
globPatterns: ['./apps/mobile/**/*.tsx', './apps/mobile/**/*.ts'],
|
|
75
|
-
},
|
|
76
|
-
],
|
|
77
84
|
};
|
|
78
85
|
```
|
|
79
86
|
|
|
87
|
+
#### Glob Patterns Configuration
|
|
88
|
+
|
|
89
|
+
The `globPatterns` array supports two formats:
|
|
90
|
+
|
|
91
|
+
1. **String patterns**: Simple glob patterns that apply to all namespaces
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
'./components/**/*.tsx';
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
2. **Object patterns**: Patterns with namespace-specific configuration for pruned translations
|
|
98
|
+
```js
|
|
99
|
+
{
|
|
100
|
+
pattern: './apps/dashboard/**/*.tsx',
|
|
101
|
+
namespaces: ['dashboard']
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
When using object patterns, translation keys found in files matching that pattern will be associated with the specified namespaces. This enables automatic creation of namespace-specific translation bundles.
|
|
106
|
+
|
|
80
107
|
### 4. Start using i18n Magic
|
|
81
108
|
|
|
82
109
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQjD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,
|
|
1
|
+
{"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQjD,eAAO,MAAM,gBAAgB,GAAU,QAAQ,aAAa,kBAgG3D,CAAA"}
|
package/dist/commands/clean.js
CHANGED
|
@@ -16,7 +16,8 @@ const removeUnusedKeys = async (config) => {
|
|
|
16
16
|
keySeparator: false,
|
|
17
17
|
});
|
|
18
18
|
// Find all files to scan
|
|
19
|
-
const
|
|
19
|
+
const allPatterns = globPatterns.map((pattern) => typeof pattern === "string" ? pattern : pattern.pattern);
|
|
20
|
+
const files = await (0, fast_glob_1.default)([...allPatterns, "!**/node_modules/**"]);
|
|
20
21
|
// Extract all translation keys from the codebase
|
|
21
22
|
const extractedKeys = [];
|
|
22
23
|
for (const file of files) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,qDAAwC;AACxC,sDAAwB;AAExB,wCAKqB;AAEd,MAAM,gBAAgB,GAAG,KAAK,EAAE,MAAqB,EAAE,EAAE;IAC9D,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,GAAG,MAAM,CAAA;IAEV,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,wBAAM,CAAC;QACxB,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAI,EAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-pruned-namespace.d.ts","sourceRoot":"","sources":["../../src/commands/create-pruned-namespace.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQjD,eAAO,MAAM,qBAAqB,GAAU,QAAQ,aAAa,
|
|
1
|
+
{"version":3,"file":"create-pruned-namespace.d.ts","sourceRoot":"","sources":["../../src/commands/create-pruned-namespace.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQjD,eAAO,MAAM,qBAAqB,GAAU,QAAQ,aAAa,kBA2JhE,CAAA"}
|
|
@@ -51,11 +51,12 @@ const createPrunedNamespace = async (config) => {
|
|
|
51
51
|
});
|
|
52
52
|
const newNamespace = newNamespaceResponse.value;
|
|
53
53
|
// Step 3: Ask for glob patterns to find relevant keys
|
|
54
|
+
const allPatterns = config.globPatterns.map((pattern) => typeof pattern === "string" ? pattern : pattern.pattern);
|
|
54
55
|
const globPatternsResponse = await (0, prompts_1.default)({
|
|
55
56
|
type: "list",
|
|
56
57
|
name: "value",
|
|
57
58
|
message: "Enter glob patterns to find relevant keys (comma separated):",
|
|
58
|
-
initial:
|
|
59
|
+
initial: allPatterns.join(","),
|
|
59
60
|
separator: ",",
|
|
60
61
|
onState: (state) => {
|
|
61
62
|
if (state.aborted) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-pruned-namespace.js","sourceRoot":"","sources":["../../src/commands/create-pruned-namespace.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,qDAAwC;AACxC,sDAAwB;AACxB,sDAA6B;AAE7B,wCAKqB;AAEd,MAAM,qBAAqB,GAAG,KAAK,EAAE,MAAqB,EAAE,EAAE;IACnE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAA;IAE5E,mCAAmC;IACnC,MAAM,uBAAuB,GAAG,MAAM,IAAA,iBAAO,EAAC;QAC5C,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,wDAAwD;QACjE,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACtC,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,uBAAuB,CAAC,KAAK,CAAA;IAErD,qCAAqC;IACrC,MAAM,oBAAoB,GAAG,MAAM,IAAA,iBAAO,EAAC;QACzC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,uCAAuC;QAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,gCAAgC,CAAA;YACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,0BAA0B,CAAA;YACjE,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;oBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACjB,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAA;IAE/C,sDAAsD;IACtD,MAAM,oBAAoB,GAAG,MAAM,IAAA,iBAAO,EAAC;QACzC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,8DAA8D;QACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create-pruned-namespace.js","sourceRoot":"","sources":["../../src/commands/create-pruned-namespace.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,5 @@ export { translateMissing } from "./commands/scan";
|
|
|
7
7
|
export { syncLocales } from "./commands/sync-locales";
|
|
8
8
|
export { loadConfig } from "./lib/utils";
|
|
9
9
|
export type { PruneOptions, PruneResponse, PruneResult, } from "./commands/create-pruned-namespace-automated";
|
|
10
|
-
export type { CommandType, Configuration,
|
|
10
|
+
export type { CommandType, Configuration, GlobPatternConfig, } from "./lib/types";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,8CAA8C,CAAA;AACrD,YAAY,EACV,WAAW,EACX,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,8CAA8C,CAAA;AACrD,YAAY,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAA"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type OpenAI from "openai";
|
|
2
2
|
import type { ChatModel } from "openai/resources/chat/chat";
|
|
3
3
|
type Model = ChatModel | "gemini-2.5-pro-exp-03-25" | "gemini-2.0-flash" | "gemini-2.0-flash-lite";
|
|
4
|
-
export interface
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
globPatterns: string[];
|
|
4
|
+
export interface GlobPatternConfig {
|
|
5
|
+
pattern: string;
|
|
6
|
+
namespaces: string[];
|
|
8
7
|
}
|
|
9
8
|
export interface Configuration {
|
|
10
9
|
loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>);
|
|
@@ -13,7 +12,7 @@ export interface Configuration {
|
|
|
13
12
|
defaultNamespace: string;
|
|
14
13
|
namespaces: string[];
|
|
15
14
|
locales: string[];
|
|
16
|
-
globPatterns: string[];
|
|
15
|
+
globPatterns: (string | GlobPatternConfig)[];
|
|
17
16
|
context?: string;
|
|
18
17
|
disableTranslation?: boolean;
|
|
19
18
|
autoClear?: boolean;
|
|
@@ -21,7 +20,6 @@ export interface Configuration {
|
|
|
21
20
|
GEMINI_API_KEY?: string;
|
|
22
21
|
model?: Model;
|
|
23
22
|
openai?: OpenAI;
|
|
24
|
-
pruneNamespaces?: NamespacePruneConfig[];
|
|
25
23
|
}
|
|
26
24
|
export interface CommandType {
|
|
27
25
|
name: string;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3D,KAAK,KAAK,GACN,SAAS,GACT,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,CAAA;AAE3B,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE3D,KAAK,KAAK,GACN,SAAS,GACT,0BAA0B,GAC1B,kBAAkB,GAClB,uBAAuB,CAAA;AAE3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EACJ,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC5E,QAAQ,EACJ,MAAM,GACN,CAAC,CACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAA;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjE"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type OpenAI from "openai";
|
|
2
|
-
import type { Configuration } from "./types";
|
|
2
|
+
import type { GlobPatternConfig, Configuration } from "./types";
|
|
3
3
|
export declare const loadConfig: ({ configPath, }: {
|
|
4
4
|
configPath: string;
|
|
5
5
|
}) => any;
|
|
@@ -15,6 +15,24 @@ export declare const translateKey: ({ inputLanguage, context, object, openai, ou
|
|
|
15
15
|
export declare const loadLocalesFile: (loadPath: string | ((locale: string, namespace: string) => Promise<Record<string, string>>), locale: string, namespace: string) => Promise<Record<string, string>>;
|
|
16
16
|
export declare const writeLocalesFile: (savePath: string | ((locale: string, namespace: string, data: Record<string, string>) => Promise<void>), locale: string, namespace: string, data: Record<string, string>) => Promise<void>;
|
|
17
17
|
export declare const getPureKey: (key: string, namespace?: string, isDefault?: boolean) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Extracts all glob patterns from the configuration, handling both string and object formats
|
|
20
|
+
*/
|
|
21
|
+
export declare const extractGlobPatterns: (globPatterns: (string | GlobPatternConfig)[]) => string[];
|
|
22
|
+
/**
|
|
23
|
+
* Gets the namespaces associated with a specific file path based on glob pattern configuration
|
|
24
|
+
*/
|
|
25
|
+
export declare const getNamespacesForFile: (filePath: string, globPatterns: (string | {
|
|
26
|
+
pattern: string;
|
|
27
|
+
namespaces: string[];
|
|
28
|
+
})[]) => string[];
|
|
29
|
+
/**
|
|
30
|
+
* Gets all glob patterns that should be used for a specific namespace
|
|
31
|
+
*/
|
|
32
|
+
export declare const getGlobPatternsForNamespace: (namespace: string, globPatterns: (string | {
|
|
33
|
+
pattern: string;
|
|
34
|
+
namespaces: string[];
|
|
35
|
+
})[]) => string[];
|
|
18
36
|
export declare const getMissingKeys: ({ globPatterns, namespaces, defaultNamespace, defaultLocale, loadPath, }: Configuration) => Promise<any[]>;
|
|
19
37
|
export declare const getTextInput: (prompt: string) => Promise<string>;
|
|
20
38
|
export declare const checkAllKeysExist: ({ namespaces, defaultLocale, loadPath, locales, context, openai, savePath, disableTranslation, model, }: Configuration) => Promise<void>;
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAGhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAGhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE/D,eAAO,MAAM,UAAU,GAAI,iBAExB;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,QAgBxB,CAAA;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE1D;AAED,eAAO,MAAM,YAAY,GAAU,oEAOhC;IACD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,oCAyDA,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,UACI,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAC5E,QAAQ,MAAM,EACd,WAAW,MAAM,oCAsBlB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAC3B,UACI,MAAM,GACN,CAAC,CACC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC,EACvB,QAAQ,MAAM,EACd,WAAW,MAAM,EACjB,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,kBAa7B,CAAA;AAED,eAAO,MAAM,UAAU,GACrB,KAAK,MAAM,EACX,YAAY,MAAM,EAClB,YAAY,OAAO,WAiBpB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,cAAc,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,KAC3C,MAAM,EAIR,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,MAAM,EAChB,cAAc,CAAC,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAAE,KACnE,MAAM,EAeR,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW,MAAM,EACjB,cAAc,CAAC,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAAE,KACnE,MAAM,EAcR,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,0EAMlC,aAAa,mBA6Cf,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,QAAQ,MAAM,oBAehD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,yGAUrC,aAAa,kBAsDf,CAAA;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAGhC,MAAM,CAAC,EAAE,MAAM;IACf,SAAS,CAAC,EAAE,MAAM;IAClB,KAAK,CAAC,EAAE,KAAK;gBAHpB,OAAO,EAAE,MAAM,EACR,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,KAAK;CAKvB"}
|
package/dist/lib/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TranslationError = exports.checkAllKeysExist = exports.getTextInput = exports.getMissingKeys = exports.getPureKey = exports.writeLocalesFile = exports.loadLocalesFile = exports.translateKey = exports.loadConfig = void 0;
|
|
6
|
+
exports.TranslationError = exports.checkAllKeysExist = exports.getTextInput = exports.getMissingKeys = exports.getGlobPatternsForNamespace = exports.getNamespacesForFile = exports.extractGlobPatterns = exports.getPureKey = exports.writeLocalesFile = exports.loadLocalesFile = exports.translateKey = exports.loadConfig = void 0;
|
|
7
7
|
exports.removeDuplicatesFromArray = removeDuplicatesFromArray;
|
|
8
8
|
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
9
9
|
const i18next_scanner_1 = require("i18next-scanner");
|
|
@@ -119,12 +119,56 @@ const getPureKey = (key, namespace, isDefault) => {
|
|
|
119
119
|
return null;
|
|
120
120
|
};
|
|
121
121
|
exports.getPureKey = getPureKey;
|
|
122
|
+
/**
|
|
123
|
+
* Extracts all glob patterns from the configuration, handling both string and object formats
|
|
124
|
+
*/
|
|
125
|
+
const extractGlobPatterns = (globPatterns) => {
|
|
126
|
+
return globPatterns.map((pattern) => typeof pattern === "string" ? pattern : pattern.pattern);
|
|
127
|
+
};
|
|
128
|
+
exports.extractGlobPatterns = extractGlobPatterns;
|
|
129
|
+
/**
|
|
130
|
+
* Gets the namespaces associated with a specific file path based on glob pattern configuration
|
|
131
|
+
*/
|
|
132
|
+
const getNamespacesForFile = (filePath, globPatterns) => {
|
|
133
|
+
const matchingNamespaces = [];
|
|
134
|
+
for (const pattern of globPatterns) {
|
|
135
|
+
if (typeof pattern === "object") {
|
|
136
|
+
// Use minimatch or similar logic to check if file matches pattern
|
|
137
|
+
const globPattern = pattern.pattern;
|
|
138
|
+
// For now, using a simple includes check - in production you'd want proper glob matching
|
|
139
|
+
if (filePath.includes(globPattern.replace("**/*", "").replace("*", ""))) {
|
|
140
|
+
matchingNamespaces.push(...pattern.namespaces);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return [...new Set(matchingNamespaces)]; // Remove duplicates
|
|
145
|
+
};
|
|
146
|
+
exports.getNamespacesForFile = getNamespacesForFile;
|
|
147
|
+
/**
|
|
148
|
+
* Gets all glob patterns that should be used for a specific namespace
|
|
149
|
+
*/
|
|
150
|
+
const getGlobPatternsForNamespace = (namespace, globPatterns) => {
|
|
151
|
+
const patterns = [];
|
|
152
|
+
for (const pattern of globPatterns) {
|
|
153
|
+
if (typeof pattern === "string") {
|
|
154
|
+
// String patterns apply to all namespaces
|
|
155
|
+
patterns.push(pattern);
|
|
156
|
+
}
|
|
157
|
+
else if (pattern.namespaces.includes(namespace)) {
|
|
158
|
+
// Object patterns only apply to specified namespaces
|
|
159
|
+
patterns.push(pattern.pattern);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return patterns;
|
|
163
|
+
};
|
|
164
|
+
exports.getGlobPatternsForNamespace = getGlobPatternsForNamespace;
|
|
122
165
|
const getMissingKeys = async ({ globPatterns, namespaces, defaultNamespace, defaultLocale, loadPath, }) => {
|
|
123
166
|
const parser = new i18next_scanner_1.Parser({
|
|
124
167
|
nsSeparator: false,
|
|
125
168
|
keySeparator: false,
|
|
126
169
|
});
|
|
127
|
-
const
|
|
170
|
+
const allPatterns = (0, exports.extractGlobPatterns)(globPatterns);
|
|
171
|
+
const files = await (0, fast_glob_1.default)([...allPatterns, "!**/node_modules/**"]);
|
|
128
172
|
const keys = [];
|
|
129
173
|
for (const file of files) {
|
|
130
174
|
const content = node_fs_1.default.readFileSync(file, "utf-8");
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scoutello/i18n-magic",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Intelligent CLI toolkit that automates internationalization workflows with AI-powered translations for JavaScript/TypeScript projects",
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
"openai": "^4.94.0"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
65
66
|
"chalk": "^5.4.1",
|
|
66
67
|
"commander": "^13.1.0",
|
|
67
68
|
"dotenv": "^16.5.0",
|
|
@@ -73,10 +74,10 @@
|
|
|
73
74
|
"devDependencies": {
|
|
74
75
|
"@biomejs/biome": "1.9.4",
|
|
75
76
|
"@tsconfig/recommended": "^1.0.8",
|
|
77
|
+
"@types/jest": "^29.5.12",
|
|
76
78
|
"@types/node": "^20.12.12",
|
|
77
79
|
"@types/prompts": "^2.4.9",
|
|
78
80
|
"jest": "^29.7.0",
|
|
79
|
-
"@types/jest": "^29.5.12",
|
|
80
81
|
"openai": "^4.94.0",
|
|
81
82
|
"tslib": "^2.8.1",
|
|
82
83
|
"typescript": "^5.8.3"
|
package/src/commands/clean.ts
CHANGED
|
@@ -26,7 +26,10 @@ export const removeUnusedKeys = async (config: Configuration) => {
|
|
|
26
26
|
})
|
|
27
27
|
|
|
28
28
|
// Find all files to scan
|
|
29
|
-
const
|
|
29
|
+
const allPatterns = globPatterns.map((pattern) =>
|
|
30
|
+
typeof pattern === "string" ? pattern : pattern.pattern,
|
|
31
|
+
)
|
|
32
|
+
const files = await glob([...allPatterns, "!**/node_modules/**"])
|
|
30
33
|
|
|
31
34
|
// Extract all translation keys from the codebase
|
|
32
35
|
const extractedKeys = []
|
|
@@ -55,11 +55,14 @@ export const createPrunedNamespace = async (config: Configuration) => {
|
|
|
55
55
|
const newNamespace = newNamespaceResponse.value
|
|
56
56
|
|
|
57
57
|
// Step 3: Ask for glob patterns to find relevant keys
|
|
58
|
+
const allPatterns = config.globPatterns.map((pattern) =>
|
|
59
|
+
typeof pattern === "string" ? pattern : pattern.pattern,
|
|
60
|
+
)
|
|
58
61
|
const globPatternsResponse = await prompts({
|
|
59
62
|
type: "list",
|
|
60
63
|
name: "value",
|
|
61
64
|
message: "Enter glob patterns to find relevant keys (comma separated):",
|
|
62
|
-
initial:
|
|
65
|
+
initial: allPatterns.join(","),
|
|
63
66
|
separator: ",",
|
|
64
67
|
onState: (state) => {
|
|
65
68
|
if (state.aborted) {
|
package/src/index.ts
CHANGED
package/src/lib/types.ts
CHANGED
|
@@ -7,10 +7,9 @@ type Model =
|
|
|
7
7
|
| "gemini-2.0-flash"
|
|
8
8
|
| "gemini-2.0-flash-lite"
|
|
9
9
|
|
|
10
|
-
export interface
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
globPatterns: string[]
|
|
10
|
+
export interface GlobPatternConfig {
|
|
11
|
+
pattern: string
|
|
12
|
+
namespaces: string[]
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
export interface Configuration {
|
|
@@ -28,7 +27,7 @@ export interface Configuration {
|
|
|
28
27
|
defaultNamespace: string
|
|
29
28
|
namespaces: string[]
|
|
30
29
|
locales: string[]
|
|
31
|
-
globPatterns: string[]
|
|
30
|
+
globPatterns: (string | GlobPatternConfig)[]
|
|
32
31
|
context?: string
|
|
33
32
|
disableTranslation?: boolean
|
|
34
33
|
autoClear?: boolean
|
|
@@ -36,7 +35,6 @@ export interface Configuration {
|
|
|
36
35
|
GEMINI_API_KEY?: string
|
|
37
36
|
model?: Model
|
|
38
37
|
openai?: OpenAI
|
|
39
|
-
pruneNamespaces?: NamespacePruneConfig[]
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
export interface CommandType {
|
package/src/lib/utils.ts
CHANGED
|
@@ -5,7 +5,7 @@ import path from "node:path"
|
|
|
5
5
|
import type OpenAI from "openai"
|
|
6
6
|
import prompts from "prompts"
|
|
7
7
|
import { languages } from "./languges"
|
|
8
|
-
import type { Configuration } from "./types"
|
|
8
|
+
import type { GlobPatternConfig, Configuration } from "./types"
|
|
9
9
|
|
|
10
10
|
export const loadConfig = ({
|
|
11
11
|
configPath = "i18n-magic.js",
|
|
@@ -180,6 +180,62 @@ export const getPureKey = (
|
|
|
180
180
|
return null
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
+
/**
|
|
184
|
+
* Extracts all glob patterns from the configuration, handling both string and object formats
|
|
185
|
+
*/
|
|
186
|
+
export const extractGlobPatterns = (
|
|
187
|
+
globPatterns: (string | GlobPatternConfig)[],
|
|
188
|
+
): string[] => {
|
|
189
|
+
return globPatterns.map((pattern) =>
|
|
190
|
+
typeof pattern === "string" ? pattern : pattern.pattern,
|
|
191
|
+
)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Gets the namespaces associated with a specific file path based on glob pattern configuration
|
|
196
|
+
*/
|
|
197
|
+
export const getNamespacesForFile = (
|
|
198
|
+
filePath: string,
|
|
199
|
+
globPatterns: (string | { pattern: string; namespaces: string[] })[],
|
|
200
|
+
): string[] => {
|
|
201
|
+
const matchingNamespaces: string[] = []
|
|
202
|
+
|
|
203
|
+
for (const pattern of globPatterns) {
|
|
204
|
+
if (typeof pattern === "object") {
|
|
205
|
+
// Use minimatch or similar logic to check if file matches pattern
|
|
206
|
+
const globPattern = pattern.pattern
|
|
207
|
+
// For now, using a simple includes check - in production you'd want proper glob matching
|
|
208
|
+
if (filePath.includes(globPattern.replace("**/*", "").replace("*", ""))) {
|
|
209
|
+
matchingNamespaces.push(...pattern.namespaces)
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return [...new Set(matchingNamespaces)] // Remove duplicates
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Gets all glob patterns that should be used for a specific namespace
|
|
219
|
+
*/
|
|
220
|
+
export const getGlobPatternsForNamespace = (
|
|
221
|
+
namespace: string,
|
|
222
|
+
globPatterns: (string | { pattern: string; namespaces: string[] })[],
|
|
223
|
+
): string[] => {
|
|
224
|
+
const patterns: string[] = []
|
|
225
|
+
|
|
226
|
+
for (const pattern of globPatterns) {
|
|
227
|
+
if (typeof pattern === "string") {
|
|
228
|
+
// String patterns apply to all namespaces
|
|
229
|
+
patterns.push(pattern)
|
|
230
|
+
} else if (pattern.namespaces.includes(namespace)) {
|
|
231
|
+
// Object patterns only apply to specified namespaces
|
|
232
|
+
patterns.push(pattern.pattern)
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
return patterns
|
|
237
|
+
}
|
|
238
|
+
|
|
183
239
|
export const getMissingKeys = async ({
|
|
184
240
|
globPatterns,
|
|
185
241
|
namespaces,
|
|
@@ -192,7 +248,8 @@ export const getMissingKeys = async ({
|
|
|
192
248
|
keySeparator: false,
|
|
193
249
|
})
|
|
194
250
|
|
|
195
|
-
const
|
|
251
|
+
const allPatterns = extractGlobPatterns(globPatterns)
|
|
252
|
+
const files = await glob([...allPatterns, "!**/node_modules/**"])
|
|
196
253
|
|
|
197
254
|
const keys = []
|
|
198
255
|
|