oblien 2.0.1 → 2.0.2
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/dist/cli/auth.d.ts +13 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +30 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/commands/api-access.d.ts +3 -0
- package/dist/cli/commands/api-access.d.ts.map +1 -0
- package/dist/cli/commands/api-access.js +87 -0
- package/dist/cli/commands/api-access.js.map +1 -0
- package/dist/cli/commands/config.d.ts +3 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +63 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/exec.d.ts +3 -0
- package/dist/cli/commands/exec.d.ts.map +1 -0
- package/dist/cli/commands/exec.js +173 -0
- package/dist/cli/commands/exec.js.map +1 -0
- package/dist/cli/commands/files.d.ts +3 -0
- package/dist/cli/commands/files.d.ts.map +1 -0
- package/dist/cli/commands/files.js +168 -0
- package/dist/cli/commands/files.js.map +1 -0
- package/dist/cli/commands/images.d.ts +3 -0
- package/dist/cli/commands/images.d.ts.map +1 -0
- package/dist/cli/commands/images.js +43 -0
- package/dist/cli/commands/images.js.map +1 -0
- package/dist/cli/commands/lifecycle.d.ts +3 -0
- package/dist/cli/commands/lifecycle.d.ts.map +1 -0
- package/dist/cli/commands/lifecycle.js +88 -0
- package/dist/cli/commands/lifecycle.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +3 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +104 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/metadata.d.ts +3 -0
- package/dist/cli/commands/metadata.d.ts.map +1 -0
- package/dist/cli/commands/metadata.js +73 -0
- package/dist/cli/commands/metadata.js.map +1 -0
- package/dist/cli/commands/metrics.d.ts +3 -0
- package/dist/cli/commands/metrics.d.ts.map +1 -0
- package/dist/cli/commands/metrics.js +57 -0
- package/dist/cli/commands/metrics.js.map +1 -0
- package/dist/cli/commands/network.d.ts +3 -0
- package/dist/cli/commands/network.d.ts.map +1 -0
- package/dist/cli/commands/network.js +88 -0
- package/dist/cli/commands/network.js.map +1 -0
- package/dist/cli/commands/public-access.d.ts +3 -0
- package/dist/cli/commands/public-access.d.ts.map +1 -0
- package/dist/cli/commands/public-access.js +92 -0
- package/dist/cli/commands/public-access.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +134 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +3 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +156 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/snapshots.d.ts +3 -0
- package/dist/cli/commands/snapshots.d.ts.map +1 -0
- package/dist/cli/commands/snapshots.js +100 -0
- package/dist/cli/commands/snapshots.js.map +1 -0
- package/dist/cli/commands/ssh.d.ts +3 -0
- package/dist/cli/commands/ssh.d.ts.map +1 -0
- package/dist/cli/commands/ssh.js +81 -0
- package/dist/cli/commands/ssh.js.map +1 -0
- package/dist/cli/commands/terminal.d.ts +3 -0
- package/dist/cli/commands/terminal.d.ts.map +1 -0
- package/dist/cli/commands/terminal.js +109 -0
- package/dist/cli/commands/terminal.js.map +1 -0
- package/dist/cli/commands/types.d.ts +8 -0
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/commands/types.js +2 -0
- package/dist/cli/commands/types.js.map +1 -0
- package/dist/cli/commands/usage.d.ts +3 -0
- package/dist/cli/commands/usage.d.ts.map +1 -0
- package/dist/cli/commands/usage.js +98 -0
- package/dist/cli/commands/usage.js.map +1 -0
- package/dist/cli/commands/watcher.d.ts +3 -0
- package/dist/cli/commands/watcher.d.ts.map +1 -0
- package/dist/cli/commands/watcher.js +108 -0
- package/dist/cli/commands/watcher.js.map +1 -0
- package/dist/cli/commands/workloads.d.ts +3 -0
- package/dist/cli/commands/workloads.d.ts.map +1 -0
- package/dist/cli/commands/workloads.js +232 -0
- package/dist/cli/commands/workloads.js.map +1 -0
- package/dist/cli/commands/workspaces.d.ts +3 -0
- package/dist/cli/commands/workspaces.d.ts.map +1 -0
- package/dist/cli/commands/workspaces.js +255 -0
- package/dist/cli/commands/workspaces.js.map +1 -0
- package/dist/cli/config-store.d.ts +10 -0
- package/dist/cli/config-store.d.ts.map +1 -0
- package/dist/cli/config-store.js +28 -0
- package/dist/cli/config-store.js.map +1 -0
- package/dist/cli/index.d.ts +12 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +199 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output.d.ts +21 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +108 -0
- package/dist/cli/output.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Oblien } from '../client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build an Oblien client from (in priority order):
|
|
4
|
+
* 1. Explicit flags (--client-id, --client-secret)
|
|
5
|
+
* 2. Environment variables (OBLIEN_CLIENT_ID, OBLIEN_CLIENT_SECRET)
|
|
6
|
+
* 3. Config file (~/.oblien/credentials.json)
|
|
7
|
+
*/
|
|
8
|
+
export declare function buildClient(flags?: {
|
|
9
|
+
clientId?: string;
|
|
10
|
+
clientSecret?: string;
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
}): Oblien;
|
|
13
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CA4BT"}
|
package/dist/cli/auth.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Oblien } from '../client.js';
|
|
2
|
+
import { loadConfig } from './config-store.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build an Oblien client from (in priority order):
|
|
5
|
+
* 1. Explicit flags (--client-id, --client-secret)
|
|
6
|
+
* 2. Environment variables (OBLIEN_CLIENT_ID, OBLIEN_CLIENT_SECRET)
|
|
7
|
+
* 3. Config file (~/.oblien/credentials.json)
|
|
8
|
+
*/
|
|
9
|
+
export function buildClient(flags) {
|
|
10
|
+
const clientId = flags?.clientId ??
|
|
11
|
+
process.env.OBLIEN_CLIENT_ID ??
|
|
12
|
+
loadConfig()?.clientId;
|
|
13
|
+
const clientSecret = flags?.clientSecret ??
|
|
14
|
+
process.env.OBLIEN_CLIENT_SECRET ??
|
|
15
|
+
loadConfig()?.clientSecret;
|
|
16
|
+
if (!clientId || !clientSecret) {
|
|
17
|
+
console.error('Error: Missing credentials.\n\n' +
|
|
18
|
+
'Provide credentials via:\n' +
|
|
19
|
+
' 1. oblien config set\n' +
|
|
20
|
+
' 2. Environment: OBLIEN_CLIENT_ID + OBLIEN_CLIENT_SECRET\n' +
|
|
21
|
+
' 3. Flags: --client-id <id> --client-secret <secret>\n');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const opts = { clientId, clientSecret };
|
|
25
|
+
if (flags?.baseUrl ?? process.env.OBLIEN_BASE_URL ?? loadConfig()?.baseUrl) {
|
|
26
|
+
opts.baseUrl = flags?.baseUrl ?? process.env.OBLIEN_BASE_URL ?? loadConfig()?.baseUrl;
|
|
27
|
+
}
|
|
28
|
+
return new Oblien(opts);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAI3B;IACC,MAAM,QAAQ,GACZ,KAAK,EAAE,QAAQ;QACf,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,UAAU,EAAE,EAAE,QAAQ,CAAC;IAEzB,MAAM,YAAY,GAChB,KAAK,EAAE,YAAY;QACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,UAAU,EAAE,EAAE,YAAY,CAAC;IAE7B,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CACX,iCAAiC;YACjC,4BAA4B;YAC5B,0BAA0B;YAC1B,6DAA6D;YAC7D,yDAAyD,CAC1D,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACvD,IAAI,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,UAAU,EAAE,EAAE,OAAO,CAAC;IACxF,CAAC;IAED,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-access.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { buildClient } from '../auth.js';
|
|
2
|
+
import { printResult, printSuccess } from '../output.js';
|
|
3
|
+
export async function apiAccessCmd(args, flags) {
|
|
4
|
+
const sub = args[0];
|
|
5
|
+
switch (sub) {
|
|
6
|
+
case 'enable': return aaEnable(args[1], flags);
|
|
7
|
+
case 'disable': return aaDisable(args[1], flags);
|
|
8
|
+
case 'status': return aaStatus(args[1], flags);
|
|
9
|
+
case 'token': return aaToken(args[1], flags);
|
|
10
|
+
case 'raw-token': return aaRawToken(args[1], flags);
|
|
11
|
+
case 'rotate': return aaRotate(args[1], flags);
|
|
12
|
+
default:
|
|
13
|
+
console.log(`
|
|
14
|
+
oblien api-access — Manage Internal API access
|
|
15
|
+
|
|
16
|
+
Usage:
|
|
17
|
+
oblien api-access enable <ws-id> Enable Internal API (returns JWT)
|
|
18
|
+
oblien api-access disable <ws-id> Disable Internal API
|
|
19
|
+
oblien api-access status <ws-id> Check status
|
|
20
|
+
oblien api-access token <ws-id> Get gateway JWT
|
|
21
|
+
oblien api-access raw-token <ws-id> Get raw connection token + IP
|
|
22
|
+
oblien api-access rotate <ws-id> Rotate token
|
|
23
|
+
|
|
24
|
+
Examples:
|
|
25
|
+
oblien api-access enable ws_abc123
|
|
26
|
+
oblien api-access token ws_abc123 --json
|
|
27
|
+
oblien api-access raw-token ws_abc123
|
|
28
|
+
`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function requireId(id, cmd) {
|
|
32
|
+
if (!id || id.startsWith('-')) {
|
|
33
|
+
console.error(`Usage: oblien api-access ${cmd} <workspace-id>`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
return id;
|
|
37
|
+
}
|
|
38
|
+
async function aaEnable(id, flags) {
|
|
39
|
+
const wsId = requireId(id, 'enable');
|
|
40
|
+
const client = buildClient(flags);
|
|
41
|
+
const res = await client.workspaces.apiAccess.enable(wsId);
|
|
42
|
+
if (flags.json) {
|
|
43
|
+
printResult(res, true);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
printSuccess(`Internal API enabled for ${wsId}`);
|
|
47
|
+
if (res.token) {
|
|
48
|
+
console.log(`\nGateway JWT:\n${res.token}\n`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async function aaDisable(id, flags) {
|
|
53
|
+
const wsId = requireId(id, 'disable');
|
|
54
|
+
const client = buildClient(flags);
|
|
55
|
+
await client.workspaces.apiAccess.disable(wsId);
|
|
56
|
+
printSuccess(`Internal API disabled for ${wsId}`);
|
|
57
|
+
}
|
|
58
|
+
async function aaStatus(id, flags) {
|
|
59
|
+
const wsId = requireId(id, 'status');
|
|
60
|
+
const client = buildClient(flags);
|
|
61
|
+
const res = await client.workspaces.apiAccess.status(wsId);
|
|
62
|
+
printResult(res, flags.json);
|
|
63
|
+
}
|
|
64
|
+
async function aaToken(id, flags) {
|
|
65
|
+
const wsId = requireId(id, 'token');
|
|
66
|
+
const client = buildClient(flags);
|
|
67
|
+
const res = await client.workspaces.apiAccess.getToken(wsId);
|
|
68
|
+
if (flags.json) {
|
|
69
|
+
printResult(res, true);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.log(res.token ?? JSON.stringify(res));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async function aaRawToken(id, flags) {
|
|
76
|
+
const wsId = requireId(id, 'raw-token');
|
|
77
|
+
const client = buildClient(flags);
|
|
78
|
+
const res = await client.workspaces.apiAccess.rawToken(wsId);
|
|
79
|
+
printResult(res, flags.json);
|
|
80
|
+
}
|
|
81
|
+
async function aaRotate(id, flags) {
|
|
82
|
+
const wsId = requireId(id, 'rotate');
|
|
83
|
+
const client = buildClient(flags);
|
|
84
|
+
const res = await client.workspaces.apiAccess.rotateToken(wsId);
|
|
85
|
+
printResult(res, flags.json);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=api-access.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-access.js","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B/E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { saveConfig, loadConfig, clearConfig, configPath } from '../config-store.js';
|
|
2
|
+
import { printSuccess, printKeyValue } from '../output.js';
|
|
3
|
+
export async function configCmd(args, _flags) {
|
|
4
|
+
const sub = args[0];
|
|
5
|
+
switch (sub) {
|
|
6
|
+
case 'set':
|
|
7
|
+
return configSet(args.slice(1));
|
|
8
|
+
case 'show':
|
|
9
|
+
return configShow();
|
|
10
|
+
case 'path':
|
|
11
|
+
console.log(configPath());
|
|
12
|
+
return;
|
|
13
|
+
case 'clear':
|
|
14
|
+
clearConfig();
|
|
15
|
+
printSuccess('Credentials cleared.');
|
|
16
|
+
return;
|
|
17
|
+
default:
|
|
18
|
+
console.log(`
|
|
19
|
+
oblien config — Manage credentials
|
|
20
|
+
|
|
21
|
+
Usage:
|
|
22
|
+
oblien config set --client-id <id> --client-secret <secret>
|
|
23
|
+
oblien config show
|
|
24
|
+
oblien config path
|
|
25
|
+
oblien config clear
|
|
26
|
+
|
|
27
|
+
Credentials are stored in ${configPath()}
|
|
28
|
+
`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function configSet(args) {
|
|
32
|
+
let clientId;
|
|
33
|
+
let clientSecret;
|
|
34
|
+
let baseUrl;
|
|
35
|
+
for (let i = 0; i < args.length; i++) {
|
|
36
|
+
if (args[i] === '--client-id' && i + 1 < args.length)
|
|
37
|
+
clientId = args[++i];
|
|
38
|
+
else if (args[i] === '--client-secret' && i + 1 < args.length)
|
|
39
|
+
clientSecret = args[++i];
|
|
40
|
+
else if (args[i] === '--base-url' && i + 1 < args.length)
|
|
41
|
+
baseUrl = args[++i];
|
|
42
|
+
}
|
|
43
|
+
if (!clientId || !clientSecret) {
|
|
44
|
+
console.error('Usage: oblien config set --client-id <id> --client-secret <secret> [--base-url <url>]');
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
saveConfig({ clientId, clientSecret, baseUrl });
|
|
48
|
+
printSuccess(`Credentials saved to ${configPath()}`);
|
|
49
|
+
}
|
|
50
|
+
function configShow() {
|
|
51
|
+
const config = loadConfig();
|
|
52
|
+
if (!config || !config.clientId) {
|
|
53
|
+
console.log('No credentials configured.\n\nRun: oblien config set --client-id <id> --client-secret <secret>');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
printKeyValue({
|
|
57
|
+
clientId: config.clientId,
|
|
58
|
+
clientSecret: config.clientSecret.slice(0, 8) + '…',
|
|
59
|
+
baseUrl: config.baseUrl ?? 'https://api.oblien.com (default)',
|
|
60
|
+
path: configPath(),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG3D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAc,EAAE,MAAgB;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM;YACT,OAAO,UAAU,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1B,OAAO;QACT,KAAK,OAAO;YACV,WAAW,EAAE,CAAC;YACd,YAAY,CAAC,sBAAsB,CAAC,CAAC;YACrC,OAAO;QACT;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;8BASY,UAAU,EAAE;CACzC,CAAC,CAAC;IACD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAc;IAC/B,IAAI,QAA4B,CAAC;IACjC,IAAI,YAAgC,CAAC;IACrC,IAAI,OAA2B,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACtE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACnF,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,YAAY,CAAC,wBAAwB,UAAU,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,gGAAgG,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IAED,aAAa,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG;QACnD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,kCAAkC;QAC7D,IAAI,EAAE,UAAU,EAAE;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAkF/E"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { buildClient } from '../auth.js';
|
|
2
|
+
import { printResult } from '../output.js';
|
|
3
|
+
export async function execCmd(rawArgs, flags) {
|
|
4
|
+
// Parse: oblien exec <ws-id> [--stream] [--json] -- <cmd...>
|
|
5
|
+
// Or: oblien exec <ws-id> <cmd...>
|
|
6
|
+
// Strip global flags first
|
|
7
|
+
const args = rawArgs.filter((a, i) => {
|
|
8
|
+
if (a === '--json')
|
|
9
|
+
return false;
|
|
10
|
+
if (a === '--client-id' || a === '--client-secret' || a === '--base-url') {
|
|
11
|
+
rawArgs[i + 1] = ''; // mark next as consumed
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return a !== '';
|
|
15
|
+
});
|
|
16
|
+
const wsId = args[0];
|
|
17
|
+
// Subcommands that don't run a command
|
|
18
|
+
if (wsId === 'list')
|
|
19
|
+
return execList(args[1], flags);
|
|
20
|
+
if (wsId === 'get')
|
|
21
|
+
return execGet(args[1], args[2], flags);
|
|
22
|
+
if (wsId === 'kill')
|
|
23
|
+
return execKill(args[1], args[2], flags);
|
|
24
|
+
if (wsId === 'delete-all')
|
|
25
|
+
return execDeleteAll(args[1], flags);
|
|
26
|
+
if (wsId === 'input')
|
|
27
|
+
return execInput(args[1], args[2], args.slice(3), flags);
|
|
28
|
+
if (wsId === 'subscribe')
|
|
29
|
+
return execSubscribe(args[1], args[2], flags);
|
|
30
|
+
if (!wsId || wsId.startsWith('-')) {
|
|
31
|
+
console.log(`
|
|
32
|
+
oblien exec — Execute commands in a workspace
|
|
33
|
+
|
|
34
|
+
Usage:
|
|
35
|
+
oblien exec <workspace-id> -- <command...> Run a command
|
|
36
|
+
oblien exec <workspace-id> --stream -- <cmd> Stream output (SSE)
|
|
37
|
+
oblien exec list <ws-id> List running tasks
|
|
38
|
+
oblien exec get <ws-id> <task-id> Get task info
|
|
39
|
+
oblien exec kill <ws-id> <task-id> Kill a task
|
|
40
|
+
oblien exec delete-all <ws-id> Delete all tasks
|
|
41
|
+
oblien exec input <ws-id> <task-id> <data> Send stdin to task
|
|
42
|
+
oblien exec subscribe <ws-id> <task-id> Stream task output
|
|
43
|
+
|
|
44
|
+
Examples:
|
|
45
|
+
oblien exec ws_abc123 -- npm test
|
|
46
|
+
oblien exec ws_abc123 -- ls -la /app
|
|
47
|
+
oblien exec ws_abc123 --stream -- npm run dev
|
|
48
|
+
oblien exec list ws_abc123
|
|
49
|
+
oblien exec kill ws_abc123 task_def456
|
|
50
|
+
oblien exec subscribe ws_abc123 task_def456
|
|
51
|
+
`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const stream = args.includes('--stream');
|
|
55
|
+
// Find everything after --
|
|
56
|
+
const dashIdx = args.indexOf('--');
|
|
57
|
+
let cmd;
|
|
58
|
+
if (dashIdx >= 0) {
|
|
59
|
+
cmd = args.slice(dashIdx + 1);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// No -- separator, take everything after wsId and flags
|
|
63
|
+
cmd = args.slice(1).filter(a => a !== '--stream');
|
|
64
|
+
}
|
|
65
|
+
if (cmd.length === 0) {
|
|
66
|
+
console.error('Error: No command specified.\n\nUsage: oblien exec <ws-id> -- <command...>');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
const client = buildClient(flags);
|
|
70
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
71
|
+
if (stream) {
|
|
72
|
+
for await (const event of rt.exec.stream(cmd)) {
|
|
73
|
+
if ('data' in event) {
|
|
74
|
+
process.stdout.write(String(event.data));
|
|
75
|
+
}
|
|
76
|
+
else if (flags.json) {
|
|
77
|
+
printResult(event, true);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const result = await rt.exec.run(cmd);
|
|
83
|
+
printResult(result, flags.json);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function execList(wsId, flags) {
|
|
87
|
+
if (!wsId || wsId.startsWith('-')) {
|
|
88
|
+
console.error('Usage: oblien exec list <ws-id>');
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
const client = buildClient(flags);
|
|
92
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
93
|
+
const res = await rt.exec.list();
|
|
94
|
+
printResult(res, flags.json);
|
|
95
|
+
}
|
|
96
|
+
async function execGet(wsId, taskId, flags) {
|
|
97
|
+
if (!wsId) {
|
|
98
|
+
console.error('Usage: oblien exec get <ws-id> <task-id>');
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
if (!taskId) {
|
|
102
|
+
console.error('Usage: oblien exec get <ws-id> <task-id>');
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
const client = buildClient(flags);
|
|
106
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
107
|
+
const res = await rt.exec.get(taskId);
|
|
108
|
+
printResult(res, flags.json);
|
|
109
|
+
}
|
|
110
|
+
async function execKill(wsId, taskId, flags) {
|
|
111
|
+
if (!wsId) {
|
|
112
|
+
console.error('Usage: oblien exec kill <ws-id> <task-id>');
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
if (!taskId) {
|
|
116
|
+
console.error('Usage: oblien exec kill <ws-id> <task-id>');
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
const client = buildClient(flags);
|
|
120
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
121
|
+
const res = await rt.exec.kill(taskId);
|
|
122
|
+
printResult(res, flags.json);
|
|
123
|
+
}
|
|
124
|
+
async function execDeleteAll(wsId, flags) {
|
|
125
|
+
if (!wsId || wsId.startsWith('-')) {
|
|
126
|
+
console.error('Usage: oblien exec delete-all <ws-id>');
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
const client = buildClient(flags);
|
|
130
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
131
|
+
const res = await rt.exec.deleteAll();
|
|
132
|
+
printResult(res, flags.json);
|
|
133
|
+
}
|
|
134
|
+
async function execInput(wsId, taskId, rest, flags) {
|
|
135
|
+
if (!wsId) {
|
|
136
|
+
console.error('Usage: oblien exec input <ws-id> <task-id> <data>');
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
if (!taskId) {
|
|
140
|
+
console.error('Usage: oblien exec input <ws-id> <task-id> <data>');
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const data = rest.join(' ');
|
|
144
|
+
if (!data) {
|
|
145
|
+
console.error('Usage: oblien exec input <ws-id> <task-id> <data>');
|
|
146
|
+
process.exit(1);
|
|
147
|
+
}
|
|
148
|
+
const client = buildClient(flags);
|
|
149
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
150
|
+
const res = await rt.exec.input(taskId, data);
|
|
151
|
+
printResult(res, flags.json);
|
|
152
|
+
}
|
|
153
|
+
async function execSubscribe(wsId, taskId, flags) {
|
|
154
|
+
if (!wsId) {
|
|
155
|
+
console.error('Usage: oblien exec subscribe <ws-id> <task-id>');
|
|
156
|
+
process.exit(1);
|
|
157
|
+
}
|
|
158
|
+
if (!taskId) {
|
|
159
|
+
console.error('Usage: oblien exec subscribe <ws-id> <task-id>');
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
const client = buildClient(flags);
|
|
163
|
+
const rt = await client.workspaces.runtime(wsId);
|
|
164
|
+
for await (const event of rt.exec.subscribe(taskId)) {
|
|
165
|
+
if ('data' in event) {
|
|
166
|
+
process.stdout.write(String(event.data));
|
|
167
|
+
}
|
|
168
|
+
else if (flags.json) {
|
|
169
|
+
printResult(event, true);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=exec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/files.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC7E"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { buildClient } from '../auth.js';
|
|
3
|
+
import { printResult, printTable, printSuccess } from '../output.js';
|
|
4
|
+
export async function filesCmd(args, flags) {
|
|
5
|
+
const sub = args[0];
|
|
6
|
+
switch (sub) {
|
|
7
|
+
case 'ls':
|
|
8
|
+
case 'list': return filesList(args[1], args.slice(2), flags);
|
|
9
|
+
case 'stream-ls': return filesStreamLs(args[1], args.slice(2), flags);
|
|
10
|
+
case 'cat':
|
|
11
|
+
case 'read': return filesRead(args[1], args[2], flags);
|
|
12
|
+
case 'write': return filesWrite(args[1], args[2], args.slice(3), flags);
|
|
13
|
+
case 'rm':
|
|
14
|
+
case 'delete': return filesDelete(args[1], args[2], flags);
|
|
15
|
+
case 'stat': return filesStat(args[1], args[2], flags);
|
|
16
|
+
case 'mkdir': return filesMkdir(args[1], args[2], flags);
|
|
17
|
+
default:
|
|
18
|
+
console.log(`
|
|
19
|
+
oblien files — Manage workspace files
|
|
20
|
+
|
|
21
|
+
Usage:
|
|
22
|
+
oblien files ls <ws-id> [path] List files
|
|
23
|
+
oblien files stream-ls <ws-id> [path] Stream file listing (NDJSON)
|
|
24
|
+
oblien files cat <ws-id> <path> Read a file
|
|
25
|
+
oblien files write <ws-id> <path> [--content <text> | --file <local-path>]
|
|
26
|
+
Write a file
|
|
27
|
+
oblien files rm <ws-id> <path> Delete file/directory
|
|
28
|
+
oblien files stat <ws-id> <path> Get file info
|
|
29
|
+
oblien files mkdir <ws-id> <path> Create directory
|
|
30
|
+
|
|
31
|
+
Examples:
|
|
32
|
+
oblien files ls ws_abc123 /app
|
|
33
|
+
oblien files cat ws_abc123 /app/index.js
|
|
34
|
+
oblien files write ws_abc123 /app/config.json --content '{"port": 3000}'
|
|
35
|
+
oblien files write ws_abc123 /app/main.py --file ./main.py
|
|
36
|
+
echo "hello" | oblien files write ws_abc123 /app/hello.txt
|
|
37
|
+
oblien files rm ws_abc123 /app/tmp
|
|
38
|
+
oblien files mkdir ws_abc123 /app/logs
|
|
39
|
+
`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function requireArgs(wsId, cmd) {
|
|
43
|
+
if (!wsId || wsId.startsWith('-')) {
|
|
44
|
+
console.error(`Usage: oblien files ${cmd} <workspace-id> ...`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
return wsId;
|
|
48
|
+
}
|
|
49
|
+
async function filesList(wsId, args, flags) {
|
|
50
|
+
const id = requireArgs(wsId, 'ls');
|
|
51
|
+
const client = buildClient(flags);
|
|
52
|
+
const rt = await client.workspaces.runtime(id);
|
|
53
|
+
const dirPath = args[0] || '/';
|
|
54
|
+
const res = await rt.files.list({ dirPath });
|
|
55
|
+
if (flags.json) {
|
|
56
|
+
printResult(res, true);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const entries = res.entries ?? res;
|
|
60
|
+
if (Array.isArray(entries)) {
|
|
61
|
+
printTable(entries.map((f) => ({
|
|
62
|
+
name: f.name + (f.type === 'directory' ? '/' : ''),
|
|
63
|
+
size: f.size ?? '-',
|
|
64
|
+
modified: f.modified?.slice(0, 19) ?? '-',
|
|
65
|
+
})), ['name', 'size', 'modified']);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
printResult(res, false);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async function filesRead(wsId, filePath, flags) {
|
|
73
|
+
const id = requireArgs(wsId, 'cat');
|
|
74
|
+
if (!filePath) {
|
|
75
|
+
console.error('Usage: oblien files cat <ws-id> <file-path>');
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
const client = buildClient(flags);
|
|
79
|
+
const rt = await client.workspaces.runtime(id);
|
|
80
|
+
const res = await rt.files.read({ filePath });
|
|
81
|
+
if (flags.json) {
|
|
82
|
+
printResult(res, true);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
// Print raw content for piping
|
|
86
|
+
process.stdout.write(res.content ?? JSON.stringify(res));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function filesWrite(wsId, filePath, args, flags) {
|
|
90
|
+
const id = requireArgs(wsId, 'write');
|
|
91
|
+
if (!filePath) {
|
|
92
|
+
console.error('Usage: oblien files write <ws-id> <path> [--content <text> | --file <local>]');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
let content;
|
|
96
|
+
const contentFlag = args.indexOf('--content');
|
|
97
|
+
const fileFlag = args.indexOf('--file');
|
|
98
|
+
if (contentFlag >= 0 && contentFlag + 1 < args.length) {
|
|
99
|
+
content = args[contentFlag + 1];
|
|
100
|
+
}
|
|
101
|
+
else if (fileFlag >= 0 && fileFlag + 1 < args.length) {
|
|
102
|
+
content = readFileSync(args[fileFlag + 1], 'utf-8');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Read from stdin
|
|
106
|
+
const chunks = [];
|
|
107
|
+
for await (const chunk of process.stdin) {
|
|
108
|
+
chunks.push(chunk);
|
|
109
|
+
}
|
|
110
|
+
content = Buffer.concat(chunks).toString('utf-8');
|
|
111
|
+
}
|
|
112
|
+
const client = buildClient(flags);
|
|
113
|
+
const rt = await client.workspaces.runtime(id);
|
|
114
|
+
const res = await rt.files.write({ fullPath: filePath, content, createDirs: true });
|
|
115
|
+
printResult(res, flags.json);
|
|
116
|
+
}
|
|
117
|
+
async function filesDelete(wsId, filePath, flags) {
|
|
118
|
+
const id = requireArgs(wsId, 'rm');
|
|
119
|
+
if (!filePath) {
|
|
120
|
+
console.error('Usage: oblien files rm <ws-id> <path>');
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
const client = buildClient(flags);
|
|
124
|
+
const rt = await client.workspaces.runtime(id);
|
|
125
|
+
await rt.files.delete({ path: filePath });
|
|
126
|
+
printSuccess(`Deleted: ${filePath}`);
|
|
127
|
+
}
|
|
128
|
+
async function filesStat(wsId, filePath, flags) {
|
|
129
|
+
const id = requireArgs(wsId, 'stat');
|
|
130
|
+
if (!filePath) {
|
|
131
|
+
console.error('Usage: oblien files stat <ws-id> <path>');
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
const client = buildClient(flags);
|
|
135
|
+
const rt = await client.workspaces.runtime(id);
|
|
136
|
+
const res = await rt.files.stat({ path: filePath });
|
|
137
|
+
printResult(res, flags.json);
|
|
138
|
+
}
|
|
139
|
+
async function filesMkdir(wsId, dirPath, flags) {
|
|
140
|
+
const id = requireArgs(wsId, 'mkdir');
|
|
141
|
+
if (!dirPath) {
|
|
142
|
+
console.error('Usage: oblien files mkdir <ws-id> <path>');
|
|
143
|
+
process.exit(1);
|
|
144
|
+
}
|
|
145
|
+
const client = buildClient(flags);
|
|
146
|
+
const rt = await client.workspaces.runtime(id);
|
|
147
|
+
await rt.files.mkdir({ path: dirPath });
|
|
148
|
+
printSuccess(`Created: ${dirPath}`);
|
|
149
|
+
}
|
|
150
|
+
async function filesStreamLs(wsId, args, flags) {
|
|
151
|
+
const id = requireArgs(wsId, 'stream-ls');
|
|
152
|
+
const dirPath = args.find(a => !a.startsWith('-')) ?? '/';
|
|
153
|
+
const client = buildClient(flags);
|
|
154
|
+
const rt = await client.workspaces.runtime(id);
|
|
155
|
+
const params = { path: dirPath };
|
|
156
|
+
if (args.includes('--recursive'))
|
|
157
|
+
params.recursive = true;
|
|
158
|
+
for await (const entry of rt.files.stream(params)) {
|
|
159
|
+
if (flags.json) {
|
|
160
|
+
printResult(entry, true);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
const name = entry.name ?? entry.path ?? JSON.stringify(entry);
|
|
164
|
+
process.stdout.write(`${name}\n`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cli/commands/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,KAAe;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC;QACV,KAAK,MAAM,CAAC,CAAM,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClE,KAAK,WAAW,CAAC,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtE,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC,CAAG,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzD,KAAK,OAAO,CAAC,CAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzE,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,CAAG,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACzD,KAAK,OAAO,CAAC,CAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBjB,CAAC,CAAC;IACD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAwB,EAAE,GAAW;IACxD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,uBAAuB,GAAG,qBAAqB,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAwB,EAAE,IAAc,EAAE,KAAe;IAChF,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAE7C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAI,GAAW,CAAC,OAAO,IAAI,GAAG,CAAC;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,UAAU,CACR,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;gBACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG;aAC1C,CAAC,CAAC,EACH,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAC7B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAwB,EAAE,QAA4B,EAAE,KAAe;IAC9F,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,+BAA+B;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAE,GAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAwB,EACxB,QAA4B,EAC5B,IAAc,EACd,KAAe;IAEf,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAe,CAAC;IAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,WAAW,IAAI,CAAC,IAAI,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvD,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,kBAAkB;QAClB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAwB,EAAE,QAA4B,EAAE,KAAe;IAChG,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,YAAY,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAwB,EAAE,QAA4B,EAAE,KAAe;IAC9F,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAwB,EAAE,OAA2B,EAAE,KAAe;IAC9F,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,YAAY,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAwB,EAAE,IAAc,EAAE,KAAe;IACpF,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;IAE1D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAE/C,MAAM,MAAM,GAA4B,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IAE1D,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAa,CAAC,EAAE,CAAC;QACzD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAI,KAAa,CAAC,IAAI,IAAK,KAAa,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/images.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB9E"}
|