@dropthis/cli 0.31.0 → 0.33.1

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 CHANGED
@@ -157,6 +157,10 @@ All publish flags:
157
157
  | `--visibility <public\|unlisted>` | Drop visibility |
158
158
  | `--password <password>` | Require a password to view the drop (Pro plan) |
159
159
  | `--noindex` | Prevent search indexing |
160
+ | `--slug <vanity-slug>` | Vanity slug for a path-mode custom domain (only with `--domain`; Pro) |
161
+ | `--domain <hostname>` | Serve the drop under one of your connected custom domains (Pro) |
162
+ | `--shared` | Publish to the shared dropthis pool, bypassing your default custom domain |
163
+ | `--workspace <slugOrId>` | Target a specific workspace for this publish (delegated keys) |
160
164
  | `--entry <path>` | Entry file for directories |
161
165
  | `--content-type <mime>` | MIME type (required for stdin) |
162
166
  | `--path <path>` | Filename (required for stdin) |
@@ -199,7 +203,7 @@ dropthis update-settings drop_abc123 --title "New title"
199
203
  dropthis update-content drop_abc123 ./dist-v2 --if-revision 1
200
204
  ```
201
205
 
202
- `update-content` replaces the files at the URL; `update-settings` changes title, visibility, password, noindex, expiry, or metadata. Creating a new drop is always `publish` — neither update command makes a new URL.
206
+ `update-content` updates the files at the URL — **patch by default**: files you don't include are carried forward, so you can ship a single changed file. Use `--mode replace` (or `--replace`) for a full content swap, and `--delete-path <path>` (repeatable) to remove a file. `update-settings` changes title, visibility, password, noindex, expiry, or metadata — including `--no-password` to clear a password and `--index` to re-allow indexing. Creating a new drop is always `publish` — neither update command makes a new URL.
203
207
 
204
208
  With `--if-revision`, a concurrent edit fails with a 409 instead of clobbering. The error shows the drop's `current_revision` and how to retry:
205
209
 
@@ -234,15 +238,27 @@ Pull fetches the current deployment's file manifest and writes every file into t
234
238
  dropthis [input...] # Publish content (default command)
235
239
  dropthis publish [input...] # Same as above, explicit form
236
240
 
237
- dropthis update-content <drop-id> [input] # Replace a drop's content (same URL)
241
+ dropthis update-content <drop-id> [input] # Update a drop's content (patch by default; same URL)
238
242
  dropthis update-settings <drop-id> # Change title/visibility/password/expiry/metadata
239
243
  dropthis pull <id|url|slug> [-o <dir>] # Download a drop's files to a local directory
240
244
  dropthis get <id|url|slug> # Show drop details
245
+ dropthis resolve <id|url|slug> # Resolve a drop URL/slug back to its drop_… id
241
246
  dropthis list # List your drops
242
247
  dropthis list --domain reports.example.com # Only drops on a custom domain
243
248
  dropthis delete <id|url|slug> # Delete a drop (--yes to confirm)
244
249
 
245
- dropthis deployments # View deployment history
250
+ dropthis deployments list <drop-id> # List a drop's deployment history
251
+ dropthis deployments get <drop-id> <dep-id> # Show one deployment
252
+
253
+ dropthis domains connect <host> --mode <path|dedicated> # Connect a custom domain (Pro)
254
+ dropthis domains list # List custom domains
255
+ dropthis domains status <host> # Show domain + DNS status
256
+ dropthis domains verify <host> [--wait] # Verify DNS (exit 6 pending, 7 timeout)
257
+ dropthis domains update <host> [--default|--drop <id>] # Repoint or set the default domain
258
+ dropthis domains remove <host> --yes # Disconnect a domain
259
+
260
+ dropthis workspace list # List workspaces you belong to
261
+ dropthis workspace use <slug|id> # Switch active workspace (delegated keys)
246
262
 
247
263
  dropthis login # Authenticate with email OTP
248
264
  dropthis login request --email <email> # Request OTP (non-interactive)
@@ -250,12 +266,13 @@ dropthis login verify --email <email> --otp <code> # Verify OTP
250
266
  dropthis logout # Remove stored credentials
251
267
  dropthis whoami # Show current auth status
252
268
 
253
- dropthis account # Show account details
269
+ dropthis account # Show account details, active tier + limits
254
270
  dropthis account update --display-name <name> # Update your display name
271
+ dropthis account delete --yes # Delete your account
255
272
 
256
- dropthis api-keys create # Create an API key
273
+ dropthis api-keys create [--service --workspace <ws>] # Mint a delegated key, or a pinned CI service key
257
274
  dropthis api-keys list # List API keys
258
- dropthis api-keys delete <key-id> # Delete an API key (--yes to confirm)
275
+ dropthis api-keys delete <key-id> --yes # Delete an API key
259
276
 
260
277
  dropthis upgrade # Update the CLI to the latest version
261
278
  dropthis doctor # CLI diagnostics
@@ -300,10 +317,12 @@ dropthis publish ./dist --url
300
317
  | 6 | Domain verification pending (`domains verify` one-shot, not live yet) |
301
318
  | 7 | Domain verification timeout (`domains verify --wait` exceeded `--timeout`) |
302
319
 
320
+ This table — plus the global flags (`--api-key`, `--api-url`, `--json`, `--quiet`, `--no-interactive`) — is machine-readable from `dropthis commands --json` (the `exit_codes` and `global_options` fields), so an agent can discover the whole surface without scraping docs.
321
+
303
322
  **JSON output shape:**
304
323
 
305
324
  ```json
306
- {"ok":true,"drop":{"url":"https://dropthis.app/abc123","id":"drop_abc123"}}
325
+ {"ok":true,"drop":{"url":"https://abc123.dropthis.app/","id":"drop_abc123"}}
307
326
  ```
308
327
 
309
328
  **Error shape (stderr):**
@@ -323,13 +342,20 @@ dropthis doctor
323
342
  Reports CLI version, auth source (`env`, `flag`, `storage`, or `missing`), and credential storage backend (`secure`, `insecure`, or `none`).
324
343
 
325
344
  ```json
326
- {"ok":true,"version":"0.4.1","auth":{"source":"env"},"storage":{"backend":"secure"}}
345
+ {"ok":true,"version":"0.32.0","auth":{"source":"env"},"storage":{"backend":"secure"}}
346
+ ```
347
+
348
+ Add `--online` for a network preflight an agent can run **before** a publish to tell apart the common failures — re-auth vs network vs an unresolved workspace:
349
+
350
+ ```bash
351
+ dropthis doctor --online --json
327
352
  ```
328
353
 
354
+ It hits `GET /v1/account` (token valid? which workspace resolves? which plan?) and lists custom-domain verification status as a `checks` array. It exits **3** on an auth failure and **5** on a network failure, so a script can branch on the exit code.
355
+
329
356
  ## Pricing tiers
330
357
 
331
- - **Free** drops expire after 7 days, 5 MB per drop, 500 MB active storage, dropthis badge.
332
- - **Pro** — drops never expire, 100 MB per drop, 10 GB storage, no badge, 1 custom domain, password-protected drops. Pro is currently invite-only. Learn more at https://dropthis.app/pricing.
358
+ dropthis has four tiers — **Free**, **Keep**, **Pro**, and **Business**. Free drops carry the dropthis badge and expire after 30 days; paid tiers add permanence, larger limits, custom domains, passwords, and analytics. Run `dropthis account` to see your active tier and its exact caps, or visit https://dropthis.app/pricing for the current plans.
333
359
 
334
360
  Connecting a custom domain (`dropthis domains connect`) requires the Pro plan (1 hostname). Domains already connected keep working regardless of plan.
335
361