@inquir/compute-cli 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -19
- package/dist/commands/codegen.d.ts.map +1 -1
- package/dist/commands/codegen.js +3 -0
- package/dist/commands/codegen.js.map +1 -1
- package/dist/commands/config.d.ts +2 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +99 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/debug.d.ts.map +1 -1
- package/dist/commands/debug.js +2 -10
- package/dist/commands/debug.js.map +1 -1
- package/dist/commands/delete.d.ts +2 -0
- package/dist/commands/delete.d.ts.map +1 -0
- package/dist/commands/delete.js +50 -0
- package/dist/commands/delete.js.map +1 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +122 -16
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/deploys.d.ts.map +1 -1
- package/dist/commands/deploys.js +10 -4
- package/dist/commands/deploys.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +137 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +44 -17
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/invoke.d.ts.map +1 -1
- package/dist/commands/invoke.js +13 -6
- package/dist/commands/invoke.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +32 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +5 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +3 -0
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +11 -7
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/rollback.d.ts.map +1 -1
- package/dist/commands/rollback.js +12 -6
- package/dist/commands/rollback.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +12 -5
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +11 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync-status.d.ts.map +1 -1
- package/dist/commands/sync-status.js +12 -6
- package/dist/commands/sync-status.js.map +1 -1
- package/dist/commands/use.d.ts.map +1 -1
- package/dist/commands/use.js +44 -5
- package/dist/commands/use.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +11 -6
- package/dist/commands/whoami.js.map +1 -1
- package/dist/commands/workspaces.d.ts.map +1 -1
- package/dist/commands/workspaces.js +10 -5
- package/dist/commands/workspaces.js.map +1 -1
- package/dist/index.js +94 -65
- package/dist/index.js.map +1 -1
- package/dist/utils/api.d.ts +10 -0
- package/dist/utils/api.d.ts.map +1 -1
- package/dist/utils/api.js +14 -1
- package/dist/utils/api.js.map +1 -1
- package/dist/utils/args.d.ts +6 -0
- package/dist/utils/args.d.ts.map +1 -1
- package/dist/utils/args.js +101 -12
- package/dist/utils/args.js.map +1 -1
- package/dist/utils/assets.d.ts +7 -0
- package/dist/utils/assets.d.ts.map +1 -1
- package/dist/utils/assets.js +18 -0
- package/dist/utils/assets.js.map +1 -1
- package/dist/utils/auth.d.ts +3 -0
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +42 -13
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/context.d.ts +29 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +76 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/deploy-follow.d.ts.map +1 -1
- package/dist/utils/deploy-follow.js +7 -1
- package/dist/utils/deploy-follow.js.map +1 -1
- package/dist/utils/ensure-auth.d.ts +8 -0
- package/dist/utils/ensure-auth.d.ts.map +1 -0
- package/dist/utils/ensure-auth.js +27 -0
- package/dist/utils/ensure-auth.js.map +1 -0
- package/dist/utils/errors.d.ts +54 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +221 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/output.d.ts +11 -1
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +51 -7
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/package-metadata.d.ts +3 -0
- package/dist/utils/package-metadata.d.ts.map +1 -0
- package/dist/utils/package-metadata.js +22 -0
- package/dist/utils/package-metadata.js.map +1 -0
- package/dist/utils/payload.d.ts.map +1 -1
- package/dist/utils/payload.js +4 -4
- package/dist/utils/payload.js.map +1 -1
- package/dist/utils/prompt.d.ts +22 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +67 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/redact.d.ts +14 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +45 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/utils/version.d.ts +8 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +21 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +4 -2
package/dist/utils/args.js
CHANGED
|
@@ -1,25 +1,86 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
/**
|
|
3
|
+
* Hand-rolled but robust argument helpers. Supports:
|
|
4
|
+
* - global flags placed anywhere (before or after the command)
|
|
5
|
+
* - `--flag value` and `--flag=value`
|
|
6
|
+
* - repeatable flags (`readMultiFlag`)
|
|
7
|
+
* - a `--` terminator (everything after is positional)
|
|
8
|
+
*/
|
|
2
9
|
const GLOBAL_BOOLEAN_FLAGS = new Set([
|
|
3
10
|
'--json',
|
|
11
|
+
'--debug',
|
|
12
|
+
'--quiet',
|
|
13
|
+
'--no-color',
|
|
14
|
+
'--yes',
|
|
15
|
+
'-y',
|
|
4
16
|
]);
|
|
5
17
|
const GLOBAL_VALUE_FLAGS = new Set([
|
|
6
18
|
'--config',
|
|
19
|
+
'--cwd',
|
|
7
20
|
'--env',
|
|
8
21
|
'--workspace',
|
|
22
|
+
'--api-url',
|
|
23
|
+
'--token',
|
|
9
24
|
]);
|
|
25
|
+
/** Does `token` represent `flag` (either `--flag` or `--flag=value`)? */
|
|
26
|
+
function matchesFlag(token, flag) {
|
|
27
|
+
return token === flag || token.startsWith(`${flag}=`);
|
|
28
|
+
}
|
|
29
|
+
/** The inline value of a `--flag=value` token, or undefined for a bare flag. */
|
|
30
|
+
function inlineValue(token, flag) {
|
|
31
|
+
if (token.startsWith(`${flag}=`)) {
|
|
32
|
+
return token.slice(flag.length + 1);
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
10
36
|
export function hasFlag(args, flag) {
|
|
11
|
-
return args.
|
|
37
|
+
return args.some((arg) => matchesFlag(arg, flag));
|
|
12
38
|
}
|
|
39
|
+
/** Read the (first) value of a value flag, supporting `--flag value` and `--flag=value`. */
|
|
13
40
|
export function readFlagValue(args, flag) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
41
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
42
|
+
const arg = args[index];
|
|
43
|
+
if (arg === '--')
|
|
44
|
+
break;
|
|
45
|
+
if (arg === flag) {
|
|
46
|
+
const next = args[index + 1];
|
|
47
|
+
// Don't swallow a following flag (e.g. `--workspace --json`) as the value.
|
|
48
|
+
return next !== undefined && !next.startsWith('--') ? next : undefined;
|
|
49
|
+
}
|
|
50
|
+
const inline = inlineValue(arg, flag);
|
|
51
|
+
if (inline !== undefined) {
|
|
52
|
+
return inline;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
/** Read every value of a repeatable value flag (e.g. `--set A=1 --set B=2`). */
|
|
58
|
+
export function readMultiFlag(args, flag) {
|
|
59
|
+
const values = [];
|
|
60
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
61
|
+
const arg = args[index];
|
|
62
|
+
if (arg === '--')
|
|
63
|
+
break;
|
|
64
|
+
if (arg === flag) {
|
|
65
|
+
const next = args[index + 1];
|
|
66
|
+
if (next !== undefined && !next.startsWith('--')) {
|
|
67
|
+
values.push(next);
|
|
68
|
+
index += 1;
|
|
69
|
+
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const inline = inlineValue(arg, flag);
|
|
73
|
+
if (inline !== undefined) {
|
|
74
|
+
values.push(inline);
|
|
75
|
+
}
|
|
17
76
|
}
|
|
18
|
-
return
|
|
77
|
+
return values;
|
|
19
78
|
}
|
|
20
79
|
export function readWorkspaceDir(args) {
|
|
21
|
-
|
|
22
|
-
|
|
80
|
+
// `--cwd` is the canonical working-directory selector; `--config` is kept as a
|
|
81
|
+
// backward-compatible alias (it accepted a dir or a config file path).
|
|
82
|
+
const target = readFlagValue(args, '--cwd') ?? readFlagValue(args, '--config');
|
|
83
|
+
return target ? path.resolve(target) : process.cwd();
|
|
23
84
|
}
|
|
24
85
|
export function readJsonFlag(args) {
|
|
25
86
|
return hasFlag(args, '--json');
|
|
@@ -30,6 +91,12 @@ export function readEnvironmentFlag(args) {
|
|
|
30
91
|
export function readWorkspaceFlag(args) {
|
|
31
92
|
return readFlagValue(args, '--workspace');
|
|
32
93
|
}
|
|
94
|
+
export function readApiUrlFlag(args) {
|
|
95
|
+
return readFlagValue(args, '--api-url');
|
|
96
|
+
}
|
|
97
|
+
export function readTokenFlag(args) {
|
|
98
|
+
return readFlagValue(args, '--token');
|
|
99
|
+
}
|
|
33
100
|
export function readLimitFlag(args, fallback) {
|
|
34
101
|
const raw = readFlagValue(args, '--limit');
|
|
35
102
|
if (!raw) {
|
|
@@ -51,13 +118,26 @@ function stripRecognizedFlags(args, options = {}) {
|
|
|
51
118
|
...(options.valueFlags ?? []),
|
|
52
119
|
]);
|
|
53
120
|
const positionals = [];
|
|
121
|
+
let terminated = false;
|
|
54
122
|
for (let index = 0; index < args.length; index += 1) {
|
|
55
123
|
const arg = args[index];
|
|
124
|
+
if (!terminated && arg === '--') {
|
|
125
|
+
terminated = true;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (terminated) {
|
|
129
|
+
positionals.push(arg);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
56
132
|
if (booleanFlags.has(arg)) {
|
|
57
133
|
continue;
|
|
58
134
|
}
|
|
135
|
+
// `--flag=value` form consumes no following token.
|
|
136
|
+
if (arg.includes('=') && arg.startsWith('--')) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
59
139
|
if (valueFlags.has(arg)) {
|
|
60
|
-
index += 1;
|
|
140
|
+
index += 1; // skip the flag's value
|
|
61
141
|
continue;
|
|
62
142
|
}
|
|
63
143
|
if (arg.startsWith('-')) {
|
|
@@ -70,20 +150,29 @@ function stripRecognizedFlags(args, options = {}) {
|
|
|
70
150
|
export function readCommandName(argv) {
|
|
71
151
|
return findCommand(argv)?.name;
|
|
72
152
|
}
|
|
153
|
+
/** Find the first non-flag token: the command name. Global flags may precede it. */
|
|
73
154
|
export function findCommand(argv) {
|
|
74
155
|
for (let index = 0; index < argv.length; index += 1) {
|
|
75
156
|
const arg = argv[index];
|
|
157
|
+
if (arg === '--') {
|
|
158
|
+
const next = argv[index + 1];
|
|
159
|
+
return next ? { index: index + 1, name: next } : undefined;
|
|
160
|
+
}
|
|
76
161
|
if (GLOBAL_BOOLEAN_FLAGS.has(arg)) {
|
|
77
162
|
continue;
|
|
78
163
|
}
|
|
164
|
+
if (arg.includes('=') && arg.startsWith('--')) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
79
167
|
if (GLOBAL_VALUE_FLAGS.has(arg)) {
|
|
80
168
|
index += 1;
|
|
81
169
|
continue;
|
|
82
170
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
171
|
+
if (arg.startsWith('-')) {
|
|
172
|
+
// Unknown leading flag (e.g. --help/--version, handled by the caller).
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
return { index, name: arg };
|
|
87
176
|
}
|
|
88
177
|
return undefined;
|
|
89
178
|
}
|
package/dist/utils/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,QAAQ;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/assets.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { AssetEntry, AssetRegistry } from '../sdk.js';
|
|
2
|
+
import { CliError } from './errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* A friendly, actionable error for a local asset that could not be resolved.
|
|
5
|
+
* Treated as a usage error (exit 2) — the user typed a name that doesn't match
|
|
6
|
+
* (or that fails to compile) — with a hint to list what's available.
|
|
7
|
+
*/
|
|
8
|
+
export declare function assetNotFoundError(identifier: string, explanation: string): CliError;
|
|
2
9
|
export declare function findAsset(assets: AssetEntry[], identifier: string): AssetEntry | undefined;
|
|
3
10
|
export declare function findAssetOrExplain(registry: AssetRegistry, identifier: string): {
|
|
4
11
|
asset: AssetEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAcpF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAM1F;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAgB3C"}
|
package/dist/utils/assets.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
import { CliError, ExitCode } from './errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* A friendly, actionable error for a local asset that could not be resolved.
|
|
4
|
+
* Treated as a usage error (exit 2) — the user typed a name that doesn't match
|
|
5
|
+
* (or that fails to compile) — with a hint to list what's available.
|
|
6
|
+
*/
|
|
7
|
+
export function assetNotFoundError(identifier, explanation) {
|
|
8
|
+
const isImportFailure = explanation.includes('failed to import');
|
|
9
|
+
return new CliError(isImportFailure ? `Asset "${identifier}" failed to load` : `Asset "${identifier}" not found`, {
|
|
10
|
+
code: isImportFailure ? 'ASSET_IMPORT_FAILED' : 'ASSET_NOT_FOUND',
|
|
11
|
+
exitCode: ExitCode.USAGE,
|
|
12
|
+
explanation: isImportFailure ? explanation : undefined,
|
|
13
|
+
fix: isImportFailure
|
|
14
|
+
? 'Fix the compile/import error above, then retry.'
|
|
15
|
+
: 'Check the name, or list local assets.',
|
|
16
|
+
command: 'inquir list',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
1
19
|
export function findAsset(assets, identifier) {
|
|
2
20
|
return assets.find((asset) => asset.name === identifier
|
|
3
21
|
|| asset.exportName === identifier
|
package/dist/utils/assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACxE,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjE,OAAO,IAAI,QAAQ,CACjB,eAAe,CAAC,CAAC,CAAC,UAAU,UAAU,kBAAkB,CAAC,CAAC,CAAC,UAAU,UAAU,aAAa,EAC5F;QACE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB;QACjE,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACtD,GAAG,EAAE,eAAe;YAClB,CAAC,CAAC,iDAAiD;YACnD,CAAC,CAAC,uCAAuC;QAC3C,OAAO,EAAE,aAAa;KACvB,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,UAAkB;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,IAAI,KAAK,UAAU;WACtB,KAAK,CAAC,UAAU,KAAK,UAAU;WAC/B,KAAK,CAAC,SAAS,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAuB,EACvB,UAAkB;IAElB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE5B,kFAAkF;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACnF,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,UAAU,UAAU,uBAAuB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SACnI,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,oBAAoB,UAAU,EAAE,EAAE,CAAC;AACrD,CAAC"}
|
package/dist/utils/auth.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export interface ResolvedAuthConfig {
|
|
|
25
25
|
}
|
|
26
26
|
/** Default when no config, env, or flags set — first-party prod API (see proxy/Caddyfile). */
|
|
27
27
|
export declare const DEFAULT_API_URL = "https://api.inquir.org";
|
|
28
|
+
/** Absolute path to the active CLI config file (for `config path` / `doctor`). */
|
|
29
|
+
export declare function getConfigFilePath(): string;
|
|
28
30
|
export declare function loadAuthConfig(): Promise<AuthConfig>;
|
|
29
31
|
export declare function saveAuthConfig(nextConfig: AuthConfig): Promise<void>;
|
|
30
32
|
export declare function clearAuthConfig(): Promise<void>;
|
|
@@ -32,6 +34,7 @@ export declare function clearAuthConfig(): Promise<void>;
|
|
|
32
34
|
export declare function resolveEnvironmentName(override?: string): string | undefined;
|
|
33
35
|
export declare function resolveAuthConfig(overrides?: Partial<AuthConfig> & {
|
|
34
36
|
environment?: string;
|
|
37
|
+
projectWorkspaceId?: string;
|
|
35
38
|
}): Promise<ResolvedAuthConfig>;
|
|
36
39
|
/**
|
|
37
40
|
* Mutate the config slice for the active environment (top-level when no `--env`)
|
package/dist/utils/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,8FAA8F;AAC9F,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAcxD,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,8FAA8F;AAC9F,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAcxD,kFAAkF;AAClF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAmB1D;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAS1E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAWD,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAED,wBAAsB,iBAAiB,CACrC,SAAS,GAAE,OAAO,CAAC,UAAU,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1F,OAAO,CAAC,kBAAkB,CAAC,CAwC7B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
package/dist/utils/auth.js
CHANGED
|
@@ -14,6 +14,10 @@ function configFile() {
|
|
|
14
14
|
function legacyConfigFile() {
|
|
15
15
|
return path.join(os.homedir(), '.lambda-cli', 'config.json');
|
|
16
16
|
}
|
|
17
|
+
/** Absolute path to the active CLI config file (for `config path` / `doctor`). */
|
|
18
|
+
export function getConfigFilePath() {
|
|
19
|
+
return configFile();
|
|
20
|
+
}
|
|
17
21
|
export async function loadAuthConfig() {
|
|
18
22
|
try {
|
|
19
23
|
const raw = await fs.readFile(configFile(), 'utf8');
|
|
@@ -22,7 +26,16 @@ export async function loadAuthConfig() {
|
|
|
22
26
|
catch {
|
|
23
27
|
try {
|
|
24
28
|
const raw = await fs.readFile(legacyConfigFile(), 'utf8');
|
|
25
|
-
|
|
29
|
+
const legacy = JSON.parse(raw);
|
|
30
|
+
// Only carry over credentials from the legacy CLI config. We deliberately
|
|
31
|
+
// drop the legacy `apiUrl` (often `http://localhost:3000`) so a fresh user
|
|
32
|
+
// is not silently pinned to localhost, and ignore legacy named environments.
|
|
33
|
+
const migrated = {};
|
|
34
|
+
if (legacy.token)
|
|
35
|
+
migrated.token = legacy.token;
|
|
36
|
+
if (legacy.apiKey)
|
|
37
|
+
migrated.apiKey = legacy.apiKey;
|
|
38
|
+
return migrated;
|
|
26
39
|
}
|
|
27
40
|
catch {
|
|
28
41
|
return {};
|
|
@@ -30,8 +43,15 @@ export async function loadAuthConfig() {
|
|
|
30
43
|
}
|
|
31
44
|
}
|
|
32
45
|
export async function saveAuthConfig(nextConfig) {
|
|
33
|
-
await fs.mkdir(configDir(), { recursive: true });
|
|
34
|
-
|
|
46
|
+
await fs.mkdir(configDir(), { recursive: true, mode: 0o700 });
|
|
47
|
+
// Credentials live here — write with owner-only permissions.
|
|
48
|
+
await fs.writeFile(configFile(), `${JSON.stringify(nextConfig, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 });
|
|
49
|
+
try {
|
|
50
|
+
await fs.chmod(configFile(), 0o600);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Best-effort (e.g. Windows); ignore.
|
|
54
|
+
}
|
|
35
55
|
}
|
|
36
56
|
export async function clearAuthConfig() {
|
|
37
57
|
try {
|
|
@@ -41,9 +61,17 @@ export async function clearAuthConfig() {
|
|
|
41
61
|
// Ignore missing config.
|
|
42
62
|
}
|
|
43
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Treat blank/whitespace-only environment variables as unset. CI often exports
|
|
66
|
+
* `INQUIR_TOKEN=""` (or similar) unconditionally; an empty string must not
|
|
67
|
+
* shadow a stored credential or pin an empty API URL.
|
|
68
|
+
*/
|
|
69
|
+
function envValue(value) {
|
|
70
|
+
return value && value.trim() !== '' ? value : undefined;
|
|
71
|
+
}
|
|
44
72
|
/** Resolve the active environment name from overrides or environment variables. */
|
|
45
73
|
export function resolveEnvironmentName(override) {
|
|
46
|
-
return override ?? process.env.INQUIR_ENV ?? process.env.LAMBDA_ENV ?? undefined;
|
|
74
|
+
return override ?? envValue(process.env.INQUIR_ENV) ?? envValue(process.env.LAMBDA_ENV) ?? undefined;
|
|
47
75
|
}
|
|
48
76
|
export async function resolveAuthConfig(overrides = {}) {
|
|
49
77
|
const fileConfig = await loadAuthConfig();
|
|
@@ -52,26 +80,27 @@ export async function resolveAuthConfig(overrides = {}) {
|
|
|
52
80
|
? fileConfig.environments?.[selectedEnvironment] ?? {}
|
|
53
81
|
: {};
|
|
54
82
|
const apiUrl = overrides.apiUrl
|
|
55
|
-
?? process.env.INQUIR_API_URL
|
|
56
|
-
?? process.env.LAMBDA_API_URL
|
|
83
|
+
?? envValue(process.env.INQUIR_API_URL)
|
|
84
|
+
?? envValue(process.env.LAMBDA_API_URL)
|
|
57
85
|
?? environmentConfig.apiUrl
|
|
58
86
|
?? fileConfig.apiUrl
|
|
59
87
|
?? DEFAULT_API_URL;
|
|
60
88
|
const apiKey = overrides.apiKey
|
|
61
|
-
?? process.env.INQUIR_API_KEY
|
|
62
|
-
?? process.env.LAMBDA_API_KEY
|
|
89
|
+
?? envValue(process.env.INQUIR_API_KEY)
|
|
90
|
+
?? envValue(process.env.LAMBDA_API_KEY)
|
|
63
91
|
?? environmentConfig.apiKey
|
|
64
92
|
?? fileConfig.apiKey
|
|
65
93
|
?? undefined;
|
|
66
94
|
const token = overrides.token
|
|
67
|
-
?? process.env.INQUIR_TOKEN
|
|
95
|
+
?? envValue(process.env.INQUIR_TOKEN)
|
|
68
96
|
?? environmentConfig.token
|
|
69
97
|
?? fileConfig.token
|
|
70
98
|
?? undefined;
|
|
71
|
-
const workspaceId = overrides.workspaceId
|
|
72
|
-
?? process.env.INQUIR_WORKSPACE
|
|
73
|
-
?? environmentConfig.workspaceId
|
|
74
|
-
??
|
|
99
|
+
const workspaceId = overrides.workspaceId // explicit --workspace
|
|
100
|
+
?? envValue(process.env.INQUIR_WORKSPACE) // env var
|
|
101
|
+
?? environmentConfig.workspaceId // named credential environment
|
|
102
|
+
?? overrides.projectWorkspaceId // project link (inquir.config.json)
|
|
103
|
+
?? fileConfig.workspaceId // stored global default
|
|
75
104
|
?? undefined;
|
|
76
105
|
const user = environmentConfig.user ?? fileConfig.user;
|
|
77
106
|
return { apiUrl, apiKey, token, workspaceId, user };
|
package/dist/utils/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AA+B7B,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD,+EAA+E;AAC/E,+DAA+D;AAC/D,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AACD,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AACD,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1D,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ApiRequestOptions } from './api.js';
|
|
2
|
+
/** Resolved global flags + output mode for the current invocation. */
|
|
3
|
+
export interface RuntimeFlags {
|
|
4
|
+
json: boolean;
|
|
5
|
+
debug: boolean;
|
|
6
|
+
quiet: boolean;
|
|
7
|
+
yes: boolean;
|
|
8
|
+
noColor: boolean;
|
|
9
|
+
cwd?: string;
|
|
10
|
+
apiUrl?: string;
|
|
11
|
+
token?: string;
|
|
12
|
+
env?: string;
|
|
13
|
+
workspace?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parse global flags once at startup, configure output (color/quiet), and
|
|
17
|
+
* register the credential for redaction. Returns the resolved flags.
|
|
18
|
+
*/
|
|
19
|
+
export declare function initRuntime(argv: string[]): RuntimeFlags;
|
|
20
|
+
export declare function runtime(): RuntimeFlags;
|
|
21
|
+
/** For tests. */
|
|
22
|
+
export declare function resetRuntime(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Build the API options for a remote command, applying credential/workspace
|
|
25
|
+
* precedence (see docs/cli-product-spec.md §5.3):
|
|
26
|
+
* flag → INQUIR_* env → named env → project link → stored config → default.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildApiOptions(args: string[]): ApiRequestOptions;
|
|
29
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CA4BxD;AAED,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,iBAAiB;AACjB,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAYD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAWjE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { loadConfig } from '../sdk.js';
|
|
2
|
+
import { hasFlag, readApiUrlFlag, readEnvironmentFlag, readFlagValue, readTokenFlag, readWorkspaceDir, readWorkspaceFlag, } from './args.js';
|
|
3
|
+
import { configureOutput } from './output.js';
|
|
4
|
+
import { registerSecret } from './redact.js';
|
|
5
|
+
let current = {
|
|
6
|
+
json: false,
|
|
7
|
+
debug: false,
|
|
8
|
+
quiet: false,
|
|
9
|
+
yes: false,
|
|
10
|
+
noColor: false,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Parse global flags once at startup, configure output (color/quiet), and
|
|
14
|
+
* register the credential for redaction. Returns the resolved flags.
|
|
15
|
+
*/
|
|
16
|
+
export function initRuntime(argv) {
|
|
17
|
+
const json = hasFlag(argv, '--json');
|
|
18
|
+
const flags = {
|
|
19
|
+
json,
|
|
20
|
+
debug: hasFlag(argv, '--debug') || process.env.INQUIR_DEBUG === '1',
|
|
21
|
+
quiet: hasFlag(argv, '--quiet'),
|
|
22
|
+
yes: hasFlag(argv, '--yes') || hasFlag(argv, '-y'),
|
|
23
|
+
noColor: hasFlag(argv, '--no-color'),
|
|
24
|
+
cwd: readFlagValue(argv, '--cwd') ?? readFlagValue(argv, '--config'),
|
|
25
|
+
apiUrl: readApiUrlFlag(argv),
|
|
26
|
+
token: readTokenFlag(argv),
|
|
27
|
+
env: readEnvironmentFlag(argv),
|
|
28
|
+
workspace: readWorkspaceFlag(argv),
|
|
29
|
+
};
|
|
30
|
+
current = flags;
|
|
31
|
+
// JSON output must be plain; --no-color / NO_COLOR also disable color.
|
|
32
|
+
configureOutput({
|
|
33
|
+
color: flags.json || flags.noColor ? false : undefined,
|
|
34
|
+
quiet: flags.quiet,
|
|
35
|
+
});
|
|
36
|
+
registerSecret(flags.token);
|
|
37
|
+
registerSecret(process.env.INQUIR_TOKEN);
|
|
38
|
+
registerSecret(process.env.INQUIR_API_KEY);
|
|
39
|
+
registerSecret(process.env.LAMBDA_API_KEY);
|
|
40
|
+
return flags;
|
|
41
|
+
}
|
|
42
|
+
export function runtime() {
|
|
43
|
+
return current;
|
|
44
|
+
}
|
|
45
|
+
/** For tests. */
|
|
46
|
+
export function resetRuntime() {
|
|
47
|
+
current = { json: false, debug: false, quiet: false, yes: false, noColor: false };
|
|
48
|
+
}
|
|
49
|
+
/** Read a project ↔ workspace link from the local inquir.config.json, if present. */
|
|
50
|
+
function readProjectWorkspace(args) {
|
|
51
|
+
try {
|
|
52
|
+
const config = loadConfig(readWorkspaceDir(args));
|
|
53
|
+
return config.workspace;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build the API options for a remote command, applying credential/workspace
|
|
61
|
+
* precedence (see docs/cli-product-spec.md §5.3):
|
|
62
|
+
* flag → INQUIR_* env → named env → project link → stored config → default.
|
|
63
|
+
*/
|
|
64
|
+
export function buildApiOptions(args) {
|
|
65
|
+
// The full precedence (flag → env → named-env → project link → stored default)
|
|
66
|
+
// is resolved in resolveAuthConfig; here we just surface the explicit flag and
|
|
67
|
+
// the project link, and let that function order them correctly.
|
|
68
|
+
return {
|
|
69
|
+
apiUrl: readApiUrlFlag(args),
|
|
70
|
+
token: readTokenFlag(args),
|
|
71
|
+
workspaceId: readWorkspaceFlag(args),
|
|
72
|
+
projectWorkspaceId: readProjectWorkspace(args),
|
|
73
|
+
environment: readEnvironmentFlag(args),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/utils/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-follow.d.ts","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-follow.d.ts","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"AACA,OAAO,EAAqC,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAI7C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,IAAI,gBAAgB,GAAG,SAAS,CAShE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAuBvB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isTerminalDeployStatus } from '../sdk.js';
|
|
2
2
|
import { getDeployStatus, streamDeployLogs } from './api.js';
|
|
3
3
|
import { dim, printLine } from './output.js';
|
|
4
|
+
import { redact } from './redact.js';
|
|
4
5
|
/** Best-effort git/CI context from GitHub Actions environment variables. */
|
|
5
6
|
export function collectGitContext() {
|
|
6
7
|
const env = process.env;
|
|
@@ -37,7 +38,12 @@ export async function followDeploy(deployId, apiOptions, opts = {}) {
|
|
|
37
38
|
try {
|
|
38
39
|
for await (const event of streamDeployLogs(deployId, apiOptions)) {
|
|
39
40
|
if (event.type === 'log') {
|
|
40
|
-
|
|
41
|
+
// In --json mode stdout must stay a single JSON document, so stream
|
|
42
|
+
// build logs to stderr (still visible) instead of polluting stdout.
|
|
43
|
+
if (opts.json)
|
|
44
|
+
process.stderr.write(`${redact(event.line)}\n`);
|
|
45
|
+
else
|
|
46
|
+
printLine(event.line);
|
|
41
47
|
}
|
|
42
48
|
else if (event.type === 'status') {
|
|
43
49
|
if (!opts.json)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-follow.js","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAA0B,MAAM,UAAU,CAAC;AAErF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-follow.js","sourceRoot":"","sources":["../../src/utils/deploy-follow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ApiRequestOptions } from './api.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ensure credentials are present. On an interactive terminal, offer to run the
|
|
4
|
+
* login flow inline (first-run guidance). In CI / non-TTY / --json, throw the
|
|
5
|
+
* standard auth-required error so scripts fail fast with guidance.
|
|
6
|
+
*/
|
|
7
|
+
export declare function ensureAuth(apiOptions?: ApiRequestOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=ensure-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-auth.d.ts","sourceRoot":"","sources":["../../src/utils/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK/D;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,UAAU,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { requireAuth } from './api.js';
|
|
2
|
+
import { authRequiredError } from './errors.js';
|
|
3
|
+
import { canPrompt, confirm } from './prompt.js';
|
|
4
|
+
import { printLine } from './output.js';
|
|
5
|
+
/**
|
|
6
|
+
* Ensure credentials are present. On an interactive terminal, offer to run the
|
|
7
|
+
* login flow inline (first-run guidance). In CI / non-TTY / --json, throw the
|
|
8
|
+
* standard auth-required error so scripts fail fast with guidance.
|
|
9
|
+
*/
|
|
10
|
+
export async function ensureAuth(apiOptions = {}) {
|
|
11
|
+
try {
|
|
12
|
+
await requireAuth(apiOptions);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
if (canPrompt() && (await confirm('You are not logged in. Log in now?', true))) {
|
|
17
|
+
printLine('');
|
|
18
|
+
const { loginCommand } = await import('../commands/login.js');
|
|
19
|
+
await loginCommand([]);
|
|
20
|
+
printLine('');
|
|
21
|
+
await requireAuth(apiOptions); // still throws (mapped) if it didn't take
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
throw authRequiredError();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ensure-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-auth.js","sourceRoot":"","sources":["../../src/utils/ensure-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA0B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,aAAgC,EAAE;IACjE,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,SAAS,EAAE,IAAI,CAAC,MAAM,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;YAC/E,SAAS,CAAC,EAAE,CAAC,CAAC;YACd,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC9D,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;YACvB,SAAS,CAAC,EAAE,CAAC,CAAC;YACd,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,0CAA0C;YACzE,OAAO;QACT,CAAC;QACD,MAAM,iBAAiB,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC"}
|