@damphuquy/agent-init 1.2.3 → 1.2.5
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 +1 -1
- package/README.vi.md +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -7
- package/dist/cli.js.map +1 -1
- package/dist/scaffolder.d.ts.map +1 -1
- package/dist/scaffolder.js +59 -47
- package/dist/scaffolder.js.map +1 -1
- package/dist/ui.js +4 -4
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,7 +68,7 @@ Full architectural details → [`docs/en/01-overview.md`](docs/en/01-overview.md
|
|
|
68
68
|
| [03 · Layer: `process/`](docs/en/03-layer-process.md) | File-by-file: seeds, context router, artifact chain |
|
|
69
69
|
| [04 · Layer: `AGENTS.md`](docs/en/04-layer-agentsmd.md) | Entry point anatomy & project customization |
|
|
70
70
|
| [05 · Workflow: New Task](docs/en/05-workflow-new-task.md) | Step-by-step tutorial: idea → completed task |
|
|
71
|
-
| [06 · Human vs Agent](docs/en/06-human-vs-agent.md) |
|
|
71
|
+
| [06 · Human vs Agent](docs/en/06-human-vs-agent.md) | File ownership, create/edit/approve matrix, Quality Gates (G0–G3), maintenance |
|
|
72
72
|
| [07 · Deployment](docs/en/07-deployment.md) | Bootstrap options, monorepo setup, troubleshooting |
|
|
73
73
|
| [08 · Developer Playbook](docs/en/08-developer-workflow-playbook.md) | Practical scenarios, day-to-day operations, prompt cheat sheet |
|
|
74
74
|
| [Note · DevOps CI/CD & Release](docs/en/note/devops-release-automation.md) | Automated SemVer, 2FA npm tokens, Git tag sync |
|
package/README.vi.md
CHANGED
|
@@ -68,7 +68,7 @@ Chi tiết kiến trúc → [`docs/vi/01-overview.md`](docs/vi/01-overview.md)
|
|
|
68
68
|
| [03 · Layer: `process/`](docs/vi/03-layer-process.md) | Chi tiết: seeds, context router, chuỗi artifact |
|
|
69
69
|
| [04 · Layer: `AGENTS.md`](docs/vi/04-layer-agentsmd.md) | Cấu trúc entry point & cách tùy biến theo project |
|
|
70
70
|
| [05 · Workflow: Tạo task mới](docs/vi/05-workflow-new-task.md) | Hướng dẫn từng bước: từ ý tưởng đến hoàn thành |
|
|
71
|
-
| [06 · Human vs Agent](docs/vi/06-human-vs-agent.md) |
|
|
71
|
+
| [06 · Human vs Agent](docs/vi/06-human-vs-agent.md) | Quyền sở hữu file, ma trận tạo/sửa/duyệt, 4 Cổng kiểm soát (G0–G3), bảo trì framework |
|
|
72
72
|
| [07 · Deployment](docs/vi/07-deployment.md) | Các cách bootstrap, cấu hình monorepo, xử lý sự cố |
|
|
73
73
|
| [08 · Cẩm nang Kỹ thuật](docs/vi/08-developer-workflow-playbook.md) | Tình huống thực tế, thao tác hằng ngày, bảng prompt mẫu |
|
|
74
74
|
| [Note · DevOps CI/CD & Release](docs/vi/note/devops-release-automation.md) | Cẩm nang DevOps, xử lý token 2FA npm, đồng bộ Git tag |
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,wBAAgB,SAAS,CACvB,IAAI,GAAE,SAAS,MAAM,EAA0B,GAC9C,UAAU,CAmBZ;AAED,wBAAgB,GAAG,IAAI,IAAI,CAsB1B"}
|
package/dist/cli.js
CHANGED
|
@@ -9,19 +9,18 @@ export function parseArgs(argv = process.argv.slice(2)) {
|
|
|
9
9
|
let force = false;
|
|
10
10
|
let help = false;
|
|
11
11
|
let version = false;
|
|
12
|
-
for (
|
|
13
|
-
|
|
14
|
-
if (arg === '--force' || arg === '-f') {
|
|
12
|
+
for (const item of argv) {
|
|
13
|
+
if (item === '--force' || item === '-f') {
|
|
15
14
|
force = true;
|
|
16
15
|
}
|
|
17
|
-
else if (
|
|
16
|
+
else if (item === '--help' || item === '-h') {
|
|
18
17
|
help = true;
|
|
19
18
|
}
|
|
20
|
-
else if (
|
|
19
|
+
else if (item === '--version' || item === '-v') {
|
|
21
20
|
version = true;
|
|
22
21
|
}
|
|
23
|
-
else if (!
|
|
24
|
-
targetDir =
|
|
22
|
+
else if (!item.startsWith('-')) {
|
|
23
|
+
targetDir = item;
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
26
|
return { targetDir, force, help, version };
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,SAAS,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,MAAM,UAAU,SAAS,CACvB,IAAI,GAAsB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/C,IAAI,SAAS,GAAG,GAAG,CAAC;IACpB,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACxC,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACjD,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,GAAG;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IAEjC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,GAAG,EAAE,CAAC"}
|
package/dist/scaffolder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"scaffolder.d.ts","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuB,eAAe,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAsGjG,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA2CjE"}
|
package/dist/scaffolder.js
CHANGED
|
@@ -4,60 +4,49 @@ import process from 'node:process';
|
|
|
4
4
|
import { FILE_GROUPS, getPackageInfo, getPackageRoot } from './config.js';
|
|
5
5
|
import { colors } from './theme.js';
|
|
6
6
|
import { renderBanner, renderBox } from './ui.js';
|
|
7
|
-
|
|
8
|
-
const { targetDir, force, cwd = process.cwd(), templatesDir = path.resolve(getPackageRoot(), 'templates'), } = options;
|
|
9
|
-
const pkgInfo = getPackageInfo();
|
|
10
|
-
renderBanner(pkgInfo, colors);
|
|
11
|
-
if (!fs.existsSync(templatesDir)) {
|
|
12
|
-
console.error(`\n ${colors.badgeError()} Templates directory not found at: ${colors.red(templatesDir)}\n`);
|
|
13
|
-
return {
|
|
14
|
-
success: false,
|
|
15
|
-
stats: { created: 0, skipped: 0, directories: 0 },
|
|
16
|
-
targetPath: path.resolve(cwd, targetDir),
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const resolvedTarget = path.resolve(cwd, targetDir);
|
|
20
|
-
const displayTarget = targetDir === '.' ? cwd : resolvedTarget;
|
|
21
|
-
// Configuration Card
|
|
7
|
+
function printConfiguration(displayTarget, force) {
|
|
22
8
|
console.log(colors.purple(colors.bold(' CONFIGURATION')));
|
|
23
9
|
console.log(` ${colors.dim('Target Directory :')} ${colors.cyan(colors.bold(displayTarget))}`);
|
|
24
|
-
console.log(` ${colors.dim('Overwrite Mode :')} ${force
|
|
10
|
+
console.log(` ${colors.dim('Overwrite Mode :')} ${force
|
|
11
|
+
? colors.red(colors.bold('Enabled (--force)'))
|
|
12
|
+
: colors.green('Disabled (Preserve existing)')}`);
|
|
25
13
|
console.log();
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
}
|
|
15
|
+
function ensureDirectory(dirPath, dirs) {
|
|
16
|
+
if (!fs.existsSync(dirPath)) {
|
|
17
|
+
fs.mkdirSync(dirPath, { recursive: true });
|
|
18
|
+
}
|
|
19
|
+
dirs.add(dirPath);
|
|
20
|
+
}
|
|
21
|
+
function processFileItem(item, templatesDir, resolvedTarget, force, stats) {
|
|
22
|
+
const srcPath = path.join(templatesDir, item.path);
|
|
23
|
+
const destPath = path.join(resolvedTarget, item.path);
|
|
24
|
+
const destDir = path.dirname(destPath);
|
|
25
|
+
ensureDirectory(destDir, stats.dirs);
|
|
26
|
+
if (!fs.existsSync(srcPath)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const displayRelPath = item.path.replace(/\/\.gitkeep$/, '');
|
|
30
|
+
const desc = item.desc ? ` ${colors.comment(`— ${item.desc}`)}` : '';
|
|
31
|
+
if (fs.existsSync(destPath) && !force) {
|
|
32
|
+
console.log(` ${colors.badgeSkipped()} ${colors.dim(displayRelPath)}${desc}`);
|
|
33
|
+
stats.skipped++;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
fs.copyFileSync(srcPath, destPath);
|
|
37
|
+
console.log(` ${colors.badgeCreated()} ${colors.fg(colors.bold(displayRelPath))}${desc}`);
|
|
38
|
+
stats.created++;
|
|
39
|
+
}
|
|
40
|
+
function processFileGroups(groups, templatesDir, resolvedTarget, force, stats) {
|
|
41
|
+
for (const group of groups) {
|
|
31
42
|
console.log(` ${colors.teal(colors.bold(group.title))}`);
|
|
32
43
|
for (const item of group.files) {
|
|
33
|
-
|
|
34
|
-
const destPath = path.join(resolvedTarget, item.path);
|
|
35
|
-
const destDir = path.dirname(destPath);
|
|
36
|
-
if (!fs.existsSync(destDir)) {
|
|
37
|
-
fs.mkdirSync(destDir, { recursive: true });
|
|
38
|
-
stats.dirs.add(destDir);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
stats.dirs.add(destDir);
|
|
42
|
-
}
|
|
43
|
-
const displayRelPath = item.path.replace(/\/\.gitkeep$/, '');
|
|
44
|
-
const desc = item.desc ? ` ${colors.comment(`— ${item.desc}`)}` : '';
|
|
45
|
-
if (!fs.existsSync(srcPath)) {
|
|
46
|
-
continue;
|
|
47
|
-
}
|
|
48
|
-
if (fs.existsSync(destPath) && !force) {
|
|
49
|
-
console.log(` ${colors.badgeSkipped()} ${colors.dim(displayRelPath)}${desc}`);
|
|
50
|
-
stats.skipped++;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
fs.copyFileSync(srcPath, destPath);
|
|
54
|
-
console.log(` ${colors.badgeCreated()} ${colors.fg(colors.bold(displayRelPath))}${desc}`);
|
|
55
|
-
stats.created++;
|
|
56
|
-
}
|
|
44
|
+
processFileItem(item, templatesDir, resolvedTarget, force, stats);
|
|
57
45
|
}
|
|
58
46
|
console.log();
|
|
59
47
|
}
|
|
60
|
-
|
|
48
|
+
}
|
|
49
|
+
function printSummary(stats) {
|
|
61
50
|
const summaryLines = [
|
|
62
51
|
` ${colors.dim('Files Created :')} ${colors.green(colors.bold(String(stats.created)))}`,
|
|
63
52
|
` ${colors.dim('Files Skipped :')} ${colors.yellow(colors.bold(String(stats.skipped)))}`,
|
|
@@ -65,7 +54,8 @@ export function scaffold(options) {
|
|
|
65
54
|
];
|
|
66
55
|
console.log(renderBox(summaryLines, colors, { title: colors.teal(colors.bold('SETUP SUMMARY')) }));
|
|
67
56
|
console.log();
|
|
68
|
-
|
|
57
|
+
}
|
|
58
|
+
function printNextSteps(targetDir) {
|
|
69
59
|
const relPathPrefix = targetDir === '.' ? '.' : targetDir;
|
|
70
60
|
const agentsPath = path.join(relPathPrefix, 'AGENTS.md');
|
|
71
61
|
const seedTaskPath = path.join(relPathPrefix, 'process/_seeds/task-template.md.seed');
|
|
@@ -83,6 +73,28 @@ export function scaffold(options) {
|
|
|
83
73
|
];
|
|
84
74
|
console.log(renderBox(nextStepLines, colors, { title: colors.purple(colors.bold('NEXT STEPS')) }));
|
|
85
75
|
console.log();
|
|
76
|
+
}
|
|
77
|
+
export function scaffold(options) {
|
|
78
|
+
const { targetDir, force, cwd = process.cwd(), templatesDir = path.resolve(getPackageRoot(), 'templates'), } = options;
|
|
79
|
+
const pkgInfo = getPackageInfo();
|
|
80
|
+
renderBanner(pkgInfo, colors);
|
|
81
|
+
const resolvedTarget = path.resolve(cwd, targetDir);
|
|
82
|
+
if (!fs.existsSync(templatesDir)) {
|
|
83
|
+
console.error(`\n ${colors.badgeError()} Templates directory not found at: ${colors.red(templatesDir)}\n`);
|
|
84
|
+
return {
|
|
85
|
+
success: false,
|
|
86
|
+
stats: { created: 0, skipped: 0, directories: 0 },
|
|
87
|
+
targetPath: resolvedTarget,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const displayTarget = targetDir === '.' ? cwd : resolvedTarget;
|
|
91
|
+
printConfiguration(displayTarget, force);
|
|
92
|
+
console.log(colors.purple(colors.bold(' INITIALIZING WORKSPACE')));
|
|
93
|
+
console.log();
|
|
94
|
+
const stats = { created: 0, skipped: 0, dirs: new Set() };
|
|
95
|
+
processFileGroups(FILE_GROUPS, templatesDir, resolvedTarget, force, stats);
|
|
96
|
+
printSummary(stats);
|
|
97
|
+
printNextSteps(targetDir);
|
|
86
98
|
return {
|
|
87
99
|
success: true,
|
|
88
100
|
stats: {
|
package/dist/scaffolder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGlD,
|
|
1
|
+
{"version":3,"file":"scaffolder.js","sourceRoot":"","sources":["../src/scaffolder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGlD,SAAS,kBAAkB,CAAC,aAAqB,EAAE,KAAc;IAC/D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;IAClG,OAAO,CAAC,GAAG,CACT,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IACrC,KAAK;QACH,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC9C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CACjD,EAAE,CACH,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,IAAiB;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CACtB,IAAc,EACd,YAAoB,EACpB,cAAsB,EACtB,KAAc,EACd,KAAoB;IAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAClF,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IAED,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,YAAY,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC9F,KAAK,CAAC,OAAO,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA4B,EAC5B,YAAoB,EACpB,cAAsB,EACtB,KAAc,EACd,KAAoB;IAEpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAoB;IACxC,MAAM,YAAY,GAAsB;QACtC,KAAK,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC7F,KAAK,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC9F,KAAK,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KAC/F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,aAAa,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC;IACtF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,8CAA8C,CAAC,CAAC;IAEhG,MAAM,aAAa,GAAsB;QACvC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,EAAE;QAClE,WAAW,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,yDAAyD;QAC5F,EAAE;QACF,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,EAAE;QACvE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK,CAAC,EAAE;QAC9C,SAAS,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;QACxC,EAAE;QACF,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,EAAE;QAC7D,gCAAgC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB;KAChF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAC/C,MAAM,EACJ,SAAS,EACT,KAAK,EACL,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,WAAW,CAAC,GAC3D,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,QAAQ,MAAM,CAAC,UAAU,EAAE,sCAAsC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7G,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;YACjD,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;IAC/D,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,KAAK,GAAkB,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;IACjF,iBAAiB,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE3E,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1B,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;SAC7B;QACD,UAAU,EAAE,cAAc;KAC3B,CAAC;AACJ,CAAC"}
|
package/dist/ui.js
CHANGED
|
@@ -28,14 +28,14 @@ export function renderBox(lines, colors, options = {}) {
|
|
|
28
28
|
if (title) {
|
|
29
29
|
const titleLen = visibleLength(title);
|
|
30
30
|
const rightDashes = '─'.repeat(Math.max(0, width - 5 - titleLen));
|
|
31
|
-
out.push(` ${borderColor('╭─ ')}${title} ${borderColor(
|
|
31
|
+
out.push(` ${borderColor('╭─ ')}${title} ${borderColor(rightDashes + '╮')}`);
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
out.push(` ${borderColor(
|
|
34
|
+
out.push(` ${borderColor('╭' + topBorder + '╮')}`);
|
|
35
35
|
}
|
|
36
36
|
for (const item of lines) {
|
|
37
37
|
if (item === '---') {
|
|
38
|
-
out.push(` ${borderColor(
|
|
38
|
+
out.push(` ${borderColor('├' + topBorder + '┤')}`);
|
|
39
39
|
}
|
|
40
40
|
else if (item === '') {
|
|
41
41
|
out.push(` ${borderColor('│')}${' '.repeat(width - 2)}${borderColor('│')}`);
|
|
@@ -45,7 +45,7 @@ export function renderBox(lines, colors, options = {}) {
|
|
|
45
45
|
out.push(` ${borderColor('│')} ${padded} ${borderColor('│')}`);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
out.push(` ${borderColor(
|
|
48
|
+
out.push(` ${borderColor('╰' + topBorder + '╯')}`);
|
|
49
49
|
return out.join('\n');
|
|
50
50
|
}
|
|
51
51
|
export function renderBanner(pkgInfo, colors) {
|
package/dist/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,WAAmB;IAC5D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,IAAI,IAAI,WAAW;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,KAAwB,EACxB,MAAmB,EACnB,OAAO,GAAe,EAAE;IAExB,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAE3E,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAClC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAClE,GAAG,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|