@scalar/workspace-store 0.19.0 → 0.21.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.
- package/CHANGELOG.md +44 -0
- package/README.md +2 -2
- package/dist/client.d.ts +40 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +58 -23
- package/dist/client.js.map +2 -2
- package/dist/events/bus.d.ts +13 -1
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/bus.js +46 -10
- package/dist/events/bus.js.map +3 -3
- package/dist/events/definitions/auth.d.ts +20 -2
- package/dist/events/definitions/auth.d.ts.map +1 -1
- package/dist/events/definitions/cookie.d.ts +20 -0
- package/dist/events/definitions/cookie.d.ts.map +1 -0
- package/dist/events/definitions/cookie.js +1 -0
- package/dist/events/definitions/cookie.js.map +7 -0
- package/dist/events/definitions/document.d.ts +11 -1
- package/dist/events/definitions/document.d.ts.map +1 -1
- package/dist/events/definitions/index.d.ts +4 -2
- package/dist/events/definitions/index.d.ts.map +1 -1
- package/dist/events/definitions/operation.d.ts +0 -13
- package/dist/events/definitions/operation.d.ts.map +1 -1
- package/dist/events/definitions/server.d.ts +20 -28
- package/dist/events/definitions/server.d.ts.map +1 -1
- package/dist/events/definitions/tabs.d.ts +40 -0
- package/dist/events/definitions/tabs.d.ts.map +1 -0
- package/dist/events/definitions/tabs.js +1 -0
- package/dist/events/definitions/tabs.js.map +7 -0
- package/dist/events/definitions/ui.d.ts +39 -4
- package/dist/events/definitions/ui.d.ts.map +1 -1
- package/dist/events/definitions/workspace.d.ts +18 -0
- package/dist/events/definitions/workspace.d.ts.map +1 -0
- package/dist/events/definitions/workspace.js +1 -0
- package/dist/events/definitions/workspace.js.map +7 -0
- package/dist/events/index.d.ts +2 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js.map +2 -2
- package/dist/helpers/generate-unique-value.d.ts +19 -6
- package/dist/helpers/generate-unique-value.d.ts.map +1 -1
- package/dist/helpers/generate-unique-value.js +12 -7
- package/dist/helpers/generate-unique-value.js.map +2 -2
- package/dist/helpers/unpack-proxy.d.ts +14 -1
- package/dist/helpers/unpack-proxy.d.ts.map +1 -1
- package/dist/helpers/unpack-proxy.js +51 -1
- package/dist/helpers/unpack-proxy.js.map +3 -3
- package/dist/mutators/auth.d.ts +10 -73
- package/dist/mutators/auth.d.ts.map +1 -1
- package/dist/mutators/auth.js +47 -111
- package/dist/mutators/auth.js.map +2 -2
- package/dist/mutators/cookie.d.ts +21 -13
- package/dist/mutators/cookie.d.ts.map +1 -1
- package/dist/mutators/cookie.js +34 -26
- package/dist/mutators/cookie.js.map +3 -3
- package/dist/mutators/document.d.ts +13 -0
- package/dist/mutators/document.d.ts.map +1 -0
- package/dist/mutators/document.js +25 -0
- package/dist/mutators/document.js.map +7 -0
- package/dist/mutators/index.d.ts +13 -20
- package/dist/mutators/index.d.ts.map +1 -1
- package/dist/mutators/index.js +49 -8
- package/dist/mutators/index.js.map +3 -3
- package/dist/mutators/operation.d.ts +23 -101
- package/dist/mutators/operation.d.ts.map +1 -1
- package/dist/mutators/operation.js +132 -96
- package/dist/mutators/operation.js.map +2 -2
- package/dist/mutators/server.d.ts +43 -8
- package/dist/mutators/server.d.ts.map +1 -1
- package/dist/mutators/server.js +113 -20
- package/dist/mutators/server.js.map +2 -2
- package/dist/mutators/workspace.d.ts +6 -0
- package/dist/mutators/workspace.d.ts.map +1 -0
- package/dist/mutators/workspace.js +24 -0
- package/dist/mutators/workspace.js.map +7 -0
- package/dist/navigation/get-navigation-options.d.ts.map +1 -1
- package/dist/navigation/get-navigation-options.js +4 -4
- package/dist/navigation/get-navigation-options.js.map +2 -2
- package/dist/navigation/helpers/traverse-document.d.ts +2 -0
- package/dist/navigation/helpers/traverse-document.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-document.js +18 -3
- package/dist/navigation/helpers/traverse-document.js.map +2 -2
- package/dist/navigation/helpers/traverse-examples.js +2 -2
- package/dist/navigation/helpers/traverse-examples.js.map +2 -2
- package/dist/navigation/helpers/traverse-paths.d.ts +6 -3
- package/dist/navigation/helpers/traverse-paths.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-paths.js +4 -9
- package/dist/navigation/helpers/traverse-paths.js.map +2 -2
- package/dist/navigation/helpers/traverse-tags.d.ts +0 -1
- package/dist/navigation/helpers/traverse-tags.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-tags.js +57 -49
- package/dist/navigation/helpers/traverse-tags.js.map +3 -3
- package/dist/persistence/index.d.ts +6 -0
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +18 -0
- package/dist/persistence/index.js.map +2 -2
- package/dist/persistence/indexdb.d.ts +1 -0
- package/dist/persistence/indexdb.d.ts.map +1 -1
- package/dist/persistence/indexdb.js +6 -1
- package/dist/persistence/indexdb.js.map +2 -2
- package/dist/plugins/client/persistence.d.ts +2 -1
- package/dist/plugins/client/persistence.d.ts.map +1 -1
- package/dist/plugins/client/persistence.js +17 -9
- package/dist/plugins/client/persistence.js.map +2 -2
- package/dist/schemas/extensions/document/x-scalar-environments.d.ts +1 -0
- package/dist/schemas/extensions/document/x-scalar-environments.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-environments.js.map +2 -2
- package/dist/schemas/extensions/document/x-scalar-set-operation-security.d.ts +13 -0
- package/dist/schemas/extensions/document/x-scalar-set-operation-security.d.ts.map +1 -0
- package/dist/schemas/extensions/document/x-scalar-set-operation-security.js +8 -0
- package/dist/schemas/extensions/document/x-scalar-set-operation-security.js.map +7 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.d.ts +36 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.d.ts.map +1 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.js +15 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.js.map +7 -0
- package/dist/schemas/extensions/general/x-scalar-order.d.ts +12 -0
- package/dist/schemas/extensions/general/x-scalar-order.d.ts.map +1 -0
- package/dist/schemas/extensions/general/x-scalar-order.js +8 -0
- package/dist/schemas/extensions/general/x-scalar-order.js.map +7 -0
- package/dist/schemas/extensions/security/x-scalar-selected-security.d.ts +7 -7
- package/dist/schemas/extensions/security/x-scalar-selected-security.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-scalar-selected-security.js +2 -2
- package/dist/schemas/extensions/security/x-scalar-selected-security.js.map +2 -2
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts +8 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts.map +1 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.js +8 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.js.map +7 -0
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts +10 -5
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts.map +1 -1
- package/dist/schemas/extensions/tag/x-tag-groups.js +15 -10
- package/dist/schemas/extensions/tag/x-tag-groups.js.map +2 -2
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts +18 -0
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts.map +1 -0
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js +8 -0
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js.map +7 -0
- package/dist/schemas/extensions.d.ts +1 -1
- package/dist/schemas/extensions.js +1 -1
- package/dist/schemas/extensions.js.map +2 -2
- package/dist/schemas/inmemory-workspace.d.ts +59 -33
- package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
- package/dist/schemas/navigation.d.ts +9 -1
- package/dist/schemas/navigation.d.ts.map +1 -1
- package/dist/schemas/navigation.js +3 -1
- package/dist/schemas/navigation.js.map +2 -2
- package/dist/schemas/reference-config/index.d.ts +29 -16
- package/dist/schemas/reference-config/index.d.ts.map +1 -1
- package/dist/schemas/reference-config/settings.d.ts +29 -16
- package/dist/schemas/reference-config/settings.d.ts.map +1 -1
- package/dist/schemas/reference-config/settings.js +2 -0
- package/dist/schemas/reference-config/settings.js.map +2 -2
- package/dist/schemas/v3.1/strict/openapi-document.d.ts +992 -549
- package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/openapi-document.js +14 -6
- package/dist/schemas/v3.1/strict/openapi-document.js.map +2 -2
- package/dist/schemas/v3.1/strict/operation.d.ts +3 -7
- package/dist/schemas/v3.1/strict/operation.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/operation.js +1 -5
- package/dist/schemas/v3.1/strict/operation.js.map +2 -2
- package/dist/schemas/v3.1/strict/tag.d.ts +4 -1
- package/dist/schemas/v3.1/strict/tag.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/tag.js +3 -1
- package/dist/schemas/v3.1/strict/tag.js.map +2 -2
- package/dist/schemas/v3.1/strict/type-guards.d.ts +6 -0
- package/dist/schemas/v3.1/strict/type-guards.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/type-guards.js +4 -0
- package/dist/schemas/v3.1/strict/type-guards.js.map +2 -2
- package/dist/schemas/workspace-specification/config.d.ts +29 -16
- package/dist/schemas/workspace-specification/config.d.ts.map +1 -1
- package/dist/schemas/workspace-specification/index.d.ts +30 -17
- package/dist/schemas/workspace-specification/index.d.ts.map +1 -1
- package/dist/schemas/workspace.d.ts +233 -130
- package/dist/schemas/workspace.d.ts.map +1 -1
- package/dist/schemas/workspace.js +8 -6
- package/dist/schemas/workspace.js.map +2 -2
- package/dist/server.d.ts +1 -1
- package/dist/workspace-plugin.d.ts +3 -0
- package/dist/workspace-plugin.d.ts.map +1 -1
- package/package.json +8 -7
- package/dist/helpers/debounce.d.ts +0 -28
- package/dist/helpers/debounce.d.ts.map +0 -1
- package/dist/helpers/debounce.js +0 -31
- package/dist/helpers/debounce.js.map +0 -7
- package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.d.ts +0 -13
- package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.d.ts.map +0 -1
- package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.js +0 -9
- package/dist/schemas/extensions/operation/x-scalar-operation-identifiers.js.map +0 -7
- package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.d.ts +0 -32
- package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.d.ts.map +0 -1
- package/dist/schemas/v3.1/strict/client-config-extensions/x-scalar-client-config-cookies.js +0 -13
- 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,49 @@
|
|
|
1
1
|
# @scalar/workspace-store
|
|
2
2
|
|
|
3
|
+
## 0.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#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
|
|
8
|
+
|
|
9
|
+
- [#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
|
|
10
|
+
|
|
11
|
+
- [#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
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#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
|
|
16
|
+
|
|
17
|
+
- [#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
|
|
18
|
+
|
|
19
|
+
- [#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
|
|
20
|
+
|
|
21
|
+
- [#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
|
|
22
|
+
|
|
23
|
+
- 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)]:
|
|
24
|
+
- @scalar/json-magic@0.8.2
|
|
25
|
+
- @scalar/helpers@0.1.2
|
|
26
|
+
- @scalar/types@0.5.0
|
|
27
|
+
- @scalar/object-utils@1.2.12
|
|
28
|
+
- @scalar/themes@0.13.24
|
|
29
|
+
- @scalar/openapi-upgrader@0.1.4
|
|
30
|
+
- @scalar/snippetz@0.5.3
|
|
31
|
+
- @scalar/code-highlight@0.2.0
|
|
32
|
+
|
|
33
|
+
## 0.20.0
|
|
34
|
+
|
|
35
|
+
### Minor Changes
|
|
36
|
+
|
|
37
|
+
- [#7279](https://github.com/scalar/scalar/pull/7279) [`7ccd035`](https://github.com/scalar/scalar/commit/7ccd0351de104f78ef9c6e16538753d302c50d47) Thanks [@DemonHa](https://github.com/DemonHa)! - feat(api-client): integrate new sidebar with v2 routing
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- [#7305](https://github.com/scalar/scalar/pull/7305) [`c7a4690`](https://github.com/scalar/scalar/commit/c7a4690cec484ee16cee8dcba7ef5cb0fbb98133) Thanks [@amritk](https://github.com/amritk)! - chore: minor auth changes, code re-org, type safety
|
|
42
|
+
|
|
43
|
+
- Updated dependencies [[`9c9dbba`](https://github.com/scalar/scalar/commit/9c9dbbaa940667303f0ace59469fd78c2a741937), [`4bec1ba`](https://github.com/scalar/scalar/commit/4bec1ba332e919c4ee32dcfbfb07bd8ee42c4d74)]:
|
|
44
|
+
- @scalar/helpers@0.1.1
|
|
45
|
+
- @scalar/json-magic@0.8.1
|
|
46
|
+
|
|
3
47
|
## 0.19.0
|
|
4
48
|
|
|
5
49
|
### 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-
|
|
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-
|
|
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 {
|
|
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)
|
|
@@ -137,6 +137,35 @@ export type WorkspaceStore = {
|
|
|
137
137
|
* })
|
|
138
138
|
*/
|
|
139
139
|
addDocument(input: WorkspaceDocumentInput): Promise<void>;
|
|
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
|
*
|
|
@@ -208,6 +237,13 @@ export type WorkspaceStore = {
|
|
|
208
237
|
* const excludedDiffs = store.saveDocument('api')
|
|
209
238
|
*/
|
|
210
239
|
saveDocument(documentName: string): Promise<unknown[] | undefined>;
|
|
240
|
+
/**
|
|
241
|
+
* Builds the sidebar for the specified document.
|
|
242
|
+
*
|
|
243
|
+
* @param documentName - The name of the document to build the sidebar for
|
|
244
|
+
* @returns boolean indicating if the sidebar was built successfully
|
|
245
|
+
*/
|
|
246
|
+
buildSidebar: (documentName: string) => boolean;
|
|
211
247
|
/**
|
|
212
248
|
* Restores the specified document to its last locally saved state.
|
|
213
249
|
*
|
|
@@ -277,7 +313,7 @@ export type WorkspaceStore = {
|
|
|
277
313
|
* },
|
|
278
314
|
* info: { title: 'My Workspace' },
|
|
279
315
|
* workspace: 'v1',
|
|
280
|
-
* "x-scalar-
|
|
316
|
+
* "x-scalar-color-mode": true
|
|
281
317
|
* })
|
|
282
318
|
* ```
|
|
283
319
|
*
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
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,8 @@
|
|
|
1
|
+
import { generateHash } from "@scalar/helpers/string/generate-hash";
|
|
1
2
|
import { measureAsync, measureSync } from "@scalar/helpers/testing/measure";
|
|
2
3
|
import { bundle } from "@scalar/json-magic/bundle";
|
|
3
4
|
import { fetchUrls } from "@scalar/json-magic/bundle/plugins/browser";
|
|
4
5
|
import { apply, diff, merge } from "@scalar/json-magic/diff";
|
|
5
|
-
import { generateHash } from "@scalar/json-magic/helpers/generate-hash";
|
|
6
6
|
import { createMagicProxy, getRaw } from "@scalar/json-magic/magic-proxy";
|
|
7
7
|
import { upgrade } from "@scalar/openapi-upgrader";
|
|
8
8
|
import { Value } from "@scalar/typebox/value";
|
|
@@ -20,7 +20,6 @@ import { createNavigation } from "./navigation/index.js";
|
|
|
20
20
|
import { externalValueResolver, loadingStatus, refsEverywhere, restoreOriginalRefs } from "./plugins/bundler/index.js";
|
|
21
21
|
import { getServersFromDocument } from "./preprocessing/server.js";
|
|
22
22
|
import { extensions } from "./schemas/extensions.js";
|
|
23
|
-
import { InMemoryWorkspaceSchema } from "./schemas/inmemory-workspace.js";
|
|
24
23
|
import { defaultReferenceConfig } from "./schemas/reference-config/index.js";
|
|
25
24
|
import { coerceValue } from "./schemas/typebox-coerce.js";
|
|
26
25
|
import {
|
|
@@ -110,7 +109,7 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
110
109
|
const { activeDocument: _a, documents: _d, ...meta } = workspace;
|
|
111
110
|
const event = {
|
|
112
111
|
type: "meta",
|
|
113
|
-
value: unpackProxyObject(meta)
|
|
112
|
+
value: unpackProxyObject(meta, { depth: 1 })
|
|
114
113
|
};
|
|
115
114
|
fireWorkspaceChange(event);
|
|
116
115
|
return;
|
|
@@ -356,10 +355,20 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
356
355
|
...input,
|
|
357
356
|
document: resolve.data,
|
|
358
357
|
documentSource: getDocumentSource(input),
|
|
359
|
-
documentHash:
|
|
358
|
+
documentHash: generateHash(resolve.raw)
|
|
360
359
|
});
|
|
361
360
|
});
|
|
362
361
|
}
|
|
362
|
+
const buildSidebar = (documentName) => {
|
|
363
|
+
const document = workspace.documents[documentName];
|
|
364
|
+
if (!document) {
|
|
365
|
+
console.error(`Document '${documentName}' does not exist in the workspace.`);
|
|
366
|
+
return false;
|
|
367
|
+
}
|
|
368
|
+
const navigation = createNavigation(documentName, document, getDocumentConfiguration(documentName));
|
|
369
|
+
document[extensions.document.navigation] = navigation;
|
|
370
|
+
return true;
|
|
371
|
+
};
|
|
363
372
|
const getDocumentConfiguration = (name) => {
|
|
364
373
|
return mergeObjects(
|
|
365
374
|
mergeObjects(deepClone(defaultConfig), workspaceProps?.config ?? {}),
|
|
@@ -420,11 +429,38 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
420
429
|
});
|
|
421
430
|
},
|
|
422
431
|
addDocument,
|
|
432
|
+
/**
|
|
433
|
+
* Deletes a document from the workspace and all associated data.
|
|
434
|
+
*
|
|
435
|
+
* This function removes the document and all related data structures.
|
|
436
|
+
* If the deleted document was active, it automatically selects the first remaining document.
|
|
437
|
+
*/
|
|
438
|
+
deleteDocument: (documentName) => {
|
|
439
|
+
if (!workspace.documents[documentName]) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
delete workspace.documents[documentName];
|
|
443
|
+
delete originalDocuments[documentName];
|
|
444
|
+
delete intermediateDocuments[documentName];
|
|
445
|
+
delete documentConfigs[documentName];
|
|
446
|
+
delete overrides[documentName];
|
|
447
|
+
delete extraDocumentConfigurations[documentName];
|
|
448
|
+
const remainingDocuments = Object.keys(workspace.documents);
|
|
449
|
+
const wasActiveDocument = workspace["x-scalar-active-document"] === documentName;
|
|
450
|
+
if (wasActiveDocument) {
|
|
451
|
+
workspace["x-scalar-active-document"] = remainingDocuments[0] ?? void 0;
|
|
452
|
+
}
|
|
453
|
+
fireWorkspaceChange({
|
|
454
|
+
type: "deleteDocument",
|
|
455
|
+
documentName
|
|
456
|
+
});
|
|
457
|
+
},
|
|
423
458
|
get config() {
|
|
424
459
|
return getDocumentConfiguration(getActiveDocumentName());
|
|
425
460
|
},
|
|
426
461
|
exportDocument,
|
|
427
462
|
exportActiveDocument: (format, minify) => exportDocument(getActiveDocumentName(), format, minify),
|
|
463
|
+
buildSidebar,
|
|
428
464
|
saveDocument,
|
|
429
465
|
async revertDocumentChanges(documentName) {
|
|
430
466
|
const workspaceDocument = workspace.documents[documentName];
|
|
@@ -444,42 +480,41 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
444
480
|
console.warn(`Commit operation for document '${documentName}' is not implemented yet.`);
|
|
445
481
|
},
|
|
446
482
|
exportWorkspace() {
|
|
483
|
+
const { activeDocument: _, documents, ...meta } = unpackProxyObject(workspace);
|
|
447
484
|
return {
|
|
448
485
|
documents: {
|
|
449
486
|
...Object.fromEntries(
|
|
450
|
-
Object.entries(
|
|
487
|
+
Object.entries(documents).map(([name, doc]) => [
|
|
451
488
|
name,
|
|
452
|
-
//
|
|
453
|
-
|
|
454
|
-
toRaw(getRaw(unpackOverridesProxy(doc)))
|
|
489
|
+
// Get the raw document without any proxies
|
|
490
|
+
unpackProxyObject(doc)
|
|
455
491
|
])
|
|
456
492
|
)
|
|
457
493
|
},
|
|
458
|
-
meta:
|
|
459
|
-
documentConfigs,
|
|
460
|
-
originalDocuments,
|
|
461
|
-
intermediateDocuments,
|
|
462
|
-
overrides
|
|
494
|
+
meta: unpackProxyObject(meta) ?? {},
|
|
495
|
+
documentConfigs: unpackProxyObject(documentConfigs),
|
|
496
|
+
originalDocuments: unpackProxyObject(originalDocuments),
|
|
497
|
+
intermediateDocuments: unpackProxyObject(intermediateDocuments),
|
|
498
|
+
overrides: unpackProxyObject(overrides)
|
|
463
499
|
};
|
|
464
500
|
},
|
|
465
501
|
loadWorkspace(input) {
|
|
466
|
-
const result = coerceValue(InMemoryWorkspaceSchema, input);
|
|
467
502
|
safeAssign(
|
|
468
503
|
workspace.documents,
|
|
469
504
|
Object.fromEntries(
|
|
470
|
-
Object.entries(
|
|
505
|
+
Object.entries(input.documents).map(([name, doc]) => [
|
|
471
506
|
name,
|
|
472
507
|
createOverridesProxy(createMagicProxy(doc), {
|
|
473
|
-
overrides:
|
|
508
|
+
overrides: input.overrides[name]
|
|
474
509
|
})
|
|
475
510
|
])
|
|
476
511
|
)
|
|
477
512
|
);
|
|
478
|
-
safeAssign(originalDocuments,
|
|
479
|
-
safeAssign(intermediateDocuments,
|
|
480
|
-
safeAssign(documentConfigs,
|
|
481
|
-
safeAssign(overrides,
|
|
482
|
-
safeAssign(workspace,
|
|
513
|
+
safeAssign(originalDocuments, input.originalDocuments);
|
|
514
|
+
safeAssign(intermediateDocuments, input.intermediateDocuments);
|
|
515
|
+
safeAssign(documentConfigs, input.documentConfigs);
|
|
516
|
+
safeAssign(overrides, input.overrides);
|
|
517
|
+
safeAssign(workspace, input.meta);
|
|
483
518
|
},
|
|
484
519
|
importWorkspaceFromSpecification: (specification) => {
|
|
485
520
|
const { documents, overrides: overrides2, info: _info, workspace: _workspaceVersion, ...meta } = specification;
|
|
@@ -513,7 +548,7 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
513
548
|
message: `Failed to fetch document '${name}': request was not successful or returned invalid data`
|
|
514
549
|
};
|
|
515
550
|
}
|
|
516
|
-
const newHash =
|
|
551
|
+
const newHash = generateHash(resolve.raw);
|
|
517
552
|
if (activeDocument["x-scalar-original-document-hash"] === newHash) {
|
|
518
553
|
return {
|
|
519
554
|
ok: false,
|
|
@@ -561,7 +596,7 @@ const createWorkspaceStore = (workspaceProps) => {
|
|
|
561
596
|
},
|
|
562
597
|
documentSource: getDocumentSource(input),
|
|
563
598
|
// Update the original document hash
|
|
564
|
-
documentHash:
|
|
599
|
+
documentHash: generateHash(resolve.raw),
|
|
565
600
|
initialize: false
|
|
566
601
|
});
|
|
567
602
|
}
|