@nbtca/prompt 1.0.21 → 1.0.22

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.
Files changed (39) hide show
  1. package/dist/config/preferences.d.ts +14 -0
  2. package/dist/config/preferences.d.ts.map +1 -0
  3. package/dist/config/preferences.js +90 -0
  4. package/dist/config/preferences.js.map +1 -0
  5. package/dist/core/icons.d.ts +3 -0
  6. package/dist/core/icons.d.ts.map +1 -0
  7. package/dist/core/icons.js +20 -0
  8. package/dist/core/icons.js.map +1 -0
  9. package/dist/core/menu.d.ts +1 -1
  10. package/dist/core/menu.d.ts.map +1 -1
  11. package/dist/core/menu.js +22 -6
  12. package/dist/core/menu.js.map +1 -1
  13. package/dist/core/ui.d.ts.map +1 -1
  14. package/dist/core/ui.js +3 -1
  15. package/dist/core/ui.js.map +1 -1
  16. package/dist/features/calendar.d.ts.map +1 -1
  17. package/dist/features/calendar.js +17 -5
  18. package/dist/features/calendar.js.map +1 -1
  19. package/dist/features/docs.d.ts +1 -0
  20. package/dist/features/docs.d.ts.map +1 -1
  21. package/dist/features/docs.js +151 -53
  22. package/dist/features/docs.js.map +1 -1
  23. package/dist/features/status.d.ts +31 -0
  24. package/dist/features/status.d.ts.map +1 -0
  25. package/dist/features/status.js +140 -0
  26. package/dist/features/status.js.map +1 -0
  27. package/dist/features/theme.d.ts +8 -0
  28. package/dist/features/theme.d.ts.map +1 -0
  29. package/dist/features/theme.js +138 -0
  30. package/dist/features/theme.js.map +1 -0
  31. package/dist/i18n/index.d.ts +63 -2
  32. package/dist/i18n/index.d.ts.map +1 -1
  33. package/dist/i18n/index.js +3 -2
  34. package/dist/i18n/index.js.map +1 -1
  35. package/dist/i18n/locales/en.json +71 -10
  36. package/dist/i18n/locales/zh.json +70 -9
  37. package/dist/index.js +244 -11
  38. package/dist/index.js.map +1 -1
  39. package/package.json +2 -2
@@ -9,6 +9,7 @@ import chalk from 'chalk';
9
9
  import open from 'open';
10
10
  import { select, isCancel, confirm } from '@clack/prompts';
11
11
  import { error, warning, success, createSpinner } from '../core/ui.js';
12
+ import { pickIcon } from '../core/icons.js';
12
13
  import { spawn, execFileSync } from 'child_process';
13
14
  import { URLS } from '../config/data.js';
14
15
  import { t } from '../i18n/index.js';
@@ -87,16 +88,58 @@ marked.setOptions({ renderer: new TerminalRenderer(getRendererOptions(TERMINAL_T
87
88
  const GITHUB_REPO = { owner: 'nbtca', repo: 'documents', branch: 'main' };
88
89
  const GITHUB_TOKEN = process.env['GITHUB_TOKEN'] || process.env['GH_TOKEN'];
89
90
  const SKIP_NAMES = new Set(['node_modules', 'package.json', 'pnpm-lock.yaml']);
90
- const DOC_CATEGORIES = [
91
- { name: '📖 教程', path: 'tutorial' },
92
- { name: '🔧 维修日记', path: '维修日' },
93
- { name: '🎉 活动文档', path: '相关活动举办' },
94
- { name: '📋 流程文档', path: 'process' },
95
- { name: '🛠 维修相关', path: 'repair' },
96
- { name: '📦 归档文档', path: 'archived' },
97
- { name: '📄 项目说明 (README)', path: 'README.md' },
98
- ];
99
- async function fetchGitHubDirectory(path = '') {
91
+ const DIR_CACHE_TTL_MS = 5 * 60 * 1000;
92
+ const FILE_CACHE_TTL_MS = 10 * 60 * 1000;
93
+ const RENDER_CACHE_TTL_MS = 10 * 60 * 1000;
94
+ const dirCache = new Map();
95
+ const fileCache = new Map();
96
+ const renderCache = new Map();
97
+ function getDocCategories() {
98
+ const trans = t();
99
+ const withIcon = (unicodeIcon, asciiIcon, label) => `${pickIcon(unicodeIcon, asciiIcon)} ${label}`;
100
+ return [
101
+ { name: withIcon('📖', '[DOC]', trans.docs.categoryTutorial), path: 'tutorial' },
102
+ { name: withIcon('🔧', '[LOG]', trans.docs.categoryRepairLogs), path: '维修日' },
103
+ { name: withIcon('🎉', '[EVT]', trans.docs.categoryEvents), path: '相关活动举办' },
104
+ { name: withIcon('📋', '[PROC]', trans.docs.categoryProcess), path: 'process' },
105
+ { name: withIcon('🛠', '[FIX]', trans.docs.categoryRepair), path: 'repair' },
106
+ { name: withIcon('📦', '[ARC]', trans.docs.categoryArchived), path: 'archived' },
107
+ { name: withIcon('📄', '[README]', trans.docs.categoryReadme), path: 'README.md' },
108
+ ];
109
+ }
110
+ function getFreshCacheValue(cache, key) {
111
+ const entry = cache.get(key);
112
+ if (!entry)
113
+ return null;
114
+ if (entry.expiresAt > Date.now())
115
+ return entry.value;
116
+ return null;
117
+ }
118
+ function getAnyCacheValue(cache, key) {
119
+ const entry = cache.get(key);
120
+ return entry?.value ?? null;
121
+ }
122
+ function setCacheValue(cache, key, value, ttlMs) {
123
+ cache.set(key, { value, expiresAt: Date.now() + ttlMs });
124
+ }
125
+ function contentFingerprint(content) {
126
+ const head = content.slice(0, 80);
127
+ const tail = content.slice(-80);
128
+ return `${content.length}:${head}:${tail}`;
129
+ }
130
+ export function clearDocsCache() {
131
+ dirCache.clear();
132
+ fileCache.clear();
133
+ renderCache.clear();
134
+ }
135
+ async function fetchGitHubDirectory(path = '', options = {}) {
136
+ const cacheKey = path || '__root__';
137
+ if (!options.forceRefresh) {
138
+ const cached = getFreshCacheValue(dirCache, cacheKey);
139
+ if (cached) {
140
+ return { data: cached, fromCache: true, staleFallback: false };
141
+ }
142
+ }
100
143
  const url = `https://api.github.com/repos/${GITHUB_REPO.owner}/${GITHUB_REPO.repo}/contents/${path}?ref=${GITHUB_REPO.branch}`;
101
144
  try {
102
145
  const headers = {
@@ -106,7 +149,7 @@ async function fetchGitHubDirectory(path = '') {
106
149
  if (GITHUB_TOKEN)
107
150
  headers['Authorization'] = `Bearer ${GITHUB_TOKEN}`;
108
151
  const response = await axios.get(url, { timeout: 10000, headers });
109
- return response.data
152
+ const items = response.data
110
153
  .filter((item) => !item.name.startsWith('.') &&
111
154
  !SKIP_NAMES.has(item.name) &&
112
155
  !(item.type === 'file' && !item.name.endsWith('.md')))
@@ -123,32 +166,57 @@ async function fetchGitHubDirectory(path = '') {
123
166
  return 1;
124
167
  return a.name.localeCompare(b.name);
125
168
  });
169
+ setCacheValue(dirCache, cacheKey, items, DIR_CACHE_TTL_MS);
170
+ return { data: items, fromCache: false, staleFallback: false };
126
171
  }
127
172
  catch (err) {
173
+ const staleCached = getAnyCacheValue(dirCache, cacheKey);
174
+ if (staleCached) {
175
+ return { data: staleCached, fromCache: true, staleFallback: true };
176
+ }
177
+ const trans = t();
178
+ const errorMessage = err instanceof Error ? err.message : String(err);
128
179
  if (err.response?.status === 403) {
129
180
  const rateLimitRemaining = err.response.headers['x-ratelimit-remaining'];
130
181
  const rateLimitReset = err.response.headers['x-ratelimit-reset'];
131
182
  if (rateLimitRemaining === '0') {
132
183
  const resetDate = new Date(parseInt(rateLimitReset) * 1000);
133
- throw new Error(`GitHub API 速率限制已达上限,将在 ${resetDate.toLocaleTimeString()} 重置。\n提示: 设置 GITHUB_TOKEN 环境变量可获得更高的速率限制。`);
184
+ throw new Error(`${trans.docs.githubRateLimited.replace('{time}', resetDate.toLocaleTimeString())}\n${trans.docs.githubTokenHint}`);
134
185
  }
135
- throw new Error(`GitHub API 拒绝访问 (403)。\n提示: 尝试设置 GITHUB_TOKEN 环境变量。`);
186
+ throw new Error(`${trans.docs.githubForbidden}\n${trans.docs.githubTokenHint}`);
136
187
  }
137
- throw new Error(`无法获取目录内容: ${err.message}`);
188
+ throw new Error(trans.docs.fetchDirFailed.replace('{error}', errorMessage));
138
189
  }
139
190
  }
140
- async function fetchGitHubRawContent(path) {
191
+ async function fetchGitHubRawContent(path, options = {}) {
192
+ if (!options.forceRefresh) {
193
+ const cached = getFreshCacheValue(fileCache, path);
194
+ if (cached) {
195
+ return { data: cached, fromCache: true, staleFallback: false };
196
+ }
197
+ }
141
198
  const url = `https://raw.githubusercontent.com/${GITHUB_REPO.owner}/${GITHUB_REPO.repo}/${GITHUB_REPO.branch}/${path}`;
142
199
  try {
143
200
  const response = await axios.get(url, { timeout: 15000, headers: { 'User-Agent': 'NBTCA-CLI' } });
144
- return response.data;
201
+ const content = String(response.data);
202
+ setCacheValue(fileCache, path, content, FILE_CACHE_TTL_MS);
203
+ return { data: content, fromCache: false, staleFallback: false };
145
204
  }
146
205
  catch (err) {
147
- throw new Error(`无法获取文件内容: ${err.message}`);
206
+ const staleCached = getAnyCacheValue(fileCache, path);
207
+ if (staleCached) {
208
+ return { data: staleCached, fromCache: true, staleFallback: true };
209
+ }
210
+ const trans = t();
211
+ const errorMessage = err instanceof Error ? err.message : String(err);
212
+ throw new Error(trans.docs.fetchFileFailed.replace('{error}', errorMessage));
148
213
  }
149
214
  }
150
215
  // ─── Content cleaning ─────────────────────────────────────────────────────────
151
- const CONTAINER_ICONS = {
216
+ const CONTAINER_ICONS_ASCII = {
217
+ info: '[INFO]', tip: '[TIP]', warning: '[WARN]', danger: '[DANGER]', details: '[DETAIL]'
218
+ };
219
+ const CONTAINER_ICONS_UNICODE = {
152
220
  info: 'ℹ️', tip: '💡', warning: '⚠️', danger: '🚨', details: '▶️'
153
221
  };
154
222
  function cleanMarkdownContent(content, type) {
@@ -162,7 +230,7 @@ function cleanMarkdownContent(content, type) {
162
230
  // ::: warning Title\ncontent\n:::
163
231
  c = c.replace(/^:::\s*(info|tip|warning|danger|details)\s*(.*?)\n([\s\S]*?)^:::\s*$/gm, (_m, type, title, body) => {
164
232
  const label = (title.trim() || type.charAt(0).toUpperCase() + type.slice(1));
165
- const icon = CONTAINER_ICONS[type] ?? '';
233
+ const icon = pickIcon(CONTAINER_ICONS_UNICODE[type] ?? '', CONTAINER_ICONS_ASCII[type] ?? '');
166
234
  const quoted = body.trimEnd().split('\n').map(l => `> ${l}`).join('\n');
167
235
  return `> ${icon} **${label}**\n>\n${quoted}\n`;
168
236
  });
@@ -174,12 +242,12 @@ function cleanMarkdownContent(content, type) {
174
242
  c = c.replace(/\[\[toc\]\]/gi, '');
175
243
  // 6. Images — adapt to terminal capability
176
244
  if (type === 'basic') {
177
- c = c.replace(/!\[([^\]]*)\]\([^)]+\)/g, (_, alt) => `📎 [${alt || 'image'}]`);
245
+ c = c.replace(/!\[([^\]]*)\]\([^)]+\)/g, (_, alt) => `${pickIcon('📎', '[image]')} ${alt || 'image'}`);
178
246
  }
179
247
  else if (type === 'enhanced') {
180
248
  c = c.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, (_, alt, url) => {
181
249
  const filename = url.split('/').pop() || url;
182
- return `🖼️ **[${alt || 'image'}]** _(${filename})_`;
250
+ return `${pickIcon('🖼️', '[image]')} **${alt || 'image'}** _(${filename})_`;
183
251
  });
184
252
  }
185
253
  // 7. HTML comments
@@ -197,8 +265,12 @@ function extractDocTitle(content) {
197
265
  }
198
266
  /** Approximate reading time: ~200 words/min for technical Chinese/English prose. */
199
267
  function estimateReadTime(text) {
200
- const words = text.trim().split(/\s+/).filter(Boolean).length;
201
- const mins = Math.max(1, Math.ceil(words / 200));
268
+ const cjkChars = (text.match(/[\u3400-\u9fff]/g) || []).length;
269
+ const nonCjk = text.replace(/[\u3400-\u9fff]/g, ' ');
270
+ const words = nonCjk.trim().split(/\s+/).filter(Boolean).length;
271
+ // Rough equivalence: 2 CJK chars ~= 1 "word" unit
272
+ const units = words + cjkChars / 2;
273
+ const mins = Math.max(1, Math.ceil(units / 220));
202
274
  return mins === 1 ? '~1 min' : `~${mins} min`;
203
275
  }
204
276
  // ─── Pager layer ──────────────────────────────────────────────────────────────
@@ -230,29 +302,31 @@ async function displayWithGlow(cleanedMarkdown) {
230
302
  async function displayWithLess(rendered, title, filePath, readTime) {
231
303
  const trans = t();
232
304
  const cols = Math.min(process.stdout.columns || 80, 80);
233
- const rule = chalk.dim(''.repeat(cols));
305
+ const rule = chalk.dim('-'.repeat(cols));
234
306
  const header = [
235
307
  '',
236
308
  chalk.bold.cyan(` ${title}`),
237
- chalk.dim(` ${filePath}`) + chalk.dim(` · ${readTime}`),
309
+ chalk.dim(` ${filePath}`) + chalk.dim(` | ${readTime}`),
238
310
  rule,
239
311
  '',
240
312
  ].join('\n');
241
313
  const footer = [
242
314
  '',
243
315
  rule,
244
- chalk.dim(` ${trans.docs.endOfDocument} · / to search`),
316
+ chalk.dim(` ${trans.docs.endOfDocument} | / to search`),
245
317
  '',
246
318
  ].join('\n');
247
319
  const fullContent = header + rendered + footer;
248
- const pager = process.env['PAGER'] || 'less';
249
- const args = ['-R', '-F', '-X', '-i', '-j4'];
320
+ const pagerSetting = (process.env['PAGER'] || 'less').trim();
321
+ const [pagerCommand = 'less', ...pagerArgs] = pagerSetting.split(/\s+/).filter(Boolean);
322
+ const args = [...pagerArgs, '-R', '-F', '-X', '-i', '-j4'];
323
+ if (!commandExists(pagerCommand)) {
324
+ console.log(fullContent);
325
+ return;
326
+ }
250
327
  return new Promise(resolve => {
251
328
  try {
252
- const child = spawn(pager, args, {
253
- stdio: ['pipe', 'inherit', 'inherit'],
254
- shell: true
255
- });
329
+ const child = spawn(pagerCommand, args, { stdio: ['pipe', 'inherit', 'inherit'] });
256
330
  child.stdin.write(fullContent, 'utf-8');
257
331
  child.stdin.end();
258
332
  child.on('close', resolve);
@@ -269,22 +343,26 @@ async function browseDirectory(dirPath = '') {
269
343
  const trans = t();
270
344
  try {
271
345
  const s = createSpinner(dirPath ? `${trans.docs.loadingDir}: ${dirPath}` : trans.docs.loading);
272
- const items = await fetchGitHubDirectory(dirPath);
346
+ const result = await fetchGitHubDirectory(dirPath);
347
+ const items = result.data;
273
348
  s.stop('');
349
+ if (result.staleFallback) {
350
+ warning(trans.docs.usingCachedData);
351
+ }
274
352
  if (items.length === 0) {
275
353
  warning(trans.docs.emptyDir);
276
354
  return;
277
355
  }
278
356
  const options = [
279
- ...(dirPath ? [{ value: '__back__', label: chalk.gray('↑ ' + trans.docs.upToParent) }] : []),
357
+ ...(dirPath ? [{ value: '__back__', label: chalk.gray(`${pickIcon('↑', '[..]')} ${trans.docs.upToParent}`) }] : []),
280
358
  ...items.map(item => ({
281
359
  value: item.path,
282
360
  label: item.type === 'dir'
283
- ? chalk.cyan('📁 ' + item.name + '/')
284
- : chalk.white('📄 ' + item.name),
361
+ ? chalk.cyan(`${pickIcon('📁', '[DIR]')} ${item.name}/`)
362
+ : chalk.white(`${pickIcon('📄', '[MD]')} ${item.name}`),
285
363
  hint: item.type === 'dir' ? 'dir' : '.md',
286
364
  })),
287
- { value: '__exit__', label: chalk.gray('✕ ' + trans.docs.returnToMenu) },
365
+ { value: '__exit__', label: chalk.gray(`${pickIcon('✕', '[x]')} ${trans.docs.returnToMenu}`) },
288
366
  ];
289
367
  const selected = await select({
290
368
  message: dirPath ? `${trans.docs.currentDir}: ${dirPath}` : trans.docs.chooseDoc,
@@ -321,17 +399,31 @@ async function viewMarkdownFile(filePath) {
321
399
  const trans = t();
322
400
  try {
323
401
  const s = createSpinner(`${trans.docs.loading.replace('...', '')}: ${filePath}`);
324
- const rawContent = await fetchGitHubRawContent(filePath);
325
- const cleaned = cleanMarkdownContent(rawContent, TERMINAL_TYPE);
326
- const title = extractDocTitle(cleaned) || filePath.split('/').pop() || filePath;
327
- const readTime = estimateReadTime(cleaned);
328
- const rendered = await marked(cleaned);
329
- s.stop(`${chalk.bold(title)} ${chalk.dim(readTime)}`);
402
+ const rawResult = await fetchGitHubRawContent(filePath);
403
+ if (rawResult.staleFallback) {
404
+ warning(trans.docs.usingCachedData);
405
+ }
406
+ const rawContent = rawResult.data;
407
+ const fingerprint = contentFingerprint(rawContent);
408
+ const cachedRendered = getFreshCacheValue(renderCache, filePath);
409
+ let renderedDoc;
410
+ if (cachedRendered && cachedRendered.fingerprint === fingerprint) {
411
+ renderedDoc = cachedRendered;
412
+ }
413
+ else {
414
+ const cleaned = cleanMarkdownContent(rawContent, TERMINAL_TYPE);
415
+ const title = extractDocTitle(cleaned) || filePath.split('/').pop() || filePath;
416
+ const readTime = estimateReadTime(cleaned);
417
+ const rendered = await marked(cleaned);
418
+ renderedDoc = { fingerprint, cleaned, rendered, title, readTime };
419
+ setCacheValue(renderCache, filePath, renderedDoc, RENDER_CACHE_TTL_MS);
420
+ }
421
+ s.stop(`${chalk.bold(renderedDoc.title)} ${chalk.dim(renderedDoc.readTime)}`);
330
422
  if (HAS_GLOW) {
331
- await displayWithGlow(cleaned);
423
+ await displayWithGlow(renderedDoc.cleaned);
332
424
  }
333
425
  else {
334
- await displayWithLess(rendered, title, filePath, readTime);
426
+ await displayWithLess(renderedDoc.rendered, renderedDoc.title, filePath, renderedDoc.readTime);
335
427
  }
336
428
  console.log();
337
429
  success(trans.docs.docCompleted);
@@ -339,9 +431,9 @@ async function viewMarkdownFile(filePath) {
339
431
  const action = await select({
340
432
  message: trans.docs.chooseAction,
341
433
  options: [
342
- { value: 'back', label: trans.docs.backToList },
343
- { value: 'reread', label: trans.docs.reread },
344
- { value: 'browser', label: trans.docs.openBrowser },
434
+ { value: 'back', label: `${pickIcon('←', '[<]')} ${trans.docs.backToList}` },
435
+ { value: 'reread', label: `${pickIcon('↻', '[r]')} ${trans.docs.reread}` },
436
+ { value: 'browser', label: `${pickIcon('🌐', '[*]')} ${trans.docs.openBrowser}` },
345
437
  ],
346
438
  });
347
439
  if (isCancel(action))
@@ -379,12 +471,14 @@ export async function openDocsInBrowser(path) {
379
471
  }
380
472
  // ─── Menu ─────────────────────────────────────────────────────────────────────
381
473
  export async function showDocsMenu() {
382
- const trans = t();
383
474
  while (true) {
475
+ const trans = t();
476
+ const categories = getDocCategories();
384
477
  const options = [
385
- ...DOC_CATEGORIES.map(cat => ({ value: cat.path, label: cat.name })),
386
- { value: 'browser', label: chalk.gray('🌐 ' + trans.docs.openBrowser) },
387
- { value: 'back', label: chalk.gray('' + trans.docs.returnToMenu) },
478
+ ...categories.map(cat => ({ value: cat.path, label: cat.name })),
479
+ { value: 'refresh-cache', label: chalk.gray(`${pickIcon('♻️', '[r]')} ${trans.docs.refreshCache}`) },
480
+ { value: 'browser', label: chalk.gray(`${pickIcon('🌐', '[*]')} ${trans.docs.openBrowser}`) },
481
+ { value: 'back', label: chalk.gray(`${pickIcon('←', '[^]')} ${trans.docs.returnToMenu}`) },
388
482
  ];
389
483
  const action = await select({
390
484
  message: trans.docs.chooseCategory,
@@ -392,7 +486,11 @@ export async function showDocsMenu() {
392
486
  });
393
487
  if (isCancel(action) || action === 'back')
394
488
  return;
395
- if (action === 'browser') {
489
+ if (action === 'refresh-cache') {
490
+ clearDocsCache();
491
+ success(trans.docs.cacheCleared);
492
+ }
493
+ else if (action === 'browser') {
396
494
  await openDocsInBrowser();
397
495
  }
398
496
  else if (action === 'README.md') {
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/features/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/features/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ServiceStatus {
2
+ name: string;
3
+ url: string;
4
+ ok: boolean;
5
+ statusCode?: number;
6
+ latencyMs?: number;
7
+ error?: string;
8
+ }
9
+ export interface StatusCheckOptions {
10
+ timeoutMs?: number;
11
+ retries?: number;
12
+ }
13
+ export declare function checkServices(options?: StatusCheckOptions): Promise<ServiceStatus[]>;
14
+ export declare function serializeServiceStatus(items: ServiceStatus[]): {
15
+ name: string;
16
+ url: string;
17
+ ok: boolean;
18
+ statusCode: number | null;
19
+ latencyMs: number | null;
20
+ error: string | null;
21
+ }[];
22
+ export declare function hasServiceFailures(items: ServiceStatus[]): boolean;
23
+ export declare function countServiceHealth(items: ServiceStatus[]): {
24
+ up: number;
25
+ down: number;
26
+ };
27
+ export declare function renderServiceStatusTable(items: ServiceStatus[], options?: {
28
+ color?: boolean;
29
+ }): string;
30
+ export declare function showServiceStatus(): Promise<ServiceStatus[]>;
31
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/features/status.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkDD,wBAAsB,aAAa,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAM9F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE;;;;;;;IAS5D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAElE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWvF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAgDtG;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAiBlE"}
@@ -0,0 +1,140 @@
1
+ import axios from 'axios';
2
+ import chalk from 'chalk';
3
+ import { URLS } from '../config/data.js';
4
+ import { pickIcon } from '../core/icons.js';
5
+ import { padEndV } from '../core/text.js';
6
+ import { createSpinner, success, warning } from '../core/ui.js';
7
+ import { t } from '../i18n/index.js';
8
+ const SERVICE_TARGETS = [
9
+ { name: 'Website', url: URLS.homepage },
10
+ { name: 'Docs', url: URLS.docs },
11
+ { name: 'Calendar', url: URLS.calendar },
12
+ { name: 'GitHub', url: URLS.github },
13
+ { name: 'Roadmap', url: URLS.roadmap },
14
+ ];
15
+ async function checkService(name, url, timeoutMs) {
16
+ const start = Date.now();
17
+ try {
18
+ const response = await axios.get(url, {
19
+ timeout: timeoutMs,
20
+ maxRedirects: 5,
21
+ validateStatus: () => true,
22
+ headers: { 'User-Agent': 'NBTCA-CLI/2.4.0' },
23
+ });
24
+ const latencyMs = Date.now() - start;
25
+ const ok = response.status >= 200 && response.status < 400;
26
+ return { name, url, ok, statusCode: response.status, latencyMs };
27
+ }
28
+ catch (err) {
29
+ const latencyMs = Date.now() - start;
30
+ const error = err instanceof Error ? err.message : String(err);
31
+ return { name, url, ok: false, latencyMs, error };
32
+ }
33
+ }
34
+ async function checkServiceWithRetry(name, url, timeoutMs, retries) {
35
+ let lastResult = await checkService(name, url, timeoutMs);
36
+ if (lastResult.ok)
37
+ return lastResult;
38
+ for (let attempt = 0; attempt < retries; attempt++) {
39
+ // Retry for transient transport errors and upstream server errors.
40
+ if (!lastResult.error && !(lastResult.statusCode != null && lastResult.statusCode >= 500)) {
41
+ break;
42
+ }
43
+ lastResult = await checkService(name, url, timeoutMs);
44
+ if (lastResult.ok)
45
+ return lastResult;
46
+ }
47
+ return lastResult;
48
+ }
49
+ export async function checkServices(options = {}) {
50
+ const timeoutMs = options.timeoutMs ?? 6000;
51
+ const retries = options.retries ?? 1;
52
+ return Promise.all(SERVICE_TARGETS.map((service) => checkServiceWithRetry(service.name, service.url, timeoutMs, retries)));
53
+ }
54
+ export function serializeServiceStatus(items) {
55
+ return items.map((item) => ({
56
+ name: item.name,
57
+ url: item.url,
58
+ ok: item.ok,
59
+ statusCode: item.statusCode ?? null,
60
+ latencyMs: item.latencyMs ?? null,
61
+ error: item.error ?? null,
62
+ }));
63
+ }
64
+ export function hasServiceFailures(items) {
65
+ return items.some((item) => !item.ok);
66
+ }
67
+ export function countServiceHealth(items) {
68
+ let up = 0;
69
+ let down = 0;
70
+ for (const item of items) {
71
+ if (item.ok) {
72
+ up += 1;
73
+ }
74
+ else {
75
+ down += 1;
76
+ }
77
+ }
78
+ return { up, down };
79
+ }
80
+ export function renderServiceStatusTable(items, options) {
81
+ const color = options?.color !== false;
82
+ const id = (s) => s;
83
+ const dim = color ? chalk.dim : id;
84
+ const green = color ? chalk.green : id;
85
+ const red = color ? chalk.red : id;
86
+ const cyan = color ? chalk.cyan : id;
87
+ const trans = t();
88
+ const nameWidth = 10;
89
+ const statusWidth = 9;
90
+ const codeWidth = 7;
91
+ const latencyWidth = 10;
92
+ const h = pickIcon('─', '-');
93
+ const v = pickIcon('│', '|');
94
+ const topLeft = pickIcon('┌', '+');
95
+ const topMid = pickIcon('┬', '+');
96
+ const topRight = pickIcon('┐', '+');
97
+ const midLeft = pickIcon('├', '+');
98
+ const midMid = pickIcon('┼', '+');
99
+ const midRight = pickIcon('┤', '+');
100
+ const bottomLeft = pickIcon('└', '+');
101
+ const bottomMid = pickIcon('┴', '+');
102
+ const bottomRight = pickIcon('┘', '+');
103
+ const top = `${topLeft}${h.repeat(nameWidth + 2)}${topMid}${h.repeat(statusWidth + 2)}${topMid}${h.repeat(codeWidth + 2)}${topMid}${h.repeat(latencyWidth + 2)}${topMid}${h.repeat(34)}${topRight}`;
104
+ const divider = `${midLeft}${h.repeat(nameWidth + 2)}${midMid}${h.repeat(statusWidth + 2)}${midMid}${h.repeat(codeWidth + 2)}${midMid}${h.repeat(latencyWidth + 2)}${midMid}${h.repeat(34)}${midRight}`;
105
+ const bottom = `${bottomLeft}${h.repeat(nameWidth + 2)}${bottomMid}${h.repeat(statusWidth + 2)}${bottomMid}${h.repeat(codeWidth + 2)}${bottomMid}${h.repeat(latencyWidth + 2)}${bottomMid}${h.repeat(34)}${bottomRight}`;
106
+ const header = `${v} ${padEndV(trans.status.service, nameWidth)} ${v} ${padEndV(trans.status.health, statusWidth)} ${v} ${padEndV(trans.status.code, codeWidth)} ${v} ${padEndV(trans.status.latency, latencyWidth)} ${v} ${padEndV(trans.status.url, 34)} ${v}`;
107
+ const lines = [dim(top), header, dim(divider)];
108
+ for (const item of items) {
109
+ const statusLabel = item.ok
110
+ ? green(`${pickIcon('●', 'OK')} ${trans.status.up}`)
111
+ : red(`${pickIcon('●', '!!')} ${trans.status.down}`);
112
+ const code = item.statusCode ? String(item.statusCode) : '-';
113
+ const latency = item.latencyMs != null ? `${item.latencyMs}ms` : '-';
114
+ const url = item.url.length > 34 ? `${item.url.slice(0, 31)}...` : item.url;
115
+ lines.push(`${v} ${padEndV(cyan(item.name), nameWidth)} ${v} ${padEndV(statusLabel, statusWidth)} ${v} ${padEndV(code, codeWidth)} ${v} ${padEndV(latency, latencyWidth)} ${v} ${padEndV(url, 34)} ${v}`);
116
+ }
117
+ lines.push(dim(bottom));
118
+ return lines.join('\n');
119
+ }
120
+ export async function showServiceStatus() {
121
+ const trans = t();
122
+ const spinner = createSpinner(trans.status.checking);
123
+ const items = await checkServices();
124
+ const hasFailures = hasServiceFailures(items);
125
+ if (hasFailures) {
126
+ spinner.error(trans.status.summaryFail);
127
+ }
128
+ else {
129
+ spinner.stop(trans.status.summaryOk);
130
+ }
131
+ console.log(renderServiceStatusTable(items, { color: !!process.stdout.isTTY }));
132
+ if (hasFailures) {
133
+ warning(trans.status.summaryFail);
134
+ }
135
+ else {
136
+ success(trans.status.summaryOk);
137
+ }
138
+ return items;
139
+ }
140
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/features/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAgBrC,MAAM,eAAe,GAAG;IACtB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;IACvC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE;IAChC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;IACxC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE;CAC9B,CAAC;AAEX,KAAK,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW,EAAE,SAAiB;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,CAAC;YACf,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;YAC1B,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;QAC3D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IACnE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QACrC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAY,EACZ,GAAW,EACX,SAAiB,EACjB,OAAe;IAEf,IAAI,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAC1D,IAAI,UAAU,CAAC,EAAE;QAAE,OAAO,UAAU,CAAC;IAErC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACnD,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1F,MAAM;QACR,CAAC;QACD,UAAU,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;IACvC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAA8B,EAAE;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,GAAG,CAChB,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CACvG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAsB;IAC3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAsB;IACvD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,EAAE,IAAI,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAsB,EAAE,OAA6B;IAC5F,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,KAAK,KAAK,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,YAAY,GAAG,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;IACpM,MAAM,OAAO,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC;IACxM,MAAM,MAAM,GAAG,GAAG,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;IAEzN,MAAM,MAAM,GACV,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;IAEpP,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE;YACzB,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACpD,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAE5E,KAAK,CAAC,IAAI,CACR,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAC9L,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC;IAClB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;IACpC,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface ThemeCommandResult {
2
+ ok: boolean;
3
+ message: string;
4
+ }
5
+ export declare function printThemeSummary(): void;
6
+ export declare function showThemeMenu(): Promise<void>;
7
+ export declare function runThemeCommand(args: string[]): ThemeCommandResult;
8
+ //# sourceMappingURL=theme.d.ts.map