devsurface 0.4.0 → 0.6.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 +21 -0
- package/README.md +78 -8
- package/action/dist/index.js +28 -0
- package/dist/cli/index.js +795 -139
- package/dist/cli/index.js.map +1 -1
- package/package.json +21 -2
- package/src/web/dist/assets/index-BJNqXAsU.js +10 -0
- package/src/web/dist/assets/{index-Bj8suDpq.css → index-Cmz0HGAE.css} +1 -1
- package/src/web/dist/index.html +2 -2
- package/src/web/dist/assets/index-BO8glxtu.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
- Added guided onboarding with a setup readiness score (0–100%) computed from scan and doctor results.
|
|
6
|
+
- Added `devsurface onboard` CLI command that prints a colored checklist of setup steps with done/todo/manual status.
|
|
7
|
+
- Added `/api/onboarding` endpoint (and `/api/workspaces/:id/onboarding` for hub mode) returning the full onboarding plan.
|
|
8
|
+
- Added Onboarding tab in the dashboard with progress bar, per-step actions (install deps, copy `.env`, run scripts, open docs), and a compact banner on the overview when the project is not yet ready.
|
|
9
|
+
- Added `setupGuide` (or `setup_guide`) field in `devsurface.config.json` for maintainers to embed ordered setup instructions (max 24 steps, 200 chars each).
|
|
10
|
+
- Added Python, Go, and Java language support to the onboarding plan; install step is skipped for non-Node projects.
|
|
11
|
+
- Hardened hub workspace registry file permissions to `0o600`.
|
|
12
|
+
- Added a startup warning when `DEVSURFACE_WORKSPACE_ROOTS` is unset in container mode.
|
|
13
|
+
- Shifted keyboard shortcuts: 2=Onboarding, 3=Scripts, 8=Logs (previously 7).
|
|
14
|
+
|
|
15
|
+
## 0.5.0
|
|
16
|
+
|
|
17
|
+
- Added framework presets for Next.js, Vite, Express, Fastify, NestJS, Remix, and Prisma.
|
|
18
|
+
- Added detected preset commands and ports to the dashboard and command API.
|
|
19
|
+
- Added Python project detection for `requirements.txt`, `pyproject.toml`, and `Pipfile`, including FastAPI/Uvicorn, Flask, and Django commands.
|
|
20
|
+
- Added Go project detection from `go.mod`, with run, build, and test commands.
|
|
21
|
+
- Added Java project detection from Maven and Gradle build files, with build and test commands.
|
|
22
|
+
- Updated doctor checks so detected Python, Go, and Java projects are not treated as broken Node.js projects.
|
|
23
|
+
|
|
3
24
|
## 0.4.0
|
|
4
25
|
|
|
5
26
|
- Added multi-workspace Hub mode: one DevSurface instance serves multiple project
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
<h1>DevSurface</h1>
|
|
8
8
|
|
|
9
|
-
<p><strong>
|
|
9
|
+
<p><strong>Local developer dashboard for Node.js repositories.</strong></p>
|
|
10
10
|
|
|
11
11
|
<p>
|
|
12
12
|
<a href="#quick-start">Quick Start</a>
|
|
@@ -22,19 +22,30 @@
|
|
|
22
22
|
<a href="https://github.com/mrfandu1/devsurface">
|
|
23
23
|
<img alt="DevSurface ready" src="docs/devsurface-badge.svg">
|
|
24
24
|
</a>
|
|
25
|
+
<a href="https://www.npmjs.com/package/devsurface">
|
|
26
|
+
<img alt="npm version" src="https://img.shields.io/npm/v/devsurface.svg">
|
|
27
|
+
</a>
|
|
28
|
+
<a href="https://www.npmjs.com/package/devsurface">
|
|
29
|
+
<img alt="npm downloads" src="https://img.shields.io/npm/dm/devsurface.svg">
|
|
30
|
+
</a>
|
|
31
|
+
<a href="https://github.com/mrfandu1/devsurface/stargazers">
|
|
32
|
+
<img alt="GitHub stars" src="https://img.shields.io/github/stars/mrfandu1/devsurface?style=flat">
|
|
33
|
+
</a>
|
|
25
34
|
<a href="LICENSE">
|
|
26
|
-
<img alt="License: MIT" src="https://img.shields.io/
|
|
35
|
+
<img alt="License: MIT" src="https://img.shields.io/github/license/mrfandu1/devsurface">
|
|
27
36
|
</a>
|
|
28
37
|
<img alt="Built with TypeScript" src="https://img.shields.io/badge/Built%20with-TypeScript-3178c6">
|
|
29
38
|
</p>
|
|
30
39
|
|
|
31
40
|
</div>
|
|
32
41
|
|
|
33
|
-
DevSurface
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
DevSurface is a zero-config CLI and local browser dashboard for understanding,
|
|
43
|
+
configuring, and running unfamiliar repositories. It detects Node.js package scripts,
|
|
44
|
+
Python, Go, and Java project commands, environment files, occupied ports, Docker
|
|
45
|
+
Compose services, frameworks, live command logs, repo health checks, and
|
|
46
|
+
multi-workspace projects.
|
|
36
47
|
|
|
37
|
-
No config file is required.
|
|
48
|
+
No global install, account, cloud service, or config file is required.
|
|
38
49
|
|
|
39
50
|
```bash
|
|
40
51
|
npx devsurface
|
|
@@ -64,6 +75,36 @@ DevSurface is local-first:
|
|
|
64
75
|
- `.env` values are never displayed.
|
|
65
76
|
- Commands are shown before they run.
|
|
66
77
|
|
|
78
|
+
## Use Cases
|
|
79
|
+
|
|
80
|
+
DevSurface is useful when you need to:
|
|
81
|
+
|
|
82
|
+
- Onboard contributors to an unfamiliar Node.js repository.
|
|
83
|
+
- Explore available npm, pnpm, Yarn, or Bun scripts.
|
|
84
|
+
- Check missing environment variables before starting a project.
|
|
85
|
+
- Detect local port conflicts.
|
|
86
|
+
- View and control Docker Compose services.
|
|
87
|
+
- Run development commands from a browser dashboard.
|
|
88
|
+
- Check repository onboarding health in GitHub Actions.
|
|
89
|
+
- Manage multiple local project workspaces.
|
|
90
|
+
|
|
91
|
+
## Supported Frameworks and Tools
|
|
92
|
+
|
|
93
|
+
DevSurface detects projects using:
|
|
94
|
+
|
|
95
|
+
- Next.js
|
|
96
|
+
- Vite
|
|
97
|
+
- Express
|
|
98
|
+
- Fastify
|
|
99
|
+
- NestJS
|
|
100
|
+
- Remix
|
|
101
|
+
- Prisma
|
|
102
|
+
- Python: FastAPI/Uvicorn, Flask, Django
|
|
103
|
+
- Go modules
|
|
104
|
+
- Java: Maven and Gradle
|
|
105
|
+
- Docker Compose
|
|
106
|
+
- npm, pnpm, Yarn, and Bun
|
|
107
|
+
|
|
67
108
|
## How It Compares
|
|
68
109
|
|
|
69
110
|
| Tool | What it does | Where DevSurface is different |
|
|
@@ -287,14 +328,43 @@ DevSurface is designed for local development.
|
|
|
287
328
|
|
|
288
329
|
- Local dashboard servers bind to loopback hosts.
|
|
289
330
|
- Container deployments use `DEVSURFACE_CONTAINER=true`.
|
|
290
|
-
- Workspace registration can be limited with `DEVSURFACE_WORKSPACE_ROOTS`.
|
|
331
|
+
- Workspace registration can be limited with `DEVSURFACE_WORKSPACE_ROOTS`. In container
|
|
332
|
+
or shared-host deployments, set this to restrict which directories the hub will accept;
|
|
333
|
+
on a single-user laptop it is optional and DevSurface starts with no extra config.
|
|
291
334
|
- `.env` values are never returned by scanners, API routes, CLI output, or UI panels.
|
|
292
335
|
- Dashboard command runs show the exact command string first.
|
|
293
336
|
- Docker service start and stop actions show the exact Compose command before running.
|
|
294
337
|
- Destructive-looking configured commands, such as `rm -rf`, `docker volume rm`,
|
|
295
|
-
database drops, and `git clean -fd`, are visibly marked before execution.
|
|
338
|
+
database drops, and `git clean -fd`, are visibly marked before execution. This list is a
|
|
339
|
+
helpful warning, not a sandbox: it flags common footguns for confirmation but does not
|
|
340
|
+
attempt to detect every dangerous command. Treat package scripts as code that runs as you.
|
|
296
341
|
- Child processes started by DevSurface are cleaned up when the dashboard exits.
|
|
297
342
|
|
|
343
|
+
## FAQ
|
|
344
|
+
|
|
345
|
+
### What is DevSurface?
|
|
346
|
+
|
|
347
|
+
DevSurface is a local developer dashboard for understanding, configuring, and running
|
|
348
|
+
Node.js repositories.
|
|
349
|
+
|
|
350
|
+
### Can DevSurface run npm scripts from a browser?
|
|
351
|
+
|
|
352
|
+
Yes. DevSurface detects `package.json` scripts and lets you run them while viewing
|
|
353
|
+
live logs and exit status.
|
|
354
|
+
|
|
355
|
+
### Does DevSurface display .env values?
|
|
356
|
+
|
|
357
|
+
No. DevSurface checks whether environment keys exist, but never displays their values.
|
|
358
|
+
|
|
359
|
+
### Does DevSurface require configuration?
|
|
360
|
+
|
|
361
|
+
No. It works automatically, with an optional `devsurface.config.json` file for richer
|
|
362
|
+
commands, groups, ports, env paths, and docs links.
|
|
363
|
+
|
|
364
|
+
### Does DevSurface support Docker Compose?
|
|
365
|
+
|
|
366
|
+
Yes. It detects Compose services and provides service status, controls, and recent logs.
|
|
367
|
+
|
|
298
368
|
## Examples
|
|
299
369
|
|
|
300
370
|
This repository includes two sample projects:
|
package/action/dist/index.js
CHANGED
|
@@ -68,6 +68,33 @@ function toGroups(value, warnings) {
|
|
|
68
68
|
}
|
|
69
69
|
return groups;
|
|
70
70
|
}
|
|
71
|
+
var MAX_SETUP_GUIDE_STEPS = 24;
|
|
72
|
+
var MAX_SETUP_GUIDE_STEP_LENGTH = 200;
|
|
73
|
+
function toSetupGuide(value, warnings) {
|
|
74
|
+
if (value === void 0) {
|
|
75
|
+
return void 0;
|
|
76
|
+
}
|
|
77
|
+
if (!Array.isArray(value)) {
|
|
78
|
+
warnings.push("setupGuide must be an array of strings.");
|
|
79
|
+
return void 0;
|
|
80
|
+
}
|
|
81
|
+
const steps = [];
|
|
82
|
+
for (const entry of value) {
|
|
83
|
+
if (typeof entry !== "string") {
|
|
84
|
+
warnings.push("setupGuide entries must be strings.");
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const trimmed = entry.trim();
|
|
88
|
+
if (trimmed.length === 0) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
steps.push(trimmed.slice(0, MAX_SETUP_GUIDE_STEP_LENGTH));
|
|
92
|
+
}
|
|
93
|
+
if (steps.length > MAX_SETUP_GUIDE_STEPS) {
|
|
94
|
+
warnings.push(`setupGuide may contain at most ${MAX_SETUP_GUIDE_STEPS} steps.`);
|
|
95
|
+
}
|
|
96
|
+
return steps.slice(0, MAX_SETUP_GUIDE_STEPS);
|
|
97
|
+
}
|
|
71
98
|
function toPorts(value, warnings) {
|
|
72
99
|
if (value === void 0) {
|
|
73
100
|
return void 0;
|
|
@@ -122,6 +149,7 @@ function validateConfig(raw) {
|
|
|
122
149
|
ports: toPorts(raw.ports, warnings),
|
|
123
150
|
env,
|
|
124
151
|
services,
|
|
152
|
+
setupGuide: toSetupGuide(raw.setupGuide ?? raw.setup_guide, warnings),
|
|
125
153
|
docs
|
|
126
154
|
},
|
|
127
155
|
warnings
|