@brass-build/cli 0.1.0 → 0.3.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/AGENTS.md +35 -32
- package/CHANGELOG.md +32 -0
- package/README.md +26 -21
- package/dist/api.d.ts +3 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +28 -8
- package/dist/api.js.map +1 -1
- package/dist/args.d.ts +4 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +92 -6
- package/dist/args.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +166 -61
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +49 -19
- package/dist/commands.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/login.d.ts +1 -0
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +26 -12
- package/dist/login.js.map +1 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +34 -5
- package/dist/project.js.map +1 -1
- package/dist/session.d.ts +2 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +91 -20
- package/dist/session.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/api.ts +38 -8
- package/src/args.ts +102 -6
- package/src/cli.ts +198 -60
- package/src/commands.ts +66 -19
- package/src/config.ts +5 -1
- package/src/login.ts +30 -12
- package/src/project.ts +39 -5
- package/src/session.ts +106 -21
- package/src/version.ts +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Argv dispatch: resolve the target environment + credential, build the API
|
|
2
2
|
// client, and route to a command. Kept thin over `commands.ts` (which holds
|
|
3
3
|
// the workflow logic) so the wiring here is easy to read end to end.
|
|
4
|
-
import { parseArgs, stringFlag, boolFlag, unknownFlags, valuelessFlags, } from './args.js';
|
|
4
|
+
import { parseArgs, stringFlag, boolFlag, extraPositionals, flagsNotReadBy, unknownFlags, valueFlagsOf, valuelessFlags, } from './args.js';
|
|
5
5
|
import { resolveOrigins, resolveCredential, profileForOrigins, } from './config.js';
|
|
6
|
-
import { readCredentialsFile, readPendingLogin, writeStoredCredential } from './store.js';
|
|
6
|
+
import { readCredentialsFile, readPendingLogin, writePendingLogin, writeStoredCredential, } from './store.js';
|
|
7
7
|
import { BrassApi, BrassApiError } from './api.js';
|
|
8
8
|
import { serviceTokenAuth } from './auth.js';
|
|
9
|
-
import { loginDevice, sessionAuth } from './session.js';
|
|
9
|
+
import { loginDevice, postDeviceCancel, postSignOut, sessionAuth } from './session.js';
|
|
10
10
|
import { loginStart, loginCheck } from './login.js';
|
|
11
11
|
import { createLogger } from './log.js';
|
|
12
12
|
import { publish, schemaPull, agentsPull, whoami, status, } from './commands.js';
|
|
@@ -22,7 +22,7 @@ Usage:
|
|
|
22
22
|
brass login --check Check a started sign-in once; stores the session when approved.
|
|
23
23
|
--wait [seconds] polls until approved (default 120s), renewing
|
|
24
24
|
an expired code in place and printing the new one.
|
|
25
|
-
brass logout
|
|
25
|
+
brass logout End the stored sign-in for this environment, here and on the server.
|
|
26
26
|
brass status [dir] Report the credential + app state and the one command to run next.
|
|
27
27
|
brass publish [dir] Build output in [dir] (default: dist) is deployed to the app's hosting.
|
|
28
28
|
brass schema pull --doc <docId> [--out brass-app.json]
|
|
@@ -56,7 +56,14 @@ Publish flags:
|
|
|
56
56
|
export async function run(argv) {
|
|
57
57
|
const parsed = parseArgs(argv);
|
|
58
58
|
const command = parsed.positionals[0];
|
|
59
|
-
|
|
59
|
+
// Which credential the invocation resolved, once it has. A 401 is reported
|
|
60
|
+
// in that credential's own vocabulary, so it stays undefined until
|
|
61
|
+
// `buildContext` settles it and a failure before then carries no guess.
|
|
62
|
+
let credentialKind;
|
|
63
|
+
// Answered whichever command follows, like `--help` beside it: both are
|
|
64
|
+
// declared flags of every command (`COMMON_FLAGS`), so a caller who asks
|
|
65
|
+
// which version is installed gets the answer rather than a publish.
|
|
66
|
+
if (boolFlag(parsed, 'version')) {
|
|
60
67
|
process.stdout.write(`${VERSION}\n`);
|
|
61
68
|
return 0;
|
|
62
69
|
}
|
|
@@ -74,6 +81,32 @@ export async function run(argv) {
|
|
|
74
81
|
process.stderr.write(`error: unknown ${unknown.length === 1 ? 'flag' : 'flags'} ${names}\n\n${USAGE}`);
|
|
75
82
|
return 1;
|
|
76
83
|
}
|
|
84
|
+
// Then what THIS command reads, which is the same check one scope in: a
|
|
85
|
+
// flag or a positional the command ignores leaves the run differing from
|
|
86
|
+
// what the command line asked for, with nothing said. Judged from argv
|
|
87
|
+
// alone, so it answers a caller who has not signed in.
|
|
88
|
+
const misplaced = flagsNotReadBy(parsed, command);
|
|
89
|
+
if (misplaced.length > 0) {
|
|
90
|
+
const names = misplaced.map((n) => `--${n}`).join(', ');
|
|
91
|
+
process.stderr.write(`error: ${names} ${misplaced.length === 1 ? 'is not a flag' : 'are not flags'} of \`brass ${command}\`\n\n${USAGE}`);
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
const extra = extraPositionals(parsed, command);
|
|
95
|
+
if (extra.length > 0) {
|
|
96
|
+
const args = extra.map((p) => JSON.stringify(p)).join(', ');
|
|
97
|
+
process.stderr.write(`error: unexpected ${extra.length === 1 ? 'argument' : 'arguments'} ${args} for \`brass ${command}\`\n\n${USAGE}`);
|
|
98
|
+
return 1;
|
|
99
|
+
}
|
|
100
|
+
if (parsed.valuedBooleans.length > 0) {
|
|
101
|
+
const names = parsed.valuedBooleans.map((n) => `--${n}`).join(', ');
|
|
102
|
+
process.stderr.write(`error: ${names} ${parsed.valuedBooleans.length === 1 ? 'takes' : 'take'} no value\n`);
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
const bare = valuelessFlags(parsed, valueFlagsOf(command));
|
|
106
|
+
if (bare.length > 0) {
|
|
107
|
+
process.stderr.write(`error: Missing value for ${bare.map((n) => `--${n}`).join(', ')}\n`);
|
|
108
|
+
return 1;
|
|
109
|
+
}
|
|
77
110
|
const json = boolFlag(parsed, 'json');
|
|
78
111
|
const log = createLogger(json);
|
|
79
112
|
try {
|
|
@@ -87,30 +120,53 @@ export async function run(argv) {
|
|
|
87
120
|
// (and the next step to obtain one) is a first-class outcome, not an error.
|
|
88
121
|
if (command === 'status')
|
|
89
122
|
return await runStatus(parsed, log);
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return 0;
|
|
101
|
-
case 'whoami':
|
|
102
|
-
log.result(await whoami(ctx));
|
|
103
|
-
return 0;
|
|
104
|
-
default:
|
|
105
|
-
process.stderr.write(`Unknown command "${command}".\n\n${USAGE}`);
|
|
106
|
-
return 1;
|
|
123
|
+
// What the caller asked for is decided from argv alone, so it is decided
|
|
124
|
+
// BEFORE a credential is resolved. A misspelt command, a missing
|
|
125
|
+
// subcommand and an invalid flag value are all answerable without one, and
|
|
126
|
+
// resolving the credential first answers every one of them with "No
|
|
127
|
+
// credential. Run `brass login`": the caller re-authenticates over a typo,
|
|
128
|
+
// and only a caller who already has a credential is ever shown the message
|
|
129
|
+
// naming the real mistake.
|
|
130
|
+
if (!isCredentialedCommand(command)) {
|
|
131
|
+
process.stderr.write(`Unknown command "${command}".\n\n${USAGE}`);
|
|
132
|
+
return 1;
|
|
107
133
|
}
|
|
134
|
+
const plan = planCommand(command, parsed);
|
|
135
|
+
const ctx = await buildContext(parsed);
|
|
136
|
+
credentialKind = ctx.credentialKind;
|
|
137
|
+
log.result(await plan(ctx));
|
|
138
|
+
return 0;
|
|
108
139
|
}
|
|
109
140
|
catch (err) {
|
|
110
|
-
process.stderr.write(`${formatError(err)}\n`);
|
|
141
|
+
process.stderr.write(`${formatError(err, credentialKind)}\n`);
|
|
111
142
|
return 1;
|
|
112
143
|
}
|
|
113
144
|
}
|
|
145
|
+
// The commands that need a resolved credential; `login` / `logout` / `status`
|
|
146
|
+
// are answered above without one.
|
|
147
|
+
const CREDENTIALED_COMMANDS = ['publish', 'schema', 'agents', 'whoami'];
|
|
148
|
+
function isCredentialedCommand(value) {
|
|
149
|
+
return CREDENTIALED_COMMANDS.includes(value);
|
|
150
|
+
}
|
|
151
|
+
// Resolve argv to that work, validating everything argv alone decides and
|
|
152
|
+
// throwing on a shape the caller got wrong. Splitting the plan from the run is
|
|
153
|
+
// what lets the shape be judged before a credential is resolved.
|
|
154
|
+
function planCommand(command, parsed) {
|
|
155
|
+
switch (command) {
|
|
156
|
+
case 'publish':
|
|
157
|
+
return planPublish(parsed);
|
|
158
|
+
case 'schema':
|
|
159
|
+
return planSchema(parsed);
|
|
160
|
+
case 'agents':
|
|
161
|
+
return planAgents(parsed);
|
|
162
|
+
case 'whoami':
|
|
163
|
+
return (ctx) => whoami(ctx);
|
|
164
|
+
default: {
|
|
165
|
+
const exhaustive = command;
|
|
166
|
+
throw new Error(`Unhandled command "${String(exhaustive)}"`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
114
170
|
// The flags that name the target stack. Production is the default, so every
|
|
115
171
|
// other stack is reached through these.
|
|
116
172
|
const ORIGIN_FLAGS = ['api-url', 'auth-url', 'dashboard-url'];
|
|
@@ -183,6 +239,7 @@ async function runLogin(parsed, log) {
|
|
|
183
239
|
profile,
|
|
184
240
|
log,
|
|
185
241
|
...(boolFlag(parsed, 'new') ? { force: true } : {}),
|
|
242
|
+
...(waitSeconds !== undefined ? { resultFollows: true } : {}),
|
|
186
243
|
});
|
|
187
244
|
// `--start --wait` is the whole sign-in in one command: relay the code it
|
|
188
245
|
// prints, then it holds for the approval up to the deadline.
|
|
@@ -196,17 +253,49 @@ async function runLogin(parsed, log) {
|
|
|
196
253
|
// The RFC 8628 device grant: open the approval page (code prefilled), print
|
|
197
254
|
// the URL + code as a fallback for a headless box, and poll until approval.
|
|
198
255
|
const result = await loginDevice({ authBaseUrl: origins.authBaseUrl });
|
|
199
|
-
await writeStoredCredential(profile, {
|
|
256
|
+
await writeStoredCredential(profile, {
|
|
257
|
+
session: { sid: result.sessionToken, authBaseUrl: origins.authBaseUrl },
|
|
258
|
+
});
|
|
200
259
|
log.success(result.email ? `Signed in as ${result.email}.` : 'Signed in.');
|
|
201
260
|
log.result({ signed_in: true, ...(result.email !== undefined ? { email: result.email } : {}) });
|
|
202
261
|
return 0;
|
|
203
262
|
}
|
|
204
263
|
async function runLogout(parsed, log) {
|
|
205
|
-
const { profile } = resolveBase(parsed);
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
264
|
+
const { origins, profile } = resolveBase(parsed);
|
|
265
|
+
// Revoke on the server first, while the pointer is still readable. A
|
|
266
|
+
// service token belongs to an organization and is revoked in the dashboard,
|
|
267
|
+
// so only a stored session has anything to end here. The session is revoked
|
|
268
|
+
// on the auth origin it was minted on: profiles key on the api host, so the
|
|
269
|
+
// invocation's own auth flag can name a different stack, where an unknown
|
|
270
|
+
// pointer reads as already-signed-out and the real session stays live.
|
|
271
|
+
const file = await readCredentialsFile();
|
|
272
|
+
const session = file?.credentials[profile]?.session;
|
|
273
|
+
const signedOut = session === undefined
|
|
274
|
+
? true
|
|
275
|
+
: await postSignOut(session.authBaseUrl ?? origins.authBaseUrl, session.sid);
|
|
276
|
+
// A started sign-in is redeemable by whoever holds the device code, and a
|
|
277
|
+
// human may still approve it after this command returns, so cancelling it on
|
|
278
|
+
// the server is what a sign-out owes. The grant, too, is cancelled on the
|
|
279
|
+
// auth origin that minted it.
|
|
280
|
+
const pending = await readPendingLogin(profile);
|
|
281
|
+
const cancelled = pending === null ? true : await postDeviceCancel(pending.authBaseUrl, pending.deviceCode);
|
|
282
|
+
// Each record is dropped only once its server side is revoked. The record
|
|
283
|
+
// is the one handle that can name the session or grant to the server, so a
|
|
284
|
+
// failed delivery keeps it, which is what makes the retry this command
|
|
285
|
+
// recommends able to revoke anything.
|
|
286
|
+
if (signedOut)
|
|
287
|
+
await writeStoredCredential(profile, null);
|
|
288
|
+
if (cancelled)
|
|
289
|
+
await writePendingLogin(profile, null);
|
|
290
|
+
const revoked = signedOut && cancelled;
|
|
291
|
+
if (revoked) {
|
|
292
|
+
log.success('Signed out.');
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
log.warn('Brass could not be reached to revoke the sign-in, so it is kept on this machine. Run `brass logout` again when Brass is reachable.');
|
|
296
|
+
}
|
|
297
|
+
log.result({ signed_out: revoked, revoked });
|
|
298
|
+
return revoked ? 0 : 1;
|
|
210
299
|
}
|
|
211
300
|
async function runStatus(parsed, log) {
|
|
212
301
|
const { origins, profile } = resolveBase(parsed);
|
|
@@ -263,7 +352,7 @@ async function runStatus(parsed, log) {
|
|
|
263
352
|
log.result(result);
|
|
264
353
|
return 0;
|
|
265
354
|
}
|
|
266
|
-
|
|
355
|
+
function planPublish(parsed) {
|
|
267
356
|
const dir = parsed.positionals[1] ?? 'dist';
|
|
268
357
|
const flagApp = stringFlag(parsed, 'app');
|
|
269
358
|
const envApp = process.env['BRASS_APP_ID'];
|
|
@@ -271,26 +360,29 @@ async function runPublish(ctx, parsed) {
|
|
|
271
360
|
const org = stringFlag(parsed, 'org');
|
|
272
361
|
const slug = stringFlag(parsed, 'slug');
|
|
273
362
|
const clientToken = stringFlag(parsed, 'client-token');
|
|
363
|
+
const manifestPath = stringFlag(parsed, 'manifest') ?? 'brass-app.json';
|
|
274
364
|
const visibility = parseVisibilityFlag(stringFlag(parsed, 'visibility'));
|
|
275
365
|
const requireAccess = parseGateFlag(stringFlag(parsed, 'gate'));
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
366
|
+
return async (ctx) => {
|
|
367
|
+
const state = await readProjectState(ctx.cwd);
|
|
368
|
+
const appId = resolveAppId({
|
|
369
|
+
...(flagApp !== undefined ? { flagApp } : {}),
|
|
370
|
+
...(envApp !== undefined ? { envApp } : {}),
|
|
371
|
+
state,
|
|
372
|
+
profile: ctx.profile,
|
|
373
|
+
});
|
|
374
|
+
return publish(ctx, {
|
|
375
|
+
dir,
|
|
376
|
+
manifestPath,
|
|
377
|
+
...(appId !== null ? { appId } : {}),
|
|
378
|
+
...(name !== undefined ? { name } : {}),
|
|
379
|
+
...(org !== undefined ? { organizationId: org } : {}),
|
|
380
|
+
...(clientToken !== undefined ? { clientToken } : {}),
|
|
381
|
+
...(slug !== undefined ? { slug } : {}),
|
|
382
|
+
...(visibility !== undefined ? { visibility } : {}),
|
|
383
|
+
...(requireAccess !== undefined ? { requireAccess } : {}),
|
|
384
|
+
});
|
|
385
|
+
};
|
|
294
386
|
}
|
|
295
387
|
// How long `--wait` holds for the approval: bare `--wait` takes the default,
|
|
296
388
|
// `--wait <seconds>` an explicit bound. Capped so a mistyped value cannot
|
|
@@ -329,30 +421,43 @@ function parseGateFlag(value) {
|
|
|
329
421
|
}
|
|
330
422
|
return value === 'on';
|
|
331
423
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
const docId = stringFlag(parsed, 'doc');
|
|
336
|
-
if (docId === undefined)
|
|
337
|
-
throw new Error('brass schema pull requires --doc <docId>');
|
|
338
|
-
return schemaPull(ctx, { docId, outPath: stringFlag(parsed, 'out') ?? 'brass-app.json' });
|
|
424
|
+
function planSchema(parsed) {
|
|
425
|
+
if (parsed.positionals[1] !== 'pull') {
|
|
426
|
+
throw new Error('Usage: brass schema pull --doc <docId> [--out brass-app.json]');
|
|
339
427
|
}
|
|
340
|
-
|
|
428
|
+
const docId = stringFlag(parsed, 'doc');
|
|
429
|
+
if (docId === undefined)
|
|
430
|
+
throw new Error('brass schema pull requires --doc <docId>');
|
|
431
|
+
const outPath = stringFlag(parsed, 'out') ?? 'brass-app.json';
|
|
432
|
+
return (ctx) => schemaPull(ctx, { docId, outPath });
|
|
341
433
|
}
|
|
342
|
-
|
|
434
|
+
function planAgents(parsed) {
|
|
343
435
|
if (parsed.positionals[1] !== 'pull') {
|
|
344
436
|
throw new Error('Usage: brass agents pull [--out AGENTS.md | --stdout] [--org <organizationId>]');
|
|
345
437
|
}
|
|
438
|
+
// Both flags claim stdout: `--stdout` puts the instructions there verbatim,
|
|
439
|
+
// `--json` the result object. Together they interleave two payloads on one
|
|
440
|
+
// stream, so a caller parsing either reads the other's bytes as part of it.
|
|
441
|
+
if (boolFlag(parsed, 'stdout') && boolFlag(parsed, 'json')) {
|
|
442
|
+
throw new Error('Pass one of --stdout or --json: both write to stdout, so together neither is parseable.');
|
|
443
|
+
}
|
|
346
444
|
const org = stringFlag(parsed, 'org');
|
|
347
|
-
|
|
445
|
+
const options = {
|
|
348
446
|
outPath: stringFlag(parsed, 'out') ?? 'AGENTS.md',
|
|
349
447
|
...(boolFlag(parsed, 'stdout') ? { stdout: true } : {}),
|
|
350
448
|
...(org !== undefined ? { organizationId: org } : {}),
|
|
351
|
-
}
|
|
449
|
+
};
|
|
450
|
+
return (ctx) => agentsPull(ctx, options);
|
|
352
451
|
}
|
|
353
|
-
|
|
452
|
+
// Render a failure for the terminal, naming the fix for a 401 in the
|
|
453
|
+
// vocabulary of the credential that was actually rejected. A session's
|
|
454
|
+
// refusal already arrives carrying `brass login` (the refresh authors it), so
|
|
455
|
+
// appending a service-token hint there tells the caller to check an
|
|
456
|
+
// environment variable they never set, next to the sentence naming the real
|
|
457
|
+
// fix. `status` classifies the same 401 the same way.
|
|
458
|
+
function formatError(err, credentialKind) {
|
|
354
459
|
if (err instanceof BrassApiError) {
|
|
355
|
-
if (err.status === 401) {
|
|
460
|
+
if (err.status === 401 && credentialKind !== 'session') {
|
|
356
461
|
return `error: ${err.message} (the credential was rejected; check BRASS_SERVICE_TOKEN or --token)`;
|
|
357
462
|
}
|
|
358
463
|
return `error: ${err.message}`;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,QAAQ,EAGR,KAAK,aAAa,EAWnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAe/D,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,QAAQ,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,EAAE,MAAM,CAAC;IAKhB,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAE7B,GAAG,EAAE,MAAM,CAAC;IAEZ,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IAKd,cAAc,CAAC,EAAE,MAAM,CAAC;IAIxB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,aAAa,CAAC;IAI3B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,YAAY,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAOnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD,wBAAsB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/commands.js
CHANGED
|
@@ -17,7 +17,7 @@ export async function publish(ctx, opts) {
|
|
|
17
17
|
if (opts.visibility !== undefined) {
|
|
18
18
|
await ensureVisibility(ctx, appId, opts.visibility, resolved.detail?.visibility);
|
|
19
19
|
}
|
|
20
|
-
const hosting = await ensureHosting(ctx, appId, opts.slug);
|
|
20
|
+
const hosting = await ensureHosting(ctx, appId, opts.slug, opts.requireAccess);
|
|
21
21
|
if (opts.requireAccess !== undefined) {
|
|
22
22
|
await ensureGate(ctx, appId, opts.requireAccess, hosting);
|
|
23
23
|
}
|
|
@@ -32,7 +32,7 @@ export async function publish(ctx, opts) {
|
|
|
32
32
|
// of a couple of reads instead of an upload and a poll loop.
|
|
33
33
|
const unchanged = await activeVersionMatches(ctx, appId, hash);
|
|
34
34
|
if (unchanged !== null) {
|
|
35
|
-
const status = await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`);
|
|
35
|
+
const status = await awaitGateSettled(ctx, appId, await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`), opts.sleep ?? realSleep);
|
|
36
36
|
ctx.log.success(`Already up to date${status.url ? `: ${status.url}` : ''}`);
|
|
37
37
|
// Refreshed here too, so publishing twice says the same thing both times.
|
|
38
38
|
// A publisher acting on a warning re-runs publish to check, and a signal
|
|
@@ -58,7 +58,7 @@ export async function publish(ctx, opts) {
|
|
|
58
58
|
// its own, but an explicit refresh surfaces capability warnings (e.g. a
|
|
59
59
|
// schema missing `family`) right here instead of silently later.
|
|
60
60
|
const warnings = await refreshCapabilities(ctx, appId);
|
|
61
|
-
const status = await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`);
|
|
61
|
+
const status = await awaitGateSettled(ctx, appId, await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`), opts.sleep ?? realSleep);
|
|
62
62
|
if (status.url)
|
|
63
63
|
ctx.log.success(`Deployed: ${status.url}`);
|
|
64
64
|
return { app_id: appId, version_id: version.version_id, url: status.url, warnings };
|
|
@@ -106,14 +106,13 @@ async function ensureVisibility(ctx, appId, want, current) {
|
|
|
106
106
|
ctx.log.info(`Set visibility to ${want}.`);
|
|
107
107
|
}
|
|
108
108
|
// Converge the hosted load gate to `want` (`true` = gated to the audience,
|
|
109
|
-
// `false` = world-loadable). Always PATCH, even when the
|
|
110
|
-
// reads `want`: the PATCH is what
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
// the log line. (`require_access` absent === off.)
|
|
109
|
+
// `false` = world-loadable). Always PATCH, even when the reported state
|
|
110
|
+
// already reads `want`: the PATCH is what asks the platform to re-settle a
|
|
111
|
+
// gate whose reported and served states have drifted apart, which reading the
|
|
112
|
+
// reported one alone cannot detect. Skipping it on a match would leave such an
|
|
113
|
+
// app stuck, since every later publish would skip it too. `status` is the
|
|
114
|
+
// state `ensureHosting` just observed, used only to word the log line.
|
|
115
|
+
// (`require_access` absent === off.)
|
|
117
116
|
async function ensureGate(ctx, appId, want, status) {
|
|
118
117
|
const changed = (status.require_access === true) !== want;
|
|
119
118
|
await ctx.api.patch(`/apps/${encodeURIComponent(appId)}/hosting`, {
|
|
@@ -126,23 +125,54 @@ async function ensureGate(ctx, appId, want, status) {
|
|
|
126
125
|
ctx.log.info(want ? 'Load gate is on.' : 'Load gate is off (bundle is world-loadable).');
|
|
127
126
|
}
|
|
128
127
|
}
|
|
129
|
-
|
|
128
|
+
// Enable hosting when the app is not hosted yet, at the load-gate state the
|
|
129
|
+
// publish wants. Stating the gate here rather than leaving it to the PATCH
|
|
130
|
+
// below settles it in one step: a new slot is gated by default, so a publish
|
|
131
|
+
// that wants a world-loadable one would otherwise turn the gate on and
|
|
132
|
+
// straight back off, doing twice the work to reach one state.
|
|
133
|
+
async function ensureHosting(ctx, appId, slug, requireAccess) {
|
|
130
134
|
const status = await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`);
|
|
131
135
|
if (status.enabled)
|
|
132
136
|
return status;
|
|
133
137
|
const body = {};
|
|
134
138
|
if (slug !== undefined)
|
|
135
139
|
body.slug = slug;
|
|
140
|
+
if (requireAccess !== undefined)
|
|
141
|
+
body.require_access = requireAccess;
|
|
136
142
|
const enabled = await ctx.api.post(`/apps/${encodeURIComponent(appId)}/hosting`, body);
|
|
137
143
|
if (enabled.slug)
|
|
138
144
|
ctx.log.info(`Enabled hosting at ${enabled.slug}`);
|
|
139
145
|
return enabled;
|
|
140
146
|
}
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
147
|
+
// A published bundle is not reachable until the platform has registered the
|
|
148
|
+
// slot to serve it, and that registration can lag or fail on its own. Reading
|
|
149
|
+
// the status is what asks the platform to settle it, so a slot that is not
|
|
150
|
+
// ready yet is re-read a few times before publish gives up. Publishing
|
|
151
|
+
// reports success only once the slot will actually serve, so an unreachable
|
|
152
|
+
// one is a failed publish rather than a URL that answers 404.
|
|
153
|
+
const GATE_SETTLE_ATTEMPTS = 3;
|
|
154
|
+
const GATE_SETTLE_GAP_MS = 2000;
|
|
155
|
+
async function awaitGateSettled(ctx, appId, status, sleep) {
|
|
156
|
+
// An api that does not report the field tells us nothing to act on.
|
|
157
|
+
if (status.gate_settled !== false)
|
|
158
|
+
return status;
|
|
159
|
+
for (let attempt = 1; attempt < GATE_SETTLE_ATTEMPTS; attempt++) {
|
|
160
|
+
await sleep(GATE_SETTLE_GAP_MS);
|
|
161
|
+
const latest = await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting`);
|
|
162
|
+
if (latest.gate_settled !== false)
|
|
163
|
+
return latest;
|
|
164
|
+
}
|
|
165
|
+
// Says what is true of the SLOT, because both publish paths end here: the
|
|
166
|
+
// one that uploaded a new bundle and the one that found the app already
|
|
167
|
+
// serving this exact bundle and skipped the upload. A message naming an
|
|
168
|
+
// upload sends the second caller looking for one that never happened.
|
|
169
|
+
throw new Error('The hosted slot never registered, so it will not serve. ' +
|
|
170
|
+
'Run publish again to retry.');
|
|
171
|
+
}
|
|
172
|
+
// The currently-served version when it is `ready` and already carries `hash`,
|
|
173
|
+
// else null. A null (no active version, a non-ready active version, or a hash
|
|
174
|
+
// mismatch) means `publish` must upload. A first deploy has no active version,
|
|
175
|
+
// so it always uploads.
|
|
146
176
|
async function activeVersionMatches(ctx, appId, hash) {
|
|
147
177
|
const { versions } = await ctx.api.get(`/apps/${encodeURIComponent(appId)}/hosting/versions`);
|
|
148
178
|
const active = versions.find((v) => v.active);
|
|
@@ -152,8 +182,8 @@ async function activeVersionMatches(ctx, appId, hash) {
|
|
|
152
182
|
}
|
|
153
183
|
// Poll until the version reaches a KNOWN terminal state (`ready` / `failed`),
|
|
154
184
|
// then return it; time out otherwise. Deliberately loops while the status is
|
|
155
|
-
// anything other than a known terminal
|
|
156
|
-
// CLI does not recognize
|
|
185
|
+
// anything other than a known terminal (`pending`, or any status this pinned
|
|
186
|
+
// CLI does not recognize) rather than returning on `!== 'pending'`. That way
|
|
157
187
|
// a future server status (a finer-grained non-terminal like `unpacking`, or a
|
|
158
188
|
// new terminal-failure like `rejected`) is not mistaken for "done": an
|
|
159
189
|
// unrecognized non-terminal keeps polling, and an unrecognized terminal
|