@nikkory/vibe-cli 2.4.2 → 2.4.4
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/dist/index.js +60 -7
- package/package.json +5 -1
- package/CHANGELOG.md +0 -234
- package/nikkory-vibe.config.example.d.ts +0 -23
- package/nikkory-vibe.config.example.ts +0 -143
- package/tsup.config.d.ts +0 -3
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
|
|
26
26
|
// src/index.ts
|
|
27
27
|
var import_commander6 = require("commander");
|
|
28
|
-
var
|
|
28
|
+
var import_chalk6 = __toESM(require("chalk"));
|
|
29
29
|
|
|
30
30
|
// src/commands/init.ts
|
|
31
31
|
var fs = __toESM(require("fs/promises"));
|
|
@@ -7528,12 +7528,64 @@ var pageGenerateCommand = new import_commander5.Command("add:page").alias("page"
|
|
|
7528
7528
|
}
|
|
7529
7529
|
});
|
|
7530
7530
|
|
|
7531
|
+
// src/utils/first-run.ts
|
|
7532
|
+
var import_fs = require("fs");
|
|
7533
|
+
var import_path3 = require("path");
|
|
7534
|
+
var import_os = require("os");
|
|
7535
|
+
var import_chalk5 = __toESM(require("chalk"));
|
|
7536
|
+
var CONFIG_DIR = (0, import_path3.join)((0, import_os.homedir)(), ".nikkory-vibe");
|
|
7537
|
+
var FIRST_RUN_FILE = (0, import_path3.join)(CONFIG_DIR, ".first-run");
|
|
7538
|
+
function isFirstRun() {
|
|
7539
|
+
return !(0, import_fs.existsSync)(FIRST_RUN_FILE);
|
|
7540
|
+
}
|
|
7541
|
+
function markAsRun() {
|
|
7542
|
+
if (!(0, import_fs.existsSync)(CONFIG_DIR)) {
|
|
7543
|
+
(0, import_fs.mkdirSync)(CONFIG_DIR, { recursive: true });
|
|
7544
|
+
}
|
|
7545
|
+
(0, import_fs.writeFileSync)(FIRST_RUN_FILE, (/* @__PURE__ */ new Date()).toISOString(), "utf-8");
|
|
7546
|
+
}
|
|
7547
|
+
function showWelcomeIfFirstRun() {
|
|
7548
|
+
if (!isFirstRun()) return;
|
|
7549
|
+
const y2 = import_chalk5.default.hex("#fcb800");
|
|
7550
|
+
const banner2 = `
|
|
7551
|
+
${y2.bold("\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557")}
|
|
7552
|
+
${y2.bold("\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D")}
|
|
7553
|
+
${y2.bold("\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u255A\u2588\u2588\u2588\u2588\u2554\u255D ")}
|
|
7554
|
+
${y2.bold("\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2554\u2550\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 \u255A\u2588\u2588\u2554\u255D ")}
|
|
7555
|
+
${y2.bold("\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 ")}
|
|
7556
|
+
${y2.bold("\u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D ")}
|
|
7557
|
+
|
|
7558
|
+
${y2.bold(" \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
7559
|
+
${y2.bold(" \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D ")}
|
|
7560
|
+
${y2.bold(" \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
7561
|
+
${y2.bold(" \u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D ")}
|
|
7562
|
+
${y2.bold(" \u255A\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
7563
|
+
${y2.bold(" \u255A\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D ")}
|
|
7564
|
+
|
|
7565
|
+
${y2(" happy together")} ${import_chalk5.default.white("\u2022 v2.4.4")}
|
|
7566
|
+
|
|
7567
|
+
${import_chalk5.default.gray(" Production-ready code in seconds")}
|
|
7568
|
+
${import_chalk5.default.gray(" https://nikkory.com")}
|
|
7569
|
+
|
|
7570
|
+
${import_chalk5.default.green("\u2713 Thanks for installing Nikkory Vibe CLI!")}
|
|
7571
|
+
|
|
7572
|
+
${import_chalk5.default.cyan("Quick Start:")}
|
|
7573
|
+
${import_chalk5.default.white("nikkory-vibe add button")} ${import_chalk5.default.gray("# Generate button component")}
|
|
7574
|
+
${import_chalk5.default.white("nikkory-vibe add:section hero")} ${import_chalk5.default.gray("# Generate hero section")}
|
|
7575
|
+
${import_chalk5.default.white("nikkory-vibe list")} ${import_chalk5.default.gray("# Browse available templates")}
|
|
7576
|
+
|
|
7577
|
+
${y2(" 169 Components")} ${import_chalk5.default.gray("+")} ${y2("50 Sections")} ${import_chalk5.default.gray("\xD7")} ${y2("12 Systems")} ${import_chalk5.default.gray("\xD7")} ${y2("3 Tiers")}
|
|
7578
|
+
`;
|
|
7579
|
+
console.log(banner2);
|
|
7580
|
+
markAsRun();
|
|
7581
|
+
}
|
|
7582
|
+
|
|
7531
7583
|
// src/index.ts
|
|
7532
7584
|
var componentCount = 169;
|
|
7533
7585
|
var sectionCount = 50;
|
|
7534
7586
|
var designSystemCount = 12;
|
|
7535
7587
|
var tierCount = 3;
|
|
7536
|
-
var y =
|
|
7588
|
+
var y = import_chalk6.default.hex("#fcb800");
|
|
7537
7589
|
var banner = `
|
|
7538
7590
|
${y.bold("\u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557")}
|
|
7539
7591
|
${y.bold("\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2554\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D")}
|
|
@@ -7549,15 +7601,16 @@ ${y.bold(" \u255A\u2588\u2588\u2557 \u2588\u2588\u2554\u255D\u2588\u
|
|
|
7549
7601
|
${y.bold(" \u255A\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
7550
7602
|
${y.bold(" \u255A\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D ")}
|
|
7551
7603
|
|
|
7552
|
-
${y(" happy together")} ${
|
|
7604
|
+
${y(" happy together")} ${import_chalk6.default.white("\u2022 v2.4.4")}
|
|
7553
7605
|
|
|
7554
|
-
${
|
|
7555
|
-
${
|
|
7606
|
+
${import_chalk6.default.gray(" Production-ready code in seconds")}
|
|
7607
|
+
${import_chalk6.default.gray(" https://nikkory.com")}
|
|
7556
7608
|
|
|
7557
|
-
${y(` ${componentCount} Components`)} ${
|
|
7609
|
+
${y(` ${componentCount} Components`)} ${import_chalk6.default.gray("+")} ${y(`${sectionCount} Sections`)} ${import_chalk6.default.gray("\xD7")} ${y(`${designSystemCount} Systems`)} ${import_chalk6.default.gray("\xD7")} ${y(`${tierCount} Tiers`)}
|
|
7558
7610
|
`;
|
|
7611
|
+
showWelcomeIfFirstRun();
|
|
7559
7612
|
var program = new import_commander6.Command();
|
|
7560
|
-
program.name("nikkory-vibe").description("Nikkory Vibe - Production-ready code in seconds").version("2.4.
|
|
7613
|
+
program.name("nikkory-vibe").description("Nikkory Vibe - Production-ready code in seconds").version("2.4.4").addHelpText("before", banner);
|
|
7561
7614
|
program.addCommand(matrixGenerateCommand);
|
|
7562
7615
|
program.addCommand(sectionGenerateCommand);
|
|
7563
7616
|
program.addCommand(pageGenerateCommand);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nikkory/vibe-cli",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.4",
|
|
4
4
|
"description": "CLI tool for Nikkory Vibe - Generate production-ready code in seconds",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
"nikkory-vibe": "./dist/index.js",
|
|
9
9
|
"vibe": "./dist/index.js"
|
|
10
10
|
},
|
|
11
|
+
"files": [
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
11
15
|
"scripts": {
|
|
12
16
|
"build": "tsup",
|
|
13
17
|
"dev": "tsup --watch",
|
package/CHANGELOG.md
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to @nikkory/vibe-cli will be documented in this file.
|
|
4
|
-
|
|
5
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [4.0.0] - 2026-01-04
|
|
9
|
-
|
|
10
|
-
### 🎉 Major Release - Multi-Framework Architecture
|
|
11
|
-
|
|
12
|
-
Complete CLI redesign with new command structure for multi-framework support.
|
|
13
|
-
|
|
14
|
-
### Added
|
|
15
|
-
|
|
16
|
-
#### Multi-Framework Support
|
|
17
|
-
|
|
18
|
-
- **New Command Pattern**: `nikkory-vibe <scope> <action> <granularity> <target> [options]`
|
|
19
|
-
- **Scope System**: Framework-specific handlers (react, vue, pattern, engine)
|
|
20
|
-
- **React Scope**: Full support for React component generation
|
|
21
|
-
- **Pattern Scope**: Design pattern browsing and search
|
|
22
|
-
- **Engine Scope**: Vibe engine utilities
|
|
23
|
-
|
|
24
|
-
#### Config File Support (Phase 3)
|
|
25
|
-
|
|
26
|
-
- **Auto-discovery**: Automatically finds `nikkory-vibe.config.ts` in current directory
|
|
27
|
-
- **Config Schema**: TypeScript-first configuration with full type safety
|
|
28
|
-
- **Config Loader**: Supports `.ts`, `.mts`, `.js`, `.mjs`, `.cjs` files
|
|
29
|
-
- **Deep Merging**: Config values override defaults intelligently
|
|
30
|
-
- **Per-Framework Config**: Customize settings for each framework
|
|
31
|
-
- **Output Structure**: Customize output directories per granularity level
|
|
32
|
-
- **Example Config**: `nikkory-vibe.config.example.ts` included
|
|
33
|
-
|
|
34
|
-
#### Interactive Wizard Mode (Phase 3)
|
|
35
|
-
|
|
36
|
-
- **Step-by-Step Generation**: Interactive prompts for component creation
|
|
37
|
-
- **5 Action Flows**: generate, list, search, info, preview
|
|
38
|
-
- **Smart Question Routing**: Questions adapt based on selected action
|
|
39
|
-
- **Input Validation**: Validates component names, required fields
|
|
40
|
-
- **Summary Preview**: Shows configuration before generation
|
|
41
|
-
- **Emoji UI**: Enhanced visual feedback
|
|
42
|
-
- **Shorthand**: `-i` or `--interactive` flag
|
|
43
|
-
|
|
44
|
-
#### Type System (Phase 1)
|
|
45
|
-
|
|
46
|
-
- **CommandScope**: `react`, `vue`, `svelte`, `angular`, `pattern`, `engine`
|
|
47
|
-
- **ComponentGranularity**: `atom`, `component`, `section`, `page`, `layout`, `template`
|
|
48
|
-
- **IScopeHandler**: Interface for framework-specific handlers
|
|
49
|
-
- **CLIOptions**: Comprehensive options type system
|
|
50
|
-
|
|
51
|
-
#### Scope Handlers (Phase 2)
|
|
52
|
-
|
|
53
|
-
- **ReactScopeHandler**: Full React component generation
|
|
54
|
-
- **PatternScopeHandler**: Design pattern management
|
|
55
|
-
- **EngineScopeHandler**: Engine utilities
|
|
56
|
-
- **VueScopeHandler**: Stub for v4.1.0
|
|
57
|
-
- **SvelteScopeHandler**: Stub for v4.2.0
|
|
58
|
-
|
|
59
|
-
### Changed
|
|
60
|
-
|
|
61
|
-
- **Bundle Size**: Reduced from 190KB to 142KB (25% smaller)
|
|
62
|
-
- **Binary Name**: `nikkory-vibe` is new primary (legacy `vibe` still works)
|
|
63
|
-
- **Command Structure**: New scope-based pattern (legacy commands deprecated)
|
|
64
|
-
- **Import Organization**: Improved ESLint compliance with strict import order
|
|
65
|
-
|
|
66
|
-
### Deprecated
|
|
67
|
-
|
|
68
|
-
- **Legacy Commands** (will be removed in v5.0.0):
|
|
69
|
-
- `vibe add` → Use `nikkory-vibe react generate atom`
|
|
70
|
-
- `vibe copy` → Use `nikkory-vibe react list` + manual copy
|
|
71
|
-
- `vibe generate` (old style) → Use new scope-based pattern
|
|
72
|
-
- `vibe matrix` → Disabled (TypeScript errors)
|
|
73
|
-
- `vibe smart` → Disabled (TypeScript errors)
|
|
74
|
-
|
|
75
|
-
### Removed
|
|
76
|
-
|
|
77
|
-
- **Matrix Command**: Temporarily disabled due to TypeScript errors
|
|
78
|
-
- **Smart Command**: Temporarily disabled due to TypeScript errors
|
|
79
|
-
- **Old Generate Command**: Temporarily disabled due to missing types
|
|
80
|
-
|
|
81
|
-
### Fixed
|
|
82
|
-
|
|
83
|
-
- **TypeScript Errors**: Zero errors in new Phase 1-3 code
|
|
84
|
-
- **ESLint Errors**: Zero errors in new Phase 1-3 code
|
|
85
|
-
- **Import Order**: Fixed type import ordering in handlers and types
|
|
86
|
-
- **Build Process**: Successful compilation with reduced bundle size
|
|
87
|
-
|
|
88
|
-
### Migration
|
|
89
|
-
|
|
90
|
-
See [MIGRATION-v3-v4.md](./MIGRATION-v3-v4.md) for detailed migration guide.
|
|
91
|
-
|
|
92
|
-
**Quick Migration**:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# v3.x (Legacy)
|
|
96
|
-
vibe add button --style=material --tier=standard
|
|
97
|
-
|
|
98
|
-
# v4.0.0 (New)
|
|
99
|
-
nikkory-vibe react generate atom button --design=material-design --tier=standard
|
|
100
|
-
|
|
101
|
-
# Or with config file
|
|
102
|
-
nikkory-vibe react generate atom button
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Documentation
|
|
106
|
-
|
|
107
|
-
- **README.md**: Completely rewritten for v4.0.0
|
|
108
|
-
- **MIGRATION-v3-v4.md**: Comprehensive migration guide
|
|
109
|
-
- **nikkory-vibe.config.example.ts**: Example configuration file
|
|
110
|
-
|
|
111
|
-
### Quality Metrics
|
|
112
|
-
|
|
113
|
-
**Phase 1-2** (Types + Handlers):
|
|
114
|
-
|
|
115
|
-
- 📝 Files Created: 15+
|
|
116
|
-
- 📊 Lines of Code: ~800
|
|
117
|
-
- ✅ TypeScript Errors: 0
|
|
118
|
-
- ✅ ESLint Errors: 0
|
|
119
|
-
- ✅ Build: SUCCESS (190KB)
|
|
120
|
-
|
|
121
|
-
**Phase 3** (Config + Interactive):
|
|
122
|
-
|
|
123
|
-
- 📝 Files Created: 8
|
|
124
|
-
- 📊 Lines of Code: 1,287
|
|
125
|
-
- ✅ TypeScript Errors: 0 (in new code)
|
|
126
|
-
- ✅ ESLint Errors: 0 (in new code)
|
|
127
|
-
- ✅ Build: SUCCESS (142KB, -25%)
|
|
128
|
-
|
|
129
|
-
**Phase 4** (Quality Gate - Partial):
|
|
130
|
-
|
|
131
|
-
- ✅ Legacy commands disabled
|
|
132
|
-
- ✅ Import order fixed
|
|
133
|
-
- ✅ Documentation updated
|
|
134
|
-
|
|
135
|
-
**Overall Progress**: 75% complete (Phase 0-4 done, Phase 5-7 remaining)
|
|
136
|
-
|
|
137
|
-
### Technical Details
|
|
138
|
-
|
|
139
|
-
**New Files**:
|
|
140
|
-
|
|
141
|
-
- `src/types/command.ts` - CLI command types
|
|
142
|
-
- `src/types/enums.ts` - Scope and action enums
|
|
143
|
-
- `src/types/granularity.ts` - Component granularity types
|
|
144
|
-
- `src/types/handler.ts` - Scope handler interface
|
|
145
|
-
- `src/scopes/react.ts` - React scope handler
|
|
146
|
-
- `src/scopes/pattern.ts` - Pattern scope handler
|
|
147
|
-
- `src/scopes/engine.ts` - Engine scope handler
|
|
148
|
-
- `src/scopes/vue.ts` - Vue scope handler (stub)
|
|
149
|
-
- `src/scopes/svelte.ts` - Svelte scope handler (stub)
|
|
150
|
-
- `src/config/schema.ts` - Config type definitions (220 LOC)
|
|
151
|
-
- `src/config/loader.ts` - Config file loader (306 LOC)
|
|
152
|
-
- `src/config/index.ts` - Config barrel exports
|
|
153
|
-
- `src/interactive/questions.ts` - Inquirer prompts (173 LOC)
|
|
154
|
-
- `src/interactive/wizard.ts` - Interactive wizard (361 LOC)
|
|
155
|
-
- `src/interactive/index.ts` - Interactive barrel exports
|
|
156
|
-
- `nikkory-vibe.config.example.ts` - Example config (132 LOC)
|
|
157
|
-
|
|
158
|
-
**Modified Files**:
|
|
159
|
-
|
|
160
|
-
- `src/cli.ts` - Integrated config loading and interactive mode (+40 LOC)
|
|
161
|
-
- `src/types/handler.ts` - Fixed import order
|
|
162
|
-
|
|
163
|
-
### Breaking Changes
|
|
164
|
-
|
|
165
|
-
1. **Command Structure**: New scope-based pattern required
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
# Before
|
|
169
|
-
vibe add button
|
|
170
|
-
|
|
171
|
-
# After
|
|
172
|
-
nikkory-vibe react generate atom button
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
2. **Scope Required**: Must specify framework scope
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
# ❌ Error
|
|
179
|
-
nikkory-vibe generate atom button
|
|
180
|
-
|
|
181
|
-
# ✅ Correct
|
|
182
|
-
nikkory-vibe react generate atom button
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
3. **Option Names**: Some options renamed
|
|
186
|
-
- `--style` → `--design` (design system)
|
|
187
|
-
|
|
188
|
-
### Upgrade Instructions
|
|
189
|
-
|
|
190
|
-
```bash
|
|
191
|
-
# Update package
|
|
192
|
-
pnpm add @nikkory/vibe-cli@latest
|
|
193
|
-
|
|
194
|
-
# Create config file (optional)
|
|
195
|
-
cp node_modules/@nikkory/vibe-cli/nikkory-vibe.config.example.ts nikkory-vibe.config.ts
|
|
196
|
-
|
|
197
|
-
# Update scripts in package.json
|
|
198
|
-
{
|
|
199
|
-
"scripts": {
|
|
200
|
-
"vibe": "nikkory-vibe react --interactive"
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
### Known Issues
|
|
206
|
-
|
|
207
|
-
- Matrix command disabled (TypeScript errors, will be fixed in v4.0.1)
|
|
208
|
-
- Smart command disabled (TypeScript errors, will be fixed in v4.0.1)
|
|
209
|
-
- Vue/Svelte/Angular scopes not yet implemented (coming v4.1.0+)
|
|
210
|
-
|
|
211
|
-
### Contributors
|
|
212
|
-
|
|
213
|
-
- **Planner & Developer**: Nikkory Team
|
|
214
|
-
- **AI Assistant**: Claude Code (Sonnet 4.5)
|
|
215
|
-
|
|
216
|
-
### Next Release (v4.0.1)
|
|
217
|
-
|
|
218
|
-
Planned fixes:
|
|
219
|
-
|
|
220
|
-
- Fix TypeScript errors in matrix command
|
|
221
|
-
- Fix TypeScript errors in smart command
|
|
222
|
-
- Add unit tests for config loader
|
|
223
|
-
- Add unit tests for interactive wizard
|
|
224
|
-
|
|
225
|
-
### Future Releases
|
|
226
|
-
|
|
227
|
-
- **v4.1.0**: Vue framework support
|
|
228
|
-
- **v4.2.0**: Svelte framework support
|
|
229
|
-
- **v4.3.0**: Angular framework support
|
|
230
|
-
- **v5.0.0**: Remove all legacy commands
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
**Powered by Nikkory**
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Nikkory Vibe Configuration Example
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to your project root as `nikkory-vibe.config.ts`
|
|
5
|
-
* to customize CLI defaults and output directories.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```bash
|
|
9
|
-
* # Copy to your project
|
|
10
|
-
* cp nikkory-vibe.config.example.ts nikkory-vibe.config.ts
|
|
11
|
-
*
|
|
12
|
-
* # Use the config
|
|
13
|
-
* nikkory-vibe react generate atom button
|
|
14
|
-
* # Will use defaultTier='enterprise' from config
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @since 4.0.0
|
|
18
|
-
* Powered by Nikkory
|
|
19
|
-
*/
|
|
20
|
-
import type { NikkoryVibeConfig } from '@nikkory/vibe-cli';
|
|
21
|
-
declare const config: NikkoryVibeConfig;
|
|
22
|
-
export default config;
|
|
23
|
-
//# sourceMappingURL=nikkory-vibe.config.example.d.ts.map
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Nikkory Vibe Configuration Example
|
|
3
|
-
*
|
|
4
|
-
* Copy this file to your project root as `nikkory-vibe.config.ts`
|
|
5
|
-
* to customize CLI defaults and output directories.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```bash
|
|
9
|
-
* # Copy to your project
|
|
10
|
-
* cp nikkory-vibe.config.example.ts nikkory-vibe.config.ts
|
|
11
|
-
*
|
|
12
|
-
* # Use the config
|
|
13
|
-
* nikkory-vibe react generate atom button
|
|
14
|
-
* # Will use defaultTier='enterprise' from config
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @since 4.0.0
|
|
18
|
-
* Powered by Nikkory
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import type { NikkoryVibeConfig } from '@nikkory/vibe-cli';
|
|
22
|
-
|
|
23
|
-
const config: NikkoryVibeConfig = {
|
|
24
|
-
// ============================================================================
|
|
25
|
-
// DEFAULT VALUES
|
|
26
|
-
// ============================================================================
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Default framework scope
|
|
30
|
-
*
|
|
31
|
-
* When no scope is specified, use this framework.
|
|
32
|
-
* Options: 'react', 'vue', 'svelte', 'angular', 'pattern', 'engine'
|
|
33
|
-
*/
|
|
34
|
-
defaultScope: 'react',
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Default quality tier
|
|
38
|
-
*
|
|
39
|
-
* Determines code quality level for generated components.
|
|
40
|
-
* Options: 'basic' | 'standard' | 'enterprise'
|
|
41
|
-
*
|
|
42
|
-
* - basic: Simple components for prototyping (30-50 LOC)
|
|
43
|
-
* - standard: Production-ready with variants (50-150 LOC)
|
|
44
|
-
* - enterprise: Full analytics, accessibility, memoization (150-300 LOC)
|
|
45
|
-
*/
|
|
46
|
-
defaultTier: 'enterprise',
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Default design system
|
|
50
|
-
*
|
|
51
|
-
* Visual style for generated components.
|
|
52
|
-
* Options: 'material-design', 'ios-hig', 'glassmorphism', 'neumorphism',
|
|
53
|
-
* 'brutalism', 'minimalism'
|
|
54
|
-
*/
|
|
55
|
-
defaultDesignSystem: 'material-design',
|
|
56
|
-
|
|
57
|
-
// ============================================================================
|
|
58
|
-
// OUTPUT DIRECTORIES
|
|
59
|
-
// ============================================================================
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Output structure for different component granularities
|
|
63
|
-
*
|
|
64
|
-
* Customize where generated files are saved.
|
|
65
|
-
* All paths are relative to current working directory.
|
|
66
|
-
*/
|
|
67
|
-
outputStructure: {
|
|
68
|
-
atoms: './src/components/atoms', // Small UI primitives (buttons, inputs)
|
|
69
|
-
components: './src/components', // Composite components (cards, modals)
|
|
70
|
-
sections: './src/sections', // Page sections (hero, pricing)
|
|
71
|
-
pages: './src/pages', // Complete pages
|
|
72
|
-
layouts: './src/layouts', // Layout templates
|
|
73
|
-
templates: './src/templates', // Full page templates
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
// ============================================================================
|
|
77
|
-
// FRAMEWORK-SPECIFIC SETTINGS
|
|
78
|
-
// ============================================================================
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Per-framework configuration
|
|
82
|
-
*
|
|
83
|
-
* Customize settings for each framework scope.
|
|
84
|
-
*/
|
|
85
|
-
frameworks: {
|
|
86
|
-
react: {
|
|
87
|
-
typescript: true,
|
|
88
|
-
styleLibrary: 'tailwind',
|
|
89
|
-
// Add custom React-specific settings here
|
|
90
|
-
},
|
|
91
|
-
vue: {
|
|
92
|
-
typescript: true,
|
|
93
|
-
styleLibrary: 'tailwind',
|
|
94
|
-
composition: true, // Use Composition API
|
|
95
|
-
// Add custom Vue-specific settings here
|
|
96
|
-
},
|
|
97
|
-
svelte: {
|
|
98
|
-
typescript: true,
|
|
99
|
-
styleLibrary: 'tailwind',
|
|
100
|
-
// Add custom Svelte-specific settings here
|
|
101
|
-
},
|
|
102
|
-
angular: {
|
|
103
|
-
typescript: true,
|
|
104
|
-
styleLibrary: 'tailwind',
|
|
105
|
-
// Add custom Angular-specific settings here
|
|
106
|
-
},
|
|
107
|
-
pattern: {
|
|
108
|
-
typescript: true,
|
|
109
|
-
},
|
|
110
|
-
engine: {
|
|
111
|
-
typescript: true,
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
// ============================================================================
|
|
116
|
-
// GLOBAL OPTIONS
|
|
117
|
-
// ============================================================================
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Force overwrite existing files
|
|
121
|
-
*
|
|
122
|
-
* When true, CLI will not prompt before overwriting files.
|
|
123
|
-
* Use with caution in production!
|
|
124
|
-
*/
|
|
125
|
-
forceOverwrite: false,
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Verbose output
|
|
129
|
-
*
|
|
130
|
-
* When true, CLI shows detailed logs for debugging.
|
|
131
|
-
*/
|
|
132
|
-
verbose: false,
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Dry run mode
|
|
136
|
-
*
|
|
137
|
-
* When true, CLI previews changes without writing files.
|
|
138
|
-
* Useful for testing commands.
|
|
139
|
-
*/
|
|
140
|
-
dryRun: false,
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
export default config;
|
package/tsup.config.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare const _default: import("tsup").Options | import("tsup").Options[] | ((overrideOptions: import("tsup").Options) => import("tsup").Options | import("tsup").Options[] | Promise<import("tsup").Options | import("tsup").Options[]>);
|
|
2
|
-
export default _default;
|
|
3
|
-
//# sourceMappingURL=tsup.config.d.ts.map
|