@somewhere-tech/cli 0.8.0 → 0.9.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/README.md CHANGED
@@ -52,7 +52,7 @@ After `somewhere init`, Claude Code and Codex auto-connect via the `.mcp.json` i
52
52
  | `somewhere status` | Show project + workspace status |
53
53
  | `somewhere open` | Open project URL in browser |
54
54
  | `somewhere open --dashboard` | Open the dashboard |
55
- | `somewhere dev` | Run local dev with platform env vars |
55
+ | `somewhere dev` | Hot-deploy watcher save a file, it goes live in seconds (no local server) |
56
56
  | `somewhere api GET /v1/projects` | Raw API call with auto-auth |
57
57
  | `somewhere mcp` | Run MCP server over stdio (proxies to mcp.somewhere.tech) |
58
58
 
@@ -94,6 +94,32 @@ somewhere deploy --dry-run # preview the diff first
94
94
  somewhere deploy --scope functions # ship a backend fix without touching the site
95
95
  ```
96
96
 
97
+ ## Hot reload: `somewhere dev`
98
+
99
+ ```sh
100
+ somewhere dev
101
+ ```
102
+
103
+ Starts a file watcher that hot-deploys on every save — no local server, no
104
+ emulator. Edit a file, save, and it's live on the real platform in a couple of
105
+ seconds with full `sw.*` context. Single-file saves ship as incremental patches;
106
+ compile errors show up in the terminal immediately (with the file + line) and the
107
+ previous working version keeps serving until you fix it.
108
+
109
+ ```
110
+ $ somewhere dev
111
+ ✓ Synced 3 files
112
+ 👀 Watching /my-app for changes
113
+ 🌐 https://my-app.somewhere.tech
114
+
115
+ [13:41:01] src/main.tsx → ✓ live (1.2s, v2)
116
+ [13:41:18] api/users.ts → ✗ compile failed (1.4s) ← previous version still live
117
+ [13:41:24] api/users.ts → ✓ live (0.9s, v3)
118
+ ```
119
+
120
+ Passing a command (`somewhere dev npm run dev`) keeps the legacy behavior — run
121
+ your own process locally with `SOMEWHERE_PROJECT_ID` / `SOMEWHERE_URL` injected.
122
+
97
123
  ## Client-side code: use the SDK
98
124
 
99
125
  The CLI deploys and manages projects. For **client-side code** (browser / Node app talking to your backend), install the SDK — a Supabase-shaped client so existing code ports with one import swap:
@@ -1,42 +1,9 @@
1
- import { readdirSync, readFileSync, statSync } from 'node:fs';
2
- import { extname, join, relative } from 'node:path';
1
+ import { join } from 'node:path';
3
2
  import ora from 'ora';
4
3
  import { ApiClient } from '../lib/client.js';
5
4
  import { getToken, loadProjectConfig } from '../lib/config.js';
5
+ import { collectFiles, formatBytes } from '../lib/files.js';
6
6
  import { dim, error, green, info, red, success, teal, warn, yellow } from '../lib/output.js';
7
- const IGNORE = new Set([
8
- 'node_modules',
9
- '.git',
10
- '.somewhere.json',
11
- '.mcp.json',
12
- '.env',
13
- '.DS_Store',
14
- 'dist',
15
- '.next',
16
- '.vercel',
17
- ]);
18
- const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB per file
19
- // Mirror of worker/src/routes/deploy.ts:isFunctionPath. Files matching
20
- // these patterns must ship in body.functions, not body.files — otherwise
21
- // the worker writes them to static R2 and never invokes the bundler, so
22
- // the routes never register. (Bug found 2026-05-09: api/* at project
23
- // root silently shipped as static.)
24
- function isFunctionPath(p) {
25
- if (!/\.(ts|js|mjs)$/i.test(p))
26
- return false;
27
- if (p.startsWith('api/') || p.startsWith('_lib/'))
28
- return true;
29
- if (/^\[[^/]+\]\.(ts|js|mjs)$/.test(p))
30
- return true;
31
- return false;
32
- }
33
- const BINARY_EXTS = new Set([
34
- '.png', '.jpg', '.jpeg', '.gif', '.webp', '.ico', '.bmp', '.avif',
35
- '.woff', '.woff2', '.ttf', '.otf', '.eot',
36
- '.pdf', '.zip', '.gz', '.tar', '.br',
37
- '.mp3', '.mp4', '.wav', '.ogg', '.webm', '.mov', '.m4a',
38
- '.wasm',
39
- ]);
40
7
  export function registerDeploy(program) {
41
8
  program
42
9
  .command('deploy [dir]')
@@ -70,10 +37,7 @@ export function registerDeploy(program) {
70
37
  projectId = config.project_id;
71
38
  }
72
39
  const spinner = ora('Collecting files...').start();
73
- const files = {};
74
- const binaryFiles = {};
75
- const functions = {};
76
- collectFiles(targetDir, targetDir, files, binaryFiles, functions);
40
+ const { files, binaryFiles, functions } = collectFiles(targetDir);
77
41
  const totalFiles = Object.keys(files).length +
78
42
  Object.keys(binaryFiles).length +
79
43
  Object.keys(functions).length;
@@ -234,42 +198,4 @@ function printDryRun(plan, scope) {
234
198
  }
235
199
  console.log('');
236
200
  }
237
- function collectFiles(baseDir, currentDir, files, binaryFiles, functions) {
238
- for (const entry of readdirSync(currentDir, { withFileTypes: true })) {
239
- if (IGNORE.has(entry.name) || entry.name.startsWith('.'))
240
- continue;
241
- const fullPath = join(currentDir, entry.name);
242
- const relPath = relative(baseDir, fullPath);
243
- if (entry.isDirectory()) {
244
- collectFiles(baseDir, fullPath, files, binaryFiles, functions);
245
- continue;
246
- }
247
- if (!entry.isFile())
248
- continue;
249
- const stat = statSync(fullPath);
250
- if (stat.size > MAX_FILE_SIZE)
251
- continue;
252
- const isBinary = BINARY_EXTS.has(extname(entry.name).toLowerCase());
253
- if (relPath.startsWith('functions/')) {
254
- const key = relPath.slice('functions/'.length);
255
- functions[key] = readFileSync(fullPath, 'utf-8');
256
- }
257
- else if (isFunctionPath(relPath)) {
258
- functions[relPath] = readFileSync(fullPath, 'utf-8');
259
- }
260
- else if (isBinary) {
261
- binaryFiles[relPath] = readFileSync(fullPath).toString('base64');
262
- }
263
- else {
264
- files[relPath] = readFileSync(fullPath, 'utf-8');
265
- }
266
- }
267
- }
268
- function formatBytes(bytes) {
269
- if (bytes < 1024)
270
- return `${bytes} B`;
271
- if (bytes < 1024 * 1024)
272
- return `${Math.round(bytes / 1024)} KB`;
273
- return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
274
- }
275
201
  //# sourceMappingURL=deploy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;IACrB,cAAc;IACd,MAAM;IACN,iBAAiB;IACjB,WAAW;IACX,MAAM;IACN,WAAW;IACX,MAAM;IACN,OAAO;IACP,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,eAAe;AAEtD,uEAAuE;AACvE,yEAAyE;AACzE,wEAAwE;AACxE,qEAAqE;AACrE,oCAAoC;AACpC,SAAS,cAAc,CAAC,CAAS;IAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;IACpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IACvD,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,oDAAoD,CAAC;SACjE,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;SAC/C,MAAM,CACL,iBAAiB,EACjB,kJAAkJ,CACnJ;SACA,MAAM,CACL,WAAW,EACX,6EAA6E,CAC9E;SACA,MAAM,CACL,qBAAqB,EACrB,+FAA+F,CAChG;SACA,MAAM,CAAC,KAAK,EAAE,GAAuB,EAAE,IAAI,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEjE,oEAAoE;QACpE,sEAAsE;QACtE,wEAAwE;QACxE,IAAI,KAAyC,CAAC;QAC9C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC1D,KAAK,CAAC,iDAAiD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACrB,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,iBAAiB,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CACH,gEAAgE,CACjE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEnD,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAElE,MAAM,UAAU,GACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM;YACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM;YAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;aACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;aAC3C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;QAE3C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM;YACxB,CAAC,CAAC,YAAY,UAAU,WAAW,WAAW,CAAC,UAAU,CAAC,MAAM;YAChE,CAAC,CAAC,aAAa,UAAU,WAAW,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B;gBACpC,UAAU,EAAE,SAAS;gBACrB,KAAK;aACN,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;YAClC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9B,IAAI,IAAI,CAAC,gBAAgB;gBAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACzD,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAErC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACtE,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAExE,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAC9B,CAAC,CAAC,MAAM,CAAC,KAAK;gBACd,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAClC,OAAO,CAAC,GAAG,SAAS,oBAAoB,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEpE,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAChC,CAAC;YAED,sEAAsE;YACtE,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAED,mEAAmE;YACnE,gEAAgE;YAChE,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxE,IAAI,CACF,QAAQ,MAAM,CAAC,mBAAmB,CAAC,MAAM,uCAAuC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,2CAA2C,CAClO,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,uDAAuD;YACvD,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC7E,MAAM,MAAM,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9E,KAAK,CAAC,oBAAoB,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;oBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC;YAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,kEAAkE;YAClE,gEAAgE;YAChE,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC/D,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AA8BD,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AACnE,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE,CACnC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3D,SAAS,WAAW,CAAC,IAAkB,EAAE,KAA8B;IACrE,MAAM,SAAS,GACb,KAAK,KAAK,WAAW;QACnB,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,KAAK,KAAK,QAAQ;YAClB,CAAC,CAAC,wCAAwC;YAC1C,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;IAE/E,MAAM,EAAE,GAAG;QACT,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACrE,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,KAAe,EAAE,IAAY,EAAE,EAAE;QAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;YAAE,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IACE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QACrB,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QACxB,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,SAAS;YACd,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBACpC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EACzC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,sDAAsD;IACtD,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CACF,2BAA2B,EAAE,CAAC,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAClI,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,IAAI,CACF,2BAA2B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1K,CAAC;IACJ,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAC1E,2CAA2C;IAC3C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CACnB,OAAe,EACf,UAAkB,EAClB,KAA6B,EAC7B,WAAmC,EACnC,SAAiC;IAEjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACrE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,GAAG,aAAa;YAAE,SAAS;QAExC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAEpE,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC/C,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACjE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -1,73 +1,261 @@
1
1
  import { spawn } from 'node:child_process';
2
2
  import { existsSync, readFileSync } from 'node:fs';
3
- import { join } from 'node:path';
3
+ import { join, relative } from 'node:path';
4
+ import chokidar from 'chokidar';
5
+ import open from 'open';
4
6
  import ora from 'ora';
5
7
  import { ApiClient } from '../lib/client.js';
6
8
  import { getToken, loadProjectConfig } from '../lib/config.js';
7
- import { dim, error, info, success } from '../lib/output.js';
9
+ import { IGNORE, classifyKey, collectFiles } from '../lib/files.js';
10
+ import { bold, dim, error, green, info, red, success, teal, warn, yellow } from '../lib/output.js';
11
+ const WATCH_EXTS = /\.(ts|tsx|js|jsx|mjs|html|css|json|svg|md|txt|png|jpe?g|gif|webp|ico|woff2?|ttf|otf)$/i;
12
+ const DEBOUNCE_MS = 500;
8
13
  export function registerDev(program) {
9
14
  program
10
15
  .command('dev [cmd...]')
11
- .description('Start local dev with platform env vars injected')
12
- .action(async (cmdParts) => {
13
- const token = getToken();
14
- const client = new ApiClient(token);
16
+ .description('Hot-deploy watcher: save a file live in seconds, no local server. ' +
17
+ 'Pass a command (e.g. `somewhere dev npm run dev`) to run it locally with platform env vars instead.')
18
+ .option('--project <id>', 'Override project ID')
19
+ .action(async (cmdParts, opts) => {
20
+ // A passed command keeps the legacy local-exec behavior (Option B —
21
+ // run your own server with platform context injected). No command =
22
+ // the hot-deploy watcher (Option A — the platform's no-localhost answer).
23
+ if (cmdParts && cmdParts.length > 0) {
24
+ return runLegacyExec(cmdParts);
25
+ }
26
+ return runHotDeploy(opts);
27
+ });
28
+ }
29
+ async function runHotDeploy(opts) {
30
+ const token = getToken();
31
+ const client = new ApiClient(token);
32
+ const cwd = process.cwd();
33
+ let projectId = opts.project;
34
+ let subdomain;
35
+ if (!projectId) {
15
36
  const config = loadProjectConfig();
16
37
  if (!config) {
17
- error('No project linked. Run `somewhere init` first.');
38
+ error('No project linked. Run `somewhere init` or pass --project <id>.');
18
39
  process.exit(1);
19
40
  }
20
- const spinner = ora('Loading env vars from somewhere.tech...').start();
41
+ projectId = config.project_id;
42
+ subdomain = config.subdomain;
43
+ }
44
+ // Initial full sync. /deploy/patch rejects projects with no prior deploy, so
45
+ // a full deploy first guarantees the project is live AND gives us the URL.
46
+ const spinner = ora('Syncing current state...').start();
47
+ const { files, binaryFiles, functions } = collectFiles(cwd);
48
+ let url;
49
+ try {
50
+ const body = { project_id: projectId, files };
51
+ if (Object.keys(binaryFiles).length)
52
+ body.binary_files = binaryFiles;
53
+ if (Object.keys(functions).length)
54
+ body.functions = functions;
55
+ const res = await client.call('POST', '/deploy', body);
56
+ url = res.url;
57
+ spinner.stop();
58
+ const n = typeof res.files === 'number' ? res.files : (res.files ?? []).length;
59
+ success(`Synced ${n} files`);
60
+ if (res.warnings?.length)
61
+ for (const w of res.warnings)
62
+ warn(w);
63
+ }
64
+ catch (err) {
65
+ spinner.fail('Initial sync failed');
66
+ error(err instanceof Error ? err.message : String(err));
67
+ process.exit(1);
68
+ }
69
+ console.log('');
70
+ console.log(`${green('👀')} ${bold('Watching')} ${dim(cwd)} ${dim('for changes')}`);
71
+ console.log(`${teal('🌐')} ${teal(url)}`);
72
+ console.log(dim(' save a file and it goes live. Ctrl-C to stop.\n'));
73
+ open(url).catch(() => { });
74
+ // Debounced batch of changes. Saving three files in quick succession ships
75
+ // one patch, not three.
76
+ const pendingChanged = new Set();
77
+ const pendingDeleted = new Set();
78
+ let timer = null;
79
+ let deploying = false;
80
+ const schedule = () => {
81
+ if (timer)
82
+ clearTimeout(timer);
83
+ timer = setTimeout(flush, DEBOUNCE_MS);
84
+ };
85
+ const flush = async () => {
86
+ if (deploying) {
87
+ schedule(); // re-arm; a deploy is in flight
88
+ return;
89
+ }
90
+ const changed = [...pendingChanged];
91
+ const deleted = [...pendingDeleted];
92
+ if (!changed.length && !deleted.length)
93
+ return;
94
+ pendingChanged.clear();
95
+ pendingDeleted.clear();
96
+ deploying = true;
21
97
  try {
22
- const result = await client.call('GET', '/env', undefined, { project_id: config.project_id });
23
- const vars = result.keys ?? result.vars ?? [];
24
- spinner.stop();
25
- success(`${vars.length} env vars loaded`);
26
- // Detect dev command
27
- let command = cmdParts.join(' ');
28
- if (!command) {
29
- command = detectDevCommand();
30
- }
31
- if (!command) {
32
- error('Could not detect a dev command. Pass one: somewhere dev npm run dev');
33
- process.exit(1);
34
- }
35
- info(`Starting: ${dim(command)}`);
36
- console.log('');
37
- const envOverrides = {
38
- SOMEWHERE_PROJECT_ID: config.project_id,
39
- SOMEWHERE_SUBDOMAIN: config.subdomain,
40
- SOMEWHERE_URL: `https://${config.subdomain}.somewhere.tech`,
41
- };
42
- // Env var VALUES aren't returned by the API (encrypted). The user's
43
- // functions/server will read them from the platform at runtime.
44
- // Here we just inject the project context vars.
45
- const child = spawn(command, {
46
- shell: true,
47
- stdio: 'inherit',
48
- env: { ...process.env, ...envOverrides },
49
- });
50
- child.on('exit', (code) => process.exit(code ?? 0));
98
+ await deployBatch(client, projectId, cwd, changed, deleted);
51
99
  }
52
- catch (err) {
53
- spinner.fail('Failed to load env vars');
54
- error(err instanceof Error ? err.message : String(err));
55
- process.exit(1);
100
+ finally {
101
+ deploying = false;
102
+ if (pendingChanged.size || pendingDeleted.size)
103
+ schedule();
56
104
  }
105
+ };
106
+ const watcher = chokidar.watch(cwd, {
107
+ ignoreInitial: true,
108
+ ignored: (p) => {
109
+ const rel = relative(cwd, p);
110
+ if (!rel || rel.startsWith('..'))
111
+ return false;
112
+ return rel.split(/[\\/]/).some((seg) => IGNORE.has(seg) || (seg.startsWith('.') && seg !== '.' && seg !== ''));
113
+ },
114
+ });
115
+ const onChange = (abs) => {
116
+ const rel = relative(cwd, abs);
117
+ if (!WATCH_EXTS.test(rel))
118
+ return;
119
+ pendingChanged.add(rel);
120
+ pendingDeleted.delete(rel);
121
+ schedule();
122
+ };
123
+ const onUnlink = (abs) => {
124
+ const rel = relative(cwd, abs);
125
+ if (!WATCH_EXTS.test(rel))
126
+ return;
127
+ pendingDeleted.add(rel);
128
+ pendingChanged.delete(rel);
129
+ schedule();
130
+ };
131
+ watcher.on('add', onChange).on('change', onChange).on('unlink', onUnlink);
132
+ process.on('SIGINT', () => {
133
+ console.log(`\n${dim('Stopped watching.')}`);
134
+ watcher.close().finally(() => process.exit(0));
57
135
  });
58
136
  }
59
- function detectDevCommand() {
60
- const pkgPath = join(process.cwd(), 'package.json');
61
- if (existsSync(pkgPath)) {
62
- try {
63
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
64
- if (pkg.scripts?.dev)
65
- return 'npm run dev';
66
- if (pkg.scripts?.start)
67
- return 'npm start';
137
+ async function deployBatch(client, projectId, cwd, changed, deleted) {
138
+ const updateFiles = {};
139
+ const updateFunctions = {};
140
+ const updateBinary = {};
141
+ const deleteKeys = [];
142
+ for (const rel of changed) {
143
+ const abs = join(cwd, rel);
144
+ if (!existsSync(abs))
145
+ continue; // changed-then-deleted within the window
146
+ const { kind, key } = classifyKey(rel);
147
+ if (kind === 'function')
148
+ updateFunctions[key] = readFileSync(abs, 'utf-8');
149
+ else if (kind === 'binary')
150
+ updateBinary[key] = readFileSync(abs).toString('base64');
151
+ else
152
+ updateFiles[key] = readFileSync(abs, 'utf-8');
153
+ }
154
+ for (const rel of deleted)
155
+ deleteKeys.push(classifyKey(rel).key);
156
+ const body = { project_id: projectId };
157
+ if (Object.keys(updateFiles).length)
158
+ body.update_files = updateFiles;
159
+ if (Object.keys(updateFunctions).length)
160
+ body.update_functions = updateFunctions;
161
+ if (Object.keys(updateBinary).length)
162
+ body.update_binary_files = updateBinary;
163
+ if (deleteKeys.length)
164
+ body.delete_files = deleteKeys;
165
+ // Nothing real to ship (e.g. every changed file vanished) — skip quietly.
166
+ if (Object.keys(body).length === 1)
167
+ return;
168
+ const label = describeBatch(changed, deleted);
169
+ const t0 = Date.now();
170
+ process.stdout.write(`${dim(stamp())} ${label} ${dim('→ deploying...')}`);
171
+ try {
172
+ const r = await client.call('POST', '/deploy/patch', body);
173
+ const secs = ((Date.now() - t0) / 1000).toFixed(1);
174
+ // Carriage-return overwrites the "deploying..." line with the verdict.
175
+ process.stdout.write('\r\x1b[K');
176
+ if (r.bundle_error) {
177
+ console.log(`${dim(stamp())} ${label} ${red('✗ compile failed')} ${dim(`(${secs}s)`)}`);
178
+ error(r.bundle_error);
179
+ info(dim('Previous working version is still live. Fix and save again.'));
180
+ return;
181
+ }
182
+ if (r.function_errors?.length) {
183
+ console.log(`${dim(stamp())} ${label} ${yellow('⚠ functions degraded')} ${dim(`(${secs}s)`)}`);
184
+ for (const fe of r.function_errors) {
185
+ const route = typeof fe === 'string' ? fe : fe.route ?? '';
186
+ const detail = typeof fe === 'string' ? '' : fe.error ? ` — ${fe.error}` : '';
187
+ warn(`${route}${detail}`);
188
+ }
189
+ return;
190
+ }
191
+ if (r.warnings?.length) {
192
+ console.log(`${dim(stamp())} ${label} ${yellow('⚠ live')} ${dim(`(${secs}s)`)}`);
193
+ for (const w of r.warnings)
194
+ warn(w);
195
+ return;
68
196
  }
69
- catch { }
197
+ console.log(`${dim(stamp())} ${label} ${green('✓ live')} ${dim(`(${secs}s, v${r.version})`)}`);
198
+ }
199
+ catch (err) {
200
+ const secs = ((Date.now() - t0) / 1000).toFixed(1);
201
+ process.stdout.write('\r\x1b[K');
202
+ console.log(`${dim(stamp())} ${label} ${red('✗ failed')} ${dim(`(${secs}s)`)}`);
203
+ error(err instanceof Error ? err.message : String(err));
204
+ }
205
+ }
206
+ function describeBatch(changed, deleted) {
207
+ const parts = [];
208
+ if (changed.length === 1 && !deleted.length)
209
+ return teal(changed[0]);
210
+ if (deleted.length === 1 && !changed.length)
211
+ return `${teal(deleted[0])} ${dim('(deleted)')}`;
212
+ if (changed.length)
213
+ parts.push(`${changed.length} changed`);
214
+ if (deleted.length)
215
+ parts.push(`${deleted.length} deleted`);
216
+ return teal(parts.join(', '));
217
+ }
218
+ function stamp() {
219
+ const d = new Date();
220
+ const p = (n) => String(n).padStart(2, '0');
221
+ return `[${p(d.getHours())}:${p(d.getMinutes())}:${p(d.getSeconds())}]`;
222
+ }
223
+ // ─── Legacy: `somewhere dev <cmd>` runs a local command with platform context.
224
+ // Kept for anyone scripting against the old behavior; the no-arg form is the
225
+ // recommended hot-deploy watcher above.
226
+ async function runLegacyExec(cmdParts) {
227
+ const token = getToken();
228
+ const client = new ApiClient(token);
229
+ const config = loadProjectConfig();
230
+ if (!config) {
231
+ error('No project linked. Run `somewhere init` first.');
232
+ process.exit(1);
233
+ }
234
+ const spinner = ora('Loading project context from somewhere.tech...').start();
235
+ try {
236
+ const result = await client.call('GET', '/env', undefined, { project_id: config.project_id });
237
+ const vars = result.keys ?? result.vars ?? [];
238
+ spinner.stop();
239
+ success(`${vars.length} env vars available (values stay server-side)`);
240
+ const command = cmdParts.join(' ');
241
+ info(`Starting: ${dim(command)}`);
242
+ console.log('');
243
+ const child = spawn(command, {
244
+ shell: true,
245
+ stdio: 'inherit',
246
+ env: {
247
+ ...process.env,
248
+ SOMEWHERE_PROJECT_ID: config.project_id,
249
+ SOMEWHERE_SUBDOMAIN: config.subdomain,
250
+ SOMEWHERE_URL: `https://${config.subdomain}.somewhere.tech`,
251
+ },
252
+ });
253
+ child.on('exit', (code) => process.exit(code ?? 0));
254
+ }
255
+ catch (err) {
256
+ spinner.fail('Failed to load project context');
257
+ error(err instanceof Error ? err.message : String(err));
258
+ process.exit(1);
70
259
  }
71
- return '';
72
260
  }
73
261
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAC;AAEnE,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,QAAkB,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,yCAAyC,CAAC,CAAC,KAAK,EAAE,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAG7B,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAEhE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,kBAAkB,CAAC,CAAC;YAE1C,qBAAqB;YACrB,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,gBAAgB,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CACH,qEAAqE,CACtE,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,MAAM,YAAY,GAA2B;gBAC3C,oBAAoB,EAAE,MAAM,CAAC,UAAU;gBACvC,mBAAmB,EAAE,MAAM,CAAC,SAAS;gBACrC,aAAa,EAAE,WAAW,MAAM,CAAC,SAAS,iBAAiB;aAC5D,CAAC;YACF,oEAAoE;YACpE,gEAAgE;YAChE,gDAAgD;YAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE;aACzC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG;gBAAE,OAAO,aAAa,CAAC;YAC3C,IAAI,GAAG,CAAC,OAAO,EAAE,KAAK;gBAAE,OAAO,WAAW,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import { readdirSync, readFileSync, statSync } from 'node:fs';
2
+ import { extname, join, relative } from 'node:path';
3
+ // Directories / files never uploaded. Mirrors the deploy collector.
4
+ export const IGNORE = new Set([
5
+ 'node_modules',
6
+ '.git',
7
+ '.somewhere.json',
8
+ '.mcp.json',
9
+ '.env',
10
+ '.DS_Store',
11
+ 'dist',
12
+ '.next',
13
+ '.vercel',
14
+ ]);
15
+ export const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB per file
16
+ export const BINARY_EXTS = new Set([
17
+ '.png', '.jpg', '.jpeg', '.gif', '.webp', '.ico', '.bmp', '.avif',
18
+ '.woff', '.woff2', '.ttf', '.otf', '.eot',
19
+ '.pdf', '.zip', '.gz', '.tar', '.br',
20
+ '.mp3', '.mp4', '.wav', '.ogg', '.webm', '.mov', '.m4a',
21
+ '.wasm',
22
+ ]);
23
+ // Mirror of worker/src/routes/deploy.ts:isFunctionPath. Files matching these
24
+ // patterns must ship in `functions`/`update_functions`, not `files` — otherwise
25
+ // the worker writes them to static storage and never invokes the bundler, so
26
+ // the routes never register.
27
+ export function isFunctionPath(p) {
28
+ if (!/\.(ts|js|mjs)$/i.test(p))
29
+ return false;
30
+ if (p.startsWith('api/') || p.startsWith('_lib/'))
31
+ return true;
32
+ if (/^\[[^/]+\]\.(ts|js|mjs)$/.test(p))
33
+ return true;
34
+ return false;
35
+ }
36
+ export function isBinaryPath(p) {
37
+ return BINARY_EXTS.has(extname(p).toLowerCase());
38
+ }
39
+ /** Walk a directory tree and bucket every file into static / binary / function,
40
+ * applying the same path remapping the deploy command uses. */
41
+ export function collectFiles(baseDir) {
42
+ const out = { files: {}, binaryFiles: {}, functions: {} };
43
+ walk(baseDir, baseDir, out);
44
+ return out;
45
+ }
46
+ function walk(baseDir, currentDir, out) {
47
+ for (const entry of readdirSync(currentDir, { withFileTypes: true })) {
48
+ if (IGNORE.has(entry.name) || entry.name.startsWith('.'))
49
+ continue;
50
+ const fullPath = join(currentDir, entry.name);
51
+ if (entry.isDirectory()) {
52
+ walk(baseDir, fullPath, out);
53
+ continue;
54
+ }
55
+ if (!entry.isFile())
56
+ continue;
57
+ if (statSync(fullPath).size > MAX_FILE_SIZE)
58
+ continue;
59
+ const relPath = relative(baseDir, fullPath);
60
+ classifyInto(out, baseDir, relPath);
61
+ }
62
+ }
63
+ /** The deploy key + bucket a relative path maps to. `functions/`-prefixed paths
64
+ * are stripped to their route; root-level api/_lib/[param] paths are functions. */
65
+ export function classifyKey(relPath) {
66
+ if (relPath.startsWith('functions/')) {
67
+ return { kind: 'function', key: relPath.slice('functions/'.length) };
68
+ }
69
+ if (isFunctionPath(relPath)) {
70
+ return { kind: 'function', key: relPath };
71
+ }
72
+ if (isBinaryPath(relPath)) {
73
+ return { kind: 'binary', key: relPath };
74
+ }
75
+ return { kind: 'static', key: relPath };
76
+ }
77
+ /** Read one file off disk and place it in the right bucket of `out`. */
78
+ export function classifyInto(out, baseDir, relPath) {
79
+ const fullPath = join(baseDir, relPath);
80
+ const { kind, key } = classifyKey(relPath);
81
+ if (kind === 'function') {
82
+ out.functions[key] = readFileSync(fullPath, 'utf-8');
83
+ }
84
+ else if (kind === 'binary') {
85
+ out.binaryFiles[key] = readFileSync(fullPath).toString('base64');
86
+ }
87
+ else {
88
+ out.files[key] = readFileSync(fullPath, 'utf-8');
89
+ }
90
+ }
91
+ export function formatBytes(bytes) {
92
+ if (bytes < 1024)
93
+ return `${bytes} B`;
94
+ if (bytes < 1024 * 1024)
95
+ return `${Math.round(bytes / 1024)} KB`;
96
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
97
+ }
98
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somewhere-tech/cli",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "CLI for somewhere.tech — auth, projects, deploy, pull, promote, db, logs, env, MCP bridge.",
5
5
  "keywords": [
6
6
  "somewhere",
@@ -15,7 +15,10 @@
15
15
  "url": "git+https://github.com/Somewhere-Tech/somewhere-cli.git"
16
16
  },
17
17
  "license": "MIT",
18
- "author": { "name": "somewhere.tech", "email": "support@somewhere.tech" },
18
+ "author": {
19
+ "name": "somewhere.tech",
20
+ "email": "support@somewhere.tech"
21
+ },
19
22
  "type": "module",
20
23
  "bin": {
21
24
  "somewhere": "bin/somewhere.js",
@@ -38,6 +41,7 @@
38
41
  "dependencies": {
39
42
  "@modelcontextprotocol/sdk": "^1.29.0",
40
43
  "chalk": "^5.3.0",
44
+ "chokidar": "^4.0.3",
41
45
  "commander": "^12.0.0",
42
46
  "open": "^10.0.0",
43
47
  "ora": "^8.0.0",