@dogsbay/format-openapi 0.2.0-beta.120 → 0.2.0-beta.121

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/core.d.ts CHANGED
@@ -48,6 +48,21 @@ export declare function createSpecCache(read: (path: string) => string | Promise
48
48
  };
49
49
  /** What a value over its bound is shown as. */
50
50
  export declare const VALUE_TOO_LARGE = "(not shown: too large)";
51
+ /**
52
+ * The summary and description, with a sentence the generator broke in two
53
+ * put back together. drf-yasg makes the summary from a docstring's first
54
+ * LINE and the description from the rest, so a sentence that wraps reads
55
+ * "…retrieve the list of" + a paragraph "activity streams.". A summary with
56
+ * no closing punctuation, followed by a description that starts in lower
57
+ * case, takes the description's first paragraph when that ends the
58
+ * sentence and the summary is long enough to be a wrapped line. Only plain text is moved:
59
+ * the summary is shown as text, so Markdown in the continuation would show
60
+ * its syntax.
61
+ */
62
+ export declare function summaryAndDescription(summary: string | undefined, description: string | undefined): {
63
+ summary?: string;
64
+ description?: string;
65
+ };
51
66
  export interface OpenApiEmbedOptions {
52
67
  level?: number;
53
68
  /** Ids the page already uses: the embed's headings get others. */
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK7E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAY3E,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,mBAAwB,GAChC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CA8EzC;AAsED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAO1F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CASnF;AAgED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACpC;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB5D;AA4BD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAsGxD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOnJ;AAED,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAsEpF"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK7E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAY3E,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,GAAG,EACT,OAAO,GAAE,mBAAwB,GAChC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,GAAG,EAAE,OAAO,EAAE,CAAA;CAAE,CAuDzC;AA4RD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAO1F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,SAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBnF;AA2ID;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,EAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACpC;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiB5D;AA4BD,+CAA+C;AAC/C,eAAO,MAAM,eAAe,2BAA2B,CAAC;AAmHxD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB5C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAOnJ;AAED,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,mEAAmE;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAoDpF"}
package/dist/core.js CHANGED
@@ -32,108 +32,289 @@ const HTTP_METHODS = [
32
32
  */
33
33
  export function specToPages(spec, options = {}) {
34
34
  const hrefPrefix = normalisePrefix(options.hrefPrefix);
35
- const pages = [];
36
- // Collect tag descriptions (from spec.tags[]) for tag overview pages.
37
- const tagDescriptions = new Map();
38
- for (const t of spec.tags || []) {
39
- if (txt(t?.name))
40
- tagDescriptions.set(t.name, txt(t.description) ?? "");
41
- }
42
- const tagToOps = new Map();
43
- const untagged = [];
44
35
  const operations = collectOperations(spec);
45
- const slugs = pageSlugs(spec, operations, options.reservedSlugs);
36
+ const { groups, ungrouped } = groupOperations(spec, operations);
37
+ const slugs = pageSlugs(groups, operations, options.reservedSlugs);
38
+ const labels = operationLabels(operations, groups);
39
+ const pages = [];
40
+ const summaries = new Map();
41
+ const groupOf = new Map();
42
+ for (const g of groups)
43
+ for (const op of g.ops)
44
+ groupOf.set(op, g);
46
45
  for (const op of operations) {
47
46
  const { method, path, operation, props } = op;
48
- const primaryTag = props.tags?.[0];
49
- const tagSlug = primaryTag ? slugs.tags.get(primaryTag) : "";
47
+ const group = groupOf.get(op);
50
48
  const opSlug = slugs.operations.get(op);
51
- const slug = tagSlug ? `${tagSlug}/${opSlug}` : opSlug;
52
- const title = txt(operation.summary) || `${method.toUpperCase()} ${path}`;
53
- const tree = [
54
- {
55
- type: "endpoint",
56
- props: structuredClone(props),
57
- },
58
- ];
59
- const headings = [{ depth: 1, slug: opSlug, text: title }];
49
+ const slug = group ? `${slugs.groups.get(group)}/${opSlug}` : opSlug;
50
+ const { title, navLabel, summary } = labels.get(op);
60
51
  pages.push({
61
52
  slug,
62
53
  title,
63
- tree,
64
- headings,
54
+ tree: [{ type: "endpoint", props: structuredClone(props) }],
55
+ headings: [{ depth: 1, slug: opSlug, text: title }],
65
56
  });
66
- const summary = {
67
- slug,
68
- title,
69
- method,
70
- path,
71
- deprecated: operation.deprecated === true,
72
- };
73
- if (primaryTag) {
74
- const arr = tagToOps.get(primaryTag) || [];
75
- arr.push(summary);
76
- tagToOps.set(primaryTag, arr);
77
- }
78
- else {
79
- untagged.push(summary);
80
- }
57
+ summaries.set(op, { slug, title, navLabel, summary, method, path, deprecated: operation.deprecated === true });
81
58
  }
82
- // Tag overview pages.
83
- for (const [tagName, ops] of tagToOps) {
84
- const tagSlug = slugs.tags.get(tagName);
85
- const description = tagDescriptions.get(tagName) || "";
86
- pages.push(buildTagPage(tagName, tagSlug, description, ops));
59
+ // A page per group (a tag, or one resource of a very large tag).
60
+ for (const g of groups) {
61
+ pages.push(buildTagPage(g.label, slugs.groups.get(g), g.description, g.ops.map((op) => summaries.get(op))));
87
62
  }
88
63
  // Root info page.
89
64
  const info = spec.info || {};
90
65
  pages.push(buildInfoPage(txt(info.title) || "API Reference", txt(info.description) ?? "", txt(info.version) ?? (typeof info.version === "number" ? String(info.version) : "")));
91
- // Build nav: tag groups in declaration order, with operations as
92
- // children. Untagged operations land under a synthetic "Other" group
93
- // so they're discoverable but visually separated.
94
- const nav = buildNav(spec, pages, tagToOps, untagged, hrefPrefix, slugs.tags);
66
+ // Nav: the groups in order, each with its operations; ungrouped
67
+ // operations under a synthetic "Other" group.
68
+ const nav = [{ label: txt(info.title) || "API Reference", href: hrefHref(hrefPrefix, "index") }];
69
+ const entries = (ops) => ops
70
+ .map((op) => summaries.get(op))
71
+ .sort(byPathThenMethod)
72
+ .map((op) => ({ label: op.navLabel, href: hrefHref(hrefPrefix, op.slug) }));
73
+ for (const g of groups) {
74
+ nav.push({ label: g.label, href: hrefHref(hrefPrefix, slugs.groups.get(g)), children: entries(g.ops) });
75
+ }
76
+ if (ungrouped.length > 0)
77
+ nav.push({ label: "Other", children: entries(ungrouped) });
95
78
  return { pages, nav };
96
79
  }
97
80
  /**
98
- * Every page's URL, distinct. The root page is `index`, a tag's overview is
99
- * `<tag>`, a tagged operation `<tag>/<operation>` and an untagged one
81
+ * Operations per group, in nav order: one group per tag (the spec's declared
82
+ * order, then first use), holding the operations whose FIRST tag it is.
83
+ *
84
+ * A tag holding more than LARGE_TAG operations across several resources is
85
+ * split into a group per resource instead. Generated specs often put
86
+ * everything under one tag (drf-yasg: all 610 operations of the AAP
87
+ * controller API under `api`), and a flat list of 610 is unusable; Swagger UI
88
+ * and Redoc readers navigate by resource. The resource is the first path
89
+ * segment after the tag's common prefix that is not a version or a parameter:
90
+ * `/api/v2/projects/{id}/` → `projects`, groups in alphabetical order.
91
+ * Operations with no resource (`/api/`) go in a "Root" group.
92
+ */
93
+ const LARGE_TAG = 50;
94
+ function groupOperations(spec, operations) {
95
+ const descriptions = new Map();
96
+ const order = [];
97
+ for (const t of spec.tags || []) {
98
+ const name = txt(t?.name);
99
+ if (!name || descriptions.has(name))
100
+ continue;
101
+ descriptions.set(name, txt(t.description) ?? "");
102
+ order.push(name);
103
+ }
104
+ const byTag = new Map();
105
+ const ungrouped = [];
106
+ for (const op of operations) {
107
+ const tag = op.props.tags?.[0];
108
+ if (!tag) {
109
+ ungrouped.push(op);
110
+ continue;
111
+ }
112
+ if (!byTag.has(tag))
113
+ byTag.set(tag, []);
114
+ byTag.get(tag).push(op);
115
+ if (!order.includes(tag))
116
+ order.push(tag);
117
+ }
118
+ const groups = [];
119
+ const splits = new Map();
120
+ for (const tag of order) {
121
+ const ops = byTag.get(tag);
122
+ const split = ops && ops.length > LARGE_TAG ? byResource(ops) : undefined;
123
+ if (split)
124
+ splits.set(tag, split);
125
+ }
126
+ for (const tag of order) {
127
+ const ops = byTag.get(tag);
128
+ if (!ops)
129
+ continue;
130
+ const split = splits.get(tag);
131
+ if (!split) {
132
+ groups.push({ label: tag, slugBase: slugifyTag(tag) || "tag", description: descriptions.get(tag) ?? "", ops, kind: "tag" });
133
+ continue;
134
+ }
135
+ // Operations of the tag with no resource (`GET /api/`, `/api/v2/`) are
136
+ // the API's root paths: "Root", or "api: Root" when several tags split.
137
+ // The tag's own name read as one more resource ("api" beside the spec's
138
+ // title page).
139
+ if (split.none.length) {
140
+ // A hand-written `Root` tag or a `root` resource would read the same.
141
+ const clash = [...byTag.keys()].some((t) => t !== tag && t.toLowerCase() === "root") || split.groups.has("root");
142
+ const label = splits.size > 1 || clash ? `${tag}: Root` : "Root";
143
+ groups.push({ label, slugBase: "root", description: descriptions.get(tag) ?? "", ops: split.none, kind: "tag" });
144
+ }
145
+ // Alphabetical: a resource list is looked up by name, and spec order put
146
+ // `/api/debug/` before every `/api/v2/` resource. Code-unit order, not
147
+ // the build machine's locale.
148
+ const resources = [...split.groups].sort(([a], [b]) => {
149
+ const x = humanize(a).toLowerCase();
150
+ const y = humanize(b).toLowerCase();
151
+ return x < y ? -1 : x > y ? 1 : 0;
152
+ });
153
+ for (const [resource, members] of resources) {
154
+ // Say which tag a resource belongs to when its name alone is
155
+ // ambiguous: two split tags may both have `projects`, and a
156
+ // hand-written `users` tag may sit beside a `users` resource.
157
+ const plain = humanize(resource);
158
+ const clash = [...byTag.keys()].some((t) => t !== tag && t.toLowerCase() === plain.toLowerCase());
159
+ const label = splits.size > 1 || clash ? `${tag}: ${plain}` : plain;
160
+ groups.push({ label, slugBase: slugifyTag(resource) || "resource", description: "", ops: members, shortPaths: split.shortPaths, kind: "resource" });
161
+ }
162
+ }
163
+ // Ungrouped operations in spec order.
164
+ const index = new Map(operations.map((op, i) => [op, i]));
165
+ ungrouped.sort((a, b) => index.get(a) - index.get(b));
166
+ return { groups, ungrouped };
167
+ }
168
+ const isParam = (seg) => seg.startsWith("{");
169
+ const isVersion = (seg) => /^v\d+(?:[._-]\d+)*$/i.test(seg);
170
+ /** Share of a large tag's operations that must have a resource for the tag to split. */
171
+ const SPLIT_COVERAGE = 0.9;
172
+ /**
173
+ * A large tag's operations by resource, or undefined when it does not
174
+ * divide that way: fewer than two resources, or fewer than 90% of the
175
+ * operations with one (tenant-style `/{tenant}/…` paths, or one resource's
176
+ * sub-actions under `/projects/{id}/…`, keep the tag whole).
177
+ *
178
+ * The prefix is the run of literal segments that 90% of the paths share, so
179
+ * one stray `/healthz` does not empty it; versions after it are skipped.
180
+ */
181
+ function byResource(ops) {
182
+ const segs = ops.map((op) => op.path.split("/").filter(Boolean));
183
+ const need = Math.ceil(ops.length * SPLIT_COVERAGE);
184
+ const prefix = [];
185
+ const under = (s) => prefix.every((p, i) => s[i] === p);
186
+ for (;;) {
187
+ const d = prefix.length;
188
+ const counts = new Map();
189
+ for (const s of segs)
190
+ if (s.length > d + 1 && under(s))
191
+ counts.set(s[d], (counts.get(s[d]) ?? 0) + 1);
192
+ const top = [...counts].sort((a, b) => b[1] - a[1])[0];
193
+ // Extend while one literal segment is shared by nearly all the paths
194
+ // that go deeper than it.
195
+ if (!top || top[1] < need || isParam(top[0]))
196
+ break;
197
+ prefix.push(top[0]);
198
+ }
199
+ const groups = new Map();
200
+ const none = [];
201
+ const shortPaths = new Map();
202
+ const versions = new Map();
203
+ ops.forEach((op, k) => {
204
+ const s = segs[k];
205
+ let i = prefix.length;
206
+ while (i < s.length && isVersion(s[i]))
207
+ i++;
208
+ const resource = under(s) && i < s.length && !isParam(s[i]) ? s[i] : undefined;
209
+ if (!resource)
210
+ return void none.push(op);
211
+ if (!groups.has(resource))
212
+ groups.set(resource, []);
213
+ groups.get(resource).push(op);
214
+ versions.set(op, s.slice(prefix.length, i).join("/"));
215
+ shortPaths.set(op, "/" + s.slice(i).join("/") + (op.path.endsWith("/") ? "/" : ""));
216
+ });
217
+ if (groups.size < 2 || ops.length - none.length < need)
218
+ return undefined;
219
+ // A group spanning versions (`/api/v1/users/`, `/api/v2/users/`) keeps
220
+ // them in its nav labels, or both read `GET /users/`.
221
+ for (const members of groups.values()) {
222
+ if (new Set(members.map((op) => versions.get(op))).size < 2)
223
+ continue;
224
+ for (const op of members) {
225
+ const s = op.path.split("/").filter(Boolean);
226
+ shortPaths.set(op, "/" + s.slice(prefix.length).join("/") + (op.path.endsWith("/") ? "/" : ""));
227
+ }
228
+ }
229
+ return { groups, none, shortPaths };
230
+ }
231
+ /** A path segment as a label: `job_templates` → "Job Templates". */
232
+ function humanize(segment) {
233
+ return segment
234
+ .split(/[_-]+/)
235
+ .filter(Boolean)
236
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
237
+ .join(" ") || segment;
238
+ }
239
+ /**
240
+ * Each operation's page title and nav label: its summary when no other
241
+ * operation has the same one, otherwise its method and path. Generated specs
242
+ * copy one summary to every method of a path (drf-yasg: 151 summaries for 610
243
+ * operations, so DELETE read "Make GET request to this resource…"), and a nav
244
+ * of identical labels cannot be read. In a resource group every nav label is
245
+ * the method and the path after the prefix the group already says
246
+ * (`PATCH /projects/{id}/`).
247
+ */
248
+ function operationLabels(operations, groups) {
249
+ // A generator's placeholder is no summary: "No Description for get on /api/v2/…" (drf-yasg's exact form).
250
+ // The spec's own summary decides. One joined to the rest of its sentence
251
+ // (summaryAndDescription) is a docstring sentence, not a title: the shared
252
+ // "…retrieve the list of" becomes unique once joined, and would title every
253
+ // drf-yasg list page with a whole sentence.
254
+ const summaryOf = (op) => {
255
+ const s = txt(op.operation.summary)?.trim();
256
+ return s && !/^no description for \w+ on \//i.test(s) ? s : undefined;
257
+ };
258
+ // Counted over every operation, joined or not: two operations sharing
259
+ // "Retrieve the list of" share it whichever of them was joined.
260
+ const count = new Map();
261
+ for (const op of operations) {
262
+ const s = summaryOf(op);
263
+ if (s)
264
+ count.set(s, (count.get(s) ?? 0) + 1);
265
+ }
266
+ const joined = (op) => op.props.summary?.trim() !== summaryOf(op);
267
+ const shortPath = new Map();
268
+ for (const g of groups)
269
+ for (const op of g.ops)
270
+ if (g.shortPaths?.has(op))
271
+ shortPath.set(op, g.shortPaths.get(op));
272
+ const out = new Map();
273
+ for (const op of operations) {
274
+ const s = summaryOf(op);
275
+ const method = op.method.toUpperCase();
276
+ const unique = s && count.get(s) === 1 && !joined(op) ? s : undefined;
277
+ // A resource group (a split, generated tag) lists method and path for
278
+ // every entry, as Swagger UI does: mixing in the few unique summaries
279
+ // made a column of near-identical prose ("Make GET request to this…").
280
+ const short = shortPath.get(op);
281
+ out.set(op, {
282
+ summary: unique,
283
+ title: unique ?? `${method} ${op.path}`,
284
+ navLabel: short !== undefined ? `${method} ${short}` : unique ?? `${method} ${op.path}`,
285
+ });
286
+ }
287
+ return out;
288
+ }
289
+ /**
290
+ * Every page's URL, distinct. The root page is `index`, a group's overview is
291
+ * `<group>`, a grouped operation `<group>/<operation>` and an ungrouped one
100
292
  * `<operation>`, where `<operation>` comes from the operationId, or else the
101
293
  * method and path. Slugs that would land on a URL already taken (`getPet` and
102
- * `get_pet`; an operationId `index`; an untagged operation named like a tag;
103
- * two tags that slugify alike) are made distinct: an operation falls back to
104
- * its method and path, then a numeric suffix, in spec order, so the first
105
- * claimant keeps the plain slug. Before, the later page silently replaced the
106
- * earlier one.
294
+ * `get_pet`; an operationId `index`; an ungrouped operation named like a
295
+ * group; two groups that slugify alike) are made distinct: an operation falls
296
+ * back to its method and path, then a numeric suffix, in spec order, so the
297
+ * first claimant keeps the plain slug. Before, the later page silently
298
+ * replaced the earlier one.
107
299
  */
108
- function pageSlugs(spec, operations, reserved = []) {
109
- const tags = new Map();
300
+ function pageSlugs(groups, operations, reserved = []) {
110
301
  const rootTaken = new Set(["index", ...reserved.map((r) => r.toLowerCase())]);
111
- // Tags that have pages, the spec's declared order first (as in the nav).
112
- const used = new Set(operations.map((op) => op.props.tags?.[0]).filter(Boolean));
113
- const tagNames = [];
114
- for (const t of spec.tags || [])
115
- if (used.has(txt(t?.name)))
116
- tagNames.push(t.name);
117
- for (const op of operations)
118
- if (op.props.tags?.[0])
119
- tagNames.push(op.props.tags[0]);
120
- for (const name of tagNames) {
121
- if (tags.has(name))
122
- continue;
123
- const slug = claim(slugifyTag(name) || "tag", rootTaken);
124
- tags.set(name, slug);
125
- }
126
- const folders = new Map();
127
- const taken = (op) => {
128
- const primary = op.props.tags?.[0];
129
- if (!primary)
130
- return rootTaken;
131
- const folder = tags.get(primary);
132
- let set = folders.get(folder);
133
- if (!set)
134
- folders.set(folder, (set = new Set(["index"])));
135
- return set;
136
- };
302
+ const groupSlugs = new Map();
303
+ const folderOf = new Map();
304
+ // Tags before resources: a resource of a large tag must not take the URL
305
+ // a hand-written tag has (`users` stays at /users when the large `api`
306
+ // tag also has a users resource, which becomes /users-2).
307
+ for (const kind of ["tag", "resource"]) {
308
+ for (const g of groups)
309
+ if (g.kind === kind)
310
+ groupSlugs.set(g, claim(g.slugBase, rootTaken));
311
+ }
312
+ for (const g of groups) {
313
+ const folder = new Set(["index"]);
314
+ for (const op of g.ops)
315
+ folderOf.set(op, folder);
316
+ }
317
+ const taken = (op) => folderOf.get(op) ?? rootTaken;
137
318
  // Two passes: every operation's own slug first, so a fallback never takes
138
319
  // the slug a LATER operation would have had (moving a URL that had no
139
320
  // collision); then the operations that lost theirs.
@@ -154,7 +335,7 @@ function pageSlugs(spec, operations, reserved = []) {
154
335
  const fallback = operationToSlug(op.method, op.path).replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") || op.method;
155
336
  out.set(op, claim(fallback, taken(op)));
156
337
  }
157
- return { tags, operations: out };
338
+ return { groups: groupSlugs, operations: out };
158
339
  }
159
340
  /** `base`, or `base-2`, `base-3`… : the first not in `used`, which it joins. */
160
341
  function claim(base, used) {
@@ -192,13 +373,120 @@ export async function prepareSpec(parsed, label = "the spec") {
192
373
  throw new Error(`${label} is not an OpenAPI document`);
193
374
  let doc = acyclic(parsed, label);
194
375
  if (typeof doc.swagger === "string" && doc.swagger.startsWith("2")) {
376
+ // The upgrade moves a 2.0 parameter's type into `schema` but drops its
377
+ // `default` (`page: 1` vanished); carry it across. `doc` is acyclic's
378
+ // copy, so marking it does not touch the caller's object.
379
+ inlineSharedParams(doc);
380
+ swagger2Params(doc, (p) => {
381
+ if (p.in !== "body" && p.default !== undefined)
382
+ p[KEPT_DEFAULT] = p.default;
383
+ });
195
384
  doc = upgrade(doc).specification;
385
+ swagger2ResponseExamples(doc);
386
+ swagger2Params(doc, (p) => {
387
+ if (!(KEPT_DEFAULT in p))
388
+ return;
389
+ if (p.schema && typeof p.schema === "object" && p.schema.default === undefined)
390
+ p.schema.default = p[KEPT_DEFAULT];
391
+ else if (!p.schema && p.default === undefined)
392
+ p.default = p[KEPT_DEFAULT];
393
+ delete p[KEPT_DEFAULT];
394
+ });
196
395
  }
197
396
  const { schema: spec } = await dereference(doc);
198
397
  if (!spec)
199
398
  throw new Error(`Failed to dereference OpenAPI spec at ${label}`);
200
399
  return spec;
201
400
  }
401
+ const KEPT_DEFAULT = "x-dogsbay-default";
402
+ /**
403
+ * A 2.0 document's `{ $ref: "#/parameters/X" }` entries replaced by copies of
404
+ * the shared parameter. The upgrade writes an empty `schema: {}` beside such a
405
+ * reference and leaves `#/parameters` where it was, so every shared
406
+ * parameter came out with type "any" (and no default).
407
+ */
408
+ function inlineSharedParams(doc) {
409
+ const shared = doc.parameters && typeof doc.parameters === "object" ? doc.parameters : undefined;
410
+ if (!shared)
411
+ return;
412
+ const resolve = (list) => Array.isArray(list)
413
+ ? list.map((p) => {
414
+ const m = typeof p?.$ref === "string" ? /^#\/parameters\/(.+)$/.exec(p.$ref) : null;
415
+ let name;
416
+ try {
417
+ name = m ? decodeURIComponent(m[1]).replace(/~1/g, "/").replace(/~0/g, "~") : undefined;
418
+ }
419
+ catch {
420
+ name = undefined; // a malformed `%`: leave the ref for the dereferencer to report
421
+ }
422
+ return name !== undefined && Object.hasOwn(shared, name) && shared[name] && typeof shared[name] === "object" ? { ...shared[name] } : p;
423
+ })
424
+ : list;
425
+ for (const item of Object.values(doc.paths ?? {})) {
426
+ if (!item || typeof item !== "object")
427
+ continue;
428
+ if (item.parameters)
429
+ item.parameters = resolve(item.parameters);
430
+ for (const m of HTTP_METHODS)
431
+ if (item[m]?.parameters)
432
+ item[m].parameters = resolve(item[m].parameters);
433
+ }
434
+ }
435
+ /**
436
+ * A 2.0 response's `examples` (media type → value) onto the upgraded
437
+ * response's `content[type].example`. The upgrade leaves them on the
438
+ * response, where 3.x has no such field, so the drf-yasg spec's 176 response
439
+ * examples were replaced by generated ones.
440
+ */
441
+ function swagger2ResponseExamples(doc) {
442
+ const fix = (r) => {
443
+ if (!r || typeof r !== "object" || !r.examples || typeof r.examples !== "object" || Array.isArray(r.examples))
444
+ return;
445
+ const content = r.content && typeof r.content === "object" ? r.content : undefined;
446
+ for (const [type, value] of Object.entries(r.examples)) {
447
+ let media = content?.[type] ?? (/json/i.test(type) ? content?.["application/json"] : undefined);
448
+ // No schema, so the upgrade wrote no content: the example is all there is.
449
+ if (!media && !content)
450
+ media = (r.content ??= {})[type] = {};
451
+ if (media && typeof media === "object" && media.example === undefined)
452
+ media.example = value;
453
+ }
454
+ delete r.examples;
455
+ };
456
+ const responses = (map) => {
457
+ if (map && typeof map === "object")
458
+ for (const r of Object.values(map))
459
+ fix(r);
460
+ };
461
+ responses(doc.responses);
462
+ responses(doc.components?.responses);
463
+ for (const item of Object.values(doc.paths ?? {})) {
464
+ if (!item || typeof item !== "object")
465
+ continue;
466
+ for (const m of HTTP_METHODS)
467
+ responses(item[m]?.responses);
468
+ }
469
+ }
470
+ /** Every parameter object of a 2.0 document, before or after its upgrade (shared ones too). */
471
+ function swagger2Params(doc, f) {
472
+ const each = (list) => {
473
+ if (Array.isArray(list))
474
+ for (const p of list)
475
+ if (p && typeof p === "object")
476
+ f(p);
477
+ };
478
+ for (const shared of [doc.parameters, doc.components?.parameters]) {
479
+ if (shared && typeof shared === "object")
480
+ each(Object.values(shared));
481
+ }
482
+ for (const item of Object.values(doc.paths ?? {})) {
483
+ if (!item || typeof item !== "object")
484
+ continue;
485
+ each(item.parameters);
486
+ for (const m of HTTP_METHODS)
487
+ each(item[m]?.parameters);
488
+ }
489
+ }
202
490
  /** The most a parsed document may expand to, in characters, counting every alias at each place it is used. */
203
491
  const SPEC_MAX_EXPANDED_CHARS = 64_000_000;
204
492
  /**
@@ -382,10 +670,18 @@ function copyEnum(list) {
382
670
  }
383
671
  return out;
384
672
  }
673
+ /**
674
+ * The first server's URL, without a trailing slash: operation paths start
675
+ * with one. A Swagger 2.0 `basePath: /` upgrades to a server `/`, and joining
676
+ * it gave `//api/v2/…` in the URL bar and every code sample.
677
+ */
678
+ function serverUrl(spec) {
679
+ return (txt(spec.servers?.[0]?.url) ?? "").replace(/\/+$/, "");
680
+ }
385
681
  /** Every operation in the spec, in document order, as `endpoint` props. */
386
682
  function collectOperations(spec) {
387
683
  const out = [];
388
- const baseUrl = txt(spec.servers?.[0]?.url) ?? "";
684
+ const baseUrl = serverUrl(spec);
389
685
  for (const [path, pathItem] of Object.entries(spec.paths || {})) {
390
686
  if (!pathItem)
391
687
  continue;
@@ -404,12 +700,13 @@ function buildOperation(path, pathItem, method, baseUrl) {
404
700
  return undefined;
405
701
  operationBudget = OPERATION_MAX_CHARS;
406
702
  const opTags = Array.isArray(operation.tags) ? operation.tags.filter((t) => typeof t === "string") : [];
703
+ const { summary, description } = summaryAndDescription(txt(operation.summary), txt(operation.description));
407
704
  const props = {
408
705
  method,
409
706
  path,
410
707
  baseUrl,
411
- summary: txt(operation.summary) || undefined,
412
- description: txt(operation.description) || undefined,
708
+ summary,
709
+ description,
413
710
  operationId: txt(operation.operationId) || undefined,
414
711
  tags: opTags.length > 0 ? opTags : undefined,
415
712
  deprecated: operation.deprecated === true ? true : undefined,
@@ -420,6 +717,37 @@ function buildOperation(path, pathItem, method, baseUrl) {
420
717
  };
421
718
  return { method, path, operation, props };
422
719
  }
720
+ /** Shortest summary read as a wrapped first line (drf-yasg's in AAP: 57-84 characters). */
721
+ const SUMMARY_WRAP_MIN = 40;
722
+ /**
723
+ * The summary and description, with a sentence the generator broke in two
724
+ * put back together. drf-yasg makes the summary from a docstring's first
725
+ * LINE and the description from the rest, so a sentence that wraps reads
726
+ * "…retrieve the list of" + a paragraph "activity streams.". A summary with
727
+ * no closing punctuation, followed by a description that starts in lower
728
+ * case, takes the description's first paragraph when that ends the
729
+ * sentence and the summary is long enough to be a wrapped line. Only plain text is moved:
730
+ * the summary is shown as text, so Markdown in the continuation would show
731
+ * its syntax.
732
+ */
733
+ export function summaryAndDescription(summary, description) {
734
+ const s = summary?.trim();
735
+ // Blank lines only: an indented first line is a code block, not prose.
736
+ const d = description?.replace(/^(?:[ \t]*\r?\n)+/, "");
737
+ // A wrapped docstring line is long; a hand-written "Get user" is not, and
738
+ // "returns the user." after it is a description, not its continuation.
739
+ if (s && d && s.length >= SUMMARY_WRAP_MIN && !/[.!?:;)\]"'`]$/.test(s) && /^\p{Ll}/u.test(d)) {
740
+ const end = d.search(/\n\s*\n/);
741
+ const first = (end < 0 ? d : d.slice(0, end)).replace(/\s+/g, " ").trim();
742
+ // The continuation must finish the sentence. An underscore inside a word
743
+ // (`job_template`) is not emphasis.
744
+ if (/[.!?:]$/.test(first) && !/[`*[\]<>\\#|~]|(?<!\w)_|_(?!\w)/.test(first)) {
745
+ const rest = end < 0 ? "" : d.slice(end).trim();
746
+ return { summary: `${s} ${first}`, description: rest || undefined };
747
+ }
748
+ }
749
+ return { summary: summary || undefined, description: description || undefined };
750
+ }
423
751
  /**
424
752
  * The operation a `:::openapi` directive selects from its props, or why it
425
753
  * cannot: `path` and `method` come together or not at all.
@@ -454,7 +782,7 @@ export function embedSpec(spec, options = {}) {
454
782
  // quadratic in the spec (400 pages over a 400-operation spec: 4 s, in dogsbay-ssg).
455
783
  const m = method.toLowerCase();
456
784
  const paths = spec.paths && typeof spec.paths === "object" ? spec.paths : {};
457
- const op = HTTP_METHODS.includes(m) && Object.hasOwn(paths, path) ? buildOperation(path, paths[path], m, txt(spec.servers?.[0]?.url) ?? "") : undefined;
785
+ const op = HTTP_METHODS.includes(m) && Object.hasOwn(paths, path) ? buildOperation(path, paths[path], m, serverUrl(spec)) : undefined;
458
786
  if (!op)
459
787
  throw new Error(`the spec has no operation ${method.toUpperCase()} ${path}`);
460
788
  return { tree: [{ type: "endpoint", props: structuredClone(op.props) }], headings: [], operations: 1 };
@@ -480,45 +808,24 @@ export function embedSpec(spec, options = {}) {
480
808
  if (typeof info.description === "string" && info.description.trim()) {
481
809
  describe(info.description, level);
482
810
  }
483
- const tagDescriptions = new Map();
484
- for (const t of spec.tags || []) {
485
- if (txt(t?.name))
486
- tagDescriptions.set(t.name, txt(t.description) ?? "");
487
- }
488
- const groups = new Map();
489
- for (const t of tagDescriptions.keys())
490
- groups.set(t, []);
491
- const untagged = [];
811
+ // The same groups as a page per operation (specToPages): tags, very large
812
+ // ones split by resource, ungrouped operations last under "Other".
492
813
  const operations = collectOperations(spec);
493
- for (const { props } of operations) {
494
- // A copy: enum, default and example values are the spec's own objects, and the spec is shared.
495
- const node = { type: "endpoint", props: structuredClone(props) };
496
- const tag = props.tags?.[0];
497
- if (!tag) {
498
- untagged.push(node);
499
- continue;
500
- }
501
- if (!groups.has(tag))
502
- groups.set(tag, []);
503
- groups.get(tag).push(node);
504
- }
505
- if (untagged.length)
506
- groups.set("\u0000other", untagged);
507
- for (const [tag, nodes] of groups) {
508
- if (!nodes.length)
509
- continue;
510
- const text = tag === "\u0000other" ? "Other" : tag;
511
- const id = uniqueId(slugifyTag(text) || "section", used);
814
+ const { groups, ungrouped } = groupOperations(spec, operations);
815
+ const sections = [...groups, ...(ungrouped.length ? [{ label: "Other", description: "", ops: ungrouped }] : [])];
816
+ for (const { label, description, ops } of sections) {
817
+ const id = uniqueId(slugifyTag(label) || "section", used);
512
818
  tree.push({
513
819
  type: "heading",
514
820
  props: { level, id },
515
- inline: [{ type: "text", text: text }],
821
+ inline: [{ type: "text", text: label }],
516
822
  });
517
- headings.push({ depth: level, slug: id, text });
518
- const description = tagDescriptions.get(tag);
823
+ headings.push({ depth: level, slug: id, text: label });
519
824
  if (description)
520
825
  describe(description, level + 1);
521
- tree.push(...nodes);
826
+ // A copy: enum, default and example values are the spec's own objects, and the spec is shared.
827
+ for (const op of ops)
828
+ tree.push({ type: "endpoint", props: structuredClone(op.props) });
522
829
  }
523
830
  return { tree, headings, operations: operations.length };
524
831
  }
@@ -653,8 +960,9 @@ function propertyOf(name, prop, required, walk) {
653
960
  result.enum = copyEnum(prop.enum);
654
961
  if (prop.default !== undefined)
655
962
  result.default = copyValue(prop.default);
656
- if (prop.example !== undefined)
657
- result.example = copyValue(prop.example);
963
+ const example = schemaExample(prop);
964
+ if (example !== undefined)
965
+ result.example = copyValue(example);
658
966
  if (primaryType(prop) === "object" && prop.properties) {
659
967
  result.properties = extractSchemaProperties(prop, undefined, walk);
660
968
  }
@@ -679,20 +987,24 @@ function extractParameters(operation, pathItem) {
679
987
  seen.set(`${p.name}:${p.in}`, p);
680
988
  }
681
989
  for (const p of seen.values()) {
990
+ // A Swagger 2.0 parameter keeps its type on itself, not in `schema`; the
991
+ // upgrade to 3.1 leaves PATH-ITEM-level parameters that way (drf-yasg's
992
+ // `{version}`/`{id}` showed type "any" where Swagger UI says "string").
993
+ const schema = p.schema ?? (txt(p.type) ? { type: p.type, format: p.format, enum: p.enum, default: p.default, items: p.items } : undefined);
682
994
  const param = {
683
995
  name: p.name,
684
996
  in: p.in,
685
- type: schemaToType(p.schema),
997
+ type: schemaToType(schema),
686
998
  required: p.required || false,
687
999
  };
688
1000
  if (txt(p.description))
689
1001
  param.description = p.description;
690
- if (p.schema?.default !== undefined) {
691
- const d = copyValue(p.schema.default);
1002
+ if (schema?.default !== undefined) {
1003
+ const d = copyValue(schema.default);
692
1004
  param.default = typeof d === "string" ? d : JSON.stringify(d);
693
1005
  }
694
- if (p.schema?.enum)
695
- param.enum = copyEnum(p.schema.enum);
1006
+ if (schema?.enum)
1007
+ param.enum = copyEnum(schema.enum);
696
1008
  if (p.deprecated)
697
1009
  param.deprecated = true;
698
1010
  params.push(param);
@@ -703,13 +1015,13 @@ function extractRequestBody(operation) {
703
1015
  const body = operation.requestBody;
704
1016
  if (!body?.content)
705
1017
  return {};
706
- const mediaType = body.content["application/json"] ||
707
- Object.values(body.content)[0];
1018
+ const contentType = body.content["application/json"] ? "application/json" : Object.keys(body.content)[0];
1019
+ const mediaType = body.content[contentType];
708
1020
  if (!mediaType?.schema)
709
1021
  return {};
710
1022
  return {
711
1023
  requestBody: extractSchemaProperties(mediaType.schema),
712
- requestBodyExample: copyValue(generateExampleFromSchema(mediaType.schema), EXAMPLE_MAX_CHARS),
1024
+ requestBodyExample: copyValue(mediaExample(mediaType, contentType) ?? generateExampleFromSchema(mediaType.schema), EXAMPLE_MAX_CHARS),
713
1025
  };
714
1026
  }
715
1027
  function extractResponses(operation) {
@@ -735,7 +1047,13 @@ function extractResponses(operation) {
735
1047
  ? rawSchema.items
736
1048
  : rawSchema;
737
1049
  result.schema = extractSchemaProperties(schema);
738
- result.example = copyValue(generateExampleFromSchema(rawSchema), EXAMPLE_MAX_CHARS);
1050
+ result.example = copyValue(mediaExample(mediaType, contentTypeKey) ?? generateExampleFromSchema(rawSchema), EXAMPLE_MAX_CHARS);
1051
+ }
1052
+ else {
1053
+ // An example with no schema (drf-yasg's `GET /api/v2/` lists its resources this way).
1054
+ const own = mediaExample(mediaType, contentTypeKey);
1055
+ if (own !== undefined)
1056
+ result.example = copyValue(own, EXAMPLE_MAX_CHARS);
739
1057
  }
740
1058
  }
741
1059
  return result;
@@ -749,9 +1067,34 @@ function generateExampleFromSchema(schema, walk = newWalk()) {
749
1067
  return null;
750
1068
  return descend(walk, schema, null, () => exampleOf(schema, walk));
751
1069
  }
752
- function exampleOf(schema, walk) {
753
- if (schema.example !== undefined)
1070
+ /**
1071
+ * A schema's own example. OpenAPI 3.0 writes `example: x`; 3.1 (JSON Schema)
1072
+ * writes `examples: [x]`, and prepareSpec upgrades every spec to 3.1, so a
1073
+ * Swagger 2.0 or 3.0 example arrives in the second form. Reading only the
1074
+ * first put `null` where drf-yasg's request body examples were.
1075
+ */
1076
+ function schemaExample(schema) {
1077
+ if (schema?.example !== undefined)
754
1078
  return schema.example;
1079
+ return Array.isArray(schema?.examples) && schema.examples.length > 0 ? schema.examples[0] : undefined;
1080
+ }
1081
+ /**
1082
+ * A media type's own example: `example`, or the first of `examples` (a map
1083
+ * of `{ value }`). JSON media types only: the example panel is JSON, and an
1084
+ * XML or text example would print as a quoted string.
1085
+ */
1086
+ function mediaExample(mediaType, contentType) {
1087
+ if (!contentType || !/(^application\/json|\+json)(;|$)/i.test(contentType))
1088
+ return undefined;
1089
+ if (mediaType?.example !== undefined)
1090
+ return mediaType.example;
1091
+ const first = mediaType?.examples && typeof mediaType.examples === "object" ? Object.values(mediaType.examples)[0] : undefined;
1092
+ return first && typeof first === "object" && "value" in first ? first.value : undefined;
1093
+ }
1094
+ function exampleOf(schema, walk) {
1095
+ const own = schemaExample(schema);
1096
+ if (own !== undefined)
1097
+ return own;
755
1098
  switch (primaryType(schema)) {
756
1099
  case "object": {
757
1100
  if (!schema.properties)
@@ -782,11 +1125,11 @@ function exampleOf(schema, walk) {
782
1125
  return "string";
783
1126
  }
784
1127
  case "integer":
785
- return schema.example ?? schema.default ?? 0;
1128
+ return schema.default ?? 0;
786
1129
  case "number":
787
- return schema.example ?? schema.default ?? 0.0;
1130
+ return schema.default ?? 0.0;
788
1131
  case "boolean":
789
- return schema.example ?? schema.default ?? true;
1132
+ return schema.default ?? true;
790
1133
  default:
791
1134
  return null;
792
1135
  }
@@ -803,21 +1146,22 @@ function buildTagPage(tagName, tagSlug, description, ops) {
803
1146
  const described = description ? descriptionHtml(description, 2, used) : null;
804
1147
  if (described)
805
1148
  tree.push({ type: "prose", html: described.html });
806
- // Link nodes with site-root hrefs, as an importer writes them, so the build
807
- // adds the base path and the source's /<name>/ prefix like any other link.
808
- // These were relative `<a href="pets/list-pets">` in raw HTML: on the tag
809
- // page, served at /pets/, the browser read them as /pets/pets/list-pets.
810
- const items = ops.map((op) => ({
1149
+ // One line per operation, as Swagger UI lists a tag: the method as a
1150
+ // coloured badge, the path linking to its page, and the summary when the
1151
+ // spec gives it one of its own. Built from badge, link and code nodes, so
1152
+ // every exporter has a case for it (Obsidian, MkDocs: a plain label).
1153
+ //
1154
+ // Site-root hrefs, as an importer writes them, so the build adds the base
1155
+ // path and the source's /<name>/ prefix like any other link. These were
1156
+ // relative `<a href="pets/list-pets">` in raw HTML: on the tag page,
1157
+ // served at /pets/, the browser read them as /pets/pets/list-pets.
1158
+ const items = [...ops].sort(byPathThenMethod).map((op) => ({
811
1159
  type: "list-item",
812
1160
  inline: [
813
- {
814
- type: "link",
815
- href: `/${op.slug}`,
816
- children: [
817
- { type: "code", text: op.method.toUpperCase() },
818
- { type: "text", text: ` ${op.path}` },
819
- ],
820
- },
1161
+ { type: "badge", text: op.method.toUpperCase(), variant: METHOD_BADGE[op.method] ?? "secondary" },
1162
+ { type: "text", text: " " },
1163
+ { type: "link", href: `/${op.slug}`, children: [{ type: "code", text: op.path }] },
1164
+ ...(op.summary ? [{ type: "text", text: ` — ${op.summary}` }] : []),
821
1165
  ...(op.deprecated ? [{ type: "text", text: " (deprecated)" }] : []),
822
1166
  ],
823
1167
  }));
@@ -853,63 +1197,14 @@ function buildInfoPage(title, description, version) {
853
1197
  headings: [{ depth: 1, slug: "api-reference", text: title }, ...(described?.headings ?? [])],
854
1198
  };
855
1199
  }
856
- function buildNav(spec, pages, tagToOps, untagged, hrefPrefix, tagSlugs) {
857
- const nav = [];
858
- const root = {
859
- label: txt(spec.info?.title) || "API Reference",
860
- href: hrefHref(hrefPrefix, "index"),
861
- };
862
- nav.push(root);
863
- // Use spec.tags[] order when present so authors control nav order.
864
- const declaredTagOrder = Array.isArray(spec.tags)
865
- ? spec.tags.map((t) => txt(t?.name)).filter(Boolean)
866
- : [];
867
- const seenTags = new Set();
868
- const tagOrder = [];
869
- for (const t of declaredTagOrder) {
870
- if (tagToOps.has(t)) {
871
- tagOrder.push(t);
872
- seenTags.add(t);
873
- }
874
- }
875
- for (const t of tagToOps.keys()) {
876
- if (!seenTags.has(t))
877
- tagOrder.push(t);
878
- }
879
- for (const tagName of tagOrder) {
880
- const ops = tagToOps.get(tagName) || [];
881
- const tagSlug = tagSlugs.get(tagName);
882
- nav.push({
883
- label: tagName,
884
- href: hrefHref(hrefPrefix, tagSlug),
885
- children: ops
886
- .slice()
887
- .sort(byMethodThenPath)
888
- .map((op) => ({
889
- label: op.title,
890
- href: hrefHref(hrefPrefix, op.slug),
891
- })),
892
- });
893
- }
894
- if (untagged.length > 0) {
895
- nav.push({
896
- label: "Other",
897
- children: untagged
898
- .slice()
899
- .sort(byMethodThenPath)
900
- .map((op) => ({
901
- label: op.title,
902
- href: hrefHref(hrefPrefix, op.slug),
903
- })),
904
- });
905
- }
906
- return nav;
907
- }
908
- function byMethodThenPath(a, b) {
909
- const m = a.method.localeCompare(b.method);
910
- if (m !== 0)
911
- return m;
912
- return a.path.localeCompare(b.path);
1200
+ const METHOD_ORDER = ["get", "post", "put", "patch", "delete", "head", "options"];
1201
+ /** A method's badge variant on a group page: the Badge status colour nearest the URL bar's (--api-get green, --api-post blue), contrast-tested. */
1202
+ const METHOD_BADGE = { get: "success", post: "info", put: "warning", patch: "warning", delete: "danger" };
1203
+ /** By path, then GET, POST, PUT, PATCH, DELETE: a resource's operations together. */
1204
+ function byPathThenMethod(a, b) {
1205
+ if (a.path !== b.path)
1206
+ return a.path < b.path ? -1 : 1;
1207
+ return METHOD_ORDER.indexOf(a.method) - METHOD_ORDER.indexOf(b.method);
913
1208
  }
914
1209
  function hrefHref(prefix, slug) {
915
1210
  const p = prefix ? `${prefix}/` : "/";
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dogsbay/format-openapi",
3
- "version": "0.2.0-beta.120",
3
+ "version": "0.2.0-beta.121",
4
4
  "description": "OpenAPI format plugin for Dogsbay — parse OpenAPI 3.x specs into ExportPage[] for the SSG pipeline",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "@scalar/openapi-parser": "^0.10.17",
36
36
  "markdown-it": "^14.3.0",
37
37
  "yaml": "^2.9.0",
38
- "@dogsbay/types": "0.2.0-beta.120"
38
+ "@dogsbay/types": "0.2.0-beta.121"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/markdown-it": "^14.1.2",
@@ -43,7 +43,7 @@
43
43
  "esbuild": "^0.25.0",
44
44
  "typescript": "^5.9.3",
45
45
  "vitest": "^4.1.10",
46
- "@dogsbay/format-astro": "0.2.0-beta.120"
46
+ "@dogsbay/format-astro": "0.2.0-beta.121"
47
47
  },
48
48
  "license": "MIT",
49
49
  "repository": {