@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/commands/deploy.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import { discoverAssets, loadConfig } from '../sdk.js';
|
|
3
|
-
import { findAssetOrExplain } from '../utils/assets.js';
|
|
4
|
-
import { hasFlag,
|
|
4
|
+
import { assetNotFoundError, findAssetOrExplain } from '../utils/assets.js';
|
|
5
|
+
import { hasFlag, readFlagValue, readJsonFlag, readMultiFlag, readPositionalArgs, readWorkspaceDir, } from '../utils/args.js';
|
|
5
6
|
import { createRemoteFunction, listRemoteFunctions, queueDeploy, updateRemoteFunction, } from '../utils/api.js';
|
|
7
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
8
|
+
import { ensureAuth } from '../utils/ensure-auth.js';
|
|
9
|
+
import { usageError } from '../utils/errors.js';
|
|
6
10
|
import { collectGitContext, followDeploy } from '../utils/deploy-follow.js';
|
|
7
|
-
import { printCommandHelp, printError, printLine, printSuccess } from '../utils/output.js';
|
|
11
|
+
import { printCommandHelp, printError, printInfo, printLine, printSuccess } from '../utils/output.js';
|
|
8
12
|
import { createZipBase64 } from '@inquir/compute';
|
|
9
13
|
function runtimeToRemoteRuntime(runtime) {
|
|
10
14
|
switch (runtime) {
|
|
@@ -22,43 +26,112 @@ function deriveHandler(asset) {
|
|
|
22
26
|
const withoutExtension = relativePath.replace(/\.[^.]+$/, '');
|
|
23
27
|
return `${withoutExtension}.${asset.exportName}`;
|
|
24
28
|
}
|
|
29
|
+
/** Parse `KEY=VALUE` pairs (from --set) into an env-var record. */
|
|
30
|
+
function parseKeyValuePairs(pairs) {
|
|
31
|
+
const out = {};
|
|
32
|
+
for (const pair of pairs) {
|
|
33
|
+
const eq = pair.indexOf('=');
|
|
34
|
+
if (eq <= 0) {
|
|
35
|
+
throw usageError(`Invalid --set "${pair}". Expected KEY=VALUE.`);
|
|
36
|
+
}
|
|
37
|
+
out[pair.slice(0, eq).trim()] = pair.slice(eq + 1);
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
/** Parse a dotenv-style file into an env-var record (KEY=VALUE per line, # comments). */
|
|
42
|
+
function parseEnvFile(filePath) {
|
|
43
|
+
let raw;
|
|
44
|
+
try {
|
|
45
|
+
raw = fs.readFileSync(filePath, 'utf8');
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
throw usageError(`Cannot read --env-file: ${filePath}`);
|
|
49
|
+
}
|
|
50
|
+
const out = {};
|
|
51
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
52
|
+
const trimmed = line.trim();
|
|
53
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
54
|
+
continue;
|
|
55
|
+
const eq = trimmed.indexOf('=');
|
|
56
|
+
if (eq <= 0)
|
|
57
|
+
continue;
|
|
58
|
+
let value = trimmed.slice(eq + 1).trim();
|
|
59
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
60
|
+
value = value.slice(1, -1);
|
|
61
|
+
}
|
|
62
|
+
out[trimmed.slice(0, eq).trim()] = value;
|
|
63
|
+
}
|
|
64
|
+
return out;
|
|
65
|
+
}
|
|
66
|
+
/** Parse a positive-integer flag, rejecting non-numeric input. */
|
|
67
|
+
function parseIntFlag(value, flag) {
|
|
68
|
+
if (value === undefined)
|
|
69
|
+
return undefined;
|
|
70
|
+
const parsed = Number.parseInt(value, 10);
|
|
71
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
72
|
+
throw usageError(`Invalid ${flag} value: ${value}`);
|
|
73
|
+
}
|
|
74
|
+
return parsed;
|
|
75
|
+
}
|
|
25
76
|
export async function deployCommand(args) {
|
|
26
77
|
if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
|
|
27
78
|
printCommandHelp('deploy', 'deploy <asset> [options]', [
|
|
28
|
-
'--
|
|
79
|
+
'--stage <name> Target deploy stage (production, staging, …); alias: --environment',
|
|
80
|
+
'--set KEY=VALUE Set an environment variable (repeatable)',
|
|
81
|
+
'--env-file <path> Load environment variables from a dotenv file',
|
|
82
|
+
'--memory <mb> Memory limit in MB',
|
|
83
|
+
'--timeout <ms> Timeout in milliseconds',
|
|
84
|
+
'--layer <id> Attach a layer by id (repeatable)',
|
|
29
85
|
'--workspace <id|slug> Target workspace for this deploy (user-scoped login)',
|
|
30
|
-
'--env <name> Named CLI environment from ~/.inquir/config.json',
|
|
31
|
-
'--
|
|
86
|
+
'--env <name> Named CLI credential environment from ~/.inquir/config.json',
|
|
87
|
+
'--cwd <path> Run from this directory (alias: --config)',
|
|
32
88
|
'--no-logs Do not stream build logs; wait for completion',
|
|
33
89
|
'--ci CI mode: plain output, exit non-zero on failure',
|
|
34
90
|
'--dry-run Validate and package without creating or deploying',
|
|
35
91
|
'--json Machine-readable JSON output',
|
|
92
|
+
], [
|
|
93
|
+
'inquir deploy hello',
|
|
94
|
+
'inquir deploy hello --stage staging --set LOG_LEVEL=debug',
|
|
95
|
+
'inquir deploy hello --env-file .env.production --memory 512',
|
|
96
|
+
'inquir deploy hello --ci --json # CI: plain output, non-zero exit on failure',
|
|
97
|
+
'inquir deploy hello --dry-run # validate + package only',
|
|
36
98
|
]);
|
|
37
99
|
return;
|
|
38
100
|
}
|
|
39
|
-
const [assetName] = readPositionalArgs(args, {
|
|
101
|
+
const [assetName] = readPositionalArgs(args, {
|
|
102
|
+
valueFlags: ['--environment', '--stage', '--memory', '--timeout', '--set', '--env-file', '--layer'],
|
|
103
|
+
});
|
|
40
104
|
if (!assetName) {
|
|
41
|
-
throw
|
|
105
|
+
throw usageError('Missing asset name', 'inquir deploy <asset>');
|
|
42
106
|
}
|
|
43
107
|
const config = loadConfig(readWorkspaceDir(args));
|
|
44
108
|
const registry = await discoverAssets(config);
|
|
45
109
|
const assetResult = findAssetOrExplain(registry, assetName);
|
|
46
110
|
if ('error' in assetResult) {
|
|
47
|
-
throw
|
|
111
|
+
throw assetNotFoundError(assetName, assetResult.error);
|
|
48
112
|
}
|
|
49
113
|
const asset = assetResult.asset;
|
|
50
114
|
if (asset.kind !== 'function') {
|
|
51
|
-
throw
|
|
115
|
+
throw usageError(`Deploy is currently supported for function assets only (received ${asset.kind})`);
|
|
52
116
|
}
|
|
53
117
|
const json = readJsonFlag(args);
|
|
54
118
|
const ci = hasFlag(args, '--ci');
|
|
55
119
|
const noLogs = hasFlag(args, '--no-logs');
|
|
56
120
|
const dryRun = hasFlag(args, '--dry-run');
|
|
57
|
-
const deployEnvironment = readFlagValue(args, '--environment');
|
|
58
|
-
const apiOptions =
|
|
121
|
+
const deployEnvironment = readFlagValue(args, '--stage') ?? readFlagValue(args, '--environment');
|
|
122
|
+
const apiOptions = buildApiOptions(args);
|
|
123
|
+
// Collect optional function configuration overrides.
|
|
124
|
+
const envVars = {
|
|
125
|
+
...(readFlagValue(args, '--env-file') ? parseEnvFile(readFlagValue(args, '--env-file')) : {}),
|
|
126
|
+
...parseKeyValuePairs(readMultiFlag(args, '--set')),
|
|
127
|
+
};
|
|
128
|
+
const memoryMb = parseIntFlag(readFlagValue(args, '--memory'), '--memory');
|
|
129
|
+
const timeoutMs = parseIntFlag(readFlagValue(args, '--timeout'), '--timeout');
|
|
130
|
+
const layerIds = readMultiFlag(args, '--layer');
|
|
131
|
+
if (!dryRun) {
|
|
132
|
+
await ensureAuth(apiOptions);
|
|
133
|
+
}
|
|
59
134
|
const codeZipBase64 = await createZipBase64(asset.assetDir);
|
|
60
|
-
const remoteFunctions = await listRemoteFunctions(apiOptions);
|
|
61
|
-
const existing = remoteFunctions.find((item) => item.linkedLocalName === asset.name || item.name === asset.name);
|
|
62
135
|
const payload = {
|
|
63
136
|
name: asset.name,
|
|
64
137
|
handler: deriveHandler(asset),
|
|
@@ -66,17 +139,37 @@ export async function deployCommand(args) {
|
|
|
66
139
|
codeZipBase64,
|
|
67
140
|
sourceHash: asset.sourceHash,
|
|
68
141
|
linkedLocalName: asset.name,
|
|
142
|
+
...(Object.keys(envVars).length > 0 ? { envVars } : {}),
|
|
143
|
+
...(memoryMb !== undefined ? { memoryMb } : {}),
|
|
144
|
+
...(timeoutMs !== undefined ? { timeoutMs } : {}),
|
|
145
|
+
...(layerIds.length > 0 ? { layerIds } : {}),
|
|
69
146
|
};
|
|
70
147
|
if (dryRun) {
|
|
148
|
+
let existing;
|
|
149
|
+
let remoteStateAvailable = false;
|
|
150
|
+
try {
|
|
151
|
+
const remoteFunctions = await listRemoteFunctions(apiOptions);
|
|
152
|
+
existing = remoteFunctions.find((item) => item.linkedLocalName === asset.name || item.name === asset.name);
|
|
153
|
+
remoteStateAvailable = true;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Dry-run should remain useful offline or before login: package locally and
|
|
157
|
+
// surface a best-effort plan even when remote state cannot be resolved.
|
|
158
|
+
}
|
|
71
159
|
const approxBytes = Math.floor((codeZipBase64.length * 3) / 4);
|
|
72
160
|
const plan = {
|
|
73
161
|
dryRun: true,
|
|
74
162
|
asset: asset.name,
|
|
75
163
|
action: existing ? 'update' : 'create',
|
|
164
|
+
remoteStateAvailable,
|
|
76
165
|
functionId: existing?.id,
|
|
77
166
|
handler: payload.handler,
|
|
78
167
|
runtime: payload.runtime,
|
|
79
168
|
environment: deployEnvironment ?? 'production',
|
|
169
|
+
envVars: Object.keys(envVars),
|
|
170
|
+
memoryMb,
|
|
171
|
+
timeoutMs,
|
|
172
|
+
layerIds,
|
|
80
173
|
packagedBytes: approxBytes,
|
|
81
174
|
};
|
|
82
175
|
if (json) {
|
|
@@ -84,15 +177,26 @@ export async function deployCommand(args) {
|
|
|
84
177
|
}
|
|
85
178
|
else {
|
|
86
179
|
printLine(`Dry run for ${asset.name}:`);
|
|
87
|
-
printLine(` action: ${plan.action}${existing ? ` (${existing.id})` : ''}`
|
|
180
|
+
printLine(` action: ${plan.action}${existing ? ` (${existing.id})` : ''}` +
|
|
181
|
+
`${remoteStateAvailable ? '' : ' (remote state unavailable)'}`);
|
|
88
182
|
printLine(` handler: ${plan.handler}`);
|
|
89
183
|
printLine(` runtime: ${plan.runtime}`);
|
|
90
184
|
printLine(` environment: ${plan.environment}`);
|
|
185
|
+
if (plan.envVars.length)
|
|
186
|
+
printLine(` env vars: ${plan.envVars.join(', ')}`);
|
|
187
|
+
if (memoryMb !== undefined)
|
|
188
|
+
printLine(` memory: ${memoryMb} MB`);
|
|
189
|
+
if (timeoutMs !== undefined)
|
|
190
|
+
printLine(` timeout: ${timeoutMs} ms`);
|
|
191
|
+
if (layerIds.length)
|
|
192
|
+
printLine(` layers: ${layerIds.join(', ')}`);
|
|
91
193
|
printLine(` packaged: ~${approxBytes} bytes`);
|
|
92
194
|
printSuccess('Dry run OK — no function created or deployed.');
|
|
93
195
|
}
|
|
94
196
|
return;
|
|
95
197
|
}
|
|
198
|
+
const remoteFunctions = await listRemoteFunctions(apiOptions);
|
|
199
|
+
const existing = remoteFunctions.find((item) => item.linkedLocalName === asset.name || item.name === asset.name);
|
|
96
200
|
const remoteFunction = existing
|
|
97
201
|
? await updateRemoteFunction(existing.id, payload, apiOptions)
|
|
98
202
|
: await createRemoteFunction(payload, apiOptions);
|
|
@@ -103,7 +207,7 @@ export async function deployCommand(args) {
|
|
|
103
207
|
git: collectGitContext(),
|
|
104
208
|
}, apiOptions);
|
|
105
209
|
if (!json) {
|
|
106
|
-
|
|
210
|
+
printInfo(`Queued deploy ${queued.deployId} (v${queued.version}) for ${asset.name}`);
|
|
107
211
|
}
|
|
108
212
|
const finalDeploy = await followDeploy(queued.deployId, apiOptions, { json, ci, noLogs });
|
|
109
213
|
if (json) {
|
|
@@ -115,6 +219,8 @@ export async function deployCommand(args) {
|
|
|
115
219
|
if (finalDeploy.url) {
|
|
116
220
|
printLine(`URL: ${finalDeploy.url}`);
|
|
117
221
|
}
|
|
222
|
+
printInfo('');
|
|
223
|
+
printInfo(`Next: inquir invoke ${asset.name} --payload '{}' · inquir logs ${asset.name}`);
|
|
118
224
|
}
|
|
119
225
|
else {
|
|
120
226
|
printError(`Deploy ${finalDeploy.deployId} ${finalDeploy.status}` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploys.d.ts","sourceRoot":"","sources":["../../src/commands/deploys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploys.d.ts","sourceRoot":"","sources":["../../src/commands/deploys.ts"],"names":[],"mappings":"AAMA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ClE"}
|
package/dist/commands/deploys.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { hasFlag,
|
|
2
|
-
import { listFunctionDeploys, resolveRemoteFunction } from '../utils/api.js';
|
|
1
|
+
import { hasFlag, readJsonFlag, readLimitFlag, readPositionalArgs } from '../utils/args.js';
|
|
2
|
+
import { listFunctionDeploys, requireAuth, resolveRemoteFunction } from '../utils/api.js';
|
|
3
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
4
|
+
import { usageError } from '../utils/errors.js';
|
|
3
5
|
import { formatTable, printCommandHelp, printLine } from '../utils/output.js';
|
|
4
6
|
export async function deploysCommand(args) {
|
|
5
7
|
if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
|
|
@@ -7,14 +9,18 @@ export async function deploysCommand(args) {
|
|
|
7
9
|
'--limit <n> Number of deploys to show (default 20)',
|
|
8
10
|
'--env <name> Named CLI environment from ~/.inquir/config.json',
|
|
9
11
|
'--json Machine-readable JSON output',
|
|
12
|
+
], [
|
|
13
|
+
'inquir deploys hello',
|
|
14
|
+
'inquir deploys hello --limit 50 --json',
|
|
10
15
|
]);
|
|
11
16
|
return;
|
|
12
17
|
}
|
|
13
18
|
const [identifier] = readPositionalArgs(args, { valueFlags: ['--limit'] });
|
|
14
19
|
if (!identifier) {
|
|
15
|
-
throw
|
|
20
|
+
throw usageError('Missing function name or id', 'inquir deploys <function>');
|
|
16
21
|
}
|
|
17
|
-
const apiOptions =
|
|
22
|
+
const apiOptions = buildApiOptions(args);
|
|
23
|
+
await requireAuth(apiOptions);
|
|
18
24
|
const fn = await resolveRemoteFunction(identifier, apiOptions);
|
|
19
25
|
const limit = readLimitFlag(args, 20);
|
|
20
26
|
const result = await listFunctionDeploys(fn.id, { limit }, apiOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploys.js","sourceRoot":"","sources":["../../src/commands/deploys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deploys.js","sourceRoot":"","sources":["../../src/commands/deploys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,SAAS,EAAE,8BAA8B,EAAE;YAC1D,wDAAwD;YACxD,kEAAkE;YAClE,8CAA8C;SAC/C,EAAE;YACD,sBAAsB;YACtB,wCAAwC;SACzC,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,UAAU,CAAC,6BAA6B,EAAE,2BAA2B,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;IAEvE,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,SAAS,CAAC,sBAAsB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7B,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,EAAE,CAAC,CAAC,WAAW;QAClB,OAAO,EAAE,CAAC,CAAC,SAAS;QACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC,CAAC,CAAC;IAEJ,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAyBA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HjE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { hasFlag, readJsonFlag, readWorkspaceDir } from '../utils/args.js';
|
|
2
|
+
import { getMe } from '../utils/api.js';
|
|
3
|
+
import { loadConfig } from '../sdk.js';
|
|
4
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
5
|
+
import { getConfigFilePath, resolveAuthConfig } from '../utils/auth.js';
|
|
6
|
+
import { ExitCode } from '../utils/errors.js';
|
|
7
|
+
import { bold, colorEnabled, cyan, dim, green, printCommandHelp, printLine, red, yellow } from '../utils/output.js';
|
|
8
|
+
import { maskToken } from '../utils/redact.js';
|
|
9
|
+
import { getVersion } from '../utils/version.js';
|
|
10
|
+
function symbol(status) {
|
|
11
|
+
if (status === 'ok')
|
|
12
|
+
return green('✓');
|
|
13
|
+
if (status === 'warn')
|
|
14
|
+
return yellow('⚠');
|
|
15
|
+
return red('✗');
|
|
16
|
+
}
|
|
17
|
+
export async function doctorCommand(args) {
|
|
18
|
+
if (hasFlag(args, '--help') || hasFlag(args, '-h')) {
|
|
19
|
+
printCommandHelp('doctor', 'doctor [options]', [
|
|
20
|
+
'--json Machine-readable diagnostics report',
|
|
21
|
+
], [
|
|
22
|
+
'inquir doctor',
|
|
23
|
+
'inquir doctor --json',
|
|
24
|
+
]);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const json = readJsonFlag(args);
|
|
28
|
+
const checks = [];
|
|
29
|
+
// --- CLI + Node versions ---
|
|
30
|
+
checks.push({ name: 'CLI version', status: 'ok', detail: getVersion() });
|
|
31
|
+
const nodeMajor = Number.parseInt(process.versions.node.split('.')[0] ?? '0', 10);
|
|
32
|
+
checks.push({
|
|
33
|
+
name: 'Node.js version',
|
|
34
|
+
status: nodeMajor >= 18 ? 'ok' : 'fail',
|
|
35
|
+
detail: process.version,
|
|
36
|
+
fix: nodeMajor >= 18 ? undefined : 'Upgrade to Node.js 18 or newer.',
|
|
37
|
+
});
|
|
38
|
+
// --- Config + credentials ---
|
|
39
|
+
const apiOptions = buildApiOptions(args);
|
|
40
|
+
const resolved = await resolveAuthConfig(apiOptions);
|
|
41
|
+
checks.push({ name: 'Config file', status: 'ok', detail: getConfigFilePath() });
|
|
42
|
+
checks.push({ name: 'API URL', status: 'ok', detail: resolved.apiUrl });
|
|
43
|
+
const credentialKind = resolved.token ? 'Personal Access Token' : resolved.apiKey ? 'API key' : null;
|
|
44
|
+
if (credentialKind) {
|
|
45
|
+
checks.push({
|
|
46
|
+
name: 'Credential',
|
|
47
|
+
status: 'ok',
|
|
48
|
+
detail: `${credentialKind} (${maskToken(resolved.token ?? resolved.apiKey)})`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
checks.push({
|
|
53
|
+
name: 'Credential',
|
|
54
|
+
status: 'fail',
|
|
55
|
+
detail: 'none found',
|
|
56
|
+
fix: 'Run `inquir login`, or set INQUIR_TOKEN for CI.',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// --- Connectivity / identity ---
|
|
60
|
+
if (credentialKind) {
|
|
61
|
+
const started = Date.now();
|
|
62
|
+
try {
|
|
63
|
+
const me = await getMe({ ...apiOptions, ignoreStoredWorkspace: true });
|
|
64
|
+
const ms = Date.now() - started;
|
|
65
|
+
const who = me.user?.email ?? me.user?.id ?? 'api-key principal';
|
|
66
|
+
checks.push({ name: 'API connectivity', status: 'ok', detail: `${ms}ms` });
|
|
67
|
+
checks.push({ name: 'Identity', status: 'ok', detail: who });
|
|
68
|
+
checks.push({
|
|
69
|
+
name: 'Active workspace',
|
|
70
|
+
status: 'ok',
|
|
71
|
+
detail: `${me.activeWorkspace.name} (${me.activeWorkspace.slug || me.activeWorkspace.id})`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
checks.push({
|
|
76
|
+
name: 'API connectivity',
|
|
77
|
+
status: 'fail',
|
|
78
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
79
|
+
fix: 'Check --api-url and your network, then re-run `inquir login`.',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
checks.push({ name: 'API connectivity', status: 'warn', detail: 'skipped (no credential)' });
|
|
85
|
+
}
|
|
86
|
+
// --- Local project ---
|
|
87
|
+
try {
|
|
88
|
+
const config = loadConfig(readWorkspaceDir(args));
|
|
89
|
+
if (config.configPath) {
|
|
90
|
+
checks.push({ name: 'Local project', status: 'ok', detail: config.configPath });
|
|
91
|
+
if (config.workspace) {
|
|
92
|
+
checks.push({ name: 'Project workspace link', status: 'ok', detail: config.workspace });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
checks.push({
|
|
97
|
+
name: 'Local project',
|
|
98
|
+
status: 'warn',
|
|
99
|
+
detail: 'no inquir.config.json found',
|
|
100
|
+
fix: 'Run `inquir init` to create a workspace here.',
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
checks.push({
|
|
106
|
+
name: 'Local project',
|
|
107
|
+
status: 'warn',
|
|
108
|
+
detail: error instanceof Error ? error.message : String(error),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// --- Terminal capabilities ---
|
|
112
|
+
checks.push({
|
|
113
|
+
name: 'Terminal',
|
|
114
|
+
status: 'ok',
|
|
115
|
+
detail: `tty=${Boolean(process.stdout.isTTY)} color=${colorEnabled()}`,
|
|
116
|
+
});
|
|
117
|
+
const failed = checks.some((check) => check.status === 'fail');
|
|
118
|
+
if (json) {
|
|
119
|
+
printLine(JSON.stringify({ ok: !failed, checks }, null, 2));
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
printLine(bold('Inquir Compute — doctor'));
|
|
123
|
+
printLine('');
|
|
124
|
+
for (const check of checks) {
|
|
125
|
+
printLine(` ${symbol(check.status)} ${check.name}${check.detail ? dim(` ${check.detail}`) : ''}`);
|
|
126
|
+
if (check.fix && check.status !== 'ok') {
|
|
127
|
+
printLine(` ${cyan('→')} ${check.fix}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
printLine('');
|
|
131
|
+
printLine(failed ? red('Some checks failed.') : green('All checks passed.'));
|
|
132
|
+
}
|
|
133
|
+
if (failed) {
|
|
134
|
+
process.exitCode = ExitCode.ERROR;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjD,SAAS,MAAM,CAAC,MAAmB;IACjC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACnD,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE;YAC7C,8CAA8C;SAC/C,EAAE;YACD,eAAe;YACf,sBAAsB;SACvB,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACvC,MAAM,EAAE,OAAO,CAAC,OAAO;QACvB,GAAG,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC;KACrE,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;IAChF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,GAAG,cAAc,KAAK,SAAS,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG;SAC9E,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,YAAY;YACpB,GAAG,EAAE,iDAAiD;SACvD,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,GAAG,UAAU,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YAChC,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,mBAAmB,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG;aAC3F,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC9D,GAAG,EAAE,+DAA+D;aACrE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,6BAA6B;gBACrC,GAAG,EAAE,+CAA+C;aACrD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,YAAY,EAAE,EAAE;KACvE,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAE/D,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpG,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACvC,SAAS,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IACpC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4GA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0F/D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -2,25 +2,17 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { configFileSchema } from '../sdk.js';
|
|
5
|
-
import { hasFlag } from '../utils/args.js';
|
|
6
|
-
import {
|
|
5
|
+
import { hasFlag, readFlagValue } from '../utils/args.js';
|
|
6
|
+
import { resolveAuthConfig } from '../utils/auth.js';
|
|
7
|
+
import { buildApiOptions } from '../utils/context.js';
|
|
8
|
+
import { bold, cyan, printLine, printSuccess, printWarning } from '../utils/output.js';
|
|
9
|
+
import { input } from '../utils/prompt.js';
|
|
10
|
+
import { getSdkDependencyRange } from '../utils/package-metadata.js';
|
|
7
11
|
const DEFAULT_CONFIG = {
|
|
8
12
|
functionsDir: 'inquir/functions',
|
|
9
13
|
pipelinesDir: 'inquir/pipelines',
|
|
10
14
|
generatedDir: '.inquir/generated',
|
|
11
15
|
};
|
|
12
|
-
const DEFAULT_PACKAGE_JSON = {
|
|
13
|
-
name: 'inquir-workspace',
|
|
14
|
-
private: true,
|
|
15
|
-
type: 'module',
|
|
16
|
-
scripts: {
|
|
17
|
-
'inquir:codegen': 'inquir codegen',
|
|
18
|
-
},
|
|
19
|
-
dependencies: {
|
|
20
|
-
'@inquir/compute': '^0.1.0',
|
|
21
|
-
zod: '^3.23.8',
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
16
|
const SAMPLE_FUNCTION = `import { defineFunction } from '@inquir/compute';
|
|
25
17
|
import { z } from 'zod';
|
|
26
18
|
|
|
@@ -77,7 +69,13 @@ function printInitUsage() {
|
|
|
77
69
|
printLine('Usage: inquir init [--skip-install]');
|
|
78
70
|
printLine('');
|
|
79
71
|
printLine('Options:');
|
|
72
|
+
printLine(' --name <name> Project name (default: directory name)');
|
|
80
73
|
printLine(' --skip-install Skip automatic dependency installation');
|
|
74
|
+
printLine(' --yes, -y Accept defaults without prompting');
|
|
75
|
+
printLine('');
|
|
76
|
+
printLine('Examples:');
|
|
77
|
+
printLine(' inquir init');
|
|
78
|
+
printLine(' inquir init --name my-api --skip-install');
|
|
81
79
|
}
|
|
82
80
|
async function ensureGeneratedGitignore(rootDir) {
|
|
83
81
|
const gitignorePath = path.join(rootDir, '.gitignore');
|
|
@@ -111,6 +109,8 @@ export async function initCommand(args) {
|
|
|
111
109
|
const packageJsonPath = path.join(rootDir, 'package.json');
|
|
112
110
|
const configExists = await fs.access(configPath).then(() => true).catch(() => false);
|
|
113
111
|
const packageJsonExists = await fs.access(packageJsonPath).then(() => true).catch(() => false);
|
|
112
|
+
// Resolve the project name (flag → interactive prompt → directory name).
|
|
113
|
+
const projectName = readFlagValue(args, '--name') ?? (await input('Project name', { default: path.basename(rootDir) }));
|
|
114
114
|
if (!configExists) {
|
|
115
115
|
const config = configFileSchema.parse(DEFAULT_CONFIG);
|
|
116
116
|
await fs.writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
@@ -121,8 +121,16 @@ export async function initCommand(args) {
|
|
|
121
121
|
}
|
|
122
122
|
if (!packageJsonExists) {
|
|
123
123
|
const packageJson = {
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
name: projectName || path.basename(rootDir),
|
|
125
|
+
private: true,
|
|
126
|
+
type: 'module',
|
|
127
|
+
scripts: {
|
|
128
|
+
'inquir:codegen': 'inquir codegen',
|
|
129
|
+
},
|
|
130
|
+
dependencies: {
|
|
131
|
+
'@inquir/compute': getSdkDependencyRange(),
|
|
132
|
+
zod: '^3.23.8',
|
|
133
|
+
},
|
|
126
134
|
};
|
|
127
135
|
await fs.writeFile(packageJsonPath, `${JSON.stringify(packageJson, null, 2)}\n`, 'utf8');
|
|
128
136
|
printSuccess(`Created ${path.relative(rootDir, packageJsonPath)}`);
|
|
@@ -152,6 +160,25 @@ export async function initCommand(args) {
|
|
|
152
160
|
else {
|
|
153
161
|
await runInstall(rootDir);
|
|
154
162
|
}
|
|
155
|
-
printLine('
|
|
163
|
+
printLine('');
|
|
164
|
+
printSuccess('Workspace initialized.');
|
|
165
|
+
printLine('');
|
|
166
|
+
printLine(bold('Next steps:'));
|
|
167
|
+
// Guide the user toward login only if they are not already authenticated.
|
|
168
|
+
let loggedIn = false;
|
|
169
|
+
try {
|
|
170
|
+
const resolved = await resolveAuthConfig(buildApiOptions(args));
|
|
171
|
+
loggedIn = Boolean(resolved.token || resolved.apiKey);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
loggedIn = false;
|
|
175
|
+
}
|
|
176
|
+
let step = 1;
|
|
177
|
+
if (!loggedIn) {
|
|
178
|
+
printLine(` ${cyan(`${step++}.`)} inquir login # authenticate this device`);
|
|
179
|
+
}
|
|
180
|
+
printLine(` ${cyan(`${step++}.`)} inquir run hello # run the sample locally`);
|
|
181
|
+
printLine(` ${cyan(`${step++}.`)} inquir deploy hello # deploy it`);
|
|
182
|
+
printLine(` ${cyan(`${step++}.`)} inquir invoke hello # call the deployed function`);
|
|
156
183
|
}
|
|
157
184
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/commands/invoke.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCjE"}
|