@scalar/workspace-store 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +2 -2
  3. package/dist/client.d.ts +54 -6
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +66 -29
  6. package/dist/client.js.map +2 -2
  7. package/dist/events/bus.d.ts +14 -2
  8. package/dist/events/bus.d.ts.map +1 -1
  9. package/dist/events/bus.js +46 -10
  10. package/dist/events/bus.js.map +3 -3
  11. package/dist/events/definitions/auth.d.ts +2 -1
  12. package/dist/events/definitions/auth.d.ts.map +1 -1
  13. package/dist/events/definitions/cookie.d.ts +20 -0
  14. package/dist/events/definitions/cookie.d.ts.map +1 -0
  15. package/dist/events/definitions/cookie.js +1 -0
  16. package/dist/events/definitions/cookie.js.map +7 -0
  17. package/dist/events/definitions/document.d.ts +19 -2
  18. package/dist/events/definitions/document.d.ts.map +1 -1
  19. package/dist/events/definitions/index.d.ts +6 -1
  20. package/dist/events/definitions/index.d.ts.map +1 -1
  21. package/dist/events/definitions/operation.d.ts +20 -14
  22. package/dist/events/definitions/operation.d.ts.map +1 -1
  23. package/dist/events/definitions/server.d.ts +2 -2
  24. package/dist/events/definitions/server.d.ts.map +1 -1
  25. package/dist/events/definitions/tabs.d.ts +55 -0
  26. package/dist/events/definitions/tabs.d.ts.map +1 -0
  27. package/dist/events/definitions/tabs.js +1 -0
  28. package/dist/events/definitions/tabs.js.map +7 -0
  29. package/dist/events/definitions/tag.d.ts +15 -0
  30. package/dist/events/definitions/tag.d.ts.map +1 -0
  31. package/dist/events/definitions/tag.js +1 -0
  32. package/dist/events/definitions/tag.js.map +7 -0
  33. package/dist/events/definitions/ui.d.ts +131 -39
  34. package/dist/events/definitions/ui.d.ts.map +1 -1
  35. package/dist/events/definitions/workspace.d.ts +18 -0
  36. package/dist/events/definitions/workspace.d.ts.map +1 -0
  37. package/dist/events/definitions/workspace.js +1 -0
  38. package/dist/events/definitions/workspace.js.map +7 -0
  39. package/dist/events/index.d.ts +1 -1
  40. package/dist/events/index.d.ts.map +1 -1
  41. package/dist/events/index.js.map +2 -2
  42. package/dist/helpers/generate-unique-value.d.ts +19 -6
  43. package/dist/helpers/generate-unique-value.d.ts.map +1 -1
  44. package/dist/helpers/generate-unique-value.js +12 -7
  45. package/dist/helpers/generate-unique-value.js.map +2 -2
  46. package/dist/helpers/unpack-proxy.d.ts +14 -1
  47. package/dist/helpers/unpack-proxy.d.ts.map +1 -1
  48. package/dist/helpers/unpack-proxy.js +51 -1
  49. package/dist/helpers/unpack-proxy.js.map +3 -3
  50. package/dist/mutators/auth.d.ts +7 -2
  51. package/dist/mutators/auth.d.ts.map +1 -1
  52. package/dist/mutators/auth.js +24 -21
  53. package/dist/mutators/auth.js.map +2 -2
  54. package/dist/mutators/cookie.d.ts +21 -13
  55. package/dist/mutators/cookie.d.ts.map +1 -1
  56. package/dist/mutators/cookie.js +34 -26
  57. package/dist/mutators/cookie.js.map +3 -3
  58. package/dist/mutators/document.d.ts +12 -2
  59. package/dist/mutators/document.d.ts.map +1 -1
  60. package/dist/mutators/document.js +42 -3
  61. package/dist/mutators/document.js.map +2 -2
  62. package/dist/mutators/index.d.ts +30 -20
  63. package/dist/mutators/index.d.ts.map +1 -1
  64. package/dist/mutators/index.js +38 -9
  65. package/dist/mutators/index.js.map +2 -2
  66. package/dist/mutators/operation.d.ts +49 -108
  67. package/dist/mutators/operation.d.ts.map +1 -1
  68. package/dist/mutators/operation.js +198 -94
  69. package/dist/mutators/operation.js.map +2 -2
  70. package/dist/mutators/request.d.ts +2 -1
  71. package/dist/mutators/request.d.ts.map +1 -1
  72. package/dist/mutators/request.js.map +1 -1
  73. package/dist/mutators/server.d.ts +1 -1
  74. package/dist/mutators/server.d.ts.map +1 -1
  75. package/dist/mutators/server.js +6 -5
  76. package/dist/mutators/server.js.map +2 -2
  77. package/dist/mutators/tabs.d.ts +44 -0
  78. package/dist/mutators/tabs.d.ts.map +1 -0
  79. package/dist/mutators/tabs.js +133 -0
  80. package/dist/mutators/tabs.js.map +7 -0
  81. package/dist/mutators/tag.d.ts +12 -0
  82. package/dist/mutators/tag.d.ts.map +1 -0
  83. package/dist/mutators/tag.js +19 -0
  84. package/dist/mutators/tag.js.map +7 -0
  85. package/dist/mutators/workspace.d.ts +6 -0
  86. package/dist/mutators/workspace.d.ts.map +1 -0
  87. package/dist/mutators/workspace.js +24 -0
  88. package/dist/mutators/workspace.js.map +7 -0
  89. package/dist/navigation/get-navigation-options.d.ts.map +1 -1
  90. package/dist/navigation/get-navigation-options.js +4 -4
  91. package/dist/navigation/get-navigation-options.js.map +2 -2
  92. package/dist/navigation/helpers/get-openapi-object.d.ts +35 -0
  93. package/dist/navigation/helpers/get-openapi-object.d.ts.map +1 -0
  94. package/dist/navigation/helpers/get-openapi-object.js +31 -0
  95. package/dist/navigation/helpers/get-openapi-object.js.map +7 -0
  96. package/dist/navigation/helpers/get-operation-entries.d.ts +24 -0
  97. package/dist/navigation/helpers/get-operation-entries.d.ts.map +1 -0
  98. package/dist/navigation/helpers/get-operation-entries.js +33 -0
  99. package/dist/navigation/helpers/get-operation-entries.js.map +7 -0
  100. package/dist/navigation/helpers/get-parent-entry.d.ts +15 -0
  101. package/dist/navigation/helpers/get-parent-entry.d.ts.map +1 -0
  102. package/dist/navigation/helpers/get-parent-entry.js +13 -0
  103. package/dist/navigation/helpers/get-parent-entry.js.map +7 -0
  104. package/dist/navigation/helpers/traverse-description.d.ts +0 -1
  105. package/dist/navigation/helpers/traverse-description.d.ts.map +1 -1
  106. package/dist/navigation/helpers/traverse-description.js +0 -1
  107. package/dist/navigation/helpers/traverse-description.js.map +2 -2
  108. package/dist/navigation/helpers/traverse-document.d.ts +1 -0
  109. package/dist/navigation/helpers/traverse-document.d.ts.map +1 -1
  110. package/dist/navigation/helpers/traverse-document.js +16 -2
  111. package/dist/navigation/helpers/traverse-document.js.map +2 -2
  112. package/dist/navigation/helpers/traverse-examples.js +2 -2
  113. package/dist/navigation/helpers/traverse-examples.js.map +2 -2
  114. package/dist/navigation/helpers/traverse-paths.d.ts +6 -3
  115. package/dist/navigation/helpers/traverse-paths.d.ts.map +1 -1
  116. package/dist/navigation/helpers/traverse-paths.js +5 -10
  117. package/dist/navigation/helpers/traverse-paths.js.map +2 -2
  118. package/dist/navigation/helpers/traverse-tags.d.ts +0 -1
  119. package/dist/navigation/helpers/traverse-tags.d.ts.map +1 -1
  120. package/dist/navigation/helpers/traverse-tags.js +57 -49
  121. package/dist/navigation/helpers/traverse-tags.js.map +3 -3
  122. package/dist/navigation/helpers/utils.d.ts +2 -1
  123. package/dist/navigation/helpers/utils.d.ts.map +1 -1
  124. package/dist/navigation/helpers/utils.js.map +1 -1
  125. package/dist/navigation/index.d.ts +2 -1
  126. package/dist/navigation/index.d.ts.map +1 -1
  127. package/dist/navigation/index.js +5 -3
  128. package/dist/navigation/index.js.map +2 -2
  129. package/dist/persistence/index.d.ts +6 -0
  130. package/dist/persistence/index.d.ts.map +1 -1
  131. package/dist/persistence/index.js +18 -0
  132. package/dist/persistence/index.js.map +2 -2
  133. package/dist/persistence/indexdb.d.ts +1 -0
  134. package/dist/persistence/indexdb.d.ts.map +1 -1
  135. package/dist/persistence/indexdb.js +6 -1
  136. package/dist/persistence/indexdb.js.map +2 -2
  137. package/dist/plugins/client/persistence.d.ts.map +1 -1
  138. package/dist/plugins/client/persistence.js +6 -0
  139. package/dist/plugins/client/persistence.js.map +2 -2
  140. package/dist/schemas/extensions/document/x-scalar-environments.d.ts +1 -0
  141. package/dist/schemas/extensions/document/x-scalar-environments.d.ts.map +1 -1
  142. package/dist/schemas/extensions/document/x-scalar-environments.js.map +2 -2
  143. package/dist/schemas/extensions/document/x-scalar-set-operation-security.d.ts +13 -0
  144. package/dist/schemas/extensions/document/x-scalar-set-operation-security.d.ts.map +1 -0
  145. package/dist/schemas/extensions/document/x-scalar-set-operation-security.js +8 -0
  146. package/dist/schemas/extensions/document/x-scalar-set-operation-security.js.map +7 -0
  147. package/dist/schemas/extensions/general/x-scalar-cookies.d.ts +36 -0
  148. package/dist/schemas/extensions/general/x-scalar-cookies.d.ts.map +1 -0
  149. package/dist/schemas/extensions/general/x-scalar-cookies.js +15 -0
  150. package/dist/schemas/extensions/general/x-scalar-cookies.js.map +7 -0
  151. package/dist/schemas/extensions/general/x-scalar-order.d.ts +12 -0
  152. package/dist/schemas/extensions/general/x-scalar-order.d.ts.map +1 -0
  153. package/dist/schemas/extensions/general/x-scalar-order.js +8 -0
  154. package/dist/schemas/extensions/general/x-scalar-order.js.map +7 -0
  155. package/dist/schemas/extensions/operation/index.d.ts +4 -1
  156. package/dist/schemas/extensions/operation/index.d.ts.map +1 -1
  157. package/dist/schemas/extensions/operation/index.js +22 -0
  158. package/dist/schemas/extensions/operation/index.js.map +3 -3
  159. package/dist/schemas/extensions/operation/x-code-samples.d.ts +0 -5
  160. package/dist/schemas/extensions/operation/x-code-samples.d.ts.map +1 -1
  161. package/dist/schemas/extensions/operation/x-code-samples.js +0 -1
  162. package/dist/schemas/extensions/operation/x-code-samples.js.map +2 -2
  163. package/dist/schemas/extensions/operation/x-post-response.d.ts +0 -18
  164. package/dist/schemas/extensions/operation/x-post-response.d.ts.map +1 -1
  165. package/dist/schemas/extensions/operation/x-post-response.js.map +1 -1
  166. package/dist/schemas/extensions/tag/x-tag-groups.d.ts +8 -14
  167. package/dist/schemas/extensions/tag/x-tag-groups.d.ts.map +1 -1
  168. package/dist/schemas/extensions/tag/x-tag-groups.js +15 -11
  169. package/dist/schemas/extensions/tag/x-tag-groups.js.map +2 -2
  170. package/dist/schemas/extensions/workspace/index.d.ts +4 -0
  171. package/dist/schemas/extensions/workspace/index.d.ts.map +1 -0
  172. package/dist/schemas/extensions/workspace/index.js +15 -0
  173. package/dist/schemas/extensions/workspace/index.js.map +7 -0
  174. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts +18 -0
  175. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts.map +1 -0
  176. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js +8 -0
  177. package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js.map +7 -0
  178. package/dist/schemas/extensions/workspace/x-scalar-tabs.d.ts +36 -0
  179. package/dist/schemas/extensions/workspace/x-scalar-tabs.d.ts.map +1 -0
  180. package/dist/schemas/extensions/workspace/x-scalar-tabs.js +16 -0
  181. package/dist/schemas/extensions/workspace/x-scalar-tabs.js.map +7 -0
  182. package/dist/schemas/extensions.d.ts +1 -1
  183. package/dist/schemas/extensions.js +1 -1
  184. package/dist/schemas/extensions.js.map +2 -2
  185. package/dist/schemas/inmemory-workspace.d.ts +46 -33
  186. package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
  187. package/dist/schemas/navigation.d.ts +12 -1
  188. package/dist/schemas/navigation.d.ts.map +1 -1
  189. package/dist/schemas/navigation.js +2 -1
  190. package/dist/schemas/navigation.js.map +2 -2
  191. package/dist/schemas/reference-config/index.d.ts +22 -16
  192. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  193. package/dist/schemas/reference-config/settings.d.ts +22 -16
  194. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  195. package/dist/schemas/reference-config/settings.js +2 -0
  196. package/dist/schemas/reference-config/settings.js.map +2 -2
  197. package/dist/schemas/v3.1/strict/header.d.ts +0 -45
  198. package/dist/schemas/v3.1/strict/header.d.ts.map +1 -1
  199. package/dist/schemas/v3.1/strict/header.js +1 -3
  200. package/dist/schemas/v3.1/strict/header.js.map +2 -2
  201. package/dist/schemas/v3.1/strict/oauth-flow.d.ts +0 -99
  202. package/dist/schemas/v3.1/strict/oauth-flow.d.ts.map +1 -1
  203. package/dist/schemas/v3.1/strict/oauth-flow.js +0 -7
  204. package/dist/schemas/v3.1/strict/oauth-flow.js.map +2 -2
  205. package/dist/schemas/v3.1/strict/openapi-document.d.ts +756 -552
  206. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  207. package/dist/schemas/v3.1/strict/openapi-document.js +10 -11
  208. package/dist/schemas/v3.1/strict/openapi-document.js.map +2 -2
  209. package/dist/schemas/v3.1/strict/operation.d.ts +1 -5
  210. package/dist/schemas/v3.1/strict/operation.d.ts.map +1 -1
  211. package/dist/schemas/v3.1/strict/operation.js +1 -5
  212. package/dist/schemas/v3.1/strict/operation.js.map +2 -2
  213. package/dist/schemas/v3.1/strict/parameter.d.ts +1 -101
  214. package/dist/schemas/v3.1/strict/parameter.d.ts.map +1 -1
  215. package/dist/schemas/v3.1/strict/parameter.js +1 -4
  216. package/dist/schemas/v3.1/strict/parameter.js.map +2 -2
  217. package/dist/schemas/v3.1/strict/ref-definitions.d.ts +0 -1
  218. package/dist/schemas/v3.1/strict/ref-definitions.d.ts.map +1 -1
  219. package/dist/schemas/v3.1/strict/ref-definitions.js +0 -2
  220. package/dist/schemas/v3.1/strict/ref-definitions.js.map +2 -2
  221. package/dist/schemas/v3.1/strict/schema.d.ts +28 -11
  222. package/dist/schemas/v3.1/strict/schema.d.ts.map +1 -1
  223. package/dist/schemas/v3.1/strict/schema.js +2 -2
  224. package/dist/schemas/v3.1/strict/schema.js.map +2 -2
  225. package/dist/schemas/v3.1/strict/security-scheme.d.ts +1 -54
  226. package/dist/schemas/v3.1/strict/security-scheme.d.ts.map +1 -1
  227. package/dist/schemas/v3.1/strict/security-scheme.js +0 -5
  228. package/dist/schemas/v3.1/strict/security-scheme.js.map +2 -2
  229. package/dist/schemas/v3.1/strict/tag.d.ts +4 -1
  230. package/dist/schemas/v3.1/strict/tag.d.ts.map +1 -1
  231. package/dist/schemas/v3.1/strict/tag.js +3 -1
  232. package/dist/schemas/v3.1/strict/tag.js.map +2 -2
  233. package/dist/schemas/v3.1/strict/type-guards.d.ts +6 -0
  234. package/dist/schemas/v3.1/strict/type-guards.d.ts.map +1 -1
  235. package/dist/schemas/v3.1/strict/type-guards.js +4 -0
  236. package/dist/schemas/v3.1/strict/type-guards.js.map +2 -2
  237. package/dist/schemas/workspace-specification/config.d.ts +22 -16
  238. package/dist/schemas/workspace-specification/config.d.ts.map +1 -1
  239. package/dist/schemas/workspace-specification/index.d.ts +23 -17
  240. package/dist/schemas/workspace-specification/index.d.ts.map +1 -1
  241. package/dist/schemas/workspace.d.ts +204 -130
  242. package/dist/schemas/workspace.d.ts.map +1 -1
  243. package/dist/schemas/workspace.js +18 -11
  244. package/dist/schemas/workspace.js.map +2 -2
  245. package/dist/server.d.ts +1 -1
  246. package/dist/workspace-plugin.d.ts +3 -0
  247. package/dist/workspace-plugin.d.ts.map +1 -1
  248. package/package.json +50 -35
  249. package/dist/schemas/extensions/document/x-scalar-document-security.d.ts +0 -13
  250. package/dist/schemas/extensions/document/x-scalar-document-security.d.ts.map +0 -1
  251. package/dist/schemas/extensions/document/x-scalar-document-security.js +0 -8
  252. package/dist/schemas/extensions/document/x-scalar-document-security.js.map +0 -7
  253. package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.d.ts +0 -13
  254. package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.d.ts.map +0 -1
  255. package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.js +0 -9
  256. package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.js.map +0 -7
  257. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.d.ts +0 -32
  258. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.d.ts.map +0 -1
  259. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.js +0 -13
  260. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.js.map +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # @scalar/workspace-store
2
2
 
3
+ ## 0.22.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#7431](https://github.com/scalar/scalar/pull/7431) [`61c980c`](https://github.com/scalar/scalar/commit/61c980cebef219685a05f3a4cb1e379984922cd4) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: implememnt command palette
8
+
9
+ - [#7455](https://github.com/scalar/scalar/pull/7455) [`1bc2b45`](https://github.com/scalar/scalar/commit/1bc2b45b6eabd5c5045e77d67f59d202ab04d3fb) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: tabs support on the store
10
+
11
+ ### Patch Changes
12
+
13
+ - [#7465](https://github.com/scalar/scalar/pull/7465) [`9342adc`](https://github.com/scalar/scalar/commit/9342adcd76e26a8e5eff75c1a2abee2c207b1487) Thanks [@marcalexiei](https://github.com/marcalexiei)! - fix: ensure `@scalar/workspace-store` consumers rely only on public exports
14
+
15
+ - [#7387](https://github.com/scalar/scalar/pull/7387) [`bfd814a`](https://github.com/scalar/scalar/commit/bfd814a4219660face190041cc4845182b56ab03) Thanks [@geoffgscott](https://github.com/geoffgscott)! - hotfix: patch exports from build tooling bug
16
+
17
+ - [#7416](https://github.com/scalar/scalar/pull/7416) [`86f028d`](https://github.com/scalar/scalar/commit/86f028deb0b456f923edd261f5f4b0fa9b616b7d) Thanks [@amritk](https://github.com/amritk)! - feat: add update method to client v2
18
+
19
+ - [#7414](https://github.com/scalar/scalar/pull/7414) [`294f9fc`](https://github.com/scalar/scalar/commit/294f9fc6cfd43cdab110deb1c851883509bc2b84) Thanks [@hanspagel](https://github.com/hanspagel)! - feat: show tags without operations
20
+
21
+ - Updated dependencies [[`781f264`](https://github.com/scalar/scalar/commit/781f2648bc758a251435c3a1e2b126a37f20e44f), [`fa361d2`](https://github.com/scalar/scalar/commit/fa361d2799e358d582fbb224a7b93d5b6e832c0e), [`e04879c`](https://github.com/scalar/scalar/commit/e04879c65602dfb65393876754f5344751b8953d), [`dd8e9dc`](https://github.com/scalar/scalar/commit/dd8e9dc118d3ae98180e2a93bd6ba11e982abbf8), [`bfd814a`](https://github.com/scalar/scalar/commit/bfd814a4219660face190041cc4845182b56ab03), [`781f264`](https://github.com/scalar/scalar/commit/781f2648bc758a251435c3a1e2b126a37f20e44f), [`35af6bf`](https://github.com/scalar/scalar/commit/35af6bfce4bc4ae3d0fc5783ea36e0165e964361), [`86f028d`](https://github.com/scalar/scalar/commit/86f028deb0b456f923edd261f5f4b0fa9b616b7d), [`af54a80`](https://github.com/scalar/scalar/commit/af54a80349269a4269a68f6a372f837177a3537c)]:
22
+ - @scalar/code-highlight@0.2.1
23
+ - @scalar/snippetz@0.5.4
24
+ - @scalar/json-magic@0.8.3
25
+ - @scalar/helpers@0.1.3
26
+ - @scalar/types@0.5.1
27
+ - @scalar/themes@0.13.25
28
+ - @scalar/object-utils@1.2.13
29
+ - @scalar/openapi-upgrader@0.1.5
30
+
31
+ ## 0.21.0
32
+
33
+ ### Minor Changes
34
+
35
+ - [#7310](https://github.com/scalar/scalar/pull/7310) [`6e1cb89`](https://github.com/scalar/scalar/commit/6e1cb89f71770601a5059449d68b409ffc87d332) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: workspace selector
36
+
37
+ - [#7366](https://github.com/scalar/scalar/pull/7366) [`1fbd809`](https://github.com/scalar/scalar/commit/1fbd809197bfaef77d7d3cb8cf7b657f397232a7) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: support sidebar rebuild and remove the 'default' tag concept
38
+
39
+ - [#7384](https://github.com/scalar/scalar/pull/7384) [`3ebff92`](https://github.com/scalar/scalar/commit/3ebff92f29d8d03d626d4000e8323528e794e755) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: collection and document settings and cookies page
40
+
41
+ ### Patch Changes
42
+
43
+ - [#7392](https://github.com/scalar/scalar/pull/7392) [`d86f1d6`](https://github.com/scalar/scalar/commit/d86f1d6911ecbca70b011a2a0efb6d6e0eca59bb) Thanks [@amritk](https://github.com/amritk)! - fix: move away from wasm hashing algo
44
+
45
+ - [#7287](https://github.com/scalar/scalar/pull/7287) [`dd5c518`](https://github.com/scalar/scalar/commit/dd5c518a422dddc7948c0253861101cf741b6af0) Thanks [@DemonHa](https://github.com/DemonHa)! - fix: correctly update the parameter examples
46
+
47
+ - [#7329](https://github.com/scalar/scalar/pull/7329) [`4cda566`](https://github.com/scalar/scalar/commit/4cda566c2dc2cf306e4e3597e292ae1c2dadd78c) Thanks [@DemonHa](https://github.com/DemonHa)! - fix: setting nested proxies directly cases problems
48
+
49
+ - [#7365](https://github.com/scalar/scalar/pull/7365) [`4059e68`](https://github.com/scalar/scalar/commit/4059e68375d31ec0142a8019b385bc3ac82055fc) Thanks [@amritk](https://github.com/amritk)! - feat: added hot keys to client v2
50
+
51
+ - Updated dependencies [[`d86f1d6`](https://github.com/scalar/scalar/commit/d86f1d6911ecbca70b011a2a0efb6d6e0eca59bb), [`44aeef0`](https://github.com/scalar/scalar/commit/44aeef01073801165e339163462378b7b62ff68d), [`a68b1af`](https://github.com/scalar/scalar/commit/a68b1afc54b2aa95a224fee89c3266bffed57215), [`cbedfab`](https://github.com/scalar/scalar/commit/cbedfab576502069be27ceacbea145a917214e47), [`a68b1af`](https://github.com/scalar/scalar/commit/a68b1afc54b2aa95a224fee89c3266bffed57215), [`5a108fc`](https://github.com/scalar/scalar/commit/5a108fcbc52ae7957731c23689896ba353b83d3b), [`cded2d6`](https://github.com/scalar/scalar/commit/cded2d6c087418c3c44731d344d0827a87b78b74), [`cbedfab`](https://github.com/scalar/scalar/commit/cbedfab576502069be27ceacbea145a917214e47)]:
52
+ - @scalar/json-magic@0.8.2
53
+ - @scalar/helpers@0.1.2
54
+ - @scalar/types@0.5.0
55
+ - @scalar/object-utils@1.2.12
56
+ - @scalar/themes@0.13.24
57
+ - @scalar/openapi-upgrader@0.1.4
58
+ - @scalar/snippetz@0.5.3
59
+ - @scalar/code-highlight@0.2.0
60
+
3
61
  ## 0.20.0
4
62
 
5
63
  ### Minor Changes
package/README.md CHANGED
@@ -213,7 +213,7 @@ store.workspace.activeDocument
213
213
  store.workspace.documents['document']
214
214
 
215
215
  // Update global workspace settings
216
- store.update('x-scalar-dark-mode', true)
216
+ store.update('x-scalar-color-mode', true)
217
217
 
218
218
  // Update settings for the active document
219
219
  store.updateDocument('active', "x-scalar-active-auth", '<value>')
@@ -431,7 +431,7 @@ await store.importWorkspaceFromSpecification({
431
431
  ],
432
432
  },
433
433
  },
434
- 'x-scalar-dark-mode': true,
434
+ 'x-scalar-color-mode': true,
435
435
  })
436
436
  ```
437
437
 
package/dist/client.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { type Difference, merge } from '@scalar/json-magic/diff';
2
2
  import type { PartialDeep, RequiredDeep } from 'type-fest';
3
- import { type InMemoryWorkspace } from './schemas/inmemory-workspace.js';
3
+ import type { InMemoryWorkspace } from './schemas/inmemory-workspace.js';
4
4
  import { type OpenApiDocument } from './schemas/v3.1/strict/openapi-document.js';
5
- import type { Workspace, WorkspaceDocumentMeta, WorkspaceMeta } from './schemas/workspace.js';
5
+ import type { Workspace, WorkspaceDocumentMeta, WorkspaceExtensions, WorkspaceMeta } from './schemas/workspace.js';
6
6
  import type { WorkspaceSpecification } from './schemas/workspace-specification/index.js';
7
7
  import type { Config, DocumentConfiguration } from './schemas/workspace-specification/config.js';
8
8
  import type { WorkspacePlugin } from './workspace-plugin.js';
@@ -75,7 +75,7 @@ export type WorkspaceStore = {
75
75
  * // Update the workspace title
76
76
  * update('x-scalar-active-document', 'document-name')
77
77
  */
78
- update<K extends keyof WorkspaceMeta>(key: K, value: WorkspaceMeta[K]): void;
78
+ update<K extends keyof WorkspaceMeta | keyof WorkspaceExtensions>(key: K, value: (WorkspaceMeta & WorkspaceExtensions)[K]): void;
79
79
  /**
80
80
  * Updates a specific metadata field in a document
81
81
  * @param name - The name of the document to update ('active' or a specific document name)
@@ -136,7 +136,36 @@ export type WorkspaceStore = {
136
136
  * }
137
137
  * })
138
138
  */
139
- addDocument(input: WorkspaceDocumentInput): Promise<void>;
139
+ addDocument(input: WorkspaceDocumentInput): Promise<boolean>;
140
+ /**
141
+ * Deletes a document from the workspace and all associated data.
142
+ *
143
+ * This method removes the document from the workspace along with all related data including:
144
+ * - The document itself from the workspace documents map
145
+ * - Original document data
146
+ * - Intermediate document data (saved local versions)
147
+ * - Document-specific configuration
148
+ * - Document overrides
149
+ * - Extra document configurations
150
+ *
151
+ * If the deleted document was the active document, the active document is automatically
152
+ * reset to the first remaining document in the workspace, or undefined if no documents remain.
153
+ *
154
+ * The deletion is automatically tracked by the workspace change detection system,
155
+ * and appropriate events will be fired to notify registered plugins.
156
+ *
157
+ * @param documentName - The name of the document to delete
158
+ * @returns void
159
+ *
160
+ * @example
161
+ * // Delete the document named 'api'
162
+ * store.deleteDocument('api')
163
+ *
164
+ * @example
165
+ * // Delete multiple documents
166
+ * ['api', 'petstore'].forEach(name => store.deleteDocument(name))
167
+ */
168
+ deleteDocument(documentName: string): void;
140
169
  /**
141
170
  * Returns the merged configuration for the active document.
142
171
  *
@@ -149,6 +178,18 @@ export type WorkspaceStore = {
149
178
  * falling back to the first document if none is specified.
150
179
  */
151
180
  readonly config: typeof defaultConfig;
181
+ /**
182
+ * Returns the merged configuration for a specific document.
183
+ *
184
+ * This method merges configurations in the following order of precedence:
185
+ * 1. Document-specific configuration (highest priority)
186
+ * 2. Workspace-level configuration
187
+ * 3. Default configuration (lowest priority)
188
+ *
189
+ * @param documentName - The name of the document to get the configuration for
190
+ * @returns The merged configuration for the specified document
191
+ */
192
+ getDocumentConfiguration(documentName: string): typeof defaultConfig;
152
193
  /**
153
194
  * Exports the specified document in the requested format.
154
195
  *
@@ -208,6 +249,13 @@ export type WorkspaceStore = {
208
249
  * const excludedDiffs = store.saveDocument('api')
209
250
  */
210
251
  saveDocument(documentName: string): Promise<unknown[] | undefined>;
252
+ /**
253
+ * Builds the sidebar for the specified document.
254
+ *
255
+ * @param documentName - The name of the document to build the sidebar for
256
+ * @returns boolean indicating if the sidebar was built successfully
257
+ */
258
+ buildSidebar: (documentName: string) => boolean;
211
259
  /**
212
260
  * Restores the specified document to its last locally saved state.
213
261
  *
@@ -277,13 +325,13 @@ export type WorkspaceStore = {
277
325
  * },
278
326
  * info: { title: 'My Workspace' },
279
327
  * workspace: 'v1',
280
- * "x-scalar-dark-mode": true
328
+ * "x-scalar-color-mode": true
281
329
  * })
282
330
  * ```
283
331
  *
284
332
  * @param specification - The workspace specification to import.
285
333
  */
286
- importWorkspaceFromSpecification(specification: WorkspaceSpecification): Promise<void[]>;
334
+ importWorkspaceFromSpecification(specification: WorkspaceSpecification): Promise<boolean[]>;
287
335
  /**
288
336
  * Rebases a document in the workspace by refetching its origin and merging with local edits.
289
337
  *
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,8 +1,9 @@
1
+ import { preventPollution } from "@scalar/helpers/object/prevent-pollution";
2
+ import { generateHash } from "@scalar/helpers/string/generate-hash";
1
3
  import { measureAsync, measureSync } from "@scalar/helpers/testing/measure";
2
4
  import { bundle } from "@scalar/json-magic/bundle";
3
5
  import { fetchUrls } from "@scalar/json-magic/bundle/plugins/browser";
4
6
  import { apply, diff, merge } from "@scalar/json-magic/diff";
5
- import { generateHash } from "@scalar/json-magic/helpers/generate-hash";
6
7
  import { createMagicProxy, getRaw } from "@scalar/json-magic/magic-proxy";
7
8
  import { upgrade } from "@scalar/openapi-upgrader";
8
9
  import { Value } from "@scalar/typebox/value";
@@ -20,7 +21,6 @@ import { createNavigation } from "./navigation/index.js";
20
21
  import { externalValueResolver, loadingStatus, refsEverywhere, restoreOriginalRefs } from "./plugins/bundler/index.js";
21
22
  import { getServersFromDocument } from "./preprocessing/server.js";
22
23
  import { extensions } from "./schemas/extensions.js";
23
- import { InMemoryWorkspaceSchema } from "./schemas/inmemory-workspace.js";
24
24
  import { defaultReferenceConfig } from "./schemas/reference-config/index.js";
25
25
  import { coerceValue } from "./schemas/typebox-coerce.js";
26
26
  import {
@@ -110,7 +110,7 @@ const createWorkspaceStore = (workspaceProps) => {
110
110
  const { activeDocument: _a, documents: _d, ...meta } = workspace;
111
111
  const event = {
112
112
  type: "meta",
113
- value: unpackProxyObject(meta)
113
+ value: unpackProxyObject(meta, { depth: 1 })
114
114
  };
115
115
  fireWorkspaceChange(event);
116
116
  return;
@@ -325,7 +325,7 @@ const createWorkspaceStore = (workspaceProps) => {
325
325
  "loadDocument",
326
326
  async () => await loadDocument({ ...input, fetch: input.fetch ?? workspaceProps?.fetch })
327
327
  );
328
- await measureAsync("addDocument", async () => {
328
+ return await measureAsync("addDocument", async () => {
329
329
  if (!resolve.ok) {
330
330
  console.error(`Failed to fetch document '${name}': request was not successful`);
331
331
  workspace.documents[name] = {
@@ -337,7 +337,7 @@ const createWorkspaceStore = (workspaceProps) => {
337
337
  },
338
338
  "x-scalar-original-document-hash": "not-a-hash"
339
339
  };
340
- return;
340
+ return false;
341
341
  }
342
342
  if (!isObject(resolve.data)) {
343
343
  console.error(`Failed to load document '${name}': response data is not a valid object`);
@@ -350,16 +350,27 @@ const createWorkspaceStore = (workspaceProps) => {
350
350
  },
351
351
  "x-scalar-original-document-hash": "not-a-hash"
352
352
  };
353
- return;
353
+ return false;
354
354
  }
355
355
  await addInMemoryDocument({
356
356
  ...input,
357
357
  document: resolve.data,
358
358
  documentSource: getDocumentSource(input),
359
- documentHash: await generateHash(resolve.raw)
359
+ documentHash: generateHash(resolve.raw)
360
360
  });
361
+ return true;
361
362
  });
362
363
  }
364
+ const buildSidebar = (documentName) => {
365
+ const document = workspace.documents[documentName];
366
+ if (!document) {
367
+ console.error(`Document '${documentName}' does not exist in the workspace.`);
368
+ return false;
369
+ }
370
+ const navigation = createNavigation(documentName, document, getDocumentConfiguration(documentName));
371
+ document[extensions.document.navigation] = navigation;
372
+ return true;
373
+ };
363
374
  const getDocumentConfiguration = (name) => {
364
375
  return mergeObjects(
365
376
  mergeObjects(deepClone(defaultConfig), workspaceProps?.config ?? {}),
@@ -372,9 +383,7 @@ const createWorkspaceStore = (workspaceProps) => {
372
383
  return workspace;
373
384
  },
374
385
  update(key, value) {
375
- if (key === "__proto__" || key === "constructor" || key === "prototype") {
376
- throw new Error("Invalid key: cannot modify prototype");
377
- }
386
+ preventPollution(key);
378
387
  Object.assign(workspace, { [key]: value });
379
388
  },
380
389
  updateDocument(name, key, value) {
@@ -382,6 +391,7 @@ const createWorkspaceStore = (workspaceProps) => {
382
391
  if (!currentDocument) {
383
392
  throw "Please select a valid document";
384
393
  }
394
+ preventPollution(key);
385
395
  Object.assign(currentDocument, { [key]: value });
386
396
  },
387
397
  async replaceDocument(documentName, input) {
@@ -420,11 +430,39 @@ const createWorkspaceStore = (workspaceProps) => {
420
430
  });
421
431
  },
422
432
  addDocument,
433
+ /**
434
+ * Deletes a document from the workspace and all associated data.
435
+ *
436
+ * This function removes the document and all related data structures.
437
+ * If the deleted document was active, it automatically selects the first remaining document.
438
+ */
439
+ deleteDocument: (documentName) => {
440
+ if (!workspace.documents[documentName]) {
441
+ return;
442
+ }
443
+ delete workspace.documents[documentName];
444
+ delete originalDocuments[documentName];
445
+ delete intermediateDocuments[documentName];
446
+ delete documentConfigs[documentName];
447
+ delete overrides[documentName];
448
+ delete extraDocumentConfigurations[documentName];
449
+ const remainingDocuments = Object.keys(workspace.documents);
450
+ const wasActiveDocument = workspace["x-scalar-active-document"] === documentName;
451
+ if (wasActiveDocument) {
452
+ workspace["x-scalar-active-document"] = remainingDocuments[0] ?? void 0;
453
+ }
454
+ fireWorkspaceChange({
455
+ type: "deleteDocument",
456
+ documentName
457
+ });
458
+ },
423
459
  get config() {
424
460
  return getDocumentConfiguration(getActiveDocumentName());
425
461
  },
462
+ getDocumentConfiguration,
426
463
  exportDocument,
427
464
  exportActiveDocument: (format, minify) => exportDocument(getActiveDocumentName(), format, minify),
465
+ buildSidebar,
428
466
  saveDocument,
429
467
  async revertDocumentChanges(documentName) {
430
468
  const workspaceDocument = workspace.documents[documentName];
@@ -444,42 +482,41 @@ const createWorkspaceStore = (workspaceProps) => {
444
482
  console.warn(`Commit operation for document '${documentName}' is not implemented yet.`);
445
483
  },
446
484
  exportWorkspace() {
485
+ const { activeDocument: _, documents, ...meta } = unpackProxyObject(workspace);
447
486
  return {
448
487
  documents: {
449
488
  ...Object.fromEntries(
450
- Object.entries(workspace.documents).map(([name, doc]) => [
489
+ Object.entries(documents).map(([name, doc]) => [
451
490
  name,
452
- // Extract the raw document data for export, removing any Vue reactivity wrappers.
453
- // When importing, the document can be wrapped again in a magic proxy.
454
- toRaw(getRaw(unpackOverridesProxy(doc)))
491
+ // Get the raw document without any proxies
492
+ unpackProxyObject(doc)
455
493
  ])
456
494
  )
457
495
  },
458
- meta: workspaceProps?.meta ?? {},
459
- documentConfigs,
460
- originalDocuments,
461
- intermediateDocuments,
462
- overrides
496
+ meta: unpackProxyObject(meta) ?? {},
497
+ documentConfigs: unpackProxyObject(documentConfigs),
498
+ originalDocuments: unpackProxyObject(originalDocuments),
499
+ intermediateDocuments: unpackProxyObject(intermediateDocuments),
500
+ overrides: unpackProxyObject(overrides)
463
501
  };
464
502
  },
465
503
  loadWorkspace(input) {
466
- const result = coerceValue(InMemoryWorkspaceSchema, input);
467
504
  safeAssign(
468
505
  workspace.documents,
469
506
  Object.fromEntries(
470
- Object.entries(result.documents).map(([name, doc]) => [
507
+ Object.entries(input.documents).map(([name, doc]) => [
471
508
  name,
472
509
  createOverridesProxy(createMagicProxy(doc), {
473
- overrides: result.overrides[name]
510
+ overrides: input.overrides[name]
474
511
  })
475
512
  ])
476
513
  )
477
514
  );
478
- safeAssign(originalDocuments, result.originalDocuments);
479
- safeAssign(intermediateDocuments, result.intermediateDocuments);
480
- safeAssign(documentConfigs, result.documentConfigs);
481
- safeAssign(overrides, result.overrides);
482
- safeAssign(workspace, result.meta);
515
+ safeAssign(originalDocuments, input.originalDocuments);
516
+ safeAssign(intermediateDocuments, input.intermediateDocuments);
517
+ safeAssign(documentConfigs, input.documentConfigs);
518
+ safeAssign(overrides, input.overrides);
519
+ safeAssign(workspace, input.meta);
483
520
  },
484
521
  importWorkspaceFromSpecification: (specification) => {
485
522
  const { documents, overrides: overrides2, info: _info, workspace: _workspaceVersion, ...meta } = specification;
@@ -513,7 +550,7 @@ const createWorkspaceStore = (workspaceProps) => {
513
550
  message: `Failed to fetch document '${name}': request was not successful or returned invalid data`
514
551
  };
515
552
  }
516
- const newHash = await generateHash(resolve.raw);
553
+ const newHash = generateHash(resolve.raw);
517
554
  if (activeDocument["x-scalar-original-document-hash"] === newHash) {
518
555
  return {
519
556
  ok: false,
@@ -561,7 +598,7 @@ const createWorkspaceStore = (workspaceProps) => {
561
598
  },
562
599
  documentSource: getDocumentSource(input),
563
600
  // Update the original document hash
564
- documentHash: await generateHash(resolve.raw),
601
+ documentHash: generateHash(resolve.raw),
565
602
  initialize: false
566
603
  });
567
604
  }