rivet-design 0.1.2 β 0.1.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/README.md +21 -100
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -19
- package/dist/index.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -1,112 +1,33 @@
|
|
|
1
|
-
# Rivet
|
|
1
|
+
# Rivet
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A design tool that helps you change web applications without coding. Instead, prompt and use Rivet's visual tools to make changes, and then publish them to your repository as a pull request.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- π **Repository Preview**: Clone and preview any public GitHub repository
|
|
8
|
-
- π± **Responsive Interface**: Clean, modern UI with sidebar navigation
|
|
9
|
-
- π **Live Development**: Automatic dev server startup for previewed projects
|
|
10
|
-
- ποΈ **Project Management**: Track multiple projects with status indicators
|
|
11
|
-
- π **Hot Reload Ready**: Built-in support for framework hot reloading
|
|
12
|
-
|
|
13
|
-
## Architecture
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
rivet/
|
|
17
|
-
βββ client/ # Next.js frontend (port 3000)
|
|
18
|
-
βββ backend/ # Express.js API (port 4000)
|
|
19
|
-
βββ projects/ # Cloned repositories
|
|
20
|
-
βββ setup.sh # Quick setup script
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Quick Start
|
|
5
|
+
### Quickstart:
|
|
24
6
|
|
|
25
7
|
```bash
|
|
26
|
-
|
|
27
|
-
./setup.sh
|
|
28
|
-
|
|
29
|
-
# Start development
|
|
30
|
-
yarn dev
|
|
31
|
-
|
|
32
|
-
# Visit http://localhost:3000
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Manual Setup
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# Install dependencies
|
|
39
|
-
yarn install:all
|
|
40
|
-
|
|
41
|
-
# Start services
|
|
42
|
-
yarn dev:frontend # http://localhost:3000
|
|
43
|
-
yarn dev:backend # http://localhost:4000
|
|
44
|
-
|
|
45
|
-
# Or both together
|
|
46
|
-
yarn dev
|
|
8
|
+
npm install -g rivet-design
|
|
47
9
|
```
|
|
48
10
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
2. **Add a Repository**: Enter a GitHub URL in the sidebar:
|
|
54
|
-
```
|
|
55
|
-
https://github.com/vercel/next.js/tree/canary/examples/hello-world
|
|
56
|
-
https://github.com/facebook/create-react-app
|
|
57
|
-
https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
3. **Create Preview**: Click "Create Preview" - this will:
|
|
61
|
-
- Clone the repository
|
|
62
|
-
- Install dependencies (npm/yarn/pnpm auto-detected)
|
|
63
|
-
- Start the development server
|
|
64
|
-
- Display the live preview in an iframe
|
|
65
|
-
|
|
66
|
-
4. **Manage Projects**: View all your projects in the sidebar with status indicators
|
|
67
|
-
|
|
68
|
-
## API Endpoints
|
|
69
|
-
|
|
70
|
-
- `POST /api/create-preview` - Create a new project preview
|
|
71
|
-
- `GET /api/projects` - List all projects
|
|
72
|
-
- `GET /api/projects/:id` - Get specific project
|
|
73
|
-
- `DELETE /api/projects/:id` - Delete project and cleanup
|
|
74
|
-
|
|
75
|
-
## Supported Frameworks
|
|
76
|
-
|
|
77
|
-
Currently supports any project with standard npm scripts:
|
|
78
|
-
- Next.js
|
|
79
|
-
- React (Create React App, Vite)
|
|
80
|
-
- Vue.js
|
|
81
|
-
- Svelte
|
|
82
|
-
- Express.js
|
|
83
|
-
- And many more!
|
|
84
|
-
|
|
85
|
-
## Development
|
|
11
|
+
- Navigate to your project repo
|
|
12
|
+
- Start your project's local development server
|
|
13
|
+
- Run `rivet` in your project directory which will spin up an interactive frontend you can use to make changes
|
|
86
14
|
|
|
87
15
|
```bash
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
# Backend only
|
|
92
|
-
cd backend && yarn dev
|
|
93
|
-
|
|
94
|
-
# Type checking
|
|
95
|
-
cd backend && yarn typecheck
|
|
96
|
-
cd client && yarn build # Next.js type checks on build
|
|
16
|
+
cd my-project-repo
|
|
17
|
+
rivet
|
|
97
18
|
```
|
|
98
19
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
- [x] Repository cloning and preview
|
|
102
|
-
- [x] Project management interface
|
|
103
|
-
- [x] Multiple framework support
|
|
104
|
-
- [ ] Element selection system
|
|
105
|
-
- [ ] Visual code editing
|
|
106
|
-
- [ ] LLM-powered code generation
|
|
107
|
-
- [ ] Real-time collaboration
|
|
108
|
-
- [ ] Deployment integration
|
|
20
|
+
### Configuration options
|
|
109
21
|
|
|
110
|
-
|
|
22
|
+
Run `rivet --help` to see the full list of available flags. Some especially useful options are:
|
|
111
23
|
|
|
112
|
-
|
|
24
|
+
- **`--user-port`**
|
|
25
|
+
- The port where your dev server is running (default: `3000`).
|
|
26
|
+
- Rivet automatically detects common ports for frameworks like React, Vite, and Next.js, but you can override this if your setup uses a different port.
|
|
27
|
+
- **`--root-html-path`**
|
|
28
|
+
- Rivet injects a script into your root HTML layout so it can communicate with your local development server.
|
|
29
|
+
- When git tracking is enabled, this injected script is automatically cleaned up before commitsβno need to worry about it leaking into production.
|
|
30
|
+
- If Rivet can't automatically detect the layout file for your framework, you can manually specify it with `--root-html-path`.
|
|
31
|
+
- **`--no-git-tracking`**
|
|
32
|
+
- Git tracking defaults to enabled. Rivet creates a branch and commits successful changes automatically.
|
|
33
|
+
- To manage git operations yourself, use `--no-git-tracking` to disable automatic git operations.
|
package/dist/index.d.ts
CHANGED
|
@@ -3,9 +3,8 @@ export type CLIOptions = {
|
|
|
3
3
|
userPort?: number;
|
|
4
4
|
help?: boolean;
|
|
5
5
|
version?: boolean;
|
|
6
|
-
noBrowser?: boolean;
|
|
7
6
|
debug?: boolean;
|
|
8
|
-
|
|
7
|
+
rootHtmlPath?: string;
|
|
9
8
|
trackWithGit?: boolean;
|
|
10
9
|
};
|
|
11
10
|
export declare const main: (args?: string[]) => Promise<void>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,IAAI,GAAU,OAAM,MAAM,EAA0B,KAAG,OAAO,CAAC,IAAI,CAmG/E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -42,12 +42,15 @@ const index_core_1 = require("./index-core");
|
|
|
42
42
|
const open_1 = __importDefault(require("open"));
|
|
43
43
|
const path_1 = __importDefault(require("path"));
|
|
44
44
|
const dotenv = __importStar(require("dotenv"));
|
|
45
|
+
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
45
46
|
const fs_1 = __importDefault(require("fs"));
|
|
46
47
|
const log = (0, index_core_1.createLogger)('RivetCLI');
|
|
47
48
|
const main = async (args = process.argv.slice(2)) => {
|
|
48
49
|
try {
|
|
49
50
|
// Parse basic CLI arguments first
|
|
50
51
|
const options = parseArgs(args);
|
|
52
|
+
// Check for updates (non-blocking)
|
|
53
|
+
await checkForUpdates();
|
|
51
54
|
// Load Rivet's own environment variables from its .env.local file
|
|
52
55
|
const rivetEnvPath = path_1.default.resolve(__dirname, '../.env.local');
|
|
53
56
|
if (fs_1.default.existsSync(rivetEnvPath)) {
|
|
@@ -97,19 +100,17 @@ const main = async (args = process.argv.slice(2)) => {
|
|
|
97
100
|
log.debug(`π‘ Connecting to project dev server on port ${userDevServerPort}${options.userPort ? ' (user-specified)' : ' (detected)'}`);
|
|
98
101
|
// Inject selection script into user's project
|
|
99
102
|
const scriptInjection = new index_core_1.ScriptInjectionService();
|
|
100
|
-
await scriptInjection.injectScript(process.cwd(), project.framework, options.
|
|
103
|
+
await scriptInjection.injectScript(process.cwd(), project.framework, options.rootHtmlPath, rivetPort);
|
|
101
104
|
await (0, server_1.startServer)({
|
|
102
105
|
port: rivetPort,
|
|
103
106
|
userPort: userDevServerPort,
|
|
104
107
|
trackWithGit: options.trackWithGit ?? true,
|
|
105
108
|
framework: project.framework,
|
|
106
|
-
|
|
109
|
+
rootHtmlPath: options.rootHtmlPath
|
|
107
110
|
});
|
|
108
111
|
// Open browser automatically unless disabled
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
log.info('π Opened Rivet in your browser');
|
|
112
|
-
}
|
|
112
|
+
await (0, open_1.default)(`http://localhost:${rivetPort}`);
|
|
113
|
+
log.info('π Opened Rivet in your browser');
|
|
113
114
|
log.info(`β
Rivet connected to your ${project.framework} project`);
|
|
114
115
|
log.info('Press Ctrl+C to stop');
|
|
115
116
|
// Run forever until interrupted
|
|
@@ -132,6 +133,30 @@ const main = async (args = process.argv.slice(2)) => {
|
|
|
132
133
|
}
|
|
133
134
|
};
|
|
134
135
|
exports.main = main;
|
|
136
|
+
const checkForUpdates = async () => {
|
|
137
|
+
try {
|
|
138
|
+
const packageJsonPath = path_1.default.join(__dirname, '../package.json');
|
|
139
|
+
const packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf8'));
|
|
140
|
+
// Create update notifier - check every startup
|
|
141
|
+
const notifier = (0, update_notifier_1.default)({
|
|
142
|
+
pkg: packageJson,
|
|
143
|
+
updateCheckInterval: 0, // Always check
|
|
144
|
+
shouldNotifyInNpmScript: false
|
|
145
|
+
});
|
|
146
|
+
// Always show update notification if available
|
|
147
|
+
if (notifier.update) {
|
|
148
|
+
notifier.notify({
|
|
149
|
+
message: 'Update available {currentVersion} β {latestVersion}\nRun {updateCommand} to update',
|
|
150
|
+
isGlobal: true,
|
|
151
|
+
defer: false
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
// Silently fail - don't interrupt CLI if update check fails
|
|
157
|
+
log.debug('Update check failed:', error);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
135
160
|
const parseArgs = (args) => {
|
|
136
161
|
const options = {};
|
|
137
162
|
for (let i = 0; i < args.length; i++) {
|
|
@@ -158,21 +183,18 @@ const parseArgs = (args) => {
|
|
|
158
183
|
options.userPort = Number(userPortValue);
|
|
159
184
|
}
|
|
160
185
|
break;
|
|
161
|
-
case '--no-browser':
|
|
162
|
-
options.noBrowser = true;
|
|
163
|
-
break;
|
|
164
186
|
case '-d':
|
|
165
187
|
case '--debug':
|
|
166
188
|
options.debug = true;
|
|
167
189
|
break;
|
|
168
|
-
case '--
|
|
169
|
-
const
|
|
170
|
-
if (
|
|
171
|
-
options.
|
|
190
|
+
case '--root-html-path':
|
|
191
|
+
const rootHtmlPathValue = args[++i];
|
|
192
|
+
if (rootHtmlPathValue) {
|
|
193
|
+
options.rootHtmlPath = rootHtmlPathValue;
|
|
172
194
|
}
|
|
173
195
|
break;
|
|
174
|
-
case '--
|
|
175
|
-
options.trackWithGit =
|
|
196
|
+
case '--no-git-tracking':
|
|
197
|
+
options.trackWithGit = false;
|
|
176
198
|
break;
|
|
177
199
|
}
|
|
178
200
|
}
|
|
@@ -191,15 +213,13 @@ OPTIONS:
|
|
|
191
213
|
-p, --port PORT Port for Rivet server (default: 4000)
|
|
192
214
|
--user-port PORT Port where your dev server is running (default: 3000)
|
|
193
215
|
-d, --debug Enable debug logging
|
|
194
|
-
--
|
|
195
|
-
--
|
|
196
|
-
--track-with-git Enable git tracking (creates branches and commits changes)
|
|
216
|
+
--root-html-path Custom path for the project's root HTML file for script injection (e.g., apps/web/app/layout.tsx)
|
|
217
|
+
--no-git-tracking Disable git tracking (default: enabled)
|
|
197
218
|
|
|
198
219
|
EXAMPLES:
|
|
199
220
|
rivet # Start Rivet on port 4000, connect to dev server on port 3000
|
|
200
221
|
rivet -p 8080 # Start Rivet on port 8080
|
|
201
222
|
rivet --user-port 5173 # Connect to Vite dev server on port 5173
|
|
202
|
-
rivet --no-browser # Start without opening browser
|
|
203
223
|
|
|
204
224
|
Make sure your dev server is running first (npm run dev, yarn dev, etc.)
|
|
205
225
|
`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAuC;AACvC,6CAA6F;AAC7F,gDAAwB;AACxB,gDAAwB;AACxB,+CAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -17,7 +17,7 @@ exports.DIST_UI_PATH = path_1.default.join(__dirname, '../src/ui/dist');
|
|
|
17
17
|
const DEFAULT_PORT = 4000;
|
|
18
18
|
const DEFAULT_USER_PORT = 3000;
|
|
19
19
|
const startServer = async (options) => {
|
|
20
|
-
const { port = DEFAULT_PORT, userPort = DEFAULT_USER_PORT, trackWithGit = false, framework = 'nextjs',
|
|
20
|
+
const { port = DEFAULT_PORT, userPort = DEFAULT_USER_PORT, trackWithGit = false, framework = 'nextjs', rootHtmlPath, } = options;
|
|
21
21
|
const sessionService = trackWithGit
|
|
22
22
|
? new index_core_1.SessionService(process.cwd(), true)
|
|
23
23
|
: null;
|
|
@@ -33,7 +33,7 @@ const startServer = async (options) => {
|
|
|
33
33
|
const cleanup = async () => {
|
|
34
34
|
log.info('Server shutting down, cleaning up session...');
|
|
35
35
|
try {
|
|
36
|
-
await sessionService.cleanupSession(framework,
|
|
36
|
+
await sessionService.cleanupSession(framework, rootHtmlPath);
|
|
37
37
|
}
|
|
38
38
|
catch (error) {
|
|
39
39
|
log.error('Failed to cleanup session:', error);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,6CAA4D;AAE5D,kDAA2D;AAC3D,oDAA4D;AAC5D,0DAAkE;AAClE,sCAA+C;AAG/C,MAAM,GAAG,GAAG,IAAA,yBAAY,EAAC,aAAa,CAAC,CAAC;AAE3B,QAAA,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAMnE,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAExB,MAAM,WAAW,GAAG,KAAK,EAAE,OAAsB,EAAiB,EAAE;IACzE,MAAM,EACJ,IAAI,GAAG,YAAY,EACnB,QAAQ,GAAG,iBAAiB,EAC5B,YAAY,GAAG,KAAK,EACpB,SAAS,GAAG,QAAQ,EACpB,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rivet-design",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Local visual web development tool with AI-powered code modification",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
|
-
"bin":
|
|
6
|
+
"bin": {
|
|
7
|
+
"rivet": "./bin/rivet.js"
|
|
8
|
+
},
|
|
7
9
|
"scripts": {
|
|
8
10
|
"build": "tsc && npm run build:ui && npm run copy:scripts && npm run build:bin",
|
|
9
11
|
"build:ui": "cd src/ui && vite build",
|
|
@@ -38,6 +40,7 @@
|
|
|
38
40
|
"react-dom": "^18.2.0",
|
|
39
41
|
"simple-git": "^3.19.1",
|
|
40
42
|
"tailwind-merge": "^3.3.1",
|
|
43
|
+
"update-notifier": "^7.0.0",
|
|
41
44
|
"ws": "^8.13.0",
|
|
42
45
|
"zod": "^4.0.17"
|
|
43
46
|
},
|
|
@@ -47,6 +50,7 @@
|
|
|
47
50
|
"@types/node": "^20.4.5",
|
|
48
51
|
"@types/react": "^18.2.43",
|
|
49
52
|
"@types/react-dom": "^18.2.17",
|
|
53
|
+
"@types/update-notifier": "^6.0.8",
|
|
50
54
|
"@types/ws": "^8.5.5",
|
|
51
55
|
"@vitejs/plugin-react": "^4.2.1",
|
|
52
56
|
"autoprefixer": "^10.4.16",
|