@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,64 +1,113 @@
1
- import { findVariables } from "@scalar/helpers/regex/find-variables";
2
- import { unpackProxyObject } from "../../../helpers/unpack-proxy.js";
3
- import { getParameterPositions } from "../../../mutators/operation/helpers/get-parameter-position.js";
4
- const syncParametersForPathChange = (newPath, oldPath, existingParameters, resolve) => {
5
- const oldPathParams = findVariables(oldPath, { includePath: true, includeEnv: false }).filter(
6
- (v) => v !== void 0
7
- );
8
- const newPathParams = findVariables(newPath, { includePath: true, includeEnv: false }).filter(
9
- (v) => v !== void 0
10
- );
11
- const oldPositions = getParameterPositions(oldPath, oldPathParams);
12
- const newPositions = getParameterPositions(newPath, newPathParams);
13
- const pathParameters = /* @__PURE__ */ Object.create(null);
14
- for (const param of existingParameters) {
15
- const resolved = resolve(param);
16
- if (resolved?.in === "path") {
17
- pathParameters[resolved.name] = param;
1
+ import { findVariables } from '@scalar/helpers/regex/find-variables';
2
+ import { unpackProxyObject } from '../../../helpers/unpack-proxy.js';
3
+ import { getParameterPositions } from '../../../mutators/operation/helpers/get-parameter-position.js';
4
+ /**
5
+ * Synchronizes path parameters when a path string changes.
6
+ *
7
+ * Behavior:
8
+ * - Preserves as much of the existing parameter configuration as possible when the set of path variables
9
+ * changes due to a path update.
10
+ * - If a parameter with the same name exists in the new path, its configuration is preserved.
11
+ * - If a parameter appears at the same position as an old parameter (name changed), the old parameter's
12
+ * configuration is kept and its name is updated in place via the resolved object.
13
+ * - Any newly required parameters (variables present in the new path but not in the old path) are added
14
+ * as new minimal parameter objects.
15
+ * - Parameters that are no longer present in the new path are dropped.
16
+ * - Non-path parameters (query, header, etc.) from `existingParameters` are included unchanged in the result.
17
+ *
18
+ * ⚠️ This function mutates parameter objects in the `existingParameters` array in place when a path
19
+ * parameter is renamed (i.e., reused objects may have their `name` updated via `resolve`).
20
+ *
21
+ * Returns the full new parameters array. Use the return value directly as the new operation.parameters.
22
+ *
23
+ * @param newPath - The path string after the change (e.g. '/users/{id}/posts/{postId}').
24
+ * @param oldPath - The path string before the change (e.g. '/users/{userId}').
25
+ * @param existingParameters - Current operation parameters (may be refs); path params are synced, others passed through.
26
+ * @param resolve - Callback to resolve a reference to a minimal parameter object (used for reading and mutating).
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * // Given:
31
+ * // - oldPath: '/users/{userId}'
32
+ * // - newPath: '/users/{id}/posts/{postId}'
33
+ * // - existingParameters: [ { name: 'userId', in: 'path' } ]
34
+ *
35
+ * const newParams = syncParametersForPathChange(
36
+ * '/users/{id}/posts/{postId}',
37
+ * '/users/{userId}',
38
+ * existingParameters,
39
+ * (node) => resolveRef(node) // or unwrap $ref to get { name, in }
40
+ * )
41
+ *
42
+ * // existingParameters[0] was mutated in place (name -> 'id' via resolve).
43
+ * // newParams is the full array: [ renamed path param 'id', new path param 'postId' ]
44
+ *
45
+ * operation.parameters = newParams
46
+ * ```
47
+ */
48
+ export const syncParametersForPathChange = (newPath, oldPath, existingParameters, resolve) => {
49
+ // Extract path parameter names from both paths
50
+ const oldPathParams = findVariables(oldPath, { includePath: true, includeEnv: false }).filter((v) => v !== undefined);
51
+ const newPathParams = findVariables(newPath, { includePath: true, includeEnv: false }).filter((v) => v !== undefined);
52
+ const oldPositions = getParameterPositions(oldPath, oldPathParams);
53
+ const newPositions = getParameterPositions(newPath, newPathParams);
54
+ // Keep a map of path parameters by name for quick lookup (references unchanged objects)
55
+ const pathParameters = Object.create(null);
56
+ // Populate the map with the existing path parameters
57
+ for (const param of existingParameters) {
58
+ const resolved = resolve(param);
59
+ if (resolved?.in === 'path') {
60
+ pathParameters[resolved.name] = param;
61
+ }
18
62
  }
19
- }
20
- const usedOldParams = /* @__PURE__ */ new Set();
21
- const usedPathParameters = /* @__PURE__ */ new Set();
22
- const newPathParameters = [];
23
- for (const newParamName of newPathParams) {
24
- if (pathParameters[newParamName]) {
25
- usedOldParams.add(newParamName);
26
- usedPathParameters.add(pathParameters[newParamName]);
27
- continue;
63
+ // Keep track of old parameters that we have already used
64
+ const usedOldParams = new Set();
65
+ // Keep track of path parameter objects we keep after sync
66
+ const usedPathParameters = new Set();
67
+ // These are only truly new parameters created in this run
68
+ const newPathParameters = [];
69
+ for (const newParamName of newPathParams) {
70
+ // Case 1: Parameter with same name exists - preserve its config, and mark as used
71
+ if (pathParameters[newParamName]) {
72
+ usedOldParams.add(newParamName);
73
+ usedPathParameters.add(pathParameters[newParamName]);
74
+ continue;
75
+ }
76
+ // Case 2: Check for parameter at same position (likely a rename)
77
+ const newParamPosition = newPositions[newParamName];
78
+ const oldParamAtPosition = oldPathParams.find((oldParam) => oldPositions[oldParam] === newParamPosition && !usedOldParams.has(oldParam));
79
+ // If found, mutate old parameter's name and mark as used
80
+ if (oldParamAtPosition && pathParameters[oldParamAtPosition] !== undefined) {
81
+ const oldParam = pathParameters[oldParamAtPosition];
82
+ if (oldParam) {
83
+ // Change its name in-place
84
+ resolve(oldParam).name = newParamName;
85
+ usedPathParameters.add(oldParam);
86
+ }
87
+ usedOldParams.add(oldParamAtPosition);
88
+ continue;
89
+ }
90
+ // Case 3: New parameter - create a new minimal parameter object
91
+ newPathParameters.push({
92
+ in: 'path',
93
+ name: newParamName,
94
+ });
28
95
  }
29
- const newParamPosition = newPositions[newParamName];
30
- const oldParamAtPosition = oldPathParams.find(
31
- (oldParam) => oldPositions[oldParam] === newParamPosition && !usedOldParams.has(oldParam)
32
- );
33
- if (oldParamAtPosition && pathParameters[oldParamAtPosition] !== void 0) {
34
- const oldParam = pathParameters[oldParamAtPosition];
35
- if (oldParam) {
36
- resolve(oldParam).name = newParamName;
37
- usedPathParameters.add(oldParam);
38
- }
39
- usedOldParams.add(oldParamAtPosition);
40
- continue;
96
+ const result = [];
97
+ // Push the raw parameters to enure we are not pushing proxies
98
+ for (const param of existingParameters) {
99
+ const resolved = resolve(param);
100
+ const rawParam = unpackProxyObject(param, { depth: 1 });
101
+ if (resolved?.in !== 'path') {
102
+ result.push(rawParam);
103
+ continue;
104
+ }
105
+ // Only adda the parameter if HAS not been used in the old path
106
+ // This we we ensure to drop parameters that are no longer present in the new path
107
+ if (usedPathParameters.has(param)) {
108
+ result.push(rawParam);
109
+ }
41
110
  }
42
- newPathParameters.push({
43
- in: "path",
44
- name: newParamName
45
- });
46
- }
47
- const result = [];
48
- for (const param of existingParameters) {
49
- const resolved = resolve(param);
50
- const rawParam = unpackProxyObject(param, { depth: 1 });
51
- if (resolved?.in !== "path") {
52
- result.push(rawParam);
53
- continue;
54
- }
55
- if (usedPathParameters.has(param)) {
56
- result.push(rawParam);
57
- }
58
- }
59
- return result.concat(newPathParameters);
60
- };
61
- export {
62
- syncParametersForPathChange
111
+ // Only return newly created parameter objects—call site should combine with possibly-mutated originals
112
+ return result.concat(newPathParameters);
63
113
  };
64
- //# sourceMappingURL=sync-path-parameters.js.map
@@ -1,68 +1,64 @@
1
- import { getResolvedRef } from "../../helpers/get-resolved-ref.js";
2
- import { isContentTypeParameterObject } from "../../schemas/v3.1/strict/type-guards.js";
3
- import { fetchRequestToHar } from "./helpers/fetch-request-to-har.js";
4
- import { fetchResponseToHar } from "./helpers/fetch-response-to-har.js";
5
- import { harToOperation } from "./helpers/har-to-operation.js";
6
- const addResponseToHistory = async (store, document, { payload, meta }) => {
7
- const documentName = document?.["x-scalar-navigation"]?.name;
8
- if (!document || !documentName || !payload) {
9
- return;
10
- }
11
- const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
12
- if (!operation) {
13
- return;
14
- }
15
- const operationParameters = operation.parameters ?? [];
16
- const variables = operationParameters.reduce((acc, param) => {
17
- const resolvedParam = getResolvedRef(param);
18
- if (isContentTypeParameterObject(resolvedParam)) {
19
- return acc;
1
+ import { getResolvedRef } from '../../helpers/get-resolved-ref.js';
2
+ import { isContentTypeParameterObject } from '../../schemas/v3.1/strict/type-guards.js';
3
+ import { fetchRequestToHar } from './helpers/fetch-request-to-har.js';
4
+ import { fetchResponseToHar } from './helpers/fetch-response-to-har.js';
5
+ import { harToOperation } from './helpers/har-to-operation.js';
6
+ export const addResponseToHistory = async (store, document, { payload, meta }) => {
7
+ const documentName = document?.['x-scalar-navigation']?.name;
8
+ if (!document || !documentName || !payload) {
9
+ return;
20
10
  }
21
- if (resolvedParam.in === "path") {
22
- acc[resolvedParam.name] = getResolvedRef(resolvedParam.examples?.[meta.exampleKey])?.value ?? "";
11
+ const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
12
+ if (!operation) {
13
+ return;
23
14
  }
24
- return acc;
25
- }, {});
26
- const requestHar = await fetchRequestToHar({ request: payload.request });
27
- const responseHar = await fetchResponseToHar({ response: payload.response });
28
- store?.history.addHistory(documentName, meta.path, meta.method, {
29
- response: responseHar,
30
- request: requestHar,
31
- meta: {
32
- example: meta.exampleKey
33
- },
34
- time: payload.duration,
35
- timestamp: payload.timestamp,
36
- requestMetadata: {
37
- variables
38
- }
39
- });
40
- };
41
- const reloadOperationHistory = (store, document, { meta, index, callback }) => {
42
- if (!document) {
43
- console.error("Document not found", meta.path, meta.method);
44
- return;
45
- }
46
- const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
47
- if (!operation) {
48
- console.error("Operation not found", meta.path, meta.method);
49
- return;
50
- }
51
- const historyItem = store?.history.getHistory(document["x-scalar-navigation"]?.name ?? "", meta.path, meta.method)?.[index];
52
- if (!historyItem) {
53
- console.error("History item not found", index);
54
- return;
55
- }
56
- harToOperation({
57
- harRequest: historyItem.request,
58
- exampleKey: "draft",
59
- baseOperation: operation,
60
- pathVariables: historyItem.requestMetadata.variables
61
- });
62
- callback("success");
15
+ const operationParameters = operation.parameters ?? [];
16
+ // Get all the variables from the operation parameters
17
+ const variables = operationParameters.reduce((acc, param) => {
18
+ const resolvedParam = getResolvedRef(param);
19
+ if (isContentTypeParameterObject(resolvedParam)) {
20
+ return acc;
21
+ }
22
+ if (resolvedParam.in === 'path') {
23
+ acc[resolvedParam.name] = getResolvedRef(resolvedParam.examples?.[meta.exampleKey])?.value ?? '';
24
+ }
25
+ return acc;
26
+ }, {});
27
+ const requestHar = await fetchRequestToHar({ request: payload.request });
28
+ const responseHar = await fetchResponseToHar({ response: payload.response });
29
+ store?.history.addHistory(documentName, meta.path, meta.method, {
30
+ response: responseHar,
31
+ request: requestHar,
32
+ meta: {
33
+ example: meta.exampleKey,
34
+ },
35
+ time: payload.duration,
36
+ timestamp: payload.timestamp,
37
+ requestMetadata: {
38
+ variables,
39
+ },
40
+ });
63
41
  };
64
- export {
65
- addResponseToHistory,
66
- reloadOperationHistory
42
+ export const reloadOperationHistory = (store, document, { meta, index, callback }) => {
43
+ if (!document) {
44
+ console.error('Document not found', meta.path, meta.method);
45
+ return;
46
+ }
47
+ const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
48
+ if (!operation) {
49
+ console.error('Operation not found', meta.path, meta.method);
50
+ return;
51
+ }
52
+ const historyItem = store?.history.getHistory(document['x-scalar-navigation']?.name ?? '', meta.path, meta.method)?.[index];
53
+ if (!historyItem) {
54
+ console.error('History item not found', index);
55
+ return;
56
+ }
57
+ harToOperation({
58
+ harRequest: historyItem.request,
59
+ exampleKey: 'draft',
60
+ baseOperation: operation,
61
+ pathVariables: historyItem.requestMetadata.variables,
62
+ });
63
+ callback('success');
67
64
  };
68
- //# sourceMappingURL=history.js.map
@@ -1,50 +1,26 @@
1
- import {
2
- updateOperationRequestBodyContentType,
3
- updateOperationRequestBodyExample,
4
- updateOperationRequestBodyFormValue
5
- } from "../../mutators/operation/body.js";
6
- import { updateOperationExtension } from "../../mutators/operation/extensions.js";
7
- import { addResponseToHistory, reloadOperationHistory } from "../../mutators/operation/history.js";
8
- import {
9
- createOperation,
10
- createOperationDraftExample,
11
- deleteOperation,
12
- deleteOperationExample,
13
- renameOperationExample,
14
- updateOperationMeta,
15
- updateOperationPathMethod
16
- } from "../../mutators/operation/operation.js";
17
- import {
18
- deleteAllOperationParameters,
19
- deleteOperationParameter,
20
- updateOperationExtraParameters,
21
- upsertOperationParameter
22
- } from "../../mutators/operation/parameters.js";
23
- const operationMutatorsFactory = ({
24
- document,
25
- store
26
- }) => {
27
- return {
28
- createOperation: (payload) => createOperation(store, payload),
29
- updateOperationMeta: (payload) => updateOperationMeta(store, document, payload),
30
- updateOperationPathMethod: (payload) => updateOperationPathMethod(document, store, payload),
31
- deleteOperation: (payload) => deleteOperation(store, payload),
32
- createOperationDraftExample: (payload) => createOperationDraftExample(store, payload),
33
- deleteOperationExample: (payload) => deleteOperationExample(store, payload),
34
- renameOperationExample: (payload) => renameOperationExample(store, payload),
35
- updateOperationExtension: (payload) => updateOperationExtension(document, payload),
36
- updateOperationExtraParameters: (payload) => updateOperationExtraParameters(document, payload),
37
- upsertOperationParameter: (payload) => upsertOperationParameter(document, payload),
38
- deleteOperationParameter: (payload) => deleteOperationParameter(document, payload),
39
- deleteAllOperationParameters: (payload) => deleteAllOperationParameters(document, payload),
40
- updateOperationRequestBodyContentType: (payload) => updateOperationRequestBodyContentType(document, payload),
41
- updateOperationRequestBodyExample: (payload) => updateOperationRequestBodyExample(document, payload),
42
- updateOperationRequestBodyFormValue: (payload) => updateOperationRequestBodyFormValue(document, payload),
43
- addResponseToHistory: (payload) => addResponseToHistory(store, document, payload),
44
- reloadOperationHistory: (payload) => reloadOperationHistory(store, document, payload)
45
- };
1
+ import { updateOperationRequestBodyContentType, updateOperationRequestBodyExample, updateOperationRequestBodyFormValue, } from '../../mutators/operation/body.js';
2
+ import { updateOperationExtension } from '../../mutators/operation/extensions.js';
3
+ import { addResponseToHistory, reloadOperationHistory } from '../../mutators/operation/history.js';
4
+ import { createOperation, createOperationDraftExample, deleteOperation, deleteOperationExample, renameOperationExample, updateOperationMeta, updateOperationPathMethod, } from '../../mutators/operation/operation.js';
5
+ import { deleteAllOperationParameters, deleteOperationParameter, updateOperationExtraParameters, upsertOperationParameter, } from '../../mutators/operation/parameters.js';
6
+ export const operationMutatorsFactory = ({ document, store, }) => {
7
+ return {
8
+ createOperation: (payload) => createOperation(store, payload),
9
+ updateOperationMeta: (payload) => updateOperationMeta(store, document, payload),
10
+ updateOperationPathMethod: (payload) => updateOperationPathMethod(document, store, payload),
11
+ deleteOperation: (payload) => deleteOperation(store, payload),
12
+ createOperationDraftExample: (payload) => createOperationDraftExample(store, payload),
13
+ deleteOperationExample: (payload) => deleteOperationExample(store, payload),
14
+ renameOperationExample: (payload) => renameOperationExample(store, payload),
15
+ updateOperationExtension: (payload) => updateOperationExtension(document, payload),
16
+ updateOperationExtraParameters: (payload) => updateOperationExtraParameters(document, payload),
17
+ upsertOperationParameter: (payload) => upsertOperationParameter(document, payload),
18
+ deleteOperationParameter: (payload) => deleteOperationParameter(document, payload),
19
+ deleteAllOperationParameters: (payload) => deleteAllOperationParameters(document, payload),
20
+ updateOperationRequestBodyContentType: (payload) => updateOperationRequestBodyContentType(document, payload),
21
+ updateOperationRequestBodyExample: (payload) => updateOperationRequestBodyExample(document, payload),
22
+ updateOperationRequestBodyFormValue: (payload) => updateOperationRequestBodyFormValue(document, payload),
23
+ addResponseToHistory: (payload) => addResponseToHistory(store, document, payload),
24
+ reloadOperationHistory: (payload) => reloadOperationHistory(store, document, payload),
25
+ };
46
26
  };
47
- export {
48
- operationMutatorsFactory
49
- };
50
- //# sourceMappingURL=index.js.map