@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
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @scalar/workspace-store
|
|
2
2
|
|
|
3
|
+
## 0.43.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#8524](https://github.com/scalar/scalar/pull/8524): feat: move request logic on the store and generate a request builder
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#8633](https://github.com/scalar/scalar/pull/8633): chore: improve performance by factoring out the common fields on schema object
|
|
12
|
+
- [#8650](https://github.com/scalar/scalar/pull/8650): fix: ensure we have a introduction entry on the sidear by default
|
|
13
|
+
- [#8647](https://github.com/scalar/scalar/pull/8647): feat: move addressBar path change from debounce to blur
|
|
14
|
+
- [#8555](https://github.com/scalar/scalar/pull/8555): feat(workspace-store): replace code-highlight with helpers for markdown headings
|
|
15
|
+
- [#8713](https://github.com/scalar/scalar/pull/8713): feat: handle pasting and typing urls in the path box
|
|
16
|
+
- [#8664](https://github.com/scalar/scalar/pull/8664): refactor: replace wildcard export barrels with explicit named re-exports
|
|
17
|
+
|
|
18
|
+
## 0.42.0
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- [#8600](https://github.com/scalar/scalar/pull/8600): feat: typegen scripts and new schemas for the validation library
|
|
23
|
+
|
|
3
24
|
## 0.41.2
|
|
4
25
|
|
|
5
26
|
### 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":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAU,MAAM,2BAA2B,CAAA;AAErE,OAAO,EAAE,KAAK,UAAU,EAAe,KAAK,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -9,6 +9,7 @@ import { apply, diff, merge } from '@scalar/json-magic/diff';
|
|
|
9
9
|
import { createMagicProxy, getRaw } from '@scalar/json-magic/magic-proxy';
|
|
10
10
|
import { upgrade } from '@scalar/openapi-upgrader';
|
|
11
11
|
import { Value } from '@scalar/typebox/value';
|
|
12
|
+
import { coerce } from '@scalar/validation';
|
|
12
13
|
import { reactive } from 'vue';
|
|
13
14
|
import YAML from 'yaml';
|
|
14
15
|
import { createAuthStore } from './entities/auth/index.js';
|
|
@@ -24,6 +25,8 @@ import { createNavigation } from './navigation/index.js';
|
|
|
24
25
|
import { externalValueResolver, loadingStatus, normalizeAuthSchemes, normalizeRefs, refsEverywhere, removeExtraScalarKeys, restoreOriginalRefs, syncPathParameters, } from './plugins/bundler/index.js';
|
|
25
26
|
import { extensions } from './schemas/extensions.js';
|
|
26
27
|
import { coerceValue } from './schemas/typebox-coerce.js';
|
|
28
|
+
import { generateSchema } from './schemas/v3.1/openapi/index.js';
|
|
29
|
+
import { recursiveRef } from './schemas/v3.1/openapi/reference.js';
|
|
27
30
|
import { OpenAPIDocumentSchema as OpenAPIDocumentSchemaStrict, } from './schemas/v3.1/strict/openapi-document.js';
|
|
28
31
|
/**
|
|
29
32
|
* Resolves a workspace document from various input sources (URL, local file, or direct document object).
|
|
@@ -84,6 +87,7 @@ const getDocumentSource = (input) => {
|
|
|
84
87
|
}
|
|
85
88
|
return undefined;
|
|
86
89
|
};
|
|
90
|
+
const openapiSchema = generateSchema(recursiveRef);
|
|
87
91
|
/**
|
|
88
92
|
* Creates a reactive workspace store that manages documents and their metadata.
|
|
89
93
|
* The store provides functionality for accessing, updating, and resolving document references.
|
|
@@ -413,7 +417,7 @@ export const createWorkspaceStore = (workspaceProps) => {
|
|
|
413
417
|
origin: input.documentSource, // use the document origin (if provided) as the base URL for resolution
|
|
414
418
|
}));
|
|
415
419
|
// We coerce the values only when the document is not preprocessed by the server-side-store
|
|
416
|
-
const coerced = withMeasurementSync('coerceValue', () =>
|
|
420
|
+
const coerced = withMeasurementSync('coerceValue', () => coerce(openapiSchema, deepClone(strictDocument)));
|
|
417
421
|
withMeasurementSync('mergeObjects', () => mergeObjects(strictDocument, coerced));
|
|
418
422
|
}
|
|
419
423
|
const isValid = Value.Check(OpenAPIDocumentSchemaStrict, strictDocument);
|
|
@@ -81,8 +81,13 @@ export type OperationEvents = {
|
|
|
81
81
|
};
|
|
82
82
|
/** Identifies the target operation by original method and path */
|
|
83
83
|
meta: OperationMeta;
|
|
84
|
+
/**
|
|
85
|
+
* The CSS selector of the element that triggered the blur event
|
|
86
|
+
* Used to re-trigger click events
|
|
87
|
+
*/
|
|
88
|
+
blurTargetSelector: string | null;
|
|
84
89
|
/** Callback, on completion */
|
|
85
|
-
callback: (status: 'conflict' | 'no-change' | 'success') => void;
|
|
90
|
+
callback: (status: 'conflict' | 'no-change' | 'success', blurTargetSelector: string | null) => void;
|
|
86
91
|
};
|
|
87
92
|
/**
|
|
88
93
|
* Delete an operation from the workspace
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/operation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAE9F;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IACjD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG;IAK5B;;;OAGG;IACH,+BAA+B,EAAE,SAAS,CAAA;IAE1C,qCAAqC;IACrC,0BAA0B,EAAE,SAAS,CAAA;IAMrC;;;OAGG;IACH,4BAA4B,EAAE;QAC5B,8DAA8D;QAC9D,YAAY,EAAE,MAAM,CAAA;QACpB,4CAA4C;QAC5C,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,0EAA0E;QAC1E,IAAI,EAAE,MAAM,CAAA;QACZ,wCAAwC;QACxC,MAAM,EAAE,UAAU,CAAA;QAClB,qCAAqC;QACrC,SAAS,EAAE,eAAe,CAAA;QAC1B,yDAAyD;QACzD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;KACtC,CAAA;IAED;;;;OAIG;IACH,uBAAuB,EAAE;QACvB,gDAAgD;QAChD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,CAAA;QACjF,+EAA+E;QAC/E,IAAI,EAAE,aAAa,CAAA;KACpB,CAAA;IAED;;;;OAIG;IACH,6BAA6B,EAAE;QAC7B,OAAO,EAAE;YACP,8CAA8C;YAC9C,MAAM,EAAE,UAAU,CAAA;YAClB,4CAA4C;YAC5C,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;QACD,kEAAkE;QAClE,IAAI,EAAE,aAAa,CAAA;QACnB,8BAA8B;QAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,9 +16,13 @@ export type ServerEvents = {
|
|
|
16
16
|
meta: ServerMeta;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Adds a new server, optionally setting it as the selected server and prefill the URL
|
|
20
20
|
*/
|
|
21
21
|
'server:add:server': {
|
|
22
|
+
/** The URL of the server to add (optional) */
|
|
23
|
+
url?: string;
|
|
24
|
+
/** Whether to set the server as the selected server (optional) */
|
|
25
|
+
select?: boolean;
|
|
22
26
|
/** The meta information for the server */
|
|
23
27
|
meta: ServerMeta;
|
|
24
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAE1E,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,UAAU,CAAA;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAEL,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,2BAA2B,EAAE;QAC3B,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,mBAAmB,EAAE;QACnB,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,uCAAuC;QACvC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAC7B,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,yBAAyB,EAAE;QACzB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,wCAAwC;QACxC,GAAG,EAAE,MAAM,CAAA;QACX,oCAAoC;QACpC,KAAK,EAAE,MAAM,CAAA;QACb,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,wBAAwB,EAAE;QACxB,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAE1E,MAAM,MAAM,UAAU,GAClB;IACE,IAAI,EAAE,UAAU,CAAA;CACjB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAEL,MAAM,MAAM,YAAY,GAAG;IACzB;;OAEG;IACH,2BAA2B,EAAE;QAC3B,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,mBAAmB,EAAE;QACnB,8CAA8C;QAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,kEAAkE;QAClE,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,uCAAuC;QACvC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;QAC7B,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,yBAAyB,EAAE;QACzB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,wCAAwC;QACxC,GAAG,EAAE,MAAM,CAAA;QACX,oCAAoC;QACpC,KAAK,EAAE,MAAM,CAAA;QACb,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,wBAAwB,EAAE;QACxB,sCAAsC;QACtC,GAAG,EAAE,MAAM,CAAA;QACX,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,wCAAwC;QACxC,KAAK,EAAE,MAAM,CAAA;QACb,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;IACD;;OAEG;IACH,sBAAsB,EAAE;QACtB,0CAA0C;QAC1C,IAAI,EAAE,UAAU,CAAA;KACjB,CAAA;CACF,CAAA"}
|
|
@@ -106,9 +106,7 @@ export type UIEvents = {
|
|
|
106
106
|
* Focus the address bar input field.
|
|
107
107
|
* Typically triggered by keyboard shortcuts for quick navigation.
|
|
108
108
|
*/
|
|
109
|
-
'ui:focus:address-bar': KeyboardEventPayload |
|
|
110
|
-
position?: 'start' | 'end' | number;
|
|
111
|
-
} | undefined;
|
|
109
|
+
'ui:focus:address-bar': KeyboardEventPayload | undefined;
|
|
112
110
|
/**
|
|
113
111
|
* Focus the send button to execute a request.
|
|
114
112
|
* Useful for keyboard-driven workflows.
|
|
@@ -185,6 +183,10 @@ export type UIEvents = {
|
|
|
185
183
|
* Useful for sharing direct links to specific sections.
|
|
186
184
|
*/
|
|
187
185
|
'copy-url:nav-item': NavigationItemPayload;
|
|
186
|
+
/**
|
|
187
|
+
* Copies the whole URL in the addressbar including server and path
|
|
188
|
+
*/
|
|
189
|
+
'copy-url:address-bar': undefined;
|
|
188
190
|
/**
|
|
189
191
|
* Used by the api-client to copy the URL for the given tab index.
|
|
190
192
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE1E;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qGAAqG;IACrG,0CAA0C,EAAE,SAAS,CAAA;IACrD,6CAA6C;IAC7C,yBAAyB,EAAE,SAAS,CAAA;IACpC,yCAAyC;IACzC,SAAS,EAAE;QACT,iDAAiD;QACjD,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,gCAAgC;IAChC,UAAU,EAAE;QACV,2DAA2D;QAC3D,GAAG,EAAE,YAAY,CAAA;QACjB,kDAAkD;QAClD,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,gCAAgC;IAChC,gBAAgB,EAAE;QAChB,wDAAwD;QACxD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,kDAAkD;QAClD,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,+CAA+C;IAC/C,aAAa,EAAE;QACb,qDAAqD;QACrD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,cAAc,EAAE;QACd,0BAA0B;QAC1B,OAAO,EAAE,gBAAgB,CAAA;QACzB,+CAA+C;QAC/C,YAAY,EAAE,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,kDAAkD;IAClD,qBAAqB,EAAE;QACrB,kDAAkD;QAClD,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,iEAAiE;IACjE,2BAA2B,EAAE;QAC3B,2EAA2E;QAC3E,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,qBAAqB,GAAG,MAAM,qBAAqB,IAAI;IACtG,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAA;IACT,6DAA6D;IAC7D,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,KAAK,qBAAqB,GAAG;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IAKrB;;;;OAIG;IACH,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,CAAA;IAMD;;;OAGG;IACH,sBAAsB,
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE1E;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qGAAqG;IACrG,0CAA0C,EAAE,SAAS,CAAA;IACrD,6CAA6C;IAC7C,yBAAyB,EAAE,SAAS,CAAA;IACpC,yCAAyC;IACzC,SAAS,EAAE;QACT,iDAAiD;QACjD,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,gCAAgC;IAChC,UAAU,EAAE;QACV,2DAA2D;QAC3D,GAAG,EAAE,YAAY,CAAA;QACjB,kDAAkD;QAClD,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,gCAAgC;IAChC,gBAAgB,EAAE;QAChB,wDAAwD;QACxD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,kDAAkD;QAClD,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,+CAA+C;IAC/C,aAAa,EAAE;QACb,qDAAqD;QACrD,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,6CAA6C;QAC7C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,cAAc,EAAE;QACd,0BAA0B;QAC1B,OAAO,EAAE,gBAAgB,CAAA;QACzB,+CAA+C;QAC/C,YAAY,EAAE,MAAM,CAAA;QACpB,8CAA8C;QAC9C,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,kDAAkD;IAClD,qBAAqB,EAAE;QACrB,kDAAkD;QAClD,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,iEAAiE;IACjE,2BAA2B,EAAE;QAC3B,2EAA2E;QAC3E,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,qBAAqB,GAAG,MAAM,qBAAqB,IAAI;IACtG,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAA;IACT,6DAA6D;IAC7D,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACjC,yDAAyD;IACzD,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED;;;GAGG;AACH,KAAK,qBAAqB,GAAG;IAC3B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG;IAKrB;;;;OAIG;IACH,sBAAsB,EAAE;QACtB,yCAAyC;QACzC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KACxB,CAAA;IAMD;;;OAGG;IACH,sBAAsB,EAAE,oBAAoB,GAAG,SAAS,CAAA;IACxD;;;OAGG;IACH,sBAAsB,EAAE,oBAAoB,CAAA;IAE5C;;;OAGG;IACH,iBAAiB,EAAE,oBAAoB,CAAA;IAMvC;;;OAGG;IACH,mBAAmB,EAAE,oBAAoB,CAAA;IAMzC;;;OAGG;IACH,sBAAsB,EAClB,SAAS,GACT;QACE,+CAA+C;QAC/C,EAAE,EAAE,MAAM,CAAA;QACV,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,+EAA+E;QAC/E,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzD,GACD;QACE,iEAAiE;QACjE,MAAM,EAAE,UAAU,CAAA;QAClB,4DAA4D;QAC5D,IAAI,EAAE,MAAM,CAAA;QACZ,uDAAuD;QACvD,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,+EAA+E;QAC/E,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACzD,CAAA;IAEL;;;OAGG;IACH,uBAAuB,EAAE,oBAAoB,GAAG,SAAS,CAAA;IAMzD;;;;OAIG;IACH,yBAAyB,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,SAAS,CAAA;IAMlF;;;OAGG;IACH,iBAAiB,EAAE,qBAAqB,GAAG;QACzC,iEAAiE;QACjE,IAAI,CAAC,EAAE,OAAO,CAAA;KACf,CAAA;IAED;;;;OAIG;IACH,iBAAiB,EAAE,qBAAqB,CAAA;IAExC;;;OAGG;IACH,uBAAuB,EAAE,qBAAqB,CAAA;IAE9C;;;OAGG;IACH,oBAAoB,EAAE,qBAAqB,CAAA;IAE3C;;;OAGG;IACH,mBAAmB,EAAE,qBAAqB,CAAA;IAE1C;;OAEG;IACH,sBAAsB,EAAE,SAAS,CAAA;IAEjC;;OAEG;IACH,eAAe,EAAE;QACf,+CAA+C;QAC/C,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD;;;;OAIG;IACH,aAAa,EAAE;QACb,0FAA0F;QAC1F,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,oDAAoD;QACpD,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,+CAA+C;QAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,2DAA2D;QAC3D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;KACjD,GAAG,CACA;QACE,IAAI,EAAE,UAAU,CAAA;QAChB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAA;QACxF,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,GACD;QACE,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;KAC7C,GACD;QACE,IAAI,EAAE,SAAS,CAAA;QACf,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,UAAU,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;KACpB,GACD;QACE,IAAI,EAAE,WAAW,CAAA;QACjB,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,CAAA;QAC/C,aAAa,EAAE,MAAM,CAAA;QACrB,MAAM,EAAE,UAAU,CAAA;QAClB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CACJ,CAAA;CACF,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Dereference } from '@scalar/workspace-store/helpers/get-resolved-ref';
|
|
2
|
+
type RefNode<Node> = Partial<Node> & {
|
|
3
|
+
$ref: string;
|
|
4
|
+
'$ref-value': Node | RefNode<Node>;
|
|
5
|
+
};
|
|
6
|
+
type NodeInput<Node> = Node | RefNode<Node>;
|
|
7
|
+
/**
|
|
8
|
+
* Recursively resolves $ref objects
|
|
9
|
+
* This type helper ensures proper typing for deeply nested ref resolution.
|
|
10
|
+
* Properties that could contain $ref objects may resolve to '[circular]' if we have a circular reference.
|
|
11
|
+
*/
|
|
12
|
+
type DeepDereference<T> = Dereference<T> extends T ? T extends readonly (infer U)[] ? DeepDereference<U>[] : T extends object ? {
|
|
13
|
+
[K in keyof T]: T[K] extends RefNode<any> ? DeepDereference<T[K]> | '[circular]' : DeepDereference<T[K]>;
|
|
14
|
+
} : T : Dereference<T> extends object ? {
|
|
15
|
+
[K in keyof Dereference<T>]: Dereference<T>[K] extends RefNode<any> ? DeepDereference<Dereference<T>[K]> | '[circular]' : DeepDereference<Dereference<T>[K]>;
|
|
16
|
+
} : Dereference<T>;
|
|
17
|
+
/**
|
|
18
|
+
* Recursively resolves all $ref objects in a data structure to their actual values.
|
|
19
|
+
* Traverses through objects, arrays, and nested structures to find and resolve
|
|
20
|
+
* any $ref references at any depth level.
|
|
21
|
+
*
|
|
22
|
+
* Handles circular references gracefully by detecting them and returning '[circular]'
|
|
23
|
+
* to prevent infinite loops.
|
|
24
|
+
*/
|
|
25
|
+
export declare const getResolvedRefDeep: <Node>(node: NodeInput<Node>) => DeepDereference<NodeInput<Node>>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=get-resolved-ref-deep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-resolved-ref-deep.d.ts","sourceRoot":"","sources":["../../src/helpers/get-resolved-ref-deep.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,kDAAkD,CAAA;AAGnG,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAA;AACzF,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAE3C;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,GAC9C,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC5B,eAAe,CAAC,CAAC,CAAC,EAAE,GACpB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5G,CAAC,GACL,WAAW,CAAC,CAAC,CAAC,SAAS,MAAM,GAC3B;KACG,CAAC,IAAI,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAC/D,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GACjD,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvC,GACD,WAAW,CAAC,CAAC,CAAC,CAAA;AAEpB;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,IAAI,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,KAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CA8C/F,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { isObject } from '@scalar/helpers/object/is-object';
|
|
2
|
+
import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref';
|
|
3
|
+
import { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy';
|
|
4
|
+
/**
|
|
5
|
+
* Recursively resolves all $ref objects in a data structure to their actual values.
|
|
6
|
+
* Traverses through objects, arrays, and nested structures to find and resolve
|
|
7
|
+
* any $ref references at any depth level.
|
|
8
|
+
*
|
|
9
|
+
* Handles circular references gracefully by detecting them and returning '[circular]'
|
|
10
|
+
* to prevent infinite loops.
|
|
11
|
+
*/
|
|
12
|
+
export const getResolvedRefDeep = (node) => {
|
|
13
|
+
const visited = new WeakSet();
|
|
14
|
+
const cachedResults = new WeakMap();
|
|
15
|
+
const resolveNode = (current) => {
|
|
16
|
+
// Only recurse into objects and arrays; return primitives as-is
|
|
17
|
+
if (!isObject(current) && !Array.isArray(current)) {
|
|
18
|
+
return current;
|
|
19
|
+
}
|
|
20
|
+
const rawValue = unpackProxyObject(current, { depth: 1 });
|
|
21
|
+
// We don't have to recurse into the same object again
|
|
22
|
+
// This helps us having to manually remove the tracked node after we recurse into the tree
|
|
23
|
+
if (cachedResults.has(rawValue)) {
|
|
24
|
+
return cachedResults.get(rawValue);
|
|
25
|
+
}
|
|
26
|
+
// Break circular references
|
|
27
|
+
if (visited.has(rawValue)) {
|
|
28
|
+
return '[circular]';
|
|
29
|
+
}
|
|
30
|
+
// Track visited nodes
|
|
31
|
+
visited.add(rawValue);
|
|
32
|
+
if ('$ref' in current) {
|
|
33
|
+
const resolved = getResolvedRef(current);
|
|
34
|
+
const result = resolveNode(resolved);
|
|
35
|
+
cachedResults.set(rawValue, result);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
// For arrays
|
|
39
|
+
if (Array.isArray(current)) {
|
|
40
|
+
const result = current.map(resolveNode);
|
|
41
|
+
cachedResults.set(rawValue, result);
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
const result = Object.fromEntries(Object.entries(current).map(([key, value]) => [key, resolveNode(value)]));
|
|
45
|
+
cachedResults.set(rawValue, result);
|
|
46
|
+
return result;
|
|
47
|
+
};
|
|
48
|
+
return resolveNode(node);
|
|
49
|
+
};
|
|
@@ -50,7 +50,7 @@ export declare const updateOperationMeta: (store: WorkspaceStore | null, documen
|
|
|
50
50
|
* })
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
export declare const updateOperationPathMethod: (document: WorkspaceDocument | null, store: WorkspaceStore | null, { meta, payload: { method, path }, callback }: OperationEvents["operation:update:pathMethod"]) => void;
|
|
53
|
+
export declare const updateOperationPathMethod: (document: WorkspaceDocument | null, store: WorkspaceStore | null, { meta, payload: { method, path }, blurTargetSelector, callback }: OperationEvents["operation:update:pathMethod"]) => void;
|
|
54
54
|
/**
|
|
55
55
|
* Deletes an operation from the workspace
|
|
56
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/mutators/operation/operation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,GAC1B,gBAAgB,cAAc,GAAG,IAAI,EACrC,SAAS,eAAe,CAAC,4BAA4B,CAAC,KACrD,MAAM,GAAG,SA0DX,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,cAAc,GAAG,IAAI,EAC5B,UAAU,iBAAiB,GAAG,IAAI,EAClC,mBAAmB,eAAe,CAAC,uBAAuB,CAAC,SAsB5D,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,iBAAiB,GAAG,IAAI,EAClC,OAAO,cAAc,GAAG,IAAI,EAC5B
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../../../src/mutators/operation/operation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAOrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,GAC1B,gBAAgB,cAAc,GAAG,IAAI,EACrC,SAAS,eAAe,CAAC,4BAA4B,CAAC,KACrD,MAAM,GAAG,SA0DX,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,cAAc,GAAG,IAAI,EAC5B,UAAU,iBAAiB,GAAG,IAAI,EAClC,mBAAmB,eAAe,CAAC,uBAAuB,CAAC,SAsB5D,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,iBAAiB,GAAG,IAAI,EAClC,OAAO,cAAc,GAAG,IAAI,EAC5B,mEAAmE,eAAe,CAAC,6BAA6B,CAAC,KAChH,IAgGF,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,cAAc,GAAG,IAAI,EAChC,wBAAwB,eAAe,CAAC,4BAA4B,CAAC,SAgBtE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW,cAAc,GAAG,IAAI,EAChC,uDAAuD,eAAe,CAAC,gCAAgC,CAAC,SAuBzG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,cAAc,GAAG,IAAI,EAChC,sDAAsD,eAAe,CAAC,0BAA0B,CAAC,SAiDlG,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,cAAc,GAAG,IAAI,EAChC,+DAA+D,eAAe,CAAC,0BAA0B,CAAC,SAuE3G,CAAA"}
|
|
@@ -119,12 +119,12 @@ export const updateOperationMeta = (store, document, { meta, payload }) => {
|
|
|
119
119
|
* })
|
|
120
120
|
* ```
|
|
121
121
|
*/
|
|
122
|
-
export const updateOperationPathMethod = (document, store, { meta, payload: { method, path }, callback }) => {
|
|
122
|
+
export const updateOperationPathMethod = (document, store, { meta, payload: { method, path }, blurTargetSelector, callback }) => {
|
|
123
123
|
const methodChanged = meta.method !== method;
|
|
124
124
|
const pathChanged = meta.path !== path;
|
|
125
125
|
// If nothing has changed, no need to do anything
|
|
126
126
|
if (!methodChanged && !pathChanged) {
|
|
127
|
-
callback('no-change');
|
|
127
|
+
callback('no-change', blurTargetSelector);
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
130
|
// Determine the final method and path
|
|
@@ -132,7 +132,7 @@ export const updateOperationPathMethod = (document, store, { meta, payload: { me
|
|
|
132
132
|
const finalPath = pathChanged ? path : meta.path;
|
|
133
133
|
// Check for conflicts at the target location
|
|
134
134
|
if (document?.paths?.[finalPath]?.[finalMethod]) {
|
|
135
|
-
callback('conflict');
|
|
135
|
+
callback('conflict', blurTargetSelector);
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
138
138
|
const documentNavigation = document?.['x-scalar-navigation'];
|
|
@@ -192,7 +192,7 @@ export const updateOperationPathMethod = (document, store, { meta, payload: { me
|
|
|
192
192
|
}
|
|
193
193
|
// We need to reset the history for the operation when the path or method changes
|
|
194
194
|
store.history.clearOperationHistory(document['x-scalar-navigation']?.name ?? '', meta.path, meta.method);
|
|
195
|
-
callback('success');
|
|
195
|
+
callback('success', blurTargetSelector);
|
|
196
196
|
};
|
|
197
197
|
/**
|
|
198
198
|
* Deletes an operation from the workspace
|
|
@@ -14,7 +14,7 @@ export declare const initializeServers: (document: WorkspaceDocument | null, { m
|
|
|
14
14
|
* @param document - The document to add the server to
|
|
15
15
|
* @returns the new server object or undefined if the target is not found
|
|
16
16
|
*/
|
|
17
|
-
export declare const addServer: (document: WorkspaceDocument | null, { meta }: ServerEvents["server:add:server"]) => ServerObject | undefined;
|
|
17
|
+
export declare const addServer: (document: WorkspaceDocument | null, { url, select, meta }: ServerEvents["server:add:server"]) => ServerObject | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Updates a ServerObject in the document or operation based on meta.
|
|
20
20
|
* When the URL changes, intelligently syncs variables by preserving configurations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mutators/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,6BAA6B,CAAA;AAI3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,wCAAwC,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAyB5D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,iBAAiB,GAAG,IAAI,EAClC,UAAU,YAAY,CAAC,2BAA2B,CAAC,+BAUpD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,iBAAiB,GAAG,IAAI,EAClC,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mutators/server.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,6BAA6B,CAAA;AAI3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,wCAAwC,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAyB5D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,iBAAiB,GAAG,IAAI,EAClC,UAAU,YAAY,CAAC,2BAA2B,CAAC,+BAUpD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,UAAU,iBAAiB,GAAG,IAAI,EAClC,uBAAuB,YAAY,CAAC,mBAAmB,CAAC,KACvD,YAAY,GAAG,SAmBjB,CAAA;AAgFD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,iBAAiB,GAAG,IAAI,EAClC,yBAAyB,YAAY,CAAC,sBAAsB,CAAC,KAC5D,YAAY,GAAG,SAgCjB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,iBAAiB,GAAG,IAAI,EAClC,iBAAiB,YAAY,CAAC,sBAAsB,CAAC,SAatD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,iBAAiB,GAAG,IAAI,EAAE,UAAU,YAAY,CAAC,sBAAsB,CAAC,SAS9G,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,iBAAiB,GAAG,IAAI,EAClC,6BAA6B,YAAY,CAAC,yBAAyB,CAAC,sFAWrE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,iBAAiB,GAAG,IAAI,EAClC,eAAe,YAAY,CAAC,wBAAwB,CAAC,KACpD,MAAM,GAAG,SAaX,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,cAAc;IAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE;iCAEzD,YAAY,CAAC,2BAA2B,CAAC;yBACjD,YAAY,CAAC,mBAAmB,CAAC;4BAC9B,YAAY,CAAC,sBAAsB,CAAC;4BACpC,YAAY,CAAC,sBAAsB,CAAC;4BACpC,YAAY,CAAC,sBAAsB,CAAC;qCAC3B,YAAY,CAAC,yBAAyB,CAAC;oCAExC,YAAY,CAAC,wBAAwB,CAAC;CAEzE,CAAA"}
|
package/dist/mutators/server.js
CHANGED
|
@@ -37,17 +37,20 @@ export const initializeServers = (document, { meta }) => {
|
|
|
37
37
|
* @param document - The document to add the server to
|
|
38
38
|
* @returns the new server object or undefined if the target is not found
|
|
39
39
|
*/
|
|
40
|
-
export const addServer = (document, { meta }) => {
|
|
40
|
+
export const addServer = (document, { url, select, meta }) => {
|
|
41
41
|
const target = getServerTarget(document, meta);
|
|
42
42
|
if (!target) {
|
|
43
43
|
console.error('Target not found', meta);
|
|
44
44
|
return undefined;
|
|
45
45
|
}
|
|
46
|
-
const parsed = coerceValue(ServerObjectSchema, {});
|
|
46
|
+
const parsed = coerceValue(ServerObjectSchema, { url });
|
|
47
47
|
if (!target.servers) {
|
|
48
48
|
target.servers = [];
|
|
49
49
|
}
|
|
50
50
|
target.servers.push(parsed);
|
|
51
|
+
if (select) {
|
|
52
|
+
target['x-scalar-selected-server'] = parsed.url;
|
|
53
|
+
}
|
|
51
54
|
return parsed;
|
|
52
55
|
};
|
|
53
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverse-description.d.ts","sourceRoot":"","sources":["../../../src/navigation/helpers/traverse-description.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"traverse-description.d.ts","sourceRoot":"","sources":["../../../src/navigation/helpers/traverse-description.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AA8B5D;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,mBAAmB,GAAI,iCAIjC;IACD,UAAU,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,UAAU,CAAA;CACjB,KAAG,oBAAoB,EAiEvB,CAAA"}
|
|
@@ -3,6 +3,22 @@ const DEFAULT_DESCRIPTION_ENTRY = {
|
|
|
3
3
|
TITLE: 'Introduction',
|
|
4
4
|
SLUG: 'introduction',
|
|
5
5
|
};
|
|
6
|
+
const getDefaultDescriptionEntry = (generateId, parentId, info) => {
|
|
7
|
+
const id = generateId({
|
|
8
|
+
type: 'text',
|
|
9
|
+
depth: 1,
|
|
10
|
+
slug: DEFAULT_DESCRIPTION_ENTRY.SLUG,
|
|
11
|
+
parentId: parentId,
|
|
12
|
+
info,
|
|
13
|
+
value: DEFAULT_DESCRIPTION_ENTRY.TITLE,
|
|
14
|
+
});
|
|
15
|
+
const entry = {
|
|
16
|
+
id,
|
|
17
|
+
title: DEFAULT_DESCRIPTION_ENTRY.TITLE,
|
|
18
|
+
type: 'text',
|
|
19
|
+
};
|
|
20
|
+
return entry;
|
|
21
|
+
};
|
|
6
22
|
/**
|
|
7
23
|
* Creates a hierarchical navigation structure from markdown headings in an OpenAPI description.
|
|
8
24
|
*
|
|
@@ -22,9 +38,9 @@ const DEFAULT_DESCRIPTION_ENTRY = {
|
|
|
22
38
|
*/
|
|
23
39
|
export const traverseDescription = ({ generateId, parentId, info, }) => {
|
|
24
40
|
const description = info.description?.trim();
|
|
25
|
-
// No description, return empty array
|
|
26
41
|
if (!description) {
|
|
27
|
-
|
|
42
|
+
// Return a single entry for the introduction section
|
|
43
|
+
return [getDefaultDescriptionEntry(generateId, parentId, info)];
|
|
28
44
|
}
|
|
29
45
|
const headings = getHeadingsFromMarkdown(description);
|
|
30
46
|
const lowestLevel = getLowestHeadingLevel(headings);
|
|
@@ -33,25 +49,7 @@ export const traverseDescription = ({ generateId, parentId, info, }) => {
|
|
|
33
49
|
let currentParent = null;
|
|
34
50
|
// Add "Introduction" as the first heading
|
|
35
51
|
if (!description.startsWith('#')) {
|
|
36
|
-
const
|
|
37
|
-
depth: 1,
|
|
38
|
-
value: DEFAULT_DESCRIPTION_ENTRY.TITLE,
|
|
39
|
-
slug: DEFAULT_DESCRIPTION_ENTRY.SLUG,
|
|
40
|
-
};
|
|
41
|
-
const id = generateId({
|
|
42
|
-
type: 'text',
|
|
43
|
-
depth: heading.depth,
|
|
44
|
-
slug: heading.slug,
|
|
45
|
-
parentId: parentId,
|
|
46
|
-
info,
|
|
47
|
-
value: heading.value,
|
|
48
|
-
});
|
|
49
|
-
const entry = {
|
|
50
|
-
id,
|
|
51
|
-
title: heading.value,
|
|
52
|
-
type: 'text',
|
|
53
|
-
};
|
|
54
|
-
// Push to entries
|
|
52
|
+
const entry = getDefaultDescriptionEntry(generateId, parentId, info);
|
|
55
53
|
entries.push(entry);
|
|
56
54
|
descriptionHeadingsEntry = entry;
|
|
57
55
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getMarkdownHeadings } from '@scalar/helpers/markdown/get-markdown-headings';
|
|
2
2
|
import GithubSlugger from 'github-slugger';
|
|
3
3
|
/**
|
|
4
4
|
* Adds URL-friendly slugs to each heading in the array.
|
|
@@ -50,7 +50,7 @@ const withSlugs = (headings, slugger) => headings.map((heading) => {
|
|
|
50
50
|
*/
|
|
51
51
|
export function getHeadingsFromMarkdown(input) {
|
|
52
52
|
const slugger = new GithubSlugger();
|
|
53
|
-
const headings =
|
|
53
|
+
const headings = getMarkdownHeadings(input);
|
|
54
54
|
return withSlugs(headings, slugger);
|
|
55
55
|
}
|
|
56
56
|
/**
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { RequestBodyObject } from '@scalar/workspace-store/schemas/v3.1/strict/request-body';
|
|
2
|
+
type FormData = {
|
|
3
|
+
mode: 'formdata';
|
|
4
|
+
value: ({
|
|
5
|
+
type: 'text';
|
|
6
|
+
key: string;
|
|
7
|
+
value: string;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'file';
|
|
10
|
+
key: string;
|
|
11
|
+
value: File;
|
|
12
|
+
contentType?: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: 'blob';
|
|
15
|
+
key: string;
|
|
16
|
+
value: Blob;
|
|
17
|
+
contentType?: string;
|
|
18
|
+
})[];
|
|
19
|
+
};
|
|
20
|
+
type UrlEncoded = {
|
|
21
|
+
mode: 'urlencoded';
|
|
22
|
+
value: {
|
|
23
|
+
key: string;
|
|
24
|
+
value: string;
|
|
25
|
+
}[];
|
|
26
|
+
};
|
|
27
|
+
type Raw = {
|
|
28
|
+
mode: 'raw';
|
|
29
|
+
value: string | File | Blob;
|
|
30
|
+
contentType?: string;
|
|
31
|
+
};
|
|
32
|
+
export type RequestBody = FormData | UrlEncoded | Raw;
|
|
33
|
+
/**
|
|
34
|
+
* Create the fetch request body
|
|
35
|
+
*/
|
|
36
|
+
export declare const buildRequestBody: (requestBody: RequestBodyObject | undefined,
|
|
37
|
+
/** The key of the current example */
|
|
38
|
+
exampleName?: string,
|
|
39
|
+
/** Selected anyOf/oneOf request-body variants keyed by schema path */
|
|
40
|
+
requestBodyCompositionSelection?: Record<string, number>) => RequestBody | null;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=build-request-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-request-body.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/body/build-request-body.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAA;AAKjG,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,EAAE,CACH;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;KACd,GACD;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,IAAI,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,GACD;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,IAAI,CAAA;QACX,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CACJ,EAAE,CAAA;CACJ,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;KACd,EAAE,CAAA;CACJ,CAAA;AAED,KAAK,GAAG,GAAG;IACT,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,GAAG,CAAA;AAKrD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,aAAa,iBAAiB,GAAG,SAAS;AAC1C,qCAAqC;AACrC,oBAAuB;AACvB,sEAAsE;AACtE,kCAAkC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACvD,WAAW,GAAG,IAqJhB,CAAA"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// import { replaceEnvVariables } from '@scalar/helpers/regex/replace-variables'
|
|
2
|
+
import { unpackProxyObject } from '@scalar/workspace-store/helpers/unpack-proxy';
|
|
3
|
+
import { getExampleFromBody } from './get-request-body-example.js';
|
|
4
|
+
import { getSelectedBodyContentType } from './get-selected-body-content-type.js';
|
|
5
|
+
const getMultipartEncodingContentType = (requestBody, bodyContentType, fieldName) => requestBody.content[bodyContentType]?.encoding?.[fieldName]?.contentType;
|
|
6
|
+
/**
|
|
7
|
+
* Create the fetch request body
|
|
8
|
+
*/
|
|
9
|
+
export const buildRequestBody = (requestBody,
|
|
10
|
+
/** The key of the current example */
|
|
11
|
+
exampleName = 'default',
|
|
12
|
+
/** Selected anyOf/oneOf request-body variants keyed by schema path */
|
|
13
|
+
requestBodyCompositionSelection) => {
|
|
14
|
+
if (!requestBody) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
/** Selected content type for the body from the dropdown, stored as x-scalar-selected-content-type */
|
|
18
|
+
const bodyContentType = getSelectedBodyContentType(requestBody, exampleName);
|
|
19
|
+
if (!bodyContentType) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
/** An example value */
|
|
23
|
+
const example = getExampleFromBody(requestBody, bodyContentType, exampleName, requestBodyCompositionSelection);
|
|
24
|
+
if (!example) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
// Form data - array format (from UI editor)
|
|
28
|
+
if ((bodyContentType === 'multipart/form-data' || bodyContentType === 'application/x-www-form-urlencoded') &&
|
|
29
|
+
Array.isArray(example.value)) {
|
|
30
|
+
const value = Array.isArray(example.value) ? example.value : [];
|
|
31
|
+
const exampleValue = value.filter((item) => !item.isDisabled);
|
|
32
|
+
const result = bodyContentType === 'multipart/form-data'
|
|
33
|
+
? {
|
|
34
|
+
mode: 'formdata',
|
|
35
|
+
value: [],
|
|
36
|
+
}
|
|
37
|
+
: {
|
|
38
|
+
mode: 'urlencoded',
|
|
39
|
+
value: [],
|
|
40
|
+
};
|
|
41
|
+
// Loop over all entries and add them to the form
|
|
42
|
+
exampleValue.forEach(({ name, value }) => {
|
|
43
|
+
if (!name) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const partContentType = result.mode === 'formdata' ? getMultipartEncodingContentType(requestBody, bodyContentType, name) : undefined;
|
|
47
|
+
// Handle file uploads
|
|
48
|
+
if (value instanceof File && result.mode === 'formdata') {
|
|
49
|
+
/**
|
|
50
|
+
* We need to unwrap the proxies to get the file name due to the
|
|
51
|
+
* "this" context in the proxy causing an illegal invocation error
|
|
52
|
+
*/
|
|
53
|
+
const unwrappedValue = unpackProxyObject(value);
|
|
54
|
+
const encodedValue = partContentType && partContentType !== unwrappedValue.type
|
|
55
|
+
? new File([unwrappedValue], unwrappedValue.name, {
|
|
56
|
+
type: partContentType,
|
|
57
|
+
lastModified: unwrappedValue.lastModified,
|
|
58
|
+
})
|
|
59
|
+
: unwrappedValue;
|
|
60
|
+
return result.value.push({
|
|
61
|
+
type: 'file',
|
|
62
|
+
key: name,
|
|
63
|
+
value: encodedValue,
|
|
64
|
+
contentType: partContentType,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Text and structured inputs
|
|
68
|
+
if (value !== undefined && value !== null) {
|
|
69
|
+
const serializedValue = typeof value === 'object' && value !== null ? JSON.stringify(unpackProxyObject(value)) : String(value);
|
|
70
|
+
if (result.mode === 'formdata' && partContentType) {
|
|
71
|
+
return result.value.push({
|
|
72
|
+
type: 'blob',
|
|
73
|
+
key: name,
|
|
74
|
+
value: new Blob([serializedValue], { type: partContentType }),
|
|
75
|
+
contentType: partContentType,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return result.value.push({
|
|
79
|
+
type: 'text',
|
|
80
|
+
key: name,
|
|
81
|
+
value: serializedValue,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
});
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
// Form data - object format (from schema examples)
|
|
89
|
+
// When the example value is a plain object and content type is form-urlencoded,
|
|
90
|
+
// convert to URLSearchParams instead of JSON stringifying
|
|
91
|
+
if (bodyContentType === 'application/x-www-form-urlencoded' &&
|
|
92
|
+
example.value !== null &&
|
|
93
|
+
typeof example.value === 'object' &&
|
|
94
|
+
!Array.isArray(example.value)) {
|
|
95
|
+
const result = {
|
|
96
|
+
mode: 'urlencoded',
|
|
97
|
+
value: [],
|
|
98
|
+
};
|
|
99
|
+
// Convert object properties to form fields
|
|
100
|
+
for (const [key, value] of Object.entries(example.value)) {
|
|
101
|
+
if (key && value !== undefined && value !== null) {
|
|
102
|
+
const stringValue = typeof value === 'string' ? value : String(value);
|
|
103
|
+
result.value.push({
|
|
104
|
+
key,
|
|
105
|
+
value: stringValue,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
// Any other type
|
|
112
|
+
const exampleValue = example.value !== null && typeof example.value === 'object' ? unpackProxyObject(example.value) : example.value;
|
|
113
|
+
// File type
|
|
114
|
+
if (exampleValue instanceof File) {
|
|
115
|
+
return {
|
|
116
|
+
mode: 'raw',
|
|
117
|
+
value: exampleValue,
|
|
118
|
+
contentType: exampleValue.type,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
// Object type
|
|
122
|
+
if (typeof exampleValue === 'object') {
|
|
123
|
+
return {
|
|
124
|
+
mode: 'raw',
|
|
125
|
+
value: JSON.stringify(exampleValue),
|
|
126
|
+
contentType: 'application/json',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// Return binary or string values
|
|
130
|
+
return {
|
|
131
|
+
mode: 'raw',
|
|
132
|
+
value: exampleValue,
|
|
133
|
+
};
|
|
134
|
+
};
|