@scalar/workspace-store 0.67.2 → 0.68.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.
- package/CHANGELOG.md +17 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +37 -15
- package/dist/entities/auth/schema.d.ts +390 -0
- package/dist/entities/auth/schema.d.ts.map +1 -1
- package/dist/entities/auth/schema.js +12 -8
- package/dist/events/definitions/auth.d.ts +7 -0
- package/dist/events/definitions/auth.d.ts.map +1 -1
- package/dist/helpers/asyncapi-chunk-groups.d.ts +3 -0
- package/dist/helpers/asyncapi-chunk-groups.d.ts.map +1 -0
- package/dist/helpers/asyncapi-chunk-groups.js +55 -0
- package/dist/helpers/asyncapi-model-chunk-reference.d.ts +3 -0
- package/dist/helpers/asyncapi-model-chunk-reference.d.ts.map +1 -0
- package/dist/helpers/asyncapi-model-chunk-reference.js +11 -0
- package/dist/helpers/auth-secret-fields.d.ts +9 -0
- package/dist/helpers/auth-secret-fields.d.ts.map +1 -0
- package/dist/helpers/auth-secret-fields.js +42 -0
- package/dist/mutators/auth.d.ts +1 -0
- package/dist/mutators/auth.d.ts.map +1 -1
- package/dist/mutators/auth.js +29 -0
- package/dist/mutators/index.d.ts +2 -0
- package/dist/mutators/index.d.ts.map +1 -1
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts +2 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts.map +1 -1
- package/dist/request-example/builder/helpers/get-example-from-schema.js +25 -4
- package/dist/request-example/builder/helpers/get-example.d.ts.map +1 -1
- package/dist/request-example/builder/helpers/get-example.js +30 -6
- package/dist/request-example/builder/security/secret-types.d.ts +4 -1
- package/dist/request-example/builder/security/secret-types.d.ts.map +1 -1
- package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts.map +1 -1
- package/dist/request-example/context/security/extract-security-scheme-secrets.js +33 -34
- package/dist/server.d.ts +2 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +85 -19
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @scalar/workspace-store
|
|
2
2
|
|
|
3
|
+
## 0.68.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#10431](https://github.com/scalar/scalar/pull/10431): Keep explicit authentication field clears separate from configured defaults, add field-local reset actions, and prevent clearing fixed-choice OAuth settings.
|
|
8
|
+
- [#10460](https://github.com/scalar/scalar/pull/10460): Preserve multipart file metadata in generated code examples, including arrays and composed schemas, read actual file bytes across code example targets, let HTTP clients set the multipart boundary, and preserve typed text fields without turning them into file attachments.
|
|
9
|
+
|
|
10
|
+
## 0.68.0
|
|
11
|
+
|
|
12
|
+
### Minor Changes
|
|
13
|
+
|
|
14
|
+
- [#10432](https://github.com/scalar/scalar/pull/10432): Generate lazy AsyncAPI channel, operation, message, and schema chunks. Group shared dependencies to reduce requests while preserving direct model loading, recursive references, navigation, servers, and authentication.
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- [#10458](https://github.com/scalar/scalar/pull/10458): Stop walking every path through shared schemas when collecting a parameter's declared example values. A shared schema found to declare no values is now skipped on the other paths that reach it, so a request whose parameter points into a deep graph of shared schemas no longer takes seconds to minutes to render.
|
|
19
|
+
|
|
3
20
|
## 0.67.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,2BAA2B,CAAA;AAErE,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAQ7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAI5C,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,iBAAiB,CAAA;AACjE,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -16,6 +16,7 @@ import { reactive } from 'vue';
|
|
|
16
16
|
import YAML from 'yaml';
|
|
17
17
|
import { createAuthStore } from './entities/auth/index.js';
|
|
18
18
|
import { createHistoryStore } from './entities/history/index.js';
|
|
19
|
+
import { asyncApiModelChunkReference } from './helpers/asyncapi-model-chunk-reference.js';
|
|
19
20
|
import { chunkReference, expandChunkIndex } from './helpers/chunk-index.js';
|
|
20
21
|
import { deepClone } from './helpers/deep-clone.js';
|
|
21
22
|
import { createDetectChangesProxy } from './helpers/detect-changes-proxy.js';
|
|
@@ -532,15 +533,16 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
532
533
|
'x-scalar-original-document-hash': input.documentHash,
|
|
533
534
|
'x-scalar-original-source-url': input.documentSource,
|
|
534
535
|
});
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
536
|
+
if (asyncApiDocument[extensions.document.navigation] === undefined) {
|
|
537
|
+
await withMeasurementAsync('bundle', async () => await bundle(getRaw(asyncApiDocument), {
|
|
538
|
+
treeShake: false,
|
|
539
|
+
plugins: loaders,
|
|
540
|
+
urlMap: true,
|
|
541
|
+
origin: input.documentSource,
|
|
542
|
+
}));
|
|
543
|
+
const coerced = withMeasurementSync('coerceValue', () => coerce(asyncApiObjectSchema, deepClone(getRaw(asyncApiDocument))));
|
|
544
|
+
withMeasurementSync('mergeObjects', () => mergeObjects(asyncApiDocument, coerced));
|
|
545
|
+
}
|
|
544
546
|
if (asyncApiDocument[extensions.document.navigation] === undefined) {
|
|
545
547
|
const navigation = traverseAsyncApiDocument(name, asyncApiDocument, navigationOptions);
|
|
546
548
|
asyncApiDocument[extensions.document.navigation] = navigation;
|
|
@@ -787,13 +789,18 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
787
789
|
* key in place, so asking again retries.
|
|
788
790
|
*/
|
|
789
791
|
const loadNavigationChildren = async (documentName) => {
|
|
792
|
+
// An inherited entry can point at a prototype, which must never receive chunk writes.
|
|
793
|
+
if (!Object.hasOwn(workspace.documents, documentName)) {
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
790
796
|
const document = workspace.documents[documentName];
|
|
791
|
-
if (!isOpenApiDocument(document)) {
|
|
797
|
+
if (!isOpenApiDocument(document) && !isAsyncApiDocument(document)) {
|
|
792
798
|
return;
|
|
793
799
|
}
|
|
794
|
-
const
|
|
800
|
+
const chunkDocument = document;
|
|
801
|
+
const ref = chunkDocument[extensions.document.navigationChunk];
|
|
795
802
|
const navigation = document[extensions.document.navigation];
|
|
796
|
-
if (ref === undefined || navigation === undefined) {
|
|
803
|
+
if (ref === undefined || navigation === undefined || !Object.hasOwn(document, extensions.document.navigation)) {
|
|
797
804
|
return;
|
|
798
805
|
}
|
|
799
806
|
const pending = navigationChildrenLoads.get(document);
|
|
@@ -809,7 +816,7 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
809
816
|
// Assigned through the store's document, so the write is observed: a Vue effect reading the
|
|
810
817
|
// children re-runs, and the workspace plugins see the document change.
|
|
811
818
|
navigation.children = chunk.children ?? [];
|
|
812
|
-
delete
|
|
819
|
+
delete chunkDocument[extensions.document.navigationChunk];
|
|
813
820
|
})();
|
|
814
821
|
navigationChildrenLoads.set(document, load);
|
|
815
822
|
try {
|
|
@@ -821,7 +828,7 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
821
828
|
};
|
|
822
829
|
// Cache to track visited nodes during reference resolution to prevent bundling the same subtree multiple times
|
|
823
830
|
// This is needed because we are doing partial bundle operations
|
|
824
|
-
const
|
|
831
|
+
const visitedNodesCaches = new WeakMap();
|
|
825
832
|
return {
|
|
826
833
|
externalExamples: (documentName) => {
|
|
827
834
|
const name = documentName ?? getActiveDocumentName();
|
|
@@ -904,6 +911,16 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
904
911
|
console.error(`Invalid path provided for resolution. Path: [${path.join(', ')}]. Found value of type: ${typeof target}. Expected an object.`);
|
|
905
912
|
return Promise.resolve();
|
|
906
913
|
}
|
|
914
|
+
if (isAsyncApiDocument(activeDocument) &&
|
|
915
|
+
path.length === 3 &&
|
|
916
|
+
path[0] === 'components' &&
|
|
917
|
+
path[1] === 'schemas') {
|
|
918
|
+
const node = getRaw(target);
|
|
919
|
+
const name = path[2];
|
|
920
|
+
if (name && typeof node.$ref === 'string' && node.$global === true) {
|
|
921
|
+
node.$ref = asyncApiModelChunkReference(node.$ref, name);
|
|
922
|
+
}
|
|
923
|
+
}
|
|
907
924
|
// Bundle the target document with the active document as root, resolving any external references
|
|
908
925
|
// and tracking resolution status through hooks.
|
|
909
926
|
//
|
|
@@ -911,6 +928,11 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
911
928
|
// references relative to the document (`./chunks/…`), and without the origin the loader has
|
|
912
929
|
// nothing to resolve them against, so every chunk fails before a request is made. SSR
|
|
913
930
|
// workspaces write absolute URLs and never needed it.
|
|
931
|
+
const visitedNodes = activeDocument
|
|
932
|
+
? (visitedNodesCaches.get(activeDocument) ?? new Set())
|
|
933
|
+
: new Set();
|
|
934
|
+
if (activeDocument)
|
|
935
|
+
visitedNodesCaches.set(activeDocument, visitedNodes);
|
|
914
936
|
return bundle(target, {
|
|
915
937
|
root: activeDocument,
|
|
916
938
|
origin: activeDocument?.['x-scalar-original-source-url'],
|
|
@@ -926,7 +948,7 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
926
948
|
externalValueResolver({ lazy: true }),
|
|
927
949
|
],
|
|
928
950
|
urlMap: true,
|
|
929
|
-
visitedNodes
|
|
951
|
+
visitedNodes,
|
|
930
952
|
});
|
|
931
953
|
},
|
|
932
954
|
addDocument,
|