@somewhere-tech/cli 0.31.7 → 0.31.9

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.
@@ -0,0 +1,42 @@
1
+ import { callPlatformTool } from '../lib/platform-tools.js';
2
+ import { compactRecord, resolveProjectRef } from '../lib/platform-command.js';
3
+ import { error, printJson, success } from '../lib/output.js';
4
+ export function registerEmail(program) {
5
+ const email = program
6
+ .command('email')
7
+ .description('Send transactional email')
8
+ .addHelpText('after', '\nExample:\n somewhere email send alice@example.com --from hello@myapp.com --subject "Welcome" --text "You are in." --project my-app\n');
9
+ email
10
+ .command('send <recipient>')
11
+ .description('Send one transactional email')
12
+ .requiredOption('-p, --project <project>', 'Project slug or ID')
13
+ .requiredOption('--from <sender>', 'Sender on a verified project domain')
14
+ .requiredOption('--subject <subject>', 'Subject line')
15
+ .option('--text <body>', 'Plaintext body')
16
+ .option('--html <body>', 'HTML body')
17
+ .option('--json', 'Print the complete response as JSON')
18
+ .action(async (recipient, opts) => {
19
+ try {
20
+ if (opts.text === undefined && opts.html === undefined) {
21
+ throw new Error('Pass --text <body>, --html <body>, or both.');
22
+ }
23
+ const value = await callPlatformTool('email_send', compactRecord([
24
+ ['project_id', resolveProjectRef(opts.project)],
25
+ ['to', recipient],
26
+ ['from', opts.from],
27
+ ['subject', opts.subject],
28
+ ['text', opts.text],
29
+ ['html', opts.html],
30
+ ]), { allTools: true });
31
+ if (opts.json)
32
+ printJson(value);
33
+ else
34
+ success(`Email sent to ${recipient}.`);
35
+ }
36
+ catch (err) {
37
+ error(err instanceof Error ? err.message : String(err));
38
+ process.exitCode = 1;
39
+ }
40
+ });
41
+ }
42
+ //# sourceMappingURL=email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../src/commands/email.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAW7D,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,0BAA0B,CAAC;SACvC,WAAW,CACV,OAAO,EACP,yIAAyI,CAC1I,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,8BAA8B,CAAC;SAC3C,cAAc,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;SAC/D,cAAc,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;SACxE,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,QAAQ,EAAE,qCAAqC,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAsB,EAAE,EAAE;QAC1D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,aAAa,CAAC;gBAC/D,CAAC,YAAY,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/C,CAAC,IAAI,EAAE,SAAS,CAAC;gBACjB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;gBACzB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;aACpB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,IAAI;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;;gBAC3B,OAAO,CAAC,iBAAiB,SAAS,GAAG,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -77,10 +77,71 @@ export function planEntitlementFromError(err) {
77
77
  * wording is kept — it is the thing that knows which plans include it. */
78
78
  export function planEntitlementLine(note) {
79
79
  const subject = note.code === 'CLOUD_DEV_NOT_ENABLED'
80
- ? 'Cloud dev'
80
+ ? 'Preview'
81
81
  : 'Deploy status';
82
82
  return `${subject}: not included on this plan — ${note.message}`;
83
83
  }
84
+ /** Build the production-only status from the plan-neutral deploy history API.
85
+ * Preview candidates intentionally do not exist on this surface. */
86
+ export function productionDeploymentFromHistory(value) {
87
+ const response = isRecord(value) ? value : {};
88
+ const rawDeploys = Array.isArray(value)
89
+ ? value
90
+ : Array.isArray(response.deploys)
91
+ ? response.deploys
92
+ : Array.isArray(response.releases)
93
+ ? response.releases
94
+ : [];
95
+ const deploys = rawDeploys.filter(isRecord);
96
+ const topLevelActiveId = typeof response.active_release_id === 'string'
97
+ ? response.active_release_id
98
+ : null;
99
+ const active = deploys.find((deploy) => topLevelActiveId !== null && deploy.release_id === topLevelActiveId)
100
+ ?? deploys.find((deploy) => deploy.active === true)
101
+ ?? [...deploys]
102
+ .filter((deploy) => deploy.status === 'success' || deploy.status === 'live' || deploy.status === 'active')
103
+ .sort((a, b) => (typeof b.version === 'number' ? b.version : -1)
104
+ - (typeof a.version === 'number' ? a.version : -1))[0]
105
+ ?? null;
106
+ const activeReleaseId = topLevelActiveId
107
+ ?? (typeof active?.active_release_id === 'string'
108
+ ? active.active_release_id
109
+ : typeof active?.release_id === 'string'
110
+ ? active.release_id
111
+ : null);
112
+ const prodVersion = typeof response.prod_version === 'number'
113
+ ? response.prod_version
114
+ : typeof response.production_version === 'number'
115
+ ? response.production_version
116
+ : typeof active?.version === 'number'
117
+ ? active.version
118
+ : 0;
119
+ return {
120
+ published: activeReleaseId !== null || prodVersion > 0,
121
+ prod_version: prodVersion,
122
+ active_release_id: activeReleaseId,
123
+ preview_candidates: [],
124
+ };
125
+ }
126
+ function printProductionDeployment(deployment) {
127
+ const prodVersion = typeof deployment.prod_version === 'number'
128
+ ? deployment.prod_version
129
+ : typeof deployment.dev_version === 'number' && deployment.in_sync === true
130
+ ? deployment.dev_version
131
+ : null;
132
+ if (prodVersion !== null)
133
+ info(`Production version: ${teal(String(prodVersion))}`);
134
+ if (typeof deployment.active_release_id === 'string') {
135
+ info(`Active release: ${dim(deployment.active_release_id)}`);
136
+ }
137
+ const provenance = deploymentProvenanceFromStatus(deployment);
138
+ if (provenance.promotedFromCandidate) {
139
+ info(`Promoted from candidate ${teal(provenance.promotedFromCandidate)}`);
140
+ }
141
+ if (provenance.shortContentHash) {
142
+ info(`Content hash: ${dim(provenance.shortContentHash)}`);
143
+ }
144
+ }
84
145
  export function registerStatus(program) {
85
146
  program
86
147
  .command('status [project]')
@@ -143,23 +204,7 @@ export function registerStatus(program) {
143
204
  throw new Error('deploy_status returned an unexpected response.');
144
205
  deploymentStatus = deployment;
145
206
  if (!opts.json) {
146
- const prodVersion = typeof deployment.prod_version === 'number'
147
- ? deployment.prod_version
148
- : typeof deployment.dev_version === 'number' && deployment.in_sync === true
149
- ? deployment.dev_version
150
- : null;
151
- if (prodVersion !== null)
152
- info(`Production version: ${teal(String(prodVersion))}`);
153
- if (typeof deployment.active_release_id === 'string') {
154
- info(`Active release: ${dim(deployment.active_release_id)}`);
155
- }
156
- const provenance = deploymentProvenanceFromStatus(deployment);
157
- if (provenance.promotedFromCandidate) {
158
- info(`Promoted from candidate ${teal(provenance.promotedFromCandidate)}`);
159
- }
160
- if (provenance.shortContentHash) {
161
- info(`Content hash: ${dim(provenance.shortContentHash)}`);
162
- }
207
+ printProductionDeployment(deployment);
163
208
  if (deployment.dev_ahead === true) {
164
209
  info(`Preview: ${deployment.files_changed ?? 'some'} file(s) ahead of production`);
165
210
  }
@@ -177,6 +222,7 @@ export function registerStatus(program) {
177
222
  for (const line of promoteCommands({
178
223
  previewSessionId: candidate.draft_id,
179
224
  previewId: candidate.candidate_release_id,
225
+ projectRef: projectId,
180
226
  interactive: process.stdin.isTTY === true,
181
227
  })) {
182
228
  info(`Promote: ${dim(line)}`);
@@ -193,6 +239,18 @@ export function registerStatus(program) {
193
239
  // exits non-zero.
194
240
  deploymentEntitlement = planEntitlementFromError(err);
195
241
  if (deploymentEntitlement) {
242
+ try {
243
+ const history = await client.call('GET', `/projects/${encodeURIComponent(projectId)}/deploys`);
244
+ deploymentStatus = productionDeploymentFromHistory(history);
245
+ if (!opts.json)
246
+ printProductionDeployment(deploymentStatus);
247
+ }
248
+ catch (historyErr) {
249
+ deploymentError = historyErr instanceof Error ? historyErr.message : String(historyErr);
250
+ if (!opts.json)
251
+ error(`Production status: ${deploymentError}`);
252
+ process.exitCode = 1;
253
+ }
196
254
  if (!opts.json) {
197
255
  info(planEntitlementLine(deploymentEntitlement));
198
256
  info(dim('— your deployed app and `somewhere deploy` are unaffected'));
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AACA,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,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAc5D;yEACyE;AACzE,MAAM,UAAU,8BAA8B,CAC5C,UAAmC;IAEnC,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,0BAA0B,KAAK,QAAQ;WACtE,UAAU,CAAC,0BAA0B,CAAC,IAAI,EAAE;QAC/C,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,EAAE;QAC9C,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,IAAI,GAAG,OAAO,UAAU,CAAC,uBAAuB,KAAK,QAAQ;QACjE,CAAC,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QAC7E,CAAC,CAAC,IAAI,CAAC;IACT,OAAO;QACL,qBAAqB,EAAE,SAAS;QAChC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;KACjE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,UAAmC;IAEnC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QACtD,CAAC,CAAC,UAAU,CAAC,kBAAkB;QAC/B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;YACxB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAChD,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;eACnC,OAAO,SAAS,CAAC,oBAAoB,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACrE,OAAO,CAAC;gBACN,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;gBACpD,GAAG,CAAC,OAAO,SAAS,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrG,GAAG,CAAC,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1F,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;4EAC4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,KAAoC;IACrE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,8CAA8C,CAAC;IACxF,MAAM,KAAK,GAAG,KAAK;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACjH,OAAO,qBAAqB,KAAK,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gDAAgD,CAAC;AACzH,CAAC;AAED;;;;;sBAKsB;AACtB,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;CACnB,CAAC,CAAC;AAOH;;sEAEsE;AACtE,MAAM,UAAU,wBAAwB,CAAC,GAAY;IACnD,MAAM,IAAI,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACrE,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,mBAAmB,CAAC,IAAyB;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,uBAAuB;QACnD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,CAAC;IACpB,OAAO,GAAG,OAAO,iCAAiC,IAAI,CAAC,OAAO,EAAE,CAAC;AACnE,CAAC;AAUD;oEACoE;AACpE,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,QAAQ,CAAC,OAAO;YAClB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,QAAQ;gBACnB,CAAC,CAAC,EAAE,CAAC;IACX,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAA6B,CAAC;IACxE,MAAM,gBAAgB,GAAG,OAAO,QAAQ,CAAC,iBAAiB,KAAK,QAAQ;QACrE,CAAC,CAAC,QAAQ,CAAC,iBAAiB;QAC5B,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACrC,gBAAgB,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC;WACjE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;WAChD,CAAC,GAAG,OAAO,CAAC;aACZ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;aACzG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;cAC9C,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;WACvD,IAAI,CAAC;IACV,MAAM,eAAe,GAAG,gBAAgB;WACnC,CAAC,OAAO,MAAM,EAAE,iBAAiB,KAAK,QAAQ;YAC/C,CAAC,CAAC,MAAM,CAAC,iBAAiB;YAC1B,CAAC,CAAC,OAAO,MAAM,EAAE,UAAU,KAAK,QAAQ;gBACtC,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,OAAO,QAAQ,CAAC,YAAY,KAAK,QAAQ;QAC3D,CAAC,CAAC,QAAQ,CAAC,YAAY;QACvB,CAAC,CAAC,OAAO,QAAQ,CAAC,kBAAkB,KAAK,QAAQ;YAC/C,CAAC,CAAC,QAAQ,CAAC,kBAAkB;YAC7B,CAAC,CAAC,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ;gBACnC,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,CAAC,CAAC;IAEV,OAAO;QACL,SAAS,EAAE,eAAe,KAAK,IAAI,IAAI,WAAW,GAAG,CAAC;QACtD,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,eAAe;QAClC,kBAAkB,EAAE,EAAE;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,UAAmC;IACpE,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ;QAC7D,CAAC,CAAC,UAAU,CAAC,YAAY;QACzB,CAAC,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI;YACzE,CAAC,CAAC,UAAU,CAAC,WAAW;YACxB,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,WAAW,KAAK,IAAI;QAAE,IAAI,CAAC,uBAAuB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,IAAI,OAAO,UAAU,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,UAAU,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrC,IAAI,CAAC,2BAA2B,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,iBAAiB,EAAE,kHAAkH,CAAC;SAC7I,MAAM,CAAC,QAAQ,EAAE,wCAAwC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,IAAI,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,gIAAgI,CAAC,CAAC;gBACxI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,CAAC;QAED,IAAI,aAAa,GAQN,IAAI,CAAC;QAChB,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,gBAAgB,GAAmC,IAAI,CAAC;QAC5D,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,IAAI,qBAAqB,GAA+B,IAAI,CAAC;QAC7D,IAAI,eAAe,GAGR,IAAI,CAAC;QAEhB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAQxB,KAAK,EAAE,aAAa,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACxD,aAAa,GAAG,CAAC,CAAC;YAElB,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAC1E,yBAAyB,CAAC,CAAC,CAAC,CAC7B,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrE,IAAI,UAAU;oBAAE,IAAI,CAAC,QAAQ,UAAU,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;oBACjB,IAAI,CAAC,gBAAgB,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,mEAAmE;gBACnE,uEAAuE;gBACvE,4DAA4D;gBAC5D,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;oBAChD,IAAI,CAAC,CAAC,CAAC,oBAAoB;wBACzB,CAAC,CAAC,iCAAiC,GAAG,CAAC,6DAA6D,CAAC,EAAE;wBACvG,CAAC,CAAC,wCAAwC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,KAAK,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,sDAAsD;QAC9E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,gBAAgB,CAC1D,eAAe,EACf,EAAE,UAAU,EAAE,SAAS,EAAE,EACzB,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7F,gBAAgB,GAAG,UAAU,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,yBAAyB,CAAC,UAAU,CAAC,CAAC;gBACtC,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;oBAClC,IAAI,CAAC,YAAY,UAAU,CAAC,aAAa,IAAI,MAAM,8BAA8B,CAAC,CAAC;gBACrF,CAAC;qBAAM,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;oBACvC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAC3D,CAAC;gBACD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,UAAU,CAAC,CAAC;gBACtE,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC7D,IAAI,CAAC,oBAAoB,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC7G,IAAI,CAAC,sBAAsB,GAAG,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;oBAClE,IAAI,SAAS,CAAC,cAAc;wBAAE,IAAI,CAAC,iBAAiB,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;oBAChF,mEAAmE;oBACnE,mEAAmE;oBACnE,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC;wBACjC,gBAAgB,EAAE,SAAS,CAAC,QAAQ;wBACpC,SAAS,EAAE,SAAS,CAAC,oBAAoB;wBACzC,UAAU,EAAE,SAAS;wBACrB,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;qBAC1C,CAAC,EAAE,CAAC;wBACH,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAChC,CAAC;oBACD,IAAI,SAAS,CAAC,UAAU;wBAAE,IAAI,CAAC,oBAAoB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,oEAAoE;YACpE,mEAAmE;YACnE,kBAAkB;YAClB,qBAAqB,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAC/B,KAAK,EACL,aAAa,kBAAkB,CAAC,SAAS,CAAC,UAAU,CACrD,CAAC;oBACF,gBAAgB,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;oBAC5D,IAAI,CAAC,IAAI,CAAC,IAAI;wBAAE,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,eAAe,GAAG,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACxF,IAAI,CAAC,IAAI,CAAC,IAAI;wBAAE,KAAK,CAAC,sBAAsB,eAAe,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACf,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,IAAI;oBAAE,KAAK,CAAC,kBAAkB,eAAe,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAGzB,KAAK,EAAE,gBAAgB,CAAC,CAAC;YAC5B,eAAe,GAAG,EAAE,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,uEAAuE;gBACvE,uEAAuE;gBACvE,wEAAwE;gBACxE,qDAAqD;gBACrD,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,aAAa,CAAC;gBAC/E,IAAI,CAAC,kBAAkB,QAAQ,IAAI,GAAG,CAAC,gEAAgE,CAAC,EAAE,CAAC,CAAC;gBAC5G,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6CAA6C;QAC/C,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,SAAS,CAAC;gBACR,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,gBAAgB;gBAC5B,SAAS,EAAE,eAAe;gBAC1B,aAAa,EAAE,YAAY;gBAC3B,gBAAgB,EAAE,eAAe;gBACjC,gEAAgE;gBAChE,6DAA6D;gBAC7D,sBAAsB,EAAE,qBAAqB,KAAK,IAAI;oBACpD,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC;wBACE,IAAI,EAAE,qBAAqB,CAAC,IAAI;wBAChC,OAAO,EAAE,qBAAqB,CAAC,OAAO;wBACtC,eAAe,EAAE,KAAK;qBACvB;gBACL,gEAAgE;gBAChE,uEAAuE;gBACvE,kEAAkE;gBAClE,4DAA4D;gBAC5D,YAAY,EAAE,aAAa,KAAK,IAAI;uBAC/B,OAAO,aAAa,CAAC,oBAAoB,KAAK,SAAS;oBAC1D,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC;wBACE,OAAO,EAAE,aAAa,CAAC,oBAAoB;wBAC3C,cAAc,EAAE,aAAa,CAAC,2BAA2B,IAAI,EAAE;wBAC/D,eAAe,EAAE,KAAK;qBACvB;aACN,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,325 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { ApiClient, CliApiError } from '../lib/client.js';
4
+ import { getToken, loadProjectConfig } from '../lib/config.js';
5
+ import { normalizeBrowserActions, } from '../lib/browser-actions.js';
6
+ import { isLoopbackUrl, runLocalBrowser } from '../local/browser-run.js';
7
+ import { dim, error, green, red, teal } from '../lib/output.js';
8
+ const VERIFY_TIMEOUT_MS = 90_000;
9
+ const DEFAULT_VIEWPORTS = ['desktop', 'mobile'];
10
+ function isRecord(value) {
11
+ return !!value && typeof value === 'object' && !Array.isArray(value);
12
+ }
13
+ function normalizeExpectedRequests(raw) {
14
+ if (raw === undefined)
15
+ return [];
16
+ if (!Array.isArray(raw))
17
+ throw new Error('expect_requests must be a JSON array.');
18
+ if (raw.length > 30)
19
+ throw new Error(`expect_requests has ${raw.length} items; max is 30.`);
20
+ return raw.map((value, index) => {
21
+ if (!isRecord(value) || typeof value.path !== 'string' || !value.path) {
22
+ throw new Error(`expect_requests[${index}].path must be a non-empty string.`);
23
+ }
24
+ if (typeof value.status !== 'number' || !Number.isInteger(value.status) || value.status < 100 || value.status > 599) {
25
+ throw new Error(`expect_requests[${index}].status must be an integer from 100 through 599.`);
26
+ }
27
+ return { path: value.path, status: value.status };
28
+ });
29
+ }
30
+ function normalizeViewports(raw) {
31
+ if (raw === undefined)
32
+ return [...DEFAULT_VIEWPORTS];
33
+ if (!Array.isArray(raw) || raw.length === 0)
34
+ throw new Error('viewports must be a non-empty JSON array.');
35
+ if (raw.length > 4)
36
+ throw new Error(`viewports has ${raw.length} items; max is 4.`);
37
+ const labels = new Set();
38
+ return raw.map((value, index) => {
39
+ if (value === 'desktop' || value === 'mobile') {
40
+ if (labels.has(value))
41
+ throw new Error(`viewports[${index}] duplicates label "${value}".`);
42
+ labels.add(value);
43
+ return value;
44
+ }
45
+ if (!isRecord(value)
46
+ || typeof value.label !== 'string'
47
+ || !/^[a-z0-9][a-z0-9_-]{0,31}$/i.test(value.label)
48
+ || typeof value.width !== 'number'
49
+ || !Number.isInteger(value.width)
50
+ || value.width < 100
51
+ || value.width > 3840
52
+ || typeof value.height !== 'number'
53
+ || !Number.isInteger(value.height)
54
+ || value.height < 100
55
+ || value.height > 2160) {
56
+ throw new Error(`viewports[${index}] must be "desktop", "mobile", or { "label", "width": 100..3840, "height": 100..2160 }.`);
57
+ }
58
+ if (labels.has(value.label))
59
+ throw new Error(`viewports[${index}] duplicates label "${value.label}".`);
60
+ labels.add(value.label);
61
+ return { label: value.label, width: value.width, height: value.height };
62
+ });
63
+ }
64
+ export function normalizeVerifyFlow(raw) {
65
+ if (raw === undefined) {
66
+ return { actions: [], expect_requests: [], visible_only: false, viewports: [...DEFAULT_VIEWPORTS] };
67
+ }
68
+ if (!isRecord(raw))
69
+ throw new Error('flow must be a JSON object.');
70
+ const supported = new Set(['actions', 'expect_requests', 'visible_only', 'viewports']);
71
+ const unknown = Object.keys(raw).filter((key) => !supported.has(key));
72
+ if (unknown.length)
73
+ throw new Error(`flow has unsupported field${unknown.length === 1 ? '' : 's'}: ${unknown.join(', ')}.`);
74
+ const actions = normalizeBrowserActions(raw.actions ?? []);
75
+ if (!actions.ok)
76
+ throw new Error(actions.error);
77
+ if (raw.visible_only !== undefined && typeof raw.visible_only !== 'boolean') {
78
+ throw new Error('visible_only must be boolean.');
79
+ }
80
+ return {
81
+ actions: actions.actions,
82
+ expect_requests: normalizeExpectedRequests(raw.expect_requests),
83
+ visible_only: raw.visible_only === true,
84
+ viewports: normalizeViewports(raw.viewports),
85
+ };
86
+ }
87
+ export function loadVerifyFlow(path, cwd = process.cwd()) {
88
+ if (!path)
89
+ return normalizeVerifyFlow(undefined);
90
+ const absolute = resolve(cwd, path);
91
+ if (!existsSync(absolute))
92
+ throw new Error(`Flow file not found: ${absolute}`);
93
+ let parsed;
94
+ try {
95
+ parsed = JSON.parse(readFileSync(absolute, 'utf8'));
96
+ }
97
+ catch (cause) {
98
+ throw new Error(`Flow file is not valid JSON: ${absolute} — ${cause instanceof Error ? cause.message : String(cause)}`);
99
+ }
100
+ return normalizeVerifyFlow(parsed);
101
+ }
102
+ function resolveViewport(input) {
103
+ if (input === 'desktop')
104
+ return { label: 'desktop', width: 1280, height: 800, wire: 'desktop' };
105
+ if (input === 'mobile')
106
+ return { label: 'mobile', width: 390, height: 844, wire: 'mobile' };
107
+ return { label: input.label, width: input.width, height: input.height, wire: { width: input.width, height: input.height } };
108
+ }
109
+ function actionName(action, fallback) {
110
+ if (!action)
111
+ return fallback;
112
+ if ('click' in action)
113
+ return `click ${action.click}`;
114
+ if ('fill' in action)
115
+ return `fill ${action.fill}`;
116
+ if ('select' in action)
117
+ return `select ${action.select}`;
118
+ if ('wait' in action)
119
+ return `wait ${String(action.wait)}`;
120
+ if ('expect' in action)
121
+ return `expect ${action.expect.selector}`;
122
+ return `eval ${action.eval}`;
123
+ }
124
+ function reportPassed(report) {
125
+ const screenshotHealthy = (report.screenshots ?? []).some((shot) => {
126
+ if (typeof shot === 'string')
127
+ return shot.length > 0;
128
+ return !shot.error && !!(shot.path ?? shot.url ?? shot.fs_path ?? shot.scratch_url);
129
+ });
130
+ return report.passed !== false
131
+ && (report.page_errors?.length ?? 0) === 0
132
+ && (report.console_errors?.length ?? 0) === 0
133
+ && (report.failed_requests?.length ?? 0) === 0
134
+ && !(report.request_expectations ?? []).some((item) => !item.ok)
135
+ && screenshotHealthy;
136
+ }
137
+ function shapeVerificationReport(target, flow, runs) {
138
+ const steps = [];
139
+ const pageErrors = [];
140
+ const consoleErrors = [];
141
+ const failedRequests = [];
142
+ const expectations = [];
143
+ const screenshots = [];
144
+ for (const { viewport, report } of runs) {
145
+ for (const [index, step] of (report.steps ?? []).entries()) {
146
+ const sourceIndex = typeof step.step === 'number' ? step.step : index;
147
+ // The local browser models its requested final capture as an internal
148
+ // screenshot step. Hosted capture_after does not, so keep the public
149
+ // verification steps limited to the caller's flow on both halves.
150
+ if (sourceIndex >= flow.actions.length && step.action === 'screenshot')
151
+ continue;
152
+ const passed = (step.ok ?? step.passed) !== false;
153
+ steps.push({
154
+ viewport: viewport.label,
155
+ step: sourceIndex + 1,
156
+ name: actionName(flow.actions[sourceIndex], step.action ?? 'page load'),
157
+ passed,
158
+ ...(step.error ? { error: step.error } : {}),
159
+ ...(typeof step.duration_ms === 'number' ? { duration_ms: step.duration_ms } : {}),
160
+ ...(step.value !== undefined ? { value: step.value } : step.result !== undefined ? { value: step.result } : {}),
161
+ });
162
+ }
163
+ for (const detail of report.page_errors ?? [])
164
+ pageErrors.push({ viewport: viewport.label, detail });
165
+ for (const detail of report.console_errors ?? [])
166
+ consoleErrors.push({ viewport: viewport.label, detail });
167
+ for (const detail of report.failed_requests ?? [])
168
+ failedRequests.push({ viewport: viewport.label, detail });
169
+ for (const detail of report.request_expectations ?? [])
170
+ expectations.push({ viewport: viewport.label, detail });
171
+ for (const shot of report.screenshots ?? []) {
172
+ if (typeof shot === 'string') {
173
+ screenshots.push({ viewport: viewport.label, label: 'page', path: shot });
174
+ }
175
+ else {
176
+ screenshots.push({ viewport: viewport.label, label: shot.label ?? 'page', ...shot });
177
+ }
178
+ }
179
+ }
180
+ const failingStep = steps.find((step) => !step.passed);
181
+ const failedExpectation = expectations.find((item) => !item.detail.ok);
182
+ const failedScreenshot = runs.find(({ report }) => !report.screenshots?.some((shot) => {
183
+ if (typeof shot === 'string')
184
+ return shot.length > 0;
185
+ return !shot.error && !!(shot.path ?? shot.url ?? shot.fs_path ?? shot.scratch_url);
186
+ }));
187
+ const passed = runs.every(({ report }) => reportPassed(report));
188
+ let verdict;
189
+ if (failingStep) {
190
+ verdict = `FAIL — step ${failingStep.step} (${failingStep.name}) failed at ${failingStep.viewport}${failingStep.error ? `: ${failingStep.error}` : '.'}`;
191
+ }
192
+ else if (pageErrors.length) {
193
+ verdict = `FAIL — page error at ${pageErrors[0].viewport}: ${String(pageErrors[0].detail)}`;
194
+ }
195
+ else if (consoleErrors.length) {
196
+ verdict = `FAIL — console error at ${consoleErrors[0].viewport}: ${String(consoleErrors[0].detail)}`;
197
+ }
198
+ else if (failedRequests.length) {
199
+ verdict = `FAIL — unexpected request failure at ${failedRequests[0].viewport}: ${JSON.stringify(failedRequests[0].detail)}`;
200
+ }
201
+ else if (failedExpectation) {
202
+ verdict = `FAIL — expected request ${failedExpectation.detail.path}:${failedExpectation.detail.status} was not observed at ${failedExpectation.viewport}.`;
203
+ }
204
+ else if (failedScreenshot) {
205
+ verdict = `FAIL — screenshot capture failed at ${failedScreenshot.viewport.label}.`;
206
+ }
207
+ else {
208
+ verdict = flow.actions.length
209
+ ? `PASS — ${flow.actions.length} step${flow.actions.length === 1 ? '' : 's'} passed at ${runs.map((run) => run.viewport.label).join(' and ')}; page, console, and network healthy.`
210
+ : `PASS — default page check passed at ${runs.map((run) => run.viewport.label).join(' and ')}; page, console, and network healthy.`;
211
+ }
212
+ return {
213
+ passed,
214
+ verdict,
215
+ target,
216
+ viewports: runs.map(({ viewport, report }) => ({
217
+ label: viewport.label,
218
+ width: viewport.width,
219
+ height: viewport.height,
220
+ passed: reportPassed(report),
221
+ final_url: report.final_url ?? target,
222
+ })),
223
+ steps,
224
+ health: {
225
+ page: { passed: pageErrors.length === 0, errors: pageErrors },
226
+ console: { passed: consoleErrors.length === 0, errors: consoleErrors },
227
+ network: {
228
+ passed: failedRequests.length === 0 && expectations.every((item) => item.detail.ok),
229
+ failed_requests: failedRequests,
230
+ expectations,
231
+ },
232
+ },
233
+ screenshots,
234
+ };
235
+ }
236
+ export async function runVerification(target, flow, client) {
237
+ if (!target.url && !target.project_id)
238
+ throw new Error('Verification needs a URL or project.');
239
+ const resolved = flow.viewports.map(resolveViewport);
240
+ const targetLabel = target.url ?? target.project_id ?? '(unknown target)';
241
+ if (target.url && isLoopbackUrl(target.url)) {
242
+ const localUrl = target.url;
243
+ const runs = await Promise.all(resolved.map(async (viewport) => {
244
+ const report = await runLocalBrowser({
245
+ url: localUrl,
246
+ actions: flow.actions,
247
+ expectedRequests: flow.expect_requests,
248
+ visibleOnly: flow.visible_only,
249
+ screenshotPath: resolve(`somewhere-verify-${viewport.label}.jpg`),
250
+ viewport: { width: viewport.width, height: viewport.height },
251
+ timeoutMs: VERIFY_TIMEOUT_MS,
252
+ });
253
+ return { viewport, report };
254
+ }));
255
+ return shapeVerificationReport(targetLabel, flow, runs);
256
+ }
257
+ if (!client)
258
+ throw new Error('Hosted verification needs an authenticated API client.');
259
+ const runs = await Promise.all(resolved.map(async (viewport) => {
260
+ const report = await client.call('POST', '/browser/test', {
261
+ ...target,
262
+ actions: flow.actions,
263
+ expect_requests: flow.expect_requests,
264
+ visible_only: flow.visible_only,
265
+ viewport: viewport.wire,
266
+ capture_after: true,
267
+ inline: false,
268
+ ...(!target.project_id ? { store: true } : {}),
269
+ }, undefined, { timeoutMs: VERIFY_TIMEOUT_MS });
270
+ return { viewport, report };
271
+ }));
272
+ return shapeVerificationReport(targetLabel, flow, runs);
273
+ }
274
+ export function formatVerifyReport(report) {
275
+ const lines = [report.passed ? green(report.verdict) : red(report.verdict)];
276
+ for (const step of report.steps) {
277
+ lines.push(`step ${step.step} ${step.passed ? green('✓') : red('✗')} [${step.viewport}] ${step.name}${step.error ? ` ${dim(`— ${step.error}`)}` : ''}`);
278
+ }
279
+ lines.push(`page_health: ${report.health.page.passed ? green('PASS') : red('FAIL')}`);
280
+ lines.push(`console_health: ${report.health.console.passed ? green('PASS') : red('FAIL')}`);
281
+ lines.push(`network_health: ${report.health.network.passed ? green('PASS') : red('FAIL')}`);
282
+ for (const shot of report.screenshots) {
283
+ const location = shot.url ?? shot.scratch_url ?? shot.fs_path ?? shot.path ?? shot.error ?? '(missing)';
284
+ lines.push(`screenshot: [${shot.viewport}] ${teal(location)}`);
285
+ if (shot.fs_path && (shot.url || shot.scratch_url))
286
+ lines.push(`screenshot_file: [${shot.viewport}] ${shot.fs_path}`);
287
+ }
288
+ return lines;
289
+ }
290
+ export function registerVerify(program) {
291
+ program
292
+ .command('verify [target]')
293
+ .description('Run one browser flow at desktop and phone size, report every step and health signal, and capture both screenshots.')
294
+ .option('--project <ref>', 'Project to verify. Defaults to the linked project when --url is omitted.')
295
+ .option('--url <url>', 'Live or local URL to verify.')
296
+ .option('--flow <file.json>', 'Flow JSON with actions, expect_requests, visible_only, and viewports. Omit for the default health check.')
297
+ .option('--json', 'Print the structured verification report as JSON.')
298
+ .action(async (target, opts) => {
299
+ try {
300
+ const url = opts.url ?? (target && /^https?:\/\//i.test(target) ? target : undefined);
301
+ const project = opts.project ?? (url ? undefined : target ?? loadProjectConfig()?.project_id);
302
+ if (!url && !project)
303
+ throw new Error('Nothing to verify. Pass --url, --project, or run from a linked project directory.');
304
+ const flow = loadVerifyFlow(opts.flow);
305
+ const local = !!url && isLoopbackUrl(url);
306
+ const report = await runVerification({ ...(project ? { project_id: project } : {}), ...(url ? { url } : {}) }, flow, local ? undefined : new ApiClient(getToken()));
307
+ if (opts.json)
308
+ console.log(JSON.stringify(report, null, 2));
309
+ else
310
+ for (const line of formatVerifyReport(report))
311
+ console.log(line);
312
+ process.exit(report.passed ? 0 : 1);
313
+ }
314
+ catch (cause) {
315
+ if (cause instanceof CliApiError) {
316
+ error(`${cause.message} ${dim(`[${cause.code}${cause.statusCode ? `, HTTP ${cause.statusCode}` : ''}]`)}`);
317
+ }
318
+ else {
319
+ error(cause instanceof Error ? cause.message : String(cause));
320
+ }
321
+ process.exit(1);
322
+ }
323
+ });
324
+ }
325
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ import { registerOpen } from './commands/open.js';
24
24
  import { registerDev, registerPreview } from './commands/dev.js';
25
25
  import { registerExec } from './commands/exec.js';
26
26
  import { registerBrowser } from './commands/browser.js';
27
+ import { registerVerify } from './commands/verify.js';
27
28
  import { registerCheck } from './commands/check.js';
28
29
  import { registerApi } from './commands/api.js';
29
30
  import { registerFs } from './commands/fs.js';
@@ -36,6 +37,8 @@ import { registerFeedback } from './commands/feedback.js';
36
37
  import { registerGrep } from './commands/grep.js';
37
38
  import { registerUsage } from './commands/usage.js';
38
39
  import { registerGit } from './commands/git.js';
40
+ import { registerCron } from './commands/cron.js';
41
+ import { registerEmail } from './commands/email.js';
39
42
  import { collectNotices } from './lib/notify/index.js';
40
43
  import { error, printJsonError, setJsonOutputMode, stripAnsi } from './lib/output.js';
41
44
  const pkg = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), '..', 'package.json'), 'utf8'));
@@ -77,6 +80,7 @@ registerDev(program);
77
80
  registerPreview(program);
78
81
  registerExec(program);
79
82
  registerBrowser(program);
83
+ registerVerify(program);
80
84
  registerCheck(program);
81
85
  registerApi(program);
82
86
  registerFs(program);
@@ -89,6 +93,8 @@ registerFeedback(program);
89
93
  registerGrep(program);
90
94
  registerUsage(program);
91
95
  registerGit(program);
96
+ registerCron(program);
97
+ registerEmail(program);
92
98
  // User-notification pipeline (update-available, advisories, announcements…).
93
99
  // Centrally gated to interactive, non-CI, non-pass-through commands and emitted to
94
100
  // STDERR as a parting line AFTER the command — never stdout, agent, or swpx/swpm
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}