git-cvnty 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,56 @@
1
+ # Changelog
2
+
3
+ All notable changes to git-cvnty will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [1.1.0] - 2026-03-17
11
+
12
+ ### Added
13
+
14
+ - **Changelog Viewer** — integrated tabbed interface inspired by `jdeniau/changelog-view`
15
+ - Browse local `CHANGELOG.md` with per-version sidebar navigation
16
+ - Fetch changelogs for npm packages and GitHub repositories
17
+ - Terminal markdown rendering (headings, bullets, code spans)
18
+ - Inline package query: `package@version` or `owner/repo`
19
+ - Stash Manager action (push, pop, drop)
20
+ - `ink-spinner` loading indicator during network fetches
21
+ - `semver` + `find-versions` for robust version parsing
22
+
23
+ ### Changed
24
+
25
+ - Upgraded to `ink-select-input@5` and `ink-text-input@5` for Ink 4 compatibility
26
+ - Changelog source can be `local` (repo file) or `package` (remote npm/GitHub)
27
+ - Footer keyboard hints now include PageUp/PageDown for content scrolling
28
+ - esbuild now compiles `.js` files as JSX (`loader: { '.js': 'jsx' }`)
29
+
30
+ ### Fixed
31
+
32
+ - Corrected import paths in all component files (`../../src/git.js` → `../git.js`)
33
+ - Removed duplicate shebang line from bundled output
34
+
35
+ ---
36
+
37
+ ## [1.0.0] - 2026-03-14
38
+
39
+ ### Added
40
+
41
+ - Initial release of **git-cvnty** — a modern, sleek CLI git management tool
42
+ - Built with [Ink 4](https://github.com/vadimdemedes/ink) (React 18 + ESM)
43
+ - Gradient ASCII logo header using `ink-big-text` + `ink-gradient`
44
+ - Live status panel (unstaged / staged changes) with color-coded file flags
45
+ - Commit graph panel (`git log --all --graph`) using `ink-big-text`
46
+ - Action menu with horizontal navigation:
47
+ - Stage Changes (individual or all files)
48
+ - Commit Changes
49
+ - Push / Pull
50
+ - Checkout / Create Branch
51
+ - Delete Branch
52
+ - Cyan + magenta theme with round border styling
53
+ - Keyboard hint footer (Tab, ↑↓, Enter, Esc, Ctrl+C)
54
+ - `src/theme.js` for centralized style configuration
55
+ - `src/git.js` with typed git utility functions (status, branch, graph, push, pull, commit, stash, diff)
56
+ - `build.js` esbuild bundler with JSX transpilation
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Val Alexander
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,202 @@
1
+ # git-cvnty
2
+
3
+ A **modern, sleek CLI git management tool** — a complete reimagining of [GitGud](https://github.com/GitGud-org/GitGud) built with [Ink 4](https://github.com/vadimdemedes/ink) (React 18 + ESM), a built-in Changelog Viewer inspired by [changelog-view](https://github.com/jdeniau/changelog-view), and a polished cyan/magenta terminal aesthetic.
4
+
5
+ ```
6
+ █▀▀ █ ▀█▀ ▄▄ █▀▀ █ █ █▄ █ ▀█▀
7
+ █▄█ █ █ █▄▄ ▀▄▀ █ ▀█ █
8
+
9
+ ⎇ Branch: main
10
+ ```
11
+
12
+ ---
13
+
14
+ ## Features
15
+
16
+ - **Status Panels** — color-coded unstaged / staged file changes (`●` modified · `✚` added · `✖` deleted · `»` renamed)
17
+ - **Commit Graph** — live `git log --all --graph` visualization
18
+ - **Stage Changes** — toggle individual files or all at once
19
+ - **Commit** — enter a commit message inline without quoting
20
+ - **Push / Pull** — push or pull the current branch with one keypress
21
+ - **Checkout / Create Branch** — switch to existing branch or create a new one
22
+ - **Delete Branch** — force-delete a local branch with safety confirmation
23
+ - **Stash Manager** — push (with optional message), pop, and drop stashes
24
+ - **📋 Changelog Viewer** — browse changelogs right in your terminal:
25
+ - **Local** — reads `CHANGELOG.md` / `HISTORY.md` from your repo root, parses Keep-a-Changelog format into per-version sections
26
+ - **Remote** — fetch changelogs for npm packages or GitHub repos (e.g. `react`, `react@18.0.0`, `facebook/react`)
27
+ - Tabbed version sidebar (left) + scrollable markdown content (right)
28
+ - Terminal markdown rendering: headings, bullets, code spans, separators
29
+ - Loading spinner for network fetches
30
+ - **Keyboard-first navigation** — Tab · ↑↓ · Enter · Esc · PageUp/PageDown
31
+ - **Configurable theme** — edit `src/theme.js` to change colors, border style, logo visibility
32
+
33
+ ---
34
+
35
+ ## Requirements
36
+
37
+ - **Node.js ≥ 18**
38
+ - **Git ≥ 2.23** (for `git restore --staged` support)
39
+ - npm ≥ 7
40
+
41
+ ---
42
+
43
+ ## Installation
44
+
45
+ ```bash
46
+ npm install --global git-cvnty
47
+ ```
48
+
49
+ Or run without installing:
50
+
51
+ ```bash
52
+ npx git-cvnty
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Usage
58
+
59
+ Navigate to any directory that contains a `.git` folder and run:
60
+
61
+ ```bash
62
+ git-cvnty
63
+ ```
64
+
65
+ ### Options
66
+
67
+ | Flag | Description |
68
+ |------|-------------|
69
+ | `--no-logo` | Hide the ASCII logo at startup |
70
+
71
+ ### Navigation
72
+
73
+ | Key | Action |
74
+ |-----|--------|
75
+ | `↑` / `↓` | Move between menu items |
76
+ | `Enter` | Select / confirm |
77
+ | `Esc` | Go back to main menu |
78
+ | `Ctrl+C` | Quit |
79
+
80
+ ### Changelog Viewer — additional keys
81
+
82
+ | Key | Action |
83
+ |-----|--------|
84
+ | `Tab` or `Shift+↑↓` | Switch between version entries |
85
+ | `↑` / `↓` | Scroll changelog content |
86
+ | `PageUp` / `PageDown` | Fast-scroll content |
87
+
88
+ ---
89
+
90
+ ## Changelog Viewer
91
+
92
+ The **View Changelog** action provides two modes:
93
+
94
+ ### 1. Local CHANGELOG.md
95
+
96
+ Reads the first changelog file found in your git repo root:
97
+
98
+ > `CHANGELOG.md` · `HISTORY.md` · `CHANGES.md` · `ChangeLog.md` · …
99
+
100
+ Parses any [Keep a Changelog](https://keepachangelog.com/) format:
101
+
102
+ ```markdown
103
+ ## [1.2.0] - 2024-03-01
104
+ ### Added
105
+ - New feature
106
+
107
+ ## [1.1.0] - 2024-01-15
108
+ ### Fixed
109
+ - Bug fix
110
+ ```
111
+
112
+ ### 2. Remote package / GitHub repo
113
+
114
+ Enter a query string in any of these formats:
115
+
116
+ ```
117
+ react # auto-detects version from node_modules
118
+ react@18.0.0 # shows changes since 18.0.0
119
+ facebook/react # GitHub owner/repo
120
+ facebook/react@18.0.0 # GitHub repo + filter version
121
+ ```
122
+
123
+ git-cvnty checks `CHANGELOG.md`, `HISTORY.md`, and GitHub Releases in order, then renders the changelog in your terminal with filtered versions.
124
+
125
+ ---
126
+
127
+ ## Building from source
128
+
129
+ ```bash
130
+ git clone https://github.com/BunsDev/git-cvnty
131
+ cd git-cvnty
132
+ npm install
133
+ npm run build # compiles src/ → dist/ with esbuild
134
+ node dist/cli.js
135
+ ```
136
+
137
+ To watch for changes during development:
138
+
139
+ ```bash
140
+ npm run dev
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Customization
146
+
147
+ Edit `src/theme.js` to change the look and feel:
148
+
149
+ ```js
150
+ const theme = {
151
+ accent: 'cyan', // border/heading color
152
+ highlight: 'magenta', // secondary accent
153
+ staged: 'green', // staged file indicator
154
+ unstaged: 'yellow', // unstaged file indicator
155
+ border: 'round', // 'single' | 'double' | 'round' | 'bold'
156
+ showLogo: true, // show/hide the ASCII header
157
+ };
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Project Structure
163
+
164
+ ```
165
+ git-cvnty/
166
+ ├── cli.js # Entry point (ESM, JSX via esbuild)
167
+ ├── build.js # esbuild bundler config
168
+ ├── CHANGELOG.md # This project's changelog
169
+ ├── src/
170
+ │ ├── app.js # Main app component + action router + horizontal action menu
171
+ │ ├── git.js # All git operations (status, commit, push, …)
172
+ │ ├── changelog.js # Changelog parsing + GitHub/npm fetching
173
+ │ ├── theme.js # Centralized color/style config
174
+ │ └── components/
175
+ │ ├── Header.js # Logo + current branch display
176
+ │ ├── StatusPanel.js # Unstaged/staged file panels
177
+ │ ├── BranchPanel.js # git log --graph visualization
178
+ │ ├── Footer.js # Keyboard hint bar
179
+ │ ├── CommitDialog.js # Commit message prompt
180
+ │ ├── CheckoutDialog.js # Branch checkout/create
181
+ │ ├── DeleteDialog.js # Branch deletion
182
+ │ ├── StageDialog.js # File staging toggle
183
+ │ ├── StashDialog.js # Stash push/pop/drop
184
+ │ ├── PushPullStatus.js # Push/pull result banner
185
+ │ └── ChangelogDialog.js# Tabbed changelog viewer ← inspired by changelog-view
186
+ └── dist/
187
+ └── cli.js # Compiled output (auto-generated by npm run build)
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Credits
193
+
194
+ - Inspired by [GitGud](https://github.com/GitGud-org/GitGud) by GitGud-org
195
+ - Changelog viewer interface inspired by [changelog-view](https://github.com/jdeniau/changelog-view) by Julien Deniau
196
+ - Built with [Ink](https://github.com/vadimdemedes/ink) by Vadim Demedes
197
+
198
+ ---
199
+
200
+ ## License
201
+
202
+ MIT