@spec0/cli 0.5.0 → 0.6.1
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 +0 -1
- package/dist/commands/api/changelog.d.ts.map +1 -1
- package/dist/commands/api/changelog.js +10 -7
- package/dist/commands/api/changelog.js.map +1 -1
- package/dist/commands/api/delete.d.ts.map +1 -1
- package/dist/commands/api/delete.js +11 -9
- package/dist/commands/api/delete.js.map +1 -1
- package/dist/commands/api/list.d.ts.map +1 -1
- package/dist/commands/api/list.js +10 -7
- package/dist/commands/api/list.js.map +1 -1
- package/dist/commands/api/show.d.ts.map +1 -1
- package/dist/commands/api/show.js +11 -4
- package/dist/commands/api/show.js.map +1 -1
- package/dist/commands/auth.d.ts +5 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +36 -20
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/ci/generate.d.ts.map +1 -1
- package/dist/commands/ci/generate.js +10 -7
- package/dist/commands/ci/generate.js.map +1 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +10 -5
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/mcp.d.ts +7 -4
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +21 -42
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/mock/create.d.ts.map +1 -1
- package/dist/commands/mock/create.js +10 -7
- package/dist/commands/mock/create.js.map +1 -1
- package/dist/commands/mock/delete.d.ts.map +1 -1
- package/dist/commands/mock/delete.js +11 -10
- package/dist/commands/mock/delete.js.map +1 -1
- package/dist/commands/mock/list.d.ts.map +1 -1
- package/dist/commands/mock/list.js +10 -7
- package/dist/commands/mock/list.js.map +1 -1
- package/dist/commands/mock/show.d.ts.map +1 -1
- package/dist/commands/mock/show.js +10 -7
- package/dist/commands/mock/show.js.map +1 -1
- package/dist/commands/mock/url.d.ts.map +1 -1
- package/dist/commands/mock/url.js +12 -5
- package/dist/commands/mock/url.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +12 -5
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +5 -0
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +13 -9
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +10 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync-status.d.ts.map +1 -1
- package/dist/commands/sync-status.js +10 -7
- package/dist/commands/sync-status.js.map +1 -1
- package/dist/commands/team/create.d.ts.map +1 -1
- package/dist/commands/team/create.js +11 -10
- package/dist/commands/team/create.js.map +1 -1
- package/dist/commands/team/delete.d.ts.map +1 -1
- package/dist/commands/team/delete.js +11 -8
- package/dist/commands/team/delete.js.map +1 -1
- package/dist/commands/team/list.d.ts.map +1 -1
- package/dist/commands/team/list.js +11 -9
- package/dist/commands/team/list.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +10 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +58 -10
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/config.d.ts +11 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +14 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +46 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +99 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/http-trace.d.ts +37 -0
- package/dist/lib/http-trace.d.ts.map +1 -0
- package/dist/lib/http-trace.js +101 -0
- package/dist/lib/http-trace.js.map +1 -0
- package/dist/lib/output.d.ts +4 -0
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +8 -0
- package/dist/lib/output.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/mcp.js
CHANGED
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
* spec0 mcp url | test | install
|
|
3
3
|
*
|
|
4
4
|
* Helpers for pointing MCP clients (Cursor, Claude) at the Spec0 MCP server.
|
|
5
|
-
* The server is a single Streamable HTTP endpoint
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
5
|
+
* The server is a single Streamable HTTP endpoint that authenticates with the
|
|
6
|
+
* MCP OAuth flow: the protected-resource metadata points clients at Clerk, which
|
|
7
|
+
* dynamically registers a client and runs the browser authorization. So we
|
|
8
|
+
* register the server **without** an Authorization header — setting a static
|
|
9
|
+
* header makes clients (e.g. Claude Code) skip the OAuth flow entirely, and the
|
|
10
|
+
* org API key isn't a JWT the gateway would accept anyway. Anonymous connections
|
|
11
|
+
* get the public docs tools; signing in via the browser unlocks org-scoped ones.
|
|
9
12
|
*/
|
|
10
13
|
import chalk from "chalk";
|
|
11
14
|
import got from "got";
|
|
@@ -13,41 +16,26 @@ import { spawnSync } from "node:child_process";
|
|
|
13
16
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
14
17
|
import { homedir } from "node:os";
|
|
15
18
|
import { dirname, join } from "node:path";
|
|
16
|
-
import { getDefaultOrgId, getOrgConfig } from "../lib/config.js";
|
|
17
19
|
import { resolvedPlatformMcpBaseUrl, resolvedPlatformMcpUrl } from "../lib/platform-defaults.js";
|
|
18
20
|
import { ExitCode, exit, exitCodeForHttpStatus } from "../lib/exit-codes.js";
|
|
19
21
|
/** Server key used under `mcpServers` in every client config we write. */
|
|
20
22
|
const SERVER_KEY = "spec0";
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Canonical client config block for the Spec0 MCP server. No Authorization
|
|
25
|
+
* header: the client performs the MCP OAuth flow (browser sign-in via Clerk)
|
|
26
|
+
* on first connect.
|
|
27
|
+
*/
|
|
24
28
|
function canonicalServerConfig(mcpUrl) {
|
|
25
29
|
return {
|
|
26
30
|
url: mcpUrl,
|
|
27
|
-
headers: { Authorization: AUTH_HEADER },
|
|
28
31
|
};
|
|
29
32
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Exit early (code 3) unless the user is logged in or has env credentials.
|
|
32
|
-
* Mirrors the sibling MCP commands: a default org from config, or SPEC0_TOKEN
|
|
33
|
-
* with an org id, is enough.
|
|
34
|
-
*/
|
|
35
|
-
function requireAuthOrExit() {
|
|
36
|
-
const orgId = process.env.SPEC0_ORG_ID ?? process.env.PLATFORM_ORG_ID ?? getDefaultOrgId();
|
|
37
|
-
const hasEnvToken = Boolean(process.env.SPEC0_TOKEN ?? process.env.PLATFORM_API_TOKEN);
|
|
38
|
-
const hasStoredOrg = Boolean(orgId && getOrgConfig(orgId));
|
|
39
|
-
if (!hasEnvToken && !hasStoredOrg) {
|
|
40
|
-
console.error(chalk.red("Not authenticated. Run 'spec0 auth login'."));
|
|
41
|
-
exit(ExitCode.AUTH_MISSING);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
33
|
export function registerMcpCommands(program) {
|
|
45
34
|
const mcp = program.command("mcp").description("MCP server URL and config");
|
|
46
35
|
mcp
|
|
47
36
|
.command("url")
|
|
48
37
|
.description("Print MCP server config for Cursor/Claude")
|
|
49
38
|
.action(async () => {
|
|
50
|
-
requireAuthOrExit();
|
|
51
39
|
const mcpUrl = resolvedPlatformMcpUrl();
|
|
52
40
|
console.log("Your MCP server URL:");
|
|
53
41
|
console.log(` ${mcpUrl}`);
|
|
@@ -55,13 +43,12 @@ export function registerMcpCommands(program) {
|
|
|
55
43
|
console.log("Add to your MCP client config (e.g. Cursor):");
|
|
56
44
|
console.log(JSON.stringify({ mcpServers: { [SERVER_KEY]: canonicalServerConfig(mcpUrl) } }, null, 2));
|
|
57
45
|
console.log("");
|
|
58
|
-
console.log(chalk.dim("
|
|
46
|
+
console.log(chalk.dim("No token needed here — your MCP client opens a browser to sign in (OAuth) on first connect."));
|
|
59
47
|
});
|
|
60
48
|
mcp
|
|
61
49
|
.command("test")
|
|
62
50
|
.description("Verify MCP server is responding")
|
|
63
51
|
.action(async () => {
|
|
64
|
-
requireAuthOrExit();
|
|
65
52
|
const url = `${resolvedPlatformMcpBaseUrl()}/health`;
|
|
66
53
|
try {
|
|
67
54
|
const res = await got.get(url);
|
|
@@ -78,7 +65,6 @@ export function registerMcpCommands(program) {
|
|
|
78
65
|
.description("Install the Spec0 MCP server into Cursor and/or Claude")
|
|
79
66
|
.option("--client <client>", "Target client: cursor, claude, or all", "all")
|
|
80
67
|
.action(async (opts) => {
|
|
81
|
-
requireAuthOrExit();
|
|
82
68
|
const client = opts.client.toLowerCase();
|
|
83
69
|
if (!["cursor", "claude", "all"].includes(client)) {
|
|
84
70
|
console.error(chalk.red(`Unknown client '${opts.client}'. Expected: cursor, claude, or all.`));
|
|
@@ -91,6 +77,9 @@ export function registerMcpCommands(program) {
|
|
|
91
77
|
if (client === "claude" || client === "all") {
|
|
92
78
|
installClaude(mcpUrl);
|
|
93
79
|
}
|
|
80
|
+
console.log("");
|
|
81
|
+
console.log(chalk.dim("On first use your MCP client opens a browser to sign in (OAuth via Clerk). " +
|
|
82
|
+
"Anonymous access exposes the public docs tools; signing in unlocks your org's APIs."));
|
|
94
83
|
});
|
|
95
84
|
}
|
|
96
85
|
/**
|
|
@@ -122,27 +111,17 @@ function installCursor(mcpUrl) {
|
|
|
122
111
|
}
|
|
123
112
|
/**
|
|
124
113
|
* Register the server with Claude via `claude mcp add`. The flag form follows the
|
|
125
|
-
* current Claude CLI:
|
|
126
|
-
* transport is selected explicitly (`--transport http`)
|
|
127
|
-
* passed
|
|
128
|
-
* connect time.
|
|
114
|
+
* current Claude CLI: options precede the server name and the Streamable HTTP
|
|
115
|
+
* transport is selected explicitly (`--transport http`). No Authorization header
|
|
116
|
+
* is passed — that lets the client run the MCP OAuth flow on connect.
|
|
129
117
|
*
|
|
130
118
|
* If the `claude` binary isn't on PATH (or the invocation fails for any reason)
|
|
131
119
|
* we don't hard-fail: we print the exact command plus the manual JSON so the user
|
|
132
120
|
* can finish by hand.
|
|
133
121
|
*/
|
|
134
122
|
function installClaude(mcpUrl) {
|
|
135
|
-
const args = [
|
|
136
|
-
|
|
137
|
-
"add",
|
|
138
|
-
"--transport",
|
|
139
|
-
"http",
|
|
140
|
-
SERVER_KEY,
|
|
141
|
-
mcpUrl,
|
|
142
|
-
"--header",
|
|
143
|
-
`Authorization: ${AUTH_HEADER}`,
|
|
144
|
-
];
|
|
145
|
-
const printableCommand = `claude mcp add --transport http ${SERVER_KEY} ${mcpUrl} --header "Authorization: ${AUTH_HEADER}"`;
|
|
123
|
+
const args = ["mcp", "add", "--transport", "http", SERVER_KEY, mcpUrl];
|
|
124
|
+
const printableCommand = `claude mcp add --transport http ${SERVER_KEY} ${mcpUrl}`;
|
|
146
125
|
let result;
|
|
147
126
|
try {
|
|
148
127
|
result = spawnSync("claude", args, { stdio: "inherit" });
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QAuDtD"}
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
import { PublicMocksService } from "@spec0/sdk-public-platform";
|
|
13
|
-
import { configureSdkAuth
|
|
13
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
14
14
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
15
15
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
16
|
+
import { failApi } from "../../lib/errors.js";
|
|
17
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
16
18
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
17
19
|
export function registerMockCreateCommand(mock) {
|
|
18
20
|
mock
|
|
@@ -22,8 +24,10 @@ export function registerMockCreateCommand(mock) {
|
|
|
22
24
|
.option("--api-id <uuid>", "API id")
|
|
23
25
|
.option("--org <uuid>", "Org id override")
|
|
24
26
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
27
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
25
28
|
.action(async (opts) => {
|
|
26
29
|
const outCtx = resolveOutputContext(opts);
|
|
30
|
+
setHttpTrace(outCtx.verbose);
|
|
27
31
|
if (!opts.api && !opts.apiId) {
|
|
28
32
|
fail(outCtx, ExitCode.USAGE, "Provide --api <name> or --api-id <uuid>.");
|
|
29
33
|
}
|
|
@@ -56,12 +60,11 @@ export function registerMockCreateCommand(mock) {
|
|
|
56
60
|
emit(outCtx, result, renderCreateText);
|
|
57
61
|
}
|
|
58
62
|
catch (err) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
fail(outCtx, ExitCode.GENERIC, `mock create failed: ${err.message}`);
|
|
63
|
+
failApi(outCtx, err, {
|
|
64
|
+
action: "mock create",
|
|
65
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
66
|
+
apiUrl: authCtx.apiUrl,
|
|
67
|
+
});
|
|
65
68
|
}
|
|
66
69
|
});
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/mock/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAA4B,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/mock/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QA2DtD"}
|
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import chalk from "chalk";
|
|
10
10
|
import { PublicMocksService } from "@spec0/sdk-public-platform";
|
|
11
|
-
import { configureSdkAuth
|
|
11
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
12
12
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
13
|
-
import { ExitCode
|
|
13
|
+
import { ExitCode } from "../../lib/exit-codes.js";
|
|
14
|
+
import { failApi } from "../../lib/errors.js";
|
|
15
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
14
16
|
import { fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
|
|
15
17
|
export function registerMockDeleteCommand(mock) {
|
|
16
18
|
mock
|
|
@@ -19,8 +21,10 @@ export function registerMockDeleteCommand(mock) {
|
|
|
19
21
|
.option("--yes", "Skip the confirmation prompt (required for non-interactive use)")
|
|
20
22
|
.option("--org <uuid>", "Org id override")
|
|
21
23
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
24
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
22
25
|
.action(async (api, opts) => {
|
|
23
26
|
const outCtx = resolveOutputContext(opts);
|
|
27
|
+
setHttpTrace(outCtx.verbose);
|
|
24
28
|
if (!api.trim()) {
|
|
25
29
|
fail(outCtx, ExitCode.USAGE, "API ref is required.");
|
|
26
30
|
}
|
|
@@ -50,14 +54,11 @@ export function registerMockDeleteCommand(mock) {
|
|
|
50
54
|
progress(outCtx, chalk.green(`✓ Deleted mock server for ${hit.apiName ?? api} (${hit.mockServerId})`));
|
|
51
55
|
}
|
|
52
56
|
catch (err) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
const status = errorStatusCode(err);
|
|
59
|
-
const msg = extractErrorMessage(err) ?? err.message;
|
|
60
|
-
fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `mock delete failed: ${msg}`);
|
|
57
|
+
failApi(outCtx, err, {
|
|
58
|
+
action: "mock delete",
|
|
59
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
60
|
+
apiUrl: authCtx.apiUrl,
|
|
61
|
+
});
|
|
61
62
|
}
|
|
62
63
|
});
|
|
63
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/mock/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,QA2CpD"}
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
* `@spec0/sdk-public-platform`.
|
|
6
6
|
*/
|
|
7
7
|
import { PublicMocksService } from "@spec0/sdk-public-platform";
|
|
8
|
-
import { configureSdkAuth
|
|
8
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
9
9
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
10
10
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
11
|
+
import { failApi } from "../../lib/errors.js";
|
|
12
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
11
13
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
12
14
|
import { renderTable } from "../../lib/output/table.js";
|
|
13
15
|
export function registerMockListCommand(mock) {
|
|
@@ -16,8 +18,10 @@ export function registerMockListCommand(mock) {
|
|
|
16
18
|
.description("List all mock servers in the org.")
|
|
17
19
|
.option("--org <uuid>", "Org id override")
|
|
18
20
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
21
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
19
22
|
.action(async (opts) => {
|
|
20
23
|
const outCtx = resolveOutputContext(opts);
|
|
24
|
+
setHttpTrace(outCtx.verbose);
|
|
21
25
|
let authCtx;
|
|
22
26
|
try {
|
|
23
27
|
authCtx = requireOrgContext(opts.org);
|
|
@@ -42,12 +46,11 @@ export function registerMockListCommand(mock) {
|
|
|
42
46
|
]));
|
|
43
47
|
}
|
|
44
48
|
catch (err) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
fail(outCtx, ExitCode.GENERIC, `mock list failed: ${err.message}`);
|
|
49
|
+
failApi(outCtx, err, {
|
|
50
|
+
action: "mock list",
|
|
51
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
52
|
+
apiUrl: authCtx.apiUrl,
|
|
53
|
+
});
|
|
51
54
|
}
|
|
52
55
|
});
|
|
53
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/mock/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/mock/list.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAsB,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACzC,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7B,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAG,CAAW,CAAC,OAAO,EAAE;gBACxD,IAAI,EAAE,4DAA4D;aACnE,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChC,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG;gBAChC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG;gBACnB,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE;aACnD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC9B,WAAW,CAAC,IAA4C,EAAE;gBACxD,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;gBAC7B,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC/B,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;aACvC,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnB,MAAM,EAAE,WAAW;gBACnB,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,QAmDpD"}
|
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import chalk from "chalk";
|
|
10
10
|
import { PublicMocksService } from "@spec0/sdk-public-platform";
|
|
11
|
-
import { configureSdkAuth
|
|
11
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
12
12
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
13
13
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
14
|
+
import { failApi } from "../../lib/errors.js";
|
|
15
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
14
16
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
15
17
|
export function registerMockShowCommand(mock) {
|
|
16
18
|
mock
|
|
@@ -18,8 +20,10 @@ export function registerMockShowCommand(mock) {
|
|
|
18
20
|
.description("Show details for the mock server tied to <api> (name or UUID).")
|
|
19
21
|
.option("--org <uuid>", "Org id override")
|
|
20
22
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
23
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
21
24
|
.action(async (api, opts) => {
|
|
22
25
|
const outCtx = resolveOutputContext(opts);
|
|
26
|
+
setHttpTrace(outCtx.verbose);
|
|
23
27
|
let authCtx;
|
|
24
28
|
try {
|
|
25
29
|
authCtx = requireOrgContext(opts.org);
|
|
@@ -49,12 +53,11 @@ export function registerMockShowCommand(mock) {
|
|
|
49
53
|
emit(outCtx, result, renderShowText);
|
|
50
54
|
}
|
|
51
55
|
catch (err) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
fail(outCtx, ExitCode.GENERIC, `mock show failed: ${err.message}`);
|
|
56
|
+
failApi(outCtx, err, {
|
|
57
|
+
action: "mock show",
|
|
58
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
59
|
+
apiUrl: authCtx.apiUrl,
|
|
60
|
+
});
|
|
58
61
|
}
|
|
59
62
|
});
|
|
60
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/mock/show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/mock/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/commands/mock/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,QAqCnD"}
|
|
@@ -9,15 +9,21 @@
|
|
|
9
9
|
* point-lookup endpoint so we still list-and-filter, just over the SDK now.
|
|
10
10
|
*/
|
|
11
11
|
import { PublicMocksService } from "@spec0/sdk-public-platform";
|
|
12
|
-
import { configureSdkAuth
|
|
12
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
13
13
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
14
14
|
import { ExitCode, exit } from "../../lib/exit-codes.js";
|
|
15
|
+
import { failApi } from "../../lib/errors.js";
|
|
16
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
17
|
+
import { resolveOutputContext } from "../../lib/output/index.js";
|
|
15
18
|
export function registerMockUrlCommand(mock) {
|
|
16
19
|
mock
|
|
17
20
|
.command("url <api>")
|
|
18
21
|
.description("Print mock base URL for <api> (name or UUID). One line, pipe-friendly.")
|
|
19
22
|
.option("--org <uuid>", "Org id override")
|
|
23
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
20
24
|
.action(async (api, opts) => {
|
|
25
|
+
setHttpTrace(!!opts.verbose);
|
|
26
|
+
const outCtx = resolveOutputContext(opts);
|
|
21
27
|
let authCtx;
|
|
22
28
|
try {
|
|
23
29
|
authCtx = requireOrgContext(opts.org);
|
|
@@ -36,10 +42,11 @@ export function registerMockUrlCommand(mock) {
|
|
|
36
42
|
process.stdout.write(`${authCtx.apiUrl}${hit.mockBaseUrl ?? ""}\n`);
|
|
37
43
|
}
|
|
38
44
|
catch (err) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
45
|
+
failApi(outCtx, err, {
|
|
46
|
+
action: "mock url",
|
|
47
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
48
|
+
apiUrl: authCtx.apiUrl,
|
|
49
|
+
});
|
|
43
50
|
}
|
|
44
51
|
});
|
|
45
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/commands/mock/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/commands/mock/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,IAAI;SACD,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,wEAAwE,CAAC;SACrF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACzC,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,IAAyC,EAAE,EAAE;QACvE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CACzF,CAAC;YACF,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnB,MAAM,EAAE,UAAU;gBAClB,GAAG,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK;gBACrC,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAsDnD"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -12,10 +12,13 @@
|
|
|
12
12
|
import chalk from "chalk";
|
|
13
13
|
import { writeFileSync } from "fs";
|
|
14
14
|
import { PublicRegistryService } from "@spec0/sdk-public-platform";
|
|
15
|
-
import { configureSdkAuth
|
|
15
|
+
import { configureSdkAuth } from "../lib/api-client.js";
|
|
16
16
|
import { requireOrgContext } from "../lib/auth-context.js";
|
|
17
17
|
import { resolveRef } from "../lib/ref-resolver.js";
|
|
18
18
|
import { ExitCode, exit } from "../lib/exit-codes.js";
|
|
19
|
+
import { failApi } from "../lib/errors.js";
|
|
20
|
+
import { setHttpTrace } from "../lib/http-trace.js";
|
|
21
|
+
import { resolveOutputContext } from "../lib/output/index.js";
|
|
19
22
|
export function registerPullCommand(program) {
|
|
20
23
|
program
|
|
21
24
|
.command("pull <ref>")
|
|
@@ -23,7 +26,10 @@ export function registerPullCommand(program) {
|
|
|
23
26
|
.option("-o, --output <file>", "Write to file instead of stdout")
|
|
24
27
|
.option("--public", "Reserved for public registry (same endpoint when API is public)")
|
|
25
28
|
.option("--org <uuid>", "Auth org id (defaults to logged-in org)")
|
|
29
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
26
30
|
.action(async (ref, opts) => {
|
|
31
|
+
const outCtx = resolveOutputContext(opts);
|
|
32
|
+
setHttpTrace(!!opts.verbose);
|
|
27
33
|
const parsed = resolveRefForPull(ref);
|
|
28
34
|
let ctx;
|
|
29
35
|
try {
|
|
@@ -53,10 +59,11 @@ export function registerPullCommand(program) {
|
|
|
53
59
|
}
|
|
54
60
|
}
|
|
55
61
|
catch (err) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
failApi(outCtx, err, {
|
|
63
|
+
action: "pull",
|
|
64
|
+
org: ctx.orgName ?? ctx.orgId,
|
|
65
|
+
apiUrl: ctx.apiUrl,
|
|
66
|
+
});
|
|
60
67
|
}
|
|
61
68
|
});
|
|
62
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6TpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAuBnD"}
|
package/dist/commands/push.js
CHANGED
|
@@ -204,6 +204,9 @@ async function runPush(cmdName, specArg, opts, command) {
|
|
|
204
204
|
}
|
|
205
205
|
const displayVersion = reg.version ?? versionOpt ?? "?";
|
|
206
206
|
const displayName = reg.apiName ?? resolvedName ?? resolvedApiId;
|
|
207
|
+
// Non-blocking org governance warnings, surfaced when the org runs governance in warn mode.
|
|
208
|
+
const governanceWarnings = reg
|
|
209
|
+
.governanceWarnings ?? [];
|
|
207
210
|
if (format === "json") {
|
|
208
211
|
console.log(JSON.stringify({
|
|
209
212
|
apiId: resolvedApiId,
|
|
@@ -217,6 +220,7 @@ async function runPush(cmdName, specArg, opts, command) {
|
|
|
217
220
|
teamName: reg.teamName ?? null,
|
|
218
221
|
orgSlug: reg.orgSlug ?? null,
|
|
219
222
|
registryUrl: reg.registryUrl ?? null,
|
|
223
|
+
governanceWarnings,
|
|
220
224
|
specUrl,
|
|
221
225
|
mockUrl: mockUrl ?? null,
|
|
222
226
|
}, null, 2));
|
|
@@ -234,6 +238,7 @@ async function runPush(cmdName, specArg, opts, command) {
|
|
|
234
238
|
versionUnchanged: reg.versionUnchanged,
|
|
235
239
|
versionUnchangedHint: reg.versionUnchangedHint,
|
|
236
240
|
created: reg.created,
|
|
241
|
+
governanceWarnings,
|
|
237
242
|
}));
|
|
238
243
|
}
|
|
239
244
|
}
|