@scalar/workspace-store 0.17.1 → 0.18.1

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 (202) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/client.d.ts +31 -19
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +267 -88
  5. package/dist/client.js.map +3 -3
  6. package/dist/events/bus.d.ts +96 -0
  7. package/dist/events/bus.d.ts.map +1 -0
  8. package/dist/events/bus.js +60 -0
  9. package/dist/events/bus.js.map +7 -0
  10. package/dist/events/definitions/analytics.d.ts +27 -0
  11. package/dist/events/definitions/analytics.d.ts.map +1 -0
  12. package/dist/events/definitions/analytics.js +1 -0
  13. package/dist/events/definitions/analytics.js.map +7 -0
  14. package/dist/events/definitions/auth.d.ts +30 -0
  15. package/dist/events/definitions/auth.d.ts.map +1 -0
  16. package/dist/events/definitions/auth.js +1 -0
  17. package/dist/events/definitions/auth.js.map +7 -0
  18. package/dist/events/definitions/common.d.ts +5 -0
  19. package/dist/events/definitions/common.d.ts.map +1 -0
  20. package/dist/events/definitions/common.js +1 -0
  21. package/dist/events/definitions/common.js.map +7 -0
  22. package/dist/events/definitions/document.d.ts +14 -0
  23. package/dist/events/definitions/document.d.ts.map +1 -0
  24. package/dist/events/definitions/document.js +1 -0
  25. package/dist/events/definitions/document.js.map +7 -0
  26. package/dist/events/definitions/environment.d.ts +37 -0
  27. package/dist/events/definitions/environment.d.ts.map +1 -0
  28. package/dist/events/definitions/environment.js +1 -0
  29. package/dist/events/definitions/environment.js.map +7 -0
  30. package/dist/events/definitions/index.d.ts +12 -0
  31. package/dist/events/definitions/index.d.ts.map +1 -0
  32. package/dist/events/definitions/index.js +1 -0
  33. package/dist/events/definitions/index.js.map +7 -0
  34. package/dist/events/definitions/meta.d.ts +17 -0
  35. package/dist/events/definitions/meta.d.ts.map +1 -0
  36. package/dist/events/definitions/meta.js +1 -0
  37. package/dist/events/definitions/meta.js.map +7 -0
  38. package/dist/events/definitions/operation.d.ts +11 -0
  39. package/dist/events/definitions/operation.d.ts.map +1 -0
  40. package/dist/events/definitions/operation.js +1 -0
  41. package/dist/events/definitions/operation.js.map +7 -0
  42. package/dist/events/definitions/server.d.ts +50 -0
  43. package/dist/events/definitions/server.d.ts.map +1 -0
  44. package/dist/events/definitions/server.js +1 -0
  45. package/dist/events/definitions/server.js.map +7 -0
  46. package/dist/events/definitions/ui.d.ts +52 -0
  47. package/dist/events/definitions/ui.d.ts.map +1 -0
  48. package/dist/events/definitions/ui.js +1 -0
  49. package/dist/events/definitions/ui.js.map +7 -0
  50. package/dist/events/index.d.ts +3 -1
  51. package/dist/events/index.d.ts.map +1 -1
  52. package/dist/events/index.js +3 -1
  53. package/dist/events/index.js.map +2 -2
  54. package/dist/events/listeners.d.ts +2 -1
  55. package/dist/events/listeners.d.ts.map +1 -1
  56. package/dist/events/listeners.js.map +2 -2
  57. package/dist/events/{definitions.d.ts → old-definitions.d.ts} +35 -11
  58. package/dist/events/old-definitions.d.ts.map +1 -0
  59. package/dist/events/{definitions.js → old-definitions.js} +1 -1
  60. package/dist/events/old-definitions.js.map +7 -0
  61. package/dist/helpers/debounce.d.ts +28 -0
  62. package/dist/helpers/debounce.d.ts.map +1 -0
  63. package/dist/helpers/debounce.js +31 -0
  64. package/dist/helpers/debounce.js.map +7 -0
  65. package/dist/helpers/detect-changes-proxy.d.ts +47 -0
  66. package/dist/helpers/detect-changes-proxy.d.ts.map +1 -0
  67. package/dist/helpers/detect-changes-proxy.js +59 -0
  68. package/dist/helpers/detect-changes-proxy.js.map +7 -0
  69. package/dist/helpers/overrides-proxy.d.ts +17 -6
  70. package/dist/helpers/overrides-proxy.d.ts.map +1 -1
  71. package/dist/helpers/overrides-proxy.js +33 -18
  72. package/dist/helpers/overrides-proxy.js.map +3 -3
  73. package/dist/helpers/unpack-proxy.d.ts +6 -0
  74. package/dist/helpers/unpack-proxy.d.ts.map +1 -0
  75. package/dist/helpers/unpack-proxy.js +9 -0
  76. package/dist/helpers/unpack-proxy.js.map +7 -0
  77. package/dist/mutators/environment.d.ts +21 -13
  78. package/dist/mutators/environment.d.ts.map +1 -1
  79. package/dist/mutators/environment.js +46 -25
  80. package/dist/mutators/environment.js.map +2 -2
  81. package/dist/mutators/index.d.ts +4 -12
  82. package/dist/mutators/index.d.ts.map +1 -1
  83. package/dist/mutators/index.js +7 -4
  84. package/dist/mutators/index.js.map +2 -2
  85. package/dist/navigation/get-navigation-options.d.ts +1 -1
  86. package/dist/navigation/get-navigation-options.d.ts.map +1 -1
  87. package/dist/navigation/get-navigation-options.js +66 -54
  88. package/dist/navigation/get-navigation-options.js.map +2 -2
  89. package/dist/navigation/helpers/get-tag.d.ts +7 -2
  90. package/dist/navigation/helpers/get-tag.d.ts.map +1 -1
  91. package/dist/navigation/helpers/get-tag.js +16 -2
  92. package/dist/navigation/helpers/get-tag.js.map +2 -2
  93. package/dist/navigation/helpers/traverse-description.d.ts +7 -2
  94. package/dist/navigation/helpers/traverse-description.d.ts.map +1 -1
  95. package/dist/navigation/helpers/traverse-description.js +24 -6
  96. package/dist/navigation/helpers/traverse-description.js.map +2 -2
  97. package/dist/navigation/helpers/traverse-document.d.ts +5 -2
  98. package/dist/navigation/helpers/traverse-document.d.ts.map +1 -1
  99. package/dist/navigation/helpers/traverse-document.js +53 -15
  100. package/dist/navigation/helpers/traverse-document.js.map +2 -2
  101. package/dist/navigation/helpers/traverse-paths.d.ts +9 -3
  102. package/dist/navigation/helpers/traverse-paths.d.ts.map +1 -1
  103. package/dist/navigation/helpers/traverse-paths.js +63 -9
  104. package/dist/navigation/helpers/traverse-paths.js.map +2 -2
  105. package/dist/navigation/helpers/traverse-schemas.d.ts +7 -8
  106. package/dist/navigation/helpers/traverse-schemas.d.ts.map +1 -1
  107. package/dist/navigation/helpers/traverse-schemas.js +35 -7
  108. package/dist/navigation/helpers/traverse-schemas.js.map +2 -2
  109. package/dist/navigation/helpers/traverse-tags.d.ts +8 -4
  110. package/dist/navigation/helpers/traverse-tags.d.ts.map +1 -1
  111. package/dist/navigation/helpers/traverse-tags.js +65 -17
  112. package/dist/navigation/helpers/traverse-tags.js.map +2 -2
  113. package/dist/navigation/helpers/traverse-webhooks.d.ts +9 -3
  114. package/dist/navigation/helpers/traverse-webhooks.d.ts.map +1 -1
  115. package/dist/navigation/helpers/traverse-webhooks.js +43 -17
  116. package/dist/navigation/helpers/traverse-webhooks.js.map +2 -2
  117. package/dist/navigation/types.d.ts +5 -24
  118. package/dist/navigation/types.d.ts.map +1 -1
  119. package/dist/persistence/index.d.ts +86 -0
  120. package/dist/persistence/index.d.ts.map +1 -0
  121. package/dist/persistence/index.js +196 -0
  122. package/dist/persistence/index.js.map +7 -0
  123. package/dist/persistence/indexdb.d.ts +87 -0
  124. package/dist/persistence/indexdb.d.ts.map +1 -0
  125. package/dist/persistence/indexdb.js +125 -0
  126. package/dist/persistence/indexdb.js.map +7 -0
  127. package/dist/{plugins.d.ts → plugins/bundler/index.d.ts} +1 -1
  128. package/dist/plugins/bundler/index.d.ts.map +1 -0
  129. package/dist/{plugins.js → plugins/bundler/index.js} +2 -2
  130. package/dist/{plugins.js.map → plugins/bundler/index.js.map} +1 -1
  131. package/dist/plugins/client/index.d.ts +3 -0
  132. package/dist/plugins/client/index.d.ts.map +1 -0
  133. package/dist/plugins/client/index.js +5 -0
  134. package/dist/plugins/client/index.js.map +7 -0
  135. package/dist/plugins/client/persistence.d.ts +13 -0
  136. package/dist/plugins/client/persistence.d.ts.map +1 -0
  137. package/dist/plugins/client/persistence.js +57 -0
  138. package/dist/plugins/client/persistence.js.map +7 -0
  139. package/dist/schemas/extensions/document/x-scalar-environments.d.ts +52 -0
  140. package/dist/schemas/extensions/document/x-scalar-environments.d.ts.map +1 -0
  141. package/dist/schemas/extensions/document/x-scalar-environments.js +25 -0
  142. package/dist/schemas/extensions/document/x-scalar-environments.js.map +7 -0
  143. package/dist/schemas/extensions/workspace/x-scalar-active-environment.d.ts +8 -0
  144. package/dist/schemas/extensions/workspace/x-scalar-active-environment.d.ts.map +1 -0
  145. package/dist/schemas/extensions/workspace/x-scalar-active-environment.js +8 -0
  146. package/dist/schemas/extensions/workspace/x-scalar-active-environment.js.map +7 -0
  147. package/dist/schemas/extensions.d.ts +1 -0
  148. package/dist/schemas/extensions.d.ts.map +1 -1
  149. package/dist/schemas/extensions.js +1 -0
  150. package/dist/schemas/extensions.js.map +2 -2
  151. package/dist/schemas/inmemory-workspace.d.ts +95 -28
  152. package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
  153. package/dist/schemas/inmemory-workspace.js +1 -9
  154. package/dist/schemas/inmemory-workspace.js.map +2 -2
  155. package/dist/schemas/navigation.d.ts +128 -1
  156. package/dist/schemas/navigation.d.ts.map +1 -1
  157. package/dist/schemas/navigation.js +20 -1
  158. package/dist/schemas/navigation.js.map +2 -2
  159. package/dist/schemas/reference-config/index.d.ts +243 -206
  160. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  161. package/dist/schemas/reference-config/index.js.map +2 -2
  162. package/dist/schemas/reference-config/settings.d.ts +45 -9
  163. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  164. package/dist/schemas/reference-config/settings.js +1 -1
  165. package/dist/schemas/reference-config/settings.js.map +1 -1
  166. package/dist/schemas/v3.1/strict/openapi-document.d.ts +1540 -311
  167. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  168. package/dist/schemas/v3.1/strict/openapi-document.js +20 -13
  169. package/dist/schemas/v3.1/strict/openapi-document.js.map +2 -2
  170. package/dist/schemas/v3.1/strict/parameter.d.ts +23 -1
  171. package/dist/schemas/v3.1/strict/parameter.d.ts.map +1 -1
  172. package/dist/schemas/v3.1/strict/parameter.js +5 -1
  173. package/dist/schemas/v3.1/strict/parameter.js.map +2 -2
  174. package/dist/schemas/v3.1/strict/ref-definitions.d.ts +2 -0
  175. package/dist/schemas/v3.1/strict/ref-definitions.d.ts.map +1 -1
  176. package/dist/schemas/v3.1/strict/ref-definitions.js +4 -1
  177. package/dist/schemas/v3.1/strict/ref-definitions.js.map +2 -2
  178. package/dist/schemas/workspace-specification/config.d.ts +46 -15
  179. package/dist/schemas/workspace-specification/config.d.ts.map +1 -1
  180. package/dist/schemas/workspace-specification/config.js.map +1 -1
  181. package/dist/schemas/workspace-specification/index.d.ts +48 -11
  182. package/dist/schemas/workspace-specification/index.d.ts.map +1 -1
  183. package/dist/schemas/workspace.d.ts +353 -85
  184. package/dist/schemas/workspace.d.ts.map +1 -1
  185. package/dist/schemas/workspace.js +19 -11
  186. package/dist/schemas/workspace.js.map +2 -2
  187. package/dist/server.d.ts +4 -3
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +7 -6
  190. package/dist/server.js.map +2 -2
  191. package/dist/workspace-plugin.d.ts +49 -0
  192. package/dist/workspace-plugin.d.ts.map +1 -0
  193. package/dist/workspace-plugin.js +1 -0
  194. package/dist/workspace-plugin.js.map +7 -0
  195. package/package.json +26 -9
  196. package/dist/events/definitions.d.ts.map +0 -1
  197. package/dist/events/definitions.js.map +0 -7
  198. package/dist/plugins.d.ts.map +0 -1
  199. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-environments.d.ts +0 -33
  200. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-environments.d.ts.map +0 -1
  201. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-environments.js +0 -23
  202. package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-environments.js.map +0 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # @scalar/workspace-store
2
2
 
3
+ ## 0.18.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#7226](https://github.com/scalar/scalar/pull/7226) [`bffef40`](https://github.com/scalar/scalar/commit/bffef4092e40d12052f8538267af71bc99b7172f) Thanks [@amritk](https://github.com/amritk)! - feat: added overview page for client v2
8
+
9
+ ## 0.18.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#7185](https://github.com/scalar/scalar/pull/7185) [`6ca835e`](https://github.com/scalar/scalar/commit/6ca835e5afd3e8c603e073e7c83f2cdd961a0f69) Thanks [@DemonHa](https://github.com/DemonHa)! - feat: add support for watch mode
14
+
15
+ - [#7129](https://github.com/scalar/scalar/pull/7129) [`6ec8c29`](https://github.com/scalar/scalar/commit/6ec8c299d912111b029e8058979d00968b70691a) Thanks [@geoffgscott](https://github.com/geoffgscott)! - feat: prefix generated navigation ids with the document name
16
+
17
+ - [#7136](https://github.com/scalar/scalar/pull/7136) [`75ad74c`](https://github.com/scalar/scalar/commit/75ad74c0eee10103b966ce4707e4823d819456a8) Thanks [@DemonHa](https://github.com/DemonHa)! - feat(workspace-store): persistence layer for client store
18
+
19
+ ### Patch Changes
20
+
21
+ - [#7077](https://github.com/scalar/scalar/pull/7077) [`913607c`](https://github.com/scalar/scalar/commit/913607c7d67236f08f5369408f304440c6c42b22) Thanks [@hanspagel](https://github.com/hanspagel)! - fix: uses scalar proxy as the default
22
+
23
+ - [#7216](https://github.com/scalar/scalar/pull/7216) [`17817ad`](https://github.com/scalar/scalar/commit/17817addbca916c8d625a03335ae58be3a1c4e4b) Thanks [@marcalexiei](https://github.com/marcalexiei)! - fix(workspace-store): remove `async` from synchronous functions
24
+
25
+ - [#7159](https://github.com/scalar/scalar/pull/7159) [`c22fc4e`](https://github.com/scalar/scalar/commit/c22fc4e5acb49d648014a6100c724a5b33c59cde) Thanks [@amritk](https://github.com/amritk)! - feat: added new layouts for client v2
26
+
27
+ - [#7129](https://github.com/scalar/scalar/pull/7129) [`6ec8c29`](https://github.com/scalar/scalar/commit/6ec8c299d912111b029e8058979d00968b70691a) Thanks [@geoffgscott](https://github.com/geoffgscott)! - Simplify ApiReferences state management and migrate to new shared sidebar component. Eliminates the useSidebar and useNav hooks in favour of event bubbling and centralized state management in ApiReference.vue
28
+
29
+ - [#7186](https://github.com/scalar/scalar/pull/7186) [`c162bb6`](https://github.com/scalar/scalar/commit/c162bb64b86e698427c1fce36f6d8a2b789e094a) Thanks [@amritk](https://github.com/amritk)! - feat: hooking up event bus to the store
30
+
31
+ - [#7181](https://github.com/scalar/scalar/pull/7181) [`b64265b`](https://github.com/scalar/scalar/commit/b64265b3e8b447a4d1c6dafaca8135ef69545d98) Thanks [@amritk](https://github.com/amritk)! - chore: type updates to workspace bus
32
+
33
+ - [#7135](https://github.com/scalar/scalar/pull/7135) [`6aa06b0`](https://github.com/scalar/scalar/commit/6aa06b0f843ae3d8e6771e3c02ac11ee0043a4b1) Thanks [@marcalexiei](https://github.com/marcalexiei)! - fix: re-add request method and path to `scalar-open-client` event
34
+
35
+ - [#7143](https://github.com/scalar/scalar/pull/7143) [`81b0a7a`](https://github.com/scalar/scalar/commit/81b0a7a4245619f03161eae639dc5834b77432b6) Thanks [@amritk](https://github.com/amritk)! - fix: remove ignored parameters
36
+
37
+ - [#7227](https://github.com/scalar/scalar/pull/7227) [`704fa30`](https://github.com/scalar/scalar/commit/704fa302b2cdbb17b19ca2d742537ca163d58c1c) Thanks [@hwkr](https://github.com/hwkr)! - feat(sidebar): cleanup structure and improve text wrapping
38
+
39
+ - [#7184](https://github.com/scalar/scalar/pull/7184) [`33edbf2`](https://github.com/scalar/scalar/commit/33edbf2a2648eb72ae49e36dfd289d4d57dc18e0) Thanks [@geoffgscott](https://github.com/geoffgscott)! - move to event bus for internal events
40
+
41
+ - [#7167](https://github.com/scalar/scalar/pull/7167) [`4fe1643`](https://github.com/scalar/scalar/commit/4fe1643be51f76a8ebdfd75f5675337b8d43418e) Thanks [@amritk](https://github.com/amritk)! - feat: add new event bus to workspace store
42
+
43
+ - [#7094](https://github.com/scalar/scalar/pull/7094) [`eba18d0`](https://github.com/scalar/scalar/commit/eba18d06267a163a8f91396a66f817100ee59461) Thanks [@geoffgscott](https://github.com/geoffgscott)! - Migrate to workspace store as primary source of truth.
44
+
45
+ - [#7213](https://github.com/scalar/scalar/pull/7213) [`43bc5e8`](https://github.com/scalar/scalar/commit/43bc5e8b90dc0edf7176d0ddfc64bf3212494458) Thanks [@DemonHa](https://github.com/DemonHa)! - fix: proxy performance issue because of multiple proxies
46
+
47
+ - Updated dependencies [[`eb022f2`](https://github.com/scalar/scalar/commit/eb022f2c8f93c84a04c0093fefe8a1e05d6ec80d), [`11a6e64`](https://github.com/scalar/scalar/commit/11a6e6405d4f30f001a16d6afda4d2b759c0ed09), [`6ec8c29`](https://github.com/scalar/scalar/commit/6ec8c299d912111b029e8058979d00968b70691a), [`134ff5f`](https://github.com/scalar/scalar/commit/134ff5f32aa6842696bf146c7e0817b1662905eb), [`6ca835e`](https://github.com/scalar/scalar/commit/6ca835e5afd3e8c603e073e7c83f2cdd961a0f69), [`da7ab2f`](https://github.com/scalar/scalar/commit/da7ab2fb2e422b9cec2de5faba58ea83dd774808), [`eba18d0`](https://github.com/scalar/scalar/commit/eba18d06267a163a8f91396a66f817100ee59461), [`43bc5e8`](https://github.com/scalar/scalar/commit/43bc5e8b90dc0edf7176d0ddfc64bf3212494458)]:
48
+ - @scalar/types@0.4.0
49
+ - @scalar/openapi-upgrader@0.1.4
50
+ - @scalar/helpers@0.0.13
51
+ - @scalar/json-magic@0.7.0
52
+ - @scalar/snippetz@0.5.2
53
+ - @scalar/themes@0.13.23
54
+ - @scalar/code-highlight@0.2.0
55
+
3
56
  ## 0.17.1
4
57
 
5
58
  ### Patch Changes
package/dist/client.d.ts CHANGED
@@ -1,9 +1,11 @@
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
4
  import { type OpenApiDocument } from './schemas/v3.1/strict/openapi-document.js';
4
5
  import type { Workspace, WorkspaceDocumentMeta, WorkspaceMeta } from './schemas/workspace.js';
5
6
  import type { WorkspaceSpecification } from './schemas/workspace-specification/index.js';
6
7
  import type { Config, DocumentConfiguration } from './schemas/workspace-specification/config.js';
8
+ import type { WorkspacePlugin } from './workspace-plugin.js';
7
9
  declare const defaultConfig: RequiredDeep<Config>;
8
10
  /**
9
11
  * Input type for workspace document metadata and configuration.
@@ -51,6 +53,8 @@ type WorkspaceProps = {
51
53
  config?: PartialDeep<Config>;
52
54
  /** Fetch function for retrieving documents */
53
55
  fetch?: WorkspaceDocumentInput['fetch'];
56
+ /** A list of all registered plugins for the current workspace */
57
+ plugins?: WorkspacePlugin[];
54
58
  };
55
59
  /**
56
60
  * Type definition for the workspace store return object.
@@ -164,7 +168,7 @@ export type WorkspaceStore = {
164
168
  * // Export a document as YAML
165
169
  * const yamlString = store.exportDocument('api', 'yaml')
166
170
  */
167
- exportDocument(documentName: string, format: 'json' | 'yaml'): string | undefined;
171
+ exportDocument(documentName: string, format: 'json' | 'yaml', minify?: boolean): string | undefined;
168
172
  /**
169
173
  * Exports the currently active document in the requested format.
170
174
  *
@@ -183,7 +187,7 @@ export type WorkspaceStore = {
183
187
  * // Export the active document as YAML
184
188
  * const yamlString = store.exportActiveDocument('yaml')
185
189
  */
186
- exportActiveDocument(format: 'json' | 'yaml'): string | undefined;
190
+ exportActiveDocument(format: 'json' | 'yaml', minify?: boolean): string | undefined;
187
191
  /**
188
192
  * Saves the current state of the specified document to the intermediate documents map.
189
193
  *
@@ -234,16 +238,17 @@ export type WorkspaceStore = {
234
238
  */
235
239
  commitDocument(documentName: string): void;
236
240
  /**
237
- * Serializes the current workspace state to a JSON string for backup, persistence, or sharing.
241
+ * Exports the complete current workspace state as a plain JavaScript object.
238
242
  *
239
- * This method exports all workspace documents (removing Vue reactivity proxies), workspace metadata,
240
- * document configurations, and both the original and intermediate document states. The resulting JSON
241
- * can be imported later to fully restore the workspace to this exact state, including all documents
242
- * and their configurations.
243
+ * The returned object includes all workspace documents (with Vue reactivity removed), workspace metadata,
244
+ * document configurations, and both the original and intermediate document maps. This object can be
245
+ * serialized (e.g., with JSON.stringify) and later imported to fully restore the workspaceincluding
246
+ * all documents, their configurations, metadata, and historical states.
243
247
  *
244
- * @returns A JSON string representing the complete workspace state.
248
+ * @returns An `InMemoryWorkspace` object representing the entire workspace state,
249
+ * suitable for persistence, backup, or sharing.
245
250
  */
246
- exportWorkspace(): string;
251
+ exportWorkspace(): InMemoryWorkspace;
247
252
  /**
248
253
  * Imports a workspace from a serialized JSON string.
249
254
  *
@@ -253,7 +258,7 @@ export type WorkspaceStore = {
253
258
  *
254
259
  * @param input - The serialized workspace JSON string to import.
255
260
  */
256
- loadWorkspace(input: string): void;
261
+ loadWorkspace(input: InMemoryWorkspace): void;
257
262
  /**
258
263
  * Imports a workspace from a WorkspaceSpecification object.
259
264
  *
@@ -288,19 +293,26 @@ export type WorkspaceStore = {
288
293
  * If automatic resolution isn't possible due to conflicts, returns a conflict list for the caller to resolve.
289
294
  * If `resolvedConflicts` are provided (e.g., after user intervention), applies them to complete the rebase.
290
295
  *
291
- * @param input - An object specifying which document to rebase, the new origin document, fetch/config info, and overrides.
292
- * @param resolvedConflicts - (Optional) Conflict resolutions to apply if rebase hits merge conflicts.
293
- * @returns If there are unresolved conflicts and no resolution is provided, resolves to the list of conflicts; otherwise resolves to void.
296
+ * @param input Object specifying which document to rebase
297
+ * @returns If there are unresolved conflicts, resolves to an object containing the list of conflicts and a method to apply user-resolved conflicts; otherwise resolves to void.
294
298
  *
295
299
  * @example
296
- * // Example: Rebase a document and handle merge conflicts
297
- * const conflicts = await store.rebaseDocument({ name: 'api', document: newOriginDoc, fetch: customFetch })
298
- * if (conflicts && conflicts.length > 0) {
299
- * // User resolves conflicts here...
300
- * await store.rebaseDocument({ name: 'api', document: newOriginDoc, fetch: customFetch }, userResolvedConflicts)
300
+ * // Rebase a document and handle conflicts interactively
301
+ * const result = await store.rebaseDocument({ name: 'api', fetch: customFetch });
302
+ * if (result && result.ok) {
303
+ * // Present conflicts to the user and collect resolutions...
304
+ * await result.applyChanges(userResolvedConflicts);
301
305
  * }
302
306
  */
303
- rebaseDocument: (input: WorkspaceDocumentInput, resolvedConflicts?: Difference<unknown>[]) => Promise<void | ReturnType<typeof merge>['conflicts']>;
307
+ rebaseDocument: (input: WorkspaceDocumentInput) => Promise<{
308
+ ok: false;
309
+ type: 'CORRUPTED_STATE' | 'FETCH_FAILED' | 'NO_CHANGES_DETECTED';
310
+ message: string;
311
+ } | {
312
+ ok: true;
313
+ conflicts: ReturnType<typeof merge>['conflicts'];
314
+ applyChanges: (resolvedConflicts: Difference<unknown>[]) => Promise<void>;
315
+ }>;
304
316
  };
305
317
  /**
306
318
  * Creates a reactive workspace store that manages documents and their metadata.
@@ -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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"}