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 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.42.11'); // This string is replaced with the actual version at build time by rollup
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;
@@ -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.forEach(({ key, isTranslated }) => {
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.42.11'); // This string is replaced with the actual version at build time by rollup
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;
@@ -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.forEach(({ key, isTranslated }) => {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18next-cli",
3
- "version": "1.42.11",
3
+ "version": "1.43.0",
4
4
  "description": "A unified, high-performance i18next CLI.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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;AAoR7B,OAAO,EAAE,OAAO,EAAE,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;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAYrH"}
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;IA8EtC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAoBjC;;;;;;;;;OASG;IACH,OAAO,CAAC,qCAAqC;CAuB9C"}
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.
@@ -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;CACpB;AA4BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAAE,MAAM,EAAE,oBAAoB,EAAE,OAAO,GAAE,aAAkB,iBAuBzF"}
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"}