@somewhere-cloud/cli 0.38.4 → 0.38.6

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.
Files changed (51) hide show
  1. package/README.md +37 -48
  2. package/bin/engine.js +27 -0
  3. package/bin/somewhere.js +10 -1
  4. package/dist/commands/api.js +67 -2
  5. package/dist/commands/api.js.map +1 -1
  6. package/dist/commands/auth.js +18 -5
  7. package/dist/commands/auth.js.map +1 -1
  8. package/dist/commands/check.js +28 -8
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/deploy.js +175 -8
  11. package/dist/commands/deploy.js.map +1 -1
  12. package/dist/commands/dev.js +63 -9
  13. package/dist/commands/dev.js.map +1 -1
  14. package/dist/commands/docs.js +15 -17
  15. package/dist/commands/docs.js.map +1 -1
  16. package/dist/commands/env.js +9 -1
  17. package/dist/commands/env.js.map +1 -1
  18. package/dist/commands/init.js +16 -7
  19. package/dist/commands/init.js.map +1 -1
  20. package/dist/commands/logs.js +6 -1
  21. package/dist/commands/logs.js.map +1 -1
  22. package/dist/commands/typecheck.js +44 -20
  23. package/dist/commands/typecheck.js.map +1 -1
  24. package/dist/index.js +16 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/advisor-context.js +0 -9
  27. package/dist/lib/advisor-context.js.map +1 -1
  28. package/dist/lib/claim-handoff.js +23 -1
  29. package/dist/lib/claim-handoff.js.map +1 -1
  30. package/dist/lib/client.js +18 -7
  31. package/dist/lib/client.js.map +1 -1
  32. package/dist/lib/config.js +15 -1
  33. package/dist/lib/config.js.map +1 -1
  34. package/dist/lib/deploy-check.js +45 -44
  35. package/dist/lib/deploy-check.js.map +1 -1
  36. package/dist/lib/files.js +151 -29
  37. package/dist/lib/files.js.map +1 -1
  38. package/dist/lib/last-run.js +24 -26
  39. package/dist/lib/last-run.js.map +1 -1
  40. package/dist/lib/temp-auth.js +16 -24
  41. package/dist/lib/temp-auth.js.map +1 -1
  42. package/dist/lib/typecheck.js +209 -78
  43. package/dist/lib/typecheck.js.map +1 -1
  44. package/dist/lib/vendor/deploy-paths.js +121 -0
  45. package/dist/lib/vendor/deploy-paths.js.map +1 -0
  46. package/npm-shrinkwrap.json +2 -2
  47. package/package.json +1 -1
  48. package/runtime/DECLARED-DATA-VENDOR.json +18 -18
  49. package/runtime/SOURCE-LINT-VENDOR.json +47 -46
  50. package/runtime/declared-data.cjs +188 -108
  51. package/runtime/source-lint.cjs +311 -199
@@ -13,12 +13,12 @@
13
13
  * Measured on four real apps against the deploy's own check roots, findings
14
14
  * were identical; that is evidence for those apps, not a guarantee for all.
15
15
  */
16
- import { spawn } from 'node:child_process';
17
16
  import { randomUUID } from 'node:crypto';
18
17
  import { existsSync, mkdirSync, readFileSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
19
18
  import { createRequire } from 'node:module';
20
19
  import { isAbsolute, join, relative, resolve } from 'node:path';
21
20
  import { collectFiles } from './files.js';
21
+ import { runBounded, timedOutMessage } from './typecheck.js';
22
22
  const require = createRequire(import.meta.url);
23
23
  const vendor = require('../../runtime/declared-data.cjs');
24
24
  const contract = vendor.checkerContract;
@@ -26,6 +26,25 @@ const contract = vendor.checkerContract;
26
26
  export const DEPLOY_CHECK_TYPESCRIPT_VERSION = contract.TYPESCRIPT_VERSION;
27
27
  /** The project's own TypeScript when it is exactly the deploy's version,
28
28
  * otherwise that version through npx. Never a different version. */
29
+ /** The TypeScript version installed in the project, if any. */
30
+ export function projectTypeScriptVersion(projectDir) {
31
+ try {
32
+ const version = JSON.parse(readFileSync(join(projectDir, 'node_modules', 'typescript', 'package.json'), 'utf8')).version;
33
+ return typeof version === 'string' && version ? version : null;
34
+ }
35
+ catch {
36
+ return null;
37
+ }
38
+ }
39
+ /** The deploy check runs the deploy's own pinned TypeScript; when the project
40
+ * does not have exactly that version it is fetched with npx. Said on stderr,
41
+ * and true whether or not the project has another TypeScript
42
+ * (pfb_d615d6b6c581). */
43
+ export function announceDeployCheckFetch(projectDir) {
44
+ const own = projectTypeScriptVersion(projectDir);
45
+ process.stderr.write(`The deploy check uses TypeScript ${DEPLOY_CHECK_TYPESCRIPT_VERSION}, the version deploys check with; `
46
+ + `${own ? `this project has ${own}` : 'this project has no TypeScript installed'}, so typescript@${DEPLOY_CHECK_TYPESCRIPT_VERSION} is fetched with npx (needs the npm registry; npm keeps it in its cache).\n`);
47
+ }
29
48
  export function deployCheckTsc(projectDir, platform = process.platform) {
30
49
  try {
31
50
  const manifest = join(projectDir, 'node_modules', 'typescript', 'package.json');
@@ -124,20 +143,20 @@ process.once('exit', () => { for (const cleanup of pendingCleanups)
124
143
  /** Run the deploy's reference check over `projectDir`. Writes only a
125
144
  * uniquely named dot-prefixed config and directory in the project root
126
145
  * (outside the deploy's file set), removed when the check ends. */
127
- export function runDeployCheck(projectDir) {
146
+ export async function runDeployCheck(projectDir) {
128
147
  try {
129
- return startDeployCheck(projectDir);
148
+ return await startDeployCheck(projectDir);
130
149
  }
131
150
  catch (error) {
132
151
  // Reading the project or writing the temporary files failed (a file
133
152
  // renamed mid-walk, an unreadable tsconfig): the check did not run.
134
- return Promise.resolve({
153
+ return {
135
154
  ok: false, findings: [], typescript: DEPLOY_CHECK_TYPESCRIPT_VERSION, checkedFiles: 0,
136
155
  error: error instanceof Error ? error.message : String(error),
137
- });
156
+ };
138
157
  }
139
158
  }
140
- function startDeployCheck(projectDir) {
159
+ async function startDeployCheck(projectDir) {
141
160
  const typescript = DEPLOY_CHECK_TYPESCRIPT_VERSION;
142
161
  const collected = collectFiles(projectDir);
143
162
  const graph = {};
@@ -147,7 +166,7 @@ function startDeployCheck(projectDir) {
147
166
  }
148
167
  const checked = Object.keys(graph);
149
168
  if (checked.length === 0)
150
- return Promise.resolve({ ok: true, findings: [], typescript, checkedFiles: 0 });
169
+ return { ok: true, findings: [], typescript, checkedFiles: 0 };
151
170
  const tsconfigPath = join(projectDir, 'tsconfig.json');
152
171
  const own = projectCompilerOptions(existsSync(tsconfigPath) ? readFileSync(tsconfigPath, 'utf8') : undefined);
153
172
  // The config sits in the project root so `paths`/`baseUrl` resolve from
@@ -179,42 +198,24 @@ function startDeployCheck(projectDir) {
179
198
  throw error;
180
199
  }
181
200
  const { command, args } = deployCheckTsc(projectDir);
182
- return new Promise((resolveResult) => {
183
- let out = '';
184
- let child;
185
- try {
186
- child = spawn(command, [...args, '--project', config, '--pretty', 'false'], {
187
- cwd: projectDir,
188
- stdio: ['ignore', 'pipe', 'pipe'],
189
- shell: /\.(cmd|bat)$/i.test(command),
190
- });
191
- }
192
- catch (error) {
193
- cleanup();
194
- resolveResult({ ok: false, findings: [], typescript, checkedFiles: checked.length, error: error instanceof Error ? error.message : String(error) });
195
- return;
196
- }
197
- child.stdout?.on('data', (d) => (out += d.toString()));
198
- child.stderr?.on('data', (d) => (out += d.toString()));
199
- child.on('error', (error) => {
200
- cleanup();
201
- resolveResult({ ok: false, findings: [], typescript, checkedFiles: checked.length, error: error.message });
202
- });
203
- child.on('close', (code) => {
204
- cleanup();
205
- const { findings, problems } = parseDeployOutput(out, projectDir, collected.functions);
206
- // A config/global error, or a non-zero exit with no located diagnostic
207
- // at all, is a failure to run, never a verdict, even beside findings.
208
- if (problems.length > 0) {
209
- resolveResult({ ok: false, findings, typescript, checkedFiles: checked.length, error: problems.join('\n') });
210
- return;
211
- }
212
- if (code !== 0 && !out.split(/\r?\n/).some((line) => DIAGNOSTIC.test(line.trim()))) {
213
- resolveResult({ ok: false, findings, typescript, checkedFiles: checked.length, error: out.trim() || `tsc exited ${code}` });
214
- return;
215
- }
216
- resolveResult({ ok: findings.length === 0, findings, typescript, checkedFiles: checked.length });
217
- });
218
- });
201
+ // Bounded, with its process group stopped on timeout or Ctrl-C: an npx
202
+ // fetch of TypeScript never hangs or outlives the command (pfb_8f0f7cdd04a1).
203
+ const run = await runBounded(command, [...args, '--project', config, '--pretty', 'false'], projectDir, { onAbort: cleanup });
204
+ cleanup();
205
+ const out = run.out;
206
+ if (run.timedOut)
207
+ return { ok: false, findings: [], typescript, checkedFiles: checked.length, error: timedOutMessage('npx', run) };
208
+ if (run.error)
209
+ return { ok: false, findings: [], typescript, checkedFiles: checked.length, error: run.error.message };
210
+ const { findings, problems } = parseDeployOutput(out, projectDir, collected.functions);
211
+ // A config/global error, or a non-zero exit with no located diagnostic
212
+ // at all, is a failure to run, never a verdict, even beside findings.
213
+ if (problems.length > 0) {
214
+ return { ok: false, findings, typescript, checkedFiles: checked.length, error: problems.join('\n') };
215
+ }
216
+ if (run.code !== 0 && !out.split(/\r?\n/).some((line) => DIAGNOSTIC.test(line.trim()))) {
217
+ return { ok: false, findings, typescript, checkedFiles: checked.length, error: out.trim() || `tsc exited ${run.code}` };
218
+ }
219
+ return { ok: findings.length === 0, findings, typescript, checkedFiles: checked.length };
219
220
  }
220
221
  //# sourceMappingURL=deploy-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-check.js","sourceRoot":"","sources":["../../src/lib/deploy-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy-check.js","sourceRoot":"","sources":["../../src/lib/deploy-check.ts"],"names":[],"mappings":"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"}
package/dist/lib/files.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
2
- import { extname, join, relative } from 'node:path';
2
+ import { extname, isAbsolute, join, relative } from 'node:path';
3
3
  import { DATA_DECLARATION_FILE, FILES_DECLARATION_FILE, GENERATED_DATA_HEADER } from './declared-data.js';
4
4
  import { excludedRootFileReason, isAppSurfaceRootFile, isReferenceCorpusPath, } from './publish-surface.js';
5
+ import { isSensitiveDeployPath } from './vendor/deploy-paths.js';
6
+ import { shellQuote } from './next-actions.js';
5
7
  // Directories / files never uploaded. Mirrors the deploy collector.
6
8
  export const IGNORE = new Set([
7
9
  'node_modules',
@@ -78,13 +80,15 @@ export function isFunctionPath(p) {
78
80
  export function isBinaryPath(p) {
79
81
  return BINARY_EXTS.has(extname(p).toLowerCase());
80
82
  }
83
+ export const SENSITIVE_FILE_REASON = 'blocked by the sensitive-path policy — never uploaded';
81
84
  /** Walk a directory tree and bucket every file into static / binary / function,
82
85
  * applying the same path remapping the deploy command uses. */
83
86
  export function collectFiles(baseDir, options = {}) {
84
- const out = { files: {}, binaryFiles: {}, functions: {}, skipped: [], excluded: [] };
87
+ const out = { files: {}, binaryFiles: {}, functions: {}, skipped: [], oversize: [], notes: [], excluded: [], sensitive: [] };
85
88
  const ignore = loadDeployIgnore(baseDir);
86
89
  const candidates = [];
87
- walk(baseDir, baseDir, out, ignore, candidates);
90
+ const sizes = new Map();
91
+ walk(baseDir, baseDir, out, ignore, candidates, sizes);
88
92
  // ── Root publish surface (tsk_c166924f) ─────────────────────────────────
89
93
  // Split the candidates into "definitely the app" and "root files nothing
90
94
  // vouches for yet", then let the definite half vouch for the rest. A deploy
@@ -118,18 +122,18 @@ export function collectFiles(baseDir, options = {}) {
118
122
  deferred.push(relPath);
119
123
  }
120
124
  }
125
+ // Published text files only; a sensitive file is never a candidate, so its
126
+ // contents are never read here.
127
+ const corpusFiles = (paths) => paths.filter((relPath) => isReferenceCorpusPath(relPath) && (sizes.get(relPath) ?? 0) <= MAX_FILE_SIZE).map((relPath) => {
128
+ try {
129
+ return [relPath, readFileSync(join(baseDir, relPath), 'utf-8')];
130
+ }
131
+ catch {
132
+ return [relPath, ''];
133
+ }
134
+ });
121
135
  if (deferred.length > 0) {
122
- const corpus = publish
123
- .filter(isReferenceCorpusPath)
124
- .map((relPath) => {
125
- try {
126
- return readFileSync(join(baseDir, relPath), 'utf-8');
127
- }
128
- catch {
129
- return '';
130
- }
131
- })
132
- .join('\n');
136
+ const corpus = corpusFiles(publish).map(([, text]) => text).join('\n');
133
137
  for (const relPath of deferred) {
134
138
  if (corpus.includes(relPath))
135
139
  publish.push(relPath);
@@ -138,11 +142,37 @@ export function collectFiles(baseDir, options = {}) {
138
142
  }
139
143
  }
140
144
  out.excluded.sort((a, b) => a.path.localeCompare(b.path));
141
- for (const relPath of publish)
145
+ if (out.sensitive.length > 0) {
146
+ const published = corpusFiles(publish);
147
+ for (const entry of out.sensitive) {
148
+ const name = entry.path.slice(entry.path.lastIndexOf('/') + 1);
149
+ entry.referencedBy = published.filter(([, text]) => text.includes(name)).map(([relPath]) => relPath);
150
+ }
151
+ out.sensitive.sort((a, b) => a.path.localeCompare(b.path));
152
+ }
153
+ // Size is judged only for files that would be published, after the ignore,
154
+ // privacy and test rules: a large note or log that stays local is not refused.
155
+ for (const relPath of publish) {
156
+ const bytes = sizes.get(relPath) ?? 0;
157
+ if (bytes > MAX_FILE_SIZE) {
158
+ out.oversize.push({ path: relPath, bytes });
159
+ out.skipped.push({ path: relPath, reason: `${formatBytes(bytes)} exceeds the ${formatBytes(MAX_FILE_SIZE)} per-file limit` });
160
+ continue;
161
+ }
142
162
  classifyInto(out, baseDir, relPath, options.readBinary !== false);
163
+ }
164
+ out.oversize.sort((a, b) => a.path.localeCompare(b.path));
165
+ for (const raw of options.include ?? []) {
166
+ const reason = includeHadNoEffect(baseDir, raw.trim(), publish);
167
+ if (reason)
168
+ out.notes.push({ source: `--include ${raw.trim()}`, reason });
169
+ }
170
+ for (const line of ignore.unreachableReincludes) {
171
+ out.notes.push({ source: `.somewhereignore line "${line}"`, reason: 'a "!" line cannot publish a dotfile or a file blocked by the sensitive-path policy, so this line has no effect' });
172
+ }
143
173
  return out;
144
174
  }
145
- function walk(baseDir, currentDir, out, ignore, candidates) {
175
+ function walk(baseDir, currentDir, out, ignore, candidates, sizes) {
146
176
  for (const entry of readdirSync(currentDir, { withFileTypes: true })) {
147
177
  const fullPath = join(currentDir, entry.name);
148
178
  const relPath = toDeployPath(relative(baseDir, fullPath));
@@ -159,24 +189,23 @@ function walk(baseDir, currentDir, out, ignore, candidates) {
159
189
  continue;
160
190
  }
161
191
  if (entry.isDirectory()) {
162
- walk(baseDir, fullPath, out, ignore, candidates);
192
+ walk(baseDir, fullPath, out, ignore, candidates, sizes);
163
193
  continue;
164
194
  }
165
195
  if (!entry.isFile())
166
196
  continue;
197
+ // The deploy API refuses these paths in any folder; hold them back here,
198
+ // before their contents are read or any request is made.
199
+ if (isSensitiveDeployPath(relPath)) {
200
+ out.sensitive.push({ path: relPath, reason: SENSITIVE_FILE_REASON, referencedBy: [] });
201
+ continue;
202
+ }
167
203
  // Editor declarations are regenerated from source by the deploy compiler.
168
204
  // Uploading a local copy would introduce duplicate or stale client types.
169
205
  if ((entry.name === DATA_DECLARATION_FILE || entry.name === FILES_DECLARATION_FILE)
170
206
  && readFileSync(fullPath, 'utf8').startsWith(GENERATED_DATA_HEADER))
171
207
  continue;
172
- const size = statSync(fullPath).size;
173
- if (size > MAX_FILE_SIZE) {
174
- out.skipped.push({
175
- path: relPath,
176
- reason: `${formatBytes(size)} exceeds the ${formatBytes(MAX_FILE_SIZE)} per-file limit`,
177
- });
178
- continue;
179
- }
208
+ sizes.set(relPath, statSync(fullPath).size);
180
209
  candidates.push(relPath);
181
210
  }
182
211
  }
@@ -232,8 +261,12 @@ function toDeployPath(p) {
232
261
  }
233
262
  class DeployIgnoreMatcher {
234
263
  rules;
235
- constructor(rules) {
264
+ unreachableReincludes;
265
+ constructor(rules,
266
+ /** "!" lines in .somewhereignore naming a dotfile or sensitive file. */
267
+ unreachableReincludes = []) {
236
268
  this.rules = rules;
269
+ this.unreachableReincludes = unreachableReincludes;
237
270
  }
238
271
  ignores(relPath, isDirectory) {
239
272
  let ignored = false;
@@ -254,6 +287,7 @@ class DeployIgnoreMatcher {
254
287
  }
255
288
  function loadDeployIgnore(baseDir) {
256
289
  const rules = [];
290
+ const unreachable = [];
257
291
  for (const fileName of ['.gitignore', '.somewhereignore']) {
258
292
  const path = join(baseDir, fileName);
259
293
  if (!existsSync(path))
@@ -261,11 +295,18 @@ function loadDeployIgnore(baseDir) {
261
295
  const lines = readFileSync(path, 'utf8').split(/\r?\n/);
262
296
  for (const raw of lines) {
263
297
  const rule = parseIgnoreRule(raw);
264
- if (rule)
265
- rules.push(rule);
298
+ if (!rule)
299
+ continue;
300
+ rules.push(rule);
301
+ if (fileName === '.somewhereignore' && rule.negate) {
302
+ const named = raw.trim().slice(1).trim().replace(/\\/g, '/').replace(/^\/+/, '').replace(/\/+$/, '');
303
+ const last = named.split('/').pop() ?? '';
304
+ if ((last.startsWith('.') && last !== '.well-known') || isSensitiveDeployPath(named))
305
+ unreachable.push(raw.trim());
306
+ }
266
307
  }
267
308
  }
268
- return new DeployIgnoreMatcher(rules);
309
+ return new DeployIgnoreMatcher(rules, unreachable);
269
310
  }
270
311
  function parseIgnoreRule(raw) {
271
312
  let pattern = raw.trim();
@@ -337,4 +378,85 @@ function globToRegExp(pattern) {
337
378
  function escapeRegExp(ch) {
338
379
  return /[\\^$+?.()|[\]{}]/.test(ch) ? `\\${ch}` : ch;
339
380
  }
381
+ /** Refusal text when published source names a held-back credentials file, or
382
+ * null. Names paths only; never the file's contents. */
383
+ /** A file that would be published is over the per-file limit. Deploying
384
+ * without it would remove the live copy, so nothing is sent (tsk_97979518,
385
+ * pfb_9c4d1d7fc75c). Deliberate exclusions (.somewhereignore, .gitignore)
386
+ * are how a large local file stays out. */
387
+ export function oversizeRefusal(collected) {
388
+ if (collected.oversize.length === 0)
389
+ return null;
390
+ return [
391
+ `Nothing was sent. ${collected.oversize.length === 1 ? 'This file is' : 'These files are'} over the ${formatBytes(MAX_FILE_SIZE)} per-file limit and would be left out, which removes any copy already live:`,
392
+ ...collected.oversize.map((entry) => ` ${entry.path} (${formatBytes(entry.bytes)})`),
393
+ 'Make the file smaller, or keep it out of the deploy on purpose: add it to .somewhereignore (or .gitignore) or move it out of this folder, then run the command again.',
394
+ ].join('\n');
395
+ }
396
+ /** Why an --include entry published nothing, or null when it did. */
397
+ function includeHadNoEffect(baseDir, raw, published) {
398
+ const path = toDeployPath(raw).replace(/^\.\//, '').replace(/\/+$/, '');
399
+ if (!path || isAbsolute(raw) || path === '..' || path.startsWith('../'))
400
+ return 'it is outside this project folder; --include takes a path inside it';
401
+ if (!existsSync(join(baseDir, path)))
402
+ return 'there is no such file or folder in this project';
403
+ if (published.some((p) => p === path || p.startsWith(`${path}/`)))
404
+ return null;
405
+ if (isSensitiveDeployPath(path))
406
+ return 'it is blocked by the sensitive-path policy, which --include does not override';
407
+ if (path.split('/').some((seg) => IGNORE.has(seg) || (seg.startsWith('.') && seg !== '.well-known')))
408
+ return 'dotfiles and tool folders are never published, and --include does not override that';
409
+ return 'it is kept out by .gitignore or .somewhereignore, which --include does not override';
410
+ }
411
+ /**
412
+ * Preview's save loop uploads changed files one batch at a time. Judge each
413
+ * batch the way a deploy judges the tree: files the project's .gitignore or
414
+ * .somewhereignore keeps out are not uploaded, and an uploaded file over the
415
+ * per-file limit refuses the whole batch before anything is read or sent
416
+ * (pfb_9c4d1d7fc75c). `paths` are relative to `baseDir`.
417
+ */
418
+ export function previewBatchCheck(baseDir, paths) {
419
+ const ignore = loadDeployIgnore(baseDir);
420
+ const upload = [], ignored = [], oversize = [];
421
+ for (const raw of paths) {
422
+ const rel = toDeployPath(raw);
423
+ const parts = rel.split('/');
424
+ const kept = parts.some((_, i) => ignore.ignores(parts.slice(0, i + 1).join('/'), i < parts.length - 1));
425
+ if (kept) {
426
+ ignored.push(rel);
427
+ continue;
428
+ }
429
+ let bytes = 0;
430
+ try {
431
+ bytes = statSync(join(baseDir, raw)).size;
432
+ }
433
+ catch { /* vanished: the caller skips it */ }
434
+ if (bytes > MAX_FILE_SIZE)
435
+ oversize.push({ path: rel, bytes });
436
+ upload.push(raw);
437
+ }
438
+ return { upload, ignored, oversize };
439
+ }
440
+ /** The save-loop form of oversizeRefusal: nothing in this save was sent. */
441
+ export function previewOversizeRefusal(oversize) {
442
+ return [
443
+ `Nothing in this save was sent: ${oversize.length === 1 ? 'this file is' : 'these files are'} over the ${formatBytes(MAX_FILE_SIZE)} per-file limit:`,
444
+ ...oversize.map((entry) => ` ${entry.path} (${formatBytes(entry.bytes)})`),
445
+ 'Your last preview is unchanged. Make the file smaller (or add it to .somewhereignore), then save an app file again: the held changes are sent with the next save the watcher sees. Editing .somewhereignore alone is not a save it sees.',
446
+ ].join('\n');
447
+ }
448
+ export function sensitiveReferenceRefusal(collected) {
449
+ const referenced = collected.sensitive.filter((entry) => entry.referencedBy.length > 0);
450
+ if (referenced.length === 0)
451
+ return null;
452
+ const example = referenced[0];
453
+ const envName = example.path.slice(example.path.lastIndexOf('/') + 1).replace(/[^A-Za-z0-9]+/g, '_').replace(/^_+|_+$/g, '').toUpperCase() || 'SECRET';
454
+ return [
455
+ 'Nothing was sent. Your source references a file blocked by the sensitive-path policy, which is never uploaded:',
456
+ ...referenced.map((entry) => ` ${entry.referencedBy.join(', ')} mentions ${entry.path}`),
457
+ 'This is a filename match in your source, not an import analysis. Code that loads the file would fail once deployed, because the file is not published.',
458
+ `To use it, keep it out of your source: save it as a project secret (somewhere env set ${envName} --stdin < ${shellQuote(example.path)}) and read it inside a function with sw.env.${envName}.`,
459
+ 'If nothing loads it (for example, only a comment mentions it), add it to .somewhereignore or move it out of this folder, then run the command again.',
460
+ ].join('\n');
461
+ }
340
462
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,37 @@
1
1
  import { mkdirSync, renameSync, writeFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { cliConfigDir } from './config.js';
4
- import { normalizeLastRun } from './advisor-context.js';
5
- const TAIL_LIMIT = 4_000;
6
- function appendTail(current, chunk) {
7
- const text = typeof chunk === 'string' ? chunk : Buffer.isBuffer(chunk) ? chunk.toString() : String(chunk);
8
- const combined = current + text;
9
- return combined.length <= TAIL_LIMIT ? combined : combined.slice(-TAIL_LIMIT);
4
+ /** The registered command path and the option names given on the command line. */
5
+ export function describeInvocation(action) {
6
+ const names = [];
7
+ for (let at = action; at && at.parent; at = at.parent)
8
+ names.unshift(at.name());
9
+ const options = action.options
10
+ .filter((option) => action.getOptionValueSource(option.attributeName()) === 'cli')
11
+ .map((option) => option.long ?? option.short ?? '')
12
+ .filter(Boolean)
13
+ .sort();
14
+ return { command: names.join(' '), options };
10
15
  }
11
- /** Capture one invocation without changing command output or command failure behavior. */
12
- export function recordLastRun(argv) {
13
- let stdout = '';
14
- let stderr = '';
15
- const originalStdoutWrite = process.stdout.write.bind(process.stdout);
16
- const originalStderrWrite = process.stderr.write.bind(process.stderr);
17
- process.stdout.write = ((chunk, ...args) => {
18
- stdout = appendTail(stdout, chunk);
19
- return originalStdoutWrite(chunk, ...args);
20
- });
21
- process.stderr.write = ((chunk, ...args) => {
22
- stderr = appendTail(stderr, chunk);
23
- return originalStderrWrite(chunk, ...args);
24
- });
16
+ let invocation = null;
17
+ /** Called once the command is known (commander preAction). */
18
+ export function noteLastRunCommand(action) {
19
+ invocation = describeInvocation(action);
20
+ }
21
+ /** Write the record when the process exits, without changing command output or failure behavior. */
22
+ export function recordLastRun(cliVersion) {
25
23
  process.once('exit', (exitCode) => {
26
24
  try {
27
25
  const dir = cliConfigDir();
28
26
  mkdirSync(dir, { recursive: true, mode: 0o700 });
29
- const record = normalizeLastRun({
30
- command: argv[0] ?? 'somewhere',
31
- args: argv.slice(1),
27
+ const record = {
28
+ // A usage error never reaches a command: no command and no options.
29
+ command: invocation?.command ?? '',
30
+ options: invocation?.options ?? [],
32
31
  exit_code: exitCode ?? process.exitCode ?? 0,
33
- stdout_tail: stdout,
34
- stderr_tail: stderr,
35
32
  timestamp: new Date().toISOString(),
36
- });
33
+ cli_version: cliVersion,
34
+ };
37
35
  const path = join(dir, 'last-run.json');
38
36
  const temporary = join(dir, 'last-run.json.tmp');
39
37
  writeFileSync(temporary, JSON.stringify(record) + '\n', { mode: 0o600 });
@@ -1 +1 @@
1
- {"version":3,"file":"last-run.js","sourceRoot":"","sources":["../../src/lib/last-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"last-run.js","sourceRoot":"","sources":["../../src/lib/last-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAoB3C,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,EAAE,GAAmB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM;QAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;SAC3B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC;SACjF,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SAClD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,EAAE,CAAC;IACV,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,IAAI,UAAU,GAAkD,IAAI,CAAC;AAErE,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,MAAe;IAChD,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;YAC3B,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAmB;gBAC7B,oEAAoE;gBACpE,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,EAAE;gBAClC,OAAO,EAAE,UAAU,EAAE,OAAO,IAAI,EAAE;gBAClC,SAAS,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC;gBAC5C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,WAAW,EAAE,UAAU;aACxB,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YACjD,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}