vocs 2.0.17 → 2.1.2

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 (306) hide show
  1. package/dist/config.d.ts +1 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +1 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/globals.d.ts +16 -0
  6. package/dist/index.d.ts +1 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/internal/config.d.ts +28 -0
  11. package/dist/internal/config.d.ts.map +1 -1
  12. package/dist/internal/config.js +10 -2
  13. package/dist/internal/config.js.map +1 -1
  14. package/dist/internal/llms.d.ts +21 -2
  15. package/dist/internal/llms.d.ts.map +1 -1
  16. package/dist/internal/llms.js +41 -1
  17. package/dist/internal/llms.js.map +1 -1
  18. package/dist/internal/markdown-negotiation.d.ts +36 -0
  19. package/dist/internal/markdown-negotiation.d.ts.map +1 -0
  20. package/dist/internal/markdown-negotiation.js +81 -0
  21. package/dist/internal/markdown-negotiation.js.map +1 -0
  22. package/dist/internal/markdown.d.ts.map +1 -1
  23. package/dist/internal/markdown.js +5 -0
  24. package/dist/internal/markdown.js.map +1 -1
  25. package/dist/internal/openapi/anchors.d.ts +25 -0
  26. package/dist/internal/openapi/anchors.d.ts.map +1 -0
  27. package/dist/internal/openapi/anchors.js +37 -0
  28. package/dist/internal/openapi/anchors.js.map +1 -0
  29. package/dist/internal/openapi/app.d.ts +89 -0
  30. package/dist/internal/openapi/app.d.ts.map +1 -0
  31. package/dist/internal/openapi/app.js +62 -0
  32. package/dist/internal/openapi/app.js.map +1 -0
  33. package/dist/internal/openapi/index.d.ts +8 -0
  34. package/dist/internal/openapi/index.d.ts.map +1 -0
  35. package/dist/internal/openapi/index.js +5 -0
  36. package/dist/internal/openapi/index.js.map +1 -0
  37. package/dist/internal/openapi/markdown.d.ts +42 -0
  38. package/dist/internal/openapi/markdown.d.ts.map +1 -0
  39. package/dist/internal/openapi/markdown.js +235 -0
  40. package/dist/internal/openapi/markdown.js.map +1 -0
  41. package/dist/internal/openapi/openapi.d.ts +187 -0
  42. package/dist/internal/openapi/openapi.d.ts.map +1 -0
  43. package/dist/internal/openapi/openapi.js +44 -0
  44. package/dist/internal/openapi/openapi.js.map +1 -0
  45. package/dist/internal/openapi/openrpc.d.ts +90 -0
  46. package/dist/internal/openapi/openrpc.d.ts.map +1 -0
  47. package/dist/internal/openapi/openrpc.js +213 -0
  48. package/dist/internal/openapi/openrpc.js.map +1 -0
  49. package/dist/internal/openapi/parser.d.ts +181 -0
  50. package/dist/internal/openapi/parser.d.ts.map +1 -0
  51. package/dist/internal/openapi/parser.js +329 -0
  52. package/dist/internal/openapi/parser.js.map +1 -0
  53. package/dist/internal/openapi/registry.d.ts +36 -0
  54. package/dist/internal/openapi/registry.d.ts.map +1 -0
  55. package/dist/internal/openapi/registry.js +79 -0
  56. package/dist/internal/openapi/registry.js.map +1 -0
  57. package/dist/internal/openapi/sample.d.ts +115 -0
  58. package/dist/internal/openapi/sample.d.ts.map +1 -0
  59. package/dist/internal/openapi/sample.js +434 -0
  60. package/dist/internal/openapi/sample.js.map +1 -0
  61. package/dist/internal/openapi/search.d.ts +19 -0
  62. package/dist/internal/openapi/search.d.ts.map +1 -0
  63. package/dist/internal/openapi/search.js +98 -0
  64. package/dist/internal/openapi/search.js.map +1 -0
  65. package/dist/internal/openapi/sidebar.d.ts +30 -0
  66. package/dist/internal/openapi/sidebar.d.ts.map +1 -0
  67. package/dist/internal/openapi/sidebar.js +67 -0
  68. package/dist/internal/openapi/sidebar.js.map +1 -0
  69. package/dist/internal/openapi/union.d.ts +36 -0
  70. package/dist/internal/openapi/union.d.ts.map +1 -0
  71. package/dist/internal/openapi/union.js +69 -0
  72. package/dist/internal/openapi/union.js.map +1 -0
  73. package/dist/internal/search.d.ts.map +1 -1
  74. package/dist/internal/search.js +20 -0
  75. package/dist/internal/search.js.map +1 -1
  76. package/dist/internal/vite-plugins.d.ts +12 -0
  77. package/dist/internal/vite-plugins.d.ts.map +1 -1
  78. package/dist/internal/vite-plugins.js +102 -11
  79. package/dist/internal/vite-plugins.js.map +1 -1
  80. package/dist/react/Badge.d.ts +2 -3
  81. package/dist/react/Badge.d.ts.map +1 -1
  82. package/dist/react/Layout.client.d.ts.map +1 -1
  83. package/dist/react/Layout.client.js +2 -2
  84. package/dist/react/Layout.client.js.map +1 -1
  85. package/dist/react/OpenApi.d.ts +6 -0
  86. package/dist/react/OpenApi.d.ts.map +1 -0
  87. package/dist/react/OpenApi.js +6 -0
  88. package/dist/react/OpenApi.js.map +1 -0
  89. package/dist/react/internal/CodeToHtml.client.d.ts +53 -2
  90. package/dist/react/internal/CodeToHtml.client.d.ts.map +1 -1
  91. package/dist/react/internal/CodeToHtml.client.js +154 -21
  92. package/dist/react/internal/CodeToHtml.client.js.map +1 -1
  93. package/dist/react/internal/Sidebar.d.ts.map +1 -1
  94. package/dist/react/internal/Sidebar.js +99 -2
  95. package/dist/react/internal/Sidebar.js.map +1 -1
  96. package/dist/react/internal/openapi/CodeSample.client.d.ts +21 -0
  97. package/dist/react/internal/openapi/CodeSample.client.d.ts.map +1 -0
  98. package/dist/react/internal/openapi/CodeSample.client.js +134 -0
  99. package/dist/react/internal/openapi/CodeSample.client.js.map +1 -0
  100. package/dist/react/internal/openapi/CollapsibleChildren.client.d.ts +17 -0
  101. package/dist/react/internal/openapi/CollapsibleChildren.client.d.ts.map +1 -0
  102. package/dist/react/internal/openapi/CollapsibleChildren.client.js +18 -0
  103. package/dist/react/internal/openapi/CollapsibleChildren.client.js.map +1 -0
  104. package/dist/react/internal/openapi/Disclosure.client.d.ts +28 -0
  105. package/dist/react/internal/openapi/Disclosure.client.d.ts.map +1 -0
  106. package/dist/react/internal/openapi/Disclosure.client.js +38 -0
  107. package/dist/react/internal/openapi/Disclosure.client.js.map +1 -0
  108. package/dist/react/internal/openapi/Endpoints.d.ts +26 -0
  109. package/dist/react/internal/openapi/Endpoints.d.ts.map +1 -0
  110. package/dist/react/internal/openapi/Endpoints.js +33 -0
  111. package/dist/react/internal/openapi/Endpoints.js.map +1 -0
  112. package/dist/react/internal/openapi/EndpointsView.d.ts +24 -0
  113. package/dist/react/internal/openapi/EndpointsView.d.ts.map +1 -0
  114. package/dist/react/internal/openapi/EndpointsView.js +26 -0
  115. package/dist/react/internal/openapi/EndpointsView.js.map +1 -0
  116. package/dist/react/internal/openapi/EnumValues.client.d.ts +14 -0
  117. package/dist/react/internal/openapi/EnumValues.client.d.ts.map +1 -0
  118. package/dist/react/internal/openapi/EnumValues.client.js +20 -0
  119. package/dist/react/internal/openapi/EnumValues.client.js.map +1 -0
  120. package/dist/react/internal/openapi/HeadingAnchor.d.ts +15 -0
  121. package/dist/react/internal/openapi/HeadingAnchor.d.ts.map +1 -0
  122. package/dist/react/internal/openapi/HeadingAnchor.js +12 -0
  123. package/dist/react/internal/openapi/HeadingAnchor.js.map +1 -0
  124. package/dist/react/internal/openapi/OpenApiPage.d.ts +79 -0
  125. package/dist/react/internal/openapi/OpenApiPage.d.ts.map +1 -0
  126. package/dist/react/internal/openapi/OpenApiPage.js +72 -0
  127. package/dist/react/internal/openapi/OpenApiPage.js.map +1 -0
  128. package/dist/react/internal/openapi/Operation.d.ts +25 -0
  129. package/dist/react/internal/openapi/Operation.d.ts.map +1 -0
  130. package/dist/react/internal/openapi/Operation.js +101 -0
  131. package/dist/react/internal/openapi/Operation.js.map +1 -0
  132. package/dist/react/internal/openapi/Playground.client.d.ts +33 -0
  133. package/dist/react/internal/openapi/Playground.client.d.ts.map +1 -0
  134. package/dist/react/internal/openapi/Playground.client.js +170 -0
  135. package/dist/react/internal/openapi/Playground.client.js.map +1 -0
  136. package/dist/react/internal/openapi/PropertyExample.client.d.ts +17 -0
  137. package/dist/react/internal/openapi/PropertyExample.client.d.ts.map +1 -0
  138. package/dist/react/internal/openapi/PropertyExample.client.js +21 -0
  139. package/dist/react/internal/openapi/PropertyExample.client.js.map +1 -0
  140. package/dist/react/internal/openapi/Reference.d.ts +55 -0
  141. package/dist/react/internal/openapi/Reference.d.ts.map +1 -0
  142. package/dist/react/internal/openapi/Reference.js +42 -0
  143. package/dist/react/internal/openapi/Reference.js.map +1 -0
  144. package/dist/react/internal/openapi/Schema.d.ts +110 -0
  145. package/dist/react/internal/openapi/Schema.d.ts.map +1 -0
  146. package/dist/react/internal/openapi/Schema.js +239 -0
  147. package/dist/react/internal/openapi/Schema.js.map +1 -0
  148. package/dist/react/internal/openapi/SchemaUnion.client.d.ts +25 -0
  149. package/dist/react/internal/openapi/SchemaUnion.client.d.ts.map +1 -0
  150. package/dist/react/internal/openapi/SchemaUnion.client.js +48 -0
  151. package/dist/react/internal/openapi/SchemaUnion.client.js.map +1 -0
  152. package/dist/react/internal/openapi/anchor-navigation.client.d.ts +47 -0
  153. package/dist/react/internal/openapi/anchor-navigation.client.d.ts.map +1 -0
  154. package/dist/react/internal/openapi/anchor-navigation.client.js +120 -0
  155. package/dist/react/internal/openapi/anchor-navigation.client.js.map +1 -0
  156. package/dist/react/internal/openapi/auth.d.ts +28 -0
  157. package/dist/react/internal/openapi/auth.d.ts.map +1 -0
  158. package/dist/react/internal/openapi/auth.js +75 -0
  159. package/dist/react/internal/openapi/auth.js.map +1 -0
  160. package/dist/react/useLayout.d.ts +2 -0
  161. package/dist/react/useLayout.d.ts.map +1 -1
  162. package/dist/react/useLayout.js +2 -0
  163. package/dist/react/useLayout.js.map +1 -1
  164. package/dist/server/handlers.d.ts +1 -1
  165. package/dist/server/handlers.d.ts.map +1 -1
  166. package/dist/server/handlers.js +26 -5
  167. package/dist/server/handlers.js.map +1 -1
  168. package/dist/server/og-assets.d.ts +5 -0
  169. package/dist/server/og-assets.d.ts.map +1 -0
  170. package/dist/server/og-assets.js +11 -0
  171. package/dist/server/og-assets.js.map +1 -0
  172. package/dist/server/openapi/assets.d.ts +33 -0
  173. package/dist/server/openapi/assets.d.ts.map +1 -0
  174. package/dist/server/openapi/assets.generated.d.ts +9 -0
  175. package/dist/server/openapi/assets.generated.d.ts.map +1 -0
  176. package/dist/server/openapi/assets.generated.js +1091 -0
  177. package/dist/server/openapi/assets.generated.js.map +1 -0
  178. package/dist/server/openapi/assets.js +32 -0
  179. package/dist/server/openapi/assets.js.map +1 -0
  180. package/dist/server/openapi/handler.d.ts +103 -0
  181. package/dist/server/openapi/handler.d.ts.map +1 -0
  182. package/dist/server/openapi/handler.js +198 -0
  183. package/dist/server/openapi/handler.js.map +1 -0
  184. package/dist/server/openapi/handler.test.d.ts +2 -0
  185. package/dist/server/openapi/handler.test.d.ts.map +1 -0
  186. package/dist/server/openapi/handler.test.js +203 -0
  187. package/dist/server/openapi/handler.test.js.map +1 -0
  188. package/dist/server/openapi/html.d.ts +16 -0
  189. package/dist/server/openapi/html.d.ts.map +1 -0
  190. package/dist/server/openapi/html.js +75 -0
  191. package/dist/server/openapi/html.js.map +1 -0
  192. package/dist/server/openapi/pages.d.ts +33 -0
  193. package/dist/server/openapi/pages.d.ts.map +1 -0
  194. package/dist/server/openapi/pages.js +130 -0
  195. package/dist/server/openapi/pages.js.map +1 -0
  196. package/dist/server/openapi/pages.test.d.ts +2 -0
  197. package/dist/server/openapi/pages.test.d.ts.map +1 -0
  198. package/dist/server/openapi/pages.test.js +94 -0
  199. package/dist/server/openapi/pages.test.js.map +1 -0
  200. package/dist/server/openapi/state.d.ts +42 -0
  201. package/dist/server/openapi/state.d.ts.map +1 -0
  202. package/dist/server/openapi/state.js +101 -0
  203. package/dist/server/openapi/state.js.map +1 -0
  204. package/dist/styles/index.css +16 -0
  205. package/dist/styles/markdown.css +9 -7
  206. package/dist/styles/openapi-playground.css +80 -0
  207. package/dist/styles/openapi.css +660 -0
  208. package/dist/vite.d.ts.map +1 -1
  209. package/dist/vite.js +1 -0
  210. package/dist/vite.js.map +1 -1
  211. package/dist/waku/internal/middleware/md-router.d.ts +0 -4
  212. package/dist/waku/internal/middleware/md-router.d.ts.map +1 -1
  213. package/dist/waku/internal/middleware/md-router.js +3 -48
  214. package/dist/waku/internal/middleware/md-router.js.map +1 -1
  215. package/dist/waku/internal/patches/adapters/vercel-build-enhancer.js +1 -1
  216. package/dist/waku/internal/patches/adapters/vercel-build-enhancer.js.map +1 -1
  217. package/dist/waku/internal/patches/router.d.ts.map +1 -1
  218. package/dist/waku/internal/patches/router.js +114 -1
  219. package/dist/waku/internal/patches/router.js.map +1 -1
  220. package/package.json +5 -1
  221. package/src/config.ts +1 -0
  222. package/src/globals.d.ts +16 -0
  223. package/src/index.ts +1 -0
  224. package/src/internal/config.ts +40 -1
  225. package/src/internal/llms.ts +51 -1
  226. package/src/internal/markdown-negotiation.test.ts +42 -0
  227. package/src/internal/markdown-negotiation.ts +95 -0
  228. package/src/internal/markdown.ts +5 -0
  229. package/src/internal/openapi/anchors.ts +44 -0
  230. package/src/internal/openapi/app.ts +127 -0
  231. package/src/internal/openapi/index.ts +24 -0
  232. package/src/internal/openapi/markdown.test.ts +115 -0
  233. package/src/internal/openapi/markdown.ts +275 -0
  234. package/src/internal/openapi/openapi.ts +212 -0
  235. package/src/internal/openapi/openrpc.test.ts +239 -0
  236. package/src/internal/openapi/openrpc.ts +295 -0
  237. package/src/internal/openapi/parser.test.ts +203 -0
  238. package/src/internal/openapi/parser.ts +613 -0
  239. package/src/internal/openapi/registry.test.ts +89 -0
  240. package/src/internal/openapi/registry.ts +89 -0
  241. package/src/internal/openapi/sample.test.ts +283 -0
  242. package/src/internal/openapi/sample.ts +562 -0
  243. package/src/internal/openapi/search.test.ts +62 -0
  244. package/src/internal/openapi/search.ts +108 -0
  245. package/src/internal/openapi/sidebar.test.ts +131 -0
  246. package/src/internal/openapi/sidebar.ts +94 -0
  247. package/src/internal/openapi/union.test.ts +51 -0
  248. package/src/internal/openapi/union.ts +74 -0
  249. package/src/internal/search.ts +20 -0
  250. package/src/internal/test/virtual-config.stub.ts +14 -0
  251. package/src/internal/vite-plugins.ts +106 -11
  252. package/src/openapi-app/App.tsx +64 -0
  253. package/src/openapi-app/blocks.tsx +33 -0
  254. package/src/openapi-app/client.tsx +25 -0
  255. package/src/openapi-app/links.test.ts +84 -0
  256. package/src/openapi-app/links.ts +66 -0
  257. package/src/openapi-app/payload.ts +20 -0
  258. package/src/openapi-app/virtual/config.ts +7 -0
  259. package/src/openapi-app/virtual/group-icons.ts +2 -0
  260. package/src/openapi-app/virtual/langs.ts +6 -0
  261. package/src/openapi-app/virtual/openapi.ts +10 -0
  262. package/src/openapi-app/virtual/search-index.ts +21 -0
  263. package/src/openapi-app/virtual/slots.ts +4 -0
  264. package/src/openapi-app/virtual/user-styles.ts +2 -0
  265. package/src/openapi-app/waku.tsx +154 -0
  266. package/src/react/Badge.tsx +2 -3
  267. package/src/react/Layout.client.tsx +17 -4
  268. package/src/react/OpenApi.tsx +5 -0
  269. package/src/react/internal/CodeToHtml.client.tsx +283 -22
  270. package/src/react/internal/Sidebar.tsx +126 -22
  271. package/src/react/internal/openapi/CodeSample.client.tsx +294 -0
  272. package/src/react/internal/openapi/CollapsibleChildren.client.tsx +41 -0
  273. package/src/react/internal/openapi/Disclosure.client.tsx +67 -0
  274. package/src/react/internal/openapi/Endpoints.tsx +58 -0
  275. package/src/react/internal/openapi/EndpointsView.tsx +76 -0
  276. package/src/react/internal/openapi/EnumValues.client.tsx +49 -0
  277. package/src/react/internal/openapi/HeadingAnchor.tsx +28 -0
  278. package/src/react/internal/openapi/OpenApiPage.tsx +173 -0
  279. package/src/react/internal/openapi/Operation.test.tsx +101 -0
  280. package/src/react/internal/openapi/Operation.tsx +335 -0
  281. package/src/react/internal/openapi/Playground.client.tsx +234 -0
  282. package/src/react/internal/openapi/PropertyExample.client.tsx +55 -0
  283. package/src/react/internal/openapi/Reference.tsx +120 -0
  284. package/src/react/internal/openapi/Schema.tsx +467 -0
  285. package/src/react/internal/openapi/SchemaUnion.client.tsx +123 -0
  286. package/src/react/internal/openapi/anchor-navigation.client.ts +154 -0
  287. package/src/react/internal/openapi/auth.ts +69 -0
  288. package/src/react/useLayout.ts +4 -0
  289. package/src/server/handlers.ts +31 -6
  290. package/src/server/og-assets.ts +14 -0
  291. package/src/server/openapi/assets.generated.ts +1093 -0
  292. package/src/server/openapi/assets.ts +57 -0
  293. package/src/server/openapi/handler.test.ts +244 -0
  294. package/src/server/openapi/handler.ts +277 -0
  295. package/src/server/openapi/html.ts +84 -0
  296. package/src/server/openapi/pages.test.ts +111 -0
  297. package/src/server/openapi/pages.ts +153 -0
  298. package/src/server/openapi/state.ts +136 -0
  299. package/src/styles/index.css +16 -0
  300. package/src/styles/markdown.css +9 -7
  301. package/src/styles/openapi-playground.css +80 -0
  302. package/src/styles/openapi.css +660 -0
  303. package/src/vite.ts +1 -0
  304. package/src/waku/internal/middleware/md-router.ts +8 -52
  305. package/src/waku/internal/patches/adapters/vercel-build-enhancer.ts +1 -1
  306. package/src/waku/internal/patches/router.ts +131 -1
@@ -0,0 +1,115 @@
1
+ import { type HarRequest } from '@scalar/snippetz';
2
+ import { type SchemaPath } from './anchors.js';
3
+ import type { IrOperation } from './parser.js';
4
+ /**
5
+ * A generated request code sample for a single client (e.g. cURL, JS fetch).
6
+ *
7
+ * `lang` is a Shiki language id so the React layer can highlight it with the
8
+ * same highlighter used for the rest of the docs.
9
+ */
10
+ export type CodeSample = {
11
+ /**
12
+ * Clickable spans within `display` that link to a parameter's documentation
13
+ * row. Each `range` is a `[start, end]` character range into `display`; `id`
14
+ * is the target element id. Used for path parameters, which sit inline within
15
+ * the URL line, so only their value (not the whole line) is clickable.
16
+ */
17
+ anchors: {
18
+ range: [number, number];
19
+ id: string;
20
+ }[];
21
+ /** Generated source code, used verbatim for the copy-to-clipboard action. */
22
+ code: string;
23
+ /**
24
+ * Collapsed view shown by default when the request has more than 2 query
25
+ * parameters: the same snippet rendered with only the first 2, plus its own
26
+ * `anchors`/`lineAnchors`/`colorRanges` (line counts differ from the full
27
+ * `display`). Absent when there is nothing to collapse.
28
+ */
29
+ collapsed?: {
30
+ display: string;
31
+ anchors: {
32
+ range: [number, number];
33
+ id: string;
34
+ }[];
35
+ colorRanges: {
36
+ range: [number, number];
37
+ kind: 'key' | 'value';
38
+ }[];
39
+ lineAnchors: (string | undefined)[];
40
+ };
41
+ /**
42
+ * `[start, end]` character ranges within `display` to recolor so the URL reads
43
+ * like the JSON response example: parameter names use the JSON-string color
44
+ * (`'key'`) and parameter values the JSON-number color (`'value'`). Covers
45
+ * query parameter names/values; path parameter values are colored via their
46
+ * {@link anchors} entry instead (those already wrap the value).
47
+ */
48
+ colorRanges: {
49
+ range: [number, number];
50
+ kind: 'key' | 'value';
51
+ }[];
52
+ /**
53
+ * Display variant of {@link code} with each query parameter placed on its own
54
+ * line for readability. Formatted language-aware so it stays syntactically
55
+ * highlightable (TypeScript uses string concatenation; cURL breaks inside the
56
+ * quoted URL). This is what gets highlighted/rendered; `code` is copied.
57
+ */
58
+ display: string;
59
+ /** Number of query parameters hidden in {@link collapsed}. */
60
+ hiddenQueryCount?: number;
61
+ /** Stable id, e.g. `shell/curl`. */
62
+ id: string;
63
+ /** Display label for the language tab, e.g. `cURL`. */
64
+ label: string;
65
+ /** Shiki language id for highlighting, e.g. `bash`, `js`. */
66
+ lang: string;
67
+ /**
68
+ * Per-line anchor ids (0-based) for `display`. Since each query parameter is
69
+ * placed on its own line, the whole line is made clickable — mirroring the
70
+ * response example lines. `undefined` for non-parameter lines.
71
+ */
72
+ lineAnchors: (string | undefined)[];
73
+ };
74
+ /**
75
+ * Builds request code samples for an operation using `@scalar/snippetz` — the
76
+ * same snippet generator Scalar uses. Returns one entry per supported client.
77
+ */
78
+ export declare function codeSamples(operation: IrOperation, server?: string): CodeSample[];
79
+ /**
80
+ * Constructs a HAR-style request from an operation by filling path/query/header
81
+ * parameters and the request body with representative sample values. This is the
82
+ * input `snippetz` consumes to render code samples.
83
+ */
84
+ export declare function harRequest(operation: IrOperation, server?: string): Partial<HarRequest>;
85
+ /**
86
+ * A response code sample (the example body for a single status code), ready to
87
+ * be highlighted as JSON in the right-hand panel.
88
+ */
89
+ export type ResponseSample = {
90
+ status: string;
91
+ description?: string | undefined;
92
+ /**
93
+ * Id base for this response's schema rows, used to resolve per-line anchors
94
+ * (see {@link linePaths}) to the matching documentation row's element id.
95
+ */
96
+ idBase: string;
97
+ lang: string;
98
+ code: string;
99
+ /**
100
+ * `[start, end]` character ranges (into `code`) of synthesized placeholder
101
+ * values — leaves with no authored `example`/`default`/`enum` whose value was
102
+ * derived solely from the declared type (e.g. `"string"`, `0`). The UI dims
103
+ * these so authored examples stand out.
104
+ */
105
+ placeholders: [number, number][];
106
+ /**
107
+ * Per-line schema path: `linePaths[i]` is the path of the property whose value
108
+ * appears on line `i` of `code` (undefined for closing braces / blank lines).
109
+ * The UI turns these into clickable anchors to the left-hand schema rows.
110
+ */
111
+ linePaths: (SchemaPath | undefined)[];
112
+ };
113
+ /** Builds JSON response samples for each response that has a usable schema/example. */
114
+ export declare function responseSamples(operation: IrOperation): ResponseSample[];
115
+ //# sourceMappingURL=sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../../src/internal/openapi/sample.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAY,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAA+B,KAAK,UAAU,EAAQ,MAAM,cAAc,CAAA;AACjF,OAAO,KAAK,EAAe,WAAW,EAAe,MAAM,aAAa,CAAA;AAGxE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;;;OAKG;IACH,OAAO,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE;YAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QAClD,WAAW,EAAE;YAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;SAAE,EAAE,CAAA;QACjE,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAA;KACpC,CAAA;IACD;;;;;;OAMG;IACH,WAAW,EAAE;QAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAA;KAAE,EAAE,CAAA;IACjE;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,WAAW,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAA;CACpC,CAAA;AAeD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA0CjF;AA4HD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+BvF;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IAChC;;;;OAIG;IACH,SAAS,EAAE,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAA;CACtC,CAAA;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,cAAc,EAAE,CA6BxE"}
@@ -0,0 +1,434 @@
1
+ import { snippetz } from '@scalar/snippetz';
2
+ import { mediaIdBase, responseIdBase, slug } from './anchors.js';
3
+ import { unionVariantSchemas, unionVariantSegment } from './union.js';
4
+ /** Query parameters above this count collapse behind a "Show more" toggle. */
5
+ const collapseQueryThreshold = 2;
6
+ /**
7
+ * The set of clients we expose in the code-sample selector. Kept intentionally
8
+ * small (cURL + JavaScript fetch) to start; the `snippetz` library supports many
9
+ * more targets if we widen this later.
10
+ */
11
+ const clients = [
12
+ { id: 'shell/curl', target: 'shell', client: 'curl', label: 'cURL', lang: 'bash' },
13
+ { id: 'js/fetch', target: 'js', client: 'fetch', label: 'TypeScript', lang: 'ts' },
14
+ ];
15
+ /**
16
+ * Builds request code samples for an operation using `@scalar/snippetz` — the
17
+ * same snippet generator Scalar uses. Returns one entry per supported client.
18
+ */
19
+ export function codeSamples(operation, server) {
20
+ const request = harRequest(operation, server);
21
+ const generator = snippetz();
22
+ const queryCount = request.queryString?.length ?? 0;
23
+ // When there are many query params, also prepare a request limited to the
24
+ // first few so the sample can collapse the rest behind a "Show more" toggle.
25
+ const collapsedRequest = queryCount > collapseQueryThreshold
26
+ ? { ...request, queryString: (request.queryString ?? []).slice(0, collapseQueryThreshold) }
27
+ : undefined;
28
+ const samples = [];
29
+ for (const client of clients) {
30
+ const code = generator.print(client.target, client.client, request);
31
+ if (!code)
32
+ continue;
33
+ const display = splitQueryLines(code, client.lang);
34
+ const sample = {
35
+ id: client.id,
36
+ label: client.label,
37
+ lang: client.lang,
38
+ code,
39
+ display,
40
+ anchors: pathAnchors(display, operation),
41
+ colorRanges: queryColorRanges(display, operation),
42
+ lineAnchors: queryLineAnchors(display, operation),
43
+ };
44
+ if (collapsedRequest) {
45
+ const collapsedCode = generator.print(client.target, client.client, collapsedRequest);
46
+ if (collapsedCode) {
47
+ const collapsedDisplay = splitQueryLines(collapsedCode, client.lang);
48
+ sample.collapsed = {
49
+ display: collapsedDisplay,
50
+ anchors: pathAnchors(collapsedDisplay, operation),
51
+ colorRanges: queryColorRanges(collapsedDisplay, operation),
52
+ lineAnchors: queryLineAnchors(collapsedDisplay, operation),
53
+ };
54
+ sample.hiddenQueryCount = queryCount - collapseQueryThreshold;
55
+ }
56
+ }
57
+ samples.push(sample);
58
+ }
59
+ return samples;
60
+ }
61
+ /**
62
+ * Reformats a generated request snippet so each query parameter sits on its own
63
+ * line. The query string lives in the first single-quoted URL containing `?`.
64
+ *
65
+ * - TypeScript: splits the URL literal into `'base' + '?a=1' + '&b=2'`, which is
66
+ * valid JS (and identical at runtime), so the copied/displayed code both work.
67
+ * - cURL (and other shells): inserts literal newlines inside the quoted URL.
68
+ * This is for display only — the unformatted {@link CodeSample.code} is what
69
+ * the copy button uses, so the runnable request stays intact.
70
+ */
71
+ function splitQueryLines(code, lang) {
72
+ const match = code.match(/'([^'\n]*\?[^'\n]*)'/);
73
+ if (!match)
74
+ return code;
75
+ const [token, url = ''] = match;
76
+ const questionIndex = url.indexOf('?');
77
+ const base = url.slice(0, questionIndex);
78
+ const params = url.slice(questionIndex + 1).split('&');
79
+ if (params.length === 0)
80
+ return code;
81
+ const replacement = lang === 'ts' || lang === 'js'
82
+ ? [`'${base}'`, `'?${params[0]}'`, ...params.slice(1).map((p) => `'&${p}'`)].join(' +\n ')
83
+ : `'${base}\n ?${params[0]}${params
84
+ .slice(1)
85
+ .map((p) => `\n &${p}`)
86
+ .join('')}'`;
87
+ return code.replace(token, replacement);
88
+ }
89
+ /**
90
+ * Locates clickable path-parameter spans within a request sample. The
91
+ * substituted value is matched against `display` and mapped to its docs row id
92
+ * (`<operationId>-<slug(name)>`). Path params sit inline within the URL line, so
93
+ * only their value is anchored (query params get whole-line anchors instead).
94
+ *
95
+ * Matching is deliberately conservative: a value is only anchored when it
96
+ * appears exactly once, so an ambiguous value (e.g. a generic `0`/`string` that
97
+ * also appears in the body) silently degrades to non-clickable.
98
+ */
99
+ function pathAnchors(display, operation) {
100
+ const anchors = [];
101
+ for (const parameter of operation.parameters) {
102
+ if (parameter.deprecated || parameter.in !== 'path')
103
+ continue;
104
+ const value = encodeURIComponent(String(sampleParameter(parameter)));
105
+ const index = singleIndexOf(display, value);
106
+ if (index >= 0)
107
+ anchors.push({
108
+ range: [index, index + value.length],
109
+ id: `${operation.id}-${slug(parameter.name)}`,
110
+ });
111
+ }
112
+ return anchors;
113
+ }
114
+ /**
115
+ * Maps each line of `display` to a query parameter's docs row id, so the whole
116
+ * line can be made clickable (like response example lines). Relies on
117
+ * {@link splitQueryLines} having placed each query parameter on its own line
118
+ * starting with `?`/`&` (optionally quoted in the TS variant).
119
+ */
120
+ function queryLineAnchors(display, operation) {
121
+ const ids = new Map();
122
+ for (const parameter of operation.parameters)
123
+ if (parameter.in === 'query' && !parameter.deprecated)
124
+ ids.set(parameter.name, `${operation.id}-${slug(parameter.name)}`);
125
+ return display.split('\n').map((line) => {
126
+ const match = line.match(/^\s*'?[?&]([^=]+)=/);
127
+ return match ? ids.get(match[1] ?? '') : undefined;
128
+ });
129
+ }
130
+ /**
131
+ * Computes character ranges for each query parameter's name and value within
132
+ * `display` so the UI can recolor them like the JSON response example (names use
133
+ * the JSON-string color, values the JSON-number color). Relies on
134
+ * {@link splitQueryLines} having placed each query parameter on its own line
135
+ * starting with `?`/`&` (optionally quoted in the TS variant).
136
+ */
137
+ function queryColorRanges(display, operation) {
138
+ const names = new Set();
139
+ for (const parameter of operation.parameters)
140
+ if (parameter.in === 'query' && !parameter.deprecated)
141
+ names.add(parameter.name);
142
+ const ranges = [];
143
+ let offset = 0;
144
+ for (const line of display.split('\n')) {
145
+ // Capture: (prefix incl. quote + ?/&)(name)(=)(value up to closing quote/EOL)
146
+ const match = line.match(/^(\s*'?[?&])([^=]+)(=)([^'\n]*)/);
147
+ if (match) {
148
+ const [, prefix = '', name = '', , value = ''] = match;
149
+ if (names.has(name)) {
150
+ // Color the `?`/`&` separator (last char of the prefix) and the name
151
+ // together as one green span.
152
+ const nameStart = offset + prefix.length - 1;
153
+ const nameEnd = offset + prefix.length + name.length;
154
+ ranges.push({ range: [nameStart, nameEnd], kind: 'key' });
155
+ if (value.length > 0) {
156
+ const valueStart = nameEnd + 1; // skip '='
157
+ ranges.push({ range: [valueStart, valueStart + value.length], kind: 'value' });
158
+ }
159
+ }
160
+ }
161
+ offset += line.length + 1; // +1 for the consumed newline
162
+ }
163
+ return ranges;
164
+ }
165
+ /** Returns the index of `needle` in `haystack`, or -1 unless it occurs once. */
166
+ function singleIndexOf(haystack, needle) {
167
+ if (!needle)
168
+ return -1;
169
+ const first = haystack.indexOf(needle);
170
+ if (first < 0)
171
+ return -1;
172
+ if (haystack.indexOf(needle, first + 1) >= 0)
173
+ return -1;
174
+ return first;
175
+ }
176
+ /**
177
+ * Constructs a HAR-style request from an operation by filling path/query/header
178
+ * parameters and the request body with representative sample values. This is the
179
+ * input `snippetz` consumes to render code samples.
180
+ */
181
+ export function harRequest(operation, server) {
182
+ const base = (server ?? '').replace(/\/$/, '');
183
+ let path = operation.path;
184
+ const headers = [];
185
+ const queryString = [];
186
+ for (const parameter of operation.parameters) {
187
+ if (parameter.deprecated)
188
+ continue;
189
+ const value = String(sampleParameter(parameter));
190
+ if (parameter.in === 'path')
191
+ path = path.replace(`{${parameter.name}}`, encodeURIComponent(value));
192
+ else if (parameter.in === 'query')
193
+ queryString.push({ name: parameter.name, value });
194
+ else if (parameter.in === 'header' && parameter.required)
195
+ headers.push({ name: parameter.name, value });
196
+ }
197
+ let postData;
198
+ const media = operation.requestBody?.content[0];
199
+ if (media) {
200
+ headers.push({ name: 'Content-Type', value: media.mediaType });
201
+ postData = { mimeType: media.mediaType, text: sampleBody(media) };
202
+ }
203
+ return {
204
+ method: operation.method,
205
+ url: `${base}${path}`,
206
+ headers,
207
+ queryString,
208
+ ...(postData ? { postData } : {}),
209
+ };
210
+ }
211
+ /** Builds JSON response samples for each response that has a usable schema/example. */
212
+ export function responseSamples(operation) {
213
+ const samples = [];
214
+ for (const response of operation.responses) {
215
+ const media = response.content.find((entry) => entry.mediaType.includes('json'));
216
+ if (!media)
217
+ continue;
218
+ const idBase = mediaIdBase(responseIdBase(operation.id, response.status), media.mediaType, response.content.length);
219
+ // An authored example for the whole media type has no synthesized
220
+ // placeholders; build a tree from the literal value so we can still emit
221
+ // per-line anchors. Otherwise build a tagged tree from the schema so we can
222
+ // also dim type-derived leaves.
223
+ const tree = media.example !== undefined ? sampleTreeFromValue(media.example) : sampleTree(media.schema);
224
+ if (tree === undefined)
225
+ continue;
226
+ const { code, placeholders, linePaths } = serializeSample(tree);
227
+ samples.push({
228
+ status: response.status,
229
+ description: response.description,
230
+ idBase,
231
+ lang: 'json',
232
+ code,
233
+ placeholders,
234
+ linePaths,
235
+ });
236
+ }
237
+ return samples;
238
+ }
239
+ /** Serializes a request body media type to its example/sample JSON text. */
240
+ function sampleBody(media) {
241
+ const value = media.example ?? sampleFromSchema(media.schema);
242
+ if (media.mediaType.includes('json'))
243
+ return JSON.stringify(value ?? {}, null, 2);
244
+ return typeof value === 'string' ? value : JSON.stringify(value ?? {});
245
+ }
246
+ /** Produces a representative value for a single parameter. */
247
+ function sampleParameter(parameter) {
248
+ const value = sampleFromSchema(parameter.schema);
249
+ if (value !== undefined)
250
+ return value;
251
+ return parameter.name;
252
+ }
253
+ /**
254
+ * Builds a tagged sample tree from a (dereferenced) JSON Schema, preferring
255
+ * authored `example`/`default`/`enum` values and otherwise synthesizing one
256
+ * from the declared type. Bounded by a recursion depth to guard against cycles.
257
+ */
258
+ function sampleTree(schema, depth = 0) {
259
+ if (!schema || depth > 6)
260
+ return undefined;
261
+ if (schema['example'] !== undefined)
262
+ return { kind: 'leaf', value: schema['example'], placeholder: false };
263
+ const examples = schema['examples'];
264
+ if (Array.isArray(examples) && examples.length > 0)
265
+ return { kind: 'leaf', value: examples[0], placeholder: false };
266
+ if (schema['default'] !== undefined)
267
+ return { kind: 'leaf', value: schema['default'], placeholder: false };
268
+ const enumValues = schema['enum'];
269
+ if (Array.isArray(enumValues) && enumValues.length > 0)
270
+ return { kind: 'leaf', value: enumValues[0], placeholder: false };
271
+ // oneOf/anyOf variant picker (matching the docs renderer): sample the first
272
+ // variant and tag the resulting node with the variant's path segment, so its
273
+ // children's anchor paths line up with the variant-qualified docs rows.
274
+ if (schema['type'] !== 'array') {
275
+ const variants = unionVariantSchemas(schema);
276
+ if (variants) {
277
+ const node = sampleTree(variants[0], depth + 1);
278
+ if (node && (node.kind === 'object' || node.kind === 'array'))
279
+ return { ...node, pathSegment: unionVariantSegment(0) };
280
+ return node;
281
+ }
282
+ }
283
+ // Composition keywords: fall back to the first usable subschema.
284
+ for (const key of ['allOf', 'anyOf', 'oneOf']) {
285
+ const subschemas = schema[key];
286
+ if (Array.isArray(subschemas) && subschemas[0])
287
+ return sampleTree(subschemas[0], depth + 1);
288
+ }
289
+ const rawType = schema['type'];
290
+ const type = Array.isArray(rawType) ? rawType[0] : rawType;
291
+ if (type === 'object' || schema['properties']) {
292
+ const properties = (schema['properties'] ?? {});
293
+ const entries = [];
294
+ for (const [name, property] of Object.entries(properties)) {
295
+ const node = sampleTree(property, depth + 1);
296
+ // Match `JSON.stringify`, which drops keys whose value is `undefined`.
297
+ if (node !== undefined)
298
+ entries.push([name, node]);
299
+ }
300
+ return { kind: 'object', entries };
301
+ }
302
+ if (type === 'array') {
303
+ const items = schema['items'];
304
+ const item = sampleTree(items, depth + 1);
305
+ return { kind: 'array', items: item === undefined ? [] : [item] };
306
+ }
307
+ if (type === 'string') {
308
+ const format = schema['format'];
309
+ if (format === 'date-time')
310
+ return { kind: 'leaf', value: new Date(0).toISOString(), placeholder: true };
311
+ if (format === 'date')
312
+ return { kind: 'leaf', value: new Date(0).toISOString().slice(0, 10), placeholder: true };
313
+ if (format === 'uuid')
314
+ return { kind: 'leaf', value: '00000000-0000-0000-0000-000000000000', placeholder: true };
315
+ return { kind: 'leaf', value: 'string', placeholder: true };
316
+ }
317
+ if (type === 'integer' || type === 'number')
318
+ return { kind: 'leaf', value: 0, placeholder: true };
319
+ if (type === 'boolean')
320
+ return { kind: 'leaf', value: true, placeholder: true };
321
+ return undefined;
322
+ }
323
+ /**
324
+ * Builds a {@link SampleNode} tree from an already-resolved literal value (an
325
+ * authored media-type example). All leaves are non-placeholders since the value
326
+ * was authored. Object keys whose value serializes to `undefined` are dropped to
327
+ * match `JSON.stringify`.
328
+ */
329
+ function sampleTreeFromValue(value) {
330
+ if (Array.isArray(value))
331
+ return { kind: 'array', items: value.map((item) => sampleTreeFromValue(item ?? null)) };
332
+ if (value && typeof value === 'object') {
333
+ const entries = [];
334
+ for (const [key, child] of Object.entries(value)) {
335
+ if (JSON.stringify(child) === undefined)
336
+ continue;
337
+ entries.push([key, sampleTreeFromValue(child)]);
338
+ }
339
+ return { kind: 'object', entries };
340
+ }
341
+ return { kind: 'leaf', value, placeholder: false };
342
+ }
343
+ /** Strips the placeholder tags from a {@link SampleNode} into a plain value. */
344
+ function toValue(node) {
345
+ if (node === undefined)
346
+ return undefined;
347
+ if (node.kind === 'leaf')
348
+ return node.value;
349
+ if (node.kind === 'array')
350
+ return node.items.map(toValue);
351
+ const result = {};
352
+ for (const [name, child] of node.entries)
353
+ result[name] = toValue(child);
354
+ return result;
355
+ }
356
+ /**
357
+ * Pretty-prints a {@link SampleNode} as JSON (matching
358
+ * `JSON.stringify(value, null, 2)`) while recording `[start, end]` character
359
+ * ranges of placeholder leaf literals.
360
+ */
361
+ function serializeSample(root) {
362
+ let code = '';
363
+ let line = 0;
364
+ const placeholders = [];
365
+ const linePaths = [];
366
+ function mark(path) {
367
+ if (path.length > 0)
368
+ linePaths[line] = path;
369
+ }
370
+ function newline() {
371
+ code += '\n';
372
+ line++;
373
+ }
374
+ function walk(node, indent, path) {
375
+ const pad = ' '.repeat(indent);
376
+ const padInner = ' '.repeat(indent + 1);
377
+ // Union variant nodes carry a virtual path segment (e.g. `variant-0`) so
378
+ // their children's anchor paths match the variant-qualified docs rows.
379
+ const childBase = node.kind !== 'leaf' && node.pathSegment ? [...path, node.pathSegment] : path;
380
+ if (node.kind === 'object') {
381
+ if (node.entries.length === 0) {
382
+ code += '{}';
383
+ return;
384
+ }
385
+ code += '{';
386
+ newline();
387
+ node.entries.forEach(([key, value], index) => {
388
+ const childPath = [...childBase, key];
389
+ mark(childPath);
390
+ code += `${padInner}${JSON.stringify(key)}: `;
391
+ walk(value, indent + 1, childPath);
392
+ code += index < node.entries.length - 1 ? ',' : '';
393
+ newline();
394
+ });
395
+ code += `${pad}}`;
396
+ return;
397
+ }
398
+ if (node.kind === 'array') {
399
+ if (node.items.length === 0) {
400
+ code += '[]';
401
+ return;
402
+ }
403
+ code += '[';
404
+ newline();
405
+ node.items.forEach((item, index) => {
406
+ // Scalar array items map to the array property's own path.
407
+ if (item.kind === 'leaf')
408
+ mark(childBase);
409
+ code += padInner;
410
+ walk(item, indent + 1, childBase);
411
+ code += index < node.items.length - 1 ? ',' : '';
412
+ newline();
413
+ });
414
+ code += `${pad}]`;
415
+ return;
416
+ }
417
+ const literal = JSON.stringify(node.value) ?? 'null';
418
+ const start = code.length;
419
+ code += literal;
420
+ if (node.placeholder)
421
+ placeholders.push([start, code.length]);
422
+ }
423
+ walk(root, 0, []);
424
+ return { code, placeholders, linePaths };
425
+ }
426
+ /**
427
+ * Generates a representative value from a (dereferenced) JSON Schema, preferring
428
+ * authored `example`/`default`/`enum` values and otherwise synthesizing one from
429
+ * the declared type. Bounded by a recursion depth to guard against cycles.
430
+ */
431
+ function sampleFromSchema(schema, depth = 0) {
432
+ return toValue(sampleTree(schema, depth));
433
+ }
434
+ //# sourceMappingURL=sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../../src/internal/openapi/sample.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { SearchDocuments } from '../search.js';
2
+ import type { Ir } from './parser.js';
3
+ /**
4
+ * Builds search index documents for an OpenAPI section so the auto-generated
5
+ * reference is discoverable by Vocs's search (which otherwise only crawls
6
+ * `.md`/`.mdx` files).
7
+ *
8
+ * Mirrors the page/anchor structure of the rendered reference:
9
+ * - the `/api` landing page (one `page` document),
10
+ * - each category page `/api/<group>` (one `page` document), and
11
+ * - each operation as a `section` document anchored on its category page
12
+ * (`/api/<group>#<operation>`).
13
+ *
14
+ * Operation documents fold the method, path, parameter names/descriptions and
15
+ * response descriptions into their searchable `text` so endpoints surface for a
16
+ * wide range of queries (summary, path, parameter, status code, …).
17
+ */
18
+ export declare function toSearchDocuments(ir: Ir): SearchDocuments.Document[];
19
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/internal/openapi/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,EAAE,EAAe,MAAM,aAAa,CAAA;AAElD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC,QAAQ,EAAE,CAqDpE"}