@scalar/workspace-store 0.40.2 → 0.40.4

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 (368) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/client.d.ts +7 -2
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +820 -681
  5. package/dist/entities/auth/index.js +96 -101
  6. package/dist/entities/auth/schema.d.ts +10 -0
  7. package/dist/entities/auth/schema.d.ts.map +1 -1
  8. package/dist/entities/auth/schema.js +42 -116
  9. package/dist/entities/history/index.js +80 -60
  10. package/dist/entities/history/schema.js +94 -88
  11. package/dist/events/bus.js +146 -93
  12. package/dist/events/definitions/analytics.js +1 -1
  13. package/dist/events/definitions/auth.js +1 -1
  14. package/dist/events/definitions/common.js +1 -1
  15. package/dist/events/definitions/cookie.js +1 -1
  16. package/dist/events/definitions/document.js +1 -1
  17. package/dist/events/definitions/environment.js +1 -1
  18. package/dist/events/definitions/hooks.js +1 -1
  19. package/dist/events/definitions/index.js +1 -1
  20. package/dist/events/definitions/meta.js +1 -1
  21. package/dist/events/definitions/operation.js +1 -1
  22. package/dist/events/definitions/server.js +1 -1
  23. package/dist/events/definitions/tabs.js +1 -1
  24. package/dist/events/definitions/tag.js +1 -1
  25. package/dist/events/definitions/ui.js +1 -1
  26. package/dist/events/definitions/workspace.js +1 -1
  27. package/dist/events/index.js +3 -9
  28. package/dist/events/listeners.js +20 -22
  29. package/dist/events/old-definitions.js +15 -12
  30. package/dist/helpers/deep-clone.js +33 -17
  31. package/dist/helpers/detect-changes-proxy.js +95 -57
  32. package/dist/helpers/general.js +78 -23
  33. package/dist/helpers/generate-unique-value.js +77 -45
  34. package/dist/helpers/get-fetch.js +12 -10
  35. package/dist/helpers/get-resolved-ref.js +11 -10
  36. package/dist/helpers/is-non-optional-security-requirement.js +3 -6
  37. package/dist/helpers/merge-object.js +71 -30
  38. package/dist/helpers/overrides-proxy.js +98 -58
  39. package/dist/helpers/unpack-proxy.js +60 -58
  40. package/dist/mutators/auth.js +358 -230
  41. package/dist/mutators/cookie.js +59 -42
  42. package/dist/mutators/document.js +104 -66
  43. package/dist/mutators/environment.js +97 -72
  44. package/dist/mutators/helpers.js +9 -13
  45. package/dist/mutators/index.js +62 -49
  46. package/dist/mutators/operation/body.js +88 -57
  47. package/dist/mutators/operation/extensions.js +20 -12
  48. package/dist/mutators/operation/helpers/fetch-request-to-har.js +144 -107
  49. package/dist/mutators/operation/helpers/fetch-response-to-har.js +143 -95
  50. package/dist/mutators/operation/helpers/get-parameter-position.js +12 -12
  51. package/dist/mutators/operation/helpers/har-to-operation.js +169 -132
  52. package/dist/mutators/operation/helpers/sync-path-parameters.js +109 -60
  53. package/dist/mutators/operation/history.js +60 -64
  54. package/dist/mutators/operation/index.js +25 -49
  55. package/dist/mutators/operation/operation.js +349 -240
  56. package/dist/mutators/operation/parameters.js +157 -93
  57. package/dist/mutators/server.js +213 -152
  58. package/dist/mutators/tabs.js +173 -130
  59. package/dist/mutators/tag.js +131 -97
  60. package/dist/mutators/workspace.js +72 -42
  61. package/dist/navigation/get-navigation-options.js +97 -84
  62. package/dist/navigation/helpers/get-openapi-object.js +46 -29
  63. package/dist/navigation/helpers/get-operation-entries.js +72 -32
  64. package/dist/navigation/helpers/get-parent-entry.js +16 -12
  65. package/dist/navigation/helpers/get-tag-entries.js +56 -29
  66. package/dist/navigation/helpers/get-tag.js +22 -23
  67. package/dist/navigation/helpers/get-x-keys.js +13 -9
  68. package/dist/navigation/helpers/traverse-description.js +90 -72
  69. package/dist/navigation/helpers/traverse-document.js +111 -98
  70. package/dist/navigation/helpers/traverse-examples.js +35 -31
  71. package/dist/navigation/helpers/traverse-paths.js +118 -106
  72. package/dist/navigation/helpers/traverse-schemas.js +65 -64
  73. package/dist/navigation/helpers/traverse-tags.js +158 -129
  74. package/dist/navigation/helpers/traverse-webhooks.js +96 -90
  75. package/dist/navigation/helpers/update-order-ids.js +59 -51
  76. package/dist/navigation/helpers/utils.js +71 -21
  77. package/dist/navigation/index.js +5 -13
  78. package/dist/navigation/types.js +1 -1
  79. package/dist/persistence/index.js +283 -285
  80. package/dist/persistence/indexdb.js +263 -126
  81. package/dist/plugins/bundler/helpers.js +21 -12
  82. package/dist/plugins/bundler/index.d.ts +7 -0
  83. package/dist/plugins/bundler/index.d.ts.map +1 -1
  84. package/dist/plugins/bundler/index.js +305 -171
  85. package/dist/plugins/client/index.js +1 -5
  86. package/dist/plugins/client/persistence.js +95 -90
  87. package/dist/resolve.js +18 -25
  88. package/dist/schemas/compose.js +6 -7
  89. package/dist/schemas/extensions/document/x-internal.js +3 -7
  90. package/dist/schemas/extensions/document/x-scalar-environments.js +16 -22
  91. package/dist/schemas/extensions/document/x-scalar-icon.js +3 -7
  92. package/dist/schemas/extensions/document/x-scalar-ignore.js +3 -7
  93. package/dist/schemas/extensions/document/x-scalar-is-dirty.js +21 -8
  94. package/dist/schemas/extensions/document/x-scalar-original-document-hash.js +17 -8
  95. package/dist/schemas/extensions/document/x-scalar-registry-meta.js +15 -21
  96. package/dist/schemas/extensions/document/x-scalar-sdk-installation.js +5 -13
  97. package/dist/schemas/extensions/document/x-scalar-watch-mode.js +4 -8
  98. package/dist/schemas/extensions/document/x-tags.js +3 -7
  99. package/dist/schemas/extensions/example/x-disabled.js +17 -7
  100. package/dist/schemas/extensions/general/x-scalar-active-environment.js +4 -7
  101. package/dist/schemas/extensions/general/x-scalar-cookies.js +9 -14
  102. package/dist/schemas/extensions/general/x-scalar-order.js +8 -7
  103. package/dist/schemas/extensions/operation/index.js +4 -23
  104. package/dist/schemas/extensions/operation/x-badge.js +42 -50
  105. package/dist/schemas/extensions/operation/x-code-samples.js +8 -12
  106. package/dist/schemas/extensions/operation/x-draft-examples.js +3 -7
  107. package/dist/schemas/extensions/operation/x-post-response.js +18 -7
  108. package/dist/schemas/extensions/operation/x-scalar-disable-parameters.js +57 -13
  109. package/dist/schemas/extensions/operation/x-scalar-selected-content-type.js +9 -7
  110. package/dist/schemas/extensions/operation/x-scalar-stability.js +15 -14
  111. package/dist/schemas/extensions/parameter/x-global.js +12 -7
  112. package/dist/schemas/extensions/schema/x-additional-properties-name.js +10 -7
  113. package/dist/schemas/extensions/schema/x-enum-descriptions.js +17 -12
  114. package/dist/schemas/extensions/schema/x-enum-varnames.js +21 -8
  115. package/dist/schemas/extensions/schema/x-examples.js +3 -7
  116. package/dist/schemas/extensions/schema/x-variable.js +3 -7
  117. package/dist/schemas/extensions/security/index.js +1 -1
  118. package/dist/schemas/extensions/security/x-default-scopes.js +16 -7
  119. package/dist/schemas/extensions/security/x-scalar-credentials-location.js +16 -7
  120. package/dist/schemas/extensions/security/x-scalar-security-body.js +14 -7
  121. package/dist/schemas/extensions/security/x-scalar-security-query.js +14 -7
  122. package/dist/schemas/extensions/security/x-scalar-security-secrets.js +66 -37
  123. package/dist/schemas/extensions/security/x-tokenName.js +11 -7
  124. package/dist/schemas/extensions/security/x-use-pkce.js +6 -10
  125. package/dist/schemas/extensions/server/x-scalar-selected-server.js +3 -7
  126. package/dist/schemas/extensions/tag/index.js +1 -1
  127. package/dist/schemas/extensions/tag/x-display-name.js +11 -7
  128. package/dist/schemas/extensions/tag/x-tag-groups.js +13 -15
  129. package/dist/schemas/extensions/workspace/index.js +2 -11
  130. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js +13 -7
  131. package/dist/schemas/extensions/workspace/x-scalar-tabs.js +15 -13
  132. package/dist/schemas/extensions.js +11 -15
  133. package/dist/schemas/inmemory-workspace.d.ts +6 -0
  134. package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
  135. package/dist/schemas/inmemory-workspace.js +13 -21
  136. package/dist/schemas/navigation.js +48 -85
  137. package/dist/schemas/reference-config/appearance.js +15 -22
  138. package/dist/schemas/reference-config/features.js +14 -21
  139. package/dist/schemas/reference-config/index.d.ts +2 -0
  140. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  141. package/dist/schemas/reference-config/index.js +42 -44
  142. package/dist/schemas/reference-config/meta.js +11 -18
  143. package/dist/schemas/reference-config/routing.js +7 -14
  144. package/dist/schemas/reference-config/settings.d.ts +2 -0
  145. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  146. package/dist/schemas/reference-config/settings.js +10 -17
  147. package/dist/schemas/typebox-coerce.js +23 -6
  148. package/dist/schemas/v3.1/strict/callback.js +6 -12
  149. package/dist/schemas/v3.1/strict/components.js +26 -48
  150. package/dist/schemas/v3.1/strict/contact.js +9 -12
  151. package/dist/schemas/v3.1/strict/discriminator.js +11 -10
  152. package/dist/schemas/v3.1/strict/encoding.js +15 -12
  153. package/dist/schemas/v3.1/strict/example.js +11 -13
  154. package/dist/schemas/v3.1/strict/external-documentation.js +7 -10
  155. package/dist/schemas/v3.1/strict/header.js +27 -28
  156. package/dist/schemas/v3.1/strict/info.js +10 -16
  157. package/dist/schemas/v3.1/strict/license.js +9 -12
  158. package/dist/schemas/v3.1/strict/link.js +22 -19
  159. package/dist/schemas/v3.1/strict/media-type.js +17 -16
  160. package/dist/schemas/v3.1/strict/oauth-flow.js +28 -62
  161. package/dist/schemas/v3.1/strict/oauthflows.js +14 -20
  162. package/dist/schemas/v3.1/strict/openapi-document.d.ts +70 -0
  163. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  164. package/dist/schemas/v3.1/strict/openapi-document.js +126 -210
  165. package/dist/schemas/v3.1/strict/operation.js +16 -43
  166. package/dist/schemas/v3.1/strict/parameter.d.ts +6 -0
  167. package/dist/schemas/v3.1/strict/parameter.d.ts.map +1 -1
  168. package/dist/schemas/v3.1/strict/parameter.js +29 -35
  169. package/dist/schemas/v3.1/strict/path-item.js +36 -40
  170. package/dist/schemas/v3.1/strict/paths.js +8 -11
  171. package/dist/schemas/v3.1/strict/ref-definitions.js +76 -100
  172. package/dist/schemas/v3.1/strict/reference.js +18 -21
  173. package/dist/schemas/v3.1/strict/request-body.js +8 -16
  174. package/dist/schemas/v3.1/strict/response.js +12 -16
  175. package/dist/schemas/v3.1/strict/responses.js +13 -11
  176. package/dist/schemas/v3.1/strict/schema.js +149 -157
  177. package/dist/schemas/v3.1/strict/security-requirement.js +13 -12
  178. package/dist/schemas/v3.1/strict/security-scheme.js +29 -41
  179. package/dist/schemas/v3.1/strict/server-variable.js +9 -12
  180. package/dist/schemas/v3.1/strict/server.js +10 -13
  181. package/dist/schemas/v3.1/strict/tag.js +11 -20
  182. package/dist/schemas/v3.1/strict/type-guards.js +20 -20
  183. package/dist/schemas/v3.1/strict/xml.js +17 -16
  184. package/dist/schemas/workspace-specification/index.js +11 -23
  185. package/dist/schemas/workspace-specification/info.js +4 -8
  186. package/dist/schemas/workspace.d.ts +6 -0
  187. package/dist/schemas/workspace.d.ts.map +1 -1
  188. package/dist/schemas/workspace.js +25 -51
  189. package/dist/schemas.js +2 -6
  190. package/dist/server.js +286 -176
  191. package/dist/workspace-plugin.js +1 -1
  192. package/package.json +13 -19
  193. package/dist/client.js.map +0 -7
  194. package/dist/entities/auth/index.js.map +0 -7
  195. package/dist/entities/auth/schema.js.map +0 -7
  196. package/dist/entities/history/index.js.map +0 -7
  197. package/dist/entities/history/schema.js.map +0 -7
  198. package/dist/events/bus.js.map +0 -7
  199. package/dist/events/definitions/analytics.js.map +0 -7
  200. package/dist/events/definitions/auth.js.map +0 -7
  201. package/dist/events/definitions/common.js.map +0 -7
  202. package/dist/events/definitions/cookie.js.map +0 -7
  203. package/dist/events/definitions/document.js.map +0 -7
  204. package/dist/events/definitions/environment.js.map +0 -7
  205. package/dist/events/definitions/hooks.js.map +0 -7
  206. package/dist/events/definitions/index.js.map +0 -7
  207. package/dist/events/definitions/meta.js.map +0 -7
  208. package/dist/events/definitions/operation.js.map +0 -7
  209. package/dist/events/definitions/server.js.map +0 -7
  210. package/dist/events/definitions/tabs.js.map +0 -7
  211. package/dist/events/definitions/tag.js.map +0 -7
  212. package/dist/events/definitions/ui.js.map +0 -7
  213. package/dist/events/definitions/workspace.js.map +0 -7
  214. package/dist/events/index.js.map +0 -7
  215. package/dist/events/listeners.js.map +0 -7
  216. package/dist/events/old-definitions.js.map +0 -7
  217. package/dist/helpers/apply-selective-updates.d.ts +0 -19
  218. package/dist/helpers/apply-selective-updates.d.ts.map +0 -1
  219. package/dist/helpers/apply-selective-updates.js +0 -37
  220. package/dist/helpers/apply-selective-updates.js.map +0 -7
  221. package/dist/helpers/deep-clone.js.map +0 -7
  222. package/dist/helpers/detect-changes-proxy.js.map +0 -7
  223. package/dist/helpers/general.js.map +0 -7
  224. package/dist/helpers/generate-unique-value.js.map +0 -7
  225. package/dist/helpers/get-fetch.js.map +0 -7
  226. package/dist/helpers/get-resolved-ref.js.map +0 -7
  227. package/dist/helpers/is-non-optional-security-requirement.js.map +0 -7
  228. package/dist/helpers/merge-object.js.map +0 -7
  229. package/dist/helpers/overrides-proxy.js.map +0 -7
  230. package/dist/helpers/unpack-proxy.js.map +0 -7
  231. package/dist/mutators/auth.js.map +0 -7
  232. package/dist/mutators/cookie.js.map +0 -7
  233. package/dist/mutators/document.js.map +0 -7
  234. package/dist/mutators/environment.js.map +0 -7
  235. package/dist/mutators/helpers.js.map +0 -7
  236. package/dist/mutators/index.js.map +0 -7
  237. package/dist/mutators/operation/body.js.map +0 -7
  238. package/dist/mutators/operation/extensions.js.map +0 -7
  239. package/dist/mutators/operation/helpers/fetch-request-to-har.js.map +0 -7
  240. package/dist/mutators/operation/helpers/fetch-response-to-har.js.map +0 -7
  241. package/dist/mutators/operation/helpers/get-parameter-position.js.map +0 -7
  242. package/dist/mutators/operation/helpers/har-to-operation.js.map +0 -7
  243. package/dist/mutators/operation/helpers/sync-path-parameters.js.map +0 -7
  244. package/dist/mutators/operation/history.js.map +0 -7
  245. package/dist/mutators/operation/index.js.map +0 -7
  246. package/dist/mutators/operation/operation.js.map +0 -7
  247. package/dist/mutators/operation/parameters.js.map +0 -7
  248. package/dist/mutators/server.js.map +0 -7
  249. package/dist/mutators/tabs.js.map +0 -7
  250. package/dist/mutators/tag.js.map +0 -7
  251. package/dist/mutators/workspace.js.map +0 -7
  252. package/dist/navigation/get-navigation-options.js.map +0 -7
  253. package/dist/navigation/helpers/get-openapi-object.js.map +0 -7
  254. package/dist/navigation/helpers/get-operation-entries.js.map +0 -7
  255. package/dist/navigation/helpers/get-parent-entry.js.map +0 -7
  256. package/dist/navigation/helpers/get-tag-entries.js.map +0 -7
  257. package/dist/navigation/helpers/get-tag.js.map +0 -7
  258. package/dist/navigation/helpers/get-x-keys.js.map +0 -7
  259. package/dist/navigation/helpers/traverse-description.js.map +0 -7
  260. package/dist/navigation/helpers/traverse-document.js.map +0 -7
  261. package/dist/navigation/helpers/traverse-examples.js.map +0 -7
  262. package/dist/navigation/helpers/traverse-paths.js.map +0 -7
  263. package/dist/navigation/helpers/traverse-schemas.js.map +0 -7
  264. package/dist/navigation/helpers/traverse-tags.js.map +0 -7
  265. package/dist/navigation/helpers/traverse-webhooks.js.map +0 -7
  266. package/dist/navigation/helpers/update-order-ids.js.map +0 -7
  267. package/dist/navigation/helpers/utils.js.map +0 -7
  268. package/dist/navigation/index.js.map +0 -7
  269. package/dist/navigation/types.js.map +0 -7
  270. package/dist/persistence/index.js.map +0 -7
  271. package/dist/persistence/indexdb.js.map +0 -7
  272. package/dist/plugins/bundler/helpers.js.map +0 -7
  273. package/dist/plugins/bundler/index.js.map +0 -7
  274. package/dist/plugins/client/index.js.map +0 -7
  275. package/dist/plugins/client/persistence.js.map +0 -7
  276. package/dist/resolve.js.map +0 -7
  277. package/dist/schemas/compose.js.map +0 -7
  278. package/dist/schemas/extensions/document/x-internal.js.map +0 -7
  279. package/dist/schemas/extensions/document/x-scalar-environments.js.map +0 -7
  280. package/dist/schemas/extensions/document/x-scalar-icon.js.map +0 -7
  281. package/dist/schemas/extensions/document/x-scalar-ignore.js.map +0 -7
  282. package/dist/schemas/extensions/document/x-scalar-is-dirty.js.map +0 -7
  283. package/dist/schemas/extensions/document/x-scalar-original-document-hash.js.map +0 -7
  284. package/dist/schemas/extensions/document/x-scalar-registry-meta.js.map +0 -7
  285. package/dist/schemas/extensions/document/x-scalar-sdk-installation.js.map +0 -7
  286. package/dist/schemas/extensions/document/x-scalar-watch-mode.js.map +0 -7
  287. package/dist/schemas/extensions/document/x-tags.js.map +0 -7
  288. package/dist/schemas/extensions/example/x-disabled.js.map +0 -7
  289. package/dist/schemas/extensions/general/x-scalar-active-environment.js.map +0 -7
  290. package/dist/schemas/extensions/general/x-scalar-cookies.js.map +0 -7
  291. package/dist/schemas/extensions/general/x-scalar-order.js.map +0 -7
  292. package/dist/schemas/extensions/operation/index.js.map +0 -7
  293. package/dist/schemas/extensions/operation/x-badge.js.map +0 -7
  294. package/dist/schemas/extensions/operation/x-code-samples.js.map +0 -7
  295. package/dist/schemas/extensions/operation/x-draft-examples.js.map +0 -7
  296. package/dist/schemas/extensions/operation/x-post-response.js.map +0 -7
  297. package/dist/schemas/extensions/operation/x-scalar-disable-parameters.js.map +0 -7
  298. package/dist/schemas/extensions/operation/x-scalar-selected-content-type.js.map +0 -7
  299. package/dist/schemas/extensions/operation/x-scalar-stability.js.map +0 -7
  300. package/dist/schemas/extensions/parameter/x-global.js.map +0 -7
  301. package/dist/schemas/extensions/schema/x-additional-properties-name.js.map +0 -7
  302. package/dist/schemas/extensions/schema/x-enum-descriptions.js.map +0 -7
  303. package/dist/schemas/extensions/schema/x-enum-varnames.js.map +0 -7
  304. package/dist/schemas/extensions/schema/x-examples.js.map +0 -7
  305. package/dist/schemas/extensions/schema/x-variable.js.map +0 -7
  306. package/dist/schemas/extensions/security/index.js.map +0 -7
  307. package/dist/schemas/extensions/security/x-default-scopes.js.map +0 -7
  308. package/dist/schemas/extensions/security/x-scalar-credentials-location.js.map +0 -7
  309. package/dist/schemas/extensions/security/x-scalar-security-body.js.map +0 -7
  310. package/dist/schemas/extensions/security/x-scalar-security-query.js.map +0 -7
  311. package/dist/schemas/extensions/security/x-scalar-security-secrets.js.map +0 -7
  312. package/dist/schemas/extensions/security/x-tokenName.js.map +0 -7
  313. package/dist/schemas/extensions/security/x-use-pkce.js.map +0 -7
  314. package/dist/schemas/extensions/server/x-scalar-selected-server.js.map +0 -7
  315. package/dist/schemas/extensions/tag/index.js.map +0 -7
  316. package/dist/schemas/extensions/tag/x-display-name.js.map +0 -7
  317. package/dist/schemas/extensions/tag/x-tag-groups.js.map +0 -7
  318. package/dist/schemas/extensions/workspace/index.js.map +0 -7
  319. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js.map +0 -7
  320. package/dist/schemas/extensions/workspace/x-scalar-tabs.js.map +0 -7
  321. package/dist/schemas/extensions.js.map +0 -7
  322. package/dist/schemas/inmemory-workspace.js.map +0 -7
  323. package/dist/schemas/navigation.js.map +0 -7
  324. package/dist/schemas/reference-config/appearance.js.map +0 -7
  325. package/dist/schemas/reference-config/features.js.map +0 -7
  326. package/dist/schemas/reference-config/index.js.map +0 -7
  327. package/dist/schemas/reference-config/meta.js.map +0 -7
  328. package/dist/schemas/reference-config/routing.js.map +0 -7
  329. package/dist/schemas/reference-config/settings.js.map +0 -7
  330. package/dist/schemas/typebox-coerce.js.map +0 -7
  331. package/dist/schemas/v3.1/strict/callback.js.map +0 -7
  332. package/dist/schemas/v3.1/strict/components.js.map +0 -7
  333. package/dist/schemas/v3.1/strict/contact.js.map +0 -7
  334. package/dist/schemas/v3.1/strict/discriminator.js.map +0 -7
  335. package/dist/schemas/v3.1/strict/encoding.js.map +0 -7
  336. package/dist/schemas/v3.1/strict/example.js.map +0 -7
  337. package/dist/schemas/v3.1/strict/external-documentation.js.map +0 -7
  338. package/dist/schemas/v3.1/strict/header.js.map +0 -7
  339. package/dist/schemas/v3.1/strict/info.js.map +0 -7
  340. package/dist/schemas/v3.1/strict/license.js.map +0 -7
  341. package/dist/schemas/v3.1/strict/link.js.map +0 -7
  342. package/dist/schemas/v3.1/strict/media-type.js.map +0 -7
  343. package/dist/schemas/v3.1/strict/oauth-flow.js.map +0 -7
  344. package/dist/schemas/v3.1/strict/oauthflows.js.map +0 -7
  345. package/dist/schemas/v3.1/strict/openapi-document.js.map +0 -7
  346. package/dist/schemas/v3.1/strict/operation.js.map +0 -7
  347. package/dist/schemas/v3.1/strict/parameter.js.map +0 -7
  348. package/dist/schemas/v3.1/strict/path-item.js.map +0 -7
  349. package/dist/schemas/v3.1/strict/paths.js.map +0 -7
  350. package/dist/schemas/v3.1/strict/ref-definitions.js.map +0 -7
  351. package/dist/schemas/v3.1/strict/reference.js.map +0 -7
  352. package/dist/schemas/v3.1/strict/request-body.js.map +0 -7
  353. package/dist/schemas/v3.1/strict/response.js.map +0 -7
  354. package/dist/schemas/v3.1/strict/responses.js.map +0 -7
  355. package/dist/schemas/v3.1/strict/schema.js.map +0 -7
  356. package/dist/schemas/v3.1/strict/security-requirement.js.map +0 -7
  357. package/dist/schemas/v3.1/strict/security-scheme.js.map +0 -7
  358. package/dist/schemas/v3.1/strict/server-variable.js.map +0 -7
  359. package/dist/schemas/v3.1/strict/server.js.map +0 -7
  360. package/dist/schemas/v3.1/strict/tag.js.map +0 -7
  361. package/dist/schemas/v3.1/strict/type-guards.js.map +0 -7
  362. package/dist/schemas/v3.1/strict/xml.js.map +0 -7
  363. package/dist/schemas/workspace-specification/index.js.map +0 -7
  364. package/dist/schemas/workspace-specification/info.js.map +0 -7
  365. package/dist/schemas/workspace.js.map +0 -7
  366. package/dist/schemas.js.map +0 -7
  367. package/dist/server.js.map +0 -7
  368. package/dist/workspace-plugin.js.map +0 -7
@@ -1,10 +1,14 @@
1
- const getXKeysFromObject = (object) => {
2
- if (!object) {
3
- return {};
4
- }
5
- return Object.fromEntries(Object.entries(object).filter(([key]) => key.startsWith("x-")));
1
+ /**
2
+ * Utility function to extract all keys starting with 'x-' (OpenAPI extensions) from an object.
3
+ *
4
+ * @param object - The object from which to extract extension keys.
5
+ * @returns An object containing only the entries whose keys start with 'x-'.
6
+ */
7
+ export const getXKeysFromObject = (object) => {
8
+ if (!object) {
9
+ // Return an empty object if input is undefined or null
10
+ return {};
11
+ }
12
+ // Filter and return only the entries whose keys start with 'x-'
13
+ return Object.fromEntries(Object.entries(object).filter(([key]) => key.startsWith('x-')));
6
14
  };
7
- export {
8
- getXKeysFromObject
9
- };
10
- //# sourceMappingURL=get-x-keys.js.map
@@ -1,78 +1,96 @@
1
- import { getHeadingsFromMarkdown, getLowestHeadingLevel } from "../../navigation/helpers/utils.js";
1
+ import { getHeadingsFromMarkdown, getLowestHeadingLevel } from '../../navigation/helpers/utils.js';
2
2
  const DEFAULT_DESCRIPTION_ENTRY = {
3
- TITLE: "Introduction",
4
- SLUG: "introduction"
3
+ TITLE: 'Introduction',
4
+ SLUG: 'introduction',
5
5
  };
6
- const traverseDescription = ({
7
- generateId,
8
- parentId,
9
- info
10
- }) => {
11
- const description = info.description?.trim();
12
- if (!description) {
13
- return [];
14
- }
15
- const headings = getHeadingsFromMarkdown(description);
16
- const lowestLevel = getLowestHeadingLevel(headings);
17
- const entries = [];
18
- let descriptionHeadingsEntry = null;
19
- let currentParent = null;
20
- if (!description.startsWith("#")) {
21
- const heading = {
22
- depth: 1,
23
- value: DEFAULT_DESCRIPTION_ENTRY.TITLE,
24
- slug: DEFAULT_DESCRIPTION_ENTRY.SLUG
25
- };
26
- const id = generateId({
27
- type: "text",
28
- depth: heading.depth,
29
- slug: heading.slug,
30
- parentId,
31
- info,
32
- value: heading.value
33
- });
34
- const entry = {
35
- id,
36
- title: heading.value,
37
- type: "text"
38
- };
39
- entries.push(entry);
40
- descriptionHeadingsEntry = entry;
41
- }
42
- for (const heading of headings) {
43
- if (heading.depth !== lowestLevel && heading.depth !== lowestLevel + 1) {
44
- continue;
6
+ /**
7
+ * Creates a hierarchical navigation structure from markdown headings in an OpenAPI description.
8
+ *
9
+ * The function processes markdown headings to create a two-level navigation tree:
10
+ * - Level 1: Main sections (based on the lowest heading level found)
11
+ * - Level 2: Subsections (one level deeper than the main sections)
12
+ *
13
+ * If the description starts with content rather than a heading, an "Introduction" section
14
+ * is automatically added as the first entry.
15
+ *
16
+ * @param description - The markdown description text to process
17
+ * @param generateId - Function to generate unique IDs for headings
18
+ * @param parentId - The ID of the parent entry
19
+ * @param info - OpenAPI Info Object
20
+ *
21
+ * @returns Array of TraversedDescription entries with their hierarchy
22
+ */
23
+ export const traverseDescription = ({ generateId, parentId, info, }) => {
24
+ const description = info.description?.trim();
25
+ // No description, return empty array
26
+ if (!description) {
27
+ return [];
45
28
  }
46
- const entry = {
47
- id: generateId({
48
- type: "text",
49
- depth: heading.depth,
50
- slug: heading.slug,
51
- parentId,
52
- info,
53
- value: heading.value
54
- }),
55
- title: heading.value,
56
- type: "text"
57
- };
58
- if (heading.depth === lowestLevel) {
59
- entry.children = [];
60
- if (descriptionHeadingsEntry) {
61
- if (!descriptionHeadingsEntry.children) {
62
- descriptionHeadingsEntry.children = [];
63
- }
64
- descriptionHeadingsEntry.children.push(entry);
65
- } else {
29
+ const headings = getHeadingsFromMarkdown(description);
30
+ const lowestLevel = getLowestHeadingLevel(headings);
31
+ const entries = [];
32
+ let descriptionHeadingsEntry = null;
33
+ let currentParent = null;
34
+ // Add "Introduction" as the first heading
35
+ if (!description.startsWith('#')) {
36
+ const heading = {
37
+ depth: 1,
38
+ value: DEFAULT_DESCRIPTION_ENTRY.TITLE,
39
+ slug: DEFAULT_DESCRIPTION_ENTRY.SLUG,
40
+ };
41
+ const id = generateId({
42
+ type: 'text',
43
+ depth: heading.depth,
44
+ slug: heading.slug,
45
+ parentId: parentId,
46
+ info,
47
+ value: heading.value,
48
+ });
49
+ const entry = {
50
+ id,
51
+ title: heading.value,
52
+ type: 'text',
53
+ };
54
+ // Push to entries
66
55
  entries.push(entry);
67
- }
68
- currentParent = entry;
69
- } else if (currentParent) {
70
- currentParent.children?.push(entry);
56
+ descriptionHeadingsEntry = entry;
71
57
  }
72
- }
73
- return entries;
74
- };
75
- export {
76
- traverseDescription
58
+ // Go through each heading
59
+ for (const heading of headings) {
60
+ // Skip if not a main or sub heading
61
+ if (heading.depth !== lowestLevel && heading.depth !== lowestLevel + 1) {
62
+ continue;
63
+ }
64
+ const entry = {
65
+ id: generateId({
66
+ type: 'text',
67
+ depth: heading.depth,
68
+ slug: heading.slug,
69
+ parentId: parentId,
70
+ info: info,
71
+ value: heading.value,
72
+ }),
73
+ title: heading.value,
74
+ type: 'text',
75
+ };
76
+ if (heading.depth === lowestLevel) {
77
+ entry.children = [];
78
+ // Add to description headings to the 'Introduction' entry
79
+ if (descriptionHeadingsEntry) {
80
+ if (!descriptionHeadingsEntry.children) {
81
+ descriptionHeadingsEntry.children = [];
82
+ }
83
+ descriptionHeadingsEntry.children.push(entry);
84
+ }
85
+ // If no 'Introduction' entry, add to entries
86
+ else {
87
+ entries.push(entry);
88
+ }
89
+ currentParent = entry;
90
+ }
91
+ else if (currentParent) {
92
+ currentParent.children?.push(entry);
93
+ }
94
+ }
95
+ return entries;
77
96
  };
78
- //# sourceMappingURL=traverse-description.js.map
@@ -1,102 +1,115 @@
1
- import { unpackProxyObject } from "../../helpers/unpack-proxy.js";
2
- import { getNavigationOptions } from "../../navigation/get-navigation-options.js";
3
- import { traverseDescription } from "./traverse-description.js";
4
- import { traversePaths } from "./traverse-paths.js";
5
- import { traverseSchemas } from "./traverse-schemas.js";
6
- import { traverseTags } from "./traverse-tags.js";
7
- import { traverseWebhooks } from "./traverse-webhooks.js";
8
- const traverseDocument = (documentName, document, options) => {
9
- const { hideModels, tagsSorter, operationsSorter, generateId } = getNavigationOptions(documentName, options);
10
- const documentId = generateId({
11
- type: "document",
12
- info: document.info,
13
- name: documentName
14
- });
15
- const tagsMap = new Map(
16
- document.tags?.map((tag) => [
17
- tag.name ?? "Untitled Tag",
18
- { id: generateId({ type: "tag", tag, parentId: documentId }), parentId: documentId, tag, entries: [] }
19
- ]) ?? []
20
- );
21
- const entries = traverseDescription({
22
- generateId,
23
- parentId: documentId,
24
- info: document.info
25
- });
26
- const { untaggedOperations } = traversePaths({ document, tagsMap, generateId, documentId });
27
- const untaggedWebhooksParentId = generateId({
28
- type: "webhook",
29
- name: "",
30
- parentId: documentId
31
- });
32
- const untaggedWebhooks = traverseWebhooks({
33
- document,
34
- generateId,
35
- tagsMap,
36
- untaggedWebhooksParentId,
37
- documentId
38
- });
39
- const tagsEntries = traverseTags({
40
- document,
41
- tagsMap,
42
- documentId,
43
- options: { tagsSorter, operationsSorter, generateId }
44
- });
45
- entries.push(...tagsEntries);
46
- entries.push(...untaggedOperations);
47
- if (untaggedWebhooks.length) {
48
- entries.push({
49
- type: "tag",
50
- id: untaggedWebhooksParentId,
51
- title: "Webhooks",
52
- name: "Webhooks",
53
- children: untaggedWebhooks,
54
- isGroup: false,
55
- isWebhooks: true
1
+ import { unpackProxyObject } from '../../helpers/unpack-proxy.js';
2
+ import { getNavigationOptions } from '../../navigation/get-navigation-options.js';
3
+ import { traverseDescription } from './traverse-description.js';
4
+ import { traversePaths } from './traverse-paths.js';
5
+ import { traverseSchemas } from './traverse-schemas.js';
6
+ import { traverseTags } from './traverse-tags.js';
7
+ import { traverseWebhooks } from './traverse-webhooks.js';
8
+ /**
9
+ * Traverses an OpenAPI Document to generate navigation structure and metadata.
10
+ *
11
+ * This function processes the OpenAPI document to create:
12
+ * - A hierarchical navigation structure for the sidebar
13
+ * - A mapping of IDs to titles for mobile header navigation
14
+ * - Tag-based organization of operations and webhooks
15
+ * - Optional schema/model documentation
16
+ */
17
+ export const traverseDocument = (documentName, document, options) => {
18
+ const { hideModels, tagsSorter, operationsSorter, generateId } = getNavigationOptions(documentName, options);
19
+ const documentId = generateId({
20
+ type: 'document',
21
+ info: document.info,
22
+ name: documentName,
56
23
  });
57
- }
58
- if (!hideModels && document.components?.schemas) {
59
- const untaggedModels = traverseSchemas({
60
- documentId,
61
- document,
62
- generateId,
63
- tagsMap
24
+ /** Map of tags and their entries */
25
+ const tagsMap = new Map(document.tags?.map((tag) => [
26
+ tag.name ?? 'Untitled Tag',
27
+ { id: generateId({ type: 'tag', tag, parentId: documentId }), parentId: documentId, tag, entries: [] },
28
+ ]) ?? []);
29
+ /** Generate entries for the document info description field */
30
+ const entries = traverseDescription({
31
+ generateId,
32
+ parentId: documentId,
33
+ info: document.info,
64
34
  });
65
- if (untaggedModels.length) {
66
- entries.push({
67
- type: "models",
68
- id: generateId({
69
- type: "model",
70
- parentId: documentId
71
- }),
72
- title: "Models",
73
- name: "Models",
74
- children: untaggedModels
75
- });
76
- }
77
- }
78
- const sortOrder = document["x-scalar-order"];
79
- if (sortOrder) {
80
- entries.sort((a, b) => {
81
- const indexA = sortOrder.indexOf(a.id);
82
- const indexB = sortOrder.indexOf(b.id);
83
- const safeIndexA = indexA === -1 ? Number.POSITIVE_INFINITY : indexA;
84
- const safeIndexB = indexB === -1 ? Number.POSITIVE_INFINITY : indexB;
85
- return safeIndexA - safeIndexB;
35
+ /** Traverse all the document path */
36
+ const { untaggedOperations } = traversePaths({ document, tagsMap, generateId, documentId });
37
+ const untaggedWebhooksParentId = generateId({
38
+ type: 'webhook',
39
+ name: '',
40
+ parentId: documentId,
86
41
  });
87
- }
88
- document["x-scalar-order"] = unpackProxyObject(entries.map((entry) => entry.id));
89
- const documentTitle = document.info?.title?.trim() || "Untitled Document";
90
- return {
91
- id: documentId,
92
- type: "document",
93
- title: documentTitle,
94
- name: documentName,
95
- children: entries,
96
- icon: document["x-scalar-icon"]
97
- };
98
- };
99
- export {
100
- traverseDocument
42
+ const untaggedWebhooks = traverseWebhooks({
43
+ document,
44
+ generateId,
45
+ tagsMap,
46
+ untaggedWebhooksParentId,
47
+ documentId,
48
+ });
49
+ const tagsEntries = traverseTags({
50
+ document,
51
+ tagsMap,
52
+ documentId,
53
+ options: { tagsSorter, operationsSorter, generateId },
54
+ });
55
+ // Add tagged operations, webhooks and tagGroups
56
+ entries.push(...tagsEntries);
57
+ // Add untagged operations
58
+ entries.push(...untaggedOperations);
59
+ // Add untagged webhooks
60
+ if (untaggedWebhooks.length) {
61
+ entries.push({
62
+ type: 'tag',
63
+ id: untaggedWebhooksParentId,
64
+ title: 'Webhooks',
65
+ name: 'Webhooks',
66
+ children: untaggedWebhooks,
67
+ isGroup: false,
68
+ isWebhooks: true,
69
+ });
70
+ }
71
+ // Add models if they are not hidden
72
+ if (!hideModels && document.components?.schemas) {
73
+ const untaggedModels = traverseSchemas({
74
+ documentId,
75
+ document,
76
+ generateId,
77
+ tagsMap,
78
+ });
79
+ if (untaggedModels.length) {
80
+ entries.push({
81
+ type: 'models',
82
+ id: generateId({
83
+ type: 'model',
84
+ parentId: documentId,
85
+ }),
86
+ title: 'Models',
87
+ name: 'Models',
88
+ children: untaggedModels,
89
+ });
90
+ }
91
+ }
92
+ const sortOrder = document['x-scalar-order'];
93
+ // Try to sort the entries using the x-scalar-order
94
+ if (sortOrder) {
95
+ entries.sort((a, b) => {
96
+ const indexA = sortOrder.indexOf(a.id);
97
+ const indexB = sortOrder.indexOf(b.id);
98
+ // If an id is not found, treat it as "infinity" so those items go last.
99
+ const safeIndexA = indexA === -1 ? Number.POSITIVE_INFINITY : indexA;
100
+ const safeIndexB = indexB === -1 ? Number.POSITIVE_INFINITY : indexB;
101
+ return safeIndexA - safeIndexB;
102
+ });
103
+ }
104
+ // Now update the sort order of the entries
105
+ document['x-scalar-order'] = unpackProxyObject(entries.map((entry) => entry.id));
106
+ const documentTitle = document.info?.title?.trim() || 'Untitled Document';
107
+ return {
108
+ id: documentId,
109
+ type: 'document',
110
+ title: documentTitle,
111
+ name: documentName,
112
+ children: entries,
113
+ icon: document['x-scalar-icon'],
114
+ };
101
115
  };
102
- //# sourceMappingURL=traverse-document.js.map
@@ -1,34 +1,38 @@
1
- import { getResolvedRef } from "../../helpers/get-resolved-ref.js";
2
- const traverseOperationExamples = (operation) => {
3
- const examples = new Set(operation["x-draft-examples"] ?? []);
4
- if (operation.requestBody) {
5
- const requestBody = getResolvedRef(operation.requestBody);
6
- Object.values(requestBody.content ?? {}).forEach((mediaType) => {
7
- Object.keys(mediaType.examples ?? {}).forEach((key) => {
8
- examples.add(key);
9
- });
10
- });
11
- }
12
- if (operation.parameters) {
13
- operation.parameters.forEach((_parameter) => {
14
- const parameter = getResolvedRef(_parameter) ?? {};
15
- if ("content" in parameter && parameter.content) {
16
- Object.values(parameter.content).forEach((mediaType) => {
17
- Object.keys(mediaType.examples ?? {}).forEach((key) => {
18
- examples.add(key);
19
- });
1
+ import { getResolvedRef } from '../../helpers/get-resolved-ref.js';
2
+ /**
3
+ * Traverse the OpenAPI operation object and extract all example values.
4
+ *
5
+ * @param operation - The OpenAPI operation object to extract examples from
6
+ */
7
+ export const traverseOperationExamples = (operation) => {
8
+ // Add all examples from draft examples
9
+ const examples = new Set(operation['x-draft-examples'] ?? []);
10
+ // Add all examples from request bodies
11
+ if (operation.requestBody) {
12
+ const requestBody = getResolvedRef(operation.requestBody);
13
+ Object.values(requestBody.content ?? {}).forEach((mediaType) => {
14
+ Object.keys(mediaType.examples ?? {}).forEach((key) => {
15
+ examples.add(key);
16
+ });
20
17
  });
21
- }
22
- if ("examples" in parameter && parameter.examples) {
23
- Object.keys(parameter.examples ?? {}).forEach((key) => {
24
- examples.add(key);
18
+ }
19
+ // Add all examples from parameters
20
+ if (operation.parameters) {
21
+ operation.parameters.forEach((_parameter) => {
22
+ const parameter = getResolvedRef(_parameter) ?? {};
23
+ if ('content' in parameter && parameter.content) {
24
+ Object.values(parameter.content).forEach((mediaType) => {
25
+ Object.keys(mediaType.examples ?? {}).forEach((key) => {
26
+ examples.add(key);
27
+ });
28
+ });
29
+ }
30
+ if ('examples' in parameter && parameter.examples) {
31
+ Object.keys(parameter.examples ?? {}).forEach((key) => {
32
+ examples.add(key);
33
+ });
34
+ }
25
35
  });
26
- }
27
- });
28
- }
29
- return Array.from(examples);
36
+ }
37
+ return Array.from(examples);
30
38
  };
31
- export {
32
- traverseOperationExamples
33
- };
34
- //# sourceMappingURL=traverse-examples.js.map