@scalar/workspace-store 0.47.0 → 0.48.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 +13 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +23 -4
- package/dist/entities/auth/schema.d.ts +20 -0
- package/dist/entities/auth/schema.d.ts.map +1 -1
- package/dist/events/bus.d.ts +14 -0
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/bus.js +8 -0
- package/dist/events/definitions/ui.d.ts +2 -2
- package/dist/events/definitions/ui.d.ts.map +1 -1
- package/dist/persistence/index.d.ts +23 -21
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +37 -35
- package/dist/persistence/indexdb.d.ts +69 -49
- package/dist/persistence/indexdb.d.ts.map +1 -1
- package/dist/persistence/indexdb.js +100 -123
- package/dist/persistence/migrations/v1-initial.d.ts +19 -0
- package/dist/persistence/migrations/v1-initial.d.ts.map +1 -0
- package/dist/persistence/migrations/v1-initial.js +50 -0
- package/dist/persistence/migrations/v2-team-to-local.d.ts +33 -0
- package/dist/persistence/migrations/v2-team-to-local.d.ts.map +1 -0
- package/dist/persistence/migrations/v2-team-to-local.js +213 -0
- package/dist/schemas/extensions/document/x-scalar-registry-meta.d.ts +48 -0
- package/dist/schemas/extensions/document/x-scalar-registry-meta.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-registry-meta.js +33 -1
- package/dist/schemas/inmemory-workspace.d.ts +12 -0
- package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
- package/dist/schemas/reference-config/index.d.ts +4 -0
- package/dist/schemas/reference-config/index.d.ts.map +1 -1
- package/dist/schemas/reference-config/settings.d.ts +4 -0
- package/dist/schemas/reference-config/settings.d.ts.map +1 -1
- package/dist/schemas/v3.1/openapi/index.d.ts +4 -0
- package/dist/schemas/v3.1/openapi/index.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/openapi-document.d.ts +144 -0
- package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
- package/dist/schemas/workspace.d.ts +12 -0
- package/dist/schemas/workspace.d.ts.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @scalar/workspace-store
|
|
2
2
|
|
|
3
|
+
## 0.48.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#9000](https://github.com/scalar/scalar/pull/9000): feat: extra metadata for registry documents
|
|
8
|
+
- [#8986](https://github.com/scalar/scalar/pull/8986): chore: migrate api-client from namespaces to teamSlug and convert team workspaces
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- [#9028](https://github.com/scalar/scalar/pull/9028): feat: added once back to the event bus
|
|
13
|
+
|
|
14
|
+
## 0.47.1
|
|
15
|
+
|
|
3
16
|
## 0.47.0
|
|
4
17
|
|
|
5
18
|
### Minor Changes
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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
|
@@ -88,6 +88,19 @@ const getDocumentSource = (input) => {
|
|
|
88
88
|
return undefined;
|
|
89
89
|
};
|
|
90
90
|
const openapiSchema = generateSchema(recursiveRef);
|
|
91
|
+
/**
|
|
92
|
+
* Top-level document keys that the dirty-tracker treats as metadata-only.
|
|
93
|
+
* Mutations under these keys are programmatic bookkeeping (commit hashes,
|
|
94
|
+
* cached conflict state, etc.) and never represent a user edit, so they
|
|
95
|
+
* must not flip `x-scalar-is-dirty` to `true`.
|
|
96
|
+
*/
|
|
97
|
+
const METADATA_ONLY_DOCUMENT_KEYS = new Set([
|
|
98
|
+
// The dirty flag itself - flipping it would re-enter this branch forever.
|
|
99
|
+
'x-scalar-is-dirty',
|
|
100
|
+
// Programmatic bookkeeping for registry-backed documents (commit hash,
|
|
101
|
+
// conflict cache).
|
|
102
|
+
'x-scalar-registry-meta',
|
|
103
|
+
]);
|
|
91
104
|
/**
|
|
92
105
|
* Creates a reactive workspace store that manages documents and their metadata.
|
|
93
106
|
* The store provides functionality for accessing, updating, and resolving document references.
|
|
@@ -170,8 +183,11 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
170
183
|
value: unpackProxyObject(document),
|
|
171
184
|
path: path.slice(2),
|
|
172
185
|
};
|
|
173
|
-
// Don't mark as dirty when the document is first created
|
|
174
|
-
|
|
186
|
+
// Don't mark as dirty when the document is first created or when
|
|
187
|
+
// only metadata-only fields change. `x-scalar-registry-meta` is
|
|
188
|
+
// updated programmatically (commit hash, conflict cache) and
|
|
189
|
+
// does not represent a user edit.
|
|
190
|
+
if (event.path.length > 0 && !METADATA_ONLY_DOCUMENT_KEYS.has(event.path[0])) {
|
|
175
191
|
// The document has been modified since it was last saved
|
|
176
192
|
document['x-scalar-is-dirty'] = true;
|
|
177
193
|
}
|
|
@@ -193,8 +209,11 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
193
209
|
value: unpackProxyObject(document),
|
|
194
210
|
path: path.slice(2),
|
|
195
211
|
};
|
|
196
|
-
// Don't mark as dirty when the document is first created
|
|
197
|
-
|
|
212
|
+
// Don't mark as dirty when the document is first created or when
|
|
213
|
+
// only metadata-only fields change. `x-scalar-registry-meta` is
|
|
214
|
+
// updated programmatically (commit hash, conflict cache) and
|
|
215
|
+
// does not represent a user edit.
|
|
216
|
+
if (event.path.length > 0 && !METADATA_ONLY_DOCUMENT_KEYS.has(event.path[0])) {
|
|
198
217
|
// The document has been modified since it was last saved
|
|
199
218
|
document['x-scalar-is-dirty'] = true;
|
|
200
219
|
}
|
|
@@ -1912,6 +1912,10 @@ declare const SelectedSecuritySchema: import("@scalar/typebox").TObject<{
|
|
|
1912
1912
|
'x-scalar-registry-meta': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
|
|
1913
1913
|
namespace: import("@scalar/typebox").TString;
|
|
1914
1914
|
slug: import("@scalar/typebox").TString;
|
|
1915
|
+
version: import("@scalar/typebox").TString;
|
|
1916
|
+
commitHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
1917
|
+
conflictCheckedAgainstHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
1918
|
+
hasConflict: import("@scalar/typebox").TOptional<import("@scalar/typebox").TBoolean>;
|
|
1915
1919
|
}>>;
|
|
1916
1920
|
}>, import("@scalar/typebox").TObject<{
|
|
1917
1921
|
'x-pre-request': import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
@@ -3538,6 +3542,10 @@ export declare const AuthSchema: import("@scalar/typebox").TObject<{
|
|
|
3538
3542
|
'x-scalar-registry-meta': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
|
|
3539
3543
|
namespace: import("@scalar/typebox").TString;
|
|
3540
3544
|
slug: import("@scalar/typebox").TString;
|
|
3545
|
+
version: import("@scalar/typebox").TString;
|
|
3546
|
+
commitHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
3547
|
+
conflictCheckedAgainstHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
3548
|
+
hasConflict: import("@scalar/typebox").TOptional<import("@scalar/typebox").TBoolean>;
|
|
3541
3549
|
}>>;
|
|
3542
3550
|
}>, import("@scalar/typebox").TObject<{
|
|
3543
3551
|
'x-pre-request': import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
@@ -4981,6 +4989,10 @@ export declare const AuthSchema: import("@scalar/typebox").TObject<{
|
|
|
4981
4989
|
'x-scalar-registry-meta': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
|
|
4982
4990
|
namespace: import("@scalar/typebox").TString;
|
|
4983
4991
|
slug: import("@scalar/typebox").TString;
|
|
4992
|
+
version: import("@scalar/typebox").TString;
|
|
4993
|
+
commitHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
4994
|
+
conflictCheckedAgainstHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
4995
|
+
hasConflict: import("@scalar/typebox").TOptional<import("@scalar/typebox").TBoolean>;
|
|
4984
4996
|
}>>;
|
|
4985
4997
|
}>, import("@scalar/typebox").TObject<{
|
|
4986
4998
|
'x-pre-request': import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
@@ -6609,6 +6621,10 @@ export declare const DocumentAuthSchema: import("@scalar/typebox").TRecord<impor
|
|
|
6609
6621
|
'x-scalar-registry-meta': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
|
|
6610
6622
|
namespace: import("@scalar/typebox").TString;
|
|
6611
6623
|
slug: import("@scalar/typebox").TString;
|
|
6624
|
+
version: import("@scalar/typebox").TString;
|
|
6625
|
+
commitHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
6626
|
+
conflictCheckedAgainstHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
6627
|
+
hasConflict: import("@scalar/typebox").TOptional<import("@scalar/typebox").TBoolean>;
|
|
6612
6628
|
}>>;
|
|
6613
6629
|
}>, import("@scalar/typebox").TObject<{
|
|
6614
6630
|
'x-pre-request': import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
@@ -8052,6 +8068,10 @@ export declare const DocumentAuthSchema: import("@scalar/typebox").TRecord<impor
|
|
|
8052
8068
|
'x-scalar-registry-meta': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
|
|
8053
8069
|
namespace: import("@scalar/typebox").TString;
|
|
8054
8070
|
slug: import("@scalar/typebox").TString;
|
|
8071
|
+
version: import("@scalar/typebox").TString;
|
|
8072
|
+
commitHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
8073
|
+
conflictCheckedAgainstHash: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
8074
|
+
hasConflict: import("@scalar/typebox").TOptional<import("@scalar/typebox").TBoolean>;
|
|
8055
8075
|
}>>;
|
|
8056
8076
|
}>, import("@scalar/typebox").TObject<{
|
|
8057
8077
|
'x-pre-request': import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,iBAAiB,CAAA;AAoBnD,QAAA,MAAM,mBAAmB;;;;IAKxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE9D,QAAA,MAAM,iBAAiB;;;;;;;IAMtB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAQ1D,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB3B,CAAA;AAEF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEtE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKhB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAA;AAErD,8FAA8F;AAC9F,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+B9B,CAAA;AAEF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEpE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAqD,CAAA;AACnF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE1D,QAAA,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/schema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAE5C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAyC,CAAA;AACxE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA"}
|
package/dist/events/bus.d.ts
CHANGED
|
@@ -54,6 +54,20 @@ export type WorkspaceEventBus = {
|
|
|
54
54
|
* bus.off('scalar-update-sidebar', handler)
|
|
55
55
|
*/
|
|
56
56
|
off<E extends keyof ApiReferenceEvents>(event: E, listener: EventListener<E>): void;
|
|
57
|
+
/**
|
|
58
|
+
* Subscribe to an event, but only trigger the listener once.
|
|
59
|
+
* The listener is automatically removed after the first invocation.
|
|
60
|
+
*
|
|
61
|
+
* @param event - The event name to listen for
|
|
62
|
+
* @param listener - Callback function that receives the event detail
|
|
63
|
+
* @returns Unsubscribe function to remove the listener before it fires
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* bus.once('scalar-update-sidebar', (detail) => {
|
|
67
|
+
* console.log('Fired once:', detail.value)
|
|
68
|
+
* })
|
|
69
|
+
*/
|
|
70
|
+
once<E extends keyof ApiReferenceEvents>(event: E, listener: EventListener<E>): Unsubscribe;
|
|
57
71
|
/**
|
|
58
72
|
* Emit an event with its payload
|
|
59
73
|
*
|
package/dist/events/bus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/events/bus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,KAAK,WAAW,GAAG,MAAM,IAAI,CAAA;AAE7B;;;GAGG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAI,SAAS,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAC5F,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GACzC,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAE5C;;;;;;GAMG;AACH,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAI,SAAS,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAC7F,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1G,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE7G;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAEzF;;;;;;;;;;OAUG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEnF;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAC3E,CAAA;AAED;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAS,eAAoB,KAAG,
|
|
1
|
+
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../src/events/bus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,KAAK,WAAW,GAAG,MAAM,IAAI,CAAA;AAE7B;;;GAGG;AACH,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAI,SAAS,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAC5F,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GACzC,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;AAE5C;;;;;;GAMG;AACH,KAAK,cAAc,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAI,SAAS,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAC7F,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAC1G,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE7G;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;;;;;;;;OAcG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAEzF;;;;;;;;;;OAUG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAEnF;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,WAAW,CAAA;IAE3F;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAC3E,CAAA;AAED;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAS,eAAoB,KAAG,iBAsKvE,CAAA"}
|
package/dist/events/bus.js
CHANGED
|
@@ -84,6 +84,13 @@ export const createWorkspaceEventBus = (options = {}) => {
|
|
|
84
84
|
logTimeout = setTimeout(flushLogs, 500);
|
|
85
85
|
}
|
|
86
86
|
};
|
|
87
|
+
const once = (event, listener) => {
|
|
88
|
+
const wrapper = (payload) => {
|
|
89
|
+
off(event, wrapper);
|
|
90
|
+
listener(payload);
|
|
91
|
+
};
|
|
92
|
+
return on(event, wrapper);
|
|
93
|
+
};
|
|
87
94
|
const on = (event, listener) => {
|
|
88
95
|
const listeners = getListeners(event);
|
|
89
96
|
listeners.add(listener);
|
|
@@ -143,6 +150,7 @@ export const createWorkspaceEventBus = (options = {}) => {
|
|
|
143
150
|
};
|
|
144
151
|
return {
|
|
145
152
|
on,
|
|
153
|
+
once,
|
|
146
154
|
off,
|
|
147
155
|
emit,
|
|
148
156
|
};
|
|
@@ -231,8 +231,8 @@ export type UIEvents = {
|
|
|
231
231
|
'ui:navigate': {
|
|
232
232
|
/** If true, the navigation will replace the current route instead of pushing a new one */
|
|
233
233
|
replace?: boolean;
|
|
234
|
-
/** The
|
|
235
|
-
|
|
234
|
+
/** The slug of the team that owns the workspace to navigate to */
|
|
235
|
+
teamSlug?: string;
|
|
236
236
|
/** The slug of the workspace to navigate to */
|
|
237
237
|
workspaceSlug?: string;
|
|
238
238
|
/** The callback to call when the navigation is complete */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/ui.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE1E;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qGAAqG;IACrG,0CAA0C,EAAE,SAAS,CAAA;IACrD,6CAA6C;IAC7C,yBAAyB,EAAE,SAAS,CAAA;IACpC,yCAAyC;IACzC,SAAS,EAAE;QACT,iDAAiD;QACjD,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,gCAAgC;IAChC,UAAU,EAAE;QACV,2DAA2D;QAC3D,GAAG,EAAE,YAAY,CAAA;QACjB,kDAAkD;QAClD,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,gCAAgC;IAChC,gBAAgB,EAAE;QAChB,wDAAwD;QACxD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,kDAAkD;QAClD,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,+CAA+C;IAC/C,aAAa,EAAE;QACb,qDAAqD;QACrD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,cAAc,EAAE;QACd,0BAA0B;QAC1B,OAAO,EAAE,gBAAgB,CAAA;QACzB,+CAA+C;QAC/C,YAAY,EAAE,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,kDAAkD;IAClD,qBAAqB,EAAE;QACrB,kDAAkD;QAClD,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,iEAAiE;IACjE,2BAA2B,EAAE;QAC3B,2EAA2E;QAC3E,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,qBAAqB,GAAG,MAAM,qBAAqB,IAAI;IACtG,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAA;IACT,6DAA6D;IAC7D,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,KAAK,qBAAqB,GAAG;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IAKrB;;;;OAIG;IACH,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,CAAA;IAMD;;;OAGG;IACH,sBAAsB,EAClB,oBAAoB,GACpB;QACE,uDAAuD;QACvD,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IACL;;;OAGG;IACH,sBAAsB,EAAE,oBAAoB,CAAA;IAE5C;;;;;;;;;;;;OAYG;IACH,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAMnD;;;OAGG;IACH,mBAAmB,EAAE,oBAAoB,CAAA;IAMzC;;;;;;;;OAQG;IACH,kBAAkB,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAEpD;;;OAGG;IACH,sBAAsB,EAClB,SAAS,GACT;QACE,+CAA+C;QAC/C,EAAE,EAAE,MAAM,CAAA;QACV,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,+EAA+E;QAC/E,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzD,GACD;QACE,iEAAiE;QACjE,MAAM,EAAE,UAAU,CAAA;QAClB,4DAA4D;QAC5D,IAAI,EAAE,MAAM,CAAA;QACZ,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,+EAA+E;QAC/E,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzD,CAAA;IAEL;;;OAGG;IACH,uBAAuB,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAMzD;;;;OAIG;IACH,yBAAyB,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,SAAS,CAAA;IAMlF;;;OAGG;IACH,iBAAiB,EAAE,qBAAqB,GAAG;QACzC,iEAAiE;QACjE,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAA;IAED;;;;OAIG;IACH,iBAAiB,EAAE,qBAAqB,CAAA;IAExC;;;OAGG;IACH,uBAAuB,EAAE,qBAAqB,CAAA;IAE9C;;;OAGG;IACH,oBAAoB,EAAE,qBAAqB,CAAA;IAE3C;;;OAGG;IACH,yBAAyB,EAAE;QACzB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED;;;OAGG;IACH,mBAAmB,EAAE,qBAAqB,CAAA;IAE1C;;OAEG;IACH,sBAAsB,EAAE,SAAS,CAAA;IAEjC;;OAEG;IACH,eAAe,EAAE;QACf,+CAA+C;QAC/C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;OAIG;IACH,aAAa,EAAE;QACb,0FAA0F;QAC1F,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,kEAAkE;QAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,+CAA+C;QAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,2DAA2D;QAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;KACjD,GAAG,CACA;QACE,IAAI,EAAE,UAAU,CAAA;QAChB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAA;QACxF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GACD;QACE,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAA;KAC7D,GACD;QACE,IAAI,EAAE,SAAS,CAAA;QACf,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,UAAU,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;KACpB,GACD;QACE,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAA;QAC/C,aAAa,EAAE,MAAM,CAAA;QACrB,MAAM,EAAE,UAAU,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CACJ,CAAA;CACF,CAAA"}
|
|
@@ -2,16 +2,18 @@ import type { PathMethodHistory } from '../entities/history/schema.js';
|
|
|
2
2
|
import type { InMemoryWorkspace } from '../schemas/inmemory-workspace.js';
|
|
3
3
|
import type { WorkspaceMeta } from '../schemas/workspace.js';
|
|
4
4
|
type WorkspaceKey = {
|
|
5
|
-
|
|
5
|
+
teamSlug?: string;
|
|
6
6
|
slug: string;
|
|
7
7
|
};
|
|
8
8
|
type WorkspaceStoreShape = {
|
|
9
|
-
teamUid: string;
|
|
10
9
|
name: string;
|
|
11
10
|
workspace: InMemoryWorkspace;
|
|
12
11
|
};
|
|
13
|
-
/**
|
|
14
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Generates a workspace ID from team slug and workspace slug. Used as the key
|
|
14
|
+
* in the per-workspace chunk tables (meta, documents, ...).
|
|
15
|
+
*/
|
|
16
|
+
export declare const getWorkspaceId: (teamSlug: string, slug: string) => string;
|
|
15
17
|
/**
|
|
16
18
|
* Creates the persistence layer for the workspace store using IndexedDB.
|
|
17
19
|
* This sets up all the required tables for storing workspace chunk information,
|
|
@@ -67,11 +69,14 @@ export declare const createWorkspaceStorePersistence: () => Promise<{
|
|
|
67
69
|
};
|
|
68
70
|
workspace: {
|
|
69
71
|
/**
|
|
70
|
-
* Retrieves a workspace by its
|
|
72
|
+
* Retrieves a workspace by its team + workspace slug.
|
|
71
73
|
* Returns undefined if the workspace does not exist.
|
|
72
74
|
* Gathers all workspace 'chunk' tables and assembles a full workspace shape.
|
|
73
75
|
*/
|
|
74
|
-
getItem: ({
|
|
76
|
+
getItem: ({ teamSlug, slug, }: WorkspaceKey) => Promise<(WorkspaceStoreShape & {
|
|
77
|
+
teamSlug: string;
|
|
78
|
+
slug: string;
|
|
79
|
+
}) | undefined>;
|
|
75
80
|
/**
|
|
76
81
|
* Retrieves all workspaces from the database.
|
|
77
82
|
* Returns only the workspace ID and name for each workspace.
|
|
@@ -80,34 +85,32 @@ export declare const createWorkspaceStorePersistence: () => Promise<{
|
|
|
80
85
|
*/
|
|
81
86
|
getAll: () => Promise<{
|
|
82
87
|
name: string;
|
|
83
|
-
namespace: string;
|
|
84
88
|
slug: string;
|
|
85
|
-
|
|
89
|
+
teamSlug: string;
|
|
86
90
|
}[]>;
|
|
87
91
|
/**
|
|
88
|
-
* Retrieves all workspaces for a given team
|
|
92
|
+
* Retrieves all workspaces for a given team slug. Uses the primary key
|
|
93
|
+
* prefix so no secondary index is required.
|
|
89
94
|
*/
|
|
90
|
-
|
|
95
|
+
getAllByTeamSlug: (teamSlug: string) => Promise<{
|
|
91
96
|
name: string;
|
|
92
|
-
namespace: string;
|
|
93
97
|
slug: string;
|
|
94
|
-
|
|
98
|
+
teamSlug: string;
|
|
95
99
|
}[]>;
|
|
96
100
|
/**
|
|
97
101
|
* Saves a workspace to the database.
|
|
98
102
|
* All chunks (meta, documents, configs, etc.) are upsert in their respective tables.
|
|
99
103
|
* If a workspace with the same ID already exists, it will be replaced.
|
|
100
104
|
*/
|
|
101
|
-
setItem: ({
|
|
105
|
+
setItem: ({ teamSlug, slug }: WorkspaceKey, value: WorkspaceStoreShape) => Promise<{
|
|
102
106
|
name: string;
|
|
103
|
-
namespace: string;
|
|
104
107
|
slug: string;
|
|
105
|
-
|
|
108
|
+
teamSlug: string;
|
|
106
109
|
}>;
|
|
107
110
|
/**
|
|
108
111
|
* Deletes an entire workspace and all associated chunk records from all tables by ID.
|
|
109
112
|
*/
|
|
110
|
-
deleteItem: ({
|
|
113
|
+
deleteItem: ({ teamSlug, slug }: WorkspaceKey) => Promise<void>;
|
|
111
114
|
/**
|
|
112
115
|
* Deletes a single document and all related records (overrides, history, auth, etc.)
|
|
113
116
|
* for the given workspace and document name from all relevant tables.
|
|
@@ -117,16 +120,15 @@ export declare const createWorkspaceStorePersistence: () => Promise<{
|
|
|
117
120
|
* Updates the name of an existing workspace.
|
|
118
121
|
* Returns the updated workspace object, or undefined if the workspace does not exist.
|
|
119
122
|
*/
|
|
120
|
-
updateName: ({
|
|
123
|
+
updateName: ({ teamSlug, slug }: WorkspaceKey, name: string) => Promise<{
|
|
121
124
|
name: string;
|
|
122
|
-
namespace: string;
|
|
123
125
|
slug: string;
|
|
124
|
-
|
|
126
|
+
teamSlug: string;
|
|
125
127
|
} | undefined>;
|
|
126
128
|
/**
|
|
127
|
-
* Checks if a workspace with the given
|
|
129
|
+
* Checks if a workspace with the given team + workspace slug exists in the store.
|
|
128
130
|
*/
|
|
129
|
-
has: ({
|
|
131
|
+
has: ({ teamSlug, slug }: WorkspaceKey) => Promise<boolean>;
|
|
130
132
|
};
|
|
131
133
|
clear: () => Promise<void>;
|
|
132
134
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,iBAAiB,CAAA;CAC7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,MAAM,MAAM,WAA0B,CAAA;AAEvF;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;QAmEtC;;WAEG;+BAC0B,MAAM,QAAQ,aAAa;;;QAKxD;;WAEG;+BAC0B,MAAM,gBAAgB,MAAM,QAAQ,iBAAiB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;;;QAKvG;;WAEG;+BAEY,MAAM,gBACL,MAAM,QACd,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC;;;QAMtD;;WAEG;+BAEY,MAAM,gBACL,MAAM,QACd,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC;;;QAM1D;;WAEG;+BAC0B,MAAM,gBAAgB,MAAM,QAAQ,iBAAiB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;;;QAKvG;;WAEG;+BAC0B,MAAM,gBAAgB,MAAM,QAAQ,iBAAiB;;;QAKlF;;WAEG;+BAC0B,MAAM,gBAAgB,MAAM,QAAQ,iBAAiB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;;;QAKlG;;;;WAIG;uCAIA,YAAY,KAAG,OAAO,CAAC,CAAC,mBAAmB,GAAG;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,SAAS,CAAC;QAwCjG;;;;;WAKG;;;;;;QAKH;;;WAGG;qCACgC,MAAM;;;;;QAIzC;;;;WAIG;sCAC2C,YAAY,SAAS,mBAAmB;;;;;QAyDtF;;WAEG;yCAC8C,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC;QAoB7E;;;WAGG;sCACiC,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;QAWhF;;;WAGG;yCAC8C,YAAY,QAAQ,MAAM;;;;;QAU3E;;WAEG;kCACuC,YAAY,KAAG,OAAO,CAAC,OAAO,CAAC;;;EAQ9E,CAAA"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { Type } from '@scalar/typebox';
|
|
2
2
|
import { createIndexDbConnection } from '../persistence/indexdb.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { v1InitialMigration } from '../persistence/migrations/v1-initial.js';
|
|
4
|
+
import { v2TeamToLocalMigration } from '../persistence/migrations/v2-team-to-local.js';
|
|
5
|
+
/**
|
|
6
|
+
* Generates a workspace ID from team slug and workspace slug. Used as the key
|
|
7
|
+
* in the per-workspace chunk tables (meta, documents, ...).
|
|
8
|
+
*/
|
|
9
|
+
export const getWorkspaceId = (teamSlug, slug) => `${teamSlug}/${slug}`;
|
|
5
10
|
/**
|
|
6
11
|
* Creates the persistence layer for the workspace store using IndexedDB.
|
|
7
12
|
* This sets up all the required tables for storing workspace chunk information,
|
|
@@ -12,26 +17,24 @@ export const getWorkspaceId = (namespace, slug) => `${namespace}/${slug}`;
|
|
|
12
17
|
* for upsetting records, and in the case of `workspace`, also `getItem` and `deleteItem`.
|
|
13
18
|
*/
|
|
14
19
|
export const createWorkspaceStorePersistence = async () => {
|
|
15
|
-
//
|
|
20
|
+
// The `tables` config below only describes the CURRENT shape for TypeScript
|
|
21
|
+
// typing on the wrapper API. All schema evolution — creating object stores,
|
|
22
|
+
// keyPaths, indexes, renames, drops — is owned by the migrations array so
|
|
23
|
+
// fresh installs and upgrades converge on exactly the same state.
|
|
16
24
|
const connection = await createIndexDbConnection({
|
|
17
25
|
name: 'scalar-workspace-store',
|
|
18
|
-
|
|
26
|
+
migrations: [v1InitialMigration, v2TeamToLocalMigration],
|
|
19
27
|
tables: {
|
|
20
28
|
workspace: {
|
|
21
29
|
schema: Type.Object({
|
|
22
30
|
/** Visual name for a given workspace */
|
|
23
31
|
name: Type.String(),
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
namespace: Type.String({ default: 'local' }),
|
|
28
|
-
/** Slug associated with a remote workspace */
|
|
32
|
+
/** Slug of the team this workspace belongs to. Use 'local' for personal workspaces. */
|
|
33
|
+
teamSlug: Type.String({ default: 'local' }),
|
|
34
|
+
/** Slug of the workspace, unique within the team. */
|
|
29
35
|
slug: Type.String({ default: 'local' }),
|
|
30
36
|
}),
|
|
31
|
-
keyPath: ['
|
|
32
|
-
indexes: {
|
|
33
|
-
teamUid: ['teamUid'],
|
|
34
|
-
},
|
|
37
|
+
keyPath: ['teamSlug', 'slug'],
|
|
35
38
|
},
|
|
36
39
|
meta: {
|
|
37
40
|
schema: Type.Object({ workspaceId: Type.String(), data: Type.Any() }),
|
|
@@ -135,17 +138,17 @@ export const createWorkspaceStorePersistence = async () => {
|
|
|
135
138
|
},
|
|
136
139
|
workspace: {
|
|
137
140
|
/**
|
|
138
|
-
* Retrieves a workspace by its
|
|
141
|
+
* Retrieves a workspace by its team + workspace slug.
|
|
139
142
|
* Returns undefined if the workspace does not exist.
|
|
140
143
|
* Gathers all workspace 'chunk' tables and assembles a full workspace shape.
|
|
141
144
|
*/
|
|
142
|
-
getItem: async ({
|
|
143
|
-
const workspace = await workspaceTable.getItem({
|
|
145
|
+
getItem: async ({ teamSlug = 'local', slug, }) => {
|
|
146
|
+
const workspace = await workspaceTable.getItem({ teamSlug, slug });
|
|
144
147
|
if (!workspace) {
|
|
145
148
|
return undefined;
|
|
146
149
|
}
|
|
147
150
|
// Create a composite key for the workspace chunks.
|
|
148
|
-
const id = getWorkspaceId(
|
|
151
|
+
const id = getWorkspaceId(teamSlug, slug);
|
|
149
152
|
// Retrieve all chunk records for this workspace.
|
|
150
153
|
const workspaceDocuments = await documentsTable.getRange([id]);
|
|
151
154
|
const workspaceOriginalDocuments = await originalDocumentTable.getRange([id]);
|
|
@@ -157,8 +160,7 @@ export const createWorkspaceStorePersistence = async () => {
|
|
|
157
160
|
// Compose the workspace structure from table records.
|
|
158
161
|
return {
|
|
159
162
|
name: workspace.name,
|
|
160
|
-
|
|
161
|
-
namespace: workspace.namespace,
|
|
163
|
+
teamSlug: workspace.teamSlug,
|
|
162
164
|
slug: workspace.slug,
|
|
163
165
|
workspace: {
|
|
164
166
|
documents: Object.fromEntries(workspaceDocuments.map((item) => [item.documentName, item.data])),
|
|
@@ -181,22 +183,22 @@ export const createWorkspaceStorePersistence = async () => {
|
|
|
181
183
|
return await workspaceTable.getAll();
|
|
182
184
|
},
|
|
183
185
|
/**
|
|
184
|
-
* Retrieves all workspaces for a given team
|
|
186
|
+
* Retrieves all workspaces for a given team slug. Uses the primary key
|
|
187
|
+
* prefix so no secondary index is required.
|
|
185
188
|
*/
|
|
186
|
-
|
|
187
|
-
return await workspaceTable.getRange([
|
|
189
|
+
getAllByTeamSlug: async (teamSlug) => {
|
|
190
|
+
return await workspaceTable.getRange([teamSlug]);
|
|
188
191
|
},
|
|
189
192
|
/**
|
|
190
193
|
* Saves a workspace to the database.
|
|
191
194
|
* All chunks (meta, documents, configs, etc.) are upsert in their respective tables.
|
|
192
195
|
* If a workspace with the same ID already exists, it will be replaced.
|
|
193
196
|
*/
|
|
194
|
-
setItem: async ({
|
|
195
|
-
const workspace = await workspaceTable.addItem({
|
|
197
|
+
setItem: async ({ teamSlug = 'local', slug }, value) => {
|
|
198
|
+
const workspace = await workspaceTable.addItem({ teamSlug, slug }, {
|
|
196
199
|
name: value.name,
|
|
197
|
-
teamUid: value.teamUid ?? 'local',
|
|
198
200
|
});
|
|
199
|
-
const id = getWorkspaceId(
|
|
201
|
+
const id = getWorkspaceId(teamSlug, slug);
|
|
200
202
|
// Save all meta info for workspace.
|
|
201
203
|
await metaTable.addItem({ workspaceId: id }, { data: value.workspace.meta });
|
|
202
204
|
// Persist all workspace documents (chunks).
|
|
@@ -228,9 +230,9 @@ export const createWorkspaceStorePersistence = async () => {
|
|
|
228
230
|
/**
|
|
229
231
|
* Deletes an entire workspace and all associated chunk records from all tables by ID.
|
|
230
232
|
*/
|
|
231
|
-
deleteItem: async ({
|
|
232
|
-
const id = getWorkspaceId(
|
|
233
|
-
await workspaceTable.deleteItem({
|
|
233
|
+
deleteItem: async ({ teamSlug = 'local', slug }) => {
|
|
234
|
+
const id = getWorkspaceId(teamSlug, slug);
|
|
235
|
+
await workspaceTable.deleteItem({ teamSlug, slug });
|
|
234
236
|
// Remove all workspace-related records from all chunk tables.
|
|
235
237
|
await Promise.all([
|
|
236
238
|
// By id
|
|
@@ -262,19 +264,19 @@ export const createWorkspaceStorePersistence = async () => {
|
|
|
262
264
|
* Updates the name of an existing workspace.
|
|
263
265
|
* Returns the updated workspace object, or undefined if the workspace does not exist.
|
|
264
266
|
*/
|
|
265
|
-
updateName: async ({
|
|
266
|
-
const workspace = await workspaceTable.getItem({
|
|
267
|
+
updateName: async ({ teamSlug = 'local', slug }, name) => {
|
|
268
|
+
const workspace = await workspaceTable.getItem({ teamSlug, slug });
|
|
267
269
|
if (!workspace) {
|
|
268
270
|
return undefined;
|
|
269
271
|
}
|
|
270
272
|
// Update the workspace name
|
|
271
|
-
return await workspaceTable.addItem({
|
|
273
|
+
return await workspaceTable.addItem({ teamSlug, slug }, { ...workspace, name });
|
|
272
274
|
},
|
|
273
275
|
/**
|
|
274
|
-
* Checks if a workspace with the given
|
|
276
|
+
* Checks if a workspace with the given team + workspace slug exists in the store.
|
|
275
277
|
*/
|
|
276
|
-
has: async ({
|
|
277
|
-
return (await workspaceTable.getItem({
|
|
278
|
+
has: async ({ teamSlug = 'local', slug }) => {
|
|
279
|
+
return (await workspaceTable.getItem({ teamSlug, slug })) !== undefined;
|
|
278
280
|
},
|
|
279
281
|
},
|
|
280
282
|
clear: async () => {
|