@spec0/cli 0.5.0 → 0.6.0
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/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
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
import { execSync } from "node:child_process";
|
|
14
14
|
import chalk from "chalk";
|
|
15
15
|
import { PublicSpecsService } from "@spec0/sdk-public-platform";
|
|
16
|
-
import { configureSdkAuth, errorStatusCode
|
|
16
|
+
import { configureSdkAuth, errorStatusCode } from "../lib/api-client.js";
|
|
17
17
|
import { requireOrgContext } from "../lib/auth-context.js";
|
|
18
18
|
import { ExitCode } from "../lib/exit-codes.js";
|
|
19
|
+
import { failApi } from "../lib/errors.js";
|
|
20
|
+
import { setHttpTrace } from "../lib/http-trace.js";
|
|
19
21
|
import { emit, fail, resolveOutputContext } from "../lib/output/index.js";
|
|
20
22
|
import { resolveRef } from "../lib/ref-resolver.js";
|
|
21
23
|
export function registerSyncStatusCommand(program) {
|
|
@@ -28,8 +30,10 @@ export function registerSyncStatusCommand(program) {
|
|
|
28
30
|
.option("--api-id <uuid>", "API id (alternative to positional ref)")
|
|
29
31
|
.option("--org <uuid>", "Org id override")
|
|
30
32
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
33
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
31
34
|
.action(async (refArg, opts) => {
|
|
32
35
|
const outCtx = resolveOutputContext(opts);
|
|
36
|
+
setHttpTrace(outCtx.verbose);
|
|
33
37
|
let authCtx;
|
|
34
38
|
try {
|
|
35
39
|
authCtx = requireOrgContext(opts.org);
|
|
@@ -59,18 +63,17 @@ export function registerSyncStatusCommand(program) {
|
|
|
59
63
|
emit(outCtx, res, renderText);
|
|
60
64
|
}
|
|
61
65
|
catch (err) {
|
|
62
|
-
if (is401(err)) {
|
|
63
|
-
fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
|
|
64
|
-
hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
66
|
const status = errorStatusCode(err);
|
|
68
67
|
if (status === 404) {
|
|
69
68
|
fail(outCtx, ExitCode.NOT_FOUND, `API '${apiName ?? apiId}' not found.`, {
|
|
70
69
|
hint: "Run 'spec0 api list' to see what exists in this org.",
|
|
71
70
|
});
|
|
72
71
|
}
|
|
73
|
-
|
|
72
|
+
failApi(outCtx, err, {
|
|
73
|
+
action: "sync-status",
|
|
74
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
75
|
+
apiUrl: authCtx.apiUrl,
|
|
76
|
+
});
|
|
74
77
|
}
|
|
75
78
|
});
|
|
76
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-status.js","sourceRoot":"","sources":["../../src/commands/sync-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"sync-status.js","sourceRoot":"","sources":["../../src/commands/sync-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/team/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/team/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QA2CtD"}
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
* Requires `admin:team` scope on the calling token.
|
|
6
6
|
*/
|
|
7
7
|
import { PublicTeamsService } 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
|
-
import { ExitCode
|
|
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
|
export function registerTeamCreateCommand(team) {
|
|
13
15
|
team
|
|
@@ -16,8 +18,10 @@ export function registerTeamCreateCommand(team) {
|
|
|
16
18
|
.option("--description <text>", "Optional team description")
|
|
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 (name, opts) => {
|
|
20
23
|
const outCtx = resolveOutputContext(opts);
|
|
24
|
+
setHttpTrace(outCtx.verbose);
|
|
21
25
|
const trimmed = name.trim();
|
|
22
26
|
if (!trimmed) {
|
|
23
27
|
fail(outCtx, ExitCode.USAGE, "Team name is required and must be non-blank.");
|
|
@@ -42,14 +46,11 @@ export function registerTeamCreateCommand(team) {
|
|
|
42
46
|
emit(outCtx, created, (t) => `Created team: ${t.name} (${t.id})`);
|
|
43
47
|
}
|
|
44
48
|
catch (err) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
const status = errorStatusCode(err);
|
|
51
|
-
const msg = extractErrorMessage(err) ?? err.message;
|
|
52
|
-
fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `team create failed: ${msg}`);
|
|
49
|
+
failApi(outCtx, err, {
|
|
50
|
+
action: "team create",
|
|
51
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
52
|
+
apiUrl: authCtx.apiUrl,
|
|
53
|
+
});
|
|
53
54
|
}
|
|
54
55
|
});
|
|
55
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/team/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/team/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,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;AAEjG,MAAM,UAAU,yBAAyB,CAAC,IAAa;IACrD,IAAI;SACD,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SAC3D,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,IAAY,EAAE,IAA4D,EAAE,EAAE;QAC3F,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,EAAE,8CAA8C,CAAC,CAAC;QAC/E,CAAC;QAED,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,OAAO,GAAG,CAAC,MAAM,kBAAkB,CAAC,UAAU,CAAC;gBACnD,WAAW,EAAE;oBACX,IAAI,EAAE,OAAO;oBACb,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;aACF,CAAC,CAAW,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnB,MAAM,EAAE,aAAa;gBACrB,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":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/team/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/team/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QAyDtD"}
|
|
@@ -10,9 +10,11 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
import { PublicTeamsService } from "@spec0/sdk-public-platform";
|
|
13
|
-
import { configureSdkAuth, errorStatusCode,
|
|
13
|
+
import { configureSdkAuth, errorStatusCode, extractErrorMessage } from "../../lib/api-client.js";
|
|
14
14
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
15
|
-
import { ExitCode
|
|
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 { fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
|
|
17
19
|
export function registerTeamDeleteCommand(team) {
|
|
18
20
|
team
|
|
@@ -21,8 +23,10 @@ export function registerTeamDeleteCommand(team) {
|
|
|
21
23
|
.option("--yes", "Skip the confirmation prompt (required for non-interactive use)")
|
|
22
24
|
.option("--org <uuid>", "Org id override")
|
|
23
25
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
26
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
24
27
|
.action(async (teamId, opts) => {
|
|
25
28
|
const outCtx = resolveOutputContext(opts);
|
|
29
|
+
setHttpTrace(outCtx.verbose);
|
|
26
30
|
if (!teamId.trim()) {
|
|
27
31
|
fail(outCtx, ExitCode.USAGE, "Team id is required.");
|
|
28
32
|
}
|
|
@@ -44,11 +48,6 @@ export function registerTeamDeleteCommand(team) {
|
|
|
44
48
|
progress(outCtx, chalk.green(`✓ Deleted team ${teamId}`));
|
|
45
49
|
}
|
|
46
50
|
catch (err) {
|
|
47
|
-
if (is401(err)) {
|
|
48
|
-
fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
|
|
49
|
-
hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
51
|
const status = errorStatusCode(err);
|
|
53
52
|
const msg = extractErrorMessage(err) ?? err.message;
|
|
54
53
|
if (status === 404) {
|
|
@@ -61,7 +60,11 @@ export function registerTeamDeleteCommand(team) {
|
|
|
61
60
|
hint: "Delete the team's APIs and mocks first.",
|
|
62
61
|
});
|
|
63
62
|
}
|
|
64
|
-
|
|
63
|
+
failApi(outCtx, err, {
|
|
64
|
+
action: "team delete",
|
|
65
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
66
|
+
apiUrl: authCtx.apiUrl,
|
|
67
|
+
});
|
|
65
68
|
}
|
|
66
69
|
});
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/team/delete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;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/team/delete.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/team/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/team/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,QAsCpD"}
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* Uses PublicTeamsService.listTeams (`/api/v1/public/teams`).
|
|
5
5
|
*/
|
|
6
6
|
import { PublicTeamsService } from "@spec0/sdk-public-platform";
|
|
7
|
-
import { configureSdkAuth
|
|
7
|
+
import { configureSdkAuth } from "../../lib/api-client.js";
|
|
8
8
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
9
|
-
import { ExitCode
|
|
9
|
+
import { ExitCode } from "../../lib/exit-codes.js";
|
|
10
|
+
import { failApi } from "../../lib/errors.js";
|
|
11
|
+
import { setHttpTrace } from "../../lib/http-trace.js";
|
|
10
12
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
11
13
|
import { renderTable } from "../../lib/output/table.js";
|
|
12
14
|
export function registerTeamListCommand(team) {
|
|
@@ -15,8 +17,10 @@ export function registerTeamListCommand(team) {
|
|
|
15
17
|
.description("List all teams in the org.")
|
|
16
18
|
.option("--org <uuid>", "Org id override")
|
|
17
19
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
20
|
+
.option("--verbose", "Print HTTP request/response traces to stderr")
|
|
18
21
|
.action(async (opts) => {
|
|
19
22
|
const outCtx = resolveOutputContext(opts);
|
|
23
|
+
setHttpTrace(outCtx.verbose);
|
|
20
24
|
let authCtx;
|
|
21
25
|
try {
|
|
22
26
|
authCtx = requireOrgContext(opts.org);
|
|
@@ -36,13 +40,11 @@ export function registerTeamListCommand(team) {
|
|
|
36
40
|
]));
|
|
37
41
|
}
|
|
38
42
|
catch (err) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
const status = errorStatusCode(err);
|
|
45
|
-
fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `team list failed: ${err.message}`);
|
|
43
|
+
failApi(outCtx, err, {
|
|
44
|
+
action: "team list",
|
|
45
|
+
org: authCtx.orgName ?? authCtx.orgId,
|
|
46
|
+
apiUrl: authCtx.apiUrl,
|
|
47
|
+
});
|
|
46
48
|
}
|
|
47
49
|
});
|
|
48
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/team/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/team/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,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,4BAA4B,CAAC;SACzC,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,CAAC,MAAM,kBAAkB,CAAC,SAAS,EAAE,CAAa,CAAC;YAChE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,WAAW,CAAC,IAA4C,EAAE;gBACxD,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC3B,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;gBAC/B,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE;aAC9C,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"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,10 @@ import { registerCiCommands } from "./commands/ci/index.js";
|
|
|
30
30
|
import { registerCommandsCommand } from "./commands/commands.js";
|
|
31
31
|
import { getCliVersion } from "./lib/version.js";
|
|
32
32
|
import { notifyUpdateIfAvailable } from "./lib/update-check.js";
|
|
33
|
+
import { installHttpInstrumentation } from "./lib/http-trace.js";
|
|
34
|
+
// Apply the default request timeout (and wire verbose tracing) to every SDK
|
|
35
|
+
// call by wrapping the global fetch once, before any command runs.
|
|
36
|
+
installHttpInstrumentation();
|
|
33
37
|
const program = new Command();
|
|
34
38
|
program
|
|
35
39
|
.name("spec0")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,2EAA2E;AAC3E,4EAA4E;AAC5E,oDAAoD;AACpD,iBAAiB,EAAE,CAAC;AACpB,IAAI,WAAW,EAAE,EAAE,CAAC;IAClB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -52,6 +52,16 @@ export declare function configureSdkAuth(ctx: ResolvedOrgContext): void;
|
|
|
52
52
|
* Returns `undefined` if neither is present.
|
|
53
53
|
*/
|
|
54
54
|
export declare function errorStatusCode(err: unknown): number | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Extract the request method + final URL from an error, for diagnostics.
|
|
57
|
+
* Handles both SDK `ApiError` (`err.url` / `err.request.method`) and `got`
|
|
58
|
+
* errors (`err.response.requestUrl` / `err.options.method`). Returns
|
|
59
|
+
* `undefined` fields when nothing is available.
|
|
60
|
+
*/
|
|
61
|
+
export declare function errorRequestInfo(err: unknown): {
|
|
62
|
+
method?: string;
|
|
63
|
+
url?: string;
|
|
64
|
+
};
|
|
55
65
|
export declare function is401(err: unknown): boolean;
|
|
56
66
|
export declare function is402(err: unknown): boolean;
|
|
57
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAY,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAY,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAmCD,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,SAAS;QAShC,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;SASxD,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;QAU1E,CAAC,kBAAkB,MAAM,SAAS,OAAO,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;WAUtE,CAAC,kBAAkB,MAAM,YAAY,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;EASzE;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB;;YAYxC,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;kBAOlE,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;aAU/D,CAAC,kBACR,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;YAaC,CAAC,kBACP,MAAM,QACN,OAAO,YACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;kBAaO,CAAC,kBACb,MAAM,UACJ,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,YAC5D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;eAaI,CAAC,kBAAkB,MAAM,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;EAQ5F;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAI9D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAWhF;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAa/D"}
|
package/dist/lib/api-client.js
CHANGED
|
@@ -3,6 +3,40 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import got from "got";
|
|
5
5
|
import { ApiError, OpenAPI } from "@spec0/sdk-public-platform";
|
|
6
|
+
import { httpTimeoutMs, httpTraceEnabled, traceRequest, traceResponse } from "./http-trace.js";
|
|
7
|
+
/**
|
|
8
|
+
* Shared `got` instance with `--verbose` tracing hooks. All raw HTTP goes
|
|
9
|
+
* through this so a single `setHttpTrace(true)` makes every request visible on
|
|
10
|
+
* stderr (the SDK is traced separately via the global `fetch` wrapper).
|
|
11
|
+
*/
|
|
12
|
+
const http = got.extend({
|
|
13
|
+
// Fail fast on a hung connection rather than blocking the CLI forever.
|
|
14
|
+
// got's TimeoutError carries code ETIMEDOUT, which classifies to NETWORK_ERROR.
|
|
15
|
+
timeout: { request: httpTimeoutMs() },
|
|
16
|
+
hooks: {
|
|
17
|
+
beforeRequest: [
|
|
18
|
+
(options) => {
|
|
19
|
+
if (options.url)
|
|
20
|
+
traceRequest(options.method, options.url.toString());
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
afterResponse: [
|
|
24
|
+
(response) => {
|
|
25
|
+
traceResponse(response.statusCode, response.requestUrl.toString());
|
|
26
|
+
return response;
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
beforeError: [
|
|
30
|
+
(error) => {
|
|
31
|
+
if (httpTraceEnabled()) {
|
|
32
|
+
const url = (error.response?.requestUrl ?? error.options?.url)?.toString() ?? "";
|
|
33
|
+
traceResponse(error.response?.statusCode ?? 0, url);
|
|
34
|
+
}
|
|
35
|
+
return error;
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
});
|
|
6
40
|
function orgHeaders(orgId, extra) {
|
|
7
41
|
return { "X-Org-Id": orgId, ...extra };
|
|
8
42
|
}
|
|
@@ -15,7 +49,7 @@ export function createApiClient(org) {
|
|
|
15
49
|
};
|
|
16
50
|
return {
|
|
17
51
|
async get(path, options) {
|
|
18
|
-
const res = await
|
|
52
|
+
const res = await http.get(`${baseUrl}${path}`, {
|
|
19
53
|
...options,
|
|
20
54
|
headers: { ...headers, ...options?.headers },
|
|
21
55
|
responseType: "json",
|
|
@@ -23,7 +57,7 @@ export function createApiClient(org) {
|
|
|
23
57
|
return res.body;
|
|
24
58
|
},
|
|
25
59
|
async post(path, body, options) {
|
|
26
|
-
const res = await
|
|
60
|
+
const res = await http.post(`${baseUrl}${path}`, {
|
|
27
61
|
...options,
|
|
28
62
|
json: body,
|
|
29
63
|
headers: { ...headers, ...options?.headers },
|
|
@@ -32,7 +66,7 @@ export function createApiClient(org) {
|
|
|
32
66
|
return res.body;
|
|
33
67
|
},
|
|
34
68
|
async put(path, body, options) {
|
|
35
|
-
const res = await
|
|
69
|
+
const res = await http.put(`${baseUrl}${path}`, {
|
|
36
70
|
...options,
|
|
37
71
|
json: body,
|
|
38
72
|
headers: { ...headers, ...options?.headers },
|
|
@@ -41,7 +75,7 @@ export function createApiClient(org) {
|
|
|
41
75
|
return res.body;
|
|
42
76
|
},
|
|
43
77
|
async delete(path, options) {
|
|
44
|
-
const res = await
|
|
78
|
+
const res = await http.delete(`${baseUrl}${path}`, {
|
|
45
79
|
...options,
|
|
46
80
|
headers: { ...headers, ...options?.headers },
|
|
47
81
|
responseType: "json",
|
|
@@ -63,14 +97,14 @@ export function createOrgApiClient(ctx) {
|
|
|
63
97
|
return {
|
|
64
98
|
baseUrl,
|
|
65
99
|
async getJson(path, headers) {
|
|
66
|
-
const res = await
|
|
100
|
+
const res = await http.get(`${baseUrl}${path}`, {
|
|
67
101
|
headers: { ...baseHeaders, Accept: "application/json", ...headers },
|
|
68
102
|
responseType: "json",
|
|
69
103
|
});
|
|
70
104
|
return res.body;
|
|
71
105
|
},
|
|
72
106
|
async getText(path, headers) {
|
|
73
|
-
const res = await
|
|
107
|
+
const res = await http.get(`${baseUrl}${path}`, {
|
|
74
108
|
headers: {
|
|
75
109
|
...baseHeaders,
|
|
76
110
|
Accept: "application/yaml, application/json, text/plain, */*",
|
|
@@ -80,7 +114,7 @@ export function createOrgApiClient(ctx) {
|
|
|
80
114
|
return res.body;
|
|
81
115
|
},
|
|
82
116
|
async postJson(path, body, headers) {
|
|
83
|
-
const res = await
|
|
117
|
+
const res = await http.post(`${baseUrl}${path}`, {
|
|
84
118
|
json: body,
|
|
85
119
|
headers: {
|
|
86
120
|
...baseHeaders,
|
|
@@ -93,7 +127,7 @@ export function createOrgApiClient(ctx) {
|
|
|
93
127
|
return res.body;
|
|
94
128
|
},
|
|
95
129
|
async putJson(path, body, headers) {
|
|
96
|
-
const res = await
|
|
130
|
+
const res = await http.put(`${baseUrl}${path}`, {
|
|
97
131
|
json: body,
|
|
98
132
|
headers: {
|
|
99
133
|
...baseHeaders,
|
|
@@ -111,7 +145,7 @@ export function createOrgApiClient(ctx) {
|
|
|
111
145
|
const blob = new Blob([content], { type: "application/octet-stream" });
|
|
112
146
|
form.append(name, blob, filename);
|
|
113
147
|
}
|
|
114
|
-
const res = await
|
|
148
|
+
const res = await http.post(`${baseUrl}${path}`, {
|
|
115
149
|
body: form,
|
|
116
150
|
headers: { ...baseHeaders, Accept: "application/json", ...headers },
|
|
117
151
|
responseType: "json",
|
|
@@ -119,7 +153,7 @@ export function createOrgApiClient(ctx) {
|
|
|
119
153
|
return res.body;
|
|
120
154
|
},
|
|
121
155
|
async deleteJson(path, headers) {
|
|
122
|
-
const res = await
|
|
156
|
+
const res = await http.delete(`${baseUrl}${path}`, {
|
|
123
157
|
headers: { ...baseHeaders, Accept: "application/json", ...headers },
|
|
124
158
|
responseType: "json",
|
|
125
159
|
});
|
|
@@ -158,6 +192,20 @@ export function errorStatusCode(err) {
|
|
|
158
192
|
return err.status;
|
|
159
193
|
return err?.response?.statusCode;
|
|
160
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Extract the request method + final URL from an error, for diagnostics.
|
|
197
|
+
* Handles both SDK `ApiError` (`err.url` / `err.request.method`) and `got`
|
|
198
|
+
* errors (`err.response.requestUrl` / `err.options.method`). Returns
|
|
199
|
+
* `undefined` fields when nothing is available.
|
|
200
|
+
*/
|
|
201
|
+
export function errorRequestInfo(err) {
|
|
202
|
+
if (err instanceof ApiError) {
|
|
203
|
+
return { method: err.request?.method, url: err.url };
|
|
204
|
+
}
|
|
205
|
+
const e = err;
|
|
206
|
+
const rawUrl = e?.response?.requestUrl ?? e?.request?.requestUrl;
|
|
207
|
+
return { method: e?.options?.method, url: rawUrl ? String(rawUrl) : undefined };
|
|
208
|
+
}
|
|
161
209
|
export function is401(err) {
|
|
162
210
|
return errorStatusCode(err) === 401;
|
|
163
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAqB,MAAM,KAAK,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -18,6 +18,17 @@ export declare function getConfig(): Spec0Config;
|
|
|
18
18
|
export declare function getDefaultOrgId(): string | null;
|
|
19
19
|
export declare function getOrgConfig(orgId: string): OrgConfig | undefined;
|
|
20
20
|
export declare function setOrgConfig(orgId: string, config: OrgConfig): void;
|
|
21
|
+
/**
|
|
22
|
+
* Replace the entire org set with a single org and make it active, atomically.
|
|
23
|
+
*
|
|
24
|
+
* The CLI is single-org: `auth login` should always point every subsequent
|
|
25
|
+
* command at the org you just authenticated, with no stale entries left behind
|
|
26
|
+
* to silently win as the default. (A previous default org pointing at a dead
|
|
27
|
+
* `localhost` API base is exactly how a fresh login could appear to succeed yet
|
|
28
|
+
* every command still failed.) This clears any previously stored orgs, writes
|
|
29
|
+
* the one passed in, and sets it as the default in one step.
|
|
30
|
+
*/
|
|
31
|
+
export declare function replaceSoleOrg(orgId: string, config: OrgConfig): void;
|
|
21
32
|
export declare function setDefaultOrg(orgId: string): void;
|
|
22
33
|
export declare function clearConfig(): void;
|
|
23
34
|
export declare function getConfigPath(): string;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC;AAqBD,wBAAgB,SAAS,IAAI,WAAW,CAOvC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEjE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAEnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACjC;AAqBD,wBAAgB,SAAS,IAAI,WAAW,CAOvC;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEjE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAGrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/dist/lib/config.js
CHANGED
|
@@ -37,6 +37,20 @@ export function getOrgConfig(orgId) {
|
|
|
37
37
|
export function setOrgConfig(orgId, config) {
|
|
38
38
|
store.set(`orgs.${orgId}`, config);
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Replace the entire org set with a single org and make it active, atomically.
|
|
42
|
+
*
|
|
43
|
+
* The CLI is single-org: `auth login` should always point every subsequent
|
|
44
|
+
* command at the org you just authenticated, with no stale entries left behind
|
|
45
|
+
* to silently win as the default. (A previous default org pointing at a dead
|
|
46
|
+
* `localhost` API base is exactly how a fresh login could appear to succeed yet
|
|
47
|
+
* every command still failed.) This clears any previously stored orgs, writes
|
|
48
|
+
* the one passed in, and sets it as the default in one step.
|
|
49
|
+
*/
|
|
50
|
+
export function replaceSoleOrg(orgId, config) {
|
|
51
|
+
store.set("orgs", { [orgId]: config });
|
|
52
|
+
store.set("defaultOrg", orgId);
|
|
53
|
+
}
|
|
40
54
|
export function setDefaultOrg(orgId) {
|
|
41
55
|
store.set("defaultOrg", orgId);
|
|
42
56
|
}
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;IACvC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IACvD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;CAC7B,CAAC;AAEX,MAAM,KAAK,GAAG,IAAI,IAAI,CAAc;IAClC,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,EAAE;KACT;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;QACnC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;QACvC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAAiB;IAC3D,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAgBxB,8EAA8E;AAC9E,6EAA6E;AAC7E,MAAM,OAAO,GAAG;IACd,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;IACvC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IACvD,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;CAC7B,CAAC;AAEX,MAAM,KAAK,GAAG,IAAI,IAAI,CAAc;IAClC,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,EAAE;KACT;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;QAChC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;QACnC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;QACvC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAAiB;IAC3D,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,MAAiB;IAC7D,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One place to turn a failed platform call into a diagnosable error.
|
|
3
|
+
*
|
|
4
|
+
* Before this, command catch-blocks printed a bare `(err as Error).message` —
|
|
5
|
+
* e.g. `api list failed: Not Found` — with no HTTP status, no URL, and no hint
|
|
6
|
+
* about which org/base was targeted. A developer literally could not tell what
|
|
7
|
+
* went wrong. `failApi` classifies the error into a stable exit code and surfaces:
|
|
8
|
+
*
|
|
9
|
+
* - the server's own message (from the response body when present),
|
|
10
|
+
* - the HTTP status (or a network label when the request never completed),
|
|
11
|
+
* - the method + URL that failed,
|
|
12
|
+
* - the active org + API base, and
|
|
13
|
+
* - a code-specific hint.
|
|
14
|
+
*
|
|
15
|
+
* In `--output json|yaml` mode the request/org context rides in `details` so the
|
|
16
|
+
* document stays a single clean object; in text mode it is appended to the
|
|
17
|
+
* message so a human sees it inline.
|
|
18
|
+
*/
|
|
19
|
+
import { type ExitCodeValue } from "./exit-codes.js";
|
|
20
|
+
import { type OutputContext } from "./output/index.js";
|
|
21
|
+
export interface ApiErrorContext {
|
|
22
|
+
/** Short action label, e.g. "api list", "mock create". */
|
|
23
|
+
action: string;
|
|
24
|
+
/** Active org name or id, for diagnostics. */
|
|
25
|
+
org?: string;
|
|
26
|
+
/** API base the call targeted, for diagnostics. */
|
|
27
|
+
apiUrl?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ApiErrorReport {
|
|
30
|
+
code: ExitCodeValue;
|
|
31
|
+
/** Message for `fail()` — multi-line (with request/org) only in text mode. */
|
|
32
|
+
message: string;
|
|
33
|
+
hint?: string;
|
|
34
|
+
details: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Pure classification of a failed platform call into an exit code, message,
|
|
38
|
+
* hint and structured details. Separated from `failApi` so it can be unit
|
|
39
|
+
* tested without `process.exit`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildApiError(err: unknown, info: ApiErrorContext, format?: OutputContext["format"]): ApiErrorReport;
|
|
42
|
+
/**
|
|
43
|
+
* Report a failed platform call and exit. Never returns.
|
|
44
|
+
*/
|
|
45
|
+
export declare function failApi(ctx: OutputContext, err: unknown, info: ApiErrorContext): never;
|
|
46
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqCD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAC;IACpB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,aAAa,CAAC,QAAQ,CAAU,GACvC,cAAc,CA+BhB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,KAAK,CAGtF"}
|