@scalar/workspace-store 0.40.2 → 0.40.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/client.d.ts +7 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +820 -681
- package/dist/entities/auth/index.js +96 -101
- package/dist/entities/auth/schema.d.ts +10 -0
- package/dist/entities/auth/schema.d.ts.map +1 -1
- package/dist/entities/auth/schema.js +42 -116
- package/dist/entities/history/index.js +80 -60
- package/dist/entities/history/schema.js +94 -88
- package/dist/events/bus.js +146 -93
- package/dist/events/definitions/analytics.js +1 -1
- package/dist/events/definitions/auth.js +1 -1
- package/dist/events/definitions/common.js +1 -1
- package/dist/events/definitions/cookie.js +1 -1
- package/dist/events/definitions/document.js +1 -1
- package/dist/events/definitions/environment.js +1 -1
- package/dist/events/definitions/hooks.js +1 -1
- package/dist/events/definitions/index.js +1 -1
- package/dist/events/definitions/meta.js +1 -1
- package/dist/events/definitions/operation.js +1 -1
- package/dist/events/definitions/server.js +1 -1
- package/dist/events/definitions/tabs.js +1 -1
- package/dist/events/definitions/tag.js +1 -1
- package/dist/events/definitions/ui.js +1 -1
- package/dist/events/definitions/workspace.js +1 -1
- package/dist/events/index.js +3 -9
- package/dist/events/listeners.js +20 -22
- package/dist/events/old-definitions.js +15 -12
- package/dist/helpers/deep-clone.js +33 -17
- package/dist/helpers/detect-changes-proxy.js +95 -57
- package/dist/helpers/general.js +78 -23
- package/dist/helpers/generate-unique-value.js +77 -45
- package/dist/helpers/get-fetch.js +12 -10
- package/dist/helpers/get-resolved-ref.js +11 -10
- package/dist/helpers/is-non-optional-security-requirement.js +3 -6
- package/dist/helpers/merge-object.js +71 -30
- package/dist/helpers/overrides-proxy.js +98 -58
- package/dist/helpers/unpack-proxy.js +60 -58
- package/dist/mutators/auth.js +358 -230
- package/dist/mutators/cookie.js +59 -42
- package/dist/mutators/document.js +104 -66
- package/dist/mutators/environment.js +97 -72
- package/dist/mutators/helpers.js +9 -13
- package/dist/mutators/index.js +62 -49
- package/dist/mutators/operation/body.js +88 -57
- package/dist/mutators/operation/extensions.js +20 -12
- package/dist/mutators/operation/helpers/fetch-request-to-har.js +144 -107
- package/dist/mutators/operation/helpers/fetch-response-to-har.js +143 -95
- package/dist/mutators/operation/helpers/get-parameter-position.js +12 -12
- package/dist/mutators/operation/helpers/har-to-operation.js +169 -132
- package/dist/mutators/operation/helpers/sync-path-parameters.js +109 -60
- package/dist/mutators/operation/history.js +60 -64
- package/dist/mutators/operation/index.js +25 -49
- package/dist/mutators/operation/operation.js +349 -240
- package/dist/mutators/operation/parameters.js +157 -93
- package/dist/mutators/server.js +213 -152
- package/dist/mutators/tabs.js +173 -130
- package/dist/mutators/tag.js +131 -97
- package/dist/mutators/workspace.js +72 -42
- package/dist/navigation/get-navigation-options.js +97 -84
- package/dist/navigation/helpers/get-openapi-object.js +46 -29
- package/dist/navigation/helpers/get-operation-entries.js +72 -32
- package/dist/navigation/helpers/get-parent-entry.js +16 -12
- package/dist/navigation/helpers/get-tag-entries.js +56 -29
- package/dist/navigation/helpers/get-tag.js +22 -23
- package/dist/navigation/helpers/get-x-keys.js +13 -9
- package/dist/navigation/helpers/traverse-description.js +90 -72
- package/dist/navigation/helpers/traverse-document.js +111 -98
- package/dist/navigation/helpers/traverse-examples.js +35 -31
- package/dist/navigation/helpers/traverse-paths.js +118 -106
- package/dist/navigation/helpers/traverse-schemas.js +65 -64
- package/dist/navigation/helpers/traverse-tags.js +158 -129
- package/dist/navigation/helpers/traverse-webhooks.js +96 -90
- package/dist/navigation/helpers/update-order-ids.js +59 -51
- package/dist/navigation/helpers/utils.js +71 -21
- package/dist/navigation/index.js +5 -13
- package/dist/navigation/types.js +1 -1
- package/dist/persistence/index.js +283 -285
- package/dist/persistence/indexdb.js +263 -126
- package/dist/plugins/bundler/helpers.js +21 -12
- package/dist/plugins/bundler/index.d.ts +7 -0
- package/dist/plugins/bundler/index.d.ts.map +1 -1
- package/dist/plugins/bundler/index.js +305 -171
- package/dist/plugins/client/index.js +1 -5
- package/dist/plugins/client/persistence.js +95 -90
- package/dist/resolve.js +18 -25
- package/dist/schemas/compose.js +6 -7
- package/dist/schemas/extensions/document/x-internal.js +3 -7
- package/dist/schemas/extensions/document/x-scalar-environments.js +16 -22
- package/dist/schemas/extensions/document/x-scalar-icon.js +3 -7
- package/dist/schemas/extensions/document/x-scalar-ignore.js +3 -7
- package/dist/schemas/extensions/document/x-scalar-is-dirty.js +21 -8
- package/dist/schemas/extensions/document/x-scalar-original-document-hash.js +17 -8
- package/dist/schemas/extensions/document/x-scalar-registry-meta.js +15 -21
- package/dist/schemas/extensions/document/x-scalar-sdk-installation.js +5 -13
- package/dist/schemas/extensions/document/x-scalar-watch-mode.js +4 -8
- package/dist/schemas/extensions/document/x-tags.js +3 -7
- package/dist/schemas/extensions/example/x-disabled.js +17 -7
- package/dist/schemas/extensions/general/x-scalar-active-environment.js +4 -7
- package/dist/schemas/extensions/general/x-scalar-cookies.js +9 -14
- package/dist/schemas/extensions/general/x-scalar-order.js +8 -7
- package/dist/schemas/extensions/operation/index.js +4 -23
- package/dist/schemas/extensions/operation/x-badge.js +42 -50
- package/dist/schemas/extensions/operation/x-code-samples.js +8 -12
- package/dist/schemas/extensions/operation/x-draft-examples.js +3 -7
- package/dist/schemas/extensions/operation/x-post-response.js +18 -7
- package/dist/schemas/extensions/operation/x-scalar-disable-parameters.js +57 -13
- package/dist/schemas/extensions/operation/x-scalar-selected-content-type.js +9 -7
- package/dist/schemas/extensions/operation/x-scalar-stability.js +15 -14
- package/dist/schemas/extensions/parameter/x-global.js +12 -7
- package/dist/schemas/extensions/schema/x-additional-properties-name.js +10 -7
- package/dist/schemas/extensions/schema/x-enum-descriptions.js +17 -12
- package/dist/schemas/extensions/schema/x-enum-varnames.js +21 -8
- package/dist/schemas/extensions/schema/x-examples.js +3 -7
- package/dist/schemas/extensions/schema/x-variable.js +3 -7
- package/dist/schemas/extensions/security/index.js +1 -1
- package/dist/schemas/extensions/security/x-default-scopes.js +16 -7
- package/dist/schemas/extensions/security/x-scalar-credentials-location.js +16 -7
- package/dist/schemas/extensions/security/x-scalar-security-body.js +14 -7
- package/dist/schemas/extensions/security/x-scalar-security-query.js +14 -7
- package/dist/schemas/extensions/security/x-scalar-security-secrets.js +66 -37
- package/dist/schemas/extensions/security/x-tokenName.js +11 -7
- package/dist/schemas/extensions/security/x-use-pkce.js +6 -10
- package/dist/schemas/extensions/server/x-scalar-selected-server.js +3 -7
- package/dist/schemas/extensions/tag/index.js +1 -1
- package/dist/schemas/extensions/tag/x-display-name.js +11 -7
- package/dist/schemas/extensions/tag/x-tag-groups.js +13 -15
- package/dist/schemas/extensions/workspace/index.js +2 -11
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js +13 -7
- package/dist/schemas/extensions/workspace/x-scalar-tabs.js +15 -13
- package/dist/schemas/extensions.js +11 -15
- package/dist/schemas/inmemory-workspace.d.ts +6 -0
- package/dist/schemas/inmemory-workspace.d.ts.map +1 -1
- package/dist/schemas/inmemory-workspace.js +13 -21
- package/dist/schemas/navigation.js +48 -85
- package/dist/schemas/reference-config/appearance.js +15 -22
- package/dist/schemas/reference-config/features.js +14 -21
- package/dist/schemas/reference-config/index.d.ts +2 -0
- package/dist/schemas/reference-config/index.d.ts.map +1 -1
- package/dist/schemas/reference-config/index.js +42 -44
- package/dist/schemas/reference-config/meta.js +11 -18
- package/dist/schemas/reference-config/routing.js +7 -14
- package/dist/schemas/reference-config/settings.d.ts +2 -0
- package/dist/schemas/reference-config/settings.d.ts.map +1 -1
- package/dist/schemas/reference-config/settings.js +10 -17
- package/dist/schemas/typebox-coerce.js +23 -6
- package/dist/schemas/v3.1/strict/callback.js +6 -12
- package/dist/schemas/v3.1/strict/components.js +26 -48
- package/dist/schemas/v3.1/strict/contact.js +9 -12
- package/dist/schemas/v3.1/strict/discriminator.js +11 -10
- package/dist/schemas/v3.1/strict/encoding.js +15 -12
- package/dist/schemas/v3.1/strict/example.js +11 -13
- package/dist/schemas/v3.1/strict/external-documentation.js +7 -10
- package/dist/schemas/v3.1/strict/header.js +27 -28
- package/dist/schemas/v3.1/strict/info.js +10 -16
- package/dist/schemas/v3.1/strict/license.js +9 -12
- package/dist/schemas/v3.1/strict/link.js +22 -19
- package/dist/schemas/v3.1/strict/media-type.js +17 -16
- package/dist/schemas/v3.1/strict/oauth-flow.js +28 -62
- package/dist/schemas/v3.1/strict/oauthflows.js +14 -20
- package/dist/schemas/v3.1/strict/openapi-document.d.ts +70 -0
- package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/openapi-document.js +126 -210
- package/dist/schemas/v3.1/strict/operation.js +16 -43
- package/dist/schemas/v3.1/strict/parameter.d.ts +6 -0
- package/dist/schemas/v3.1/strict/parameter.d.ts.map +1 -1
- package/dist/schemas/v3.1/strict/parameter.js +29 -35
- package/dist/schemas/v3.1/strict/path-item.js +36 -40
- package/dist/schemas/v3.1/strict/paths.js +8 -11
- package/dist/schemas/v3.1/strict/ref-definitions.js +76 -100
- package/dist/schemas/v3.1/strict/reference.js +18 -21
- package/dist/schemas/v3.1/strict/request-body.js +8 -16
- package/dist/schemas/v3.1/strict/response.js +12 -16
- package/dist/schemas/v3.1/strict/responses.js +13 -11
- package/dist/schemas/v3.1/strict/schema.js +149 -157
- package/dist/schemas/v3.1/strict/security-requirement.js +13 -12
- package/dist/schemas/v3.1/strict/security-scheme.js +29 -41
- package/dist/schemas/v3.1/strict/server-variable.js +9 -12
- package/dist/schemas/v3.1/strict/server.js +10 -13
- package/dist/schemas/v3.1/strict/tag.js +11 -20
- package/dist/schemas/v3.1/strict/type-guards.js +20 -20
- package/dist/schemas/v3.1/strict/xml.js +17 -16
- package/dist/schemas/workspace-specification/index.js +11 -23
- package/dist/schemas/workspace-specification/info.js +4 -8
- package/dist/schemas/workspace.d.ts +6 -0
- package/dist/schemas/workspace.d.ts.map +1 -1
- package/dist/schemas/workspace.js +25 -51
- package/dist/schemas.js +2 -6
- package/dist/server.js +286 -176
- package/dist/workspace-plugin.js +1 -1
- package/package.json +13 -19
- package/dist/client.js.map +0 -7
- package/dist/entities/auth/index.js.map +0 -7
- package/dist/entities/auth/schema.js.map +0 -7
- package/dist/entities/history/index.js.map +0 -7
- package/dist/entities/history/schema.js.map +0 -7
- package/dist/events/bus.js.map +0 -7
- package/dist/events/definitions/analytics.js.map +0 -7
- package/dist/events/definitions/auth.js.map +0 -7
- package/dist/events/definitions/common.js.map +0 -7
- package/dist/events/definitions/cookie.js.map +0 -7
- package/dist/events/definitions/document.js.map +0 -7
- package/dist/events/definitions/environment.js.map +0 -7
- package/dist/events/definitions/hooks.js.map +0 -7
- package/dist/events/definitions/index.js.map +0 -7
- package/dist/events/definitions/meta.js.map +0 -7
- package/dist/events/definitions/operation.js.map +0 -7
- package/dist/events/definitions/server.js.map +0 -7
- package/dist/events/definitions/tabs.js.map +0 -7
- package/dist/events/definitions/tag.js.map +0 -7
- package/dist/events/definitions/ui.js.map +0 -7
- package/dist/events/definitions/workspace.js.map +0 -7
- package/dist/events/index.js.map +0 -7
- package/dist/events/listeners.js.map +0 -7
- package/dist/events/old-definitions.js.map +0 -7
- package/dist/helpers/apply-selective-updates.d.ts +0 -19
- package/dist/helpers/apply-selective-updates.d.ts.map +0 -1
- package/dist/helpers/apply-selective-updates.js +0 -37
- package/dist/helpers/apply-selective-updates.js.map +0 -7
- package/dist/helpers/deep-clone.js.map +0 -7
- package/dist/helpers/detect-changes-proxy.js.map +0 -7
- package/dist/helpers/general.js.map +0 -7
- package/dist/helpers/generate-unique-value.js.map +0 -7
- package/dist/helpers/get-fetch.js.map +0 -7
- package/dist/helpers/get-resolved-ref.js.map +0 -7
- package/dist/helpers/is-non-optional-security-requirement.js.map +0 -7
- package/dist/helpers/merge-object.js.map +0 -7
- package/dist/helpers/overrides-proxy.js.map +0 -7
- package/dist/helpers/unpack-proxy.js.map +0 -7
- package/dist/mutators/auth.js.map +0 -7
- package/dist/mutators/cookie.js.map +0 -7
- package/dist/mutators/document.js.map +0 -7
- package/dist/mutators/environment.js.map +0 -7
- package/dist/mutators/helpers.js.map +0 -7
- package/dist/mutators/index.js.map +0 -7
- package/dist/mutators/operation/body.js.map +0 -7
- package/dist/mutators/operation/extensions.js.map +0 -7
- package/dist/mutators/operation/helpers/fetch-request-to-har.js.map +0 -7
- package/dist/mutators/operation/helpers/fetch-response-to-har.js.map +0 -7
- package/dist/mutators/operation/helpers/get-parameter-position.js.map +0 -7
- package/dist/mutators/operation/helpers/har-to-operation.js.map +0 -7
- package/dist/mutators/operation/helpers/sync-path-parameters.js.map +0 -7
- package/dist/mutators/operation/history.js.map +0 -7
- package/dist/mutators/operation/index.js.map +0 -7
- package/dist/mutators/operation/operation.js.map +0 -7
- package/dist/mutators/operation/parameters.js.map +0 -7
- package/dist/mutators/server.js.map +0 -7
- package/dist/mutators/tabs.js.map +0 -7
- package/dist/mutators/tag.js.map +0 -7
- package/dist/mutators/workspace.js.map +0 -7
- package/dist/navigation/get-navigation-options.js.map +0 -7
- package/dist/navigation/helpers/get-openapi-object.js.map +0 -7
- package/dist/navigation/helpers/get-operation-entries.js.map +0 -7
- package/dist/navigation/helpers/get-parent-entry.js.map +0 -7
- package/dist/navigation/helpers/get-tag-entries.js.map +0 -7
- package/dist/navigation/helpers/get-tag.js.map +0 -7
- package/dist/navigation/helpers/get-x-keys.js.map +0 -7
- package/dist/navigation/helpers/traverse-description.js.map +0 -7
- package/dist/navigation/helpers/traverse-document.js.map +0 -7
- package/dist/navigation/helpers/traverse-examples.js.map +0 -7
- package/dist/navigation/helpers/traverse-paths.js.map +0 -7
- package/dist/navigation/helpers/traverse-schemas.js.map +0 -7
- package/dist/navigation/helpers/traverse-tags.js.map +0 -7
- package/dist/navigation/helpers/traverse-webhooks.js.map +0 -7
- package/dist/navigation/helpers/update-order-ids.js.map +0 -7
- package/dist/navigation/helpers/utils.js.map +0 -7
- package/dist/navigation/index.js.map +0 -7
- package/dist/navigation/types.js.map +0 -7
- package/dist/persistence/index.js.map +0 -7
- package/dist/persistence/indexdb.js.map +0 -7
- package/dist/plugins/bundler/helpers.js.map +0 -7
- package/dist/plugins/bundler/index.js.map +0 -7
- package/dist/plugins/client/index.js.map +0 -7
- package/dist/plugins/client/persistence.js.map +0 -7
- package/dist/resolve.js.map +0 -7
- package/dist/schemas/compose.js.map +0 -7
- package/dist/schemas/extensions/document/x-internal.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-environments.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-icon.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-ignore.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-is-dirty.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-original-document-hash.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-registry-meta.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-sdk-installation.js.map +0 -7
- package/dist/schemas/extensions/document/x-scalar-watch-mode.js.map +0 -7
- package/dist/schemas/extensions/document/x-tags.js.map +0 -7
- package/dist/schemas/extensions/example/x-disabled.js.map +0 -7
- package/dist/schemas/extensions/general/x-scalar-active-environment.js.map +0 -7
- package/dist/schemas/extensions/general/x-scalar-cookies.js.map +0 -7
- package/dist/schemas/extensions/general/x-scalar-order.js.map +0 -7
- package/dist/schemas/extensions/operation/index.js.map +0 -7
- package/dist/schemas/extensions/operation/x-badge.js.map +0 -7
- package/dist/schemas/extensions/operation/x-code-samples.js.map +0 -7
- package/dist/schemas/extensions/operation/x-draft-examples.js.map +0 -7
- package/dist/schemas/extensions/operation/x-post-response.js.map +0 -7
- package/dist/schemas/extensions/operation/x-scalar-disable-parameters.js.map +0 -7
- package/dist/schemas/extensions/operation/x-scalar-selected-content-type.js.map +0 -7
- package/dist/schemas/extensions/operation/x-scalar-stability.js.map +0 -7
- package/dist/schemas/extensions/parameter/x-global.js.map +0 -7
- package/dist/schemas/extensions/schema/x-additional-properties-name.js.map +0 -7
- package/dist/schemas/extensions/schema/x-enum-descriptions.js.map +0 -7
- package/dist/schemas/extensions/schema/x-enum-varnames.js.map +0 -7
- package/dist/schemas/extensions/schema/x-examples.js.map +0 -7
- package/dist/schemas/extensions/schema/x-variable.js.map +0 -7
- package/dist/schemas/extensions/security/index.js.map +0 -7
- package/dist/schemas/extensions/security/x-default-scopes.js.map +0 -7
- package/dist/schemas/extensions/security/x-scalar-credentials-location.js.map +0 -7
- package/dist/schemas/extensions/security/x-scalar-security-body.js.map +0 -7
- package/dist/schemas/extensions/security/x-scalar-security-query.js.map +0 -7
- package/dist/schemas/extensions/security/x-scalar-security-secrets.js.map +0 -7
- package/dist/schemas/extensions/security/x-tokenName.js.map +0 -7
- package/dist/schemas/extensions/security/x-use-pkce.js.map +0 -7
- package/dist/schemas/extensions/server/x-scalar-selected-server.js.map +0 -7
- package/dist/schemas/extensions/tag/index.js.map +0 -7
- package/dist/schemas/extensions/tag/x-display-name.js.map +0 -7
- package/dist/schemas/extensions/tag/x-tag-groups.js.map +0 -7
- package/dist/schemas/extensions/workspace/index.js.map +0 -7
- package/dist/schemas/extensions/workspace/x-scalar-active-proxy.js.map +0 -7
- package/dist/schemas/extensions/workspace/x-scalar-tabs.js.map +0 -7
- package/dist/schemas/extensions.js.map +0 -7
- package/dist/schemas/inmemory-workspace.js.map +0 -7
- package/dist/schemas/navigation.js.map +0 -7
- package/dist/schemas/reference-config/appearance.js.map +0 -7
- package/dist/schemas/reference-config/features.js.map +0 -7
- package/dist/schemas/reference-config/index.js.map +0 -7
- package/dist/schemas/reference-config/meta.js.map +0 -7
- package/dist/schemas/reference-config/routing.js.map +0 -7
- package/dist/schemas/reference-config/settings.js.map +0 -7
- package/dist/schemas/typebox-coerce.js.map +0 -7
- package/dist/schemas/v3.1/strict/callback.js.map +0 -7
- package/dist/schemas/v3.1/strict/components.js.map +0 -7
- package/dist/schemas/v3.1/strict/contact.js.map +0 -7
- package/dist/schemas/v3.1/strict/discriminator.js.map +0 -7
- package/dist/schemas/v3.1/strict/encoding.js.map +0 -7
- package/dist/schemas/v3.1/strict/example.js.map +0 -7
- package/dist/schemas/v3.1/strict/external-documentation.js.map +0 -7
- package/dist/schemas/v3.1/strict/header.js.map +0 -7
- package/dist/schemas/v3.1/strict/info.js.map +0 -7
- package/dist/schemas/v3.1/strict/license.js.map +0 -7
- package/dist/schemas/v3.1/strict/link.js.map +0 -7
- package/dist/schemas/v3.1/strict/media-type.js.map +0 -7
- package/dist/schemas/v3.1/strict/oauth-flow.js.map +0 -7
- package/dist/schemas/v3.1/strict/oauthflows.js.map +0 -7
- package/dist/schemas/v3.1/strict/openapi-document.js.map +0 -7
- package/dist/schemas/v3.1/strict/operation.js.map +0 -7
- package/dist/schemas/v3.1/strict/parameter.js.map +0 -7
- package/dist/schemas/v3.1/strict/path-item.js.map +0 -7
- package/dist/schemas/v3.1/strict/paths.js.map +0 -7
- package/dist/schemas/v3.1/strict/ref-definitions.js.map +0 -7
- package/dist/schemas/v3.1/strict/reference.js.map +0 -7
- package/dist/schemas/v3.1/strict/request-body.js.map +0 -7
- package/dist/schemas/v3.1/strict/response.js.map +0 -7
- package/dist/schemas/v3.1/strict/responses.js.map +0 -7
- package/dist/schemas/v3.1/strict/schema.js.map +0 -7
- package/dist/schemas/v3.1/strict/security-requirement.js.map +0 -7
- package/dist/schemas/v3.1/strict/security-scheme.js.map +0 -7
- package/dist/schemas/v3.1/strict/server-variable.js.map +0 -7
- package/dist/schemas/v3.1/strict/server.js.map +0 -7
- package/dist/schemas/v3.1/strict/tag.js.map +0 -7
- package/dist/schemas/v3.1/strict/type-guards.js.map +0 -7
- package/dist/schemas/v3.1/strict/xml.js.map +0 -7
- package/dist/schemas/workspace-specification/index.js.map +0 -7
- package/dist/schemas/workspace-specification/info.js.map +0 -7
- package/dist/schemas/workspace.js.map +0 -7
- package/dist/schemas.js.map +0 -7
- package/dist/server.js.map +0 -7
- package/dist/workspace-plugin.js.map +0 -7
|
@@ -1,64 +1,113 @@
|
|
|
1
|
-
import { findVariables } from
|
|
2
|
-
import { unpackProxyObject } from
|
|
3
|
-
import { getParameterPositions } from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { findVariables } from '@scalar/helpers/regex/find-variables';
|
|
2
|
+
import { unpackProxyObject } from '../../../helpers/unpack-proxy.js';
|
|
3
|
+
import { getParameterPositions } from '../../../mutators/operation/helpers/get-parameter-position.js';
|
|
4
|
+
/**
|
|
5
|
+
* Synchronizes path parameters when a path string changes.
|
|
6
|
+
*
|
|
7
|
+
* Behavior:
|
|
8
|
+
* - Preserves as much of the existing parameter configuration as possible when the set of path variables
|
|
9
|
+
* changes due to a path update.
|
|
10
|
+
* - If a parameter with the same name exists in the new path, its configuration is preserved.
|
|
11
|
+
* - If a parameter appears at the same position as an old parameter (name changed), the old parameter's
|
|
12
|
+
* configuration is kept and its name is updated in place via the resolved object.
|
|
13
|
+
* - Any newly required parameters (variables present in the new path but not in the old path) are added
|
|
14
|
+
* as new minimal parameter objects.
|
|
15
|
+
* - Parameters that are no longer present in the new path are dropped.
|
|
16
|
+
* - Non-path parameters (query, header, etc.) from `existingParameters` are included unchanged in the result.
|
|
17
|
+
*
|
|
18
|
+
* ⚠️ This function mutates parameter objects in the `existingParameters` array in place when a path
|
|
19
|
+
* parameter is renamed (i.e., reused objects may have their `name` updated via `resolve`).
|
|
20
|
+
*
|
|
21
|
+
* Returns the full new parameters array. Use the return value directly as the new operation.parameters.
|
|
22
|
+
*
|
|
23
|
+
* @param newPath - The path string after the change (e.g. '/users/{id}/posts/{postId}').
|
|
24
|
+
* @param oldPath - The path string before the change (e.g. '/users/{userId}').
|
|
25
|
+
* @param existingParameters - Current operation parameters (may be refs); path params are synced, others passed through.
|
|
26
|
+
* @param resolve - Callback to resolve a reference to a minimal parameter object (used for reading and mutating).
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* // Given:
|
|
31
|
+
* // - oldPath: '/users/{userId}'
|
|
32
|
+
* // - newPath: '/users/{id}/posts/{postId}'
|
|
33
|
+
* // - existingParameters: [ { name: 'userId', in: 'path' } ]
|
|
34
|
+
*
|
|
35
|
+
* const newParams = syncParametersForPathChange(
|
|
36
|
+
* '/users/{id}/posts/{postId}',
|
|
37
|
+
* '/users/{userId}',
|
|
38
|
+
* existingParameters,
|
|
39
|
+
* (node) => resolveRef(node) // or unwrap $ref to get { name, in }
|
|
40
|
+
* )
|
|
41
|
+
*
|
|
42
|
+
* // existingParameters[0] was mutated in place (name -> 'id' via resolve).
|
|
43
|
+
* // newParams is the full array: [ renamed path param 'id', new path param 'postId' ]
|
|
44
|
+
*
|
|
45
|
+
* operation.parameters = newParams
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export const syncParametersForPathChange = (newPath, oldPath, existingParameters, resolve) => {
|
|
49
|
+
// Extract path parameter names from both paths
|
|
50
|
+
const oldPathParams = findVariables(oldPath, { includePath: true, includeEnv: false }).filter((v) => v !== undefined);
|
|
51
|
+
const newPathParams = findVariables(newPath, { includePath: true, includeEnv: false }).filter((v) => v !== undefined);
|
|
52
|
+
const oldPositions = getParameterPositions(oldPath, oldPathParams);
|
|
53
|
+
const newPositions = getParameterPositions(newPath, newPathParams);
|
|
54
|
+
// Keep a map of path parameters by name for quick lookup (references unchanged objects)
|
|
55
|
+
const pathParameters = Object.create(null);
|
|
56
|
+
// Populate the map with the existing path parameters
|
|
57
|
+
for (const param of existingParameters) {
|
|
58
|
+
const resolved = resolve(param);
|
|
59
|
+
if (resolved?.in === 'path') {
|
|
60
|
+
pathParameters[resolved.name] = param;
|
|
61
|
+
}
|
|
18
62
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
63
|
+
// Keep track of old parameters that we have already used
|
|
64
|
+
const usedOldParams = new Set();
|
|
65
|
+
// Keep track of path parameter objects we keep after sync
|
|
66
|
+
const usedPathParameters = new Set();
|
|
67
|
+
// These are only truly new parameters created in this run
|
|
68
|
+
const newPathParameters = [];
|
|
69
|
+
for (const newParamName of newPathParams) {
|
|
70
|
+
// Case 1: Parameter with same name exists - preserve its config, and mark as used
|
|
71
|
+
if (pathParameters[newParamName]) {
|
|
72
|
+
usedOldParams.add(newParamName);
|
|
73
|
+
usedPathParameters.add(pathParameters[newParamName]);
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
// Case 2: Check for parameter at same position (likely a rename)
|
|
77
|
+
const newParamPosition = newPositions[newParamName];
|
|
78
|
+
const oldParamAtPosition = oldPathParams.find((oldParam) => oldPositions[oldParam] === newParamPosition && !usedOldParams.has(oldParam));
|
|
79
|
+
// If found, mutate old parameter's name and mark as used
|
|
80
|
+
if (oldParamAtPosition && pathParameters[oldParamAtPosition] !== undefined) {
|
|
81
|
+
const oldParam = pathParameters[oldParamAtPosition];
|
|
82
|
+
if (oldParam) {
|
|
83
|
+
// Change its name in-place
|
|
84
|
+
resolve(oldParam).name = newParamName;
|
|
85
|
+
usedPathParameters.add(oldParam);
|
|
86
|
+
}
|
|
87
|
+
usedOldParams.add(oldParamAtPosition);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
// Case 3: New parameter - create a new minimal parameter object
|
|
91
|
+
newPathParameters.push({
|
|
92
|
+
in: 'path',
|
|
93
|
+
name: newParamName,
|
|
94
|
+
});
|
|
28
95
|
}
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
96
|
+
const result = [];
|
|
97
|
+
// Push the raw parameters to enure we are not pushing proxies
|
|
98
|
+
for (const param of existingParameters) {
|
|
99
|
+
const resolved = resolve(param);
|
|
100
|
+
const rawParam = unpackProxyObject(param, { depth: 1 });
|
|
101
|
+
if (resolved?.in !== 'path') {
|
|
102
|
+
result.push(rawParam);
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
// Only adda the parameter if HAS not been used in the old path
|
|
106
|
+
// This we we ensure to drop parameters that are no longer present in the new path
|
|
107
|
+
if (usedPathParameters.has(param)) {
|
|
108
|
+
result.push(rawParam);
|
|
109
|
+
}
|
|
41
110
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
name: newParamName
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
const result = [];
|
|
48
|
-
for (const param of existingParameters) {
|
|
49
|
-
const resolved = resolve(param);
|
|
50
|
-
const rawParam = unpackProxyObject(param, { depth: 1 });
|
|
51
|
-
if (resolved?.in !== "path") {
|
|
52
|
-
result.push(rawParam);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
if (usedPathParameters.has(param)) {
|
|
56
|
-
result.push(rawParam);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return result.concat(newPathParameters);
|
|
60
|
-
};
|
|
61
|
-
export {
|
|
62
|
-
syncParametersForPathChange
|
|
111
|
+
// Only return newly created parameter objects—call site should combine with possibly-mutated originals
|
|
112
|
+
return result.concat(newPathParameters);
|
|
63
113
|
};
|
|
64
|
-
//# sourceMappingURL=sync-path-parameters.js.map
|
|
@@ -1,68 +1,64 @@
|
|
|
1
|
-
import { getResolvedRef } from
|
|
2
|
-
import { isContentTypeParameterObject } from
|
|
3
|
-
import { fetchRequestToHar } from
|
|
4
|
-
import { fetchResponseToHar } from
|
|
5
|
-
import { harToOperation } from
|
|
6
|
-
const addResponseToHistory = async (store, document, { payload, meta }) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
|
|
12
|
-
if (!operation) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
const operationParameters = operation.parameters ?? [];
|
|
16
|
-
const variables = operationParameters.reduce((acc, param) => {
|
|
17
|
-
const resolvedParam = getResolvedRef(param);
|
|
18
|
-
if (isContentTypeParameterObject(resolvedParam)) {
|
|
19
|
-
return acc;
|
|
1
|
+
import { getResolvedRef } from '../../helpers/get-resolved-ref.js';
|
|
2
|
+
import { isContentTypeParameterObject } from '../../schemas/v3.1/strict/type-guards.js';
|
|
3
|
+
import { fetchRequestToHar } from './helpers/fetch-request-to-har.js';
|
|
4
|
+
import { fetchResponseToHar } from './helpers/fetch-response-to-har.js';
|
|
5
|
+
import { harToOperation } from './helpers/har-to-operation.js';
|
|
6
|
+
export const addResponseToHistory = async (store, document, { payload, meta }) => {
|
|
7
|
+
const documentName = document?.['x-scalar-navigation']?.name;
|
|
8
|
+
if (!document || !documentName || !payload) {
|
|
9
|
+
return;
|
|
20
10
|
}
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
|
|
12
|
+
if (!operation) {
|
|
13
|
+
return;
|
|
23
14
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
const historyItem = store?.history.getHistory(document["x-scalar-navigation"]?.name ?? "", meta.path, meta.method)?.[index];
|
|
52
|
-
if (!historyItem) {
|
|
53
|
-
console.error("History item not found", index);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
harToOperation({
|
|
57
|
-
harRequest: historyItem.request,
|
|
58
|
-
exampleKey: "draft",
|
|
59
|
-
baseOperation: operation,
|
|
60
|
-
pathVariables: historyItem.requestMetadata.variables
|
|
61
|
-
});
|
|
62
|
-
callback("success");
|
|
15
|
+
const operationParameters = operation.parameters ?? [];
|
|
16
|
+
// Get all the variables from the operation parameters
|
|
17
|
+
const variables = operationParameters.reduce((acc, param) => {
|
|
18
|
+
const resolvedParam = getResolvedRef(param);
|
|
19
|
+
if (isContentTypeParameterObject(resolvedParam)) {
|
|
20
|
+
return acc;
|
|
21
|
+
}
|
|
22
|
+
if (resolvedParam.in === 'path') {
|
|
23
|
+
acc[resolvedParam.name] = getResolvedRef(resolvedParam.examples?.[meta.exampleKey])?.value ?? '';
|
|
24
|
+
}
|
|
25
|
+
return acc;
|
|
26
|
+
}, {});
|
|
27
|
+
const requestHar = await fetchRequestToHar({ request: payload.request });
|
|
28
|
+
const responseHar = await fetchResponseToHar({ response: payload.response });
|
|
29
|
+
store?.history.addHistory(documentName, meta.path, meta.method, {
|
|
30
|
+
response: responseHar,
|
|
31
|
+
request: requestHar,
|
|
32
|
+
meta: {
|
|
33
|
+
example: meta.exampleKey,
|
|
34
|
+
},
|
|
35
|
+
time: payload.duration,
|
|
36
|
+
timestamp: payload.timestamp,
|
|
37
|
+
requestMetadata: {
|
|
38
|
+
variables,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
63
41
|
};
|
|
64
|
-
export {
|
|
65
|
-
|
|
66
|
-
|
|
42
|
+
export const reloadOperationHistory = (store, document, { meta, index, callback }) => {
|
|
43
|
+
if (!document) {
|
|
44
|
+
console.error('Document not found', meta.path, meta.method);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const operation = getResolvedRef(document.paths?.[meta.path]?.[meta.method]);
|
|
48
|
+
if (!operation) {
|
|
49
|
+
console.error('Operation not found', meta.path, meta.method);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const historyItem = store?.history.getHistory(document['x-scalar-navigation']?.name ?? '', meta.path, meta.method)?.[index];
|
|
53
|
+
if (!historyItem) {
|
|
54
|
+
console.error('History item not found', index);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
harToOperation({
|
|
58
|
+
harRequest: historyItem.request,
|
|
59
|
+
exampleKey: 'draft',
|
|
60
|
+
baseOperation: operation,
|
|
61
|
+
pathVariables: historyItem.requestMetadata.variables,
|
|
62
|
+
});
|
|
63
|
+
callback('success');
|
|
67
64
|
};
|
|
68
|
-
//# sourceMappingURL=history.js.map
|
|
@@ -1,50 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} from
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}) => {
|
|
27
|
-
return {
|
|
28
|
-
createOperation: (payload) => createOperation(store, payload),
|
|
29
|
-
updateOperationMeta: (payload) => updateOperationMeta(store, document, payload),
|
|
30
|
-
updateOperationPathMethod: (payload) => updateOperationPathMethod(document, store, payload),
|
|
31
|
-
deleteOperation: (payload) => deleteOperation(store, payload),
|
|
32
|
-
createOperationDraftExample: (payload) => createOperationDraftExample(store, payload),
|
|
33
|
-
deleteOperationExample: (payload) => deleteOperationExample(store, payload),
|
|
34
|
-
renameOperationExample: (payload) => renameOperationExample(store, payload),
|
|
35
|
-
updateOperationExtension: (payload) => updateOperationExtension(document, payload),
|
|
36
|
-
updateOperationExtraParameters: (payload) => updateOperationExtraParameters(document, payload),
|
|
37
|
-
upsertOperationParameter: (payload) => upsertOperationParameter(document, payload),
|
|
38
|
-
deleteOperationParameter: (payload) => deleteOperationParameter(document, payload),
|
|
39
|
-
deleteAllOperationParameters: (payload) => deleteAllOperationParameters(document, payload),
|
|
40
|
-
updateOperationRequestBodyContentType: (payload) => updateOperationRequestBodyContentType(document, payload),
|
|
41
|
-
updateOperationRequestBodyExample: (payload) => updateOperationRequestBodyExample(document, payload),
|
|
42
|
-
updateOperationRequestBodyFormValue: (payload) => updateOperationRequestBodyFormValue(document, payload),
|
|
43
|
-
addResponseToHistory: (payload) => addResponseToHistory(store, document, payload),
|
|
44
|
-
reloadOperationHistory: (payload) => reloadOperationHistory(store, document, payload)
|
|
45
|
-
};
|
|
1
|
+
import { updateOperationRequestBodyContentType, updateOperationRequestBodyExample, updateOperationRequestBodyFormValue, } from '../../mutators/operation/body.js';
|
|
2
|
+
import { updateOperationExtension } from '../../mutators/operation/extensions.js';
|
|
3
|
+
import { addResponseToHistory, reloadOperationHistory } from '../../mutators/operation/history.js';
|
|
4
|
+
import { createOperation, createOperationDraftExample, deleteOperation, deleteOperationExample, renameOperationExample, updateOperationMeta, updateOperationPathMethod, } from '../../mutators/operation/operation.js';
|
|
5
|
+
import { deleteAllOperationParameters, deleteOperationParameter, updateOperationExtraParameters, upsertOperationParameter, } from '../../mutators/operation/parameters.js';
|
|
6
|
+
export const operationMutatorsFactory = ({ document, store, }) => {
|
|
7
|
+
return {
|
|
8
|
+
createOperation: (payload) => createOperation(store, payload),
|
|
9
|
+
updateOperationMeta: (payload) => updateOperationMeta(store, document, payload),
|
|
10
|
+
updateOperationPathMethod: (payload) => updateOperationPathMethod(document, store, payload),
|
|
11
|
+
deleteOperation: (payload) => deleteOperation(store, payload),
|
|
12
|
+
createOperationDraftExample: (payload) => createOperationDraftExample(store, payload),
|
|
13
|
+
deleteOperationExample: (payload) => deleteOperationExample(store, payload),
|
|
14
|
+
renameOperationExample: (payload) => renameOperationExample(store, payload),
|
|
15
|
+
updateOperationExtension: (payload) => updateOperationExtension(document, payload),
|
|
16
|
+
updateOperationExtraParameters: (payload) => updateOperationExtraParameters(document, payload),
|
|
17
|
+
upsertOperationParameter: (payload) => upsertOperationParameter(document, payload),
|
|
18
|
+
deleteOperationParameter: (payload) => deleteOperationParameter(document, payload),
|
|
19
|
+
deleteAllOperationParameters: (payload) => deleteAllOperationParameters(document, payload),
|
|
20
|
+
updateOperationRequestBodyContentType: (payload) => updateOperationRequestBodyContentType(document, payload),
|
|
21
|
+
updateOperationRequestBodyExample: (payload) => updateOperationRequestBodyExample(document, payload),
|
|
22
|
+
updateOperationRequestBodyFormValue: (payload) => updateOperationRequestBodyFormValue(document, payload),
|
|
23
|
+
addResponseToHistory: (payload) => addResponseToHistory(store, document, payload),
|
|
24
|
+
reloadOperationHistory: (payload) => reloadOperationHistory(store, document, payload),
|
|
25
|
+
};
|
|
46
26
|
};
|
|
47
|
-
export {
|
|
48
|
-
operationMutatorsFactory
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=index.js.map
|