@nbtca/prompt 1.0.8 → 1.0.13
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 +16 -289
- package/dist/config/data.d.ts +1 -1
- package/dist/config/data.js +1 -1
- package/dist/config/data.js.map +1 -1
- package/dist/core/logo.d.ts.map +1 -1
- package/dist/core/logo.js +13 -2
- package/dist/core/logo.js.map +1 -1
- package/dist/core/menu.d.ts +5 -0
- package/dist/core/menu.d.ts.map +1 -1
- package/dist/core/menu.js +12 -5
- package/dist/core/menu.js.map +1 -1
- package/dist/core/ui.d.ts.map +1 -1
- package/dist/core/ui.js +5 -3
- package/dist/core/ui.js.map +1 -1
- package/dist/features/calendar.d.ts +13 -14
- package/dist/features/calendar.d.ts.map +1 -1
- package/dist/features/calendar.js +57 -59
- package/dist/features/calendar.js.map +1 -1
- package/dist/features/docs.d.ts.map +1 -1
- package/dist/features/docs.js +50 -47
- package/dist/features/docs.js.map +1 -1
- package/dist/features/repair.d.ts +4 -0
- package/dist/features/repair.d.ts.map +1 -1
- package/dist/features/repair.js +1 -1
- package/dist/features/repair.js.map +1 -1
- package/dist/features/website.d.ts +10 -0
- package/dist/features/website.d.ts.map +1 -1
- package/dist/features/website.js +14 -2
- package/dist/features/website.js.map +1 -1
- package/dist/i18n/index.d.ts +9 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/locales/en.json +10 -1
- package/dist/i18n/locales/zh.json +10 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +133 -4
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +7 -3
- package/dist/main.js.map +1 -1
- package/package.json +8 -2
- package/.github/workflows/ci.yml +0 -40
- package/.github/workflows/publish.yml +0 -59
- package/CHANGELOG.md +0 -125
- package/DEVELOPMENT.md +0 -258
- package/TERMINAL_UX.md +0 -184
- package/assets/Prompt_demo.gif +0 -0
- package/src/config/data.js +0 -484
- package/src/config/data.ts +0 -28
- package/src/config/theme.js +0 -138
- package/src/config/theme.ts +0 -26
- package/src/core/logo.ts +0 -189
- package/src/core/menu.ts +0 -213
- package/src/core/ui.ts +0 -89
- package/src/core/vim-keys.ts +0 -70
- package/src/features/calendar.ts +0 -161
- package/src/features/docs.ts +0 -588
- package/src/features/repair.ts +0 -36
- package/src/features/website.ts +0 -45
- package/src/i18n/index.ts +0 -236
- package/src/i18n/locales/en.json +0 -107
- package/src/i18n/locales/zh.json +0 -107
- package/src/index.ts +0 -9
- package/src/logo/ascii-logo.txt +0 -6
- package/src/logo/logo.txt +0 -2
- package/src/logo/printLogo.js +0 -26
- package/src/main.ts +0 -45
- package/src/types.ts +0 -51
- package/tsconfig.json +0 -53
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,137 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* NBTCA
|
|
3
|
-
* 程序启动入口
|
|
2
|
+
* NBTCA Prompt entry point
|
|
4
3
|
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
5
|
import { main } from './main.js';
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { runMenuAction } from './core/menu.js';
|
|
7
|
+
import { fetchEvents, renderEventsTable, serializeEvents } from './features/calendar.js';
|
|
8
|
+
import { REPAIR_URL } from './features/repair.js';
|
|
9
|
+
import { WEBSITE_URLS } from './features/website.js';
|
|
10
|
+
import { setLanguage, t } from './i18n/index.js';
|
|
11
|
+
const ACTION_ALIASES = {
|
|
12
|
+
events: 'events',
|
|
13
|
+
event: 'events',
|
|
14
|
+
repair: 'repair',
|
|
15
|
+
docs: 'docs',
|
|
16
|
+
doc: 'docs',
|
|
17
|
+
website: 'website',
|
|
18
|
+
web: 'website',
|
|
19
|
+
github: 'github',
|
|
20
|
+
gh: 'github',
|
|
21
|
+
roadmap: 'roadmap',
|
|
22
|
+
board: 'roadmap',
|
|
23
|
+
about: 'about'
|
|
24
|
+
};
|
|
25
|
+
const URL_ACTIONS = {
|
|
26
|
+
repair: REPAIR_URL,
|
|
27
|
+
website: WEBSITE_URLS.homepage,
|
|
28
|
+
github: WEBSITE_URLS.github,
|
|
29
|
+
roadmap: WEBSITE_URLS.roadmap
|
|
30
|
+
};
|
|
31
|
+
function parseArgs(argv) {
|
|
32
|
+
const flags = new Set();
|
|
33
|
+
const positionals = [];
|
|
34
|
+
for (const token of argv) {
|
|
35
|
+
if (token.startsWith('--')) {
|
|
36
|
+
flags.add(token);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
positionals.push(token);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
command: positionals[0]?.toLowerCase(),
|
|
44
|
+
arg: positionals[1],
|
|
45
|
+
flags
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function printHelp() {
|
|
49
|
+
console.log(chalk.bold('NBTCA Prompt'));
|
|
50
|
+
console.log();
|
|
51
|
+
console.log('Usage:');
|
|
52
|
+
console.log(' nbtca Start interactive menu');
|
|
53
|
+
console.log(' nbtca <command> [flags] Run one command directly');
|
|
54
|
+
console.log(' nbtca lang <zh|en> Set language preference');
|
|
55
|
+
console.log();
|
|
56
|
+
console.log('Commands:');
|
|
57
|
+
console.log(' events | repair | docs | website | github | roadmap | about');
|
|
58
|
+
console.log();
|
|
59
|
+
console.log('Flags:');
|
|
60
|
+
console.log(' --help Show help');
|
|
61
|
+
console.log(' --open Open browser for URL commands');
|
|
62
|
+
console.log(' --json JSON output (supported by `events`)');
|
|
63
|
+
console.log(' --plain Disable color output');
|
|
64
|
+
console.log(' --no-logo Skip startup logo in menu mode');
|
|
65
|
+
console.log();
|
|
66
|
+
console.log('Examples:');
|
|
67
|
+
console.log(' nbtca events --json');
|
|
68
|
+
console.log(' nbtca roadmap');
|
|
69
|
+
console.log(' nbtca roadmap --open');
|
|
70
|
+
}
|
|
71
|
+
async function runEventsCommand(flags) {
|
|
72
|
+
const events = await fetchEvents();
|
|
73
|
+
if (flags.has('--json')) {
|
|
74
|
+
process.stdout.write(JSON.stringify(serializeEvents(events), null, 2) + '\n');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const useColor = !flags.has('--plain') && !!process.stdout.isTTY;
|
|
78
|
+
console.log(renderEventsTable(events, { color: useColor }));
|
|
79
|
+
}
|
|
80
|
+
function maybeDisableColor(flags) {
|
|
81
|
+
if (flags.has('--plain')) {
|
|
82
|
+
process.env['NO_COLOR'] = '1';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function runCommandMode(argv) {
|
|
86
|
+
const { command, arg, flags } = parseArgs(argv);
|
|
87
|
+
maybeDisableColor(flags);
|
|
88
|
+
if (flags.has('--help') || command === '--help' || command === '-h' || command === 'help') {
|
|
89
|
+
printHelp();
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (!command) {
|
|
93
|
+
await main({ skipLogo: flags.has('--no-logo') });
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (command === 'lang' || command === 'language') {
|
|
97
|
+
const language = (arg || '').toLowerCase();
|
|
98
|
+
if (language !== 'zh' && language !== 'en') {
|
|
99
|
+
console.error(chalk.red('Invalid language. Use `zh` or `en`.'));
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
setLanguage(language);
|
|
103
|
+
console.log(chalk.green(`✓ ${t().language.changed}`));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const action = ACTION_ALIASES[command];
|
|
107
|
+
if (!action) {
|
|
108
|
+
console.error(chalk.red(`Unknown command: ${command}`));
|
|
109
|
+
console.error(chalk.dim('Run `nbtca --help` to see available commands.'));
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
if (action === 'events') {
|
|
113
|
+
await runEventsCommand(flags);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const mappedUrl = URL_ACTIONS[action];
|
|
117
|
+
if (mappedUrl && !flags.has('--open')) {
|
|
118
|
+
process.stdout.write(mappedUrl + '\n');
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
await runMenuAction(action);
|
|
122
|
+
}
|
|
123
|
+
runCommandMode(process.argv.slice(2)).catch((err) => {
|
|
124
|
+
if (err?.message?.includes('SIGINT') || err?.message?.includes('User force closed')) {
|
|
125
|
+
console.log();
|
|
126
|
+
console.log(chalk.dim(t().common.goodbye));
|
|
127
|
+
process.exit(0);
|
|
128
|
+
}
|
|
129
|
+
if (err?.message) {
|
|
130
|
+
console.error(err.message);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
console.error('Error occurred:', err);
|
|
134
|
+
}
|
|
135
|
+
process.exit(1);
|
|
136
|
+
});
|
|
8
137
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts
CHANGED
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* NBTCA Welcome Tool
|
|
3
3
|
* Minimalist startup flow
|
|
4
4
|
*/
|
|
5
|
+
export interface MainOptions {
|
|
6
|
+
skipLogo?: boolean;
|
|
7
|
+
}
|
|
5
8
|
/**
|
|
6
9
|
* Main program entry point
|
|
7
10
|
*/
|
|
8
|
-
export declare function main(): Promise<void>;
|
|
11
|
+
export declare function main(options?: MainOptions): Promise<void>;
|
|
9
12
|
//# sourceMappingURL=main.d.ts.map
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH;;GAEG;AACH,wBAAsB,IAAI,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCnE"}
|
package/dist/main.js
CHANGED
|
@@ -12,14 +12,18 @@ import { t } from './i18n/index.js';
|
|
|
12
12
|
/**
|
|
13
13
|
* Main program entry point
|
|
14
14
|
*/
|
|
15
|
-
export async function main() {
|
|
15
|
+
export async function main(options = {}) {
|
|
16
16
|
try {
|
|
17
17
|
// Enable Vim key bindings
|
|
18
18
|
enableVimKeys();
|
|
19
19
|
// Clear screen
|
|
20
|
-
|
|
20
|
+
if (process.stdout.isTTY) {
|
|
21
|
+
clearScreen();
|
|
22
|
+
}
|
|
21
23
|
// Display logo (smart fallback)
|
|
22
|
-
|
|
24
|
+
if (!options.skipLogo) {
|
|
25
|
+
await printLogo();
|
|
26
|
+
}
|
|
23
27
|
// Display version info
|
|
24
28
|
printHeader(`v${APP_INFO.version}`);
|
|
25
29
|
// Show main menu (loop)
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,iBAAiB,CAAC;AAMpC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,IAAI,CAAC;QACH,0BAA0B;QAC1B,aAAa,EAAE,CAAC;QAEhB,eAAe;QACf,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,SAAS,EAAE,CAAC;QACpB,CAAC;QAED,uBAAuB;QACvB,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAEpC,wBAAwB;QACxB,MAAM,YAAY,EAAE,CAAC;IAEvB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAClF,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nbtca/prompt",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"nbtca": "bin/nbtca-welcome.js",
|
|
8
8
|
"nbtca-welcome": "bin/nbtca-welcome.js"
|
|
9
9
|
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"bin/nbtca-welcome.js",
|
|
13
|
+
"README.md",
|
|
14
|
+
"LICENSE"
|
|
15
|
+
],
|
|
10
16
|
"scripts": {
|
|
11
17
|
"start": "node dist/index.js",
|
|
12
18
|
"dev": "tsx src/index.ts",
|
|
@@ -49,7 +55,7 @@
|
|
|
49
55
|
"typescript": "^5.3.3"
|
|
50
56
|
},
|
|
51
57
|
"engines": {
|
|
52
|
-
"node": ">=
|
|
58
|
+
"node": ">=20.12.0"
|
|
53
59
|
},
|
|
54
60
|
"author": "m1ngsama <contact@m1ng.space>",
|
|
55
61
|
"license": "MIT",
|
package/.github/workflows/ci.yml
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
name: CI for @nbtca/prompt
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main, feature/*]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
jobs:
|
|
10
|
-
build:
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
|
|
13
|
-
strategy:
|
|
14
|
-
matrix:
|
|
15
|
-
node-version: [18, 20]
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: 🛎️ Checkout code
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: 🟢 Set up Node.js ${{ matrix.node-version }}
|
|
22
|
-
uses: actions/setup-node@v4
|
|
23
|
-
with:
|
|
24
|
-
node-version: ${{ matrix.node-version }}
|
|
25
|
-
cache: "npm"
|
|
26
|
-
|
|
27
|
-
- name: 📦 Install dependencies
|
|
28
|
-
run: npm ci
|
|
29
|
-
|
|
30
|
-
- name: 🔨 Build TypeScript
|
|
31
|
-
run: npm run build
|
|
32
|
-
|
|
33
|
-
- name: ✅ Type check
|
|
34
|
-
run: npx tsc --noEmit
|
|
35
|
-
|
|
36
|
-
- name: 📋 Verify build artifacts
|
|
37
|
-
run: |
|
|
38
|
-
test -d dist || (echo "dist directory not found" && exit 1)
|
|
39
|
-
test -f dist/index.js || (echo "dist/index.js not found" && exit 1)
|
|
40
|
-
echo "Build artifacts verified successfully"
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
name: Publish to npm
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- "v*"
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
publish:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
permissions:
|
|
12
|
-
contents: read
|
|
13
|
-
id-token: write
|
|
14
|
-
|
|
15
|
-
steps:
|
|
16
|
-
- name: 🛎️ Checkout code
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
|
|
19
|
-
- name: 🟢 Set up Node.js
|
|
20
|
-
uses: actions/setup-node@v4
|
|
21
|
-
with:
|
|
22
|
-
node-version: "20"
|
|
23
|
-
registry-url: "https://registry.npmjs.org/"
|
|
24
|
-
cache: "npm"
|
|
25
|
-
|
|
26
|
-
- name: 📦 Install dependencies
|
|
27
|
-
run: npm ci
|
|
28
|
-
|
|
29
|
-
- name: 🔨 Build TypeScript
|
|
30
|
-
run: npm run build
|
|
31
|
-
|
|
32
|
-
- name: ✅ Verify build
|
|
33
|
-
run: |
|
|
34
|
-
test -d dist || (echo "dist directory not found" && exit 1)
|
|
35
|
-
test -f dist/index.js || (echo "dist/index.js not found" && exit 1)
|
|
36
|
-
echo "Build artifacts verified"
|
|
37
|
-
|
|
38
|
-
- name: 📋 Check package version
|
|
39
|
-
id: version
|
|
40
|
-
run: |
|
|
41
|
-
TAG_VERSION=${GITHUB_REF#refs/tags/v}
|
|
42
|
-
PKG_VERSION=$(node -p "require('./package.json').version")
|
|
43
|
-
echo "Tag version: $TAG_VERSION"
|
|
44
|
-
echo "Package version: $PKG_VERSION"
|
|
45
|
-
if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
|
|
46
|
-
echo "Version mismatch! Tag: v$TAG_VERSION, package.json: v$PKG_VERSION"
|
|
47
|
-
exit 1
|
|
48
|
-
fi
|
|
49
|
-
echo "version=$PKG_VERSION" >> $GITHUB_OUTPUT
|
|
50
|
-
|
|
51
|
-
- name: 🚀 Publish to npm
|
|
52
|
-
run: npm publish --access public --provenance
|
|
53
|
-
env:
|
|
54
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
55
|
-
|
|
56
|
-
- name: ✅ Success notification
|
|
57
|
-
run: |
|
|
58
|
-
echo "🎉 Successfully published @nbtca/prompt@${{ steps.version.outputs.version }} to npm"
|
|
59
|
-
|
package/CHANGELOG.md
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
# CHANGELOG
|
|
2
|
-
|
|
3
|
-
## [1.0.5] - 2025-12-10
|
|
4
|
-
|
|
5
|
-
### Fixed
|
|
6
|
-
- **Knowledge Base 403 Error**: Resolved GitHub API rate limiting issue that caused 403 errors when browsing documentation
|
|
7
|
-
- Added GitHub token authentication support via `GITHUB_TOKEN` or `GH_TOKEN` environment variables
|
|
8
|
-
- Improved error messages with rate limit information and reset time
|
|
9
|
-
- Increased rate limit from 60 to 5000 requests per hour when using a token
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
- **Pager-Style Document Viewer**: Documents now open in a pager (similar to vim/journalctl/less)
|
|
13
|
-
- Natural scrolling navigation with arrow keys, Space, j/k (vim-style), and q to quit
|
|
14
|
-
- Content doesn't flood the terminal anymore
|
|
15
|
-
- Better reading experience for long documents
|
|
16
|
-
- Automatic fallback to direct output if pager is unavailable
|
|
17
|
-
- **Re-read Document Option**: Added ability to re-read a document after viewing without going back to the list
|
|
18
|
-
- **Environment Variable Support**:
|
|
19
|
-
- `GITHUB_TOKEN` or `GH_TOKEN` for GitHub API authentication
|
|
20
|
-
- `PAGER` for custom pager selection (defaults to `less`)
|
|
21
|
-
|
|
22
|
-
### Improved
|
|
23
|
-
- Enhanced error handling with detailed rate limit diagnostics
|
|
24
|
-
- Better user feedback when rate limits are reached
|
|
25
|
-
- Clearer instructions for resolving authentication issues
|
|
26
|
-
|
|
27
|
-
### Technical Details
|
|
28
|
-
- Added `displayInPager()` function for spawning system pager processes
|
|
29
|
-
- Enhanced `fetchGitHubDirectory()` with conditional token authentication
|
|
30
|
-
- Updated documentation viewer workflow for better UX
|
|
31
|
-
|
|
32
|
-
## [1.0.4] - 2025-12-10
|
|
33
|
-
|
|
34
|
-
### Enhanced
|
|
35
|
-
- **Smooth Slogan Animation**: Implemented true color interpolation for buttery smooth gradient animation
|
|
36
|
-
- Increased frame rate from 24 to 60 FPS for ultra-smooth motion
|
|
37
|
-
- Changed easing from cubic to sine wave for more natural transitions
|
|
38
|
-
- Dynamically generate gradients per frame instead of using pre-defined set
|
|
39
|
-
- Eliminates staggered/jumping effect in the slogan text animation
|
|
40
|
-
|
|
41
|
-
### Technical Details
|
|
42
|
-
- Added `hexToRgb()`, `rgbToHex()`, and `interpolateColor()` functions for mathematical color blending
|
|
43
|
-
- Implemented `easeInOutSine()` easing function for smooth acceleration/deceleration
|
|
44
|
-
- Each frame now uses unique, mathematically interpolated colors
|
|
45
|
-
|
|
46
|
-
## [1.0.3] - 2025-11-27
|
|
47
|
-
|
|
48
|
-
### Changed
|
|
49
|
-
- Version alignment and bug fixes
|
|
50
|
-
|
|
51
|
-
## [1.0.2] - 2025-11-27
|
|
52
|
-
|
|
53
|
-
### Added
|
|
54
|
-
- **Terminal Documentation Viewer**: Browse and read Markdown documentation from nbtca/documents repository directly in terminal
|
|
55
|
-
- GitHub API integration for fetching directory structure and file contents
|
|
56
|
-
- Recursive directory navigation with [DIR] and [MD] indicators
|
|
57
|
-
- VitePress syntax cleaning (frontmatter, containers, [[toc]], HTML comments)
|
|
58
|
-
- Terminal Markdown rendering using marked-terminal
|
|
59
|
-
- Browser fallback on network errors or user preference
|
|
60
|
-
- Retry mechanism for failed network requests
|
|
61
|
-
|
|
62
|
-
### Changed
|
|
63
|
-
- **ASCII-Only Interface**: Removed all emoji icons for maximum terminal compatibility
|
|
64
|
-
- Replaced emoji with ASCII symbols: [*], [?], [x], [..], [DIR], [MD], [ <], [ ^], [ *]
|
|
65
|
-
- Works on all terminal emulators, SSH sessions, tmux, and legacy systems
|
|
66
|
-
- Follows Unix/Linux terminal conventions
|
|
67
|
-
- Professional, minimalist design
|
|
68
|
-
|
|
69
|
-
### Improved
|
|
70
|
-
- **Terminal UX Enhancements**:
|
|
71
|
-
- Added keybinding hints to main menu: "Navigation: j/k or ↑/↓ | Jump: g/G | Quit: q or Ctrl+C"
|
|
72
|
-
- Added ESC key infrastructure for future back navigation and operation cancellation
|
|
73
|
-
- Standardized navigation symbols across all menus
|
|
74
|
-
- Better vim-keys.ts documentation with clearer comments
|
|
75
|
-
|
|
76
|
-
### Fixed
|
|
77
|
-
- **Development Workflow**: Fixed `pnpm run dev` auto-restart issue
|
|
78
|
-
- Split dev command: `dev` (no watch, for interactive CLI) and `dev:watch` (with watch mode)
|
|
79
|
-
- Proper exit behavior for interactive CLI testing
|
|
80
|
-
|
|
81
|
-
### Documentation
|
|
82
|
-
- Added DEVELOPMENT.md: Comprehensive development guide with workflows, testing methods, and common issues
|
|
83
|
-
- Added TERMINAL_UX.md: Terminal UX improvements and compatibility documentation
|
|
84
|
-
- Updated README.md: Professional, concise documentation without decorative elements
|
|
85
|
-
|
|
86
|
-
### Technical Details
|
|
87
|
-
- Enhanced docs.ts with GitHub repository integration
|
|
88
|
-
- Improved menu.ts with ASCII symbols and keybinding hints
|
|
89
|
-
- Enhanced vim-keys.ts with ESC support and better documentation
|
|
90
|
-
- Better package.json scripts for development workflow
|
|
91
|
-
|
|
92
|
-
## [1.0.1] - 2025-11-21
|
|
93
|
-
|
|
94
|
-
### Added
|
|
95
|
-
- New English tagline with smooth blue gradient animation
|
|
96
|
-
- Full Vim keybindings support (j/k/g/G/q)
|
|
97
|
-
- Minimalist UI design inspired by Claude Code CLI
|
|
98
|
-
|
|
99
|
-
### Improved
|
|
100
|
-
- Smoother gradient animation (24 frames, 1.2s duration)
|
|
101
|
-
- Removed keyboard instruction text for cleaner interface
|
|
102
|
-
- Blue color scheme throughout (deep blue → sky blue → cyan)
|
|
103
|
-
|
|
104
|
-
### Changed
|
|
105
|
-
- q key now exits the application
|
|
106
|
-
- Removed Chinese tagline
|
|
107
|
-
- Simplified menu layout
|
|
108
|
-
|
|
109
|
-
### Removed
|
|
110
|
-
- Unused DATA_MANAGEMENT.md documentation
|
|
111
|
-
|
|
112
|
-
### Dependencies
|
|
113
|
-
- Updated gradient-string to ^3.0.0
|
|
114
|
-
- Updated @inquirer/prompts to ^8.0.3
|
|
115
|
-
|
|
116
|
-
## [1.0.0] - 2025-11-21
|
|
117
|
-
|
|
118
|
-
### Added
|
|
119
|
-
- Initial release of NBTCA Prompt CLI tool
|
|
120
|
-
- Interactive terminal menu system
|
|
121
|
-
- Event calendar integration
|
|
122
|
-
- Repair service information
|
|
123
|
-
- Knowledge base access
|
|
124
|
-
- Quick links to official website and GitHub
|
|
125
|
-
- About section with project information
|