@scalar/workspace-store 0.41.2 → 0.43.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 +21 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -1
- package/dist/events/definitions/operation.d.ts +6 -1
- package/dist/events/definitions/operation.d.ts.map +1 -1
- package/dist/events/definitions/server.d.ts +5 -1
- package/dist/events/definitions/server.d.ts.map +1 -1
- package/dist/events/definitions/ui.d.ts +5 -3
- package/dist/events/definitions/ui.d.ts.map +1 -1
- package/dist/helpers/get-resolved-ref-deep.d.ts +27 -0
- package/dist/helpers/get-resolved-ref-deep.d.ts.map +1 -0
- package/dist/helpers/get-resolved-ref-deep.js +49 -0
- package/dist/mutators/operation/operation.d.ts +1 -1
- package/dist/mutators/operation/operation.d.ts.map +1 -1
- package/dist/mutators/operation/operation.js +4 -4
- package/dist/mutators/server.d.ts +1 -1
- package/dist/mutators/server.d.ts.map +1 -1
- package/dist/mutators/server.js +5 -2
- package/dist/navigation/helpers/traverse-description.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-description.js +19 -21
- package/dist/navigation/helpers/utils.js +2 -2
- package/dist/request-example/builder/body/build-request-body.d.ts +42 -0
- package/dist/request-example/builder/body/build-request-body.d.ts.map +1 -0
- package/dist/request-example/builder/body/build-request-body.js +134 -0
- package/dist/request-example/builder/body/get-request-body-example.d.ts +6 -0
- package/dist/request-example/builder/body/get-request-body-example.d.ts.map +1 -0
- package/dist/request-example/builder/body/get-request-body-example.js +31 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.d.ts +10 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.d.ts.map +1 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.js +10 -0
- package/dist/request-example/builder/build-request.d.ts +9 -0
- package/dist/request-example/builder/build-request.d.ts.map +1 -0
- package/dist/request-example/builder/build-request.js +135 -0
- package/dist/request-example/builder/header/build-request-cookie-header.d.ts +25 -0
- package/dist/request-example/builder/header/build-request-cookie-header.d.ts.map +1 -0
- package/dist/request-example/builder/header/build-request-cookie-header.js +39 -0
- package/dist/request-example/builder/header/build-request-parameters.d.ts +24 -0
- package/dist/request-example/builder/header/build-request-parameters.d.ts.map +1 -0
- package/dist/request-example/builder/header/build-request-parameters.js +215 -0
- package/dist/request-example/builder/header/de-serialize-parameter.d.ts +4 -0
- package/dist/request-example/builder/header/de-serialize-parameter.d.ts.map +1 -0
- package/dist/request-example/builder/header/de-serialize-parameter.js +49 -0
- package/dist/request-example/builder/header/filter-global-cookies.d.ts +14 -0
- package/dist/request-example/builder/header/filter-global-cookies.d.ts.map +1 -0
- package/dist/request-example/builder/header/filter-global-cookies.js +26 -0
- package/dist/request-example/builder/header/is-param-disabled.d.ts +13 -0
- package/dist/request-example/builder/header/is-param-disabled.d.ts.map +1 -0
- package/dist/request-example/builder/header/is-param-disabled.js +19 -0
- package/dist/request-example/builder/header/matches-domain.d.ts +9 -0
- package/dist/request-example/builder/header/matches-domain.d.ts.map +1 -0
- package/dist/request-example/builder/header/matches-domain.js +27 -0
- package/dist/request-example/builder/header/serialize-parameter.d.ts +96 -0
- package/dist/request-example/builder/header/serialize-parameter.d.ts.map +1 -0
- package/dist/request-example/builder/header/serialize-parameter.js +222 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.d.ts +6 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.js +69 -0
- package/dist/request-example/builder/helpers/get-environment-variables.d.ts +9 -0
- package/dist/request-example/builder/helpers/get-environment-variables.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-environment-variables.js +12 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts +40 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.js +568 -0
- package/dist/request-example/builder/helpers/get-example.d.ts +10 -0
- package/dist/request-example/builder/helpers/get-example.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-example.js +66 -0
- package/dist/request-example/builder/helpers/get-resolved-url.d.ts +20 -0
- package/dist/request-example/builder/helpers/get-resolved-url.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-resolved-url.js +19 -0
- package/dist/request-example/builder/helpers/get-server-variables.d.ts +10 -0
- package/dist/request-example/builder/helpers/get-server-variables.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-server-variables.js +19 -0
- package/dist/request-example/builder/index.d.ts +15 -0
- package/dist/request-example/builder/index.d.ts.map +1 -0
- package/dist/request-example/builder/index.js +13 -0
- package/dist/request-example/builder/request-factory.d.ts +60 -0
- package/dist/request-example/builder/request-factory.d.ts.map +1 -0
- package/dist/request-example/builder/request-factory.js +78 -0
- package/dist/request-example/builder/security/build-request-security.d.ts +24 -0
- package/dist/request-example/builder/security/build-request-security.d.ts.map +1 -0
- package/dist/request-example/builder/security/build-request-security.js +79 -0
- package/dist/request-example/builder/security/secret-types.d.ts +25 -0
- package/dist/request-example/builder/security/secret-types.d.ts.map +1 -0
- package/dist/request-example/builder/security/secret-types.js +1 -0
- package/dist/request-example/context/environment.d.ts +21 -0
- package/dist/request-example/context/environment.d.ts.map +1 -0
- package/dist/request-example/context/environment.js +49 -0
- package/dist/request-example/context/get-request-example-context.d.ts +57 -0
- package/dist/request-example/context/get-request-example-context.d.ts.map +1 -0
- package/dist/request-example/context/get-request-example-context.js +115 -0
- package/dist/request-example/context/headers.d.ts +33 -0
- package/dist/request-example/context/headers.d.ts.map +1 -0
- package/dist/request-example/context/headers.js +54 -0
- package/dist/request-example/context/helpers/combine-params.d.ts +4 -0
- package/dist/request-example/context/helpers/combine-params.d.ts.map +1 -0
- package/dist/request-example/context/helpers/combine-params.js +21 -0
- package/dist/request-example/context/index.d.ts +12 -0
- package/dist/request-example/context/index.d.ts.map +1 -0
- package/dist/request-example/context/index.js +10 -0
- package/dist/request-example/context/proxy.d.ts +18 -0
- package/dist/request-example/context/proxy.d.ts.map +1 -0
- package/dist/request-example/context/proxy.js +26 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts +10 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts.map +1 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.js +167 -0
- package/dist/request-example/context/security/get-security-requirements.d.ts +12 -0
- package/dist/request-example/context/security/get-security-requirements.d.ts.map +1 -0
- package/dist/request-example/context/security/get-security-requirements.js +16 -0
- package/dist/request-example/context/security/get-security-schemes.d.ts +9 -0
- package/dist/request-example/context/security/get-security-schemes.d.ts.map +1 -0
- package/dist/request-example/context/security/get-security-schemes.js +13 -0
- package/dist/request-example/context/security/get-selected-security.d.ts +15 -0
- package/dist/request-example/context/security/get-selected-security.d.ts.map +1 -0
- package/dist/request-example/context/security/get-selected-security.js +49 -0
- package/dist/request-example/context/security/is-auth-optional.d.ts +4 -0
- package/dist/request-example/context/security/is-auth-optional.d.ts.map +1 -0
- package/dist/request-example/context/security/is-auth-optional.js +6 -0
- package/dist/request-example/context/security/merge-security.d.ts +9 -0
- package/dist/request-example/context/security/merge-security.d.ts.map +1 -0
- package/dist/request-example/context/security/merge-security.js +29 -0
- package/dist/request-example/context/servers.d.ts +26 -0
- package/dist/request-example/context/servers.d.ts.map +1 -0
- package/dist/request-example/context/servers.js +89 -0
- package/dist/request-example/index.d.ts +5 -0
- package/dist/request-example/index.d.ts.map +1 -0
- package/dist/request-example/index.js +2 -0
- package/dist/request-example/types.d.ts +14 -0
- package/dist/request-example/types.d.ts.map +1 -0
- package/dist/request-example/types.js +1 -0
- package/dist/schemas/extensions/document/x-internal.d.ts +3 -0
- package/dist/schemas/extensions/document/x-internal.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-internal.js +7 -0
- package/dist/schemas/extensions/document/x-scalar-environments.d.ts +31 -0
- package/dist/schemas/extensions/document/x-scalar-environments.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-environments.js +25 -0
- package/dist/schemas/extensions/document/x-scalar-icon.d.ts +3 -0
- package/dist/schemas/extensions/document/x-scalar-icon.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-icon.js +7 -0
- package/dist/schemas/extensions/document/x-scalar-ignore.d.ts +4 -1
- package/dist/schemas/extensions/document/x-scalar-ignore.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-ignore.js +7 -0
- package/dist/schemas/extensions/document/x-scalar-is-dirty.d.ts +3 -0
- package/dist/schemas/extensions/document/x-scalar-is-dirty.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-is-dirty.js +9 -0
- package/dist/schemas/extensions/document/x-scalar-original-document-hash.d.ts +3 -0
- package/dist/schemas/extensions/document/x-scalar-original-document-hash.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-original-document-hash.js +7 -0
- package/dist/schemas/extensions/document/x-scalar-registry-meta.d.ts +6 -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 +25 -10
- package/dist/schemas/extensions/document/x-scalar-sdk-installation.d.ts +7 -0
- package/dist/schemas/extensions/document/x-scalar-sdk-installation.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-sdk-installation.js +23 -5
- package/dist/schemas/extensions/document/x-scalar-watch-mode.d.ts +3 -0
- package/dist/schemas/extensions/document/x-scalar-watch-mode.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-scalar-watch-mode.js +7 -0
- package/dist/schemas/extensions/document/x-tags.d.ts +4 -1
- package/dist/schemas/extensions/document/x-tags.d.ts.map +1 -1
- package/dist/schemas/extensions/document/x-tags.js +8 -1
- package/dist/schemas/extensions/example/x-disabled.d.ts +7 -1
- package/dist/schemas/extensions/example/x-disabled.d.ts.map +1 -1
- package/dist/schemas/extensions/example/x-disabled.js +8 -1
- package/dist/schemas/extensions/general/x-scalar-active-environment.d.ts +3 -0
- package/dist/schemas/extensions/general/x-scalar-active-environment.d.ts.map +1 -1
- package/dist/schemas/extensions/general/x-scalar-active-environment.js +7 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.d.ts +16 -0
- package/dist/schemas/extensions/general/x-scalar-cookies.d.ts.map +1 -1
- package/dist/schemas/extensions/general/x-scalar-cookies.js +19 -0
- package/dist/schemas/extensions/general/x-scalar-order.d.ts +3 -0
- package/dist/schemas/extensions/general/x-scalar-order.d.ts.map +1 -1
- package/dist/schemas/extensions/general/x-scalar-order.js +7 -0
- package/dist/schemas/extensions/operation/index.d.ts +2 -1
- package/dist/schemas/extensions/operation/index.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/index.js +1 -0
- package/dist/schemas/extensions/operation/x-badge.d.ts +12 -0
- package/dist/schemas/extensions/operation/x-badge.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-badge.js +23 -0
- package/dist/schemas/extensions/operation/x-code-samples.d.ts +22 -0
- package/dist/schemas/extensions/operation/x-code-samples.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-code-samples.js +17 -0
- package/dist/schemas/extensions/operation/x-draft-examples.d.ts +3 -0
- package/dist/schemas/extensions/operation/x-draft-examples.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-draft-examples.js +7 -0
- package/dist/schemas/extensions/operation/x-post-response.d.ts +3 -0
- package/dist/schemas/extensions/operation/x-post-response.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-post-response.js +9 -0
- package/dist/schemas/extensions/operation/x-scalar-disable-parameters.d.ts +9 -0
- package/dist/schemas/extensions/operation/x-scalar-disable-parameters.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-scalar-disable-parameters.js +17 -0
- package/dist/schemas/extensions/operation/x-scalar-selected-content-type.d.ts +3 -0
- package/dist/schemas/extensions/operation/x-scalar-selected-content-type.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-scalar-selected-content-type.js +9 -0
- package/dist/schemas/extensions/operation/x-scalar-stability.d.ts +3 -0
- package/dist/schemas/extensions/operation/x-scalar-stability.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/x-scalar-stability.js +9 -0
- package/dist/schemas/extensions/parameter/x-global.d.ts +7 -1
- package/dist/schemas/extensions/parameter/x-global.d.ts.map +1 -1
- package/dist/schemas/extensions/parameter/x-global.js +8 -1
- package/dist/schemas/extensions/schema/x-additional-properties-name.d.ts +3 -0
- package/dist/schemas/extensions/schema/x-additional-properties-name.d.ts.map +1 -1
- package/dist/schemas/extensions/schema/x-additional-properties-name.js +7 -0
- package/dist/schemas/extensions/schema/x-enum-descriptions.d.ts +4 -0
- package/dist/schemas/extensions/schema/x-enum-descriptions.d.ts.map +1 -1
- package/dist/schemas/extensions/schema/x-enum-descriptions.js +9 -0
- package/dist/schemas/extensions/schema/x-enum-varnames.d.ts +4 -0
- package/dist/schemas/extensions/schema/x-enum-varnames.d.ts.map +1 -1
- package/dist/schemas/extensions/schema/x-enum-varnames.js +8 -0
- package/dist/schemas/extensions/schema/x-examples.d.ts +3 -0
- package/dist/schemas/extensions/schema/x-examples.d.ts.map +1 -1
- package/dist/schemas/extensions/schema/x-examples.js +7 -0
- package/dist/schemas/extensions/schema/x-variable.d.ts +3 -0
- package/dist/schemas/extensions/schema/x-variable.d.ts.map +1 -1
- package/dist/schemas/extensions/schema/x-variable.js +7 -0
- package/dist/schemas/extensions/security/x-default-scopes.d.ts +3 -0
- package/dist/schemas/extensions/security/x-default-scopes.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-default-scopes.js +7 -0
- package/dist/schemas/extensions/security/x-scalar-credentials-location.d.ts +3 -0
- package/dist/schemas/extensions/security/x-scalar-credentials-location.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-scalar-credentials-location.js +7 -0
- package/dist/schemas/extensions/security/x-scalar-security-body.d.ts +3 -0
- package/dist/schemas/extensions/security/x-scalar-security-body.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-scalar-security-body.js +7 -0
- package/dist/schemas/extensions/security/x-scalar-security-query.d.ts +3 -0
- package/dist/schemas/extensions/security/x-scalar-security-query.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-scalar-security-query.js +7 -0
- package/dist/schemas/extensions/security/x-scalar-security-secrets.d.ts +25 -0
- package/dist/schemas/extensions/security/x-scalar-security-secrets.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-scalar-security-secrets.js +50 -0
- package/dist/schemas/extensions/security/x-tokenName.d.ts +3 -0
- package/dist/schemas/extensions/security/x-tokenName.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-tokenName.js +7 -0
- package/dist/schemas/extensions/security/x-use-pkce.d.ts +3 -0
- package/dist/schemas/extensions/security/x-use-pkce.d.ts.map +1 -1
- package/dist/schemas/extensions/security/x-use-pkce.js +9 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts +3 -0
- package/dist/schemas/extensions/server/x-scalar-selected-server.d.ts.map +1 -1
- package/dist/schemas/extensions/server/x-scalar-selected-server.js +7 -0
- package/dist/schemas/extensions/tag/x-display-name.d.ts +3 -0
- package/dist/schemas/extensions/tag/x-display-name.d.ts.map +1 -1
- package/dist/schemas/extensions/tag/x-display-name.js +7 -0
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts +14 -0
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts.map +1 -1
- package/dist/schemas/extensions/tag/x-tag-groups.js +22 -1
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts +3 -0
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.d.ts.map +1 -1
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js +7 -0
- package/dist/schemas/extensions/workspace/x-scalar-tabs.d.ts +13 -0
- package/dist/schemas/extensions/workspace/x-scalar-tabs.d.ts.map +1 -1
- package/dist/schemas/extensions/workspace/x-scalar-tabs.js +20 -0
- package/dist/schemas/v3.1/openapi/index.d.ts +112 -0
- package/dist/schemas/v3.1/openapi/index.d.ts.map +1 -0
- package/dist/schemas/v3.1/openapi/index.js +645 -0
- package/dist/schemas/v3.1/openapi/reference.d.ts +4 -0
- package/dist/schemas/v3.1/openapi/reference.d.ts.map +1 -0
- package/dist/schemas/v3.1/openapi/reference.js +29 -0
- package/dist/schemas/v3.1/strict/example.js +2 -2
- package/dist/schemas/v3.1/strict/parameter.js +2 -2
- package/dist/schemas/v3.1/strict/schema.d.ts +1 -1
- package/dist/schemas/v3.1/strict/schema.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/schema.js +2 -2
- package/package.json +16 -9
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { replaceVariables } from '@scalar/helpers/regex/replace-variables';
|
|
2
|
+
import { mergeUrls } from '@scalar/helpers/url/merge-urls';
|
|
3
|
+
import { getServerVariables } from '../../../request-example/builder/helpers/get-server-variables.js';
|
|
4
|
+
/**
|
|
5
|
+
* Resolves the full request URL by:
|
|
6
|
+
* 1. Applying OpenAPI server variables to the server URL template.
|
|
7
|
+
* 2. Merging the resolved server URL with the OpenAPI path and optional URL parameters.
|
|
8
|
+
* 3. Applying "allowReserved" query parameter logic if needed (for RFC3986 reserved chars).
|
|
9
|
+
*
|
|
10
|
+
* @param server - The OpenAPI server object or null
|
|
11
|
+
* @param path - The OpenAPI operation path (may contain {variables})
|
|
12
|
+
* @param urlParams - Optional URLSearchParams to include as query parameters
|
|
13
|
+
* @param allowReservedQueryParameters - Optional set of parameter names for which reserved characters should not be percent-encoded
|
|
14
|
+
* @returns The resolved URL as a string
|
|
15
|
+
*/
|
|
16
|
+
export const getResolvedUrl = ({ server, path, urlParams, }) => {
|
|
17
|
+
const serverVariables = getServerVariables(server);
|
|
18
|
+
return mergeUrls(replaceVariables(server?.url ?? '', serverVariables), path, urlParams);
|
|
19
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ServerObject } from '../../../schemas/v3.1/strict/server.js';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the default values of variables defined in a ServerObject into a simple key-value map.
|
|
4
|
+
* Ignores variables with no default value.
|
|
5
|
+
*
|
|
6
|
+
* @param server The OpenAPI ServerObject (may be null).
|
|
7
|
+
* @returns Record of variableName -> defaultValue.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getServerVariables: (server: ServerObject | null) => Record<string, string>;
|
|
10
|
+
//# sourceMappingURL=get-server-variables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-server-variables.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/helpers/get-server-variables.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,GAAG,IAAI,2BAU7D,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { objectEntries } from '@scalar/helpers/object/object-entries';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the default values of variables defined in a ServerObject into a simple key-value map.
|
|
4
|
+
* Ignores variables with no default value.
|
|
5
|
+
*
|
|
6
|
+
* @param server The OpenAPI ServerObject (may be null).
|
|
7
|
+
* @returns Record of variableName -> defaultValue.
|
|
8
|
+
*/
|
|
9
|
+
export const getServerVariables = (server) => {
|
|
10
|
+
if (!server) {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
return objectEntries(server?.variables ?? {}).reduce((acc, [name, variable]) => {
|
|
14
|
+
if (variable.default) {
|
|
15
|
+
acc[name] = variable.default;
|
|
16
|
+
}
|
|
17
|
+
return acc;
|
|
18
|
+
}, {});
|
|
19
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { getExampleFromBody } from './body/get-request-body-example.js';
|
|
2
|
+
export { getSelectedBodyContentType } from './body/get-selected-body-content-type.js';
|
|
3
|
+
export { buildRequest } from './build-request.js';
|
|
4
|
+
export { deSerializeParameter } from './header/de-serialize-parameter.js';
|
|
5
|
+
export { filterGlobalCookie } from './header/filter-global-cookies.js';
|
|
6
|
+
export { serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
|
|
7
|
+
export { getEnvironmentVariables } from './helpers/get-environment-variables.js';
|
|
8
|
+
export { getExample } from './helpers/get-example.js';
|
|
9
|
+
export { getExampleFromSchema } from './helpers/get-example-from-schema.js';
|
|
10
|
+
export { getResolvedUrl } from './helpers/get-resolved-url.js';
|
|
11
|
+
export { getServerVariables } from './helpers/get-server-variables.js';
|
|
12
|
+
export { requestFactory } from './request-factory.js';
|
|
13
|
+
export { buildRequestSecurity } from './security/build-request-security.js';
|
|
14
|
+
export type { ApiKeyObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, SecuritySchemeObjectSecret, } from './security/secret-types.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { getExampleFromBody } from './body/get-request-body-example.js';
|
|
2
|
+
export { getSelectedBodyContentType } from './body/get-selected-body-content-type.js';
|
|
3
|
+
export { buildRequest } from './build-request.js';
|
|
4
|
+
export { deSerializeParameter } from './header/de-serialize-parameter.js';
|
|
5
|
+
export { filterGlobalCookie } from './header/filter-global-cookies.js';
|
|
6
|
+
export { serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
|
|
7
|
+
export { getEnvironmentVariables } from './helpers/get-environment-variables.js';
|
|
8
|
+
export { getExample } from './helpers/get-example.js';
|
|
9
|
+
export { getExampleFromSchema } from './helpers/get-example-from-schema.js';
|
|
10
|
+
export { getResolvedUrl } from './helpers/get-resolved-url.js';
|
|
11
|
+
export { getServerVariables } from './helpers/get-server-variables.js';
|
|
12
|
+
export { requestFactory } from './request-factory.js';
|
|
13
|
+
export { buildRequestSecurity } from './security/build-request-security.js';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments';
|
|
2
|
+
import type { XScalarCookie } from '@scalar/workspace-store/schemas/extensions/general/x-scalar-cookies';
|
|
3
|
+
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
|
|
4
|
+
import type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/operation';
|
|
5
|
+
import { type BuildRequestSecurityResult } from '../../request-example/builder/security/build-request-security.js';
|
|
6
|
+
import type { SecuritySchemeObjectSecret } from '../../request-example/builder/security/secret-types.js';
|
|
7
|
+
import type { RequestExampleMeta } from '../../request-example/types.js';
|
|
8
|
+
import { type RequestBody } from './body/build-request-body.js';
|
|
9
|
+
export type RequestFactory = {
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
path: {
|
|
12
|
+
variables: Record<string, string>;
|
|
13
|
+
raw: string;
|
|
14
|
+
};
|
|
15
|
+
method: string;
|
|
16
|
+
proxy: {
|
|
17
|
+
proxyUrl: string;
|
|
18
|
+
};
|
|
19
|
+
query: {
|
|
20
|
+
params: URLSearchParams;
|
|
21
|
+
};
|
|
22
|
+
headers: Headers;
|
|
23
|
+
body: RequestBody | null;
|
|
24
|
+
cookies: {
|
|
25
|
+
list: XScalarCookie[];
|
|
26
|
+
};
|
|
27
|
+
cache: RequestCache;
|
|
28
|
+
security: BuildRequestSecurityResult[];
|
|
29
|
+
allowedReservedQueryParameters?: Set<string>;
|
|
30
|
+
options?: {
|
|
31
|
+
isElectron?: boolean;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Builds a request object fastory which can be used to build a request object.
|
|
36
|
+
* @returns A request object factory
|
|
37
|
+
*/
|
|
38
|
+
export declare const requestFactory: ({ exampleName, globalCookies, method, operation, path, proxyUrl, server, defaultHeaders, isElectron, selectedSecuritySchemes, requestBodyCompositionSelection, }: RequestExampleMeta & {
|
|
39
|
+
/** The operation object */
|
|
40
|
+
operation: OperationObject;
|
|
41
|
+
/** For environment variables in the inputs */
|
|
42
|
+
environment: XScalarEnvironment;
|
|
43
|
+
/** Workspace + document cookies */
|
|
44
|
+
globalCookies: XScalarCookie[];
|
|
45
|
+
/** The proxy URL for cookie domain determination */
|
|
46
|
+
proxyUrl: string;
|
|
47
|
+
/** The server object */
|
|
48
|
+
server: ServerObject | null;
|
|
49
|
+
/** Default headers */
|
|
50
|
+
defaultHeaders: Record<string, string>;
|
|
51
|
+
/** Whether the request is being made from an Electron environment */
|
|
52
|
+
isElectron: boolean;
|
|
53
|
+
/** The selected security schemes for the current operation */
|
|
54
|
+
selectedSecuritySchemes: SecuritySchemeObjectSecret[];
|
|
55
|
+
/** Selected anyOf/oneOf request-body variants keyed by schema path */
|
|
56
|
+
requestBodyCompositionSelection?: Record<string, number>;
|
|
57
|
+
}) => {
|
|
58
|
+
request: RequestFactory;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=request-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-factory.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/request-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qEAAqE,CAAA;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAG5F,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,2DAA2D,CAAA;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,2BAA2B,CAAA;AAG9E,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,KAAK,EAAE;QACL,MAAM,EAAE,eAAe,CAAA;KACxB,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE;QACP,IAAI,EAAE,aAAa,EAAE,CAAA;KACtB,CAAA;IACD,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,0BAA0B,EAAE,CAAA;IACtC,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAA;KACrB,CAAA;CACF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,kKAY5B,kBAAkB,GAAG;IACtB,2BAA2B;IAC3B,SAAS,EAAE,eAAe,CAAA;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mCAAmC;IACnC,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAA;IACnB,8DAA8D;IAC9D,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzD,KAAG;IACF,OAAO,EAAE,cAAc,CAAA;CA+ExB,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { canMethodHaveBody } from '@scalar/helpers/http/can-method-have-body';
|
|
2
|
+
import { replacePathVariables } from '@scalar/helpers/regex/replace-variables';
|
|
3
|
+
import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref';
|
|
4
|
+
import { getServerVariables } from '../../request-example/builder/helpers/get-server-variables.js';
|
|
5
|
+
import { buildRequestSecurity, } from '../../request-example/builder/security/build-request-security.js';
|
|
6
|
+
import { buildRequestBody } from './body/build-request-body.js';
|
|
7
|
+
import { buildRequestParameters } from './header/build-request-parameters.js';
|
|
8
|
+
/**
|
|
9
|
+
* Builds a request object fastory which can be used to build a request object.
|
|
10
|
+
* @returns A request object factory
|
|
11
|
+
*/
|
|
12
|
+
export const requestFactory = ({ exampleName, globalCookies, method, operation, path, proxyUrl, server, defaultHeaders, isElectron, selectedSecuritySchemes, requestBodyCompositionSelection, }) => {
|
|
13
|
+
const requestBody = getResolvedRef(operation.requestBody);
|
|
14
|
+
/** Build out the request parameters */
|
|
15
|
+
const params = buildRequestParameters(operation.parameters ?? [], exampleName);
|
|
16
|
+
const security = buildRequestSecurity(selectedSecuritySchemes);
|
|
17
|
+
const headers = new Headers({ ...defaultHeaders, ...params.headers });
|
|
18
|
+
// If the method can have a body, build the request body, otherwise set it to null
|
|
19
|
+
const body = canMethodHaveBody(method)
|
|
20
|
+
? buildRequestBody(requestBody, exampleName, requestBodyCompositionSelection)
|
|
21
|
+
: null;
|
|
22
|
+
// Delete the Content-Type header so the browser will set it automatically based on the request body
|
|
23
|
+
if (body?.mode === 'formdata' || body?.mode === 'urlencoded') {
|
|
24
|
+
headers.delete('Content-Type');
|
|
25
|
+
}
|
|
26
|
+
/** Combine the server url, path and url params into a single url */
|
|
27
|
+
const serverVariables = getServerVariables(server);
|
|
28
|
+
const baseUrl = replacePathVariables(server?.url ?? '', serverVariables);
|
|
29
|
+
// If we are running in Electron, we need to add a custom header
|
|
30
|
+
// that's then forwarded as a `User-Agent` header.
|
|
31
|
+
const userAgentHeader = headers.get('User-Agent');
|
|
32
|
+
if (isElectron && userAgentHeader) {
|
|
33
|
+
headers.set('X-Scalar-User-Agent', userAgentHeader);
|
|
34
|
+
}
|
|
35
|
+
const globalCookieFilter = operation['x-scalar-disable-parameters']?.['global-cookies']?.[exampleName] ?? {};
|
|
36
|
+
const cookiesList = [
|
|
37
|
+
...globalCookies.map((c) => ({
|
|
38
|
+
...c,
|
|
39
|
+
isDisabled: (c.isDisabled || globalCookieFilter[c.name.toLowerCase()]) ?? false,
|
|
40
|
+
})),
|
|
41
|
+
...params.cookies,
|
|
42
|
+
];
|
|
43
|
+
const acceptHeader = headers.get('Accept');
|
|
44
|
+
const isSseAcceptHeader = acceptHeader?.toLowerCase().includes('text/event-stream') ?? false;
|
|
45
|
+
const requestCacheMode = isSseAcceptHeader ? 'no-store' : 'default';
|
|
46
|
+
if (isSseAcceptHeader) {
|
|
47
|
+
headers.set('Cache-Control', 'no-cache');
|
|
48
|
+
headers.set('Pragma', 'no-cache');
|
|
49
|
+
}
|
|
50
|
+
const request = {
|
|
51
|
+
baseUrl,
|
|
52
|
+
proxy: {
|
|
53
|
+
proxyUrl,
|
|
54
|
+
},
|
|
55
|
+
path: {
|
|
56
|
+
variables: params.pathVariables,
|
|
57
|
+
raw: path,
|
|
58
|
+
},
|
|
59
|
+
query: {
|
|
60
|
+
params: params.urlParams,
|
|
61
|
+
},
|
|
62
|
+
method: method.toUpperCase(),
|
|
63
|
+
headers,
|
|
64
|
+
body,
|
|
65
|
+
cookies: {
|
|
66
|
+
list: cookiesList,
|
|
67
|
+
},
|
|
68
|
+
cache: requestCacheMode,
|
|
69
|
+
security,
|
|
70
|
+
options: {
|
|
71
|
+
isElectron,
|
|
72
|
+
},
|
|
73
|
+
allowedReservedQueryParameters: params.allowReservedQueryParameters,
|
|
74
|
+
};
|
|
75
|
+
return {
|
|
76
|
+
request,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SecuritySchemeObjectSecret } from '../../../request-example/builder/security/secret-types.js';
|
|
2
|
+
export type BuildRequestSecurityResult = {
|
|
3
|
+
/** The location of the security scheme */
|
|
4
|
+
in: 'header' | 'query' | 'cookie';
|
|
5
|
+
/** The name of the security scheme */
|
|
6
|
+
name: string;
|
|
7
|
+
/** The type of security scheme */
|
|
8
|
+
type: 'simple' | 'basic' | 'bearer';
|
|
9
|
+
/**
|
|
10
|
+
* The value of the security scheme
|
|
11
|
+
* For basic auth we need to base64 encode the value when we build the request
|
|
12
|
+
*/
|
|
13
|
+
value: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Generates the headers, cookies and query params for selected security schemes
|
|
17
|
+
* In the future we can add customization for where the security is applied
|
|
18
|
+
*/
|
|
19
|
+
export declare const buildRequestSecurity: (
|
|
20
|
+
/** Currently selected security for the current operation */
|
|
21
|
+
selectedSecuritySchemes: SecuritySchemeObjectSecret[],
|
|
22
|
+
/** Include this parameter to set the placeholder for empty tokens */
|
|
23
|
+
emptyTokenPlaceholder?: string) => BuildRequestSecurityResult[];
|
|
24
|
+
//# sourceMappingURL=build-request-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-request-security.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/security/build-request-security.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AAEjG,MAAM,MAAM,0BAA0B,GAAG;IACvC,0CAA0C;IAC1C,EAAE,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;AAC/B,4DAA4D;AAC5D,yBAAyB,0BAA0B,EAAE;AACrD,qEAAqE;AACrE,8BAA0B,KACzB,0BAA0B,EA6E5B,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { isDefined } from '@scalar/helpers/array/is-defined';
|
|
2
|
+
/**
|
|
3
|
+
* Generates the headers, cookies and query params for selected security schemes
|
|
4
|
+
* In the future we can add customization for where the security is applied
|
|
5
|
+
*/
|
|
6
|
+
export const buildRequestSecurity = (
|
|
7
|
+
/** Currently selected security for the current operation */
|
|
8
|
+
selectedSecuritySchemes,
|
|
9
|
+
/** Include this parameter to set the placeholder for empty tokens */
|
|
10
|
+
emptyTokenPlaceholder = '') => {
|
|
11
|
+
const result = [];
|
|
12
|
+
selectedSecuritySchemes.forEach((scheme) => {
|
|
13
|
+
// Api key
|
|
14
|
+
if (scheme.type === 'apiKey') {
|
|
15
|
+
const name = scheme.name;
|
|
16
|
+
const value = scheme['x-scalar-secret-token'] || emptyTokenPlaceholder;
|
|
17
|
+
if (scheme.in === 'header') {
|
|
18
|
+
return result.push({
|
|
19
|
+
in: scheme.in,
|
|
20
|
+
name,
|
|
21
|
+
value,
|
|
22
|
+
type: 'simple',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (scheme.in === 'query') {
|
|
26
|
+
return result.push({
|
|
27
|
+
in: 'query',
|
|
28
|
+
name,
|
|
29
|
+
value,
|
|
30
|
+
type: 'simple',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
if (scheme.in === 'cookie') {
|
|
34
|
+
return result.push({
|
|
35
|
+
in: 'cookie',
|
|
36
|
+
name,
|
|
37
|
+
value,
|
|
38
|
+
type: 'simple',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// HTTP
|
|
43
|
+
if (scheme.type === 'http') {
|
|
44
|
+
if (scheme.scheme === 'basic') {
|
|
45
|
+
const username = scheme['x-scalar-secret-username'];
|
|
46
|
+
const password = scheme['x-scalar-secret-password'];
|
|
47
|
+
const value = `${username}:${password}`;
|
|
48
|
+
return result.push({
|
|
49
|
+
in: 'header',
|
|
50
|
+
name: 'Authorization',
|
|
51
|
+
// We encode the value when we build the request since we want to be able to replace the variables in the value
|
|
52
|
+
value: value === ':' ? 'username:password' : value,
|
|
53
|
+
type: 'basic',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// Bearer auth
|
|
57
|
+
const value = scheme['x-scalar-secret-token'];
|
|
58
|
+
return result.push({
|
|
59
|
+
in: 'header',
|
|
60
|
+
name: 'Authorization',
|
|
61
|
+
value: value || emptyTokenPlaceholder,
|
|
62
|
+
type: 'bearer',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// OAuth2
|
|
66
|
+
if (scheme.type === 'oauth2') {
|
|
67
|
+
const flows = Object.values(scheme?.flows ?? {});
|
|
68
|
+
const token = flows.filter(isDefined).find((f) => f['x-scalar-secret-token'])?.['x-scalar-secret-token'] ?? '';
|
|
69
|
+
return result.push({
|
|
70
|
+
in: 'header',
|
|
71
|
+
name: 'Authorization',
|
|
72
|
+
value: token || emptyTokenPlaceholder,
|
|
73
|
+
type: 'bearer',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
});
|
|
78
|
+
return result;
|
|
79
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { XScalarAuthUrl, XScalarCredentialsLocation, XScalarSecretClientId, XScalarSecretClientSecret, XScalarSecretHTTP, XScalarSecretRedirectUri, XScalarSecretRefreshToken, XScalarSecretToken, XScalarTokenUrl } from '../../../schemas/extensions/security/index.js';
|
|
2
|
+
import type { OAuthFlowAuthorizationCode, OAuthFlowClientCredentials, OAuthFlowImplicit, OAuthFlowPassword } from '../../../schemas/v3.1/strict/oauth-flow.js';
|
|
3
|
+
import type { ApiKeyObject, HttpObject, OAuth2Object, OpenIdConnectObject } from '../../../schemas/v3.1/strict/security-scheme.js';
|
|
4
|
+
type OAuthFlowCommonSecret = XScalarSecretClientId & XScalarSecretToken & XScalarSecretRefreshToken & XScalarAuthUrl & XScalarTokenUrl;
|
|
5
|
+
export type OAuthFlowImplicitSecret = OAuthFlowImplicit & OAuthFlowCommonSecret & XScalarSecretRedirectUri;
|
|
6
|
+
export type OAuthFlowPasswordSecret = OAuthFlowPassword & OAuthFlowCommonSecret & XScalarSecretHTTP & XScalarSecretClientSecret & XScalarCredentialsLocation;
|
|
7
|
+
export type OAuthFlowClientCredentialsSecret = OAuthFlowClientCredentials & OAuthFlowCommonSecret & XScalarSecretClientSecret & XScalarCredentialsLocation;
|
|
8
|
+
export type OAuthFlowAuthorizationCodeSecret = OAuthFlowAuthorizationCode & OAuthFlowCommonSecret & XScalarSecretClientSecret & XScalarSecretRedirectUri & XScalarCredentialsLocation;
|
|
9
|
+
export type OAuthFlowsObjectSecret = {
|
|
10
|
+
implicit?: OAuthFlowImplicitSecret;
|
|
11
|
+
password?: OAuthFlowPasswordSecret;
|
|
12
|
+
clientCredentials?: OAuthFlowClientCredentialsSecret;
|
|
13
|
+
authorizationCode?: OAuthFlowAuthorizationCodeSecret;
|
|
14
|
+
};
|
|
15
|
+
export type ApiKeyObjectSecret = ApiKeyObject & XScalarSecretToken;
|
|
16
|
+
export type HttpObjectSecret = HttpObject & XScalarSecretHTTP & XScalarSecretToken;
|
|
17
|
+
export type OAuth2ObjectSecret = Omit<OAuth2Object, 'flows'> & {
|
|
18
|
+
flows: OAuthFlowsObjectSecret;
|
|
19
|
+
};
|
|
20
|
+
export type OpenIdConnectObjectSecret = OpenIdConnectObject & {
|
|
21
|
+
flows?: OAuthFlowsObjectSecret;
|
|
22
|
+
};
|
|
23
|
+
export type SecuritySchemeObjectSecret = ApiKeyObjectSecret | HttpObjectSecret | OpenIdConnectObjectSecret | OAuth2ObjectSecret;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=secret-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-types.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/security/secret-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAExH,KAAK,qBAAqB,GAAG,qBAAqB,GAChD,kBAAkB,GAClB,yBAAyB,GACzB,cAAc,GACd,eAAe,CAAA;AAEjB,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,wBAAwB,CAAA;AAE1G,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GACrD,qBAAqB,GACrB,iBAAiB,GACjB,yBAAyB,GACzB,0BAA0B,CAAA;AAE5B,MAAM,MAAM,gCAAgC,GAAG,0BAA0B,GACvE,qBAAqB,GACrB,yBAAyB,GACzB,0BAA0B,CAAA;AAE5B,MAAM,MAAM,gCAAgC,GAAG,0BAA0B,GACvE,qBAAqB,GACrB,yBAAyB,GACzB,wBAAwB,GACxB,0BAA0B,CAAA;AAE5B,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,EAAE,uBAAuB,CAAA;IAClC,QAAQ,CAAC,EAAE,uBAAuB,CAAA;IAClC,iBAAiB,CAAC,EAAE,gCAAgC,CAAA;IACpD,iBAAiB,CAAC,EAAE,gCAAgC,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,kBAAkB,CAAA;AAClE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,iBAAiB,GAAG,kBAAkB,CAAA;AAClF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAChG,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,GAAG;IAAE,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAAA;AAEhG,MAAM,MAAM,0BAA0B,GAClC,kBAAkB,GAClB,gBAAgB,GAChB,yBAAyB,GACzB,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { WorkspaceStore } from '../../client.js';
|
|
2
|
+
import { type XScalarEnvironment } from '../../schemas/extensions/document/x-scalar-environments.js';
|
|
3
|
+
import type { WorkspaceDocument } from '../../schemas/workspace.js';
|
|
4
|
+
/**
|
|
5
|
+
* Returns the active environment context for a given workspace and document.
|
|
6
|
+
*
|
|
7
|
+
* - If there is no workspace, returns a default (empty) environment.
|
|
8
|
+
* - If no environment is selected (no active environment), returns a default environment.
|
|
9
|
+
* - Otherwise, combines variables from both the workspace and document environments,
|
|
10
|
+
* merging document environment values over workspace ones. The variables arrays from both
|
|
11
|
+
* sources are concatenated and passed through the environment schema.
|
|
12
|
+
*
|
|
13
|
+
* @param workspace Workspace store instance or null if unavailable
|
|
14
|
+
* @param document Document data or null if unavailable
|
|
15
|
+
* @returns An object with the environment name (or null) and a validated XScalarEnvironment
|
|
16
|
+
*/
|
|
17
|
+
export declare const getActiveEnvironment: (workspace: WorkspaceStore | null, document: WorkspaceDocument | null) => {
|
|
18
|
+
name: string | null;
|
|
19
|
+
environment: XScalarEnvironment;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/request-example/context/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,qDAAqD,CAAA;AAEvH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,cAAc,GAAG,IAAI,EAChC,UAAU,iBAAiB,GAAG,IAAI,KACjC;IACD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,WAAW,EAAE,kBAAkB,CAAA;CAqChC,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { xScalarEnvironmentSchema } from '../../schemas/extensions/document/x-scalar-environments.js';
|
|
2
|
+
import { coerceValue } from '../../schemas/typebox-coerce.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the active environment context for a given workspace and document.
|
|
5
|
+
*
|
|
6
|
+
* - If there is no workspace, returns a default (empty) environment.
|
|
7
|
+
* - If no environment is selected (no active environment), returns a default environment.
|
|
8
|
+
* - Otherwise, combines variables from both the workspace and document environments,
|
|
9
|
+
* merging document environment values over workspace ones. The variables arrays from both
|
|
10
|
+
* sources are concatenated and passed through the environment schema.
|
|
11
|
+
*
|
|
12
|
+
* @param workspace Workspace store instance or null if unavailable
|
|
13
|
+
* @param document Document data or null if unavailable
|
|
14
|
+
* @returns An object with the environment name (or null) and a validated XScalarEnvironment
|
|
15
|
+
*/
|
|
16
|
+
export const getActiveEnvironment = (workspace, document) => {
|
|
17
|
+
// If workspace is null, return default (empty) environment
|
|
18
|
+
if (workspace === null) {
|
|
19
|
+
return {
|
|
20
|
+
name: null,
|
|
21
|
+
environment: coerceValue(xScalarEnvironmentSchema, {}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
// Get the name of the currently active environment from workspace
|
|
25
|
+
const activeEnv = workspace.workspace['x-scalar-active-environment'];
|
|
26
|
+
// If no active environment is set, return default (empty) environment
|
|
27
|
+
if (!activeEnv) {
|
|
28
|
+
return {
|
|
29
|
+
name: null,
|
|
30
|
+
environment: coerceValue(xScalarEnvironmentSchema, {}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// Get environment variables from workspace and document (if present)
|
|
34
|
+
const workspaceEnv = workspace.workspace['x-scalar-environments']?.[activeEnv] ?? {
|
|
35
|
+
variables: [],
|
|
36
|
+
};
|
|
37
|
+
const documentEnv = document?.['x-scalar-environments']?.[activeEnv] ?? {
|
|
38
|
+
variables: [],
|
|
39
|
+
};
|
|
40
|
+
// Merge workspace and document variables, with document variables appended
|
|
41
|
+
return {
|
|
42
|
+
name: activeEnv,
|
|
43
|
+
environment: coerceValue(xScalarEnvironmentSchema, {
|
|
44
|
+
...workspaceEnv,
|
|
45
|
+
...documentEnv,
|
|
46
|
+
variables: [...workspaceEnv.variables, ...documentEnv.variables],
|
|
47
|
+
}),
|
|
48
|
+
};
|
|
49
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { WorkspaceStore } from '../../client.js';
|
|
2
|
+
import type { SelectedSecurity } from '../../entities/auth/index.js';
|
|
3
|
+
import type { AuthMeta, ServerMeta } from '../../events/index.js';
|
|
4
|
+
import type { SecuritySchemeObjectSecret } from '../../request-example/builder/security/secret-types.js';
|
|
5
|
+
import { type Layout } from '../../request-example/context/proxy.js';
|
|
6
|
+
import { type MergedSecuritySchemes } from '../../request-example/context/security/merge-security.js';
|
|
7
|
+
import type { RequestExampleMeta, Result } from '../../request-example/types.js';
|
|
8
|
+
import type { XScalarEnvironment } from '../../schemas/extensions/document/x-scalar-environments.js';
|
|
9
|
+
import type { XScalarCookie } from '../../schemas/extensions/general/x-scalar-cookies.js';
|
|
10
|
+
import type { OperationObject } from '../../schemas/v3.1/strict/operation.js';
|
|
11
|
+
import type { SecurityRequirementObject } from '../../schemas/v3.1/strict/security-requirement.js';
|
|
12
|
+
import type { ServerObject } from '../../schemas/v3.1/strict/server.js';
|
|
13
|
+
import type { WorkspaceDocument } from '../../schemas/workspace.js';
|
|
14
|
+
type BuildRequestExampleContext = {
|
|
15
|
+
operation: OperationObject;
|
|
16
|
+
environment: {
|
|
17
|
+
name: string | null;
|
|
18
|
+
environment: XScalarEnvironment;
|
|
19
|
+
};
|
|
20
|
+
cookies: {
|
|
21
|
+
workspace: XScalarCookie[];
|
|
22
|
+
document: XScalarCookie[];
|
|
23
|
+
};
|
|
24
|
+
servers: {
|
|
25
|
+
list: ServerObject[];
|
|
26
|
+
selected: ServerObject | null;
|
|
27
|
+
meta: ServerMeta;
|
|
28
|
+
};
|
|
29
|
+
proxy: {
|
|
30
|
+
url: string | null;
|
|
31
|
+
};
|
|
32
|
+
headers: {
|
|
33
|
+
default: Record<string, string>;
|
|
34
|
+
};
|
|
35
|
+
security: {
|
|
36
|
+
schemes: MergedSecuritySchemes;
|
|
37
|
+
requirements: SecurityRequirementObject[];
|
|
38
|
+
selected: SelectedSecurity;
|
|
39
|
+
selectedSchemes: SecuritySchemeObjectSecret[];
|
|
40
|
+
meta: AuthMeta;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
export declare const getRequestExampleContext: (workspaceStore: WorkspaceStore, documentName: string, requestExampleMeta: RequestExampleMeta, options?: Partial<{
|
|
44
|
+
servers: ServerObject[];
|
|
45
|
+
baseServerUrl: string;
|
|
46
|
+
layout: Layout;
|
|
47
|
+
appVersion: string;
|
|
48
|
+
isElectron: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* When the document is not in `workspace.documents[documentName]` yet, use this copy (same shape as the
|
|
51
|
+
* workspace entry). Callers that already hold the resolved document should pass it so behavior matches
|
|
52
|
+
* reading from props.
|
|
53
|
+
*/
|
|
54
|
+
fallbackDocument: WorkspaceDocument | null;
|
|
55
|
+
}>) => Result<BuildRequestExampleContext>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=get-request-example-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-request-example-context.d.ts","sourceRoot":"","sources":["../../../src/request-example/context/get-request-example-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAEpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AAIjG,OAAO,EAAE,KAAK,MAAM,EAAqB,MAAM,iCAAiC,CAAA;AAIhF,OAAO,EAAE,KAAK,qBAAqB,EAAiB,MAAM,mDAAmD,CAAA;AAE7G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAA;AAC3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,eAAe,CAAA;IAC1B,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,WAAW,EAAE,kBAAkB,CAAA;KAChC,CAAA;IACD,OAAO,EAAE;QACP,SAAS,EAAE,aAAa,EAAE,CAAA;QAC1B,QAAQ,EAAE,aAAa,EAAE,CAAA;KAC1B,CAAA;IACD,OAAO,EAAE;QACP,IAAI,EAAE,YAAY,EAAE,CAAA;QACpB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;QAC7B,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KACnB,CAAA;IACD,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAChC,CAAA;IACD,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;CACF,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,cAAc,EAC9B,cAAc,MAAM,EACpB,oBAAoB,kBAAkB,EACtC,UAAS,OAAO,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAC3C,CAAM,KACN,MAAM,CAAC,0BAA0B,CAmInC,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { getResolvedRef } from '../../helpers/get-resolved-ref.js';
|
|
2
|
+
import { getActiveEnvironment } from '../../request-example/context/environment.js';
|
|
3
|
+
import { getDefaultHeaders } from '../../request-example/context/headers.js';
|
|
4
|
+
import { combineParams } from '../../request-example/context/helpers/combine-params.js';
|
|
5
|
+
import { getActiveProxyUrl } from '../../request-example/context/proxy.js';
|
|
6
|
+
import { getSecurityRequirements } from '../../request-example/context/security/get-security-requirements.js';
|
|
7
|
+
import { getSecuritySchemes } from '../../request-example/context/security/get-security-schemes.js';
|
|
8
|
+
import { getSelectedSecurity } from '../../request-example/context/security/get-selected-security.js';
|
|
9
|
+
import { mergeSecurity } from '../../request-example/context/security/merge-security.js';
|
|
10
|
+
import { getSelectedServer, getServers } from '../../request-example/context/servers.js';
|
|
11
|
+
export const getRequestExampleContext = (workspaceStore, documentName, requestExampleMeta, options = {}) => {
|
|
12
|
+
const { path, method, exampleName } = requestExampleMeta;
|
|
13
|
+
const document = workspaceStore.workspace.documents[documentName] ?? options.fallbackDocument ?? undefined;
|
|
14
|
+
if (!document) {
|
|
15
|
+
return {
|
|
16
|
+
ok: false,
|
|
17
|
+
error: `Document ${documentName} not found`,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const pathItem = getResolvedRef(document.paths?.[path]);
|
|
21
|
+
if (!pathItem) {
|
|
22
|
+
return {
|
|
23
|
+
ok: false,
|
|
24
|
+
error: `Path ${path} not found`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const resolvedOperation = getResolvedRef(pathItem[method]);
|
|
28
|
+
if (!resolvedOperation) {
|
|
29
|
+
return {
|
|
30
|
+
ok: false,
|
|
31
|
+
error: `Method ${method} not found on path ${path}`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// Combine the path item and operation parameters
|
|
35
|
+
const operation = {
|
|
36
|
+
...resolvedOperation,
|
|
37
|
+
parameters: combineParams(pathItem.parameters, resolvedOperation.parameters ?? []),
|
|
38
|
+
};
|
|
39
|
+
//------------------------------------------------------------------------------------------------
|
|
40
|
+
// ENVIRONMENT CONTEXT
|
|
41
|
+
//------------------------------------------------------------------------------------------------
|
|
42
|
+
// Get environment context for the request example
|
|
43
|
+
const environment = getActiveEnvironment(workspaceStore, document);
|
|
44
|
+
//------------------------------------------------------------------------------------------------
|
|
45
|
+
// SERVER CONTEXT
|
|
46
|
+
//------------------------------------------------------------------------------------------------
|
|
47
|
+
// Get server context for the request example
|
|
48
|
+
const serverList = getServers(options.servers ?? operation.servers ?? document.servers, {
|
|
49
|
+
baseServerUrl: options.baseServerUrl,
|
|
50
|
+
documentUrl: document['x-scalar-original-source-url'],
|
|
51
|
+
});
|
|
52
|
+
const selectedServer = getSelectedServer(document, operation, options.servers ?? null, serverList);
|
|
53
|
+
//------------------------------------------------------------------------------------------------
|
|
54
|
+
// SECURITY CONTEXT
|
|
55
|
+
//------------------------------------------------------------------------------------------------
|
|
56
|
+
const documentSelectedSecurity = workspaceStore.auth.getAuthSelectedSchemas({
|
|
57
|
+
type: 'document',
|
|
58
|
+
documentName,
|
|
59
|
+
});
|
|
60
|
+
const operationSelectedSecurity = workspaceStore.auth.getAuthSelectedSchemas({
|
|
61
|
+
type: 'operation',
|
|
62
|
+
documentName,
|
|
63
|
+
path: path ?? '',
|
|
64
|
+
method: method ?? 'get',
|
|
65
|
+
});
|
|
66
|
+
const securitySchemes = mergeSecurity(document.components?.securitySchemes ?? {}, {}, workspaceStore.auth, documentName);
|
|
67
|
+
const securityRequirements = getSecurityRequirements(document.security, operation.security);
|
|
68
|
+
const selectedSecurity = getSelectedSecurity(documentSelectedSecurity, operationSelectedSecurity, securityRequirements, securitySchemes);
|
|
69
|
+
/** The above selected requirements in scheme form */
|
|
70
|
+
const selectedSecuritySchemes = getSecuritySchemes(securitySchemes, selectedSecurity.selectedSchemes);
|
|
71
|
+
const serverMeta = operation.servers != null ? { type: 'operation', path: path ?? '', method: method ?? 'get' } : { type: 'document' };
|
|
72
|
+
const authMeta = operationSelectedSecurity !== undefined
|
|
73
|
+
? { type: 'operation', path: path ?? '', method: method ?? 'get' }
|
|
74
|
+
: { type: 'document' };
|
|
75
|
+
//------------------------------------------------------------------------------------------------
|
|
76
|
+
// PROXY URL
|
|
77
|
+
//------------------------------------------------------------------------------------------------
|
|
78
|
+
// Get proxy url for the request example
|
|
79
|
+
const proxyUrl = getActiveProxyUrl(workspaceStore.workspace['x-scalar-active-proxy'], options.layout ?? 'other');
|
|
80
|
+
const defaultHeaders = getDefaultHeaders({
|
|
81
|
+
method,
|
|
82
|
+
operation,
|
|
83
|
+
exampleName,
|
|
84
|
+
options: { appVersion: options.appVersion ?? '0.0.0', isElectron: options.isElectron ?? false },
|
|
85
|
+
});
|
|
86
|
+
return {
|
|
87
|
+
ok: true,
|
|
88
|
+
data: {
|
|
89
|
+
operation,
|
|
90
|
+
environment,
|
|
91
|
+
cookies: {
|
|
92
|
+
workspace: workspaceStore.workspace['x-scalar-cookies'] ?? [],
|
|
93
|
+
document: document['x-scalar-cookies'] ?? [],
|
|
94
|
+
},
|
|
95
|
+
headers: {
|
|
96
|
+
default: defaultHeaders,
|
|
97
|
+
},
|
|
98
|
+
servers: {
|
|
99
|
+
list: serverList,
|
|
100
|
+
selected: selectedServer,
|
|
101
|
+
meta: serverMeta,
|
|
102
|
+
},
|
|
103
|
+
proxy: {
|
|
104
|
+
url: proxyUrl,
|
|
105
|
+
},
|
|
106
|
+
security: {
|
|
107
|
+
schemes: securitySchemes,
|
|
108
|
+
requirements: securityRequirements,
|
|
109
|
+
selected: selectedSecurity,
|
|
110
|
+
selectedSchemes: selectedSecuritySchemes,
|
|
111
|
+
meta: authMeta,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
};
|