@spec0/cli 0.4.1 → 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.
Files changed (104) hide show
  1. package/README.md +3 -2
  2. package/dist/commands/api/changelog.d.ts.map +1 -1
  3. package/dist/commands/api/changelog.js +10 -7
  4. package/dist/commands/api/changelog.js.map +1 -1
  5. package/dist/commands/api/delete.d.ts +10 -0
  6. package/dist/commands/api/delete.d.ts.map +1 -0
  7. package/dist/commands/api/delete.js +72 -0
  8. package/dist/commands/api/delete.js.map +1 -0
  9. package/dist/commands/api/index.d.ts.map +1 -1
  10. package/dist/commands/api/index.js +2 -0
  11. package/dist/commands/api/index.js.map +1 -1
  12. package/dist/commands/api/list.d.ts.map +1 -1
  13. package/dist/commands/api/list.js +10 -7
  14. package/dist/commands/api/list.js.map +1 -1
  15. package/dist/commands/api/show.d.ts +5 -2
  16. package/dist/commands/api/show.d.ts.map +1 -1
  17. package/dist/commands/api/show.js +80 -18
  18. package/dist/commands/api/show.js.map +1 -1
  19. package/dist/commands/auth.d.ts +5 -1
  20. package/dist/commands/auth.d.ts.map +1 -1
  21. package/dist/commands/auth.js +49 -31
  22. package/dist/commands/auth.js.map +1 -1
  23. package/dist/commands/ci/generate.d.ts.map +1 -1
  24. package/dist/commands/ci/generate.js +10 -7
  25. package/dist/commands/ci/generate.js.map +1 -1
  26. package/dist/commands/log.d.ts.map +1 -1
  27. package/dist/commands/log.js +10 -5
  28. package/dist/commands/log.js.map +1 -1
  29. package/dist/commands/mcp.d.ts +7 -1
  30. package/dist/commands/mcp.d.ts.map +1 -1
  31. package/dist/commands/mcp.js +135 -29
  32. package/dist/commands/mcp.js.map +1 -1
  33. package/dist/commands/mock/create.d.ts.map +1 -1
  34. package/dist/commands/mock/create.js +10 -7
  35. package/dist/commands/mock/create.js.map +1 -1
  36. package/dist/commands/mock/delete.d.ts +11 -0
  37. package/dist/commands/mock/delete.d.ts.map +1 -0
  38. package/dist/commands/mock/delete.js +65 -0
  39. package/dist/commands/mock/delete.js.map +1 -0
  40. package/dist/commands/mock/index.d.ts.map +1 -1
  41. package/dist/commands/mock/index.js +2 -0
  42. package/dist/commands/mock/index.js.map +1 -1
  43. package/dist/commands/mock/list.d.ts.map +1 -1
  44. package/dist/commands/mock/list.js +10 -7
  45. package/dist/commands/mock/list.js.map +1 -1
  46. package/dist/commands/mock/show.d.ts.map +1 -1
  47. package/dist/commands/mock/show.js +10 -7
  48. package/dist/commands/mock/show.js.map +1 -1
  49. package/dist/commands/mock/url.d.ts.map +1 -1
  50. package/dist/commands/mock/url.js +12 -5
  51. package/dist/commands/mock/url.js.map +1 -1
  52. package/dist/commands/publish.js +2 -2
  53. package/dist/commands/publish.js.map +1 -1
  54. package/dist/commands/pull.d.ts.map +1 -1
  55. package/dist/commands/pull.js +12 -5
  56. package/dist/commands/pull.js.map +1 -1
  57. package/dist/commands/push.d.ts.map +1 -1
  58. package/dist/commands/push.js +5 -0
  59. package/dist/commands/push.js.map +1 -1
  60. package/dist/commands/search.d.ts.map +1 -1
  61. package/dist/commands/search.js +13 -9
  62. package/dist/commands/search.js.map +1 -1
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +10 -5
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/sync-status.d.ts.map +1 -1
  67. package/dist/commands/sync-status.js +10 -7
  68. package/dist/commands/sync-status.js.map +1 -1
  69. package/dist/commands/team/create.d.ts.map +1 -1
  70. package/dist/commands/team/create.js +11 -10
  71. package/dist/commands/team/create.js.map +1 -1
  72. package/dist/commands/team/delete.d.ts.map +1 -1
  73. package/dist/commands/team/delete.js +11 -8
  74. package/dist/commands/team/delete.js.map +1 -1
  75. package/dist/commands/team/list.d.ts.map +1 -1
  76. package/dist/commands/team/list.js +11 -9
  77. package/dist/commands/team/list.js.map +1 -1
  78. package/dist/index.js +4 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/lib/api-client.d.ts +12 -2
  81. package/dist/lib/api-client.d.ts.map +1 -1
  82. package/dist/lib/api-client.js +65 -14
  83. package/dist/lib/api-client.js.map +1 -1
  84. package/dist/lib/config.d.ts +11 -0
  85. package/dist/lib/config.d.ts.map +1 -1
  86. package/dist/lib/config.js +14 -0
  87. package/dist/lib/config.js.map +1 -1
  88. package/dist/lib/errors.d.ts +46 -0
  89. package/dist/lib/errors.d.ts.map +1 -0
  90. package/dist/lib/errors.js +99 -0
  91. package/dist/lib/errors.js.map +1 -0
  92. package/dist/lib/http-trace.d.ts +37 -0
  93. package/dist/lib/http-trace.d.ts.map +1 -0
  94. package/dist/lib/http-trace.js +101 -0
  95. package/dist/lib/http-trace.js.map +1 -0
  96. package/dist/lib/output.d.ts +4 -0
  97. package/dist/lib/output.d.ts.map +1 -1
  98. package/dist/lib/output.js +8 -0
  99. package/dist/lib/output.js.map +1 -1
  100. package/dist/lib/platform-defaults.d.ts +29 -4
  101. package/dist/lib/platform-defaults.d.ts.map +1 -1
  102. package/dist/lib/platform-defaults.js +34 -4
  103. package/dist/lib/platform-defaults.js.map +1 -1
  104. package/package.json +6 -6
@@ -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, errorStatusCode, is401, extractErrorMessage, } from "../../lib/api-client.js";
8
+ import { configureSdkAuth } from "../../lib/api-client.js";
9
9
  import { requireOrgContext } from "../../lib/auth-context.js";
10
- import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
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
- if (is401(err)) {
46
- fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
47
- hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
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,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,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,KAAK,EAAE,IAAY,EAAE,IAA4D,EAAE,EAAE;QAC3F,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE1C,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,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,EAAE;oBAC/D,IAAI,EAAE,gDAAgD;iBACvD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,OAAO,CAAC;YAC/D,IAAI,CACF,MAAM,EACN,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EACzD,uBAAuB,GAAG,EAAE,CAC7B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
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;AAkBpC,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,QA4DtD"}
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, is401, extractErrorMessage, } from "../../lib/api-client.js";
13
+ import { configureSdkAuth, errorStatusCode, extractErrorMessage } from "../../lib/api-client.js";
14
14
  import { requireOrgContext } from "../../lib/auth-context.js";
15
- import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
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
- fail(outCtx, status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC, `team delete failed: ${msg}`);
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":"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"}
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;AASpC,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,QA0CpD"}
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, errorStatusCode, is401 } from "../../lib/api-client.js";
7
+ import { configureSdkAuth } from "../../lib/api-client.js";
8
8
  import { requireOrgContext } from "../../lib/auth-context.js";
9
- import { ExitCode, exitCodeForHttpStatus } from "../../lib/exit-codes.js";
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
- if (is401(err)) {
40
- fail(outCtx, ExitCode.AUTH_MISSING, "Token invalid or expired.", {
41
- hint: "Run 'spec0 auth login' or refresh SPEC0_TOKEN.",
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,eAAe,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,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,KAAK,EAAE,IAAsC,EAAE,EAAE;QACvD,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,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,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,2BAA2B,EAAE;oBAC/D,IAAI,EAAE,gDAAgD;iBACvD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CACF,MAAM,EACN,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EACzD,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -35,8 +35,8 @@ export { orgHeaders };
35
35
  * resolved org context. The SDK's request builder formats URLs as
36
36
  * `OpenAPI.BASE + <service-path>`, where service paths look like
37
37
  * `/api/v1/public/apis`. The CLI's stored `apiUrl` is the platform host root
38
- * with no context path, so we append `/api-management` here to match the legacy
39
- * raw HTTP call sites (which prefixed `/api-management/api/v1/public/apis`).
38
+ * and the SDK already carries context-path-less service paths, so `OpenAPI.BASE`
39
+ * is the bare host with no suffix appended.
40
40
  *
41
41
  * `OpenAPI.TOKEN` is set to the org API key — the SDK adds the
42
42
  * `Authorization: Bearer <token>` header automatically. `X-Org-Id` rides on
@@ -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;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,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;;YASxC,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,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"}
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"}
@@ -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 got.get(`${baseUrl}${path}`, {
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 got.post(`${baseUrl}${path}`, {
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 got.put(`${baseUrl}${path}`, {
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 got.delete(`${baseUrl}${path}`, {
78
+ const res = await http.delete(`${baseUrl}${path}`, {
45
79
  ...options,
46
80
  headers: { ...headers, ...options?.headers },
47
81
  responseType: "json",
@@ -52,7 +86,10 @@ export function createApiClient(org) {
52
86
  }
53
87
  /** Org API key client (discovery, registry, CLI workspace). */
54
88
  export function createOrgApiClient(ctx) {
55
- const baseUrl = ctx.apiUrl;
89
+ // The platform API is served at the host root — the same base `configureSdkAuth()`
90
+ // gives the SDK. Call sites supply their own service path (e.g. `api show`), so we
91
+ // only normalize a trailing slash here and never append a context path.
92
+ const baseUrl = ctx.apiUrl.replace(/\/$/, "");
56
93
  const baseHeaders = {
57
94
  Authorization: `Bearer ${ctx.apiKey}`,
58
95
  "X-Org-Id": ctx.orgId,
@@ -60,14 +97,14 @@ export function createOrgApiClient(ctx) {
60
97
  return {
61
98
  baseUrl,
62
99
  async getJson(path, headers) {
63
- const res = await got.get(`${baseUrl}${path}`, {
100
+ const res = await http.get(`${baseUrl}${path}`, {
64
101
  headers: { ...baseHeaders, Accept: "application/json", ...headers },
65
102
  responseType: "json",
66
103
  });
67
104
  return res.body;
68
105
  },
69
106
  async getText(path, headers) {
70
- const res = await got.get(`${baseUrl}${path}`, {
107
+ const res = await http.get(`${baseUrl}${path}`, {
71
108
  headers: {
72
109
  ...baseHeaders,
73
110
  Accept: "application/yaml, application/json, text/plain, */*",
@@ -77,7 +114,7 @@ export function createOrgApiClient(ctx) {
77
114
  return res.body;
78
115
  },
79
116
  async postJson(path, body, headers) {
80
- const res = await got.post(`${baseUrl}${path}`, {
117
+ const res = await http.post(`${baseUrl}${path}`, {
81
118
  json: body,
82
119
  headers: {
83
120
  ...baseHeaders,
@@ -90,7 +127,7 @@ export function createOrgApiClient(ctx) {
90
127
  return res.body;
91
128
  },
92
129
  async putJson(path, body, headers) {
93
- const res = await got.put(`${baseUrl}${path}`, {
130
+ const res = await http.put(`${baseUrl}${path}`, {
94
131
  json: body,
95
132
  headers: {
96
133
  ...baseHeaders,
@@ -108,7 +145,7 @@ export function createOrgApiClient(ctx) {
108
145
  const blob = new Blob([content], { type: "application/octet-stream" });
109
146
  form.append(name, blob, filename);
110
147
  }
111
- const res = await got.post(`${baseUrl}${path}`, {
148
+ const res = await http.post(`${baseUrl}${path}`, {
112
149
  body: form,
113
150
  headers: { ...baseHeaders, Accept: "application/json", ...headers },
114
151
  responseType: "json",
@@ -116,7 +153,7 @@ export function createOrgApiClient(ctx) {
116
153
  return res.body;
117
154
  },
118
155
  async deleteJson(path, headers) {
119
- const res = await got.delete(`${baseUrl}${path}`, {
156
+ const res = await http.delete(`${baseUrl}${path}`, {
120
157
  headers: { ...baseHeaders, Accept: "application/json", ...headers },
121
158
  responseType: "json",
122
159
  });
@@ -130,8 +167,8 @@ export { orgHeaders };
130
167
  * resolved org context. The SDK's request builder formats URLs as
131
168
  * `OpenAPI.BASE + <service-path>`, where service paths look like
132
169
  * `/api/v1/public/apis`. The CLI's stored `apiUrl` is the platform host root
133
- * with no context path, so we append `/api-management` here to match the legacy
134
- * raw HTTP call sites (which prefixed `/api-management/api/v1/public/apis`).
170
+ * and the SDK already carries context-path-less service paths, so `OpenAPI.BASE`
171
+ * is the bare host with no suffix appended.
135
172
  *
136
173
  * `OpenAPI.TOKEN` is set to the org API key — the SDK adds the
137
174
  * `Authorization: Bearer <token>` header automatically. `X-Org-Id` rides on
@@ -141,7 +178,7 @@ export { orgHeaders };
141
178
  * idempotent and safe to invoke multiple times in the same process.
142
179
  */
143
180
  export function configureSdkAuth(ctx) {
144
- OpenAPI.BASE = `${ctx.apiUrl}/api-management`;
181
+ OpenAPI.BASE = ctx.apiUrl;
145
182
  OpenAPI.TOKEN = ctx.apiKey;
146
183
  OpenAPI.HEADERS = { "X-Org-Id": ctx.orgId };
147
184
  }
@@ -155,6 +192,20 @@ export function errorStatusCode(err) {
155
192
  return err.status;
156
193
  return err?.response?.statusCode;
157
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
+ }
158
209
  export function is401(err) {
159
210
  return errorStatusCode(err) === 401;
160
211
  }
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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"}
@@ -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
  }
@@ -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"}