drops-mcp 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/brand/badge.html CHANGED
@@ -10,6 +10,6 @@
10
10
  transition:transform .12s ease,background .12s ease;"
11
11
  onmouseover="this.style.transform='translateY(-1px)';this.style.background='rgba(20,20,22,0.78)'"
12
12
  onmouseout="this.style.transform='none';this.style.background='rgba(20,20,22,0.62)'">
13
- <img src="__DROP_LOGO__" alt="" style="height:15px;width:auto;display:block;" />
13
+ <span style="width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#ff6b35,#ea580c);display:block;flex:0 0 auto;"></span>
14
14
  <span style="opacity:.78;">__DROP_DOMAIN__</span>
15
15
  </a>
package/brand/brand.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "drops",
2
+ "name": "drop",
3
3
  "owner": "Max Techera",
4
4
  "domain": "drops.maxtechera.dev",
5
5
  "tagline": "Share anything. Branded. On your own domain.",
@@ -37,7 +37,8 @@
37
37
  -webkit-backdrop-filter: blur(18px) saturate(160%);
38
38
  box-shadow: 0 24px 70px -24px rgba(0, 0, 0, 0.7), inset 0 0.5px 0 rgba(255, 255, 255, 0.12);
39
39
  }
40
- .logo { height: 38px; margin-bottom: 24px; opacity: 0.95; }
40
+ .logo { display:flex; align-items:center; justify-content:center; gap:9px; margin-bottom:24px; font-weight:700; font-size:1.15rem; letter-spacing:-.01em; color:#fff; }
41
+ .logo .d { width:12px; height:12px; border-radius:50%; background:linear-gradient(135deg,#ff6b35,#ea580c); box-shadow:0 0 16px rgba(255,107,53,.6); }
41
42
  h1 {
42
43
  font-size: 1.35em;
43
44
  font-weight: 650;
@@ -91,7 +92,7 @@
91
92
  </head>
92
93
  <body>
93
94
  <div class="card">
94
- <img class="logo" src="__DROP_LOGO__" alt="logo" />
95
+ <div class="logo"><span class="d"></span>drop</div>
95
96
  <h1>__DROP_TITLE__</h1>
96
97
  <p class="sub">__DROP_SUBTITLE__</p>
97
98
  <div class="file">
package/brand/gate.html CHANGED
@@ -52,10 +52,20 @@
52
52
  }
53
53
 
54
54
  .drop-logo {
55
- display: block;
56
- height: 40px;
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ gap: 9px;
57
59
  margin: 0 auto 26px;
58
- opacity: 0.95;
60
+ font-weight: 700;
61
+ font-size: 1.15rem;
62
+ letter-spacing: -0.01em;
63
+ color: #fff;
64
+ }
65
+ .drop-logo .d {
66
+ width: 12px; height: 12px; border-radius: 50%;
67
+ background: linear-gradient(135deg, #ff6b35, #ea580c);
68
+ box-shadow: 0 0 16px rgba(255, 107, 53, 0.6);
59
69
  }
60
70
 
61
71
  .staticrypt-form {
@@ -209,7 +219,7 @@
209
219
 
210
220
  <div id="staticrypt_content" class="staticrypt-content hidden">
211
221
  <div class="staticrypt-page">
212
- <img class="drop-logo" src="__DROP_LOGO__" alt="logo" />
222
+ <div class="drop-logo"><span class="d"></span>drop</div>
213
223
  <div class="staticrypt-form">
214
224
  <div class="staticrypt-instructions">
215
225
  <p class="staticrypt-title">/*[|template_title|]*/0</p>
package/drop.mjs CHANGED
@@ -546,10 +546,24 @@ async function cmdDeploy(opts) {
546
546
 
547
547
  console.log(`drop deploy — wiring backend in ${repoRoot}${dry ? " (dry run)" : ""}\n`);
548
548
 
549
+ const hasVercel = spawnSync(process.platform === "win32" ? "where" : "which", ["vercel"], { stdio: "ignore", shell: process.platform === "win32" }).status === 0;
550
+
551
+ // 0. auto-provision the Vercel project + Blob store so self-host is one command.
552
+ if (!dry && hasVercel) {
553
+ if (!existsSync(join(repoRoot, ".vercel", "project.json"))) {
554
+ console.log("linking a Vercel project…");
555
+ spawnSync("vercel", ["link", "--yes"], { cwd: repoRoot, stdio: "inherit", shell: process.platform === "win32" });
556
+ }
557
+ if (!getToken() && !opts.token) {
558
+ console.log("creating a Blob store 'drops' (if needed)…");
559
+ spawnSync("vercel", ["blob", "store", "add", "drops"], { cwd: repoRoot, stdio: "inherit", shell: process.platform === "win32" });
560
+ }
561
+ }
562
+
549
563
  // 1. token
550
564
  let token = getToken() || opts.token;
551
565
  if (!token) { token = await pullTokenFromVercel(); }
552
- if (!token) die("no BLOB_READ_WRITE_TOKEN. Create a Blob store (vercel blob store add drops), then: drop deploy --token vercel_blob_rw_...");
566
+ if (!token) die("no BLOB_READ_WRITE_TOKEN. Run 'vercel blob store add drops' (or `vercel login`), then: drop deploy --token vercel_blob_rw_...");
553
567
 
554
568
  // 2. discover the public blob host via a throwaway upload
555
569
  const { put, del } = await loadBlob();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drops-mcp",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Open-source artifact sharing — publish HTML/Markdown/files as branded, password-protected, zero-knowledge links on your own domain, from any AI agent. CLI + MCP server. The open-source, self-hosted Stacktree alternative.",
5
5
  "type": "module",
6
6
  "bin": {