nivii 0.3.1 → 0.3.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 +142 -215
- package/dist/cli.js +1 -1
- package/dist/dist/cli.d.ts +3 -0
- package/dist/dist/cli.d.ts.map +1 -0
- package/dist/dist/cli.js +144 -0
- package/dist/dist/cli.js.map +1 -0
- package/dist/dist/commands/config.d.ts +2 -0
- package/dist/dist/commands/config.d.ts.map +1 -0
- package/dist/dist/commands/config.js +32 -0
- package/dist/dist/commands/config.js.map +1 -0
- package/dist/dist/commands/fullstack.d.ts +12 -0
- package/dist/dist/commands/fullstack.d.ts.map +1 -0
- package/dist/dist/commands/fullstack.js +173 -0
- package/dist/dist/commands/fullstack.js.map +1 -0
- package/dist/dist/commands/share.d.ts +18 -0
- package/dist/dist/commands/share.d.ts.map +1 -0
- package/dist/dist/commands/share.js +125 -0
- package/dist/dist/commands/share.js.map +1 -0
- package/dist/dist/commands/whoami.d.ts +2 -0
- package/dist/dist/commands/whoami.d.ts.map +1 -0
- package/dist/dist/commands/whoami.js +17 -0
- package/dist/dist/commands/whoami.js.map +1 -0
- package/dist/dist/core/analytics.d.ts +11 -0
- package/dist/dist/core/analytics.d.ts.map +1 -0
- package/dist/dist/core/analytics.js +47 -0
- package/dist/dist/core/analytics.js.map +1 -0
- package/dist/dist/core/backend.d.ts +26 -0
- package/dist/dist/core/backend.d.ts.map +1 -0
- package/dist/dist/core/backend.js +185 -0
- package/dist/dist/core/backend.js.map +1 -0
- package/dist/dist/core/build.d.ts +11 -0
- package/dist/dist/core/build.d.ts.map +1 -0
- package/dist/dist/core/build.js +34 -0
- package/dist/dist/core/build.js.map +1 -0
- package/dist/dist/core/detect.d.ts +12 -0
- package/dist/dist/core/detect.d.ts.map +1 -0
- package/dist/dist/core/detect.js +122 -0
- package/dist/dist/core/detect.js.map +1 -0
- package/dist/dist/core/env.d.ts +27 -0
- package/dist/dist/core/env.d.ts.map +1 -0
- package/dist/dist/core/env.js +164 -0
- package/dist/dist/core/env.js.map +1 -0
- package/dist/dist/core/fullstack.d.ts +29 -0
- package/dist/dist/core/fullstack.d.ts.map +1 -0
- package/dist/dist/core/fullstack.js +126 -0
- package/dist/dist/core/fullstack.js.map +1 -0
- package/dist/dist/core/qr.d.ts +4 -0
- package/dist/dist/core/qr.d.ts.map +1 -0
- package/dist/dist/core/qr.js +29 -0
- package/dist/dist/core/qr.js.map +1 -0
- package/dist/dist/core/tunnel.d.ts +9 -0
- package/dist/dist/core/tunnel.d.ts.map +1 -0
- package/dist/dist/core/tunnel.js +55 -0
- package/dist/dist/core/tunnel.js.map +1 -0
- package/dist/dist/core/upload.d.ts +22 -0
- package/dist/dist/core/upload.d.ts.map +1 -0
- package/dist/dist/core/upload.js +73 -0
- package/dist/dist/core/upload.js.map +1 -0
- package/dist/dist/ui/spinner.d.ts +8 -0
- package/dist/dist/ui/spinner.d.ts.map +1 -0
- package/dist/dist/ui/spinner.js +35 -0
- package/dist/dist/ui/spinner.js.map +1 -0
- package/dist/dist/ui/theme.d.ts +14 -0
- package/dist/dist/ui/theme.d.ts.map +1 -0
- package/dist/dist/ui/theme.js +32 -0
- package/dist/dist/ui/theme.js.map +1 -0
- package/dist/dist/ui/welcome.d.ts +4 -0
- package/dist/dist/ui/welcome.d.ts.map +1 -0
- package/dist/dist/ui/welcome.js +95 -0
- package/dist/dist/ui/welcome.js.map +1 -0
- package/dist/dist/utils/config.d.ts +19 -0
- package/dist/dist/utils/config.d.ts.map +1 -0
- package/dist/dist/utils/config.js +31 -0
- package/dist/dist/utils/config.js.map +1 -0
- package/dist/dist/utils/hash.d.ts +3 -0
- package/dist/dist/utils/hash.d.ts.map +1 -0
- package/dist/dist/utils/hash.js +10 -0
- package/dist/dist/utils/hash.js.map +1 -0
- package/dist/dist/utils/zip.d.ts +2 -0
- package/dist/dist/utils/zip.d.ts.map +1 -0
- package/dist/dist/utils/zip.js +19 -0
- package/dist/dist/utils/zip.js.map +1 -0
- package/dist/ui/welcome.js +3 -3
- package/package.json +9 -4
- package/src/cli.ts +1 -1
- package/src/ui/welcome.ts +3 -3
package/README.md
CHANGED
|
@@ -1,24 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
███╗ ██╗██╗██╗ ██╗██╗██╗
|
|
3
|
-
████╗ ██║██║██║ ██║██║██║
|
|
4
|
-
██╔██╗ ██║██║██║ ██║██║██║
|
|
5
|
-
██║╚██╗██║██║╚██╗ ██╔╝██║██║
|
|
6
|
-
██║ ╚████║██║ ╚████╔╝ ██║██║
|
|
7
|
-
╚═╝ ╚═══╝╚═╝ ╚═══╝ ╚═╝╚═╝
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
<div align="center">
|
|
11
|
-
|
|
12
|
-
[](https://www.npmjs.com/package/nivii)
|
|
13
|
-
[](https://github.com/Aadigarg111/Nivi-sh/blob/main/LICENSE)
|
|
14
|
-
[](#)
|
|
15
|
-
[](https://github.com/Aadigarg111/Nivi-sh/pulls)
|
|
1
|
+
███╗ ██╗██╗██╗ ██╗██╗██╗ ████╗ ██║██║██║ ██║██║██║ ██╔██╗ ██║██║██║ ██║██║██║ ██║╚██╗██║██║╚██╗ ██╔╝██║██║ ██║ ╚████║██║ ╚████╔╝ ██║██║ ╚═╝ ╚═══╝╚═╝ ╚═══╝ ╚═╝╚═╝
|
|
16
2
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
[Website](https://nivii.app) · [npm](https://www.npmjs.com/package/nivii) · [Issues](https://github.com/Aadigarg111/Nivi-sh/issues)
|
|
20
|
-
|
|
21
|
-
</div>
|
|
3
|
+
<div align="center"> [](https://www.npmjs.com/package/nivii) [](https://github.com/Aadigarg111/Nivi-sh/blob/main/LICENSE) [](#) [](https://github.com/Aadigarg111/Nivi-sh/pulls) ⚡️ The fastest, most beautiful way to share any local dev project. No accounts. No config. Just share. [Website](https://nivii.app) · [npm](https://www.npmjs.com/package/nivii) · [Issues](https://github.com/Aadigarg111/Nivi-sh/issues) </div>
|
|
22
4
|
|
|
23
5
|
---
|
|
24
6
|
|
|
@@ -26,12 +8,8 @@
|
|
|
26
8
|
|
|
27
9
|
```bash
|
|
28
10
|
npm i -g nivii
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
11
|
# or with pnpm
|
|
33
12
|
pnpm add -g nivii
|
|
34
|
-
|
|
35
13
|
# or with bun
|
|
36
14
|
bun add -g nivii
|
|
37
15
|
```
|
|
@@ -48,33 +26,28 @@ cd ~/my-awesome-project
|
|
|
48
26
|
nivii share
|
|
49
27
|
```
|
|
50
28
|
|
|
51
|
-
|
|
29
|
+
Example output:
|
|
52
30
|
|
|
53
31
|
```
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
┌─────────────────────────────────┐
|
|
74
|
-
│ Scan to open on mobile │
|
|
75
|
-
└─────────────────────────────────┘
|
|
76
|
-
|
|
77
|
-
[QR CODE HERE]
|
|
32
|
+
⚡️ NIVII v0.1.0
|
|
33
|
+
🔍 Detecting project type… ~/my-awesome-project
|
|
34
|
+
✓ Detected Next.js (99% confidence)
|
|
35
|
+
✓ Build complete (nextjs)
|
|
36
|
+
📦 Compressing project…
|
|
37
|
+
✓ Deployed to edge (xk9m2pqr)
|
|
38
|
+
╭─────────────────────────────────────────────────╮
|
|
39
|
+
│ │
|
|
40
|
+
│ 🚀 Your project is live! │
|
|
41
|
+
│ │
|
|
42
|
+
│ URL: https://xk9m2pqr.nivii.app │
|
|
43
|
+
│ Expires: in 48 hours │
|
|
44
|
+
│ │
|
|
45
|
+
╰─────────────────────────────────────────────────╯
|
|
46
|
+
✓ URL copied to clipboard
|
|
47
|
+
|
|
48
|
+
┌─────────────────────────────────┐
|
|
49
|
+
│ Scan to open on mobile │
|
|
50
|
+
└─────────────────────────────────┘
|
|
78
51
|
```
|
|
79
52
|
|
|
80
53
|
---
|
|
@@ -83,51 +56,51 @@ nivii share
|
|
|
83
56
|
|
|
84
57
|
| Emoji | Feature | Description |
|
|
85
58
|
|-------|---------|-------------|
|
|
86
|
-
| 🔍 |
|
|
87
|
-
|
|
|
88
|
-
| 🔒 |
|
|
89
|
-
| 🔗 |
|
|
90
|
-
| 📱 |
|
|
91
|
-
| 📋 |
|
|
92
|
-
| 🌐 |
|
|
93
|
-
| 📊 |
|
|
94
|
-
| 💥 |
|
|
95
|
-
| 🤝 |
|
|
96
|
-
| 🌍 |
|
|
97
|
-
| 🎨 |
|
|
59
|
+
| 🔍 | Smart Detection | Auto-detects framework, build command, and output directory |
|
|
60
|
+
| ⚡️ | Live Sync | Watch for file changes and auto-redeploy (Pro) |
|
|
61
|
+
| 🔒 | Password Protection | Password or OTP-protect any deployment |
|
|
62
|
+
| 🔗 | Custom Slugs | Get my-demo.nivii.app instead of random strings (Pro) |
|
|
63
|
+
| 📱 | QR Codes | Instant QR code printed in terminal |
|
|
64
|
+
| 📋 | Clipboard | URL auto-copied to clipboard |
|
|
65
|
+
| 🌐 | Auto-open | Browser opens automatically after deploy |
|
|
66
|
+
| 📊 | Analytics | Privacy-first view counts and visitor data (Pro) |
|
|
67
|
+
| 💥 | Self-Destruct | Links that expire after N views or a duration |
|
|
68
|
+
| 🤝 | Collab Previews | Real-time collaborative previews (Pro) |
|
|
69
|
+
| 🌍 | Edge CDN | Deployed on Cloudflare's global network |
|
|
70
|
+
| 🎨 | Beautiful UI | Futuristic terminal UI with gradients and spinners |
|
|
98
71
|
|
|
99
72
|
---
|
|
100
73
|
|
|
101
|
-
## All Flags —
|
|
74
|
+
## All Flags — nivii share
|
|
102
75
|
|
|
103
76
|
| Flag | Type | Default | Description |
|
|
104
77
|
|------|------|---------|-------------|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
78
|
+
| --dir <dir> | string | cwd | Directory to deploy |
|
|
79
|
+
| --slug <slug> | string | random | Custom slug — e.g. my-demo → my-demo.nivii.app (Pro) |
|
|
80
|
+
| --pass <password> | string | — | Password-protect the deployment |
|
|
81
|
+
| --otp | boolean | false | Enable one-time password access |
|
|
82
|
+
| --expires <duration> | string | 48h | Expiry: 1h / 24h / 7d / 30d / never |
|
|
83
|
+
| --live | boolean | false | Enable live sync — watch & auto-redeploy on changes (Pro) |
|
|
84
|
+
| --collab | boolean | false | Real-time collaborative preview (Pro) |
|
|
85
|
+
| --no-build | boolean | false | Skip build step, use existing output directory |
|
|
86
|
+
| --cmd <cmd> | string | auto | Custom build command |
|
|
87
|
+
| --port <port> | number | 3000 | Port for server-mode proxy |
|
|
88
|
+
| --max-views <n> | number | — | Self-destruct after N views |
|
|
89
|
+
| --self-destruct | boolean | false | Destroy after first view |
|
|
90
|
+
| --no-qr | boolean | false | Skip QR code display |
|
|
91
|
+
| --no-open | boolean | false | Don't auto-open browser |
|
|
119
92
|
|
|
120
93
|
---
|
|
121
94
|
|
|
122
95
|
## All Commands
|
|
123
96
|
|
|
124
|
-
```
|
|
125
|
-
nivii share
|
|
126
|
-
nivii ls
|
|
127
|
-
nivii analytics
|
|
128
|
-
nivii config
|
|
129
|
-
nivii whoami
|
|
130
|
-
nivii --help
|
|
97
|
+
```
|
|
98
|
+
nivii share # Deploy current directory
|
|
99
|
+
nivii ls # List recent deployments
|
|
100
|
+
nivii analytics # View analytics for a deployment
|
|
101
|
+
nivii config # View/set config values
|
|
102
|
+
nivii whoami # Show current account info
|
|
103
|
+
nivii --help # Show all commands
|
|
131
104
|
```
|
|
132
105
|
|
|
133
106
|
---
|
|
@@ -136,71 +109,56 @@ nivii --help # Show all commands
|
|
|
136
109
|
|
|
137
110
|
| Framework | Detection | Build Command | Output Directory |
|
|
138
111
|
|-----------|-----------|---------------|-----------------|
|
|
139
|
-
|
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
|
146
|
-
|
|
|
147
|
-
|
|
|
148
|
-
|
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
152
|
-
|
|
|
112
|
+
| Next.js | package.json next dep | npm run build | out / .next |
|
|
113
|
+
| Vite | package.json vite dep | npm run build | dist |
|
|
114
|
+
| React (CRA) | vite + react deps | npm run build | dist |
|
|
115
|
+
| Vue | vite + vue deps | npm run build | dist |
|
|
116
|
+
| Svelte | vite + svelte deps | npm run build | dist |
|
|
117
|
+
| SvelteKit | @sveltejs/kit dep | npm run build | build |
|
|
118
|
+
| Astro | astro dep | npm run build | dist |
|
|
119
|
+
| Remix | @remix-run/* deps | npm run build | public |
|
|
120
|
+
| Nuxt | nuxt dep | npm run generate | .output/public |
|
|
121
|
+
| Solid.js | vite + solid-js deps | npm run build | dist |
|
|
122
|
+
| Express | express dep | — (server mode) | . |
|
|
123
|
+
| Fastify | fastify dep | — (server mode) | . |
|
|
124
|
+
| Hono | hono dep | — (server mode) | . |
|
|
125
|
+
| Static HTML | index.html exists | — | . / dist / build |
|
|
153
126
|
|
|
154
127
|
---
|
|
155
128
|
|
|
156
129
|
## Architecture
|
|
157
130
|
|
|
131
|
+
User runs: `nivii share`
|
|
132
|
+
|
|
158
133
|
```
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
│ deploys/{slug}/ │ │ deploy:{slug} → JSON meta │
|
|
188
|
-
│ └─ deploy.zip │ │ analytics:{slug} → stats │
|
|
189
|
-
└──────────────────────┘ └─────────────────────────────┘
|
|
190
|
-
│
|
|
191
|
-
▼
|
|
192
|
-
┌─────────────────────────────────────────────────────────┐
|
|
193
|
-
│ *.nivii.app (Cloudflare Worker wildcard routing) │
|
|
194
|
-
│ │
|
|
195
|
-
│ GET xyz.nivii.app/ │
|
|
196
|
-
│ ├─ Checks KV for metadata (expiry, password, OTP) │
|
|
197
|
-
│ ├─ Serves files from R2 │
|
|
198
|
-
│ └─ SPA fallback to index.html │
|
|
199
|
-
│ │
|
|
200
|
-
│ live.nivii.app/live/{slug} (WebSocket) │
|
|
201
|
-
│ └─ LiveSyncDO (Durable Object) │
|
|
202
|
-
│ └─ Broadcasts reload events to connected viewers │
|
|
203
|
-
└─────────────────────────────────────────────────────────┘
|
|
134
|
+
Nivii CLI (Node.js)
|
|
135
|
+
1. detectFramework() → identifies build system
|
|
136
|
+
2. runBuild() → executes build command
|
|
137
|
+
3. zipDirectory() → zips output dir
|
|
138
|
+
4. uploadDeploy() → POST /deploy to API
|
|
139
|
+
5. showQR() → renders QR in terminal
|
|
140
|
+
6. startLiveSync() → WebSocket watcher (--live)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
api.nivii.app (Cloudflare Worker)
|
|
145
|
+
POST /deploy
|
|
146
|
+
- Stores metadata in KV (slug, password, expiry…)
|
|
147
|
+
- Uploads files to R2 bucket
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
Cloudflare R2 (Object Storage) | Cloudflare KV (Metadata + Analytics)
|
|
152
|
+
deploys/{slug}/ deploy:{slug} → JSON meta
|
|
153
|
+
analytics:{slug} → stats
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
*.nivii.app (Cloudflare Worker wildcard routing)
|
|
158
|
+
GET xyz.nivii.app/
|
|
159
|
+
- Checks KV for metadata (expiry, password, OTP)
|
|
160
|
+
- Serves files from R2
|
|
161
|
+
- SPA fallback to index.html
|
|
204
162
|
```
|
|
205
163
|
|
|
206
164
|
---
|
|
@@ -210,23 +168,20 @@ User runs: nivii share
|
|
|
210
168
|
Deploy your own Nivii instance in ~10 minutes:
|
|
211
169
|
|
|
212
170
|
### Prerequisites
|
|
213
|
-
|
|
214
171
|
- [Cloudflare account](https://cloudflare.com) (free tier works)
|
|
215
172
|
- [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/): `npm i -g wrangler`
|
|
216
173
|
- Node.js 18+
|
|
217
174
|
|
|
218
175
|
### Steps
|
|
219
176
|
|
|
220
|
-
|
|
221
|
-
|
|
177
|
+
1. Clone and install
|
|
222
178
|
```bash
|
|
223
179
|
git clone https://github.com/Aadigarg111/Nivi-sh.git
|
|
224
180
|
cd Nivi-sh
|
|
225
181
|
npm install
|
|
226
182
|
```
|
|
227
183
|
|
|
228
|
-
|
|
229
|
-
|
|
184
|
+
2. Create Cloudflare resources
|
|
230
185
|
```bash
|
|
231
186
|
# Login to Cloudflare
|
|
232
187
|
wrangler login
|
|
@@ -239,43 +194,36 @@ wrangler kv:namespace create "DB" --preview
|
|
|
239
194
|
wrangler r2 bucket create nivii-deployments
|
|
240
195
|
```
|
|
241
196
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
```toml
|
|
197
|
+
3. Update `wrangler.toml`
|
|
198
|
+
```
|
|
245
199
|
# packages/worker/wrangler.toml
|
|
246
200
|
[[kv_namespaces]]
|
|
247
|
-
binding = "DB"
|
|
248
|
-
id = "YOUR_ACTUAL_KV_ID"
|
|
249
|
-
preview_id = "YOUR_PREVIEW_KV_ID"
|
|
201
|
+
binding = "DB"
|
|
202
|
+
id = "YOUR_ACTUAL_KV_ID"
|
|
203
|
+
preview_id = "YOUR_PREVIEW_KV_ID"
|
|
250
204
|
|
|
251
205
|
[[r2_buckets]]
|
|
252
|
-
binding = "BUCKET"
|
|
253
|
-
bucket_name = "nivii-deployments"
|
|
206
|
+
binding = "BUCKET"
|
|
207
|
+
bucket_name = "nivii-deployments"
|
|
254
208
|
```
|
|
255
209
|
|
|
256
|
-
|
|
257
|
-
|
|
210
|
+
4. Deploy the worker
|
|
258
211
|
```bash
|
|
259
212
|
cd packages/worker
|
|
260
213
|
wrangler deploy
|
|
261
214
|
```
|
|
262
215
|
|
|
263
|
-
|
|
264
|
-
|
|
216
|
+
5. Configure DNS
|
|
265
217
|
Add a wildcard DNS record:
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
Proxy: Enabled (orange cloud)
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
**6. Point the CLI at your instance**
|
|
218
|
+
- Type: CNAME
|
|
219
|
+
- Name: *
|
|
220
|
+
- Target: your-worker.workers.dev
|
|
221
|
+
- Proxy: Enabled (orange cloud)
|
|
274
222
|
|
|
223
|
+
6. Point the CLI at your instance
|
|
275
224
|
```bash
|
|
276
225
|
export NIVII_API=https://api.your-domain.com
|
|
277
|
-
|
|
278
|
-
# Or in config
|
|
226
|
+
# Or set in config
|
|
279
227
|
nivii config apiBase https://api.your-domain.com
|
|
280
228
|
```
|
|
281
229
|
|
|
@@ -290,66 +238,55 @@ Config is stored at `~/.nivii/config.json`:
|
|
|
290
238
|
"token": "your-pro-token",
|
|
291
239
|
"plan": "free",
|
|
292
240
|
"apiBase": "https://api.nivii.app",
|
|
293
|
-
"deployments": [
|
|
241
|
+
"deployments": []
|
|
294
242
|
}
|
|
295
243
|
```
|
|
296
244
|
|
|
297
245
|
Manage it:
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
nivii config
|
|
301
|
-
nivii config token <tok> # set token
|
|
246
|
+
```
|
|
247
|
+
nivii config # show all
|
|
248
|
+
nivii config token <tok> # set token
|
|
302
249
|
nivii config apiBase <url> # point to self-hosted instance
|
|
303
250
|
```
|
|
304
251
|
|
|
305
252
|
---
|
|
306
253
|
|
|
307
254
|
## Roadmap v2
|
|
308
|
-
|
|
309
|
-
- [ ]
|
|
310
|
-
- [ ]
|
|
311
|
-
- [ ]
|
|
312
|
-
- [ ]
|
|
313
|
-
- [ ]
|
|
314
|
-
- [ ]
|
|
315
|
-
- [ ]
|
|
316
|
-
- [ ]
|
|
317
|
-
- [ ]
|
|
318
|
-
- [ ]
|
|
319
|
-
- [ ] **Monorepo support** — deploy multiple packages at once
|
|
255
|
+
- [ ] Team workspaces — share deployments with your team
|
|
256
|
+
- [ ] Custom domains — deploy to preview.your-company.com
|
|
257
|
+
- [ ] GitHub Actions integration — auto-share on every PR
|
|
258
|
+
- [ ] VS Code extension — deploy with a keyboard shortcut
|
|
259
|
+
- [ ] Mobile app — scan QR codes from Nivii deployments
|
|
260
|
+
- [ ] Zip-streaming upload — faster uploads for large projects
|
|
261
|
+
- [ ] Screenshot previews — auto-thumbnail for each deployment
|
|
262
|
+
- [ ] API keys + webhooks — programmatic deployments
|
|
263
|
+
- [ ] Deployment history UI — web dashboard at app.nivii.app
|
|
264
|
+
- [ ] SSR support — run Express/Fastify apps in serverless mode
|
|
265
|
+
- [ ] Monorepo support — deploy multiple packages at once
|
|
320
266
|
|
|
321
267
|
---
|
|
322
268
|
|
|
323
269
|
## Contributing
|
|
324
270
|
|
|
325
|
-
Contributions are welcome! This is an AGPL-3.0
|
|
271
|
+
Contributions are welcome! This is an AGPL-3.0 project.
|
|
326
272
|
|
|
273
|
+
### Fork and clone
|
|
327
274
|
```bash
|
|
328
|
-
# Fork and clone
|
|
329
275
|
git clone https://github.com/YOUR_USERNAME/Nivi-sh.git
|
|
330
276
|
cd Nivi-sh
|
|
331
|
-
|
|
332
|
-
# Install dependencies
|
|
333
277
|
npm install
|
|
278
|
+
```
|
|
334
279
|
|
|
280
|
+
### Run locally
|
|
281
|
+
```bash
|
|
335
282
|
# Build CLI
|
|
336
283
|
cd packages/cli && npm run build
|
|
337
284
|
|
|
338
|
-
# Run locally
|
|
285
|
+
# Run the CLI locally
|
|
339
286
|
node dist/cli.js share --help
|
|
340
287
|
```
|
|
341
288
|
|
|
342
|
-
### Project structure
|
|
343
|
-
|
|
344
|
-
```
|
|
345
|
-
packages/cli/ - The NPM CLI tool (published as `nivii`)
|
|
346
|
-
packages/worker/ - Cloudflare Worker backend
|
|
347
|
-
landing/ - Landing page HTML
|
|
348
|
-
.github/ - GitHub Actions workflows
|
|
349
|
-
```
|
|
350
|
-
|
|
351
289
|
### Submitting PRs
|
|
352
|
-
|
|
353
290
|
1. Fork the repository
|
|
354
291
|
2. Create a feature branch: `git checkout -b feat/my-feature`
|
|
355
292
|
3. Commit your changes: `git commit -m 'feat: add something cool'`
|
|
@@ -362,24 +299,14 @@ Please follow conventional commits and keep PRs focused.
|
|
|
362
299
|
|
|
363
300
|
## License
|
|
364
301
|
|
|
365
|
-
```
|
|
366
302
|
Nivii — Futuristic Project Sharing CLI
|
|
303
|
+
|
|
367
304
|
Copyright (C) 2025 Aadigarg111
|
|
368
305
|
|
|
369
|
-
This program is free software: you can redistribute it and/or modify
|
|
370
|
-
it under the terms of the GNU Affero General Public License as published by
|
|
371
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
372
|
-
(at your option) any later version.
|
|
373
|
-
```
|
|
306
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
|
374
307
|
|
|
375
|
-
|
|
308
|
+
[AGPL-3.0](./LICENSE) — See the LICENSE file for full terms.
|
|
376
309
|
|
|
377
310
|
---
|
|
378
311
|
|
|
379
|
-
<div align="center">
|
|
380
|
-
|
|
381
|
-
Made with ❤️ by [Aadigarg111](https://github.com/Aadigarg111)
|
|
382
|
-
|
|
383
|
-
⚡ [nivii.app](https://nivii.app) · [npm](https://www.npmjs.com/package/nivii) · [GitHub](https://github.com/Aadigarg111/Nivi-sh)
|
|
384
|
-
|
|
385
|
-
</div>
|
|
312
|
+
<div align="center"> Made with ❤️ by [Aadigarg111](https://github.com/Aadigarg111) ⚡️ [nivii.app](https://nivii.app) · [npm](https://www.npmjs.com/package/nivii) · [GitHub](https://github.com/Aadigarg111/Nivi-sh) </div>
|
package/dist/cli.js
CHANGED
|
@@ -92,7 +92,7 @@ cli
|
|
|
92
92
|
.action(async (slug) => {
|
|
93
93
|
await runAnalytics(slug);
|
|
94
94
|
});
|
|
95
|
-
cli.version('0.
|
|
95
|
+
cli.version('0.1.8');
|
|
96
96
|
// ─── Show help when no command given ─────────────────────────────────────────
|
|
97
97
|
cli.parse(process.argv, { run: false });
|
|
98
98
|
if (!cli.matchedCommand) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|