i18next-cli 1.42.11 → 1.43.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 +7 -0
- package/dist/cjs/cli.js +3 -2
- package/dist/cjs/extractor/parsers/ast-utils.js +8 -1
- package/dist/cjs/extractor/parsers/scope-manager.js +1 -5
- package/dist/cjs/status.js +5 -3
- package/dist/esm/cli.js +3 -2
- package/dist/esm/extractor/parsers/ast-utils.js +8 -1
- package/dist/esm/extractor/parsers/scope-manager.js +1 -5
- package/dist/esm/status.js +5 -3
- package/package.json +1 -1
- package/types/cli.d.ts.map +1 -1
- package/types/extractor/parsers/ast-utils.d.ts +4 -1
- package/types/extractor/parsers/ast-utils.d.ts.map +1 -1
- package/types/extractor/parsers/scope-manager.d.ts.map +1 -1
- package/types/status.d.ts +2 -0
- package/types/status.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -170,6 +170,7 @@ Displays a health check of your project's translation status. Can run without a
|
|
|
170
170
|
|
|
171
171
|
**Options:**
|
|
172
172
|
- `--namespace <ns>, -n <ns>`: Filter the report by a specific namespace.
|
|
173
|
+
- `--hide-translated`: Hide already translated keys in the detailed view, showing only missing translations.
|
|
173
174
|
|
|
174
175
|
**Usage Examples:**
|
|
175
176
|
|
|
@@ -185,6 +186,12 @@ npx i18next-cli status --namespace common
|
|
|
185
186
|
|
|
186
187
|
# Get a detailed report for the 'de' locale, showing only the 'common' namespace
|
|
187
188
|
npx i18next-cli status de --namespace common
|
|
189
|
+
|
|
190
|
+
# Show only the untranslated keys for the 'de' locale
|
|
191
|
+
npx i18next-cli status de --hide-translated
|
|
192
|
+
|
|
193
|
+
# Combine options to see only missing translations in a specific namespace
|
|
194
|
+
npx i18next-cli status de --namespace common --hide-translated
|
|
188
195
|
```
|
|
189
196
|
|
|
190
197
|
The detailed view provides a rich, at-a-glance summary for each namespace, followed by a list of every key and its translation status.
|
package/dist/cjs/cli.js
CHANGED
|
@@ -28,7 +28,7 @@ const program = new commander.Command();
|
|
|
28
28
|
program
|
|
29
29
|
.name('i18next-cli')
|
|
30
30
|
.description('A unified, high-performance i18next CLI.')
|
|
31
|
-
.version('1.
|
|
31
|
+
.version('1.43.0'); // This string is replaced with the actual version at build time by rollup
|
|
32
32
|
// new: global config override option
|
|
33
33
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
34
34
|
program
|
|
@@ -96,6 +96,7 @@ program
|
|
|
96
96
|
.command('status [locale]')
|
|
97
97
|
.description('Display translation status. Provide a locale for a detailed key-by-key view.')
|
|
98
98
|
.option('-n, --namespace <ns>', 'Filter the status report by a specific namespace')
|
|
99
|
+
.option('--hide-translated', 'Hide already translated keys in the detailed view')
|
|
99
100
|
.action(async (locale, options) => {
|
|
100
101
|
const cfgPath = program.opts().config;
|
|
101
102
|
let config$1 = await config.loadConfig(cfgPath);
|
|
@@ -110,7 +111,7 @@ program
|
|
|
110
111
|
console.log(node_util.styleText('green', 'Project structure detected successfully!'));
|
|
111
112
|
config$1 = detected;
|
|
112
113
|
}
|
|
113
|
-
await status.runStatus(config$1, { detail: locale, namespace: options.namespace });
|
|
114
|
+
await status.runStatus(config$1, { detail: locale, namespace: options.namespace, hideTranslated: !!options.hideTranslated });
|
|
114
115
|
});
|
|
115
116
|
program
|
|
116
117
|
.command('types')
|
|
@@ -161,16 +161,23 @@ function isSimpleTemplateLiteral(literal) {
|
|
|
161
161
|
*
|
|
162
162
|
* @param object - Object expression to search
|
|
163
163
|
* @param propName - Property name to find
|
|
164
|
+
* @param identifierResolver - callback to resolve Identifier type values when needed
|
|
164
165
|
* @returns String value if found, empty string if property exists but isn't a string, undefined if not found
|
|
165
166
|
*
|
|
166
167
|
* @private
|
|
167
168
|
*/
|
|
168
|
-
function getObjectPropValue(object, propName) {
|
|
169
|
+
function getObjectPropValue(object, propName, identifierResolver) {
|
|
169
170
|
const prop = getObjectProperty(object, propName);
|
|
170
171
|
if (prop?.type === 'KeyValueProperty') {
|
|
171
172
|
const val = prop.value;
|
|
172
173
|
if (val.type === 'StringLiteral')
|
|
173
174
|
return val.value;
|
|
175
|
+
if (val.type === 'Identifier') {
|
|
176
|
+
if (identifierResolver) {
|
|
177
|
+
return identifierResolver(val.value);
|
|
178
|
+
}
|
|
179
|
+
return '';
|
|
180
|
+
}
|
|
174
181
|
if (val.type === 'TemplateLiteral' && isSimpleTemplateLiteral(val))
|
|
175
182
|
return val.quasis[0].cooked;
|
|
176
183
|
if (val.type === 'BooleanLiteral')
|
|
@@ -322,14 +322,10 @@ class ScopeManager {
|
|
|
322
322
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
323
323
|
}
|
|
324
324
|
if (kpArg?.type === 'ObjectExpression') {
|
|
325
|
-
const kp = astUtils.getObjectPropValue(kpArg, 'keyPrefix');
|
|
325
|
+
const kp = astUtils.getObjectPropValue(kpArg, 'keyPrefix', this.resolveSimpleStringIdentifier.bind(this));
|
|
326
326
|
if (typeof kp === 'string') {
|
|
327
327
|
keyPrefix = kp;
|
|
328
328
|
}
|
|
329
|
-
else if (kp && typeof kp === 'object' && kp.type === 'Identifier') {
|
|
330
|
-
// ← FIX B: resolve { keyPrefix: I18N_PREFIX } where the value is an Identifier
|
|
331
|
-
keyPrefix = this.resolveSimpleStringIdentifier(kp.value);
|
|
332
|
-
}
|
|
333
329
|
}
|
|
334
330
|
else if (kpArg?.type === 'StringLiteral') {
|
|
335
331
|
keyPrefix = kpArg.value;
|
package/dist/cjs/status.js
CHANGED
|
@@ -218,7 +218,7 @@ async function generateStatusReport(config) {
|
|
|
218
218
|
*/
|
|
219
219
|
async function displayStatusReport(report, config, options) {
|
|
220
220
|
if (options.detail) {
|
|
221
|
-
await displayDetailedLocaleReport(report, config, options.detail, options.namespace);
|
|
221
|
+
await displayDetailedLocaleReport(report, config, options.detail, options.namespace, options.hideTranslated);
|
|
222
222
|
}
|
|
223
223
|
else if (options.namespace) {
|
|
224
224
|
await displayNamespaceSummaryReport(report, config, options.namespace);
|
|
@@ -240,8 +240,9 @@ async function displayStatusReport(report, config, options) {
|
|
|
240
240
|
* @param config - The i18next toolkit configuration object
|
|
241
241
|
* @param locale - The locale code to display details for
|
|
242
242
|
* @param namespaceFilter - Optional namespace to filter the display
|
|
243
|
+
* @param hideTranslated - When true, only untranslated keys are shown
|
|
243
244
|
*/
|
|
244
|
-
async function displayDetailedLocaleReport(report, config, locale, namespaceFilter) {
|
|
245
|
+
async function displayDetailedLocaleReport(report, config, locale, namespaceFilter, hideTranslated) {
|
|
245
246
|
if (locale === config.extract.primaryLanguage) {
|
|
246
247
|
console.log(node_util.styleText('yellow', `Locale "${locale}" is the primary language. All keys are considered present.`));
|
|
247
248
|
return;
|
|
@@ -265,7 +266,8 @@ async function displayDetailedLocaleReport(report, config, locale, namespaceFilt
|
|
|
265
266
|
continue;
|
|
266
267
|
console.log(node_util.styleText(['cyan', 'bold'], `\nNamespace: ${ns}`));
|
|
267
268
|
printProgressBar('Namespace Progress', nsData.translatedKeys, nsData.totalKeys);
|
|
268
|
-
nsData.keyDetails.
|
|
269
|
+
const keysToDisplay = hideTranslated ? nsData.keyDetails.filter(({ isTranslated }) => !isTranslated) : nsData.keyDetails;
|
|
270
|
+
keysToDisplay.forEach(({ key, isTranslated }) => {
|
|
269
271
|
const icon = isTranslated ? node_util.styleText('green', '✓') : node_util.styleText('red', '✗');
|
|
270
272
|
console.log(` ${icon} ${key}`);
|
|
271
273
|
});
|
package/dist/esm/cli.js
CHANGED
|
@@ -26,7 +26,7 @@ const program = new Command();
|
|
|
26
26
|
program
|
|
27
27
|
.name('i18next-cli')
|
|
28
28
|
.description('A unified, high-performance i18next CLI.')
|
|
29
|
-
.version('1.
|
|
29
|
+
.version('1.43.0'); // This string is replaced with the actual version at build time by rollup
|
|
30
30
|
// new: global config override option
|
|
31
31
|
program.option('-c, --config <path>', 'Path to i18next-cli config file (overrides detection)');
|
|
32
32
|
program
|
|
@@ -94,6 +94,7 @@ program
|
|
|
94
94
|
.command('status [locale]')
|
|
95
95
|
.description('Display translation status. Provide a locale for a detailed key-by-key view.')
|
|
96
96
|
.option('-n, --namespace <ns>', 'Filter the status report by a specific namespace')
|
|
97
|
+
.option('--hide-translated', 'Hide already translated keys in the detailed view')
|
|
97
98
|
.action(async (locale, options) => {
|
|
98
99
|
const cfgPath = program.opts().config;
|
|
99
100
|
let config = await loadConfig(cfgPath);
|
|
@@ -108,7 +109,7 @@ program
|
|
|
108
109
|
console.log(styleText('green', 'Project structure detected successfully!'));
|
|
109
110
|
config = detected;
|
|
110
111
|
}
|
|
111
|
-
await runStatus(config, { detail: locale, namespace: options.namespace });
|
|
112
|
+
await runStatus(config, { detail: locale, namespace: options.namespace, hideTranslated: !!options.hideTranslated });
|
|
112
113
|
});
|
|
113
114
|
program
|
|
114
115
|
.command('types')
|
|
@@ -159,16 +159,23 @@ function isSimpleTemplateLiteral(literal) {
|
|
|
159
159
|
*
|
|
160
160
|
* @param object - Object expression to search
|
|
161
161
|
* @param propName - Property name to find
|
|
162
|
+
* @param identifierResolver - callback to resolve Identifier type values when needed
|
|
162
163
|
* @returns String value if found, empty string if property exists but isn't a string, undefined if not found
|
|
163
164
|
*
|
|
164
165
|
* @private
|
|
165
166
|
*/
|
|
166
|
-
function getObjectPropValue(object, propName) {
|
|
167
|
+
function getObjectPropValue(object, propName, identifierResolver) {
|
|
167
168
|
const prop = getObjectProperty(object, propName);
|
|
168
169
|
if (prop?.type === 'KeyValueProperty') {
|
|
169
170
|
const val = prop.value;
|
|
170
171
|
if (val.type === 'StringLiteral')
|
|
171
172
|
return val.value;
|
|
173
|
+
if (val.type === 'Identifier') {
|
|
174
|
+
if (identifierResolver) {
|
|
175
|
+
return identifierResolver(val.value);
|
|
176
|
+
}
|
|
177
|
+
return '';
|
|
178
|
+
}
|
|
172
179
|
if (val.type === 'TemplateLiteral' && isSimpleTemplateLiteral(val))
|
|
173
180
|
return val.quasis[0].cooked;
|
|
174
181
|
if (val.type === 'BooleanLiteral')
|
|
@@ -320,14 +320,10 @@ class ScopeManager {
|
|
|
320
320
|
kpArg = kpArgIndex === -1 ? undefined : callExpr.arguments?.[kpArgIndex]?.expression;
|
|
321
321
|
}
|
|
322
322
|
if (kpArg?.type === 'ObjectExpression') {
|
|
323
|
-
const kp = getObjectPropValue(kpArg, 'keyPrefix');
|
|
323
|
+
const kp = getObjectPropValue(kpArg, 'keyPrefix', this.resolveSimpleStringIdentifier.bind(this));
|
|
324
324
|
if (typeof kp === 'string') {
|
|
325
325
|
keyPrefix = kp;
|
|
326
326
|
}
|
|
327
|
-
else if (kp && typeof kp === 'object' && kp.type === 'Identifier') {
|
|
328
|
-
// ← FIX B: resolve { keyPrefix: I18N_PREFIX } where the value is an Identifier
|
|
329
|
-
keyPrefix = this.resolveSimpleStringIdentifier(kp.value);
|
|
330
|
-
}
|
|
331
327
|
}
|
|
332
328
|
else if (kpArg?.type === 'StringLiteral') {
|
|
333
329
|
keyPrefix = kpArg.value;
|
package/dist/esm/status.js
CHANGED
|
@@ -216,7 +216,7 @@ async function generateStatusReport(config) {
|
|
|
216
216
|
*/
|
|
217
217
|
async function displayStatusReport(report, config, options) {
|
|
218
218
|
if (options.detail) {
|
|
219
|
-
await displayDetailedLocaleReport(report, config, options.detail, options.namespace);
|
|
219
|
+
await displayDetailedLocaleReport(report, config, options.detail, options.namespace, options.hideTranslated);
|
|
220
220
|
}
|
|
221
221
|
else if (options.namespace) {
|
|
222
222
|
await displayNamespaceSummaryReport(report, config, options.namespace);
|
|
@@ -238,8 +238,9 @@ async function displayStatusReport(report, config, options) {
|
|
|
238
238
|
* @param config - The i18next toolkit configuration object
|
|
239
239
|
* @param locale - The locale code to display details for
|
|
240
240
|
* @param namespaceFilter - Optional namespace to filter the display
|
|
241
|
+
* @param hideTranslated - When true, only untranslated keys are shown
|
|
241
242
|
*/
|
|
242
|
-
async function displayDetailedLocaleReport(report, config, locale, namespaceFilter) {
|
|
243
|
+
async function displayDetailedLocaleReport(report, config, locale, namespaceFilter, hideTranslated) {
|
|
243
244
|
if (locale === config.extract.primaryLanguage) {
|
|
244
245
|
console.log(styleText('yellow', `Locale "${locale}" is the primary language. All keys are considered present.`));
|
|
245
246
|
return;
|
|
@@ -263,7 +264,8 @@ async function displayDetailedLocaleReport(report, config, locale, namespaceFilt
|
|
|
263
264
|
continue;
|
|
264
265
|
console.log(styleText(['cyan', 'bold'], `\nNamespace: ${ns}`));
|
|
265
266
|
printProgressBar('Namespace Progress', nsData.translatedKeys, nsData.totalKeys);
|
|
266
|
-
nsData.keyDetails.
|
|
267
|
+
const keysToDisplay = hideTranslated ? nsData.keyDetails.filter(({ isTranslated }) => !isTranslated) : nsData.keyDetails;
|
|
268
|
+
keysToDisplay.forEach(({ key, isTranslated }) => {
|
|
267
269
|
const icon = isTranslated ? styleText('green', '✓') : styleText('red', '✗');
|
|
268
270
|
console.log(` ${icon} ${key}`);
|
|
269
271
|
});
|
package/package.json
CHANGED
package/types/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,QAAA,MAAM,OAAO,SAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,QAAA,MAAM,OAAO,SAAgB,CAAA;AAqR7B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -76,6 +76,7 @@ export declare function getObjectPropValueExpression(object: ObjectExpression, p
|
|
|
76
76
|
* @private
|
|
77
77
|
*/
|
|
78
78
|
export declare function isSimpleTemplateLiteral(literal: TemplateLiteral): boolean;
|
|
79
|
+
type IdentifierResolver = (name: string) => string | boolean | number | undefined;
|
|
79
80
|
/**
|
|
80
81
|
* Extracts string value from object property.
|
|
81
82
|
*
|
|
@@ -84,9 +85,11 @@ export declare function isSimpleTemplateLiteral(literal: TemplateLiteral): boole
|
|
|
84
85
|
*
|
|
85
86
|
* @param object - Object expression to search
|
|
86
87
|
* @param propName - Property name to find
|
|
88
|
+
* @param identifierResolver - callback to resolve Identifier type values when needed
|
|
87
89
|
* @returns String value if found, empty string if property exists but isn't a string, undefined if not found
|
|
88
90
|
*
|
|
89
91
|
* @private
|
|
90
92
|
*/
|
|
91
|
-
export declare function getObjectPropValue(object: ObjectExpression, propName: string): string | boolean | number | undefined;
|
|
93
|
+
export declare function getObjectPropValue(object: ObjectExpression, propName: string, identifierResolver?: IdentifierResolver): string | boolean | number | undefined;
|
|
94
|
+
export {};
|
|
92
95
|
//# sourceMappingURL=ast-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE1F;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA0BhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQhH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qDAU5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKhH;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAE1E;AAED
|
|
1
|
+
{"version":3,"file":"ast-utils.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/ast-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAc,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE1F;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA2BzD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CA0BhE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAQhH;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qDAU5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,4BAA4B,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKhH;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAE1E;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AAEjF;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAkB9J"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAmC,MAAM,WAAW,CAAA;AACpF,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAG5F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAGlF,OAAO,CAAC,eAAe,CAAiC;gBAE3C,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAMrB;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAuDzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IAsGvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,8BAA8B;
|
|
1
|
+
{"version":3,"file":"scope-manager.d.ts","sourceRoot":"","sources":["../../../src/extractor/parsers/scope-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAmC,MAAM,WAAW,CAAA;AACpF,OAAO,KAAK,EAAE,SAAS,EAA4B,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAG5F,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,KAAK,CAAqE;IAGlF,OAAO,CAAC,eAAe,CAAiC;gBAE3C,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAI1D;;;;;;OAMG;IACI,KAAK,IAAK,IAAI;IAMrB;;;OAGG;IACH,UAAU,IAAK,IAAI;IAInB;;;OAGG;IACH,SAAS,IAAK,IAAI;IAIlB;;;;;;OAMG;IACH,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAUnD;;;;;;OAMG;IACH,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAkBrD,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACI,6BAA6B,CAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvE;;;;;;;;;;OAUG;IACH,wBAAwB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAuDzD;;;;;;;;OAQG;IACH,OAAO,CAAC,+BAA+B;IAsGvC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,8BAA8B;IA+EtC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;;;;;;;;OASG;IACH,OAAO,CAAC,qCAAqC;CAuB9C"}
|
package/types/status.d.ts
CHANGED
|
@@ -7,6 +7,8 @@ interface StatusOptions {
|
|
|
7
7
|
detail?: string;
|
|
8
8
|
/** Namespace to filter the report by */
|
|
9
9
|
namespace?: string;
|
|
10
|
+
/** When true, only untranslated keys are shown in the detailed view */
|
|
11
|
+
hideTranslated?: boolean;
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Runs a health check on the project's i18next translations and displays a status report.
|
package/types/status.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAIjE;;GAEG;AACH,UAAU,aAAa;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAIjE;;GAEG;AACH,UAAU,aAAa;IACrB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AA4BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,aAAkB,iBAuBzF"}
|