@miosa/cli 1.0.94 → 1.0.95
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 +85 -0
- package/dist/app-manifest.d.ts +40 -0
- package/dist/app-manifest.d.ts.map +1 -1
- package/dist/app-manifest.js +168 -46
- package/dist/app-manifest.js.map +1 -1
- package/dist/commands/completion.d.ts.map +1 -1
- package/dist/commands/completion.js +2 -0
- package/dist/commands/completion.js.map +1 -1
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +2 -19
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +31 -11
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/env-input.d.ts +26 -0
- package/dist/commands/env-input.d.ts.map +1 -0
- package/dist/commands/env-input.js +68 -0
- package/dist/commands/env-input.js.map +1 -0
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +15 -3
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/sandbox-delete-guard.d.ts +4 -0
- package/dist/commands/sandbox-delete-guard.d.ts.map +1 -0
- package/dist/commands/sandbox-delete-guard.js +32 -0
- package/dist/commands/sandbox-delete-guard.js.map +1 -0
- package/dist/commands/sandbox-dev.d.ts +20 -0
- package/dist/commands/sandbox-dev.d.ts.map +1 -0
- package/dist/commands/sandbox-dev.js +583 -0
- package/dist/commands/sandbox-dev.js.map +1 -0
- package/dist/commands/sandbox.d.ts +5 -0
- package/dist/commands/sandbox.d.ts.map +1 -1
- package/dist/commands/sandbox.js +163 -65
- package/dist/commands/sandbox.js.map +1 -1
- package/dist/commands/tenant.d.ts.map +1 -1
- package/dist/commands/tenant.js +6 -5
- package/dist/commands/tenant.js.map +1 -1
- package/dist/commands/util.d.ts.map +1 -1
- package/dist/commands/util.js +28 -6
- package/dist/commands/util.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -0
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -3
- package/dist/errors.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -215,6 +215,91 @@ miosa sandbox create --snapshot <snapshot-id> --timeout 1h --wait --json
|
|
|
215
215
|
miosa sandbox fork <sandbox-id> --name feature-branch --json
|
|
216
216
|
```
|
|
217
217
|
|
|
218
|
+
### Canonical sandbox development contract
|
|
219
|
+
|
|
220
|
+
`miosa sandbox dev up` runs a project from the canonical `miosa.app.yml` manifest.
|
|
221
|
+
The command validates the manifest and CLI authentication, creates or reuses a persistent sandbox, overlay-syncs source files, installs locked dependencies once per lockfile fingerprint, starts named services, waits for internal and public health, and prints stable preview URLs.
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
schema_version: 1
|
|
225
|
+
name: clinic-intake
|
|
226
|
+
|
|
227
|
+
sandbox:
|
|
228
|
+
name: clinic-intake-dev
|
|
229
|
+
template: node
|
|
230
|
+
workdir: /workspace
|
|
231
|
+
|
|
232
|
+
sync:
|
|
233
|
+
exclude:
|
|
234
|
+
- coverage
|
|
235
|
+
|
|
236
|
+
dependencies:
|
|
237
|
+
install: npm ci
|
|
238
|
+
|
|
239
|
+
services:
|
|
240
|
+
web:
|
|
241
|
+
command: npm run dev -- --host 0.0.0.0
|
|
242
|
+
port: 3000
|
|
243
|
+
health:
|
|
244
|
+
path: /health
|
|
245
|
+
timeout: 120
|
|
246
|
+
|
|
247
|
+
requirements:
|
|
248
|
+
config:
|
|
249
|
+
- NODE_ENV
|
|
250
|
+
secrets:
|
|
251
|
+
- SESSION_SECRET
|
|
252
|
+
database: true
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Run the project with human-readable or stable JSON output:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
miosa sandbox dev up
|
|
259
|
+
miosa sandbox dev up --dir ./app --json
|
|
260
|
+
miosa sandbox dev up --dir ./app --sandbox <sandbox-id> --json
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
The command writes `.miosa/sandbox.json` immediately after sandbox creation so a partial run can resume without creating another sandbox.
|
|
264
|
+
A saved sandbox is reused only when its project name matches the manifest, unless `--sandbox` explicitly selects one.
|
|
265
|
+
Sync is an overlay and never deletes remote files.
|
|
266
|
+
It always excludes `.git`, `.miosa`, `.env`, `.env.*`, `node_modules`, `.venv`, `coverage`, and `dist`, plus entries in `sync.exclude`.
|
|
267
|
+
This preserves runtime-owned dependency trees, virtual environments, install markers, service logs, and other files that exist only in the sandbox.
|
|
268
|
+
|
|
269
|
+
Dependency commands must enforce a lockfile.
|
|
270
|
+
Supported built-in validation recognizes `npm ci`, frozen pnpm and Bun installs, immutable or frozen Yarn installs, and hash-locked pip installs.
|
|
271
|
+
An install marker under `/workspace/.miosa-runtime` makes retries idempotent for the same lockfile fingerprint.
|
|
272
|
+
|
|
273
|
+
Service commands are sent as JSON data to the sandbox service endpoint.
|
|
274
|
+
The CLI does not interpolate secret values into shell commands.
|
|
275
|
+
Declare secret names under `requirements.secrets`; set values through the encrypted sandbox environment commands.
|
|
276
|
+
|
|
277
|
+
Inspect the complete contract with:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
miosa sandbox doctor --full --json
|
|
281
|
+
miosa sandbox doctor <sandbox-id> --full --dir ./app --json
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
When no ID is passed, full doctor reads `.miosa/sandbox.json`.
|
|
285
|
+
It checks sandbox API state, the exec channel, project filesystem access, named service state, internal listeners, public preview routing, managed database attachment state, required config and secret names, and snapshot capability.
|
|
286
|
+
It never returns config or secret values.
|
|
287
|
+
JSON output includes `ok`, `sandbox_id`, `manifest`, `checks`, and `failure_codes`.
|
|
288
|
+
Each failed check has a stable code and an actionable `remediation` command.
|
|
289
|
+
|
|
290
|
+
The development contract depends on these existing backend routes:
|
|
291
|
+
|
|
292
|
+
- `POST /api/v1/sandboxes` and `GET /api/v1/sandboxes/:id` for persistent sandbox lifecycle and API state.
|
|
293
|
+
- `POST /api/v1/sandboxes/:id/files` and `POST /api/v1/sandboxes/:id/exec` for source sync, deterministic install, filesystem checks, and internal health.
|
|
294
|
+
- `GET`, `POST`, and restart routes under `/api/v1/sandboxes/:id/services` for idempotent named processes.
|
|
295
|
+
- `POST /api/v1/sandboxes/:id/expose` for preview routing.
|
|
296
|
+
- `GET /api/v1/sandboxes/:id/env` for name-only config and secret presence checks.
|
|
297
|
+
- `GET /api/v1/sandboxes/:id/snapshots` for snapshot capability checks.
|
|
298
|
+
- Database attachment fields on `GET /api/v1/sandboxes/:id` for attachment inspection.
|
|
299
|
+
|
|
300
|
+
The CLI does not add release-candidate prepare or prove commands because the current backend contract has no release-candidate prepare endpoint.
|
|
301
|
+
Use `miosa sandbox publish`, `miosa releases promote`, and `miosa deploy prove` for the deployment interfaces that do exist.
|
|
302
|
+
|
|
218
303
|
Use a disposable sandbox only when you explicitly do not want preserved state:
|
|
219
304
|
|
|
220
305
|
```bash
|
package/dist/app-manifest.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const APP_MANIFEST_FILES: readonly ["miosa.app.yml", "miosa.app.yaml", "miosa.app.json"];
|
|
2
2
|
export interface MiosaAppManifest {
|
|
3
|
+
schema_version?: number;
|
|
4
|
+
name?: string;
|
|
3
5
|
template?: string;
|
|
4
6
|
framework?: string;
|
|
5
7
|
workdir?: string;
|
|
@@ -22,6 +24,42 @@ export interface MiosaAppManifest {
|
|
|
22
24
|
path?: string;
|
|
23
25
|
port?: number;
|
|
24
26
|
};
|
|
27
|
+
sandbox?: ProjectSandboxManifest;
|
|
28
|
+
sync?: ProjectSyncManifest;
|
|
29
|
+
dependencies?: ProjectDependenciesManifest;
|
|
30
|
+
services?: Record<string, ProjectServiceManifest>;
|
|
31
|
+
requirements?: ProjectRequirementsManifest;
|
|
32
|
+
}
|
|
33
|
+
export interface ProjectSandboxManifest {
|
|
34
|
+
name?: string;
|
|
35
|
+
template?: string;
|
|
36
|
+
workdir: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ProjectSyncManifest {
|
|
39
|
+
exclude: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface ProjectDependenciesManifest {
|
|
42
|
+
install: string | false;
|
|
43
|
+
}
|
|
44
|
+
export interface ProjectServiceManifest {
|
|
45
|
+
command?: string;
|
|
46
|
+
cwd?: string;
|
|
47
|
+
port?: number;
|
|
48
|
+
health?: {
|
|
49
|
+
path: string;
|
|
50
|
+
timeout: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface ProjectRequirementsManifest {
|
|
54
|
+
config: string[];
|
|
55
|
+
secrets: string[];
|
|
56
|
+
database: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface ManifestValidationIssue {
|
|
59
|
+
code: string;
|
|
60
|
+
path: string;
|
|
61
|
+
message: string;
|
|
62
|
+
fix: string;
|
|
25
63
|
}
|
|
26
64
|
export type ResourceIntent = false | true | {
|
|
27
65
|
auto?: boolean;
|
|
@@ -38,7 +76,9 @@ export interface LoadedAppManifest {
|
|
|
38
76
|
manifest: MiosaAppManifest;
|
|
39
77
|
}
|
|
40
78
|
export declare function loadAppManifest(dir: string): LoadedAppManifest | null;
|
|
79
|
+
export declare function loadProjectManifest(dir: string): LoadedAppManifest;
|
|
41
80
|
export declare function parseAppManifest(filename: string, content: string): MiosaAppManifest;
|
|
81
|
+
export declare function validateProjectManifest(manifest: MiosaAppManifest): ManifestValidationIssue[];
|
|
42
82
|
export declare function manifestProbePath(manifest?: MiosaAppManifest | null): string | undefined;
|
|
43
83
|
export declare function manifestPort(manifest?: MiosaAppManifest | null): number | undefined;
|
|
44
84
|
export declare function manifestStartCommand(manifest?: MiosaAppManifest | null): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../src/app-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-manifest.d.ts","sourceRoot":"","sources":["../src/app-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/app-manifest.js
CHANGED
|
@@ -1,10 +1,22 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { parse as parseYaml } from "yaml";
|
|
4
|
+
import { UserError } from "./errors.js";
|
|
3
5
|
export const APP_MANIFEST_FILES = [
|
|
4
6
|
"miosa.app.yml",
|
|
5
7
|
"miosa.app.yaml",
|
|
6
8
|
"miosa.app.json",
|
|
7
9
|
];
|
|
10
|
+
const DEFAULT_SYNC_EXCLUDES = [
|
|
11
|
+
".git",
|
|
12
|
+
".miosa",
|
|
13
|
+
".env",
|
|
14
|
+
".env.*",
|
|
15
|
+
"node_modules",
|
|
16
|
+
".venv",
|
|
17
|
+
"coverage",
|
|
18
|
+
"dist",
|
|
19
|
+
];
|
|
8
20
|
export function loadAppManifest(dir) {
|
|
9
21
|
for (const file of APP_MANIFEST_FILES) {
|
|
10
22
|
const fullPath = path.join(dir, file);
|
|
@@ -15,12 +27,95 @@ export function loadAppManifest(dir) {
|
|
|
15
27
|
}
|
|
16
28
|
return null;
|
|
17
29
|
}
|
|
30
|
+
export function loadProjectManifest(dir) {
|
|
31
|
+
const loaded = loadAppManifest(dir);
|
|
32
|
+
if (!loaded) {
|
|
33
|
+
throw new UserError(`Project manifest not found in ${path.resolve(dir)}.`, "Create miosa.app.yml. See the sandbox development contract in README.md.");
|
|
34
|
+
}
|
|
35
|
+
const issues = validateProjectManifest(loaded.manifest);
|
|
36
|
+
if (issues.length > 0) {
|
|
37
|
+
throw new UserError(`Invalid project manifest: ${issues.map((issue) => `${issue.path}: ${issue.message}`).join("; ")}`, issues.map((issue) => `${issue.code}: ${issue.fix}`).join(" "));
|
|
38
|
+
}
|
|
39
|
+
return loaded;
|
|
40
|
+
}
|
|
18
41
|
export function parseAppManifest(filename, content) {
|
|
19
42
|
if (filename.endsWith(".json")) {
|
|
20
43
|
const parsed = JSON.parse(content);
|
|
21
44
|
return normalizeManifest(parsed);
|
|
22
45
|
}
|
|
23
|
-
return normalizeManifest(
|
|
46
|
+
return normalizeManifest(parseYaml(content));
|
|
47
|
+
}
|
|
48
|
+
export function validateProjectManifest(manifest) {
|
|
49
|
+
const issues = [];
|
|
50
|
+
if (manifest.schema_version !== 1) {
|
|
51
|
+
issues.push({
|
|
52
|
+
code: "MANIFEST_SCHEMA_UNSUPPORTED",
|
|
53
|
+
path: "schema_version",
|
|
54
|
+
message: "schema_version must be 1",
|
|
55
|
+
fix: "Set schema_version: 1.",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (!manifest.name) {
|
|
59
|
+
issues.push({
|
|
60
|
+
code: "MANIFEST_NAME_REQUIRED",
|
|
61
|
+
path: "name",
|
|
62
|
+
message: "project name is required",
|
|
63
|
+
fix: "Set name to a stable project identifier.",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const install = manifest.dependencies?.install;
|
|
67
|
+
if (typeof install === "string" && !isDeterministicInstall(install)) {
|
|
68
|
+
issues.push({
|
|
69
|
+
code: "INSTALL_NOT_DETERMINISTIC",
|
|
70
|
+
path: "dependencies.install",
|
|
71
|
+
message: `install command is not lockfile-strict: ${install}`,
|
|
72
|
+
fix: "Use npm ci, pnpm install --frozen-lockfile, yarn install --immutable, bun install --frozen-lockfile, or a hash-locked equivalent.",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const services = manifest.services ?? {};
|
|
76
|
+
if (Object.keys(services).length === 0) {
|
|
77
|
+
issues.push({
|
|
78
|
+
code: "SERVICES_REQUIRED",
|
|
79
|
+
path: "services",
|
|
80
|
+
message: "at least one service is required",
|
|
81
|
+
fix: "Declare a named service with command, port, and health settings.",
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const usedPorts = new Map();
|
|
85
|
+
for (const [name, service] of Object.entries(services)) {
|
|
86
|
+
if (!service.command) {
|
|
87
|
+
issues.push({
|
|
88
|
+
code: "SERVICE_COMMAND_REQUIRED",
|
|
89
|
+
path: `services.${name}.command`,
|
|
90
|
+
message: "service command is required",
|
|
91
|
+
fix: `Set services.${name}.command to the foreground process command.`,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (service.port == null ||
|
|
95
|
+
!Number.isInteger(service.port) ||
|
|
96
|
+
service.port < 1 ||
|
|
97
|
+
service.port > 65535) {
|
|
98
|
+
issues.push({
|
|
99
|
+
code: "SERVICE_PORT_INVALID",
|
|
100
|
+
path: `services.${name}.port`,
|
|
101
|
+
message: "service port must be an integer from 1 through 65535",
|
|
102
|
+
fix: `Set services.${name}.port to the listener port.`,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const previous = usedPorts.get(service.port);
|
|
107
|
+
if (previous) {
|
|
108
|
+
issues.push({
|
|
109
|
+
code: "SERVICE_PORT_DUPLICATE",
|
|
110
|
+
path: `services.${name}.port`,
|
|
111
|
+
message: `port ${service.port} is also used by ${previous}`,
|
|
112
|
+
fix: "Give every declared service a unique listener port.",
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
usedPorts.set(service.port, name);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return issues;
|
|
24
119
|
}
|
|
25
120
|
export function manifestProbePath(manifest) {
|
|
26
121
|
return manifest?.readiness?.path;
|
|
@@ -46,47 +141,6 @@ export function manifestDomain(manifest) {
|
|
|
46
141
|
export function manifestResources(manifest) {
|
|
47
142
|
return manifest?.resources;
|
|
48
143
|
}
|
|
49
|
-
function parseSimpleYaml(content) {
|
|
50
|
-
const root = {};
|
|
51
|
-
const stack = [
|
|
52
|
-
{ indent: -1, object: root },
|
|
53
|
-
];
|
|
54
|
-
for (const rawLine of content.split(/\r?\n/)) {
|
|
55
|
-
const withoutComment = rawLine.replace(/\s+#.*$/, "");
|
|
56
|
-
if (!withoutComment.trim())
|
|
57
|
-
continue;
|
|
58
|
-
const indent = withoutComment.match(/^\s*/)?.[0].length ?? 0;
|
|
59
|
-
const trimmed = withoutComment.trim();
|
|
60
|
-
const idx = trimmed.indexOf(":");
|
|
61
|
-
if (idx <= 0)
|
|
62
|
-
continue;
|
|
63
|
-
const key = trimmed.slice(0, idx).trim();
|
|
64
|
-
const rawValue = trimmed.slice(idx + 1).trim();
|
|
65
|
-
while (stack.length > 1 && indent <= stack[stack.length - 1].indent) {
|
|
66
|
-
stack.pop();
|
|
67
|
-
}
|
|
68
|
-
const parent = stack[stack.length - 1].object;
|
|
69
|
-
if (rawValue === "") {
|
|
70
|
-
const child = {};
|
|
71
|
-
parent[key] = child;
|
|
72
|
-
stack.push({ indent, object: child });
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
parent[key] = parseScalar(rawValue);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return root;
|
|
79
|
-
}
|
|
80
|
-
function parseScalar(raw) {
|
|
81
|
-
const value = raw.replace(/^['"]|['"]$/g, "");
|
|
82
|
-
if (value === "false")
|
|
83
|
-
return false;
|
|
84
|
-
if (value === "true")
|
|
85
|
-
return true;
|
|
86
|
-
if (/^\d+$/.test(value))
|
|
87
|
-
return Number(value);
|
|
88
|
-
return value;
|
|
89
|
-
}
|
|
90
144
|
function normalizeManifest(value) {
|
|
91
145
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
92
146
|
return {};
|
|
@@ -97,13 +151,22 @@ function normalizeManifest(value) {
|
|
|
97
151
|
const resources = row["resources"] && typeof row["resources"] === "object"
|
|
98
152
|
? normalizeResources(row["resources"])
|
|
99
153
|
: undefined;
|
|
154
|
+
const sandbox = recordValue(row["sandbox"]);
|
|
155
|
+
const sync = recordValue(row["sync"]);
|
|
156
|
+
const dependencies = recordValue(row["dependencies"]);
|
|
157
|
+
const requirements = recordValue(row["requirements"]);
|
|
158
|
+
const services = normalizeServices(recordValue(row["services"]));
|
|
159
|
+
const workdir = stringValue(sandbox?.["workdir"] ?? row["workdir"] ?? row["workspace"] ?? row["root"]) ?? "/workspace";
|
|
160
|
+
const install = dependencies?.["install"] === false || row["install"] === false
|
|
161
|
+
? false
|
|
162
|
+
: stringValue(dependencies?.["install"] ?? row["install"] ?? row["install_command"]);
|
|
100
163
|
return {
|
|
164
|
+
schema_version: numberValue(row["schema_version"]),
|
|
165
|
+
name: stringValue(row["name"]),
|
|
101
166
|
template: stringValue(row["template"] ?? row["template_id"]),
|
|
102
167
|
framework: stringValue(row["framework"]),
|
|
103
|
-
workdir
|
|
104
|
-
install
|
|
105
|
-
? false
|
|
106
|
-
: stringValue(row["install"] ?? row["install_command"]),
|
|
168
|
+
workdir,
|
|
169
|
+
install,
|
|
107
170
|
dev: stringValue(row["dev"]),
|
|
108
171
|
build: stringValue(row["build"] ?? row["build_command"]),
|
|
109
172
|
start: stringValue(row["start"] ?? row["start_command"]),
|
|
@@ -117,8 +180,67 @@ function normalizeManifest(value) {
|
|
|
117
180
|
path: stringValue(readiness["path"] ?? row["probe_path"] ?? row["health_check_path"]),
|
|
118
181
|
port: numberValue(readiness["port"]),
|
|
119
182
|
},
|
|
183
|
+
sandbox: {
|
|
184
|
+
name: stringValue(sandbox?.["name"]),
|
|
185
|
+
template: stringValue(sandbox?.["template"]),
|
|
186
|
+
workdir,
|
|
187
|
+
},
|
|
188
|
+
sync: {
|
|
189
|
+
exclude: uniqueStrings([
|
|
190
|
+
...DEFAULT_SYNC_EXCLUDES,
|
|
191
|
+
...stringArray(sync?.["exclude"]),
|
|
192
|
+
]),
|
|
193
|
+
},
|
|
194
|
+
dependencies: install === undefined ? undefined : { install },
|
|
195
|
+
services,
|
|
196
|
+
requirements: {
|
|
197
|
+
config: stringArray(requirements?.["config"]),
|
|
198
|
+
secrets: stringArray(requirements?.["secrets"]),
|
|
199
|
+
database: requirements?.["database"] === true,
|
|
200
|
+
},
|
|
120
201
|
};
|
|
121
202
|
}
|
|
203
|
+
function normalizeServices(value) {
|
|
204
|
+
if (!value)
|
|
205
|
+
return undefined;
|
|
206
|
+
const services = {};
|
|
207
|
+
for (const [name, candidate] of Object.entries(value)) {
|
|
208
|
+
const row = recordValue(candidate) ?? {};
|
|
209
|
+
const health = recordValue(row["health"]);
|
|
210
|
+
services[name] = {
|
|
211
|
+
command: stringValue(row["command"] ?? row["cmd"]),
|
|
212
|
+
cwd: stringValue(row["cwd"]),
|
|
213
|
+
port: numberValue(row["port"]),
|
|
214
|
+
health: {
|
|
215
|
+
path: stringValue(health?.["path"]) ?? "/",
|
|
216
|
+
timeout: numberValue(health?.["timeout"]) ?? 120,
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
return services;
|
|
221
|
+
}
|
|
222
|
+
function isDeterministicInstall(command) {
|
|
223
|
+
if (/[;&|`<>\r\n]/.test(command) || command.includes("$("))
|
|
224
|
+
return false;
|
|
225
|
+
return (/^npm\s+ci(?:\s+[^\s]+)*\s*$/.test(command) ||
|
|
226
|
+
/^pnpm\s+install\b(?=[^\r\n]*--frozen-lockfile)(?:\s+[^\s]+)*\s*$/.test(command) ||
|
|
227
|
+
/^yarn\s+install\b(?=[^\r\n]*(?:--immutable|--frozen-lockfile))(?:\s+[^\s]+)*\s*$/.test(command) ||
|
|
228
|
+
/^bun\s+install\b(?=[^\r\n]*--frozen-lockfile)(?:\s+[^\s]+)*\s*$/.test(command) ||
|
|
229
|
+
/^pip(?:3)?\s+install\b(?=[^\r\n]*(?:--require-hashes|-r\s+[^\s]+\.lock|--requirement(?:=|\s+)[^\s]+\.lock))(?:\s+[^\s]+)*\s*$/.test(command));
|
|
230
|
+
}
|
|
231
|
+
function recordValue(value) {
|
|
232
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
233
|
+
return null;
|
|
234
|
+
return value;
|
|
235
|
+
}
|
|
236
|
+
function stringArray(value) {
|
|
237
|
+
if (!Array.isArray(value))
|
|
238
|
+
return [];
|
|
239
|
+
return value.filter((item) => typeof item === "string" && item.trim() !== "");
|
|
240
|
+
}
|
|
241
|
+
function uniqueStrings(values) {
|
|
242
|
+
return [...new Set(values)];
|
|
243
|
+
}
|
|
122
244
|
function normalizeResources(value) {
|
|
123
245
|
return {
|
|
124
246
|
database: resourceValue(value["database"]),
|
package/dist/app-manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../src/app-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"app-manifest.js","sourceRoot":"","sources":["../src/app-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,eAAe;IACf,gBAAgB;IAChB,gBAAgB;CACR,CAAC;AAuEX,MAAM,qBAAqB,GAAG;IAC5B,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,cAAc;IACd,OAAO;IACP,UAAU;IACV,MAAM;CACE,CAAC;AAqBX,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CACjB,iCAAiC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EACrD,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,SAAS,CACjB,6BAA6B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAClG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,OAAe;IAEf,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAC9C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAY,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAA0B;IAE1B,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,6BAA6B;YACnC,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,0BAA0B;YACnC,GAAG,EAAE,wBAAwB;SAC9B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,0BAA0B;YACnC,GAAG,EAAE,0CAA0C;SAChD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,2BAA2B;YACjC,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,2CAA2C,OAAO,EAAE;YAC7D,GAAG,EAAE,mIAAmI;SACzI,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC;IACzC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,kCAAkC;YAC3C,GAAG,EAAE,kEAAkE;SACxE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,YAAY,IAAI,UAAU;gBAChC,OAAO,EAAE,6BAA6B;gBACtC,GAAG,EAAE,gBAAgB,IAAI,6CAA6C;aACvE,CAAC,CAAC;QACL,CAAC;QACD,IACE,OAAO,CAAC,IAAI,IAAI,IAAI;YACpB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,OAAO,CAAC,IAAI,GAAG,CAAC;YAChB,OAAO,CAAC,IAAI,GAAG,KAAK,EACpB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,YAAY,IAAI,OAAO;gBAC7B,OAAO,EAAE,sDAAsD;gBAC/D,GAAG,EAAE,gBAAgB,IAAI,6BAA6B;aACvD,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,IAAI,EAAE,YAAY,IAAI,OAAO;oBAC7B,OAAO,EAAE,QAAQ,OAAO,CAAC,IAAI,oBAAoB,QAAQ,EAAE;oBAC3D,GAAG,EAAE,qDAAqD;iBAC3D,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAAkC;IAClE,OAAO,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkC;IAC7D,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAkC;IAElC,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAkC;IAElC,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,IAAI,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAkC;IAElC,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAkC;IAElC,OAAO,WAAW,CAAC,QAAQ,EAAE,WAAW,IAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAkC;IAElC,OAAO,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,QAAkC;IAElC,OAAO,QAAQ,EAAE,SAAS,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3E,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,SAAS,GACb,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ;QACtD,CAAC,CAAE,GAAG,CAAC,WAAW,CAA6B;QAC/C,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,SAAS,GACb,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ;QACtD,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAA4B,CAAC;QACjE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,WAAW,CACzB,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAC1E,IAAI,YAAY,CAAC;IAClB,MAAM,OAAO,GACX,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK;QAC7D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,WAAW,CACT,YAAY,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,CACtE,CAAC;IAER,OAAO;QACL,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5D,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACxC,OAAO;QACP,OAAO;QACP,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QACxD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QACxD,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5C,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,SAAS;QACT,SAAS,EAAE;YACT,IAAI,EAAE,WAAW,CACf,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CACnE;YACD,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACrC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpC,QAAQ,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO;SACR;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,aAAa,CAAC;gBACrB,GAAG,qBAAqB;gBACxB,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC;aAClC,CAAC;SACH;QACD,YAAY,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;QAC7D,QAAQ;QACR,YAAY,EAAE;YACZ,MAAM,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC7C,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/C,QAAQ,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAqC;IAErC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,QAAQ,GAA2C,EAAE,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG;YACf,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG;gBAC1C,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;aACjD;SACF,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAe;IAC7C,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzE,OAAO,CACL,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,kEAAkE,CAAC,IAAI,CAAC,OAAO,CAAC;QAChF,kFAAkF,CAAC,IAAI,CAAC,OAAO,CAAC;QAChG,iEAAiE,CAAC,IAAI,CAAC,OAAO,CAAC;QAC/E,+HAA+H,CAAC,IAAI,CAClI,OAAO,CACR,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,MAAyB;IAC9C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,kBAAkB,CACzB,KAA8B;IAE9B,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,KAAuB,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QACrD,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiMzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyM/C"}
|
package/dist/commands/context.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import { applyNamedContext, contextFromConfig, deleteNamedContext, getContextsPath, loadConfig, loadContextStore, redactKey,
|
|
2
|
+
import { applyNamedContext, contextFromConfig, deleteNamedContext, getContextsPath, loadConfig, loadContextStore, redactKey, saveConfigForActiveContext, saveNamedContext, } from "../config.js";
|
|
3
3
|
import { UserError } from "../errors.js";
|
|
4
4
|
import { handleError, isJsonMode, printJson } from "./util.js";
|
|
5
5
|
function jsonMode(opts) {
|
|
@@ -57,22 +57,6 @@ function printContextTable(active, contexts) {
|
|
|
57
57
|
}
|
|
58
58
|
console.log();
|
|
59
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
60
|
export function register(program) {
|
|
77
61
|
const context = program
|
|
78
62
|
.command("context")
|
|
@@ -196,8 +180,7 @@ export function register(program) {
|
|
|
196
180
|
throw new UserError(`Unknown context key: ${key}`, `Valid keys: ${allowed.join(", ")}`);
|
|
197
181
|
}
|
|
198
182
|
const patch = { [key]: value === "-" ? null : value };
|
|
199
|
-
|
|
200
|
-
const updated = updateActiveContext(patch);
|
|
183
|
+
const updated = saveConfigForActiveContext(patch);
|
|
201
184
|
const config = loadConfig();
|
|
202
185
|
if (jsonMode(opts)) {
|
|
203
186
|
printJson({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAimBzC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+0B/C"}
|