@miosa/cli 1.0.51 → 1.0.53
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 +42 -65
- package/dist/app-manifest.d.ts +19 -0
- package/dist/app-manifest.d.ts.map +1 -1
- package/dist/app-manifest.js +39 -12
- package/dist/app-manifest.js.map +1 -1
- package/dist/bin/miosa.js +0 -6
- package/dist/bin/miosa.js.map +1 -1
- package/dist/commands/capabilities.d.ts.map +1 -1
- package/dist/commands/capabilities.js +5 -134
- package/dist/commands/capabilities.js.map +1 -1
- package/dist/commands/databases.d.ts.map +1 -1
- package/dist/commands/databases.js +0 -85
- package/dist/commands/databases.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +2 -109
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/docker-deploy.d.ts.map +1 -1
- package/dist/commands/docker-deploy.js +114 -0
- package/dist/commands/docker-deploy.js.map +1 -1
- package/dist/commands/enterprise-util.d.ts +1 -3
- package/dist/commands/enterprise-util.d.ts.map +1 -1
- package/dist/commands/enterprise-util.js +9 -25
- package/dist/commands/enterprise-util.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +17 -171
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/{context.d.ts → machines.d.ts} +1 -1
- package/dist/commands/machines.d.ts.map +1 -0
- package/dist/commands/machines.js +29 -0
- package/dist/commands/machines.js.map +1 -0
- package/dist/commands/new.js +2 -2
- package/dist/commands/new.js.map +1 -1
- package/dist/commands/sandbox.d.ts.map +1 -1
- package/dist/commands/sandbox.js +42 -169
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/config.d.ts +1 -24
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +0 -87
- package/dist/config.js.map +1 -1
- package/dist/miosa-linux-x64 +0 -0
- package/package.json +2 -3
- package/dist/commands/command-overview.d.ts +0 -13
- package/dist/commands/command-overview.d.ts.map +0 -1
- package/dist/commands/command-overview.js +0 -50
- package/dist/commands/command-overview.js.map +0 -1
- package/dist/commands/context.d.ts.map +0 -1
- package/dist/commands/context.js +0 -248
- package/dist/commands/context.js.map +0 -1
package/dist/config.js
CHANGED
|
@@ -4,7 +4,6 @@ import os from "node:os";
|
|
|
4
4
|
const CONFIG_DIR = path.join(os.homedir(), ".miosa");
|
|
5
5
|
const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
|
|
6
6
|
const AUTH_CACHE_FILE = path.join(CONFIG_DIR, "auth-cache.json");
|
|
7
|
-
const CONTEXTS_FILE = path.join(CONFIG_DIR, "contexts.json");
|
|
8
7
|
const DEFAULTS = {
|
|
9
8
|
endpoint: "https://api.miosa.ai",
|
|
10
9
|
api_key: null,
|
|
@@ -73,9 +72,6 @@ export function getConfigPath() {
|
|
|
73
72
|
export function getConfigDir() {
|
|
74
73
|
return CONFIG_DIR;
|
|
75
74
|
}
|
|
76
|
-
export function getContextsPath() {
|
|
77
|
-
return CONTEXTS_FILE;
|
|
78
|
-
}
|
|
79
75
|
export function configExists() {
|
|
80
76
|
return fs.existsSync(CONFIG_FILE);
|
|
81
77
|
}
|
|
@@ -143,87 +139,4 @@ export function setConfigValue(key, value) {
|
|
|
143
139
|
const field = configKeyToField(key);
|
|
144
140
|
saveConfig({ [field]: value === "" ? null : value });
|
|
145
141
|
}
|
|
146
|
-
function emptyContextStore() {
|
|
147
|
-
return { active: null, contexts: {} };
|
|
148
|
-
}
|
|
149
|
-
export function loadContextStore() {
|
|
150
|
-
try {
|
|
151
|
-
if (!fs.existsSync(CONTEXTS_FILE))
|
|
152
|
-
return emptyContextStore();
|
|
153
|
-
const parsed = JSON.parse(fs.readFileSync(CONTEXTS_FILE, "utf8"));
|
|
154
|
-
return {
|
|
155
|
-
active: typeof parsed.active === "string" ? parsed.active : null,
|
|
156
|
-
contexts: parsed.contexts && typeof parsed.contexts === "object"
|
|
157
|
-
? parsed.contexts
|
|
158
|
-
: {},
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
catch {
|
|
162
|
-
return emptyContextStore();
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
export function saveContextStore(store) {
|
|
166
|
-
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
167
|
-
fs.writeFileSync(CONTEXTS_FILE, JSON.stringify(store, null, 2) + "\n", {
|
|
168
|
-
mode: 0o600,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
export function contextFromConfig(name, config = loadConfig()) {
|
|
172
|
-
const now = new Date().toISOString();
|
|
173
|
-
return {
|
|
174
|
-
name,
|
|
175
|
-
endpoint: config.endpoint,
|
|
176
|
-
api_key: config.api_key,
|
|
177
|
-
tenant: config.tenant ?? null,
|
|
178
|
-
workspace: config.workspace ?? null,
|
|
179
|
-
region: config.region ?? null,
|
|
180
|
-
default_host: config.default_host ?? null,
|
|
181
|
-
output: config.output,
|
|
182
|
-
created_at: now,
|
|
183
|
-
updated_at: now,
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
export function saveNamedContext(name, context = contextFromConfig(name)) {
|
|
187
|
-
const store = loadContextStore();
|
|
188
|
-
const existing = store.contexts[name];
|
|
189
|
-
const saved = {
|
|
190
|
-
...context,
|
|
191
|
-
name,
|
|
192
|
-
created_at: existing?.created_at ?? context.created_at,
|
|
193
|
-
updated_at: new Date().toISOString(),
|
|
194
|
-
};
|
|
195
|
-
store.contexts[name] = saved;
|
|
196
|
-
if (!store.active)
|
|
197
|
-
store.active = name;
|
|
198
|
-
saveContextStore(store);
|
|
199
|
-
return saved;
|
|
200
|
-
}
|
|
201
|
-
export function deleteNamedContext(name) {
|
|
202
|
-
const store = loadContextStore();
|
|
203
|
-
if (!store.contexts[name])
|
|
204
|
-
return false;
|
|
205
|
-
delete store.contexts[name];
|
|
206
|
-
if (store.active === name)
|
|
207
|
-
store.active = null;
|
|
208
|
-
saveContextStore(store);
|
|
209
|
-
return true;
|
|
210
|
-
}
|
|
211
|
-
export function applyNamedContext(name) {
|
|
212
|
-
const store = loadContextStore();
|
|
213
|
-
const context = store.contexts[name];
|
|
214
|
-
if (!context)
|
|
215
|
-
return null;
|
|
216
|
-
saveConfig({
|
|
217
|
-
endpoint: context.endpoint,
|
|
218
|
-
api_key: context.api_key,
|
|
219
|
-
tenant: context.tenant,
|
|
220
|
-
workspace: context.workspace,
|
|
221
|
-
region: context.region,
|
|
222
|
-
default_host: context.default_host,
|
|
223
|
-
output: context.output,
|
|
224
|
-
});
|
|
225
|
-
store.active = name;
|
|
226
|
-
saveContextStore(store);
|
|
227
|
-
return context;
|
|
228
|
-
}
|
|
229
142
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miosa/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.53",
|
|
4
4
|
"description": "MIOSA platform CLI — projects, sandboxes, deploys, databases, more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -44,8 +44,7 @@
|
|
|
44
44
|
"ora": "^8.1.1",
|
|
45
45
|
"react": "^19.2.6",
|
|
46
46
|
"undici": "^6.19.7",
|
|
47
|
-
"ws": "^8.18.0"
|
|
48
|
-
"yaml": "^2.9.0"
|
|
47
|
+
"ws": "^8.18.0"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
50
|
"@types/inquirer": "^9.0.8",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Command } from "commander";
|
|
2
|
-
interface CommandNode {
|
|
3
|
-
name: string;
|
|
4
|
-
path: string;
|
|
5
|
-
aliases: string[];
|
|
6
|
-
description: string;
|
|
7
|
-
options: string[];
|
|
8
|
-
children: CommandNode[];
|
|
9
|
-
}
|
|
10
|
-
export declare function commandTree(command: Command, parentPath?: string): CommandNode;
|
|
11
|
-
export declare function register(program: Command): void;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=command-overview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-overview.d.ts","sourceRoot":"","sources":["../../src/commands/command-overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAIjD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAMD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,SAAK,GAAG,WAAW,CAc1E;AAeD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoB/C"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import { isJsonMode, printJson } from "./util.js";
|
|
3
|
-
function optionFlags(option) {
|
|
4
|
-
return option.flags;
|
|
5
|
-
}
|
|
6
|
-
export function commandTree(command, parentPath = "") {
|
|
7
|
-
const name = command.name();
|
|
8
|
-
const path = parentPath ? `${parentPath} ${name}` : name;
|
|
9
|
-
const children = command.commands
|
|
10
|
-
.map((child) => commandTree(child, path));
|
|
11
|
-
return {
|
|
12
|
-
name,
|
|
13
|
-
path,
|
|
14
|
-
aliases: command.aliases(),
|
|
15
|
-
description: command.description(),
|
|
16
|
-
options: command.options.map(optionFlags),
|
|
17
|
-
children,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function printTree(node, indent = "", isLast = true) {
|
|
21
|
-
const connector = indent ? (isLast ? "`- " : "+- ") : "";
|
|
22
|
-
const aliasText = node.aliases.length > 0 ? chalk.dim(` (${node.aliases.join(", ")})`) : "";
|
|
23
|
-
const description = node.description ? chalk.dim(` - ${node.description}`) : "";
|
|
24
|
-
console.log(`${indent}${connector}${chalk.bold(node.name)}${aliasText}${description}`);
|
|
25
|
-
const childIndent = indent + (indent ? (isLast ? " " : "| ") : "");
|
|
26
|
-
node.children.forEach((child, index) => {
|
|
27
|
-
printTree(child, childIndent, index === node.children.length - 1);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
export function register(program) {
|
|
31
|
-
program
|
|
32
|
-
.command("command-overview")
|
|
33
|
-
.alias("commands")
|
|
34
|
-
.description("Print a tree view of available MIOSA CLI commands")
|
|
35
|
-
.option("--json", "Output as JSON")
|
|
36
|
-
.action((opts) => {
|
|
37
|
-
const tree = commandTree(program);
|
|
38
|
-
if (isJsonMode(opts)) {
|
|
39
|
-
printJson(tree);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
console.log();
|
|
43
|
-
printTree(tree);
|
|
44
|
-
console.log();
|
|
45
|
-
console.log(chalk.dim("Use '<command> --help' for detailed flags and examples."));
|
|
46
|
-
console.log(chalk.dim("Machine-readable form: miosa command-overview --json"));
|
|
47
|
-
console.log();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=command-overview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-overview.js","sourceRoot":"","sources":["../../src/commands/command-overview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0GzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0M/C"}
|
package/dist/commands/context.js
DELETED
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
import { applyNamedContext, contextFromConfig, deleteNamedContext, getContextsPath, loadConfig, loadContextStore, redactKey, saveConfig, saveContextStore, saveNamedContext, } from "../config.js";
|
|
3
|
-
import { UserError } from "../errors.js";
|
|
4
|
-
import { handleError, isJsonMode, printJson } from "./util.js";
|
|
5
|
-
function jsonMode(opts) {
|
|
6
|
-
const direct = opts.json;
|
|
7
|
-
const nested = typeof opts.opts === "function"
|
|
8
|
-
? opts.opts().json
|
|
9
|
-
: false;
|
|
10
|
-
return Boolean(direct || nested || isJsonMode());
|
|
11
|
-
}
|
|
12
|
-
function contextForOutput(context) {
|
|
13
|
-
return {
|
|
14
|
-
name: context.name,
|
|
15
|
-
endpoint: context.endpoint,
|
|
16
|
-
api_key: redactKey(context.api_key),
|
|
17
|
-
tenant: context.tenant,
|
|
18
|
-
workspace: context.workspace,
|
|
19
|
-
region: context.region,
|
|
20
|
-
default_host: context.default_host,
|
|
21
|
-
output: context.output,
|
|
22
|
-
created_at: context.created_at,
|
|
23
|
-
updated_at: context.updated_at,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function assertContextName(name) {
|
|
27
|
-
if (!/^[A-Za-z0-9_.-]+$/.test(name)) {
|
|
28
|
-
throw new UserError(`Invalid context name: ${name}`, "Use letters, numbers, dots, underscores, and hyphens.");
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function printContextTable(active, contexts) {
|
|
32
|
-
if (contexts.length === 0) {
|
|
33
|
-
console.log(chalk.dim("No contexts saved yet."));
|
|
34
|
-
console.log(chalk.dim("Run: miosa context save <name>"));
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const widths = {
|
|
38
|
-
name: Math.max(7, ...contexts.map((ctx) => ctx.name.length + (ctx.name === active ? 2 : 0))),
|
|
39
|
-
workspace: Math.max(9, ...contexts.map((ctx) => (ctx.workspace ?? "").length)),
|
|
40
|
-
tenant: Math.max(6, ...contexts.map((ctx) => (ctx.tenant ?? "").length)),
|
|
41
|
-
};
|
|
42
|
-
console.log();
|
|
43
|
-
console.log([
|
|
44
|
-
chalk.bold("Context".padEnd(widths.name)),
|
|
45
|
-
chalk.bold("Workspace".padEnd(widths.workspace)),
|
|
46
|
-
chalk.bold("Tenant".padEnd(widths.tenant)),
|
|
47
|
-
chalk.bold("Endpoint"),
|
|
48
|
-
].join(" "));
|
|
49
|
-
for (const context of contexts) {
|
|
50
|
-
const marker = context.name === active ? "* " : " ";
|
|
51
|
-
console.log([
|
|
52
|
-
`${marker}${context.name}`.padEnd(widths.name),
|
|
53
|
-
(context.workspace ?? "-").padEnd(widths.workspace),
|
|
54
|
-
(context.tenant ?? "-").padEnd(widths.tenant),
|
|
55
|
-
context.endpoint,
|
|
56
|
-
].join(" "));
|
|
57
|
-
}
|
|
58
|
-
console.log();
|
|
59
|
-
}
|
|
60
|
-
function updateActiveContext(values) {
|
|
61
|
-
const store = loadContextStore();
|
|
62
|
-
if (!store.active)
|
|
63
|
-
return null;
|
|
64
|
-
const context = store.contexts[store.active];
|
|
65
|
-
if (!context)
|
|
66
|
-
return null;
|
|
67
|
-
const updated = {
|
|
68
|
-
...context,
|
|
69
|
-
...values,
|
|
70
|
-
updated_at: new Date().toISOString(),
|
|
71
|
-
};
|
|
72
|
-
store.contexts[store.active] = updated;
|
|
73
|
-
saveContextStore(store);
|
|
74
|
-
return updated;
|
|
75
|
-
}
|
|
76
|
-
export function register(program) {
|
|
77
|
-
const context = program
|
|
78
|
-
.command("context")
|
|
79
|
-
.alias("contexts")
|
|
80
|
-
.description("Manage named CLI contexts for accounts, tenants, and workspaces");
|
|
81
|
-
context
|
|
82
|
-
.command("ls")
|
|
83
|
-
.alias("list")
|
|
84
|
-
.description("List saved contexts")
|
|
85
|
-
.option("--json", "Output as JSON")
|
|
86
|
-
.action((opts) => {
|
|
87
|
-
try {
|
|
88
|
-
const store = loadContextStore();
|
|
89
|
-
const contexts = Object.values(store.contexts).sort((a, b) => a.name.localeCompare(b.name));
|
|
90
|
-
if (jsonMode(opts)) {
|
|
91
|
-
printJson({
|
|
92
|
-
active: store.active,
|
|
93
|
-
contexts: contexts.map(contextForOutput),
|
|
94
|
-
path: getContextsPath(),
|
|
95
|
-
});
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
printContextTable(store.active, contexts);
|
|
99
|
-
}
|
|
100
|
-
catch (err) {
|
|
101
|
-
handleError(err);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
context
|
|
105
|
-
.command("current")
|
|
106
|
-
.description("Show the active context")
|
|
107
|
-
.option("--json", "Output as JSON")
|
|
108
|
-
.action((opts) => {
|
|
109
|
-
try {
|
|
110
|
-
const store = loadContextStore();
|
|
111
|
-
const current = store.active ? store.contexts[store.active] : null;
|
|
112
|
-
if (jsonMode(opts)) {
|
|
113
|
-
printJson({
|
|
114
|
-
active: store.active,
|
|
115
|
-
context: current ? contextForOutput(current) : null,
|
|
116
|
-
});
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (!current) {
|
|
120
|
-
console.log(chalk.dim("No active context."));
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
printContextTable(store.active, [current]);
|
|
124
|
-
}
|
|
125
|
-
catch (err) {
|
|
126
|
-
handleError(err);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
context
|
|
130
|
-
.command("save <name>")
|
|
131
|
-
.description("Save the current auth and scope settings as a named context")
|
|
132
|
-
.option("--json", "Output as JSON")
|
|
133
|
-
.action((name, opts) => {
|
|
134
|
-
try {
|
|
135
|
-
assertContextName(name);
|
|
136
|
-
const saved = saveNamedContext(name, contextFromConfig(name));
|
|
137
|
-
if (jsonMode(opts)) {
|
|
138
|
-
printJson({ ok: true, context: contextForOutput(saved) });
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
console.log(`${chalk.green("Saved")} context ${chalk.bold(name)} ${chalk.dim(`(${getContextsPath()})`)}`);
|
|
142
|
-
}
|
|
143
|
-
catch (err) {
|
|
144
|
-
handleError(err);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
context
|
|
148
|
-
.command("use <name>")
|
|
149
|
-
.description("Switch the active CLI context")
|
|
150
|
-
.option("--json", "Output as JSON")
|
|
151
|
-
.action((name, opts) => {
|
|
152
|
-
try {
|
|
153
|
-
const applied = applyNamedContext(name);
|
|
154
|
-
if (!applied) {
|
|
155
|
-
throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
|
|
156
|
-
}
|
|
157
|
-
if (jsonMode(opts)) {
|
|
158
|
-
printJson({ ok: true, active: name, context: contextForOutput(applied) });
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
console.log(`${chalk.green("Using")} context ${chalk.bold(name)}`);
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
handleError(err);
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
context
|
|
168
|
-
.command("show <name>")
|
|
169
|
-
.description("Show one saved context")
|
|
170
|
-
.option("--json", "Output as JSON")
|
|
171
|
-
.action((name, opts) => {
|
|
172
|
-
try {
|
|
173
|
-
const store = loadContextStore();
|
|
174
|
-
const saved = store.contexts[name];
|
|
175
|
-
if (!saved) {
|
|
176
|
-
throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
|
|
177
|
-
}
|
|
178
|
-
if (jsonMode(opts)) {
|
|
179
|
-
printJson({ context: contextForOutput(saved), active: store.active === name });
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
printContextTable(store.active, [saved]);
|
|
183
|
-
}
|
|
184
|
-
catch (err) {
|
|
185
|
-
handleError(err);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
context
|
|
189
|
-
.command("set <key> <value>")
|
|
190
|
-
.description("Set default tenant, workspace, region, endpoint, or host in the active context")
|
|
191
|
-
.option("--json", "Output as JSON")
|
|
192
|
-
.action((key, value, opts) => {
|
|
193
|
-
try {
|
|
194
|
-
const allowed = ["tenant", "workspace", "region", "endpoint", "default_host"];
|
|
195
|
-
if (!allowed.includes(key)) {
|
|
196
|
-
throw new UserError(`Unknown context key: ${key}`, `Valid keys: ${allowed.join(", ")}`);
|
|
197
|
-
}
|
|
198
|
-
const patch = { [key]: value === "-" ? null : value };
|
|
199
|
-
saveConfig(patch);
|
|
200
|
-
const updated = updateActiveContext(patch);
|
|
201
|
-
const config = loadConfig();
|
|
202
|
-
if (jsonMode(opts)) {
|
|
203
|
-
printJson({
|
|
204
|
-
ok: true,
|
|
205
|
-
active: loadContextStore().active,
|
|
206
|
-
context: updated ? contextForOutput(updated) : null,
|
|
207
|
-
config: {
|
|
208
|
-
tenant: config.tenant,
|
|
209
|
-
workspace: config.workspace,
|
|
210
|
-
region: config.region,
|
|
211
|
-
endpoint: config.endpoint,
|
|
212
|
-
default_host: config.default_host,
|
|
213
|
-
},
|
|
214
|
-
});
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
console.log(`${chalk.dim("Set")} ${chalk.bold(key)} ${chalk.dim("=")} ${value}`);
|
|
218
|
-
if (!updated) {
|
|
219
|
-
console.log(chalk.dim("No active context saved; updated current config only."));
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
catch (err) {
|
|
223
|
-
handleError(err);
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
context
|
|
227
|
-
.command("rm <name>")
|
|
228
|
-
.alias("delete")
|
|
229
|
-
.description("Delete a saved context")
|
|
230
|
-
.option("--json", "Output as JSON")
|
|
231
|
-
.action((name, opts) => {
|
|
232
|
-
try {
|
|
233
|
-
const deleted = deleteNamedContext(name);
|
|
234
|
-
if (!deleted) {
|
|
235
|
-
throw new UserError(`Context not found: ${name}`, "Run: miosa context ls");
|
|
236
|
-
}
|
|
237
|
-
if (jsonMode(opts)) {
|
|
238
|
-
printJson({ ok: true, deleted: name });
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
console.log(`${chalk.dim("Deleted")} context ${chalk.bold(name)}`);
|
|
242
|
-
}
|
|
243
|
-
catch (err) {
|
|
244
|
-
handleError(err);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|