@ycniuqton/devlens 0.1.0 → 0.1.2
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 +177 -66
- package/dist/init.js +28 -10
- package/dist/init.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -2,58 +2,103 @@
|
|
|
2
2
|
|
|
3
3
|
A real-time developer dashboard for git diff viewing, task management, and Claude Code integration.
|
|
4
4
|
|
|
5
|
-
Devlens gives you a web-based UI to monitor file changes, manage tasks on a kanban board,
|
|
5
|
+
Devlens gives you a web-based UI to monitor file changes, manage Claude Code tasks on a kanban board, control Claude's behavior with project rules, and approve commits — all in one place. It auto-starts with every Claude Code session and runs on a unique port per project.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@ycniuqton/devlens)
|
|
6
8
|
|
|
7
9
|
## Features
|
|
8
10
|
|
|
9
|
-
- **Real-time Git Diffs** —
|
|
10
|
-
- **Task Board** — Kanban
|
|
11
|
-
- **Claude Code Integration** — Auto-
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
11
|
+
- **Real-time Git Diffs** — Live syntax-highlighted diffs (unified or split), folder tree or flat view, file status badges (M/A/D/U/R), word wrap toggle
|
|
12
|
+
- **Task Board** — Kanban with Pending / In Progress / Completed / Archived columns, drag-and-drop, auto-archive after 1 hour
|
|
13
|
+
- **Claude Code Integration** — Auto-syncs `TaskCreate`/`TaskUpdate` from Claude Code via PostToolUse hooks. Captures rich context: user prompt, Claude's reasoning, files touched, completion summary
|
|
14
|
+
- **Rules Management** — Edit `.devlens/rules.md` from the dashboard. Toggle rules on/off, add presets, the default git-commit guard rule is protected
|
|
15
|
+
- **Commit Approval Flow** — Claude pauses for approval before committing; approve/reject from the dashboard
|
|
16
|
+
- **External Integrations** — Connect Jira / Linear to pull issues
|
|
17
|
+
- **Tunnel Support** — Cloudflare or ngrok for remote dashboard access
|
|
18
|
+
- **SQLite Storage** — Tasks stored in `.devlens/devlens.db`
|
|
19
|
+
- **Per-project Ports** — Each project gets a stable port derived from its path hash (range 4700-5700)
|
|
20
|
+
- **Slash Command** — Type `/devlens` inside Claude Code to see the dashboard URL
|
|
14
21
|
|
|
15
22
|
## Installation
|
|
16
23
|
|
|
24
|
+
### Global install (recommended)
|
|
25
|
+
|
|
17
26
|
```bash
|
|
18
|
-
npm install -g devlens
|
|
27
|
+
npm install -g @ycniuqton/devlens
|
|
19
28
|
```
|
|
20
29
|
|
|
21
|
-
|
|
30
|
+
### Without installing — use `npx`
|
|
31
|
+
|
|
32
|
+
> **Note:** the package is scoped, so you must use the `--package` form. Plain `npx devlens` will install an unrelated package with the same name.
|
|
22
33
|
|
|
23
34
|
```bash
|
|
24
|
-
|
|
35
|
+
npx --package=@ycniuqton/devlens -- devlens init
|
|
36
|
+
npx --package=@ycniuqton/devlens -- devlens start
|
|
25
37
|
```
|
|
26
38
|
|
|
27
39
|
## Quick Start
|
|
28
40
|
|
|
29
|
-
### 1.
|
|
41
|
+
### 1. Initialize in your project
|
|
30
42
|
|
|
31
43
|
```bash
|
|
32
|
-
|
|
44
|
+
cd /path/to/your/project
|
|
45
|
+
devlens init
|
|
33
46
|
```
|
|
34
47
|
|
|
35
|
-
This
|
|
48
|
+
This is a one-time setup that:
|
|
49
|
+
- Installs Claude Code hooks into `.claude/hooks/` (auto-start + task sync)
|
|
50
|
+
- Creates `.devlens/rules.md` with a default git-commit guard rule
|
|
51
|
+
- Adds a `## Devlens` block to `CLAUDE.md` so Claude reads your rules
|
|
52
|
+
- Creates a `/devlens` slash command skill
|
|
53
|
+
- Picks a stable port for this project (printed at the end)
|
|
36
54
|
|
|
37
|
-
|
|
55
|
+
After init, the dashboard auto-starts whenever you open a Claude Code session in this project.
|
|
38
56
|
|
|
39
|
-
|
|
57
|
+
### 2. Start the dashboard manually (optional)
|
|
40
58
|
|
|
41
59
|
```bash
|
|
42
|
-
devlens
|
|
60
|
+
devlens start
|
|
43
61
|
```
|
|
44
62
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
63
|
+
It will pick the same port `init` chose. Open your browser to the URL it prints.
|
|
64
|
+
|
|
65
|
+
### 3. Use the dashboard
|
|
66
|
+
|
|
67
|
+
| Tab | What it does |
|
|
68
|
+
|-----|-------------|
|
|
69
|
+
| **Diffs** | Live git diff viewer. Click a file to expand. Toggle split/unified, word wrap, folder/flat list view. |
|
|
70
|
+
| **Tasks** | Kanban board synced from Claude Code. Click a card to see context: user prompt, Claude's reasoning, files touched. |
|
|
71
|
+
| **Rules** | Toggle/add/remove rules in `.devlens/rules.md`. Approve commit requests when Claude pauses. |
|
|
72
|
+
| **Integrations** | Connect Jira / Linear. Enable Cloudflare or ngrok tunnel for remote access. |
|
|
48
73
|
|
|
49
|
-
###
|
|
74
|
+
### 4. Inside Claude Code
|
|
50
75
|
|
|
51
|
-
|
|
52
|
-
- **Tasks tab** — Manage tasks on a kanban board; view Claude's current todos and session history
|
|
53
|
-
- **Integrations tab** — Configure Jira or Linear to pull external issues
|
|
76
|
+
Type `/devlens` to see the dashboard URLs (local + network).
|
|
54
77
|
|
|
55
78
|
## CLI Reference
|
|
56
79
|
|
|
80
|
+
### `devlens init`
|
|
81
|
+
|
|
82
|
+
One-time setup for a project. Idempotent — safe to re-run.
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
devlens init [options]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
| Option | Default | Description |
|
|
89
|
+
|--------|---------|-------------|
|
|
90
|
+
| `-p, --port <number>` | (auto) | Override the auto-derived port |
|
|
91
|
+
| `-d, --dir <path>` | `cwd` | Project directory |
|
|
92
|
+
|
|
93
|
+
What gets created:
|
|
94
|
+
- `.claude/hooks/devlens-startup.sh` — auto-launches dashboard on session start
|
|
95
|
+
- `.claude/hooks/devlens-sync.sh` — syncs tasks via PostToolUse
|
|
96
|
+
- `.claude/settings.json` — registers `SessionStart` and `PostToolUse` hooks
|
|
97
|
+
- `.claude/skills/devlens/SKILL.md` — `/devlens` slash command
|
|
98
|
+
- `.devlens/rules.md` — default rules with protected git-commit guard
|
|
99
|
+
- `CLAUDE.md` — appended with `## Devlens\nRead and follow all rules in .devlens/rules.md`
|
|
100
|
+
- `.gitignore` — `.claude/hooks/` added if missing
|
|
101
|
+
|
|
57
102
|
### `devlens start`
|
|
58
103
|
|
|
59
104
|
Start the dashboard server.
|
|
@@ -64,32 +109,24 @@ devlens start [options]
|
|
|
64
109
|
|
|
65
110
|
| Option | Default | Description |
|
|
66
111
|
|--------|---------|-------------|
|
|
67
|
-
| `-p, --port <number>` |
|
|
112
|
+
| `-p, --port <number>` | (auto) | Port to listen on (default: derived from project path) |
|
|
68
113
|
| `--no-open` | — | Don't auto-open browser |
|
|
69
|
-
| `--tunnel` | — |
|
|
70
|
-
| `-d, --dir <path>` |
|
|
114
|
+
| `--tunnel` | — | Start Cloudflare tunnel for remote access |
|
|
115
|
+
| `-d, --dir <path>` | `cwd` | Project directory to analyze |
|
|
71
116
|
|
|
72
|
-
### `devlens
|
|
117
|
+
### `devlens status`
|
|
73
118
|
|
|
74
|
-
|
|
119
|
+
Show whether the dashboard is running and on which URLs.
|
|
75
120
|
|
|
76
121
|
```bash
|
|
77
|
-
devlens
|
|
122
|
+
devlens status
|
|
78
123
|
```
|
|
79
124
|
|
|
80
|
-
|
|
81
|
-
|--------|---------|-------------|
|
|
82
|
-
| `-p, --port <number>` | `4700` | Devlens port for hooks to target |
|
|
83
|
-
| `-d, --dir <path>` | Current directory | Project directory |
|
|
84
|
-
|
|
85
|
-
What it does:
|
|
86
|
-
1. Creates `.claude/hooks/devlens-startup.sh` and `.claude/hooks/devlens-sync.sh`
|
|
87
|
-
2. Updates `.claude/settings.json` with `SessionStart` and `PostToolUse` hooks
|
|
88
|
-
3. Adds `.claude/hooks/` to `.gitignore`
|
|
125
|
+
Returns local + network URLs, PID, and start time. Reads `.devlens/runtime.json` written by the running server.
|
|
89
126
|
|
|
90
127
|
### `devlens uninstall`
|
|
91
128
|
|
|
92
|
-
Remove
|
|
129
|
+
Remove all Devlens hooks/skills/rules from a project. Does **not** delete `.devlens/` data (tasks, rules).
|
|
93
130
|
|
|
94
131
|
```bash
|
|
95
132
|
devlens uninstall [options]
|
|
@@ -97,50 +134,118 @@ devlens uninstall [options]
|
|
|
97
134
|
|
|
98
135
|
| Option | Default | Description |
|
|
99
136
|
|--------|---------|-------------|
|
|
100
|
-
| `-d, --dir <path>` |
|
|
137
|
+
| `-d, --dir <path>` | `cwd` | Project directory |
|
|
138
|
+
|
|
139
|
+
## Project Layout (after init)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
your-project/
|
|
143
|
+
├── .claude/
|
|
144
|
+
│ ├── settings.json # Claude hooks config
|
|
145
|
+
│ ├── hooks/
|
|
146
|
+
│ │ ├── devlens-startup.sh # SessionStart → auto-launch dashboard
|
|
147
|
+
│ │ └── devlens-sync.sh # PostToolUse → sync tasks
|
|
148
|
+
│ └── skills/devlens/SKILL.md # /devlens slash command
|
|
149
|
+
├── .devlens/
|
|
150
|
+
│ ├── devlens.db # SQLite store (tasks, sessions)
|
|
151
|
+
│ ├── rules.md # Editable rules for Claude
|
|
152
|
+
│ ├── runtime.json # Active server PID/port (auto-managed)
|
|
153
|
+
│ ├── commit-pending.md # Commit waiting approval (auto-managed)
|
|
154
|
+
│ └── commit-approved.md # Approved commit signal (auto-managed)
|
|
155
|
+
└── CLAUDE.md # Devlens block telling Claude to read rules.md
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Rules Management
|
|
159
|
+
|
|
160
|
+
`.devlens/rules.md` is a plain markdown file. Active rules are `- text`, inactive rules are `#- text`. The Rules tab in the dashboard provides:
|
|
161
|
+
|
|
162
|
+
- **Toggle switches** — comment/uncomment rules without deleting them
|
|
163
|
+
- **Quick-add presets** — common rules with one click
|
|
164
|
+
- **Delete** — for non-protected rules
|
|
165
|
+
- **Protected default rule** — the git-commit guard cannot be deleted, only toggled
|
|
166
|
+
|
|
167
|
+
### Commit Approval Flow
|
|
168
|
+
|
|
169
|
+
When you have a "no commit without approval" rule active:
|
|
170
|
+
|
|
171
|
+
1. Claude wants to commit → instead, it writes a TodoWrite with `WAITING_APPROVAL: <commit message>`
|
|
172
|
+
2. Devlens detects this and shows a banner in the Rules tab
|
|
173
|
+
3. You click **Approve Commit** in the dashboard
|
|
174
|
+
4. Devlens writes `.devlens/commit-approved.md`
|
|
175
|
+
5. Claude proceeds with the commit
|
|
101
176
|
|
|
102
177
|
## Configuration
|
|
103
178
|
|
|
104
179
|
### Environment Variables
|
|
105
180
|
|
|
106
|
-
| Variable |
|
|
107
|
-
|
|
108
|
-
| `DEVLENS_PORT` |
|
|
181
|
+
| Variable | Description |
|
|
182
|
+
|----------|-------------|
|
|
183
|
+
| `DEVLENS_PORT` | Override the port used by the auto-start hook |
|
|
109
184
|
|
|
110
185
|
### Jira Integration
|
|
111
186
|
|
|
112
187
|
In the **Integrations** tab, configure:
|
|
113
|
-
- **
|
|
114
|
-
- **Email** —
|
|
115
|
-
- **API Token** — [Generate
|
|
116
|
-
- **Project Key** —
|
|
188
|
+
- **Base URL** — `https://yourteam.atlassian.net`
|
|
189
|
+
- **Email** — your Jira account email
|
|
190
|
+
- **API Token** — [Generate here](https://id.atlassian.com/manage-profile/security/api-tokens)
|
|
191
|
+
- **Project Key** — e.g., `PROJ`
|
|
117
192
|
|
|
118
193
|
### Linear Integration
|
|
119
194
|
|
|
120
195
|
In the **Integrations** tab, configure:
|
|
121
|
-
- **API Key** — [Generate
|
|
122
|
-
- **Team
|
|
196
|
+
- **API Key** — [Generate here](https://linear.app/settings/api)
|
|
197
|
+
- **Team ID** (optional) — filter issues by team
|
|
123
198
|
|
|
124
|
-
|
|
199
|
+
### Tunnel (remote access)
|
|
125
200
|
|
|
126
|
-
|
|
201
|
+
From the Integrations tab, click **Start Tunnel** for Cloudflare or ngrok. The tunnel URL appears in the dashboard. Either binary must be installed:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Cloudflare
|
|
205
|
+
brew install cloudflared # macOS
|
|
206
|
+
# https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
|
|
207
|
+
|
|
208
|
+
# ngrok
|
|
209
|
+
brew install ngrok # macOS
|
|
210
|
+
# https://ngrok.com/download
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## API Reference
|
|
214
|
+
|
|
215
|
+
REST endpoints (port varies per project — check `devlens status`):
|
|
127
216
|
|
|
128
217
|
| Endpoint | Method | Description |
|
|
129
218
|
|----------|--------|-------------|
|
|
130
|
-
| `/api/diff` | GET |
|
|
131
|
-
| `/api/status` | GET |
|
|
132
|
-
| `/api/log` | GET |
|
|
133
|
-
| `/api/tasks
|
|
134
|
-
| `/api/tasks` | POST | Create
|
|
135
|
-
| `/api/tasks/:id` | PUT | Update
|
|
136
|
-
| `/api/tasks/:id` | DELETE | Delete
|
|
219
|
+
| `/api/diff?filter=all\|staged\|unstaged` | GET | Unified diff + file list |
|
|
220
|
+
| `/api/status` | GET | Git file change status |
|
|
221
|
+
| `/api/log?limit=20` | GET | Recent commits |
|
|
222
|
+
| `/api/tasks?status=...` | GET | List tasks |
|
|
223
|
+
| `/api/tasks` | POST | Create task |
|
|
224
|
+
| `/api/tasks/:id` | PUT | Update task |
|
|
225
|
+
| `/api/tasks/:id` | DELETE | Delete task |
|
|
137
226
|
| `/api/tasks/sync` | POST | Webhook for Claude Code hook payloads |
|
|
138
|
-
| `/api/
|
|
139
|
-
| `/api/
|
|
140
|
-
| `/api/
|
|
141
|
-
| `/api/
|
|
227
|
+
| `/api/rules` | GET | List rules |
|
|
228
|
+
| `/api/rules` | POST | Add rule |
|
|
229
|
+
| `/api/rules/:index` | DELETE | Remove rule (rejects protected) |
|
|
230
|
+
| `/api/rules/:index/toggle` | PATCH | Toggle active/inactive |
|
|
231
|
+
| `/api/rules/commit-approval/status` | GET | Pending/approved commit state |
|
|
232
|
+
| `/api/rules/commit-approval/approve` | POST | Approve pending commit |
|
|
233
|
+
| `/api/rules/commit-approval/reject` | POST | Reject pending commit |
|
|
234
|
+
| `/api/integrations/status` | GET | Integration config + tunnel status |
|
|
235
|
+
| `/api/integrations/all` | GET | Merged Jira/Linear issues |
|
|
236
|
+
| `/api/integrations/tunnel/start` | POST | Start tunnel `{ provider: "cloudflare" \| "ngrok" }` |
|
|
237
|
+
| `/api/integrations/tunnel/stop` | POST | Stop tunnel |
|
|
142
238
|
|
|
143
|
-
|
|
239
|
+
WebSocket: `ws://localhost:<port>/ws` — broadcasts `diff-update`, `task-update`, `rules-update`, `commit-approval-update`.
|
|
240
|
+
|
|
241
|
+
## How Multi-Project Setup Works
|
|
242
|
+
|
|
243
|
+
You can run Devlens for **many projects on the same machine** without port collisions:
|
|
244
|
+
|
|
245
|
+
- Each project derives a stable port from `md5(projectPath) % 1000 + 4700`
|
|
246
|
+
- The auto-start hook detects if a server is already running on that port and reuses it
|
|
247
|
+
- Tasks for each project are isolated in `.devlens/devlens.db`
|
|
248
|
+
- Sessions filtered by `cwd` so the Tasks tab only shows the current project
|
|
144
249
|
|
|
145
250
|
## Development
|
|
146
251
|
|
|
@@ -152,13 +257,19 @@ npm run build
|
|
|
152
257
|
npm start
|
|
153
258
|
```
|
|
154
259
|
|
|
155
|
-
|
|
260
|
+
Watch mode:
|
|
156
261
|
|
|
157
262
|
```bash
|
|
158
|
-
npm run dev
|
|
159
|
-
node bin/devlens.js start --no-open
|
|
263
|
+
npm run dev # Recompile on changes
|
|
264
|
+
node bin/devlens.js start --no-open # Run from source
|
|
160
265
|
```
|
|
161
266
|
|
|
162
267
|
## License
|
|
163
268
|
|
|
164
|
-
MIT
|
|
269
|
+
MIT — see [LICENSE](LICENSE)
|
|
270
|
+
|
|
271
|
+
## Links
|
|
272
|
+
|
|
273
|
+
- **npm**: https://www.npmjs.com/package/@ycniuqton/devlens
|
|
274
|
+
- **GitHub**: https://github.com/ycniuqton/Devlens
|
|
275
|
+
- **Issues**: https://github.com/ycniuqton/Devlens/issues
|
package/dist/init.js
CHANGED
|
@@ -36,14 +36,26 @@ DEVLENS_PORT=__PORT__
|
|
|
36
36
|
PROJECT_DIR="\${CLAUDE_PROJECT_DIR:-.}"
|
|
37
37
|
RUNTIME_FILE="\$PROJECT_DIR/.devlens/runtime.json"
|
|
38
38
|
|
|
39
|
-
#
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
# Build the URL list (always available — port is deterministic)
|
|
40
|
+
LOCAL_URL="http://localhost:\$DEVLENS_PORT"
|
|
41
|
+
NETWORK_URLS=""
|
|
42
|
+
for ip in \$(hostname -I 2>/dev/null || true); do
|
|
43
|
+
case "\$ip" in
|
|
44
|
+
127.*|::1|fe80*|*:*) continue ;;
|
|
45
|
+
*) NETWORK_URLS="\$NETWORK_URLS http://\$ip:\$DEVLENS_PORT" ;;
|
|
46
|
+
esac
|
|
47
|
+
done
|
|
48
|
+
|
|
49
|
+
emit_context() {
|
|
50
|
+
local status="\$1"
|
|
51
|
+
local msg="DEVLENS_DASHBOARD_URL: \$LOCAL_URL (network:\$NETWORK_URLS) — status: \$status. When the user asks about devlens dashboard URL/link/address, answer with this URL directly without running any command."
|
|
52
|
+
echo "{\\"additionalContext\\":\\"\$msg\\"}"
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
# Already running?
|
|
56
|
+
if [ -f "\$RUNTIME_FILE" ] && curl -s -o /dev/null -w "%{http_code}" "\$LOCAL_URL" 2>/dev/null | grep -q "200"; then
|
|
57
|
+
emit_context "running"
|
|
58
|
+
exit 0
|
|
47
59
|
fi
|
|
48
60
|
|
|
49
61
|
# Find binary
|
|
@@ -51,7 +63,11 @@ BIN=""
|
|
|
51
63
|
command -v devlens &>/dev/null && BIN="devlens"
|
|
52
64
|
[ -z "\$BIN" ] && [ -f "\$PROJECT_DIR/dist/index.js" ] && BIN="node \$PROJECT_DIR/dist/index.js"
|
|
53
65
|
[ -z "\$BIN" ] && [ -f "\$PROJECT_DIR/node_modules/.bin/devlens" ] && BIN="\$PROJECT_DIR/node_modules/.bin/devlens"
|
|
54
|
-
|
|
66
|
+
|
|
67
|
+
if [ -z "\$BIN" ]; then
|
|
68
|
+
emit_context "binary-not-found"
|
|
69
|
+
exit 0
|
|
70
|
+
fi
|
|
55
71
|
|
|
56
72
|
# Start in background
|
|
57
73
|
nohup \$BIN start --dir "\$PROJECT_DIR" --port \$DEVLENS_PORT --no-open > /tmp/devlens-\$DEVLENS_PORT.log 2>&1 &
|
|
@@ -60,10 +76,12 @@ nohup \$BIN start --dir "\$PROJECT_DIR" --port \$DEVLENS_PORT --no-open > /tmp/d
|
|
|
60
76
|
for i in 1 2 3 4 5; do
|
|
61
77
|
sleep 1
|
|
62
78
|
if [ -f "\$RUNTIME_FILE" ]; then
|
|
63
|
-
|
|
79
|
+
emit_context "started"
|
|
64
80
|
exit 0
|
|
65
81
|
fi
|
|
66
82
|
done
|
|
83
|
+
|
|
84
|
+
emit_context "starting-in-background"
|
|
67
85
|
exit 0
|
|
68
86
|
`;
|
|
69
87
|
function initDevlens(projectDir, port) {
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":";;;;;AAKA,kCAGC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycniuqton/devlens",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"diff2html": "^3.4.47",
|
|
36
36
|
"express": "^4.18.2",
|
|
37
37
|
"open": "^10.1.0",
|
|
38
|
-
"simple-git": "
|
|
38
|
+
"simple-git": "~3.33.0",
|
|
39
39
|
"ws": "^8.16.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|