@spec0/cli 0.2.0 → 0.4.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/dist/commands/api/changelog.d.ts +5 -1
- package/dist/commands/api/changelog.d.ts.map +1 -1
- package/dist/commands/api/changelog.js +23 -15
- package/dist/commands/api/changelog.js.map +1 -1
- package/dist/commands/api/list.d.ts +4 -3
- package/dist/commands/api/list.d.ts.map +1 -1
- package/dist/commands/api/list.js +10 -17
- 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 +7 -2
- package/dist/commands/api/show.js.map +1 -1
- package/dist/commands/ci/generate.d.ts +4 -3
- package/dist/commands/ci/generate.d.ts.map +1 -1
- package/dist/commands/ci/generate.js +12 -12
- package/dist/commands/ci/generate.js.map +1 -1
- package/dist/commands/diff.d.ts +5 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +28 -15
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/lint.d.ts +5 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +11 -6
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/log.d.ts +4 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +11 -5
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/mock/create.d.ts +6 -7
- package/dist/commands/mock/create.d.ts.map +1 -1
- package/dist/commands/mock/create.js +15 -10
- package/dist/commands/mock/create.js.map +1 -1
- package/dist/commands/mock/list.d.ts +2 -1
- package/dist/commands/mock/list.d.ts.map +1 -1
- package/dist/commands/mock/list.js +6 -4
- package/dist/commands/mock/list.js.map +1 -1
- package/dist/commands/mock/show.d.ts +4 -2
- package/dist/commands/mock/show.d.ts.map +1 -1
- package/dist/commands/mock/show.js +8 -5
- package/dist/commands/mock/show.js.map +1 -1
- package/dist/commands/mock/url.d.ts +3 -0
- package/dist/commands/mock/url.d.ts.map +1 -1
- package/dist/commands/mock/url.js +7 -3
- package/dist/commands/mock/url.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +40 -45
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/pull.d.ts +9 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +22 -7
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +7 -6
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/search.d.ts +4 -1
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +15 -9
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/status.d.ts +5 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +14 -17
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync-status.d.ts +3 -2
- package/dist/commands/sync-status.d.ts.map +1 -1
- package/dist/commands/sync-status.js +12 -11
- package/dist/commands/sync-status.js.map +1 -1
- package/dist/commands/team/create.d.ts +9 -0
- package/dist/commands/team/create.d.ts.map +1 -0
- package/dist/commands/team/create.js +56 -0
- package/dist/commands/team/create.js.map +1 -0
- package/dist/commands/team/delete.d.ts +13 -0
- package/dist/commands/team/delete.d.ts.map +1 -0
- package/dist/commands/team/delete.js +68 -0
- package/dist/commands/team/delete.js.map +1 -0
- package/dist/commands/team/index.d.ts +10 -0
- package/dist/commands/team/index.d.ts.map +1 -0
- package/dist/commands/team/index.js +17 -0
- package/dist/commands/team/index.js.map +1 -0
- package/dist/commands/team/list.d.ts +8 -0
- package/dist/commands/team/list.d.ts.map +1 -0
- package/dist/commands/team/list.js +49 -0
- package/dist/commands/team/list.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +27 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +45 -4
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/ref-resolver.d.ts +8 -10
- package/dist/lib/ref-resolver.d.ts.map +1 -1
- package/dist/lib/ref-resolver.js +10 -6
- package/dist/lib/ref-resolver.js.map +1 -1
- package/package.json +7 -8
- package/dist/types.d.ts +0 -664
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
* spec0 api changelog <ref> — show what changed between published versions.
|
|
3
3
|
*
|
|
4
4
|
* Defaults to "latest vs previous". Pass --from / --to to diff specific tags.
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* Migrated to @spec0/sdk-public-platform:
|
|
7
|
+
* - apiId resolution → resolveApiId (now uses PublicApisService.listTeamApis)
|
|
8
|
+
* - version-to-version diff → PublicSpecsService.getVersionDiff
|
|
9
|
+
* - version listing fallback → PublicRegistryService.listPublicSpecVersions
|
|
6
10
|
*/
|
|
7
11
|
import { Command } from "commander";
|
|
8
12
|
export declare function registerApiChangelogCommand(api: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../src/commands/api/changelog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../src/commands/api/changelog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,QA0EvD"}
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
* spec0 api changelog <ref> — show what changed between published versions.
|
|
3
3
|
*
|
|
4
4
|
* Defaults to "latest vs previous". Pass --from / --to to diff specific tags.
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
|
+
* Migrated to @spec0/sdk-public-platform:
|
|
7
|
+
* - apiId resolution → resolveApiId (now uses PublicApisService.listTeamApis)
|
|
8
|
+
* - version-to-version diff → PublicSpecsService.getVersionDiff
|
|
9
|
+
* - version listing fallback → PublicRegistryService.listPublicSpecVersions
|
|
6
10
|
*/
|
|
7
11
|
import chalk from "chalk";
|
|
8
|
-
import {
|
|
12
|
+
import { PublicRegistryService, PublicSpecsService } from "@spec0/sdk-public-platform";
|
|
13
|
+
import { configureSdkAuth, is401 } from "../../lib/api-client.js";
|
|
9
14
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
10
15
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
11
16
|
import { emit, fail, resolveOutputContext, } from "../../lib/output/index.js";
|
|
@@ -41,20 +46,22 @@ export function registerApiChangelogCommand(api) {
|
|
|
41
46
|
catch (e) {
|
|
42
47
|
fail(outCtx, ExitCode.USAGE, e.message);
|
|
43
48
|
}
|
|
44
|
-
|
|
49
|
+
configureSdkAuth(authCtx);
|
|
45
50
|
try {
|
|
46
|
-
const apiId = await resolveApiId(
|
|
47
|
-
const { fromTag, toTag, apiName } = await pickTags(outCtx,
|
|
48
|
-
const
|
|
49
|
-
|
|
51
|
+
const apiId = await resolveApiId(parsed);
|
|
52
|
+
const { fromTag, toTag, apiName } = await pickTags(outCtx, apiId, parsed, opts);
|
|
53
|
+
const res = await PublicSpecsService.getVersionDiff({
|
|
54
|
+
apiId,
|
|
55
|
+
fromTag,
|
|
56
|
+
toTag,
|
|
57
|
+
});
|
|
50
58
|
const payload = {
|
|
51
59
|
apiName,
|
|
52
60
|
fromTag,
|
|
53
61
|
toTag,
|
|
54
|
-
hasBreakingChanges:
|
|
62
|
+
hasBreakingChanges: (res.breakingChanges?.length ?? 0) > 0,
|
|
55
63
|
changes: normaliseChanges(res),
|
|
56
64
|
};
|
|
57
|
-
// Format `markdown` is treated as `text` with a markdown body.
|
|
58
65
|
if ((opts.output ?? "").toLowerCase() === "markdown") {
|
|
59
66
|
process.stdout.write(renderChangelogMarkdown(payload) + "\n");
|
|
60
67
|
return;
|
|
@@ -76,18 +83,19 @@ export function registerApiChangelogCommand(api) {
|
|
|
76
83
|
}
|
|
77
84
|
});
|
|
78
85
|
}
|
|
79
|
-
async function pickTags(ctx,
|
|
86
|
+
async function pickTags(ctx, apiId, parsed, opts) {
|
|
80
87
|
if (opts.from && opts.to) {
|
|
81
88
|
const apiName = parsed.kind === "name" ? parsed.api : apiId;
|
|
82
89
|
return { fromTag: opts.from, toTag: opts.to, apiName };
|
|
83
90
|
}
|
|
84
|
-
// Fall back to the registry to pull the version list. Need org slug + api name
|
|
85
|
-
// for the registry path.
|
|
91
|
+
// Fall back to the registry to pull the version list. Need org slug + api name.
|
|
86
92
|
if (parsed.kind !== "name" || !parsed.org) {
|
|
87
93
|
fail(ctx, ExitCode.USAGE, "Pass --from <tag> --to <tag>, or use a ref of the form '<org>/<api>' so we can list versions.");
|
|
88
94
|
}
|
|
89
|
-
const
|
|
90
|
-
|
|
95
|
+
const versions = await PublicRegistryService.listPublicSpecVersions({
|
|
96
|
+
orgSlug: parsed.org,
|
|
97
|
+
apiName: parsed.api,
|
|
98
|
+
});
|
|
91
99
|
if (versions.length < 2) {
|
|
92
100
|
fail(ctx, ExitCode.NOT_FOUND, `Need at least two published versions to diff. ${parsed.api} has ${versions.length}.`);
|
|
93
101
|
}
|
|
@@ -100,7 +108,7 @@ async function pickTags(ctx, client, apiId, parsed, opts) {
|
|
|
100
108
|
return { fromTag, toTag, apiName: parsed.api };
|
|
101
109
|
}
|
|
102
110
|
function normaliseChanges(res) {
|
|
103
|
-
const list = res.breakingChanges ??
|
|
111
|
+
const list = res.breakingChanges ?? [];
|
|
104
112
|
return list.map((c) => ({
|
|
105
113
|
id: String(c.id ?? c.text ?? ""),
|
|
106
114
|
level: String(c.level ?? "info"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../../src/commands/api/changelog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../../src/commands/api/changelog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* spec0 api list — catalogue view of APIs in the org.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Migrated to PublicApisService.listTeamApis (`/api/v1/public/apis/team`).
|
|
5
|
+
* The V1 surface is leaner than the legacy `/apis/summary` (no operation /
|
|
6
|
+
* environment / subscriber counts and no `status` field). The `--status`
|
|
7
|
+
* filter and those columns are dropped accordingly.
|
|
7
8
|
*/
|
|
8
9
|
import { Command } from "commander";
|
|
9
10
|
export declare function registerApiListCommand(api: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/api/list.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/api/list.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,QA0ClD"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* spec0 api list — catalogue view of APIs in the org.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Migrated to PublicApisService.listTeamApis (`/api/v1/public/apis/team`).
|
|
5
|
+
* The V1 surface is leaner than the legacy `/apis/summary` (no operation /
|
|
6
|
+
* environment / subscriber counts and no `status` field). The `--status`
|
|
7
|
+
* filter and those columns are dropped accordingly.
|
|
7
8
|
*/
|
|
8
|
-
import {
|
|
9
|
+
import { PublicApisService } from "@spec0/sdk-public-platform";
|
|
10
|
+
import { configureSdkAuth, is401 } from "../../lib/api-client.js";
|
|
9
11
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
10
12
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
11
13
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
@@ -15,7 +17,6 @@ export function registerApiListCommand(api) {
|
|
|
15
17
|
.command("list")
|
|
16
18
|
.description("List APIs in your organisation (catalogue view).")
|
|
17
19
|
.option("--team <team>", "Filter by team name (case-insensitive)")
|
|
18
|
-
.option("--status <status>", "Filter by status (e.g. ACTIVE, DEPRECATED)")
|
|
19
20
|
.option("--search <query>", "Filter by name substring (case-insensitive)")
|
|
20
21
|
.option("--org <uuid>", "Org id override")
|
|
21
22
|
.option("--output <format>", "Output format: text, json, or yaml (default: text)")
|
|
@@ -30,11 +31,10 @@ export function registerApiListCommand(api) {
|
|
|
30
31
|
hint: "Set SPEC0_TOKEN + SPEC0_ORG_ID, or run 'spec0 auth login'.",
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
+
configureSdkAuth(authCtx);
|
|
34
35
|
try {
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const filtered = filterApis(res.apis ?? [], opts);
|
|
36
|
+
const rows = await PublicApisService.listTeamApis();
|
|
37
|
+
const filtered = filterApis(rows, opts);
|
|
38
38
|
emit(outCtx, filtered, renderApiListText);
|
|
39
39
|
}
|
|
40
40
|
catch (err) {
|
|
@@ -53,10 +53,6 @@ function filterApis(rows, opts) {
|
|
|
53
53
|
const t = opts.team.toLowerCase();
|
|
54
54
|
out = out.filter((r) => (r.teamName ?? "").toLowerCase() === t);
|
|
55
55
|
}
|
|
56
|
-
if (opts.status) {
|
|
57
|
-
const s = opts.status.toUpperCase();
|
|
58
|
-
out = out.filter((r) => (r.status ?? "").toUpperCase() === s);
|
|
59
|
-
}
|
|
60
56
|
if (opts.search) {
|
|
61
57
|
const q = opts.search.toLowerCase();
|
|
62
58
|
out = out.filter((r) => (r.apiName ?? "").toLowerCase().includes(q));
|
|
@@ -69,11 +65,8 @@ function renderApiListText(rows) {
|
|
|
69
65
|
return renderTable(rows, [
|
|
70
66
|
{ key: "apiName", header: "Name" },
|
|
71
67
|
{ key: "version", header: "Ver" },
|
|
72
|
-
{ key: "status", header: "Status" },
|
|
73
68
|
{ key: "teamName", header: "Team" },
|
|
74
|
-
{ key: "
|
|
75
|
-
{ key: "environmentCount", header: "Envs" },
|
|
76
|
-
{ key: "subscriberCount", header: "Subs" },
|
|
69
|
+
{ key: "updatedAt", header: "Updated" },
|
|
77
70
|
]);
|
|
78
71
|
}
|
|
79
72
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/api/list.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/api/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,QA2DlD"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* accepts <org>/<api>, bare <api>, or a UUID.
|
|
6
6
|
*/
|
|
7
7
|
import chalk from "chalk";
|
|
8
|
-
import { createOrgApiClient, is401 } from "../../lib/api-client.js";
|
|
8
|
+
import { configureSdkAuth, createOrgApiClient, is401 } from "../../lib/api-client.js";
|
|
9
9
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
10
10
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
11
11
|
import { emit, fail, resolveOutputContext } from "../../lib/output/index.js";
|
|
@@ -39,9 +39,14 @@ export function registerApiShowCommand(api) {
|
|
|
39
39
|
catch (e) {
|
|
40
40
|
fail(outCtx, ExitCode.USAGE, e.message);
|
|
41
41
|
}
|
|
42
|
+
configureSdkAuth(authCtx);
|
|
42
43
|
const client = createOrgApiClient(authCtx);
|
|
43
44
|
try {
|
|
44
|
-
|
|
45
|
+
// resolveApiId now hits PublicApisService.listTeamApis (V1); the
|
|
46
|
+
// /apis/{apiId}/summary call below stays on the legacy client because
|
|
47
|
+
// its rich shape (operations, env configs, subscriber count) isn't on
|
|
48
|
+
// the V1 surface yet.
|
|
49
|
+
const apiId = await resolveApiId(parsed);
|
|
45
50
|
const res = (await client.getJson(`/apis/${apiId}/summary`));
|
|
46
51
|
if (!res.api) {
|
|
47
52
|
fail(outCtx, ExitCode.NOT_FOUND, `No API found for ref '${ref}'.`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/api/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* spec0 ci generate github — emit a ready-to-commit GitHub Actions workflow.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* workflow YAML (including auth-secret references
|
|
6
|
-
* so the user just needs to drop it into
|
|
4
|
+
* Migrated to PublicCiService.generateCiConfig (`/api/v1/public/ci/config`).
|
|
5
|
+
* The backend renders the workflow YAML (including auth-secret references
|
|
6
|
+
* and the spec path filter), so the user just needs to drop it into
|
|
7
|
+
* `.github/workflows/`.
|
|
7
8
|
*/
|
|
8
9
|
import { Command } from "commander";
|
|
9
10
|
export declare function registerCiGenerateCommand(ci: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/ci/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,OAAO,QAyEpD"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* spec0 ci generate github — emit a ready-to-commit GitHub Actions workflow.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* workflow YAML (including auth-secret references
|
|
6
|
-
* so the user just needs to drop it into
|
|
4
|
+
* Migrated to PublicCiService.generateCiConfig (`/api/v1/public/ci/config`).
|
|
5
|
+
* The backend renders the workflow YAML (including auth-secret references
|
|
6
|
+
* and the spec path filter), so the user just needs to drop it into
|
|
7
|
+
* `.github/workflows/`.
|
|
7
8
|
*/
|
|
8
9
|
import { writeFileSync, mkdirSync } from "node:fs";
|
|
9
10
|
import { dirname, resolve } from "node:path";
|
|
10
11
|
import chalk from "chalk";
|
|
11
|
-
import {
|
|
12
|
+
import { PublicCiService } from "@spec0/sdk-public-platform";
|
|
13
|
+
import { configureSdkAuth, is401 } from "../../lib/api-client.js";
|
|
12
14
|
import { requireOrgContext } from "../../lib/auth-context.js";
|
|
13
15
|
import { ExitCode } from "../../lib/exit-codes.js";
|
|
14
16
|
import { emit, fail, progress, resolveOutputContext, } from "../../lib/output/index.js";
|
|
@@ -38,15 +40,13 @@ export function registerCiGenerateCommand(ci) {
|
|
|
38
40
|
hint: "Set SPEC0_TOKEN + SPEC0_ORG_ID, or run 'spec0 auth login'.",
|
|
39
41
|
});
|
|
40
42
|
}
|
|
41
|
-
|
|
42
|
-
specFilePath: opts.specFile,
|
|
43
|
-
branch: opts.branch,
|
|
44
|
-
});
|
|
45
|
-
if (opts.apiName)
|
|
46
|
-
params.set("apiName", opts.apiName);
|
|
47
|
-
const client = createOrgApiClient(authCtx);
|
|
43
|
+
configureSdkAuth(authCtx);
|
|
48
44
|
try {
|
|
49
|
-
const res =
|
|
45
|
+
const res = await PublicCiService.generateCiConfig({
|
|
46
|
+
specFilePath: opts.specFile,
|
|
47
|
+
apiName: opts.apiName,
|
|
48
|
+
branch: opts.branch,
|
|
49
|
+
});
|
|
50
50
|
if (opts.write) {
|
|
51
51
|
const target = resolve(process.cwd(), res.filePath ?? ".github/workflows/spec0-publish.yml");
|
|
52
52
|
mkdirSync(dirname(target), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/ci/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/ci/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/diff.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* spec0 diff — compare two OpenAPI specs (registry refs and/or local files)
|
|
2
|
+
* spec0 diff — compare two OpenAPI specs (registry refs and/or local files).
|
|
3
|
+
*
|
|
4
|
+
* Migrated to @spec0/sdk-public-platform:
|
|
5
|
+
* - registry fetch → PublicRegistryService.getLatestPublicSpec / getPublicSpecByTag
|
|
6
|
+
* - breaking-change check → PublicSpecsService.diffSpecs (multipart)
|
|
3
7
|
*/
|
|
4
8
|
import { Command } from "commander";
|
|
5
9
|
export declare function registerDiffCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAyDnD"}
|
package/dist/commands/diff.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* spec0 diff — compare two OpenAPI specs (registry refs and/or local files)
|
|
2
|
+
* spec0 diff — compare two OpenAPI specs (registry refs and/or local files).
|
|
3
|
+
*
|
|
4
|
+
* Migrated to @spec0/sdk-public-platform:
|
|
5
|
+
* - registry fetch → PublicRegistryService.getLatestPublicSpec / getPublicSpecByTag
|
|
6
|
+
* - breaking-change check → PublicSpecsService.diffSpecs (multipart)
|
|
3
7
|
*/
|
|
4
8
|
import chalk from "chalk";
|
|
5
9
|
import { existsSync, readFileSync } from "fs";
|
|
6
10
|
import { createTwoFilesPatch } from "diff";
|
|
7
|
-
import {
|
|
11
|
+
import { PublicRegistryService, PublicSpecsService } from "@spec0/sdk-public-platform";
|
|
12
|
+
import { configureSdkAuth, errorStatusCode, extractErrorMessage, is401, } from "../lib/api-client.js";
|
|
8
13
|
import { requireOrgContext } from "../lib/auth-context.js";
|
|
9
14
|
import { resolveRef } from "../lib/ref-resolver.js";
|
|
10
15
|
import { ExitCode, exit, exitCodeForHttpStatus } from "../lib/exit-codes.js";
|
|
@@ -13,21 +18,29 @@ async function loadSpecContent(token, ctx) {
|
|
|
13
18
|
if (existsSync(trimmed)) {
|
|
14
19
|
return readFileSync(trimmed, "utf-8");
|
|
15
20
|
}
|
|
16
|
-
const client = createOrgApiClient(ctx);
|
|
17
21
|
const parsed = resolveRef(trimmed);
|
|
18
22
|
if (parsed.kind !== "name" || !parsed.org) {
|
|
19
23
|
throw new Error(`Diff requires '<org>/<api>[@<tag>]' or a local file. Got '${trimmed}'.`);
|
|
20
24
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
configureSdkAuth(ctx);
|
|
26
|
+
return parsed.tag
|
|
27
|
+
? PublicRegistryService.getPublicSpecByTag({
|
|
28
|
+
orgSlug: parsed.org,
|
|
29
|
+
apiName: parsed.api,
|
|
30
|
+
tag: parsed.tag,
|
|
31
|
+
})
|
|
32
|
+
: PublicRegistryService.getLatestPublicSpec({
|
|
33
|
+
orgSlug: parsed.org,
|
|
34
|
+
apiName: parsed.api,
|
|
35
|
+
});
|
|
25
36
|
}
|
|
26
|
-
async function breakingChangesViaBackend(ctx, leftContent, rightContent
|
|
27
|
-
|
|
28
|
-
const result = await
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
async function breakingChangesViaBackend(ctx, leftContent, rightContent) {
|
|
38
|
+
configureSdkAuth(ctx);
|
|
39
|
+
const result = await PublicSpecsService.diffSpecs({
|
|
40
|
+
formData: {
|
|
41
|
+
base: new Blob([leftContent], { type: "application/yaml" }),
|
|
42
|
+
revision: new Blob([rightContent], { type: "application/yaml" }),
|
|
43
|
+
},
|
|
31
44
|
});
|
|
32
45
|
if (!result.hasBreakingChanges) {
|
|
33
46
|
console.log(chalk.green("No breaking changes detected."));
|
|
@@ -71,20 +84,20 @@ export function registerDiffCommand(program) {
|
|
|
71
84
|
console.error(chalk.red("Token invalid. Run 'spec0 auth login'."));
|
|
72
85
|
exit(ExitCode.AUTH_MISSING);
|
|
73
86
|
}
|
|
74
|
-
const status = err
|
|
87
|
+
const status = errorStatusCode(err);
|
|
75
88
|
console.error(chalk.red(`Failed to load spec: ${err.message}`));
|
|
76
89
|
exit(status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC);
|
|
77
90
|
}
|
|
78
91
|
if (opts.breakingOnly) {
|
|
79
92
|
try {
|
|
80
|
-
await breakingChangesViaBackend(ctx, left, right
|
|
93
|
+
await breakingChangesViaBackend(ctx, left, right);
|
|
81
94
|
}
|
|
82
95
|
catch (err) {
|
|
83
96
|
if (is401(err)) {
|
|
84
97
|
console.error(chalk.red("Token invalid. Run 'spec0 auth login'."));
|
|
85
98
|
exit(ExitCode.AUTH_MISSING);
|
|
86
99
|
}
|
|
87
|
-
const status = err
|
|
100
|
+
const status = errorStatusCode(err);
|
|
88
101
|
const msg = extractErrorMessage(err) ?? err.message;
|
|
89
102
|
console.error(chalk.red(`Breaking change check failed: ${msg}`));
|
|
90
103
|
exit(status ? exitCodeForHttpStatus(status) : ExitCode.GENERIC);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/lint.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* spec0 lint — Spectral bundled, org ruleset fetch, JSON/text/github output
|
|
2
|
+
* spec0 lint — Spectral bundled, org ruleset fetch, JSON/text/github output.
|
|
3
|
+
*
|
|
4
|
+
* Migrated to PublicSpectralService:
|
|
5
|
+
* - GET ruleset → /api/v1/public/spectral/ruleset
|
|
6
|
+
* - PUT ruleset → /api/v1/public/spectral/ruleset
|
|
3
7
|
*/
|
|
4
8
|
import { Command } from "commander";
|
|
5
9
|
export declare function registerLintCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA+EnD"}
|
package/dist/commands/lint.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* spec0 lint — Spectral bundled, org ruleset fetch, JSON/text/github output
|
|
2
|
+
* spec0 lint — Spectral bundled, org ruleset fetch, JSON/text/github output.
|
|
3
|
+
*
|
|
4
|
+
* Migrated to PublicSpectralService:
|
|
5
|
+
* - GET ruleset → /api/v1/public/spectral/ruleset
|
|
6
|
+
* - PUT ruleset → /api/v1/public/spectral/ruleset
|
|
3
7
|
*/
|
|
4
8
|
import chalk from "chalk";
|
|
5
9
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
6
10
|
import { tmpdir } from "os";
|
|
7
11
|
import { join } from "path";
|
|
12
|
+
import { PublicSpectralService } from "@spec0/sdk-public-platform";
|
|
8
13
|
import { findSpecInDir } from "../lib/spec-finder.js";
|
|
9
14
|
import { resolveCliSpecPathFromFlags } from "../lib/cli-spec-path.js";
|
|
10
15
|
import { runSpectral } from "../lib/lint.js";
|
|
11
16
|
import { formatLintText, formatGitHubAnnotation } from "../lib/output.js";
|
|
12
|
-
import {
|
|
17
|
+
import { configureSdkAuth } from "../lib/api-client.js";
|
|
13
18
|
import { requireOrgContext } from "../lib/auth-context.js";
|
|
14
19
|
import { ExitCode, exit } from "../lib/exit-codes.js";
|
|
15
20
|
export function registerLintCommand(program) {
|
|
@@ -41,8 +46,8 @@ export function registerLintCommand(program) {
|
|
|
41
46
|
if (opts.orgRuleset) {
|
|
42
47
|
try {
|
|
43
48
|
const ctx = requireOrgContext();
|
|
44
|
-
|
|
45
|
-
const res =
|
|
49
|
+
configureSdkAuth(ctx);
|
|
50
|
+
const res = await PublicSpectralService.getSpectralRuleset();
|
|
46
51
|
const yaml = res.rulesetYaml?.trim() ?? "";
|
|
47
52
|
if (!yaml) {
|
|
48
53
|
console.warn(chalk.yellow("No org ruleset stored on the server; using built-in OAS ruleset."));
|
|
@@ -96,9 +101,9 @@ async function uploadRuleset(filePath) {
|
|
|
96
101
|
console.error(chalk.red(e.message));
|
|
97
102
|
exit(ExitCode.AUTH_MISSING);
|
|
98
103
|
}
|
|
99
|
-
|
|
104
|
+
configureSdkAuth(ctx);
|
|
100
105
|
try {
|
|
101
|
-
await
|
|
106
|
+
await PublicSpectralService.putSpectralRuleset({ requestBody: { rulesetYaml } });
|
|
102
107
|
console.log(chalk.green(`✓ uploaded ${filePath} as the org's Spectral ruleset`));
|
|
103
108
|
}
|
|
104
109
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/log.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* spec0 log — version history from registry
|
|
2
|
+
* spec0 log — version history from registry.
|
|
3
|
+
*
|
|
4
|
+
* Migrated to PublicRegistryService.listPublicSpecVersions
|
|
5
|
+
* (`/api/v1/public/registry/{org}/{api}/versions`).
|
|
3
6
|
*/
|
|
4
7
|
import { Command } from "commander";
|
|
5
8
|
export declare function registerLogCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/commands/log.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,QAqElD"}
|