@scalar/workspace-store 0.51.2 → 0.53.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 +30 -0
- package/dist/channel-example/build-connection-url.d.ts +42 -0
- package/dist/channel-example/build-connection-url.d.ts.map +1 -0
- package/dist/channel-example/build-connection-url.js +184 -0
- package/dist/channel-example/get-all-channel-messages.d.ts +10 -0
- package/dist/channel-example/get-all-channel-messages.d.ts.map +1 -0
- package/dist/channel-example/get-all-channel-messages.js +16 -0
- package/dist/channel-example/get-asyncapi-security-requirements.d.ts +7 -0
- package/dist/channel-example/get-asyncapi-security-requirements.d.ts.map +1 -0
- package/dist/channel-example/get-asyncapi-security-requirements.js +76 -0
- package/dist/channel-example/get-channel-connection-context.d.ts +16 -0
- package/dist/channel-example/get-channel-connection-context.d.ts.map +1 -0
- package/dist/channel-example/get-channel-connection-context.js +120 -0
- package/dist/channel-example/get-channel-connection-security.d.ts +8 -0
- package/dist/channel-example/get-channel-connection-security.d.ts.map +1 -0
- package/dist/channel-example/get-channel-connection-security.js +20 -0
- package/dist/channel-example/get-channel-operations.d.ts +11 -0
- package/dist/channel-example/get-channel-operations.d.ts.map +1 -0
- package/dist/channel-example/get-channel-operations.js +20 -0
- package/dist/channel-example/get-channel-parameters.d.ts +14 -0
- package/dist/channel-example/get-channel-parameters.d.ts.map +1 -0
- package/dist/channel-example/get-channel-parameters.js +59 -0
- package/dist/channel-example/index.d.ts +20 -0
- package/dist/channel-example/index.d.ts.map +1 -0
- package/dist/channel-example/index.js +11 -0
- package/dist/channel-example/resolve-channel.d.ts +11 -0
- package/dist/channel-example/resolve-channel.d.ts.map +1 -0
- package/dist/channel-example/resolve-channel.js +13 -0
- package/dist/channel-example/resolve-operation-channel.d.ts +11 -0
- package/dist/channel-example/resolve-operation-channel.d.ts.map +1 -0
- package/dist/channel-example/resolve-operation-channel.js +39 -0
- package/dist/channel-example/resolve-operation-with-traits.d.ts +6 -0
- package/dist/channel-example/resolve-operation-with-traits.d.ts.map +1 -0
- package/dist/channel-example/resolve-operation-with-traits.js +41 -0
- package/dist/channel-example/servers.d.ts +36 -0
- package/dist/channel-example/servers.d.ts.map +1 -0
- package/dist/channel-example/servers.js +77 -0
- package/dist/channel-example/types.d.ts +41 -0
- package/dist/channel-example/types.d.ts.map +1 -0
- package/dist/channel-example/types.js +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -8
- package/dist/entities/auth/schema.d.ts +1266 -81
- package/dist/entities/auth/schema.d.ts.map +1 -1
- package/dist/events/definitions/log.d.ts +6 -0
- package/dist/events/definitions/log.d.ts.map +1 -1
- package/dist/helpers/get-name-from-ref.d.ts +15 -0
- package/dist/helpers/get-name-from-ref.d.ts.map +1 -0
- package/dist/helpers/get-name-from-ref.js +37 -0
- package/dist/navigation/get-navigation-options.d.ts +2 -2
- package/dist/navigation/get-navigation-options.d.ts.map +1 -1
- package/dist/navigation/get-navigation-options.js +26 -3
- package/dist/navigation/helpers/traverse-asyncapi-document.d.ts +23 -0
- package/dist/navigation/helpers/traverse-asyncapi-document.d.ts.map +1 -0
- package/dist/navigation/helpers/traverse-asyncapi-document.js +479 -0
- package/dist/navigation/helpers/traverse-description.d.ts +4 -3
- package/dist/navigation/helpers/traverse-description.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-description.js +2 -2
- package/dist/navigation/helpers/traverse-document.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-document.js +3 -3
- package/dist/navigation/index.d.ts +1 -0
- package/dist/navigation/index.d.ts.map +1 -1
- package/dist/navigation/index.js +1 -0
- package/dist/navigation/types.d.ts +3 -0
- package/dist/navigation/types.d.ts.map +1 -1
- 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 +33 -2
- package/dist/schemas/extensions/schema/x-order.d.ts +22 -0
- package/dist/schemas/extensions/schema/x-order.d.ts.map +1 -0
- package/dist/schemas/extensions/schema/x-order.js +17 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts +4 -1
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts.map +1 -1
- package/dist/schemas/extensions/server/x-scalar-selected-server.js +4 -2
- package/dist/schemas/navigation.d.ts +113 -4
- package/dist/schemas/navigation.d.ts.map +1 -1
- package/dist/schemas/navigation.js +22 -0
- package/dist/schemas/reference-config/index.d.ts +245 -8
- package/dist/schemas/reference-config/index.d.ts.map +1 -1
- package/dist/schemas/reference-config/settings.d.ts +245 -8
- package/dist/schemas/reference-config/settings.d.ts.map +1 -1
- package/dist/schemas/v3.1/openapi/index.d.ts.map +1 -1
- package/dist/schemas/v3.1/openapi/index.js +61 -17
- package/dist/schemas/v3.1/strict/openapi-document.d.ts +9731 -1436
- package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/openapi-document.js +4 -1
- package/dist/schemas/v3.1/strict/ref-definitions.d.ts +3 -0
- package/dist/schemas/v3.1/strict/ref-definitions.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/ref-definitions.js +3 -0
- package/dist/schemas/v3.1/strict/schema.d.ts +275 -27
- package/dist/schemas/v3.1/strict/schema.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/schema.js +39 -29
- package/package.json +12 -7
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { objectEntries } from '@scalar/helpers/object/object-entries';
|
|
2
|
+
import { findVariables } from '@scalar/helpers/regex/find-variables';
|
|
3
|
+
import { buildWsQueryParams, mergeWsBindings } from '../channel-example/build-connection-url.js';
|
|
4
|
+
import { getResolvedRef } from '../helpers/get-resolved-ref.js';
|
|
5
|
+
const getPathParameterNames = (address) => {
|
|
6
|
+
if (address == null || address === '') {
|
|
7
|
+
return [];
|
|
8
|
+
}
|
|
9
|
+
const names = [];
|
|
10
|
+
for (const name of findVariables(address, { includePath: true, includeEnv: false })) {
|
|
11
|
+
if (name && !names.includes(name)) {
|
|
12
|
+
names.push(name);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return names;
|
|
16
|
+
};
|
|
17
|
+
const getDefaultParameterValue = (parameter) => {
|
|
18
|
+
if (parameter.default != null) {
|
|
19
|
+
return String(parameter.default);
|
|
20
|
+
}
|
|
21
|
+
if (parameter.examples?.[0] != null) {
|
|
22
|
+
return String(parameter.examples[0]);
|
|
23
|
+
}
|
|
24
|
+
if (parameter.enum?.[0] != null) {
|
|
25
|
+
return String(parameter.enum[0]);
|
|
26
|
+
}
|
|
27
|
+
return '';
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Builds default path and query parameter values from channel definitions and ws bindings.
|
|
31
|
+
*/
|
|
32
|
+
export const getChannelParameters = (channel, operation, overrides = {}) => {
|
|
33
|
+
const definitions = {};
|
|
34
|
+
if (channel.parameters) {
|
|
35
|
+
for (const [name, parameterRef] of objectEntries(channel.parameters)) {
|
|
36
|
+
definitions[name] = getResolvedRef(parameterRef);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const path = { ...overrides.path };
|
|
40
|
+
for (const name of getPathParameterNames(channel.address)) {
|
|
41
|
+
if (path[name] == null) {
|
|
42
|
+
const parameter = definitions[name];
|
|
43
|
+
path[name] = parameter ? getDefaultParameterValue(parameter) : '';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const query = { ...overrides.query };
|
|
47
|
+
const wsBinding = mergeWsBindings(channel, operation);
|
|
48
|
+
const defaultQueryParams = buildWsQueryParams(wsBinding);
|
|
49
|
+
defaultQueryParams.forEach((value, key) => {
|
|
50
|
+
if (query[key] == null) {
|
|
51
|
+
query[key] = value;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
definitions,
|
|
56
|
+
path,
|
|
57
|
+
query,
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type { AsyncApiWebSocketProtocol, BuildConnectionUrlInput } from './build-connection-url.js';
|
|
2
|
+
export { ASYNCAPI_WEBSOCKET_PROTOCOLS, buildAsyncApiServerBaseUrl, buildConnectionUrl, buildWsQueryParams, getAsyncApiServerVariables, getUrlSchemeFromProtocol, isWebSocketProtocol, mergeWsBindings, } from './build-connection-url.js';
|
|
3
|
+
export type { ChannelMessageEntry } from './get-all-channel-messages.js';
|
|
4
|
+
export { getAllChannelMessages } from './get-all-channel-messages.js';
|
|
5
|
+
export { getAsyncApiSecurityRequirements } from './get-asyncapi-security-requirements.js';
|
|
6
|
+
export { getChannelConnectionContext } from './get-channel-connection-context.js';
|
|
7
|
+
export { getChannelConnectionSecurityRequirements } from './get-channel-connection-security.js';
|
|
8
|
+
export type { ChannelOperationSummary } from './get-channel-operations.js';
|
|
9
|
+
export { getChannelOperations } from './get-channel-operations.js';
|
|
10
|
+
export type { ChannelParametersContext } from './get-channel-parameters.js';
|
|
11
|
+
export { getChannelParameters } from './get-channel-parameters.js';
|
|
12
|
+
export type { ResolvedChannel } from './resolve-channel.js';
|
|
13
|
+
export { resolveChannel } from './resolve-channel.js';
|
|
14
|
+
export type { ResolvedOperationChannel } from './resolve-operation-channel.js';
|
|
15
|
+
export { resolveOperationChannel } from './resolve-operation-channel.js';
|
|
16
|
+
export { resolveOperationWithTraits } from './resolve-operation-with-traits.js';
|
|
17
|
+
export type { AsyncApiServerEntry, AsyncApiServerListOptions } from './servers.js';
|
|
18
|
+
export { getAsyncApiServers, getSelectedAsyncApiServer } from './servers.js';
|
|
19
|
+
export type { BuildChannelConnectionContext, ChannelConnectionMeta } from './types.js';
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channel-example/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChG,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAA;AAC5F,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACzE,YAAY,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { ASYNCAPI_WEBSOCKET_PROTOCOLS, buildAsyncApiServerBaseUrl, buildConnectionUrl, buildWsQueryParams, getAsyncApiServerVariables, getUrlSchemeFromProtocol, isWebSocketProtocol, mergeWsBindings, } from './build-connection-url.js';
|
|
2
|
+
export { getAllChannelMessages } from './get-all-channel-messages.js';
|
|
3
|
+
export { getAsyncApiSecurityRequirements } from './get-asyncapi-security-requirements.js';
|
|
4
|
+
export { getChannelConnectionContext } from './get-channel-connection-context.js';
|
|
5
|
+
export { getChannelConnectionSecurityRequirements } from './get-channel-connection-security.js';
|
|
6
|
+
export { getChannelOperations } from './get-channel-operations.js';
|
|
7
|
+
export { getChannelParameters } from './get-channel-parameters.js';
|
|
8
|
+
export { resolveChannel } from './resolve-channel.js';
|
|
9
|
+
export { resolveOperationChannel } from './resolve-operation-channel.js';
|
|
10
|
+
export { resolveOperationWithTraits } from './resolve-operation-with-traits.js';
|
|
11
|
+
export { getAsyncApiServers, getSelectedAsyncApiServer } from './servers.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AsyncApiChannelObject, AsyncApiDocument } from '@scalar/types/asyncapi/3.1';
|
|
2
|
+
export type ResolvedChannel = {
|
|
3
|
+
channelName: string;
|
|
4
|
+
channel: AsyncApiChannelObject;
|
|
5
|
+
channelAddress: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Resolves a channel by its key in `document.channels`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveChannel: (document: AsyncApiDocument, channelName: string) => ResolvedChannel | undefined;
|
|
11
|
+
//# sourceMappingURL=resolve-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-channel.d.ts","sourceRoot":"","sources":["../../src/channel-example/resolve-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAIzF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,qBAAqB,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,gBAAgB,EAAE,aAAa,MAAM,KAAG,eAAe,GAAG,SAWlG,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { getResolvedRef } from '../helpers/get-resolved-ref.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a channel by its key in `document.channels`.
|
|
4
|
+
*/
|
|
5
|
+
export const resolveChannel = (document, channelName) => {
|
|
6
|
+
const channelNode = document.channels?.[channelName];
|
|
7
|
+
if (!channelNode) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const channel = getResolvedRef(channelNode);
|
|
11
|
+
const channelAddress = typeof channel.address === 'string' && channel.address.length > 0 ? channel.address : channelName;
|
|
12
|
+
return { channelName, channel, channelAddress };
|
|
13
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AsyncApiChannelObject, AsyncApiDocument, AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1';
|
|
2
|
+
export type ResolvedOperationChannel = {
|
|
3
|
+
channelName: string;
|
|
4
|
+
channel: AsyncApiChannelObject;
|
|
5
|
+
channelAddress: string;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Resolves an operation's channel reference to a channel name, object, and display address.
|
|
9
|
+
*/
|
|
10
|
+
export declare const resolveOperationChannel: (document: AsyncApiDocument, operation: AsyncApiOperationObject) => ResolvedOperationChannel | undefined;
|
|
11
|
+
//# sourceMappingURL=resolve-operation-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-operation-channel.d.ts","sourceRoot":"","sources":["../../src/channel-example/resolve-operation-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAKlH,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,qBAAqB,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAmBD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,KACjC,wBAAwB,GAAG,SA8B7B,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getNameFromRef } from '../helpers/get-name-from-ref.js';
|
|
2
|
+
import { getResolvedRef } from '../helpers/get-resolved-ref.js';
|
|
3
|
+
const getChannelNameFromRef = (ref) => getNameFromRef(ref, ['channels']);
|
|
4
|
+
const findChannelName = (document, channel) => {
|
|
5
|
+
if (!document.channels) {
|
|
6
|
+
return undefined;
|
|
7
|
+
}
|
|
8
|
+
for (const [channelName, channelNode] of Object.entries(document.channels)) {
|
|
9
|
+
const resolved = getResolvedRef(channelNode);
|
|
10
|
+
if (resolved === channel) {
|
|
11
|
+
return channelName;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Resolves an operation's channel reference to a channel name, object, and display address.
|
|
18
|
+
*/
|
|
19
|
+
export const resolveOperationChannel = (document, operation) => {
|
|
20
|
+
const channelNode = operation.channel;
|
|
21
|
+
if (!channelNode) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const channelNameFromRef = '$ref' in channelNode ? getChannelNameFromRef(channelNode.$ref) : undefined;
|
|
25
|
+
if (channelNameFromRef && document.channels?.[channelNameFromRef]) {
|
|
26
|
+
const channel = getResolvedRef(document.channels[channelNameFromRef]);
|
|
27
|
+
const channelAddress = typeof channel.address === 'string' && channel.address.length > 0 ? channel.address : channelNameFromRef;
|
|
28
|
+
return { channelName: channelNameFromRef, channel, channelAddress };
|
|
29
|
+
}
|
|
30
|
+
const channel = getResolvedRef(channelNode);
|
|
31
|
+
const channelName = channelNameFromRef ??
|
|
32
|
+
findChannelName(document, channel) ??
|
|
33
|
+
(typeof channel.address === 'string' && channel.address.length > 0 ? channel.address : undefined);
|
|
34
|
+
if (!channelName) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
const channelAddress = typeof channel.address === 'string' && channel.address.length > 0 ? channel.address : channelName;
|
|
38
|
+
return { channelName, channel, channelAddress };
|
|
39
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1';
|
|
2
|
+
/**
|
|
3
|
+
* Merges operation traits into a single operation view, while keeping operation fields highest priority.
|
|
4
|
+
*/
|
|
5
|
+
export declare const resolveOperationWithTraits: (operation: AsyncApiOperationObject) => AsyncApiOperationObject;
|
|
6
|
+
//# sourceMappingURL=resolve-operation-with-traits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-operation-with-traits.d.ts","sourceRoot":"","sources":["../../src/channel-example/resolve-operation-with-traits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAYzE;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,WAAW,uBAAuB,KAAG,uBAuC/E,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getResolvedRef } from '../helpers/get-resolved-ref.js';
|
|
2
|
+
const getTraitSecurity = (traits) => traits.reduce((security, traitRef) => {
|
|
3
|
+
const trait = getResolvedRef(traitRef);
|
|
4
|
+
return trait.security !== undefined ? trait.security : security;
|
|
5
|
+
}, undefined);
|
|
6
|
+
/**
|
|
7
|
+
* Merges operation traits into a single operation view, while keeping operation fields highest priority.
|
|
8
|
+
*/
|
|
9
|
+
export const resolveOperationWithTraits = (operation) => {
|
|
10
|
+
const traits = operation.traits ?? [];
|
|
11
|
+
if (traits.length === 0) {
|
|
12
|
+
return operation;
|
|
13
|
+
}
|
|
14
|
+
const traitSecurity = getTraitSecurity(traits);
|
|
15
|
+
const traitBindings = traits.reduce((accumulated, traitRef) => {
|
|
16
|
+
const trait = getResolvedRef(traitRef);
|
|
17
|
+
if (!trait.bindings) {
|
|
18
|
+
return accumulated;
|
|
19
|
+
}
|
|
20
|
+
const resolvedTraitBindings = getResolvedRef(trait.bindings);
|
|
21
|
+
return accumulated
|
|
22
|
+
? {
|
|
23
|
+
...getResolvedRef(accumulated),
|
|
24
|
+
...resolvedTraitBindings,
|
|
25
|
+
}
|
|
26
|
+
: resolvedTraitBindings;
|
|
27
|
+
}, undefined);
|
|
28
|
+
const hasOperationSecurity = operation.security !== undefined;
|
|
29
|
+
const security = operation.security ?? traitSecurity;
|
|
30
|
+
const bindings = traitBindings && operation.bindings
|
|
31
|
+
? {
|
|
32
|
+
...getResolvedRef(traitBindings),
|
|
33
|
+
...getResolvedRef(operation.bindings),
|
|
34
|
+
}
|
|
35
|
+
: (operation.bindings ?? traitBindings);
|
|
36
|
+
return {
|
|
37
|
+
...operation,
|
|
38
|
+
...(security !== undefined || hasOperationSecurity ? { security } : {}),
|
|
39
|
+
...(bindings !== operation.bindings ? { bindings } : {}),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AsyncApiChannelObject, AsyncApiDocument, AsyncApiOperationObject, AsyncApiServerObject } from '@scalar/types/asyncapi/3.1';
|
|
2
|
+
import { type BuildConnectionUrlInput } from '../channel-example/build-connection-url.js';
|
|
3
|
+
import type { WorkspaceDocument } from '../schemas/workspace.js';
|
|
4
|
+
export type AsyncApiServerListOptions = {
|
|
5
|
+
channel?: AsyncApiChannelObject | null;
|
|
6
|
+
operation?: AsyncApiOperationObject | null;
|
|
7
|
+
pathParameters?: Record<string, string>;
|
|
8
|
+
queryParameters?: Record<string, string>;
|
|
9
|
+
environmentVariables?: BuildConnectionUrlInput['environmentVariables'];
|
|
10
|
+
/** When true (default), only servers with `ws` or `wss` protocol are returned. */
|
|
11
|
+
webSocketOnly?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type AsyncApiServerEntry = {
|
|
14
|
+
/** Key in `document.servers`. */
|
|
15
|
+
name: string;
|
|
16
|
+
server: AsyncApiServerObject;
|
|
17
|
+
host: string;
|
|
18
|
+
protocol: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
/** Base URL (scheme + host + pathname) without the channel address. */
|
|
22
|
+
url: string;
|
|
23
|
+
/** Full WebSocket URL when `channel` is provided in list options. */
|
|
24
|
+
connectionUrl?: string;
|
|
25
|
+
/** Whether this server uses a WebSocket protocol (`ws` / `wss`). */
|
|
26
|
+
isWebSocket: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Returns a normalized list of AsyncAPI servers with computed base `url` and optional `connectionUrl`.
|
|
30
|
+
*/
|
|
31
|
+
export declare const getAsyncApiServers: (document: AsyncApiDocument, options?: AsyncApiServerListOptions) => AsyncApiServerEntry[];
|
|
32
|
+
/**
|
|
33
|
+
* Returns the selected AsyncAPI server entry, using `x-scalar-selected-asyncapi-server` on the document.
|
|
34
|
+
*/
|
|
35
|
+
export declare const getSelectedAsyncApiServer: (document: WorkspaceDocument | null, servers: AsyncApiServerEntry[], _operation?: AsyncApiOperationObject | null) => AsyncApiServerEntry | null;
|
|
36
|
+
//# sourceMappingURL=servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/channel-example/servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,KAAK,uBAAuB,EAI7B,MAAM,wCAAwC,CAAA;AAI/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,CAAA;IACtE,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;IACX,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AA+BD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,gBAAgB,EAC1B,UAAS,yBAA8B,KACtC,mBAAmB,EA8CrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,iBAAiB,GAAG,IAAI,EAClC,SAAS,mBAAmB,EAAE,EAC9B,aAAa,uBAAuB,GAAG,IAAI,KAC1C,mBAAmB,GAAG,IAYxB,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { objectEntries } from '@scalar/helpers/object/object-entries';
|
|
2
|
+
import { buildAsyncApiServerBaseUrl, buildConnectionUrl, isWebSocketProtocol, } from '../channel-example/build-connection-url.js';
|
|
3
|
+
import { getNameFromRef } from '../helpers/get-name-from-ref.js';
|
|
4
|
+
import { getResolvedRef } from '../helpers/get-resolved-ref.js';
|
|
5
|
+
import { isAsyncApiDocument } from '../schemas/type-guards.js';
|
|
6
|
+
const resolveServer = (server) => getResolvedRef(server);
|
|
7
|
+
const getServerNameFromRef = (ref) => getNameFromRef(ref, ['servers']);
|
|
8
|
+
/**
|
|
9
|
+
* Collects the names of `document.servers` entries that the channel is restricted to.
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when the channel does not declare `servers`, signaling that every
|
|
12
|
+
* top-level server is allowed.
|
|
13
|
+
*/
|
|
14
|
+
const getChannelServerNames = (document, channel) => {
|
|
15
|
+
if (!channel?.servers) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const names = new Set();
|
|
19
|
+
for (const serverRef of channel.servers) {
|
|
20
|
+
const name = getServerNameFromRef(serverRef.$ref);
|
|
21
|
+
if (name && document.servers?.[name]) {
|
|
22
|
+
names.add(name);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return names;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Returns a normalized list of AsyncAPI servers with computed base `url` and optional `connectionUrl`.
|
|
29
|
+
*/
|
|
30
|
+
export const getAsyncApiServers = (document, options = {}) => {
|
|
31
|
+
const { channel = null, operation = null, pathParameters = {}, queryParameters = {}, environmentVariables, webSocketOnly = true, } = options;
|
|
32
|
+
const servers = document.servers ?? {};
|
|
33
|
+
const channelServerNames = getChannelServerNames(document, channel);
|
|
34
|
+
return objectEntries(servers)
|
|
35
|
+
.filter(([name]) => channelServerNames?.has(name) ?? true)
|
|
36
|
+
.map(([name, serverRef]) => {
|
|
37
|
+
const server = resolveServer(serverRef);
|
|
38
|
+
const protocol = server.protocol.trim().toLowerCase();
|
|
39
|
+
const isWebSocket = isWebSocketProtocol(protocol);
|
|
40
|
+
const url = buildAsyncApiServerBaseUrl(server, environmentVariables);
|
|
41
|
+
const entry = {
|
|
42
|
+
name,
|
|
43
|
+
server,
|
|
44
|
+
host: server.host,
|
|
45
|
+
protocol,
|
|
46
|
+
description: server.description,
|
|
47
|
+
title: server.title,
|
|
48
|
+
url,
|
|
49
|
+
isWebSocket,
|
|
50
|
+
};
|
|
51
|
+
if (channel) {
|
|
52
|
+
entry.connectionUrl = buildConnectionUrl({
|
|
53
|
+
server,
|
|
54
|
+
channel,
|
|
55
|
+
operation,
|
|
56
|
+
pathParameters,
|
|
57
|
+
queryParameters,
|
|
58
|
+
environmentVariables,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return entry;
|
|
62
|
+
})
|
|
63
|
+
.filter((entry) => (webSocketOnly ? entry.isWebSocket : true));
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Returns the selected AsyncAPI server entry, using `x-scalar-selected-asyncapi-server` on the document.
|
|
67
|
+
*/
|
|
68
|
+
export const getSelectedAsyncApiServer = (document, servers, _operation) => {
|
|
69
|
+
if (!isAsyncApiDocument(document)) {
|
|
70
|
+
return servers[0] ?? null;
|
|
71
|
+
}
|
|
72
|
+
const selectedName = document['x-scalar-selected-server'];
|
|
73
|
+
if (selectedName == null) {
|
|
74
|
+
return servers[0] ?? null;
|
|
75
|
+
}
|
|
76
|
+
return servers.find(({ name }) => name === selectedName) ?? servers[0] ?? null;
|
|
77
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AsyncApiChannelObject } from '@scalar/types/asyncapi/3.1';
|
|
2
|
+
import type { SelectedSecurity } from '../entities/auth/index.js';
|
|
3
|
+
import type { AuthMeta } from '../events/index.js';
|
|
4
|
+
import type { SecuritySchemeObjectSecret } from '../request-example/builder/security/secret-types.js';
|
|
5
|
+
import type { MergedSecuritySchemes } from '../request-example/context/security/merge-security.js';
|
|
6
|
+
import type { XScalarEnvironment } from '../schemas/extensions/document/x-scalar-environments.js';
|
|
7
|
+
import type { SecurityRequirementObject } from '../schemas/v3.1/strict/security-requirement.js';
|
|
8
|
+
import type { ChannelMessageEntry } from './get-all-channel-messages.js';
|
|
9
|
+
import type { ChannelOperationSummary } from './get-channel-operations.js';
|
|
10
|
+
import type { ChannelParametersContext } from './get-channel-parameters.js';
|
|
11
|
+
import type { AsyncApiServerEntry } from './servers.js';
|
|
12
|
+
export type ChannelConnectionMeta = {
|
|
13
|
+
channelName: string;
|
|
14
|
+
};
|
|
15
|
+
export type BuildChannelConnectionContext = {
|
|
16
|
+
channel: AsyncApiChannelObject;
|
|
17
|
+
channelName: string;
|
|
18
|
+
channelAddress: string;
|
|
19
|
+
/** Operations on this channel from the AsyncAPI description (reference only). */
|
|
20
|
+
operations: ChannelOperationSummary[];
|
|
21
|
+
messages: ChannelMessageEntry[];
|
|
22
|
+
selectedMessage: ChannelMessageEntry | null;
|
|
23
|
+
servers: {
|
|
24
|
+
list: AsyncApiServerEntry[];
|
|
25
|
+
selected: AsyncApiServerEntry | null;
|
|
26
|
+
};
|
|
27
|
+
connectionUrl: string;
|
|
28
|
+
parameters: ChannelParametersContext;
|
|
29
|
+
security: {
|
|
30
|
+
schemes: MergedSecuritySchemes;
|
|
31
|
+
requirements: SecurityRequirementObject[];
|
|
32
|
+
selected: SelectedSecurity;
|
|
33
|
+
selectedSchemes: SecuritySchemeObjectSecret[];
|
|
34
|
+
meta: AuthMeta;
|
|
35
|
+
};
|
|
36
|
+
environment: {
|
|
37
|
+
name: string | null;
|
|
38
|
+
environment: XScalarEnvironment;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channel-example/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AACjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AAC9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AAE3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAEpD,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,OAAO,EAAE,qBAAqB,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,iFAAiF;IACjF,UAAU,EAAE,uBAAuB,EAAE,CAAA;IACrC,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B,eAAe,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAC3C,OAAO,EAAE;QACP,IAAI,EAAE,mBAAmB,EAAE,CAAA;QAC3B,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAA;KACrC,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,wBAAwB,CAAA;IACpC,QAAQ,EAAE;QACR,OAAO,EAAE,qBAAqB,CAAA;QAC9B,YAAY,EAAE,yBAAyB,EAAE,CAAA;QACzC,QAAQ,EAAE,gBAAgB,CAAA;QAC1B,eAAe,EAAE,0BAA0B,EAAE,CAAA;QAC7C,IAAI,EAAE,QAAQ,CAAA;KACf,CAAA;IACD,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,WAAW,EAAE,kBAAkB,CAAA;KAChC,CAAA;CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
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
|
@@ -22,7 +22,7 @@ import { getFetch } from './helpers/get-fetch.js';
|
|
|
22
22
|
import { mergeObjects } from './helpers/merge-object.js';
|
|
23
23
|
import { createOverridesProxy } from './helpers/overrides-proxy.js';
|
|
24
24
|
import { unpackProxyObject } from './helpers/unpack-proxy.js';
|
|
25
|
-
import { createNavigation } from './navigation/index.js';
|
|
25
|
+
import { createNavigation, traverseAsyncApiDocument } from './navigation/index.js';
|
|
26
26
|
import { externalValueResolver, loadingStatus, normalizeAuthSchemes, normalizeRefs, refsEverywhere, removeExtraScalarKeys, restoreOriginalRefs, syncPathParameters, } from './plugins/bundler/index.js';
|
|
27
27
|
import { extensions } from './schemas/extensions.js';
|
|
28
28
|
import { isAsyncApiDocument, isOpenApiDocument } from './schemas/type-guards.js';
|
|
@@ -456,13 +456,9 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
456
456
|
if (workspaceProps?.fileLoader) {
|
|
457
457
|
loaders.push(workspaceProps.fileLoader);
|
|
458
458
|
}
|
|
459
|
-
// AsyncAPI ingestion: skip the OpenAPI-specific upgrade
|
|
460
|
-
//
|
|
461
|
-
//
|
|
462
|
-
// discriminator. Reference resolution and navigation generation for
|
|
463
|
-
// AsyncAPI are out of scope for the MVP — only the workspace-store
|
|
464
|
-
// managed metadata (source url, document hash, spec version) is set so
|
|
465
|
-
// change detection on rebase can compare hashes correctly.
|
|
459
|
+
// AsyncAPI ingestion: skip the OpenAPI-specific upgrade and validation pipeline.
|
|
460
|
+
// The OpenAPI `coerce` step would otherwise inject an empty `openapi: ''` field
|
|
461
|
+
// and break the type discriminator.
|
|
466
462
|
if (isAsyncApiDocument(clonedRawInputDocument)) {
|
|
467
463
|
const asyncApiDocument = createMagicProxy({
|
|
468
464
|
...clonedRawInputDocument,
|
|
@@ -480,6 +476,10 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
480
476
|
// We coerce the values only when the document is not preprocessed by the server-side-store
|
|
481
477
|
const coerced = withMeasurementSync('coerceValue', () => coerce(asyncApiObjectSchema, deepClone(getRaw(asyncApiDocument))));
|
|
482
478
|
withMeasurementSync('mergeObjects', () => mergeObjects(asyncApiDocument, coerced));
|
|
479
|
+
if (asyncApiDocument[extensions.document.navigation] === undefined) {
|
|
480
|
+
const navigation = traverseAsyncApiDocument(name, asyncApiDocument, navigationOptions);
|
|
481
|
+
asyncApiDocument[extensions.document.navigation] = navigation;
|
|
482
|
+
}
|
|
483
483
|
workspace.documents[name] = createOverridesProxy(asyncApiDocument, {
|
|
484
484
|
overrides: unpackProxyObject(overrides[name]),
|
|
485
485
|
});
|