@inquir/compute-cli 0.1.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/README.md +240 -0
- package/dist/commands/codegen.d.ts +2 -0
- package/dist/commands/codegen.d.ts.map +1 -0
- package/dist/commands/codegen.js +36 -0
- package/dist/commands/codegen.js.map +1 -0
- package/dist/commands/debug.d.ts +2 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +15 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy.d.ts +2 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +127 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/deploys.d.ts +2 -0
- package/dist/commands/deploys.d.ts.map +1 -0
- package/dist/commands/deploys.js +40 -0
- package/dist/commands/deploys.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +157 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/invoke.d.ts +2 -0
- package/dist/commands/invoke.d.ts.map +1 -0
- package/dist/commands/invoke.js +33 -0
- package/dist/commands/invoke.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +37 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +163 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +19 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +2 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +47 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/rollback.d.ts +2 -0
- package/dist/commands/rollback.d.ts.map +1 -0
- package/dist/commands/rollback.js +55 -0
- package/dist/commands/rollback.js.map +1 -0
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +62 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +55 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync-status.d.ts +2 -0
- package/dist/commands/sync-status.d.ts.map +1 -0
- package/dist/commands/sync-status.js +56 -0
- package/dist/commands/sync-status.js.map +1 -0
- package/dist/commands/use.d.ts +2 -0
- package/dist/commands/use.d.ts.map +1 -0
- package/dist/commands/use.js +30 -0
- package/dist/commands/use.js.map +1 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +36 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/commands/workspaces.d.ts +2 -0
- package/dist/commands/workspaces.d.ts.map +1 -0
- package/dist/commands/workspaces.js +37 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk.d.ts +2 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +2 -0
- package/dist/sdk.js.map +1 -0
- package/dist/utils/api.d.ts +31 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +66 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/args.d.ts +19 -0
- package/dist/utils/args.d.ts.map +1 -0
- package/dist/utils/args.js +93 -0
- package/dist/utils/args.js.map +1 -0
- package/dist/utils/assets.d.ts +8 -0
- package/dist/utils/assets.d.ts.map +1 -0
- package/dist/utils/assets.js +19 -0
- package/dist/utils/assets.js.map +1 -0
- package/dist/utils/auth.d.ts +41 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +97 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/browser.d.ts +7 -0
- package/dist/utils/browser.d.ts.map +1 -0
- package/dist/utils/browser.js +34 -0
- package/dist/utils/browser.js.map +1 -0
- package/dist/utils/deploy-follow.d.ts +23 -0
- package/dist/utils/deploy-follow.d.ts.map +1 -0
- package/dist/utils/deploy-follow.js +57 -0
- package/dist/utils/deploy-follow.js.map +1 -0
- package/dist/utils/output.d.ts +19 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +71 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/payload.d.ts +10 -0
- package/dist/utils/payload.d.ts.map +1 -0
- package/dist/utils/payload.js +42 -0
- package/dist/utils/payload.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createClient, createRemoteFunction as sdkCreateRemoteFunction, deployRemoteFunction as sdkDeployRemoteFunction, invokeRemote as sdkInvokeRemote, listRemoteFunctions as sdkListRemoteFunctions, listRemoteInvocations as sdkListRemoteInvocations, resolveRemoteFunction as sdkResolveRemoteFunction, updateRemoteFunction as sdkUpdateRemoteFunction, queueDeploy as sdkQueueDeploy, getDeployStatus as sdkGetDeployStatus, listFunctionDeploys as sdkListFunctionDeploys, rollbackDeploy as sdkRollbackDeploy, streamDeployLogs as sdkStreamDeployLogs, getMe as sdkGetMe, listWorkspaces as sdkListWorkspaces, } from '../sdk.js';
|
|
2
|
+
import { resolveAuthConfig } from './auth.js';
|
|
3
|
+
export async function createApiClient(options = {}) {
|
|
4
|
+
const resolved = await resolveAuthConfig(options);
|
|
5
|
+
// A Personal Access Token (if present) takes precedence over a tenant API key.
|
|
6
|
+
const credential = resolved.token ?? resolved.apiKey;
|
|
7
|
+
// The workspace header only applies to user-scoped credentials (PAT/session).
|
|
8
|
+
// Attach the stored default workspace only when a token is in use; always
|
|
9
|
+
// honour an explicit `--workspace` override so the server can validate it.
|
|
10
|
+
const workspaceId = options.workspaceId ?? (resolved.token ? resolved.workspaceId : undefined);
|
|
11
|
+
return createClient({
|
|
12
|
+
baseUrl: resolved.apiUrl,
|
|
13
|
+
apiKey: credential,
|
|
14
|
+
workspaceId,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export async function listRemoteFunctions(options = {}) {
|
|
18
|
+
return sdkListRemoteFunctions(await createApiClient(options));
|
|
19
|
+
}
|
|
20
|
+
export async function resolveRemoteFunction(identifier, options = {}) {
|
|
21
|
+
const client = await createApiClient(options);
|
|
22
|
+
const functions = await sdkListRemoteFunctions(client);
|
|
23
|
+
const directMatch = functions.find((fn) => fn.id === identifier);
|
|
24
|
+
if (directMatch) {
|
|
25
|
+
return directMatch;
|
|
26
|
+
}
|
|
27
|
+
return sdkResolveRemoteFunction(client, identifier);
|
|
28
|
+
}
|
|
29
|
+
export async function invokeRemote(identifier, payload, options = {}) {
|
|
30
|
+
return sdkInvokeRemote(await createApiClient(options), identifier, payload);
|
|
31
|
+
}
|
|
32
|
+
export async function createRemoteFunction(input, options = {}) {
|
|
33
|
+
return sdkCreateRemoteFunction(await createApiClient(options), input);
|
|
34
|
+
}
|
|
35
|
+
export async function updateRemoteFunction(functionId, input, options = {}) {
|
|
36
|
+
return sdkUpdateRemoteFunction(await createApiClient(options), functionId, input);
|
|
37
|
+
}
|
|
38
|
+
export async function deployRemoteFunction(functionId, deployOptions = {}, options = {}) {
|
|
39
|
+
return sdkDeployRemoteFunction(await createApiClient(options), functionId, deployOptions);
|
|
40
|
+
}
|
|
41
|
+
export async function listRemoteInvocations(functionId, listOptions = {}, options = {}) {
|
|
42
|
+
return sdkListRemoteInvocations(await createApiClient(options), functionId, listOptions);
|
|
43
|
+
}
|
|
44
|
+
export async function queueDeploy(input, options = {}) {
|
|
45
|
+
return sdkQueueDeploy(await createApiClient(options), input);
|
|
46
|
+
}
|
|
47
|
+
export async function getDeployStatus(deployId, options = {}) {
|
|
48
|
+
return sdkGetDeployStatus(await createApiClient(options), deployId);
|
|
49
|
+
}
|
|
50
|
+
export async function listFunctionDeploys(functionId, listOptions = {}, options = {}) {
|
|
51
|
+
return sdkListFunctionDeploys(await createApiClient(options), functionId, listOptions);
|
|
52
|
+
}
|
|
53
|
+
export async function rollbackDeploy(functionId, deployId, rollbackOptions = {}, options = {}) {
|
|
54
|
+
return sdkRollbackDeploy(await createApiClient(options), functionId, deployId, rollbackOptions);
|
|
55
|
+
}
|
|
56
|
+
export async function* streamDeployLogs(deployId, options = {}, signal) {
|
|
57
|
+
const client = await createApiClient(options);
|
|
58
|
+
yield* sdkStreamDeployLogs(client, deployId, signal);
|
|
59
|
+
}
|
|
60
|
+
export async function getMe(options = {}) {
|
|
61
|
+
return sdkGetMe(await createApiClient(options));
|
|
62
|
+
}
|
|
63
|
+
export async function listWorkspaces(options = {}) {
|
|
64
|
+
return sdkListWorkspaces(await createApiClient(options));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface PositionalArgOptions {
|
|
2
|
+
booleanFlags?: string[];
|
|
3
|
+
valueFlags?: string[];
|
|
4
|
+
}
|
|
5
|
+
export declare function hasFlag(args: string[], flag: string): boolean;
|
|
6
|
+
export declare function readFlagValue(args: string[], flag: string): string | undefined;
|
|
7
|
+
export declare function readWorkspaceDir(args: string[]): string;
|
|
8
|
+
export declare function readJsonFlag(args: string[]): boolean;
|
|
9
|
+
export declare function readEnvironmentFlag(args: string[]): string | undefined;
|
|
10
|
+
export declare function readWorkspaceFlag(args: string[]): string | undefined;
|
|
11
|
+
export declare function readLimitFlag(args: string[], fallback: number): number;
|
|
12
|
+
export declare function readCommandName(argv: string[]): string | undefined;
|
|
13
|
+
export declare function findCommand(argv: string[]): {
|
|
14
|
+
index: number;
|
|
15
|
+
name: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export declare function readPositionalArgs(args: string[], options?: PositionalArgOptions): string[];
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"AAYA,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAGvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWtE;AAmCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAoBvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAE/F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
const GLOBAL_BOOLEAN_FLAGS = new Set([
|
|
3
|
+
'--json',
|
|
4
|
+
]);
|
|
5
|
+
const GLOBAL_VALUE_FLAGS = new Set([
|
|
6
|
+
'--config',
|
|
7
|
+
'--env',
|
|
8
|
+
'--workspace',
|
|
9
|
+
]);
|
|
10
|
+
export function hasFlag(args, flag) {
|
|
11
|
+
return args.includes(flag);
|
|
12
|
+
}
|
|
13
|
+
export function readFlagValue(args, flag) {
|
|
14
|
+
const index = args.indexOf(flag);
|
|
15
|
+
if (index < 0) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return args[index + 1];
|
|
19
|
+
}
|
|
20
|
+
export function readWorkspaceDir(args) {
|
|
21
|
+
const configPath = readFlagValue(args, '--config');
|
|
22
|
+
return configPath ? path.resolve(configPath) : process.cwd();
|
|
23
|
+
}
|
|
24
|
+
export function readJsonFlag(args) {
|
|
25
|
+
return hasFlag(args, '--json');
|
|
26
|
+
}
|
|
27
|
+
export function readEnvironmentFlag(args) {
|
|
28
|
+
return readFlagValue(args, '--env');
|
|
29
|
+
}
|
|
30
|
+
export function readWorkspaceFlag(args) {
|
|
31
|
+
return readFlagValue(args, '--workspace');
|
|
32
|
+
}
|
|
33
|
+
export function readLimitFlag(args, fallback) {
|
|
34
|
+
const raw = readFlagValue(args, '--limit');
|
|
35
|
+
if (!raw) {
|
|
36
|
+
return fallback;
|
|
37
|
+
}
|
|
38
|
+
const parsed = Number.parseInt(raw, 10);
|
|
39
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
40
|
+
throw new Error(`Invalid --limit value: ${raw}`);
|
|
41
|
+
}
|
|
42
|
+
return parsed;
|
|
43
|
+
}
|
|
44
|
+
function stripRecognizedFlags(args, options = {}) {
|
|
45
|
+
const booleanFlags = new Set([
|
|
46
|
+
...GLOBAL_BOOLEAN_FLAGS,
|
|
47
|
+
...(options.booleanFlags ?? []),
|
|
48
|
+
]);
|
|
49
|
+
const valueFlags = new Set([
|
|
50
|
+
...GLOBAL_VALUE_FLAGS,
|
|
51
|
+
...(options.valueFlags ?? []),
|
|
52
|
+
]);
|
|
53
|
+
const positionals = [];
|
|
54
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
55
|
+
const arg = args[index];
|
|
56
|
+
if (booleanFlags.has(arg)) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (valueFlags.has(arg)) {
|
|
60
|
+
index += 1;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (arg.startsWith('-')) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
positionals.push(arg);
|
|
67
|
+
}
|
|
68
|
+
return positionals;
|
|
69
|
+
}
|
|
70
|
+
export function readCommandName(argv) {
|
|
71
|
+
return findCommand(argv)?.name;
|
|
72
|
+
}
|
|
73
|
+
export function findCommand(argv) {
|
|
74
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
75
|
+
const arg = argv[index];
|
|
76
|
+
if (GLOBAL_BOOLEAN_FLAGS.has(arg)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (GLOBAL_VALUE_FLAGS.has(arg)) {
|
|
80
|
+
index += 1;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
index,
|
|
85
|
+
name: arg,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
export function readPositionalArgs(args, options = {}) {
|
|
91
|
+
return stripRecognizedFlags(args, options);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AssetEntry, AssetRegistry } from '../sdk.js';
|
|
2
|
+
export declare function findAsset(assets: AssetEntry[], identifier: string): AssetEntry | undefined;
|
|
3
|
+
export declare function findAssetOrExplain(registry: AssetRegistry, identifier: string): {
|
|
4
|
+
asset: AssetEntry;
|
|
5
|
+
} | {
|
|
6
|
+
error: string;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=assets.d.ts.map
|
|
@@ -0,0 +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;AAE3D,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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function findAsset(assets, identifier) {
|
|
2
|
+
return assets.find((asset) => asset.name === identifier
|
|
3
|
+
|| asset.exportName === identifier
|
|
4
|
+
|| asset.localPath === identifier);
|
|
5
|
+
}
|
|
6
|
+
export function findAssetOrExplain(registry, identifier) {
|
|
7
|
+
const asset = findAsset(registry.assets, identifier);
|
|
8
|
+
if (asset)
|
|
9
|
+
return { asset };
|
|
10
|
+
// Check if any IMPORT_FAILED diagnostic mentions a path containing the identifier
|
|
11
|
+
const relatedDiag = registry.diagnostics.find((d) => d.code === 'IMPORT_FAILED' && d.filePath && d.filePath.includes(identifier));
|
|
12
|
+
if (relatedDiag) {
|
|
13
|
+
return {
|
|
14
|
+
error: `Asset "${identifier}" failed to import: ${relatedDiag.message}${relatedDiag.filePath ? ` (${relatedDiag.filePath})` : ''}`,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return { error: `Asset not found: ${identifier}` };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAEA,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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export interface StoredUser {
|
|
2
|
+
id: string;
|
|
3
|
+
email?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface EnvironmentConfig {
|
|
7
|
+
apiUrl?: string;
|
|
8
|
+
apiKey?: string;
|
|
9
|
+
/** Personal Access Token from `inquir login` (user-scoped credential). */
|
|
10
|
+
token?: string;
|
|
11
|
+
/** Active workspace selector (tenant id or slug) for user-scoped credentials. */
|
|
12
|
+
workspaceId?: string;
|
|
13
|
+
/** Cached identity for `inquir whoami` after login. */
|
|
14
|
+
user?: StoredUser;
|
|
15
|
+
}
|
|
16
|
+
export interface AuthConfig extends EnvironmentConfig {
|
|
17
|
+
environments?: Record<string, EnvironmentConfig>;
|
|
18
|
+
}
|
|
19
|
+
export interface ResolvedAuthConfig {
|
|
20
|
+
apiUrl: string;
|
|
21
|
+
apiKey?: string;
|
|
22
|
+
token?: string;
|
|
23
|
+
workspaceId?: string;
|
|
24
|
+
user?: StoredUser;
|
|
25
|
+
}
|
|
26
|
+
/** Default when no config, env, or flags set — first-party prod API (see proxy/Caddyfile). */
|
|
27
|
+
export declare const DEFAULT_API_URL = "https://api.inquir.org";
|
|
28
|
+
export declare function loadAuthConfig(): Promise<AuthConfig>;
|
|
29
|
+
export declare function saveAuthConfig(nextConfig: AuthConfig): Promise<void>;
|
|
30
|
+
export declare function clearAuthConfig(): Promise<void>;
|
|
31
|
+
/** Resolve the active environment name from overrides or environment variables. */
|
|
32
|
+
export declare function resolveEnvironmentName(override?: string): string | undefined;
|
|
33
|
+
export declare function resolveAuthConfig(overrides?: Partial<AuthConfig> & {
|
|
34
|
+
environment?: string;
|
|
35
|
+
}): Promise<ResolvedAuthConfig>;
|
|
36
|
+
/**
|
|
37
|
+
* Mutate the config slice for the active environment (top-level when no `--env`)
|
|
38
|
+
* and persist. Used by login/logout/use to update credentials in place.
|
|
39
|
+
*/
|
|
40
|
+
export declare function updateEnvironmentConfig(environment: string | undefined, mutate: (slice: EnvironmentConfig) => void): Promise<void>;
|
|
41
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +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,CAY1D;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAED,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,CAAA;CAAO,GAC7D,OAAO,CAAC,kBAAkB,CAAC,CAuC7B;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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
/** Default when no config, env, or flags set — first-party prod API (see proxy/Caddyfile). */
|
|
5
|
+
export const DEFAULT_API_URL = 'https://api.inquir.org';
|
|
6
|
+
// Paths are resolved lazily (not module-level constants) so `os.homedir()` can
|
|
7
|
+
// be overridden in tests and respects HOME changes at runtime.
|
|
8
|
+
function configDir() {
|
|
9
|
+
return path.join(os.homedir(), '.inquir');
|
|
10
|
+
}
|
|
11
|
+
function configFile() {
|
|
12
|
+
return path.join(configDir(), 'config.json');
|
|
13
|
+
}
|
|
14
|
+
function legacyConfigFile() {
|
|
15
|
+
return path.join(os.homedir(), '.lambda-cli', 'config.json');
|
|
16
|
+
}
|
|
17
|
+
export async function loadAuthConfig() {
|
|
18
|
+
try {
|
|
19
|
+
const raw = await fs.readFile(configFile(), 'utf8');
|
|
20
|
+
return JSON.parse(raw);
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
try {
|
|
24
|
+
const raw = await fs.readFile(legacyConfigFile(), 'utf8');
|
|
25
|
+
return JSON.parse(raw);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export async function saveAuthConfig(nextConfig) {
|
|
33
|
+
await fs.mkdir(configDir(), { recursive: true });
|
|
34
|
+
await fs.writeFile(configFile(), `${JSON.stringify(nextConfig, null, 2)}\n`, 'utf8');
|
|
35
|
+
}
|
|
36
|
+
export async function clearAuthConfig() {
|
|
37
|
+
try {
|
|
38
|
+
await fs.unlink(configFile());
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Ignore missing config.
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Resolve the active environment name from overrides or environment variables. */
|
|
45
|
+
export function resolveEnvironmentName(override) {
|
|
46
|
+
return override ?? process.env.INQUIR_ENV ?? process.env.LAMBDA_ENV ?? undefined;
|
|
47
|
+
}
|
|
48
|
+
export async function resolveAuthConfig(overrides = {}) {
|
|
49
|
+
const fileConfig = await loadAuthConfig();
|
|
50
|
+
const selectedEnvironment = resolveEnvironmentName(overrides.environment);
|
|
51
|
+
const environmentConfig = selectedEnvironment
|
|
52
|
+
? fileConfig.environments?.[selectedEnvironment] ?? {}
|
|
53
|
+
: {};
|
|
54
|
+
const apiUrl = overrides.apiUrl
|
|
55
|
+
?? process.env.INQUIR_API_URL
|
|
56
|
+
?? process.env.LAMBDA_API_URL
|
|
57
|
+
?? environmentConfig.apiUrl
|
|
58
|
+
?? fileConfig.apiUrl
|
|
59
|
+
?? DEFAULT_API_URL;
|
|
60
|
+
const apiKey = overrides.apiKey
|
|
61
|
+
?? process.env.INQUIR_API_KEY
|
|
62
|
+
?? process.env.LAMBDA_API_KEY
|
|
63
|
+
?? environmentConfig.apiKey
|
|
64
|
+
?? fileConfig.apiKey
|
|
65
|
+
?? undefined;
|
|
66
|
+
const token = overrides.token
|
|
67
|
+
?? process.env.INQUIR_TOKEN
|
|
68
|
+
?? environmentConfig.token
|
|
69
|
+
?? fileConfig.token
|
|
70
|
+
?? undefined;
|
|
71
|
+
const workspaceId = overrides.workspaceId
|
|
72
|
+
?? process.env.INQUIR_WORKSPACE
|
|
73
|
+
?? environmentConfig.workspaceId
|
|
74
|
+
?? fileConfig.workspaceId
|
|
75
|
+
?? undefined;
|
|
76
|
+
const user = environmentConfig.user ?? fileConfig.user;
|
|
77
|
+
return { apiUrl, apiKey, token, workspaceId, user };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Mutate the config slice for the active environment (top-level when no `--env`)
|
|
81
|
+
* and persist. Used by login/logout/use to update credentials in place.
|
|
82
|
+
*/
|
|
83
|
+
export async function updateEnvironmentConfig(environment, mutate) {
|
|
84
|
+
const config = await loadAuthConfig();
|
|
85
|
+
const envName = resolveEnvironmentName(environment);
|
|
86
|
+
if (envName) {
|
|
87
|
+
config.environments = config.environments ?? {};
|
|
88
|
+
const slice = config.environments[envName] ?? {};
|
|
89
|
+
mutate(slice);
|
|
90
|
+
config.environments[envName] = slice;
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
mutate(config);
|
|
94
|
+
}
|
|
95
|
+
await saveAuthConfig(config);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Best-effort open of a URL in the user's default browser. Resolves to `true`
|
|
3
|
+
* if a launcher process was spawned, `false` otherwise (caller should then print
|
|
4
|
+
* the URL for manual copy/paste). Never throws.
|
|
5
|
+
*/
|
|
6
|
+
export declare function openBrowser(url: string): boolean;
|
|
7
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAyBhD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Best-effort open of a URL in the user's default browser. Resolves to `true`
|
|
4
|
+
* if a launcher process was spawned, `false` otherwise (caller should then print
|
|
5
|
+
* the URL for manual copy/paste). Never throws.
|
|
6
|
+
*/
|
|
7
|
+
export function openBrowser(url) {
|
|
8
|
+
try {
|
|
9
|
+
const platform = process.platform;
|
|
10
|
+
let command;
|
|
11
|
+
let args;
|
|
12
|
+
if (platform === 'win32') {
|
|
13
|
+
// `start` is a cmd builtin; the empty "" is the window title argument.
|
|
14
|
+
command = 'cmd';
|
|
15
|
+
args = ['/c', 'start', '', url];
|
|
16
|
+
}
|
|
17
|
+
else if (platform === 'darwin') {
|
|
18
|
+
command = 'open';
|
|
19
|
+
args = [url];
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
command = 'xdg-open';
|
|
23
|
+
args = [url];
|
|
24
|
+
}
|
|
25
|
+
const child = spawn(command, args, { stdio: 'ignore', detached: true });
|
|
26
|
+
child.on('error', () => undefined);
|
|
27
|
+
child.unref();
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,OAAe,CAAC;QACpB,IAAI,IAAc,CAAC;QAEnB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,uEAAuE;YACvE,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,MAAM,CAAC;YACjB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAC;YACrB,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ApiRequestOptions } from './api.js';
|
|
2
|
+
import type { DeployRecord } from './api.js';
|
|
3
|
+
export interface DeployGitContext {
|
|
4
|
+
sha?: string;
|
|
5
|
+
ref?: string;
|
|
6
|
+
repo?: string;
|
|
7
|
+
actor?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Best-effort git/CI context from GitHub Actions environment variables. */
|
|
10
|
+
export declare function collectGitContext(): DeployGitContext | undefined;
|
|
11
|
+
export interface FollowDeployOptions {
|
|
12
|
+
json?: boolean;
|
|
13
|
+
ci?: boolean;
|
|
14
|
+
noLogs?: boolean;
|
|
15
|
+
/** Max time to wait for a terminal status when polling (ms). */
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Stream a deploy's logs to stdout, then resolve with the terminal deploy
|
|
20
|
+
* record. Falls back to status polling if the SSE stream is unavailable.
|
|
21
|
+
*/
|
|
22
|
+
export declare function followDeploy(deployId: string, apiOptions: ApiRequestOptions, opts?: FollowDeployOptions): Promise<DeployRecord>;
|
|
23
|
+
//# sourceMappingURL=deploy-follow.d.ts.map
|
|
@@ -0,0 +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;AAG7C,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,CAoBvB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { isTerminalDeployStatus } from '../sdk.js';
|
|
2
|
+
import { getDeployStatus, streamDeployLogs } from './api.js';
|
|
3
|
+
import { dim, printLine } from './output.js';
|
|
4
|
+
/** Best-effort git/CI context from GitHub Actions environment variables. */
|
|
5
|
+
export function collectGitContext() {
|
|
6
|
+
const env = process.env;
|
|
7
|
+
const git = {
|
|
8
|
+
sha: env.GITHUB_SHA || env.GIT_SHA || undefined,
|
|
9
|
+
ref: env.GITHUB_HEAD_REF || env.GITHUB_REF || env.GIT_REF || undefined,
|
|
10
|
+
repo: env.GITHUB_REPOSITORY || env.GIT_REPO || undefined,
|
|
11
|
+
actor: env.GITHUB_ACTOR || env.GIT_ACTOR || undefined,
|
|
12
|
+
};
|
|
13
|
+
return git.sha || git.ref || git.repo || git.actor ? git : undefined;
|
|
14
|
+
}
|
|
15
|
+
function sleep(ms) {
|
|
16
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
17
|
+
}
|
|
18
|
+
async function pollUntilTerminal(deployId, apiOptions, timeoutMs) {
|
|
19
|
+
const deadline = Date.now() + timeoutMs;
|
|
20
|
+
let last;
|
|
21
|
+
for (;;) {
|
|
22
|
+
last = await getDeployStatus(deployId, apiOptions);
|
|
23
|
+
if (isTerminalDeployStatus(last.status))
|
|
24
|
+
return last;
|
|
25
|
+
if (Date.now() > deadline)
|
|
26
|
+
return last;
|
|
27
|
+
await sleep(1000);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stream a deploy's logs to stdout, then resolve with the terminal deploy
|
|
32
|
+
* record. Falls back to status polling if the SSE stream is unavailable.
|
|
33
|
+
*/
|
|
34
|
+
export async function followDeploy(deployId, apiOptions, opts = {}) {
|
|
35
|
+
const timeoutMs = opts.timeoutMs ?? 10 * 60_000;
|
|
36
|
+
if (!opts.noLogs) {
|
|
37
|
+
try {
|
|
38
|
+
for await (const event of streamDeployLogs(deployId, apiOptions)) {
|
|
39
|
+
if (event.type === 'log') {
|
|
40
|
+
printLine(event.line);
|
|
41
|
+
}
|
|
42
|
+
else if (event.type === 'status') {
|
|
43
|
+
if (!opts.json)
|
|
44
|
+
printLine(dim(`— ${event.status} —`));
|
|
45
|
+
}
|
|
46
|
+
else if (event.type === 'complete') {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// SSE unavailable (e.g. older server) — fall through to polling.
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return pollUntilTerminal(deployId, apiOptions, timeoutMs);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=deploy-follow.js.map
|
|
@@ -0,0 +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;AAS7C,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,GAAG,GAAqB;QAC5B,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,IAAI,SAAS;QAC/C,GAAG,EAAE,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO,IAAI,SAAS;QACtE,IAAI,EAAE,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,QAAQ,IAAI,SAAS;QACxD,KAAK,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,SAAS,IAAI,SAAS;KACtD,CAAC;IACF,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAUD,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,UAA6B,EAC7B,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI,IAA8B,CAAC;IACnC,SAAS,CAAC;QACR,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,QAAgB,EAChB,UAA6B,EAC7B,OAA4B,EAAE;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,GAAG,MAAM,CAAC;IAEhD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,IAAI,CAAC,IAAI,CAAC,IAAI;wBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;gBACxD,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACrC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function bold(value: string): string;
|
|
2
|
+
export declare function dim(value: string): string;
|
|
3
|
+
export declare function green(value: string): string;
|
|
4
|
+
export declare function yellow(value: string): string;
|
|
5
|
+
export declare function red(value: string): string;
|
|
6
|
+
export declare function cyan(value: string): string;
|
|
7
|
+
export declare function printLine(value?: string): void;
|
|
8
|
+
export declare function printError(value: string): void;
|
|
9
|
+
export declare function printSuccess(value: string): void;
|
|
10
|
+
export declare function printWarning(value: string): void;
|
|
11
|
+
export declare function printUsage(value: string): void;
|
|
12
|
+
export declare function printCommandHelp(name: string, usage: string, flags: string[]): void;
|
|
13
|
+
export declare function formatDiagnostic(diag: {
|
|
14
|
+
code: string;
|
|
15
|
+
filePath?: string;
|
|
16
|
+
message: string;
|
|
17
|
+
}, rootDir?: string): string;
|
|
18
|
+
export declare function formatTable(rows: Array<Record<string, string | number | undefined>>, columns: string[]): string;
|
|
19
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAWA,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,wBAAgB,SAAS,CAAC,KAAK,SAAK,GAAG,IAAI,CAE1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE9C;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CASnF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAKrH;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAgB/G"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
const ENABLE_COLOR = process.stdout.isTTY;
|
|
3
|
+
function wrap(code, value) {
|
|
4
|
+
if (!ENABLE_COLOR) {
|
|
5
|
+
return value;
|
|
6
|
+
}
|
|
7
|
+
return `\u001b[${code}m${value}\u001b[0m`;
|
|
8
|
+
}
|
|
9
|
+
export function bold(value) {
|
|
10
|
+
return wrap('1', value);
|
|
11
|
+
}
|
|
12
|
+
export function dim(value) {
|
|
13
|
+
return wrap('2', value);
|
|
14
|
+
}
|
|
15
|
+
export function green(value) {
|
|
16
|
+
return wrap('32', value);
|
|
17
|
+
}
|
|
18
|
+
export function yellow(value) {
|
|
19
|
+
return wrap('33', value);
|
|
20
|
+
}
|
|
21
|
+
export function red(value) {
|
|
22
|
+
return wrap('31', value);
|
|
23
|
+
}
|
|
24
|
+
export function cyan(value) {
|
|
25
|
+
return wrap('36', value);
|
|
26
|
+
}
|
|
27
|
+
export function printLine(value = '') {
|
|
28
|
+
process.stdout.write(`${value}\n`);
|
|
29
|
+
}
|
|
30
|
+
export function printError(value) {
|
|
31
|
+
process.stderr.write(`${red(value)}\n`);
|
|
32
|
+
}
|
|
33
|
+
export function printSuccess(value) {
|
|
34
|
+
printLine(green(value));
|
|
35
|
+
}
|
|
36
|
+
export function printWarning(value) {
|
|
37
|
+
printLine(yellow(value));
|
|
38
|
+
}
|
|
39
|
+
export function printUsage(value) {
|
|
40
|
+
printLine(dim(value));
|
|
41
|
+
}
|
|
42
|
+
function padEnd(value, width) {
|
|
43
|
+
return value.padEnd(width, ' ');
|
|
44
|
+
}
|
|
45
|
+
export function printCommandHelp(name, usage, flags) {
|
|
46
|
+
printLine(`Usage: inquir ${usage}`);
|
|
47
|
+
printLine('');
|
|
48
|
+
if (flags.length > 0) {
|
|
49
|
+
printLine('Options:');
|
|
50
|
+
for (const flag of flags) {
|
|
51
|
+
printLine(` ${flag}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function formatDiagnostic(diag, rootDir) {
|
|
56
|
+
const location = diag.filePath
|
|
57
|
+
? (rootDir ? path.relative(rootDir, diag.filePath) : diag.filePath)
|
|
58
|
+
: '';
|
|
59
|
+
return `[${diag.code}]${location ? ` ${location}:` : ''} ${diag.message}`;
|
|
60
|
+
}
|
|
61
|
+
export function formatTable(rows, columns) {
|
|
62
|
+
if (rows.length === 0) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
const widths = columns.map((column) => Math.max(column.length, ...rows.map((row) => String(row[column] ?? '').length)));
|
|
66
|
+
const header = columns.map((column, index) => bold(padEnd(column, widths[index]))).join(' ');
|
|
67
|
+
const separator = widths.map((width) => '-'.repeat(width)).join(' ');
|
|
68
|
+
const body = rows.map((row) => columns.map((column, index) => padEnd(String(row[column] ?? ''), widths[index])).join(' '));
|
|
69
|
+
return [header, separator, ...body].join('\n');
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|