oblien 2.0.3 → 2.0.5
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.map +1 -1
- package/dist/cli/auth.js +4 -3
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/api-access.d.ts.map +1 -1
- package/dist/cli/commands/api-access.js +8 -14
- package/dist/cli/commands/api-access.js.map +1 -1
- package/dist/cli/commands/auth.d.ts +13 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +181 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/exec.d.ts.map +1 -1
- package/dist/cli/commands/exec.js +39 -59
- package/dist/cli/commands/exec.js.map +1 -1
- package/dist/cli/commands/files.d.ts.map +1 -1
- package/dist/cli/commands/files.js +133 -17
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/helpers.d.ts +29 -0
- package/dist/cli/commands/helpers.d.ts.map +1 -0
- package/dist/cli/commands/helpers.js +61 -0
- package/dist/cli/commands/helpers.js.map +1 -0
- package/dist/cli/commands/images.d.ts.map +1 -1
- package/dist/cli/commands/images.js +2 -5
- package/dist/cli/commands/images.js.map +1 -1
- package/dist/cli/commands/lifecycle.d.ts.map +1 -1
- package/dist/cli/commands/lifecycle.js +9 -14
- package/dist/cli/commands/lifecycle.js.map +1 -1
- package/dist/cli/commands/logs.d.ts.map +1 -1
- package/dist/cli/commands/logs.js +9 -19
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/metadata.d.ts.map +1 -1
- package/dist/cli/commands/metadata.js +5 -11
- package/dist/cli/commands/metadata.js.map +1 -1
- package/dist/cli/commands/metrics.d.ts.map +1 -1
- package/dist/cli/commands/metrics.js +6 -12
- package/dist/cli/commands/metrics.js.map +1 -1
- package/dist/cli/commands/namespaces.d.ts +3 -0
- package/dist/cli/commands/namespaces.d.ts.map +1 -0
- package/dist/cli/commands/namespaces.js +205 -0
- package/dist/cli/commands/namespaces.js.map +1 -0
- package/dist/cli/commands/network.d.ts.map +1 -1
- package/dist/cli/commands/network.js +2 -5
- package/dist/cli/commands/network.js.map +1 -1
- package/dist/cli/commands/public-access.d.ts.map +1 -1
- package/dist/cli/commands/public-access.js +5 -15
- package/dist/cli/commands/public-access.js.map +1 -1
- package/dist/cli/commands/search.d.ts.map +1 -1
- package/dist/cli/commands/search.js +4 -7
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/skills.js +2 -2
- package/dist/cli/commands/snapshots.d.ts.map +1 -1
- package/dist/cli/commands/snapshots.js +14 -19
- package/dist/cli/commands/snapshots.js.map +1 -1
- package/dist/cli/commands/ssh.d.ts.map +1 -1
- package/dist/cli/commands/ssh.js +52 -19
- package/dist/cli/commands/ssh.js.map +1 -1
- package/dist/cli/commands/terminal.d.ts.map +1 -1
- package/dist/cli/commands/terminal.js +6 -16
- package/dist/cli/commands/terminal.js.map +1 -1
- package/dist/cli/commands/usage.d.ts.map +1 -1
- package/dist/cli/commands/usage.js +13 -18
- package/dist/cli/commands/usage.js.map +1 -1
- package/dist/cli/commands/watcher.d.ts.map +1 -1
- package/dist/cli/commands/watcher.js +6 -16
- package/dist/cli/commands/watcher.js.map +1 -1
- package/dist/cli/commands/workloads.d.ts.map +1 -1
- package/dist/cli/commands/workloads.js +28 -40
- package/dist/cli/commands/workloads.js.map +1 -1
- package/dist/cli/commands/workspaces.d.ts.map +1 -1
- package/dist/cli/commands/workspaces.js +9 -15
- package/dist/cli/commands/workspaces.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +28 -7
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +2 -2
- package/dist/cli/output.js +2 -2
- package/dist/client.d.ts +6 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +29 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tools.d.ts +4 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +370 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/namespace.d.ts +232 -0
- package/dist/namespace.d.ts.map +1 -0
- package/dist/namespace.js +338 -0
- package/dist/namespace.js.map +1 -0
- package/dist/resources/api-access.d.ts +1 -1
- package/dist/resources/api-access.js +1 -1
- package/dist/resources/lifecycle.d.ts +2 -2
- package/dist/resources/lifecycle.js +2 -2
- package/dist/resources/logs.d.ts +1 -1
- package/dist/resources/logs.js +1 -1
- package/dist/resources/metrics.d.ts +1 -1
- package/dist/resources/metrics.js +1 -1
- package/dist/resources/network.d.ts +1 -1
- package/dist/resources/network.js +1 -1
- package/dist/resources/public-access.d.ts +1 -1
- package/dist/resources/public-access.js +1 -1
- package/dist/resources/resources.d.ts +1 -1
- package/dist/resources/resources.js +1 -1
- package/dist/runtime/exec.d.ts +2 -2
- package/dist/runtime/exec.js +2 -2
- package/dist/runtime/files.d.ts +1 -1
- package/dist/runtime/files.js +1 -1
- package/dist/runtime/transfer.d.ts +34 -0
- package/dist/runtime/transfer.d.ts.map +1 -0
- package/dist/runtime/transfer.js +49 -0
- package/dist/runtime/transfer.js.map +1 -0
- package/dist/runtime/ws.d.ts +2 -2
- package/dist/runtime/ws.js +2 -2
- package/dist/runtime-http.d.ts +7 -0
- package/dist/runtime-http.d.ts.map +1 -1
- package/dist/runtime-http.js +17 -0
- package/dist/runtime-http.js.map +1 -1
- package/dist/runtime.d.ts +9 -6
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +10 -6
- package/dist/runtime.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/namespace.d.ts +169 -0
- package/dist/types/namespace.d.ts.map +1 -0
- package/dist/types/namespace.js +3 -0
- package/dist/types/namespace.js.map +1 -0
- package/dist/types/runtime.d.ts +24 -4
- package/dist/types/runtime.d.ts.map +1 -1
- package/dist/types/workspace.d.ts +6 -0
- package/dist/types/workspace.d.ts.map +1 -1
- package/dist/workspace-handle.d.ts +9 -9
- package/dist/workspace-handle.js +9 -9
- package/dist/workspace.d.ts +14 -14
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +16 -16
- package/dist/workspace.js.map +1 -1
- package/package.json +6 -2
package/dist/cli/auth.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,CA6BT"}
|
package/dist/cli/auth.js
CHANGED
|
@@ -16,9 +16,10 @@ export function buildClient(flags) {
|
|
|
16
16
|
if (!clientId || !clientSecret) {
|
|
17
17
|
console.error('Error: Missing credentials.\n\n' +
|
|
18
18
|
'Provide credentials via:\n' +
|
|
19
|
-
' 1. oblien
|
|
20
|
-
' 2.
|
|
21
|
-
' 3.
|
|
19
|
+
' 1. oblien auth login\n' +
|
|
20
|
+
' 2. oblien config set --client-id <id> --client-secret <secret>\n' +
|
|
21
|
+
' 3. Environment: OBLIEN_CLIENT_ID + OBLIEN_CLIENT_SECRET\n' +
|
|
22
|
+
' 4. Flags: --client-id <id> --client-secret <secret>\n');
|
|
22
23
|
process.exit(1);
|
|
23
24
|
}
|
|
24
25
|
const opts = { clientId, clientSecret };
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -1 +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"}
|
|
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,oEAAoE;YACpE,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-access.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-access.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"AAGA,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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { buildClient } from '../auth.js';
|
|
2
2
|
import { printResult, printSuccess } from '../output.js';
|
|
3
|
+
import { requireId } from './helpers.js';
|
|
3
4
|
export async function apiAccessCmd(args, flags) {
|
|
4
5
|
const sub = args[0];
|
|
5
6
|
switch (sub) {
|
|
@@ -11,7 +12,7 @@ export async function apiAccessCmd(args, flags) {
|
|
|
11
12
|
case 'rotate': return aaRotate(args[1], flags);
|
|
12
13
|
default:
|
|
13
14
|
console.log(`
|
|
14
|
-
oblien api-access
|
|
15
|
+
oblien api-access - Manage Internal API access
|
|
15
16
|
|
|
16
17
|
Usage:
|
|
17
18
|
oblien api-access enable <ws-id> Enable Internal API (returns JWT)
|
|
@@ -28,15 +29,8 @@ export async function apiAccessCmd(args, flags) {
|
|
|
28
29
|
`);
|
|
29
30
|
}
|
|
30
31
|
}
|
|
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
32
|
async function aaEnable(id, flags) {
|
|
39
|
-
const wsId = requireId(id, 'enable');
|
|
33
|
+
const wsId = requireId(id, 'api-access enable <workspace-id>');
|
|
40
34
|
const client = buildClient(flags);
|
|
41
35
|
const res = await client.workspaces.apiAccess.enable(wsId);
|
|
42
36
|
if (flags.json) {
|
|
@@ -50,19 +44,19 @@ async function aaEnable(id, flags) {
|
|
|
50
44
|
}
|
|
51
45
|
}
|
|
52
46
|
async function aaDisable(id, flags) {
|
|
53
|
-
const wsId = requireId(id, 'disable');
|
|
47
|
+
const wsId = requireId(id, 'api-access disable <workspace-id>');
|
|
54
48
|
const client = buildClient(flags);
|
|
55
49
|
await client.workspaces.apiAccess.disable(wsId);
|
|
56
50
|
printSuccess(`Internal API disabled for ${wsId}`);
|
|
57
51
|
}
|
|
58
52
|
async function aaStatus(id, flags) {
|
|
59
|
-
const wsId = requireId(id, 'status');
|
|
53
|
+
const wsId = requireId(id, 'api-access status <workspace-id>');
|
|
60
54
|
const client = buildClient(flags);
|
|
61
55
|
const res = await client.workspaces.apiAccess.status(wsId);
|
|
62
56
|
printResult(res, flags.json);
|
|
63
57
|
}
|
|
64
58
|
async function aaToken(id, flags) {
|
|
65
|
-
const wsId = requireId(id, 'token');
|
|
59
|
+
const wsId = requireId(id, 'api-access token <workspace-id>');
|
|
66
60
|
const client = buildClient(flags);
|
|
67
61
|
const res = await client.workspaces.apiAccess.getToken(wsId);
|
|
68
62
|
if (flags.json) {
|
|
@@ -73,13 +67,13 @@ async function aaToken(id, flags) {
|
|
|
73
67
|
}
|
|
74
68
|
}
|
|
75
69
|
async function aaRawToken(id, flags) {
|
|
76
|
-
const wsId = requireId(id, 'raw-token');
|
|
70
|
+
const wsId = requireId(id, 'api-access raw-token <workspace-id>');
|
|
77
71
|
const client = buildClient(flags);
|
|
78
72
|
const res = await client.workspaces.apiAccess.rawToken(wsId);
|
|
79
73
|
printResult(res, flags.json);
|
|
80
74
|
}
|
|
81
75
|
async function aaRotate(id, flags) {
|
|
82
|
-
const wsId = requireId(id, 'rotate');
|
|
76
|
+
const wsId = requireId(id, 'api-access rotate <workspace-id>');
|
|
83
77
|
const client = buildClient(flags);
|
|
84
78
|
const res = await client.workspaces.apiAccess.rotateToken(wsId);
|
|
85
79
|
printResult(res, flags.json);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-access.js","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"api-access.js","sourceRoot":"","sources":["../../../src/cli/commands/api-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc,EAAE,KAAe;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC,CAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,KAAK,SAAS,CAAC,CAAK,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrD,KAAK,QAAQ,CAAC,CAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,KAAK,OAAO,CAAC,CAAO,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,WAAW,CAAC,CAAG,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,KAAK,QAAQ,CAAC,CAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD;YACE,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAejB,CAAC,CAAC;IACD,CAAC;AACH,CAAC;AAID,KAAK,UAAU,QAAQ,CAAC,EAAsB,EAAE,KAAe;IAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,EAAsB,EAAE,KAAe;IAC9D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,YAAY,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAsB,EAAE,KAAe;IAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,EAAsB,EAAE,KAAe;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,EAAsB,EAAE,KAAe;IAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,qCAAqC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7D,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,EAAsB,EAAE,KAAe;IAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,kCAAkC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* oblien auth - Browser-based login flow (like `gh auth login`).
|
|
3
|
+
*
|
|
4
|
+
* 1. Gets a session token from /auth/token
|
|
5
|
+
* 2. Creates an auth session via /auth/session → https://auth.oblien.com/{id}
|
|
6
|
+
* 3. Opens the URL in the user's browser (or prints it)
|
|
7
|
+
* 4. Polls /auth/verify until the user finishes login
|
|
8
|
+
* 5. Auto-creates API credentials via /developer/credentials
|
|
9
|
+
* 6. Stores clientId + clientSecret in ~/.oblien/credentials.json
|
|
10
|
+
*/
|
|
11
|
+
import type { CliFlags } from './types.js';
|
|
12
|
+
export declare function authCmd(args: string[], flags: CliFlags): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAuL3C,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB5E"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* oblien auth - Browser-based login flow (like `gh auth login`).
|
|
3
|
+
*
|
|
4
|
+
* 1. Gets a session token from /auth/token
|
|
5
|
+
* 2. Creates an auth session via /auth/session → https://auth.oblien.com/{id}
|
|
6
|
+
* 3. Opens the URL in the user's browser (or prints it)
|
|
7
|
+
* 4. Polls /auth/verify until the user finishes login
|
|
8
|
+
* 5. Auto-creates API credentials via /developer/credentials
|
|
9
|
+
* 6. Stores clientId + clientSecret in ~/.oblien/credentials.json
|
|
10
|
+
*/
|
|
11
|
+
import { createInterface } from 'node:readline';
|
|
12
|
+
import { exec } from 'node:child_process';
|
|
13
|
+
import { saveConfig, loadConfig, clearConfig, configPath } from '../config-store.js';
|
|
14
|
+
import { printSuccess, printError } from '../output.js';
|
|
15
|
+
const DEFAULT_BASE = 'https://api.oblien.com';
|
|
16
|
+
// ── Helpers ─────────────────────────────────────────────────────────
|
|
17
|
+
async function api(base, path, opts = {}) {
|
|
18
|
+
const url = `${base}${path}`;
|
|
19
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
20
|
+
if (opts.token)
|
|
21
|
+
headers['Authorization'] = `Bearer ${opts.token}`;
|
|
22
|
+
const res = await fetch(url, {
|
|
23
|
+
method: opts.method ?? 'POST',
|
|
24
|
+
headers,
|
|
25
|
+
body: opts.body ? JSON.stringify(opts.body) : undefined,
|
|
26
|
+
});
|
|
27
|
+
return res.json();
|
|
28
|
+
}
|
|
29
|
+
function openBrowser(url) {
|
|
30
|
+
const cmd = process.platform === 'darwin'
|
|
31
|
+
? `open "${url}"`
|
|
32
|
+
: process.platform === 'win32'
|
|
33
|
+
? `start "" "${url}"`
|
|
34
|
+
: `xdg-open "${url}"`;
|
|
35
|
+
exec(cmd, () => { });
|
|
36
|
+
}
|
|
37
|
+
function sleep(ms) {
|
|
38
|
+
return new Promise(r => setTimeout(r, ms));
|
|
39
|
+
}
|
|
40
|
+
function prompt(question) {
|
|
41
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
42
|
+
return new Promise(resolve => {
|
|
43
|
+
rl.question(question, answer => {
|
|
44
|
+
rl.close();
|
|
45
|
+
resolve(answer.trim());
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// ── Login ───────────────────────────────────────────────────────────
|
|
50
|
+
async function authLogin(flags) {
|
|
51
|
+
const base = flags.baseUrl ?? DEFAULT_BASE;
|
|
52
|
+
// Check if already logged in
|
|
53
|
+
const existing = loadConfig();
|
|
54
|
+
if (existing?.clientId && existing?.clientSecret) {
|
|
55
|
+
const answer = await prompt('You are already logged in. Re-authenticate? [y/N] ');
|
|
56
|
+
if (answer.toLowerCase() !== 'y') {
|
|
57
|
+
console.log('Cancelled.');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Step 1: Get a session token
|
|
62
|
+
console.log('');
|
|
63
|
+
const tokenRes = await api(base, '/auth/token');
|
|
64
|
+
if (!tokenRes.success || !tokenRes.token) {
|
|
65
|
+
printError('Failed to create session. Try again later.');
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
const jwt = tokenRes.token;
|
|
69
|
+
// Step 2: Create auth session
|
|
70
|
+
const sessionRes = await api(base, '/auth/session', {
|
|
71
|
+
token: jwt,
|
|
72
|
+
body: { app: 'oblien', redirect_url: `${base}/auth/status` },
|
|
73
|
+
});
|
|
74
|
+
if (!sessionRes.success || !sessionRes.url) {
|
|
75
|
+
printError('Failed to create auth session.');
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
const authUrl = sessionRes.url;
|
|
79
|
+
const authId = authUrl.split('/').pop();
|
|
80
|
+
// Step 3: Open browser and prompt
|
|
81
|
+
console.log(' Open this URL in your browser to log in:\n');
|
|
82
|
+
console.log(` \x1b[4m${authUrl}\x1b[0m\n`);
|
|
83
|
+
openBrowser(authUrl);
|
|
84
|
+
console.log(' Waiting for authentication...\n');
|
|
85
|
+
// Step 4: Poll until auth completes
|
|
86
|
+
const POLL_INTERVAL = 2_000;
|
|
87
|
+
const POLL_TIMEOUT = 300_000; // 5 minutes
|
|
88
|
+
const start = Date.now();
|
|
89
|
+
let loggedInToken = null;
|
|
90
|
+
while (Date.now() - start < POLL_TIMEOUT) {
|
|
91
|
+
await sleep(POLL_INTERVAL);
|
|
92
|
+
const verifyRes = await api(base, '/auth/verify', {
|
|
93
|
+
body: { sessionId: authId },
|
|
94
|
+
});
|
|
95
|
+
if (verifyRes.success && verifyRes.token) {
|
|
96
|
+
loggedInToken = verifyRes.token;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
// If the session returned already_logged_in, the user was already
|
|
100
|
+
// logged-in and the auth session was fulfilled immediately.
|
|
101
|
+
if (verifyRes.status === 'already_logged_in' && verifyRes.redirect_url) {
|
|
102
|
+
// The session JWT we got originally is already tied to this user
|
|
103
|
+
// It should now have user_id set, so re-verify
|
|
104
|
+
const recheck = await api(base, '/auth/verify', {
|
|
105
|
+
body: { sessionId: authId },
|
|
106
|
+
});
|
|
107
|
+
if (recheck.token) {
|
|
108
|
+
loggedInToken = recheck.token;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (!loggedInToken) {
|
|
114
|
+
printError('Login timed out. Please try again.');
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
console.log(' ✓ Authenticated!\n');
|
|
118
|
+
// Step 5: Create API credentials
|
|
119
|
+
console.log(' Creating API credentials...');
|
|
120
|
+
const credRes = await api(base, '/developer/credentials', {
|
|
121
|
+
token: loggedInToken,
|
|
122
|
+
body: { name: 'Oblien CLI', scope: 'admin' },
|
|
123
|
+
});
|
|
124
|
+
if (!credRes.success || !credRes.credential) {
|
|
125
|
+
printError('Login succeeded but failed to create API credentials.');
|
|
126
|
+
printError('Create them manually at https://oblien.com/dashboard/developer');
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
const { client_id, client_secret } = credRes.credential;
|
|
130
|
+
// Step 6: Save to config
|
|
131
|
+
saveConfig({
|
|
132
|
+
clientId: client_id,
|
|
133
|
+
clientSecret: client_secret,
|
|
134
|
+
...(base !== DEFAULT_BASE ? { baseUrl: base } : {}),
|
|
135
|
+
});
|
|
136
|
+
printSuccess('Logged in!');
|
|
137
|
+
console.log(` Credentials saved to ${configPath()}\n`);
|
|
138
|
+
console.log(' You can now use the CLI and MCP server.\n');
|
|
139
|
+
}
|
|
140
|
+
// ── Logout ──────────────────────────────────────────────────────────
|
|
141
|
+
function authLogout() {
|
|
142
|
+
clearConfig();
|
|
143
|
+
printSuccess('Logged out. Credentials removed.');
|
|
144
|
+
}
|
|
145
|
+
// ── Status ──────────────────────────────────────────────────────────
|
|
146
|
+
function authStatus() {
|
|
147
|
+
const config = loadConfig();
|
|
148
|
+
if (!config?.clientId) {
|
|
149
|
+
console.log('Not logged in.\n\nRun: oblien auth login');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
console.log(` Logged in`);
|
|
153
|
+
console.log(` Client ID: ${config.clientId.slice(0, 16)}…`);
|
|
154
|
+
console.log(` Config: ${configPath()}`);
|
|
155
|
+
}
|
|
156
|
+
// ── Router ──────────────────────────────────────────────────────────
|
|
157
|
+
export async function authCmd(args, flags) {
|
|
158
|
+
const sub = args[0];
|
|
159
|
+
switch (sub) {
|
|
160
|
+
case 'login':
|
|
161
|
+
return authLogin(flags);
|
|
162
|
+
case 'logout':
|
|
163
|
+
return authLogout();
|
|
164
|
+
case 'status':
|
|
165
|
+
return authStatus();
|
|
166
|
+
default:
|
|
167
|
+
console.log(`
|
|
168
|
+
oblien auth - Authenticate with Oblien
|
|
169
|
+
|
|
170
|
+
Usage:
|
|
171
|
+
oblien auth login Log in via browser (creates API credentials)
|
|
172
|
+
oblien auth logout Remove stored credentials
|
|
173
|
+
oblien auth status Show current auth status
|
|
174
|
+
|
|
175
|
+
This opens a browser window where you log in with your Oblien account.
|
|
176
|
+
On success, API credentials are created and saved to ${configPath()}.
|
|
177
|
+
These credentials are used by the CLI, SDK, and MCP server.
|
|
178
|
+
`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/cli/commands/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"AAGA,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,CAsF/E"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { buildClient } from '../auth.js';
|
|
2
2
|
import { printResult } from '../output.js';
|
|
3
|
+
import { requireId, confirm } from './helpers.js';
|
|
3
4
|
export async function execCmd(rawArgs, flags) {
|
|
4
|
-
// Parse: oblien exec <ws-id> [--stream]
|
|
5
|
-
// Or: oblien exec <ws-id>
|
|
6
|
-
//
|
|
7
|
-
|
|
5
|
+
// Parse: oblien exec <ws-id> [--stream] -- <cmd...>
|
|
6
|
+
// Or: oblien exec <subcommand> <ws-id> ...
|
|
7
|
+
// Global flags are already stripped by the router; rawArgs still contains
|
|
8
|
+
// them because exec receives `rest` to preserve `--` handling. Strip them
|
|
9
|
+
// consistently so they don't leak into workspace commands.
|
|
10
|
+
const args = [];
|
|
11
|
+
for (let i = 0; i < rawArgs.length; i++) {
|
|
12
|
+
const a = rawArgs[i];
|
|
8
13
|
if (a === '--json')
|
|
9
|
-
|
|
14
|
+
continue;
|
|
10
15
|
if (a === '--client-id' || a === '--client-secret' || a === '--base-url') {
|
|
11
|
-
|
|
12
|
-
|
|
16
|
+
i++; // skip the value too
|
|
17
|
+
continue;
|
|
13
18
|
}
|
|
14
|
-
|
|
15
|
-
}
|
|
19
|
+
args.push(a);
|
|
20
|
+
}
|
|
16
21
|
const wsId = args[0];
|
|
17
22
|
// Subcommands that don't run a command
|
|
18
23
|
if (wsId === 'list')
|
|
@@ -29,7 +34,7 @@ export async function execCmd(rawArgs, flags) {
|
|
|
29
34
|
return execSubscribe(args[1], args[2], flags);
|
|
30
35
|
if (!wsId || wsId.startsWith('-')) {
|
|
31
36
|
console.log(`
|
|
32
|
-
oblien exec
|
|
37
|
+
oblien exec - Execute commands in a workspace
|
|
33
38
|
|
|
34
39
|
Usage:
|
|
35
40
|
oblien exec <workspace-id> -- <command...> Run a command
|
|
@@ -84,84 +89,59 @@ export async function execCmd(rawArgs, flags) {
|
|
|
84
89
|
}
|
|
85
90
|
}
|
|
86
91
|
async function execList(wsId, flags) {
|
|
87
|
-
|
|
88
|
-
console.error('Usage: oblien exec list <ws-id>');
|
|
89
|
-
process.exit(1);
|
|
90
|
-
}
|
|
92
|
+
const id = requireId(wsId, 'exec list <ws-id>');
|
|
91
93
|
const client = buildClient(flags);
|
|
92
|
-
const rt = await client.workspaces.runtime(
|
|
94
|
+
const rt = await client.workspaces.runtime(id);
|
|
93
95
|
const res = await rt.exec.list();
|
|
94
96
|
printResult(res, flags.json);
|
|
95
97
|
}
|
|
96
98
|
async function execGet(wsId, taskId, flags) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
process.exit(1);
|
|
100
|
-
}
|
|
101
|
-
if (!taskId) {
|
|
102
|
-
console.error('Usage: oblien exec get <ws-id> <task-id>');
|
|
103
|
-
process.exit(1);
|
|
104
|
-
}
|
|
99
|
+
const id = requireId(wsId, 'exec get <ws-id> <task-id>');
|
|
100
|
+
const tid = requireId(taskId, 'exec get <ws-id> <task-id>');
|
|
105
101
|
const client = buildClient(flags);
|
|
106
|
-
const rt = await client.workspaces.runtime(
|
|
107
|
-
const res = await rt.exec.get(
|
|
102
|
+
const rt = await client.workspaces.runtime(id);
|
|
103
|
+
const res = await rt.exec.get(tid);
|
|
108
104
|
printResult(res, flags.json);
|
|
109
105
|
}
|
|
110
106
|
async function execKill(wsId, taskId, flags) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
process.exit(1);
|
|
114
|
-
}
|
|
115
|
-
if (!taskId) {
|
|
116
|
-
console.error('Usage: oblien exec kill <ws-id> <task-id>');
|
|
117
|
-
process.exit(1);
|
|
118
|
-
}
|
|
107
|
+
const id = requireId(wsId, 'exec kill <ws-id> <task-id>');
|
|
108
|
+
const tid = requireId(taskId, 'exec kill <ws-id> <task-id>');
|
|
119
109
|
const client = buildClient(flags);
|
|
120
|
-
const rt = await client.workspaces.runtime(
|
|
121
|
-
const res = await rt.exec.kill(
|
|
110
|
+
const rt = await client.workspaces.runtime(id);
|
|
111
|
+
const res = await rt.exec.kill(tid);
|
|
122
112
|
printResult(res, flags.json);
|
|
123
113
|
}
|
|
124
114
|
async function execDeleteAll(wsId, flags) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
115
|
+
const id = requireId(wsId, 'exec delete-all <ws-id>');
|
|
116
|
+
const ok = await confirm(`Delete all tasks for ${id}?`);
|
|
117
|
+
if (!ok) {
|
|
118
|
+
console.log('Cancelled.');
|
|
119
|
+
return;
|
|
128
120
|
}
|
|
129
121
|
const client = buildClient(flags);
|
|
130
|
-
const rt = await client.workspaces.runtime(
|
|
122
|
+
const rt = await client.workspaces.runtime(id);
|
|
131
123
|
const res = await rt.exec.deleteAll();
|
|
132
124
|
printResult(res, flags.json);
|
|
133
125
|
}
|
|
134
126
|
async function execInput(wsId, taskId, rest, flags) {
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
}
|
|
127
|
+
const id = requireId(wsId, 'exec input <ws-id> <task-id> <data>');
|
|
128
|
+
const tid = requireId(taskId, 'exec input <ws-id> <task-id> <data>');
|
|
143
129
|
const data = rest.join(' ');
|
|
144
130
|
if (!data) {
|
|
145
131
|
console.error('Usage: oblien exec input <ws-id> <task-id> <data>');
|
|
146
132
|
process.exit(1);
|
|
147
133
|
}
|
|
148
134
|
const client = buildClient(flags);
|
|
149
|
-
const rt = await client.workspaces.runtime(
|
|
150
|
-
const res = await rt.exec.input(
|
|
135
|
+
const rt = await client.workspaces.runtime(id);
|
|
136
|
+
const res = await rt.exec.input(tid, data);
|
|
151
137
|
printResult(res, flags.json);
|
|
152
138
|
}
|
|
153
139
|
async function execSubscribe(wsId, taskId, flags) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
process.exit(1);
|
|
157
|
-
}
|
|
158
|
-
if (!taskId) {
|
|
159
|
-
console.error('Usage: oblien exec subscribe <ws-id> <task-id>');
|
|
160
|
-
process.exit(1);
|
|
161
|
-
}
|
|
140
|
+
const id = requireId(wsId, 'exec subscribe <ws-id> <task-id>');
|
|
141
|
+
const tid = requireId(taskId, 'exec subscribe <ws-id> <task-id>');
|
|
162
142
|
const client = buildClient(flags);
|
|
163
|
-
const rt = await client.workspaces.runtime(
|
|
164
|
-
for await (const event of rt.exec.subscribe(
|
|
143
|
+
const rt = await client.workspaces.runtime(id);
|
|
144
|
+
for await (const event of rt.exec.subscribe(tid)) {
|
|
165
145
|
if ('data' in event) {
|
|
166
146
|
process.stdout.write(String(event.data));
|
|
167
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/cli/commands/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/files.ts"],"names":[],"mappings":"AAMA,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,CA8C7E"}
|