@redocly/api-docs 0.2.0-next.0 → 0.2.0-next.10
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/lib/RedocStandalone.d.ts +38 -0
- package/lib/RedocStandalone.js +1 -0
- package/lib/RedoclyApiDocs.js +1 -1
- package/lib/RedoclyApiDocsStandalone.d.ts +2 -0
- package/lib/RedoclyApiDocsStandalone.js +3 -3
- package/lib/adapters/asyncapi/build/navigation.js +1 -1
- package/lib/adapters/asyncapi/items/channel/content.js +1 -1
- package/lib/adapters/asyncapi/items/channel/item.js +1 -1
- package/lib/adapters/asyncapi/items/operation/item.js +1 -1
- package/lib/adapters/asyncapi/items/overview/content.js +1 -1
- package/lib/adapters/graphql/group/utils.js +1 -1
- package/lib/adapters/graphql/utils/createApiItem.js +1 -1
- package/lib/adapters/helpers.d.ts +3 -10
- package/lib/adapters/helpers.js +1 -1
- package/lib/adapters/openapi/build/context.js +1 -1
- package/lib/adapters/openapi/build-code-sample-source.d.ts +1 -1
- package/lib/adapters/openapi/build-code-sample-source.js +1 -1
- package/lib/adapters/openapi/configure/merge-utils.d.ts +1 -1
- package/lib/adapters/openapi/configure/resolve-request-values.js +1 -1
- package/lib/adapters/openapi/group/item.d.ts +0 -3
- package/lib/adapters/openapi/group/item.js +1 -1
- package/lib/adapters/openapi/index.js +1 -1
- package/lib/adapters/openapi/items/operation/content.js +1 -1
- package/lib/adapters/openapi/items/operation/item.d.ts +2 -2
- package/lib/adapters/openapi/items/operation/item.js +1 -1
- package/lib/adapters/openapi/items/overview/content.js +1 -1
- package/lib/adapters/openapi/items/schema/item.js +1 -1
- package/lib/adapters/openapi/store.js +1 -1
- package/lib/adapters/openapi/utils/merge-mock-server.d.ts +2 -2
- package/lib/adapters/rbac.d.ts +14 -0
- package/lib/adapters/rbac.js +1 -0
- package/lib/adapters/utils/descriptionToMarkdown.d.ts +6 -0
- package/lib/adapters/utils/descriptionToMarkdown.js +11 -0
- package/lib/adapters/utils/markdoc.d.ts +8 -1
- package/lib/adapters/utils/markdoc.js +1 -1
- package/lib/components/ErrorBoundary.d.ts +4 -2
- package/lib/components/ErrorBoundary.js +55 -1
- package/lib/components/Header/HeaderItem.js +5 -5
- package/lib/components/Header/HeaderPageActions.d.ts +4 -0
- package/lib/components/Header/HeaderPageActions.js +1 -0
- package/lib/components/Header/PageActions.d.ts +4 -0
- package/lib/components/Header/PageActions.js +11 -0
- package/lib/components/ItemContent/hooks.d.ts +12 -1
- package/lib/components/ItemContent/hooks.js +1 -1
- package/lib/components/ItemContent/sections/BodySection.js +3 -3
- package/lib/components/ItemContent/sections/CallbacksSection.js +4 -4
- package/lib/components/ItemContent/sections/MessagesSection.js +17 -17
- package/lib/components/ItemContent/sections/ResponsesSection.js +7 -7
- package/lib/components/Mcp/McpPrompt.js +1 -1
- package/lib/components/Mcp/McpTool.js +1 -1
- package/lib/components/Mcp/utils.d.ts +1 -1
- package/lib/components/Mcp/utils.js +1 -1
- package/lib/components/Schema/SchemaDescription.js +1 -1
- package/lib/components/Schema/styled.js +5 -5
- package/lib/components/Schema/views/ArrayRenderer.js +1 -1
- package/lib/components/Schema/views/CollapsibleNestedFields.js +1 -1
- package/lib/components/Schema/views/DiscriminatorPropertyRow.js +1 -1
- package/lib/components/Schema/views/Examples.js +1 -1
- package/lib/components/Schema/views/SwitcherRenderer.js +1 -1
- package/lib/components/Search/index.d.ts +15 -0
- package/lib/components/Search/index.js +1 -0
- package/lib/components/Security/SecurityFlowDetail.js +1 -1
- package/lib/components/Security/styled.js +7 -7
- package/lib/components/StickySidebar/FloatingButton.d.ts +1 -0
- package/lib/components/StickySidebar/FloatingButton.js +32 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.d.ts +5 -0
- package/lib/components/StickySidebar/RedoclyAttributionLogo.js +1 -0
- package/lib/components/StickySidebar/StickySidebar.js +33 -9
- package/lib/components/common/Breadcrumbs.js +2 -2
- package/lib/components/common/DeepLinkAnchor.js +9 -9
- package/lib/components/common/PanelItem.js +5 -5
- package/lib/components/common/ResponseCodeTabs.js +1 -1
- package/lib/components/common/Tag.js +1 -1
- package/lib/components/common/VendorExtensions.js +1 -1
- package/lib/components/common/ViewNested.js +2 -2
- package/lib/components/graphql/GraphQLFieldView.js +1 -1
- package/lib/components/graphql/RequiresScopesModal.js +3 -3
- package/lib/components/graphql/sections/GraphQLArgsSection.js +1 -1
- package/lib/components/markdoc/SchemaDefinition.js +1 -1
- package/lib/components/markdoc/html/html-jsx-attribute-mapping.d.ts +5 -0
- package/lib/components/markdoc/html/html-jsx-attribute-mapping.js +1 -0
- package/lib/components/markdoc/html/process-html-tokens.d.ts +1 -0
- package/lib/components/markdoc/html/process-html-tokens.js +1 -0
- package/lib/components/markdoc/markdocParser.d.ts +2 -0
- package/lib/components/markdoc/markdocParser.js +1 -1
- package/lib/components/panels/ExampleItem/CallbackPayloadItem.js +2 -2
- package/lib/components/panels/ExampleItem/CodeSampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/PayloadExampleItem.js +2 -2
- package/lib/components/panels/ExampleItem/ResponseExampleItem.js +1 -1
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.d.ts +9 -0
- package/lib/components/panels/ExampleItem/SecuritySchemeSelector.js +1 -0
- package/lib/components/panels/ExampleItem/ServerDropdown.js +2 -2
- package/lib/components/panels/ExampleItem/generate-request-sample.d.ts +28 -0
- package/lib/components/panels/ExampleItem/generate-request-sample.js +1 -0
- package/lib/components/panels/ExampleItem/selectors.d.ts +5 -2
- package/lib/components/panels/ExampleItem/selectors.js +1 -1
- package/lib/components/panels/ExampleItem/styled.d.ts +2 -49
- package/lib/components/panels/ExampleItem/styled.js +11 -5
- package/lib/components/panels/ExampleItem/useActiveServer.d.ts +17 -0
- package/lib/components/panels/ExampleItem/useActiveServer.js +1 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.d.ts +23 -0
- package/lib/components/panels/ExampleItem/useCodeSampleLanguages.js +1 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.d.ts +18 -0
- package/lib/components/panels/ExampleItem/useReplayRequestState.js +1 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.d.ts +3 -0
- package/lib/components/panels/ExampleItem/useTryItFooter.js +7 -0
- package/lib/components/panels/GroupPanelItem.js +1 -1
- package/lib/components/panels/LanguageItem/LanguagePanelItem.js +5 -1
- package/lib/components/panels/LanguageItem/styled.js +17 -14
- package/lib/components/panels/McpExamplePanelItem.js +2 -2
- package/lib/components/panels/McpPanelItem.js +2 -2
- package/lib/components/panels/ServerItem/ServerItem.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerModal.js +1 -1
- package/lib/components/panels/asyncapi/BrokerItem/BrokerPanelItem.js +1 -1
- package/lib/components/panels/asyncapi/MessageBindingItem/MessageBindingItem.js +1 -1
- package/lib/components/panels/shared-panel-styles.js +1 -1
- package/lib/components/panels/styled.js +1 -1
- package/lib/components/pluggable/RedocExample.js +5 -2
- package/lib/components/pluggable/RedocResponseSamples.js +1 -1
- package/lib/hoc/withLicenseGate.d.ts +5 -0
- package/lib/hoc/withLicenseGate.js +1 -0
- package/lib/hoc/withRouter.js +1 -1
- package/lib/hoc/withStoreProvider.d.ts +2 -0
- package/lib/hoc/withStoreProvider.js +1 -1
- package/lib/hooks/deepLinkHash.d.ts +5 -0
- package/lib/hooks/deepLinkHash.js +1 -0
- package/lib/hooks/useApiDocsScroll.js +1 -1
- package/lib/hooks/useCopySpecSlice.d.ts +9 -0
- package/lib/hooks/useCopySpecSlice.js +1 -0
- package/lib/hooks/useDeepLinkSection.js +1 -1
- package/lib/hooks/useInitialTelemetry.d.ts +2 -0
- package/lib/hooks/useInitialTelemetry.js +1 -0
- package/lib/hooks/useLicense.js +1 -1
- package/lib/hooks/useLicenseGate.d.ts +6 -0
- package/lib/hooks/useLicenseGate.js +1 -0
- package/lib/hooks/useRouterHashBridge.d.ts +4 -0
- package/lib/hooks/useRouterHashBridge.js +1 -1
- package/lib/hooks/useScrollSpyUrlSync.js +1 -1
- package/lib/hooks/useUrlHash.d.ts +3 -2
- package/lib/hooks/useUrlHash.js +1 -1
- package/lib/hooks/useUrlHashReassert.d.ts +2 -0
- package/lib/hooks/useUrlHashReassert.js +1 -0
- package/lib/index.d.ts +5 -1
- package/lib/index.js +1 -1
- package/lib/jotai/app.d.ts +6 -0
- package/lib/jotai/app.js +1 -1
- package/lib/jotai/examples.js +1 -1
- package/lib/jotai/itemStore.d.ts +1 -0
- package/lib/jotai/itemStore.js +1 -1
- package/lib/jotai/store.d.ts +4 -0
- package/lib/jotai/store.js +1 -1
- package/lib/options/editionOverrides.d.ts +3 -0
- package/lib/options/editionOverrides.js +1 -0
- package/lib/options/helpers.d.ts +1 -2
- package/lib/options/helpers.js +1 -1
- package/lib/options/normalizeOptions.d.ts +1 -1
- package/lib/options/normalizeOptions.js +1 -1
- package/lib/options/standaloneLayoutVars.d.ts +3 -0
- package/lib/options/standaloneLayoutVars.js +1 -0
- package/lib/otel-semantic-conventions.d.ts +10 -0
- package/lib/otel-semantic-conventions.js +1 -0
- package/lib/pages/ItemPage.js +4 -2
- package/lib/pages/NotFoundPage.js +40 -1
- package/lib/services/code-samples/apply-env-variables.d.ts +8 -0
- package/lib/services/code-samples/apply-env-variables.js +1 -0
- package/lib/services/code-samples/builder.d.ts +8 -5
- package/lib/services/code-samples/builder.js +1 -1
- package/lib/services/code-samples/discriminator.d.ts +16 -10
- package/lib/services/code-samples/discriminator.js +1 -1
- package/lib/services/code-samples/generators/java8.js +2 -2
- package/lib/services/code-samples/language-availability.d.ts +4 -0
- package/lib/services/code-samples/language-availability.js +1 -0
- package/lib/services/code-samples/{replay/normalize-servers.d.ts → normalize-servers.d.ts} +1 -1
- package/lib/services/code-samples/normalize-servers.js +1 -0
- package/lib/services/code-samples/replay/embedded-replay-converter.d.ts +1 -1
- package/lib/services/code-samples/replay/embedded-replay-converter.js +1 -1
- package/lib/services/code-samples/replay/find-operation.d.ts +17 -0
- package/lib/services/code-samples/replay/find-operation.js +1 -0
- package/lib/services/code-samples/replay/from-openapi-document.d.ts +12 -2
- package/lib/services/code-samples/replay/from-openapi-document.js +1 -1
- package/lib/services/code-samples/replay/index.d.ts +1 -1
- package/lib/services/code-samples/replay/index.js +1 -1
- package/lib/services/code-samples/replay/overlay-converter.js +1 -1
- package/lib/services/code-samples/replay/parameter-descriptions.d.ts +7 -0
- package/lib/services/code-samples/replay/parameter-descriptions.js +1 -0
- package/lib/services/code-samples/replay/replay-adapter.d.ts +1 -1
- package/lib/services/code-samples/replay/replay-adapter.js +1 -1
- package/lib/services/code-samples/replay/replay-handler.js +1 -1
- package/lib/services/code-samples/replay/replay-predefined-env.d.ts +1 -2
- package/lib/services/code-samples/replay/replay-predefined-env.js +1 -1
- package/lib/services/code-samples/replay/schema-declared-value.d.ts +2 -0
- package/lib/services/code-samples/replay/schema-declared-value.js +1 -0
- package/lib/services/code-samples/resolvers.js +1 -1
- package/lib/services/code-samples/server-env.d.ts +3 -0
- package/lib/services/code-samples/server-env.js +1 -0
- package/lib/services/code-samples/source.d.ts +3 -3
- package/lib/services/license/check.d.ts +1 -0
- package/lib/services/license/check.js +1 -1
- package/lib/services/operation-samples/index.js +1 -1
- package/lib/services/schema/dialects/jsonSchema.d.ts +5 -1
- package/lib/services/schema/dialects/jsonSchema.js +1 -1
- package/lib/services/schema/propertyTreeBuilder.js +1 -1
- package/lib/services/search/index.d.ts +2 -0
- package/lib/services/search/index.js +1 -0
- package/lib/services/search/indexer/context.d.ts +8 -0
- package/lib/services/search/indexer/context.js +0 -0
- package/lib/services/search/indexer/deep-links.d.ts +12 -0
- package/lib/services/search/indexer/deep-links.js +1 -0
- package/lib/services/search/indexer/extractors/asyncapi.d.ts +8 -0
- package/lib/services/search/indexer/extractors/asyncapi.js +1 -0
- package/lib/services/search/indexer/extractors/body.d.ts +2 -0
- package/lib/services/search/indexer/extractors/body.js +1 -0
- package/lib/services/search/indexer/extractors/callbacks.d.ts +4 -0
- package/lib/services/search/indexer/extractors/callbacks.js +1 -0
- package/lib/services/search/indexer/extractors/context.d.ts +25 -0
- package/lib/services/search/indexer/extractors/context.js +1 -0
- package/lib/services/search/indexer/extractors/examples.d.ts +3 -0
- package/lib/services/search/indexer/extractors/examples.js +1 -0
- package/lib/services/search/indexer/extractors/graphql.d.ts +2 -0
- package/lib/services/search/indexer/extractors/graphql.js +1 -0
- package/lib/services/search/indexer/extractors/heading-sections.d.ts +3 -0
- package/lib/services/search/indexer/extractors/heading-sections.js +1 -0
- package/lib/services/search/indexer/extractors/index.d.ts +12 -0
- package/lib/services/search/indexer/extractors/index.js +1 -0
- package/lib/services/search/indexer/extractors/mcp.d.ts +9 -0
- package/lib/services/search/indexer/extractors/mcp.js +1 -0
- package/lib/services/search/indexer/extractors/named-rows.d.ts +9 -0
- package/lib/services/search/indexer/extractors/named-rows.js +1 -0
- package/lib/services/search/indexer/extractors/panels.d.ts +10 -0
- package/lib/services/search/indexer/extractors/panels.js +1 -0
- package/lib/services/search/indexer/extractors/parameters.d.ts +2 -0
- package/lib/services/search/indexer/extractors/parameters.js +1 -0
- package/lib/services/search/indexer/extractors/responses.d.ts +2 -0
- package/lib/services/search/indexer/extractors/responses.js +1 -0
- package/lib/services/search/indexer/extractors/schema-page.d.ts +9 -0
- package/lib/services/search/indexer/extractors/schema-page.js +1 -0
- package/lib/services/search/indexer/extractors/security.d.ts +4 -0
- package/lib/services/search/indexer/extractors/security.js +1 -0
- package/lib/services/search/indexer/index.d.ts +14 -0
- package/lib/services/search/indexer/index.js +1 -0
- package/lib/services/search/indexer/param.d.ts +7 -0
- package/lib/services/search/indexer/param.js +1 -0
- package/lib/services/search/indexer/places.d.ts +40 -0
- package/lib/services/search/indexer/places.js +1 -0
- package/lib/services/search/indexer/schema-walker.d.ts +29 -0
- package/lib/services/search/indexer/schema-walker.js +1 -0
- package/lib/services/search/indexer/text.d.ts +2 -0
- package/lib/services/search/indexer/text.js +1 -0
- package/lib/services/search/types.d.ts +28 -0
- package/lib/services/search/types.js +0 -0
- package/lib/services/spec-slice/assistant-links.d.ts +9 -0
- package/lib/services/spec-slice/assistant-links.js +5 -0
- package/lib/services/spec-slice/asyncapi-slice.d.ts +5 -0
- package/lib/services/spec-slice/asyncapi-slice.js +1 -0
- package/lib/services/spec-slice/clone-strip.d.ts +1 -0
- package/lib/services/spec-slice/clone-strip.js +1 -0
- package/lib/services/spec-slice/component-closure.d.ts +6 -0
- package/lib/services/spec-slice/component-closure.js +1 -0
- package/lib/services/spec-slice/graphql-slice.d.ts +2 -0
- package/lib/services/spec-slice/graphql-slice.js +1 -0
- package/lib/services/spec-slice/index.d.ts +6 -0
- package/lib/services/spec-slice/index.js +1 -0
- package/lib/services/spec-slice/openapi-slice.d.ts +6 -0
- package/lib/services/spec-slice/openapi-slice.js +1 -0
- package/lib/services/spec-slice/resolve-scope.d.ts +4 -0
- package/lib/services/spec-slice/resolve-scope.js +1 -0
- package/lib/services/spec-slice/types.d.ts +37 -0
- package/lib/services/spec-slice/types.js +0 -0
- package/lib/standalone.d.ts +19 -0
- package/lib/standalone.js +2 -0
- package/lib/standaloneThemeConfig.d.ts +3 -0
- package/lib/standaloneThemeConfig.js +1 -0
- package/lib/telemetry/RedocTelemetry.d.ts +3 -0
- package/lib/telemetry/RedocTelemetry.js +1 -1
- package/lib/telemetry/defaults.d.ts +2 -0
- package/lib/telemetry/defaults.js +1 -0
- package/lib/types/asyncapi.d.ts +2 -1
- package/lib/types/code-samples-config.d.ts +68 -0
- package/lib/types/code-samples-config.js +0 -0
- package/lib/types/common.d.ts +1 -2
- package/lib/types/content.d.ts +6 -4
- package/lib/types/edition-config.d.ts +4 -0
- package/lib/types/edition-config.js +0 -0
- package/lib/types/events.d.ts +2 -2
- package/lib/types/openapi.d.ts +3 -3
- package/lib/types/options.d.ts +24 -88
- package/lib/types/store.d.ts +3 -2
- package/lib/url-compat.d.ts +22 -0
- package/lib/url-compat.js +1 -0
- package/lib/utils/compose.d.ts +1 -0
- package/lib/utils/deep-link.d.ts +2 -1
- package/lib/utils/deep-link.js +1 -1
- package/lib/utils/extract-extensions.js +1 -1
- package/lib/utils/graphql-parse.d.ts +1 -0
- package/lib/utils/graphql-parse.js +1 -0
- package/lib/utils/scroll-anchoring.d.ts +2 -1
- package/lib/utils/x-logo.d.ts +13 -0
- package/lib/utils/x-logo.js +1 -0
- package/lib/yaml-compat.d.ts +7 -0
- package/lib/yaml-compat.js +1 -0
- package/package.json +36 -15
- package/lib/services/code-samples/replay/normalize-servers.js +0 -1
package/lib/jotai/app.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export type AppSessionStore = {
|
|
|
15
15
|
export type AppStore = {
|
|
16
16
|
activeMimeName: string;
|
|
17
17
|
layout: LayoutVariant;
|
|
18
|
+
colorMode: string;
|
|
18
19
|
language: string;
|
|
19
20
|
environment: string;
|
|
20
21
|
environments: Record<string, Record<string, string>>;
|
|
@@ -47,6 +48,11 @@ export declare const allowedEnvironmentsAtom: import("jotai").WritableAtom<strin
|
|
|
47
48
|
* appSessionStore saved to session storage
|
|
48
49
|
*/
|
|
49
50
|
export declare const appSessionStore: import("jotai").WritableAtom<AppSessionStore, [typeof import("jotai/utils").RESET | AppSessionStore | ((prev: AppSessionStore) => typeof import("jotai/utils").RESET | AppSessionStore)], void>;
|
|
51
|
+
/** Mobile sidebar drawer — open state is per-view, never persisted. */
|
|
52
|
+
export declare const isSidebarOpenedAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
53
|
+
init: boolean;
|
|
54
|
+
};
|
|
55
|
+
export declare const colorModeAtom: import("jotai").WritableAtom<string, string[], void>;
|
|
50
56
|
export declare const collapsedSidebarAtom: import("jotai").WritableAtom<boolean, boolean[], void>;
|
|
51
57
|
export declare const languageAtom: import("jotai").WritableAtom<LanguageAtom, [string], void>;
|
|
52
58
|
export declare const selectedSecuritySchemeIdxAtom: import("jotai").PrimitiveAtom<number> & {
|
package/lib/jotai/app.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as r}from"jotai";import{atomWithStorage as
|
|
1
|
+
import{atom as r}from"jotai";import{atomWithStorage as g,createJSONStorage as y}from"jotai/utils";import{LayoutVariant as O}from"@redocly/config";import{DEFAULT_COLOR_MODES as c}from"@redocly/theme/core/constants";import{getCookie as E,removeCookie as L,setCookie as k}from"../utils/cookies.js";import{mergeEnvData as p,IS_BROWSER as d}from"../utils/environments.js";import{keepReadingSectionAnchored as C}from"../utils/scroll-anchoring.js";import{safeJsonParse as S}from"../utils/string.js";import{fromSessionStorage as M,toSessionStorage as h}from"../utils/session-storage.js";import{DEFAULT_LAYOUT as N}from"../options/constants.js";import{globalOptionsAtom as T}from"./store.js";const f={activeMimeName:"",layout:N,colorMode:"",language:"",environment:"",environments:{},userClaims:{},allowedEnvironments:null},b={getItem:e=>{const o=S(E(e,globalThis.redoclyCookieStorage?.getStore?.())),t=S(M(e));return{...f,...t,...o}},setItem:(e,o)=>{const{environments:t,...n}=o,a={environments:t};k(e,JSON.stringify(n)),h(e,JSON.stringify(a))},removeItem:e=>{L(e),sessionStorage.removeItem(e)}},s=g("redoc.appStore",f,b),H=r(e=>{const o=e(s);return p(o.environments,{})}),W=r(e=>{const o=e(s),t=p(o.environments,{}),n=o.environment,a=Object.keys(t).find(l=>t[l]?.server===n),i=t[n]?n:a??Object.keys(t)[0];let m=t[i]||{};return!m.server&&a&&(m={...t[a],...m}),[m,i||""]},(e,o,{environment:t,environments:n})=>{const a=e(s);o(s,{...a,environment:t||a.environment,environments:p(a.environments||{},n)})}),B=r(e=>e(s).environment),u=r(e=>e(s).activeMimeName,(e,o,t)=>{const n=e(s);o(s,{...n,activeMimeName:t})}),A=r(void 0),P=r(e=>e(A)??(e(u)||void 0),(e,o,t)=>{o(A,void 0),(t??"")!==e(u)&&C(),o(u,t??"")}),Y=r(e=>e(s).layout,(e,o,t=O.STACKED)=>{const n=e(s);o(s,{...n,layout:t})}),z=r(e=>e(s).userClaims,(e,o,t)=>{const n=e(s);o(s,{...n,userClaims:t})}),Q=r(e=>e(s).allowedEnvironments,(e,o,t)=>{const n=e(s);o(s,{...n,allowedEnvironments:t})}),v=g("redoc.appSessionStore",{collapsedSidebar:!1,unsupportedFeatureScreen:!1},d?y(()=>sessionStorage):void 0),X=r(!1),D=[c.LIGHT,c.DARK];function I(e){const o=document.documentElement;D.forEach(t=>o.classList.remove(t)),o.classList.add(e,"notransition"),window.requestAnimationFrame(()=>{o.classList.remove("notransition")})}const Z=r(e=>{const o=e(s).colorMode||(d&&window.matchMedia?.("(prefers-color-scheme: dark)").matches?c.DARK:c.LIGHT);return d&&I(o),o},(e,o,t)=>{const n=e(s);o(s,{...n,colorMode:t})}),$=r(e=>e(v).collapsedSidebar,(e,o,t)=>{const n=e(v);o(v,{...n,collapsedSidebar:t})}),ee=r(e=>{const o=e(T),{codeSamples:t}=o;if(!t?.languages)return{languages:[],activeLanguage:e(s).language||""};const n=t.languages.map(({key:i,label:m,lang:l},x)=>({key:i,lang:l,title:m,order:x})),a=e(s).language||n[0]?.key;return{languages:n,activeLanguage:n.find(({key:i})=>i===a)?.key||n[0]?.key}},(e,o,t)=>{const n=e(s);o(s,{...n,language:t})}),oe=r(0),te=r({}),ne=r(null),se=r([]);export{P as activeMediaTypeAtom,u as activeMimeNameAtom,ne as activeScrollSectionAtom,Q as allowedEnvironmentsAtom,v as appSessionStore,s as appStore,$ as collapsedSidebarAtom,Z as colorModeAtom,W as environmentAtom,H as environmentsAtom,X as isSidebarOpenedAtom,ee as languageAtom,Y as layoutAtom,A as mediaTypeOverrideAtom,te as requestValuesAtom,B as savedEnvironmentNameAtom,oe as selectedSecuritySchemeIdxAtom,z as userClaimsAtom,se as visitedChannelsAtom};
|
package/lib/jotai/examples.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as m}from"jotai";import{atomFamily as f}from"jotai-family";import*as
|
|
1
|
+
import{atom as m}from"jotai";import{atomFamily as f}from"jotai-family";import*as E from"openapi-sampler";import{schemaKind as g}from"../types/common.js";import{convertSampleToString as y}from"../services/code-samples/index.js";import{applyActiveVariantsToStore as h}from"../services/code-samples/discriminator.js";import{isSequentialMediaType as M}from"../utils/media-type.js";import{storeAtom as j,globalOptionsAtom as x}from"./store.js";import{schemaStoreAtom as l}from"./schema.js";import{activeDiscriminatorSelectAtom as F,activeOneOfSelectAtom as N}from"./itemStore.js";const G=m(t=>t(j).exampleStore??{});function A(t){const e={};for(const[n,r]of Object.entries(t)){const o=n.startsWith("components/schemas/")?n.replace("components/schemas/",""):n;e[o]=r}return{openapi:"3.0.0",info:{title:"",version:""},paths:{},components:{schemas:e}}}function R(t,e){return!!t&&Object.keys(t).length>0||!!e&&Object.keys(e).length>0}const u=m(t=>h(t(l))),O=f(t=>m(e=>{if(!t)return e(u);const n=e(F(t)),r=e(N(t));return R(n,r)?h(e(l),n,r):e(u)})),V=m(t=>A(t(u))),C=f(t=>m(e=>{const n=e(O(t));return n===e(u)?e(V):A(n)})),D="";function Q(t,e,n,r){return t?JSON.stringify({itemId:r??"",schemaId:t,context:e??"",mediaType:n??""}):D}function J(t){if(t)try{const e=JSON.parse(t);if(!e||typeof e.schemaId!="string"||!e.schemaId)return;const n=typeof e.itemId=="string"?e.itemId:"",r=typeof e.context=="string"?e.context:"",o=typeof e.mediaType=="string"?e.mediaType:"";return{itemId:n,schemaId:e.schemaId,context:r==="request"||r==="response"?r:void 0,mediaType:o||void 0}}catch{return}}const U=f(t=>{const e=J(t);return m(n=>{if(!e)return;const{itemId:r,schemaId:o,context:i,mediaType:p}=e,s=n(l)[o];if(!s||s.kind!==g.JSON_SCHEMA)return;const d=n(C(r)),v=n(O(r))[o]??s.data,{onlyRequiredInSamples:I,generatedSamplesMaxDepth:T}=n(x),{unstable_skipSamples:k}=n(x);if(k)return;const a=p?.toLowerCase(),q=a?a.includes("xml"):!1;try{const S={context:i,skipNonRequired:i==="request"&&I,maxSampleDepth:T,isXml:q},c=b(v,d,S);return c==null?c:a&&M(a)?K(s.data,c,d,S,a):c}catch{return}})});function K(t,e,n,r,o){const i=_(t);if(i.length>0){const p=i.map(s=>b(s,n,r)).filter(s=>s!=null);if(p.length>0)return y(p,o,t,!1)}return y(e,o,t,!0)}function _(t){const e=t.oneOf;return Array.isArray(e)?e.filter(n=>typeof n=="object"&&n!==null):[]}function b(t,e,{context:n,skipNonRequired:r,maxSampleDepth:o,isXml:i}){return E.sample(t,{skipReadOnly:n==="request",skipWriteOnly:n==="response",quiet:!0,skipNonRequired:r,maxSampleDepth:o,...i&&{format:"xml"}},e)}export{Q as buildExampleAtomKey,G as exampleStoreAtom,U as generatedExampleAtom,C as itemSpecForSamplerAtom};
|
package/lib/jotai/itemStore.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type ItemStore = {
|
|
|
3
3
|
activeDiscriminator: Record<string, number>;
|
|
4
4
|
activeOneOf: Record<string, number>;
|
|
5
5
|
activeResponseCode: string;
|
|
6
|
+
activeExampleKey: string;
|
|
6
7
|
activeMessageKey: string;
|
|
7
8
|
selectedCallback: string;
|
|
8
9
|
expandableSections: Record<string, boolean | undefined>;
|
package/lib/jotai/itemStore.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as p}from"jotai";import{selectAtom as
|
|
1
|
+
import{atom as p}from"jotai";import{selectAtom as s}from"jotai/utils";import{atomFamily as c}from"jotai-family";import{keepReadingSectionAnchored as S}from"../utils/scroll-anchoring.js";const d=Object.freeze({activeDiscriminator:Object.freeze({}),activeOneOf:Object.freeze({}),activeResponseCode:"",activeExampleKey:"",activeMessageKey:"",selectedCallback:"",expandableSections:Object.freeze({}),collapsibles:Object.freeze({})});function u(){return d}const l=p({}),O=["activeResponseCode","activeMessageKey","activeExampleKey","activeOneOf","activeDiscriminator"],f=c(e=>p(t=>t(l)[e]??u(),(t,n,o)=>{const i=t(l),r=i[e]??u(),a=typeof o=="function"?o(r):o;O.some(m=>m in a&&a[m]!==r[m])&&S(),n(l,{...i,[e]:{...r,...a}})})),A=c(e=>s(f(e.itemId),t=>t[e.key]),(e,t)=>e.itemId===t.itemId&&e.key===t.key);function x(e){return A(e)}function g(e,t){const n=e?.length?e.join("/"):"";return n?`${n}/${t}`:t}function j(e){return x({itemId:e,key:"activeDiscriminator"})}function R(e){return x({itemId:e,key:"activeOneOf"})}const b=c(e=>s(f(e.itemId),t=>t.expandableSections[e.key]),(e,t)=>e.itemId===t.itemId&&e.key===t.key);function D(e,t){return b({itemId:e,key:t})}const y="#";function F(e,t){return`${e}${y}${t}`}function T(e){const t=e.indexOf(y);return t===-1?e:e.slice(0,t)}const v=c(e=>s(f(e),t=>Object.keys(t.expandableSections),(t,n)=>t.length===n.length&&t.every((o,i)=>o===n[i])));function _(e){return v(e)}export{j as activeDiscriminatorSelectAtom,R as activeOneOfSelectAtom,F as buildCollapsibleEntryKey,g as buildVariantStateKey,T as collapsibleEntrySection,D as expandableSectionAtom,_ as expandableSectionKeysAtom,f as itemStoreAtom,x as itemStoreFieldAtom};
|
package/lib/jotai/store.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export type GlobalStoreAtom = {
|
|
|
6
6
|
items: ApiItem[];
|
|
7
7
|
store: ApiStore;
|
|
8
8
|
options: ApiDocsOptions;
|
|
9
|
+
definition?: Record<string, unknown> | string;
|
|
10
|
+
definitionUrl?: string;
|
|
9
11
|
replayDefinition: OpenAPIDefinition | null;
|
|
10
12
|
};
|
|
11
13
|
export declare const globalStoreAtom: import("jotai").PrimitiveAtom<GlobalStoreAtom> & {
|
|
@@ -19,6 +21,8 @@ export declare const specTypeAtom: import("jotai").Atom<ApiSpecType>;
|
|
|
19
21
|
export declare const routingBasePathAtom: import("jotai").Atom<string>;
|
|
20
22
|
export declare const licenseKeyAtom: import("jotai").Atom<string | undefined>;
|
|
21
23
|
export declare const storeAtom: import("jotai").Atom<ApiStore>;
|
|
24
|
+
export declare const definitionAtom: import("jotai").Atom<string | Record<string, unknown> | undefined>;
|
|
25
|
+
export declare const definitionUrlAtom: import("jotai").Atom<string | undefined>;
|
|
22
26
|
export declare const replayDefinitionAtom: import("jotai").Atom<OpenAPIDefinition | null>;
|
|
23
27
|
export declare const setReplayDefinitionAtom: import("jotai").WritableAtom<null, [value: OpenAPIDefinition | null], void> & {
|
|
24
28
|
init: null;
|
package/lib/jotai/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{atom as o}from"jotai";const m={schemaStore:{},exampleStore:{},securitySchemeStore:{}},e=o({items:[],store:m,options:{},replayDefinition:null}),
|
|
1
|
+
import{atom as o}from"jotai";const m={schemaStore:{},exampleStore:{},securitySchemeStore:{}},e=o({items:[],store:m,options:{},replayDefinition:null}),a=o(t=>t(e).items),l=o(t=>{const i={};function s(p){for(const n of p){const r=n.content?.meta?.name;n.httpVerb==="schema"&&r&&n.routeSlug&&(i[r]=n.routeSlug),"items"in n&&Array.isArray(n.items)&&s(n.items)}}return s(t(e).items),i}),f=o(t=>t(e).options),A=o(t=>t(e).options.specType),x=o(t=>t(e).options.basePath),y=o(t=>t(e).options.licenseKey),u=o(t=>t(e).store??m),S=o(t=>t(e).definition),g=o(t=>t(e).definitionUrl),h=o(t=>t(e).replayDefinition),D=o(null,(t,i,s)=>{i(e,{...t(e),replayDefinition:s})});export{S as definitionAtom,g as definitionUrlAtom,a as globalItemsAtom,f as globalOptionsAtom,e as globalStoreAtom,y as licenseKeyAtom,h as replayDefinitionAtom,x as routingBasePathAtom,l as schemaDefinitionSlugMapAtom,D as setReplayDefinitionAtom,A as specTypeAtom,u as storeAtom};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RawApiDocsOptions } from '../types/options.js';
|
|
2
|
+
/** Option overrides applied on top of host options in `normalizeOptions`. The community edition forces enterprise options off here. */
|
|
3
|
+
export declare const EDITION_OPTION_OVERRIDES: Partial<RawApiDocsOptions>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const I={};export{I as EDITION_OPTION_OVERRIDES};
|
package/lib/options/helpers.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LayoutVariant, type RedocConfig } from '@redocly/config';
|
|
2
2
|
import type { ApiSpecType } from '../types/common.js';
|
|
3
3
|
import type { RawApiDocsOptions } from '../types/options.js';
|
|
4
|
-
import type { CodeSamplesConfig } from '../types/
|
|
4
|
+
import type { CodeSamplesConfig } from '../types/code-samples-config.js';
|
|
5
5
|
export declare function argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean;
|
|
6
6
|
export declare function argValueToNumber(value: number | string | undefined, defaultValue?: number): number;
|
|
7
7
|
export declare function argValueToInt(value: number | string | undefined, defaultValue?: number): number;
|
|
@@ -23,4 +23,3 @@ export declare function normalizeDownloadUrls(downloadUrls: {
|
|
|
23
23
|
url: string;
|
|
24
24
|
}[];
|
|
25
25
|
export declare function normalizeLayout(layout: RawApiDocsOptions['layout']): LayoutVariant;
|
|
26
|
-
export declare function isGraphqlDocsSidebarHidden(options: Pick<RawApiDocsOptions, 'specType' | 'sidebar'>): boolean;
|
package/lib/options/helpers.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LayoutVariant as
|
|
1
|
+
import{LayoutVariant as i}from"@redocly/config";import{apiSpecType as o}from"../types/common.js";import{DEFAULT_LAYOUT as f}from"./constants.js";import{DEFAULT_LANGUAGES as p,getLangKey as s}from"../utils/languages.js";function d(r,t){return r===void 0?t??!1:typeof r=="string"?r!=="false":r}function A(r,t=0){return typeof r=="string"?parseInt(r,10):typeof r=="number"?r:t}function u(r,t=0){return typeof r=="string"?parseInt(r,10):typeof r=="number"?Math.ceil(r):t}function x(r,t){return r===void 0?t:r==="all"?1/0:u(r,t)}function h(r){let t=r;return t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t.startsWith("/")||(t="/"+t),t}function E(r){if(typeof r>"u")return!1;if(r==="")return!0;if(typeof r!="string")return r;switch(r){case"true":return!0;case"false":return!1;default:return r.split(",").map(t=>t.trim()).filter(Boolean)}}function a(r){return/^-?\d+(\.\d+)?$/.test(r)}function T(r){return typeof r=="number"?()=>r:typeof r=="string"&&a(r)?()=>parseFloat(r):typeof r=="function"?()=>{const t=r();return typeof t=="number"?t:0}:()=>0}function L(r){const t=typeof r=="object"&&r!==null?r:{},n=t.languages??p.map(({label:e})=>({lang:e}));return{...t,languages:n.map(e=>({...e,key:s(e),label:e.label??e.lang}))}}function S(r){return Array.isArray(r)?r:typeof r=="string"?r.split(",").map(t=>t.trim()):[]}function b(r,t){return r.map(n=>({...n,title:n.title??m(n.url,t)}))}function m(r,t){const n=r.split("?")[0].split(/[\\/]/).pop();if(n&&["yaml","json","gql","graphql"].some(e=>n.includes(e)))return n;switch(t){case o.OPENAPI:return"openapi.yaml";case o.ASYNCAPI:return"asyncapi.yaml";case o.GRAPHQL:return"graphql.gql";default:return"description.json"}}function N(r){return r===void 0?f:r===i.STACKED?i.STACKED:i.THREE_PANEL}export{d as argValueToBoolean,x as argValueToExpandLevel,u as argValueToInt,A as argValueToNumber,L as normalizeCodeSamples,b as normalizeDownloadUrls,S as normalizeIgnoreNamedSchemas,N as normalizeLayout,h as normalizePath,T as normalizeScrollYOffset,E as normalizeShowExtensions};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { ApiDocsOptions, RawApiDocsOptions } from '../types/options.js';
|
|
2
|
-
export declare function normalizeOptions(
|
|
2
|
+
export declare function normalizeOptions(rawOptions: RawApiDocsOptions): ApiDocsOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{addTrailingSlash as
|
|
1
|
+
import{addTrailingSlash as r}from"@redocly/theme/core/openapi";import{WindowReferenceOptions as t}from"../constants/openapi.js";import{argValueToBoolean as a,argValueToExpandLevel as n,argValueToInt as s,argValueToNumber as m,normalizeCodeSamples as d,normalizeDownloadUrls as p,normalizeIgnoreNamedSchemas as S,normalizeLayout as E,normalizePath as c,normalizeScrollYOffset as u,normalizeShowExtensions as h}from"./helpers.js";import{ASYNCAPI_DEFAULT_JSON_SAMPLES_DEPTH as _,DEFAULT_FEEDBACK as L,DEFAULT_MAX_DISPLAYED_ENUM_VALUES as f,GENERATED_SAMPLES_MAX_DEPTH_DEFAULT as P,GRAPHQL_DEFAULT_FIELD_EXPAND_LEVEL as A,GRAPHQL_DEFAULT_JSON_SAMPLES_DEPTH as D,GRAPHQL_DEFAULT_SAMPLES_MAX_INLINE_ARGS as T,JSON_SAMPLES_EXPAND_LEVEL_DEFAULT as i,MOCK_SERVER_DEFAULT_DESCRIPTION as I,MOCK_SERVER_DEFAULT_POSITION as R,DEFAULT_ROUTING_BASE_PATH as x}from"./constants.js";import{apiSpecType as N}from"../types/common.js";import{EDITION_OPTION_OVERRIDES as k}from"./editionOverrides.js";function v(l){const e={...l,...k},o=e.basePath||e.routingBasePath;return{specType:e.specType,licenseKey:e.licenseKey,metadata:e.metadata??{},downloadUrls:p(e.downloadUrls??[],e.specType),userClaims:e.userClaims,dynamicRequestValues:e.dynamicRequestValues,schemaDefinitionsTagName:e.schemaDefinitionsTagName,corsProxyUrl:e.corsProxyUrl?r(e.corsProxyUrl):void 0,jsonSamplesExpandLevel:n(e.jsonSamplesExpandLevel,i)??i,generatedSamplesMaxDepth:s(e.generatedSamplesMaxDepth,P),hideDownloadButtons:a(e.hideDownloadButtons,!1),hideInfoMetadata:a(e.hideInfoMetadata,!1),hideLoading:a(e.hideLoading,!1),hideSchemaTitles:a(e.hideSchemaTitles,!1),hideSchemaPattern:a(e.hideSchemaPattern,!1),maxDisplayedEnumValues:m(e.maxDisplayedEnumValues,f),mockServer:e.mockServer?.url?{url:e.mockServer.url,position:e.mockServer.position||R,description:e.mockServer.description||I}:void 0,hideReplay:a(e.hideReplay,!1),oAuth2RedirectURI:e.oAuth2RedirectURI,onlyRequiredInSamples:a(e.onlyRequiredInSamples,!1),[t.ON_DEEP_LINK_CLICK]:e.onDeepLinkClick??null,basePath:o?c(o):x,schemasExpansionLevel:n(e.schemasExpansionLevel),feedback:e.feedback??L,sortRequiredPropsFirst:a(e.sortRequiredPropsFirst??e.requiredPropsFirst,!1),scrollYOffset:u(e.scrollYOffset),showExtensions:h(e.showExtensions),sanitize:a(e.sanitize,!1),skipBundle:a(e.skipBundle,!1),ignoreNamedSchemas:new Set(S(e.ignoreNamedSchemas)),markdocOptions:e.markdocOptions,markdownParser:e.markdownParser,codeSamples:d(e.codeSamples),layout:E(e.layout),events:e.events??{},unstable_hooks:e.unstable_hooks??{},unstable_skipSamples:a(e.unstable_skipSamples,!1),unstable_externalCodeSamples:e.unstable_externalCodeSamples??[],hidePropertiesPrefix:a(e?.hidePropertiesPrefix,!1),showSchemaCatalogLinks:a(e?.showSchemaCatalogLinks,!1),jsonSamplesDepth:s(e.jsonSamplesDepth,e.specType===N.ASYNCAPI?_:D),samplesMaxInlineArgs:s(e.samplesMaxInlineArgs,T),fieldExpandLevel:s(e.fieldExpandLevel,A),menu:e.menu,showBuiltInScalars:e.showBuiltInScalars,showBuiltInDirectives:e.showBuiltInDirectives,info:e.info,markdown:e.markdown,apiLogo:e.apiLogo,protocol:e.protocol}}export{v as normalizeOptions};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n({scrollYOffset:e}){const t=e?.()??0;if(!(t<=0))return{"--navbar-height":`${t}px`,"--navbar-stack-height":`${t}px`}}export{n as getStandaloneLayoutStyle};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const ATTR_EXCEPTION_MESSAGE = "exception.message";
|
|
2
|
+
export declare const ATTR_EXCEPTION_STACKTRACE = "exception.stacktrace";
|
|
3
|
+
export declare const ATTR_EXCEPTION_TYPE = "exception.type";
|
|
4
|
+
export declare const ATTR_SERVICE_NAME = "service.name";
|
|
5
|
+
export declare const ATTR_SERVICE_VERSION = "service.version";
|
|
6
|
+
export declare const ATTR_TELEMETRY_SDK_LANGUAGE = "telemetry.sdk.language";
|
|
7
|
+
export declare const ATTR_TELEMETRY_SDK_NAME = "telemetry.sdk.name";
|
|
8
|
+
export declare const ATTR_TELEMETRY_SDK_VERSION = "telemetry.sdk.version";
|
|
9
|
+
export declare const TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS = "nodejs";
|
|
10
|
+
export declare const TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS = "webjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e="exception.message",E="exception.stacktrace",t="exception.type",T="service.name",_="service.version",o="telemetry.sdk.language",s="telemetry.sdk.name",A="telemetry.sdk.version",n="nodejs",r="webjs";export{e as ATTR_EXCEPTION_MESSAGE,E as ATTR_EXCEPTION_STACKTRACE,t as ATTR_EXCEPTION_TYPE,T as ATTR_SERVICE_NAME,_ as ATTR_SERVICE_VERSION,o as ATTR_TELEMETRY_SDK_LANGUAGE,s as ATTR_TELEMETRY_SDK_NAME,A as ATTR_TELEMETRY_SDK_VERSION,n as TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,r as TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS};
|
package/lib/pages/ItemPage.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as r,jsxs as
|
|
1
|
+
import{jsx as r,jsxs as d}from"react/jsx-runtime";import{Fragment as v,memo as u}from"react";import{styled as p}from"styled-components";import{useAtomValue as s}from"jotai";import{ComponentMapper as k}from"../components/Mapper.js";import{SchemaCatalogLink as y}from"../components/SchemaCatalogLink.js";import{RenderHook as c}from"../components/RenderHook.js";import{globalOptionsAtom as I}from"../jotai/store.js";import{ContentWrapper as l}from"../components/common/ContentWrapper.js";import{routingBasePathAtom as x}from"../jotai/store.js";import{compose as A}from"../utils/compose.js";import{toElementId as O}from"../utils/url.js";import{withItemId as C}from"../hoc/withItemId.js";import{SECTION_ATTR as T}from"../constants/openapi.js";function j({content:o,itemPath:e,sectionId:i}){const{children:f}=o||{},a=o?.meta?.pointer,{unstable_hooks:n}=s(I),g=s(x),b=i?{[T]:i}:{},h=e?O(e,g):void 0;return d(P,{id:h,...b,"data-item-kind":o.itemVariant,"data-has-divider":o.showDivider||void 0,children:[r(c,{Hook:n?.BeforeOperation,props:{operation:o}}),f?.map((t,m)=>d(v,{children:[r(k,{type:t.nodeType,node:t,itemPath:e}),m===0&&a&&r(l,{children:r(y,{schemaRef:"#"+a})})]},`${e}-${t.nodeType}-${m}`)),r(c,{Hook:n?.AfterOperation,props:{operation:o}}),o.showDivider&&r(l,{children:r(w,{})})]})}const q=A(C,u)(j),w=p.div`
|
|
2
2
|
border-bottom: 1px solid var(--border-color-secondary);
|
|
3
3
|
`,P=p.div`
|
|
4
4
|
padding-top: calc(var(--spacing-unit) * 16);
|
|
@@ -10,9 +10,11 @@ import{jsx as r,jsxs as m}from"react/jsx-runtime";import{Fragment as v,memo as u
|
|
|
10
10
|
padding-top: calc(var(--spacing-unit) * 16);
|
|
11
11
|
padding-bottom: 0;
|
|
12
12
|
|
|
13
|
+
// @community-ignore
|
|
13
14
|
[data-component-name='FeedbackItem'] {
|
|
14
15
|
margin: 0;
|
|
15
16
|
}
|
|
17
|
+
// @community-ignore-end
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
&[data-item-kind='channel'],
|
|
@@ -23,4 +25,4 @@ import{jsx as r,jsxs as m}from"react/jsx-runtime";import{Fragment as v,memo as u
|
|
|
23
25
|
&[data-item-kind='channelOperation']:not([data-has-divider]) {
|
|
24
26
|
border-bottom: 1px solid var(--border-color-secondary);
|
|
25
27
|
}
|
|
26
|
-
`;export{
|
|
28
|
+
`;export{q as ItemPage};
|
|
@@ -1 +1,40 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t,jsxs as e}from"react/jsx-runtime";import{useLocation as s}from"react-router";import{styled as a}from"styled-components";import{Button as p}from"@redocly/theme/components/Button/Button";import{ArrowLeftIcon as g}from"@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon";import{breakpoints as c}from"@redocly/theme/core/openapi";import{withoutPathPrefix as h}from"@redocly/theme/core/utils";import{useNormalizeUrl as l}from"../hooks/useNormalizeUrl.js";import{useTranslate as m}from"../hooks/useTranslate.js";function T({routingBasePath:i}){const n=s(),r=h(l(i||"/")),o=m();return e(d,{className:"not-found-page",children:[t(f,{children:"404"}),t(v,{children:o("page.apiNotFound.title","No page at this address")}),e(x,{children:[o("page.apiNotFound.description","There's no page at")," ",t(w,{children:n.pathname}),".",t("br",{}),o("page.apiNotFound.hint","It may have been moved or deleted.")]}),t(u,{children:t(p,{variant:"primary",size:"medium",to:r,icon:t(g,{}),children:o("page.apiNotFound.backButton","Back to docs")})})]})}const d=a.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
min-height: calc(100vh - var(--navbar-height, 0px) - var(--banner-height, 0px));
|
|
7
|
+
min-height: calc(100dvh - var(--navbar-height, 0px) - var(--banner-height, 0px));
|
|
8
|
+
max-width: var(--page-404-max-width);
|
|
9
|
+
margin: 0 var(--page-404-margin-horizontal);
|
|
10
|
+
padding: var(--page-404-margin-vertical) 0;
|
|
11
|
+
font-family: var(--page-404-font-family);
|
|
12
|
+
|
|
13
|
+
@media screen and (max-width: ${c.small}) {
|
|
14
|
+
margin: 0 var(--spacing-lg);
|
|
15
|
+
}
|
|
16
|
+
`,f=a.div`
|
|
17
|
+
color: var(--page-404-status-text-color);
|
|
18
|
+
font-family: var(--font-family-monospaced);
|
|
19
|
+
font-size: var(--page-404-status-font-size);
|
|
20
|
+
line-height: var(--page-404-status-line-height);
|
|
21
|
+
font-weight: var(--page-404-status-font-weight);
|
|
22
|
+
`,v=a.h1`
|
|
23
|
+
margin: var(--spacing-xs) 0 0;
|
|
24
|
+
color: var(--page-404-title-text-color);
|
|
25
|
+
font-size: 32px;
|
|
26
|
+
line-height: 40px;
|
|
27
|
+
font-weight: var(--page-404-title-font-weight);
|
|
28
|
+
`,x=a.p`
|
|
29
|
+
margin: var(--spacing-lg) 0 0;
|
|
30
|
+
color: var(--page-404-description-text-color);
|
|
31
|
+
font-size: var(--font-size-lg);
|
|
32
|
+
line-height: var(--line-height-lg);
|
|
33
|
+
font-weight: var(--page-404-description-font-weight);
|
|
34
|
+
`,u=a.div`
|
|
35
|
+
margin-top: var(--spacing-xl);
|
|
36
|
+
`,w=a.code`
|
|
37
|
+
font-family: var(--font-family-monospaced);
|
|
38
|
+
font-weight: var(--font-weight-bold);
|
|
39
|
+
overflow-wrap: anywhere;
|
|
40
|
+
`;export{T as NotFoundPage};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CodeSampleRequestValues } from './source.js';
|
|
2
|
+
/**
|
|
3
|
+
* Substitutes `{{name}}` environment-variable placeholders in a sample using
|
|
4
|
+
* the base env variables plus the active server's scoped overrides.
|
|
5
|
+
* `requestValues.serverEnvVariables` is keyed by the raw (templated) spec
|
|
6
|
+
* server URL.
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyEnvVariables(sample: string, requestValues: CodeSampleRequestValues | undefined, activeServerSpecUrl: string | undefined): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function o(a,n,r){const l={...n?.envVariables,...r&&n?.serverEnvVariables?.[r]};let e=a;for(const[s,t]of Object.entries(l))e=e.replaceAll(`{{${s}}}`,t);return e}export{o as applyEnvVariables};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CodeSampleHAR } from './sample-har.js';
|
|
2
2
|
import type { CodeSampleSource, ParameterEntry } from './source.js';
|
|
3
|
+
import type { HoistedVariant } from './discriminator.js';
|
|
3
4
|
export type HARBuildSelections = {
|
|
4
5
|
serverUrl?: string;
|
|
5
6
|
mediaType?: string;
|
|
@@ -29,10 +30,12 @@ export type HARBuildResolvers = {
|
|
|
29
30
|
format?: string;
|
|
30
31
|
}) => unknown;
|
|
31
32
|
serializeParameter?: (param: ParameterEntry, value: unknown) => string;
|
|
32
|
-
resolveVariantSchemaForSampling?: (schemaId: string) =>
|
|
33
|
-
|
|
34
|
-
variantSchemaId: string;
|
|
35
|
-
} | undefined;
|
|
36
|
-
applyDiscriminatorValue?: (sample: unknown, variantSchemaId: string) => void;
|
|
33
|
+
resolveVariantSchemaForSampling?: (schemaId: string) => HoistedVariant | undefined;
|
|
34
|
+
applyDiscriminatorValue?: (sample: unknown, variantSchemaId: string, mappingKey?: string) => void;
|
|
37
35
|
};
|
|
38
36
|
export declare function buildCodeSampleHAR(source: CodeSampleSource, selections: HARBuildSelections, options: HARBuildOptions, resolvers: HARBuildResolvers): CodeSampleHAR;
|
|
37
|
+
/**
|
|
38
|
+
* Reducer that mirrors openapi-docs `httpsnippet/helpers/reducer.ts`:
|
|
39
|
+
* collapse duplicate keys into arrays so generators can render them correctly.
|
|
40
|
+
*/
|
|
41
|
+
export declare function appendKeyValue(obj: Record<string, string | string[]>, name: string, value: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import $ from"url-template";import{SecurityVariablesEnvSuffix as g}from"@redocly/theme/core/openapi";import{mergeBodyValue as F}from"../../adapters/openapi/configure/merge-utils.js";import{formUrlEncodeValue as H,stringifyFormFieldValue as E}from"../../utils/form-urlencoded.js";import{isSequentialMediaType as K}from"../../utils/media-type.js";import{parseMultipartFormData as M}from"../../utils/multipart.js";import{objectToHarParams as J}from"../../utils/serialize-querystring.js";import{jsonToXml as L}from"../../utils/xml.js";import{MediaTypes as k}from"../../constants/openapi.js";import{convertSampleToString as Y}from"./convertSampleToString.js";import{findExampleIdByKey as Q,mediaTypeContainingKey as X}from"./example-key.js";import{resolveServerUrl as G}from"./replay/normalize-servers.js";import{serverMatchesUrl as W}from"./server-variables.js";function Ie(e,n,a,r){const o=e.servers.find(f=>W(f,n.serverUrl))||e.servers[0],u=o?.url?.replace(/\/$/,"")??"",c=u?G(u).replace(/\/$/,""):"",t={};if(o?.variables)for(const[f,A]of Object.entries(o.variables))t[f]=n.environment?.[f]||A.default||"";const l=e.path.replace(/^\//,""),i=`${c}/${l}`,d={skipReadOnly:!0,maxDepth:a.generatedPayloadSamplesMaxDepth??8,format:"json"},s=o?.url??n.serverUrl??"",p=n.requestValues??{},m=Z(e.security,n.activeSecuritySchemeIds),y=ee(m,n,a,s),S=b(e.parameters.header,"header",s,p,a,r,d).concat(y.headers),h=n.mediaType||X(e.requestBody,n.exampleName,r.resolveExample)||(e.requestBody?Object.keys(e.requestBody)[0]:void 0);let R=!1;for(const f of S)f.name.toLowerCase()==="content-type"&&h&&(f.value=h,R=!0);!R&&h&&S.unshift({name:"Content-Type",value:h});const v=b(e.parameters.cookie,"cookie",s,p,a,r,d).concat(y.cookies),O=e.parameters.querystring.length>0,C=b(O?e.parameters.querystring:e.parameters.query,O?"querystring":"query",s,p,a,r,d).concat(y.queries),U={};for(const f of e.parameters.path)U[f.name]=p.path?.[f.name]||f.serverValues?.[s]?.example||f.example||"";let x;if(h&&e.requestBody?.[h]){const f=e.requestBody[h],A=e.requestValues?.serverBody?.[s]??e.requestValues?.body;x=le(f,h,n,r,d,s,A)}const w={};for(const f of S)w[f.name]=f.value;const I={};v.length&&(I.cookie=v.map(f=>`${encodeURIComponent(f.name)}=${encodeURIComponent(f.value)}`).join("; ")),Object.assign(I,w);const j={};for(const f of C)V(j,f.name,f.value);const B=x?.text?ue(x.text):void 0;let _;if(x?.params?.length){_={};for(const f of x.params)V(_,f.name,f.value??"")}const P=C.map(f=>`${encodeURIComponent(f.name)}=${encodeURIComponent(f.value)}`).join("&"),q=P?`${i}?${P}`:i;return{method:e.method.toUpperCase(),url:i,pathname:q,httpVersion:"HTTP/1.1",cookies:v,headers:S,queryString:C,postData:x,headersSize:-1,bodySize:-1,fullUrl:q,headersObj:w,allHeaders:I,queryObj:j,jsonObj:B,paramsObj:_,basicAuth:y.basicAuth,pathParameters:U,serverVariables:t,responseCodes:e.responseCodes,allResponseCodes:e.responseCodes,oAuth2PreRequests:y.oAuth2PreRequests}}function V(e,n,a){const r=e[n];r===void 0?e[n]=a:Array.isArray(r)?r.push(a):e[n]=[r,a]}function Z(e,n){if(e.length){if(n?.length){const a=e.find(r=>{const o=r.schemes.map(u=>u.id);return o.length===n.length&&o.every(u=>n.includes(u))});if(a)return a}return e[0]}}function ee(e,n,a,r){const o={headers:[],cookies:[],queries:[]};if(!e)return o;for(const u of e.schemes)ne(u,o,n,a,r,e.scopes);return o}const te={"x-defaultUsername":g.Username,"x-defaultPassword":g.Password,"x-defaultClientId":g.ClientId,"x-defaultClientSecret":g.ClientSecret};function ne(e,n,a,r,o,u=[]){const c=a.requestValues?.security,t=l=>{const i=e.serverValues?.[o];if(i){const y=i[l];if(y!=null)return String(y)}const d=e[l];if(d!=null&&typeof d=="string")return d;const s=c?.[l];if(s!=null)return String(s);const p=l==="x-defaultAccessToken"?e.type==="apiKey"?g.APIKey:g.Token:te[l],m=p!==void 0?a.environment?.[e.id+p]:void 0;if(m)return m};if(e.type==="http"&&e.scheme==="basic")n.basicAuth={username:t("x-defaultUsername")||c?.username||"<username>",password:t("x-defaultPassword")||c?.password||"<password>"};else if(e.type==="http"){const l=t("x-defaultAccessToken"),i=e.scheme||"bearer",d=i.charAt(0).toUpperCase()+i.slice(1),s=e.bearerFormat?`<YOUR_${e.bearerFormat}_HERE>`:"<YOUR_TOKEN_HERE>";n.headers.push({name:"Authorization",value:l?`${d} ${l}`:`${d} ${s}`})}else if(e.type==="apiKey"&&e.name){const l=t("x-defaultAccessToken")||"YOUR_API_KEY_HERE",i={name:e.name,value:l};e.in==="header"?n.headers.push(i):e.in==="cookie"?n.cookies.push({name:e.name,value:l}):(e.in==="query"||e.in==="querystring"||e.in===void 0)&&n.queries.push({name:e.name,value:l})}else if(e.type==="oauth2"){const l=t("x-defaultAccessToken"),i=t("x-defaultTokenType")||"Bearer";if(n.headers.push({name:"Authorization",value:l?`${i} ${l}`:"Bearer <YOUR_TOKEN_HERE>"}),r.withOAuth2Call&&e.flows){const d=[];if(e.flows.deviceAuthorization){const s=e.flows.deviceAuthorization;d.push(ae(s.deviceAuthorizationUrl,s.tokenUrl,e,o,u))}else if(e.flows.clientCredentials){const s=e.flows.clientCredentials;d.push(z("clientCredentials",s.tokenUrl,e,o,u))}else if(e.flows.password){const s=e.flows.password;d.push(z("password",s.tokenUrl,e,o,u))}d.length>0&&(n.oAuth2PreRequests=(n.oAuth2PreRequests??[]).concat(d))}}else if(e.type==="openIdConnect"){const l=t("x-defaultAccessToken"),i=t("x-defaultTokenType")||"Bearer";n.headers.push({name:"Authorization",value:l?`${i} ${l}`:"Bearer <YOUR_TOKEN_HERE>"})}}function ae(e,n,a,r,o=[]){const u=a.serverValues?.[r]?.["x-defaultClientId"]||a["x-defaultClientId"]||"YOUR_CLIENT_ID",c=[{name:"client_id",value:u}];return o.length>0&&c.push({name:"scope",value:o.join(" ")}),{flowType:"deviceAuthorization",tokenUrl:n,clientId:u,scopes:o.length>0?o:void 0,method:"POST",url:e,httpVersion:"HTTP/1.1",cookies:[],headers:[{name:"Content-Type",value:"application/x-www-form-urlencoded"},{name:"Accept",value:"application/json"}],queryString:[],postData:{mimeType:"application/x-www-form-urlencoded",params:c,text:c.map(t=>`${encodeURIComponent(t.name)}=${encodeURIComponent(t.value??"")}`).join("&")},headersSize:-1,bodySize:-1}}function z(e,n,a,r,o=[]){const u=a.serverValues?.[r]?.["x-defaultClientId"]||a["x-defaultClientId"]||"YOUR_CLIENT_ID",c=a.serverValues?.[r]?.["x-defaultClientSecret"]||a["x-defaultClientSecret"],t=a.serverValues?.[r]?.["x-defaultUsername"]||a["x-defaultUsername"],l=a.serverValues?.[r]?.["x-defaultPassword"]||a["x-defaultPassword"],i=[];return e==="clientCredentials"?i.push({name:"grant_type",value:"client_credentials"}):e==="password"&&i.push({name:"grant_type",value:"password"}),i.push({name:"client_id",value:u}),i.push({name:"client_secret",value:c||"YOUR_CLIENT_SECRET"}),e==="password"&&(i.push({name:"username",value:t||"<username>"}),i.push({name:"password",value:l||"<password>"})),o.length>0&&i.push({name:"scope",value:o.join(" ")}),{flowType:e,tokenUrl:n,clientId:u,clientSecret:c,username:t,password:l,scopes:o.length>0?o:void 0,method:"POST",url:n,httpVersion:"HTTP/1.1",cookies:[],headers:[{name:"Content-Type",value:"application/x-www-form-urlencoded"},{name:"Accept",value:"application/json"}],queryString:[],postData:{mimeType:"application/x-www-form-urlencoded",params:i,text:i.map(d=>`${encodeURIComponent(d.name)}=${encodeURIComponent(d.value??"")}`).join("&")},headersSize:-1,bodySize:-1}}function N(e,n,a){return n==="querystring"&&e.serializationMime===k.URL_ENCODED&&typeof a=="object"&&a!==null?re(J(a)):null}function re(e){const n=new Map,a=[];for(const r of e){const o=n.get(r.name);o?o.push(r.value):(n.set(r.name,[r.value]),a.push(r.name))}return a.map(r=>({name:r,value:(n.get(r)??[]).join(",")}))}function b(e,n,a,r,o,u,c){return e.filter(t=>!o.skipOptionalParameters||t.required).flatMap(t=>{const i=r[n==="querystring"?"query":n]?.[t.name];if(i!=null)return[{name:t.name,value:String(i)}];const d=t.serverValues?.[a]?.example;if(d!=null)return[{name:t.name,value:T(t,d)}];if(t.example!=null){const s=N(t,n,t.example);return s||(t.serializationMime&&u.serializeParameter?[{name:t.name,value:u.serializeParameter(t,t.example)}]:[{name:t.name,value:T(t,t.example)}])}if(n==="querystring"&&t.serializationMime===k.URL_ENCODED&&t.schemaId){const s=u.resolveSchema(t.schemaId);if(s){const p=u.sampleFromSchema(s,c),m=N(t,n,p);if(m)return m}}return[{name:t.name,value:oe(t,u,c)}]})}function oe(e,n,a){if(e.schemaId){const r=n.resolveSchema(e.schemaId);if(r){const o=n.sampleFromSchema(r,a);if(o!=null)return e.serializationMime&&n.serializeParameter?n.serializeParameter(e,o):T(e,o)}}return`{${e.name}}`}function ie(e){switch(e){case"query":case"querystring":case"cookie":return"form";case"path":case"header":return"simple";default:return"form"}}function T(e,n){if(n==null)return"";if(typeof n!="object")return String(n);const a=e.style??ie(e.in),o=e.explode??a==="form"?"*":"",u="__redoc_param_name__";try{switch(a){case"form":{const l=$.parse(`{?${u}${o}}`).expand({[u]:n}).substring(1).replace(/__redoc_param_name__/g,e.name).split(`&${e.name}=`);return l[0]=l[0].replace(new RegExp(`^${se(e.name)}=`),""),l.map(D).join(",")}case"spaceDelimited":return Array.isArray(n)?n.map(String).join(" "):String(n);case"pipeDelimited":return Array.isArray(n)?n.map(String).join("|"):String(n);case"simple":case"label":case"matrix":{const c=a==="label"?".":a==="matrix"?";":"",t=$.parse(`{${c}${u}${o}}`);return D(t.expand({[u]:n}).replace(/__redoc_param_name__/g,e.name))}case"deepObject":return JSON.stringify(n);default:return JSON.stringify(n)}}catch{return Array.isArray(n)?n.map(String).join(","):JSON.stringify(n)}}function se(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e){try{return decodeURIComponent(e)}catch{return e}}function le(e,n,a,r,o,u,c){let t;if(a.replayBody!==void 0&&(t=a.replayBody),t===void 0&&a.exampleName){const s=Q(e.exampleIds,a.exampleName,r.resolveExample),p=s?r.resolveExample(s):void 0;p&&(t=p.value)}if(t===void 0&&e.exampleIds?.length){const s=r.resolveExample(e.exampleIds[0]);s&&(t=s.value)}if(t===void 0&&e.schemaId){const s=r.resolveVariantSchemaForSampling?.(e.schemaId),p=s?.schema??r.resolveSchema(e.schemaId),m=s?.variantSchemaId??e.schemaId;if(p){const y=n.toLowerCase().includes("xml");t=r.sampleFromSchema(p,{...o,format:y?"xml":o.format}),t&&typeof t=="object"&&!Array.isArray(t)&&m!==e.schemaId&&r.applyDiscriminatorValue?.(t,m)}}if(c!==void 0&&a.replayBody===void 0&&(t===void 0?t=c:t=F(t,c)),t===void 0)return;const l=n.toLowerCase();let i,d=[];if(l.includes("x-www-form-urlencoded"))typeof t=="object"&&t!==null?(d=Object.entries(t).map(([s,p])=>({name:s,value:E(p)})),i=H(t)):i=String(t);else if(l.includes("multipart/form-data"))typeof t=="string"?(d=M(t)??[],i=t):(typeof t=="object"&&t!==null&&!Array.isArray(t)&&(d=Object.entries(t).map(([s,p])=>({name:s,value:E(p)}))),i=JSON.stringify(t,null,2));else if(K(l))if(typeof t=="string")i=t;else{const s=e.schemaId?r.resolveSchema(e.schemaId):void 0;i=String(Y(t,l,s,!0))}else l.includes("json")?i=typeof t=="string"?t:JSON.stringify(t,null,2):l.includes("xml")?i=typeof t=="string"?t:t&&typeof t=="object"?L(t):String(t):i=typeof t=="string"?t:JSON.stringify(t,null,2);return{mimeType:n,params:d,text:i}}function ue(e){try{const n=JSON.parse(e);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}}export{Ie as buildCodeSampleHAR};
|
|
1
|
+
import $ from"url-template";import{SecurityVariablesEnvSuffix as g}from"@redocly/theme/core/openapi";import{mergeBodyValue as F}from"../../adapters/openapi/configure/merge-utils.js";import{formUrlEncodeValue as K,stringifyFormFieldValue as E}from"../../utils/form-urlencoded.js";import{isSequentialMediaType as H}from"../../utils/media-type.js";import{parseMultipartFormData as M}from"../../utils/multipart.js";import{objectToHarParams as J}from"../../utils/serialize-querystring.js";import{jsonToXml as L}from"../../utils/xml.js";import{MediaTypes as k}from"../../constants/openapi.js";import{convertSampleToString as Y}from"./convertSampleToString.js";import{findExampleIdByKey as Q,mediaTypeContainingKey as X}from"./example-key.js";import{resolveServerUrl as G}from"./normalize-servers.js";import{serverMatchesUrl as W}from"./server-variables.js";function Ie(e,n,a,r){const o=e.servers.find(f=>W(f,n.serverUrl))||e.servers[0],u=o?.url?.replace(/\/$/,"")??"",c=u?G(u).replace(/\/$/,""):"",t={};if(o?.variables)for(const[f,A]of Object.entries(o.variables))t[f]=n.environment?.[f]||A.default||"";const l=e.path.replace(/^\//,""),s=`${c}/${l}`,d={skipReadOnly:!0,maxDepth:a.generatedPayloadSamplesMaxDepth??8,format:"json"},i=o?.url??n.serverUrl??"",p=n.requestValues??{},m=Z(e.security,n.activeSecuritySchemeIds),y=ee(m,n,a,i),S=b(e.parameters.header,"header",i,p,a,r,d).concat(y.headers),h=n.mediaType||X(e.requestBody,n.exampleName,r.resolveExample)||(e.requestBody?Object.keys(e.requestBody)[0]:void 0);let R=!1;for(const f of S)f.name.toLowerCase()==="content-type"&&h&&(f.value=h,R=!0);!R&&h&&S.unshift({name:"Content-Type",value:h});const v=b(e.parameters.cookie,"cookie",i,p,a,r,d).concat(y.cookies),O=e.parameters.querystring.length>0,C=b(O?e.parameters.querystring:e.parameters.query,O?"querystring":"query",i,p,a,r,d).concat(y.queries),U={};for(const f of e.parameters.path)U[f.name]=p.path?.[f.name]||f.serverValues?.[i]?.example||f.example||"";let x;if(h&&e.requestBody?.[h]){const f=e.requestBody[h],A=e.requestValues?.serverBody?.[i]??e.requestValues?.body;x=le(f,h,n,r,d,i,A)}const w={};for(const f of S)w[f.name]=f.value;const I={};v.length&&(I.cookie=v.map(f=>`${encodeURIComponent(f.name)}=${encodeURIComponent(f.value)}`).join("; ")),Object.assign(I,w);const j={};for(const f of C)V(j,f.name,f.value);const B=x?.text?ue(x.text):void 0;let _;if(x?.params?.length){_={};for(const f of x.params)V(_,f.name,f.value??"")}const P=C.map(f=>`${encodeURIComponent(f.name)}=${encodeURIComponent(f.value)}`).join("&"),q=P?`${s}?${P}`:s;return{method:e.method.toUpperCase(),url:s,pathname:q,httpVersion:"HTTP/1.1",cookies:v,headers:S,queryString:C,postData:x,headersSize:-1,bodySize:-1,fullUrl:q,headersObj:w,allHeaders:I,queryObj:j,jsonObj:B,paramsObj:_,basicAuth:y.basicAuth,pathParameters:U,serverVariables:t,responseCodes:e.responseCodes,allResponseCodes:e.responseCodes,oAuth2PreRequests:y.oAuth2PreRequests}}function V(e,n,a){const r=e[n];r===void 0?e[n]=a:Array.isArray(r)?r.push(a):e[n]=[r,a]}function Z(e,n){if(e.length){if(n?.length){const a=e.find(r=>{const o=r.schemes.map(u=>u.id);return o.length===n.length&&o.every(u=>n.includes(u))});if(a)return a}return e[0]}}function ee(e,n,a,r){const o={headers:[],cookies:[],queries:[]};if(!e)return o;for(const u of e.schemes)ne(u,o,n,a,r,e.scopes);return o}const te={"x-defaultUsername":g.Username,"x-defaultPassword":g.Password,"x-defaultClientId":g.ClientId,"x-defaultClientSecret":g.ClientSecret};function ne(e,n,a,r,o,u=[]){const c=a.requestValues?.security,t=l=>{const s=e.serverValues?.[o];if(s){const y=s[l];if(y!=null)return String(y)}const d=e[l];if(d!=null&&typeof d=="string")return d;const i=c?.[l];if(i!=null)return String(i);const p=l==="x-defaultAccessToken"?e.type==="apiKey"?g.APIKey:g.Token:te[l],m=p!==void 0?a.environment?.[e.id+p]:void 0;if(m)return m};if(e.type==="http"&&e.scheme==="basic")n.basicAuth={username:t("x-defaultUsername")||c?.username||"<username>",password:t("x-defaultPassword")||c?.password||"<password>"};else if(e.type==="http"){const l=t("x-defaultAccessToken"),s=e.scheme||"bearer",d=s.charAt(0).toUpperCase()+s.slice(1),i=e.bearerFormat?`<YOUR_${e.bearerFormat}_HERE>`:"<YOUR_TOKEN_HERE>";n.headers.push({name:"Authorization",value:l?`${d} ${l}`:`${d} ${i}`})}else if(e.type==="apiKey"&&e.name){const l=t("x-defaultAccessToken")||"YOUR_API_KEY_HERE",s={name:e.name,value:l};e.in==="header"?n.headers.push(s):e.in==="cookie"?n.cookies.push({name:e.name,value:l}):(e.in==="query"||e.in==="querystring"||e.in===void 0)&&n.queries.push({name:e.name,value:l})}else if(e.type==="oauth2"){const l=t("x-defaultAccessToken"),s=t("x-defaultTokenType")||"Bearer";if(n.headers.push({name:"Authorization",value:l?`${s} ${l}`:"Bearer <YOUR_TOKEN_HERE>"}),r.withOAuth2Call&&e.flows){const d=[];if(e.flows.deviceAuthorization){const i=e.flows.deviceAuthorization;d.push(ae(i.deviceAuthorizationUrl,i.tokenUrl,e,o,u))}else if(e.flows.clientCredentials){const i=e.flows.clientCredentials;d.push(z("clientCredentials",i.tokenUrl,e,o,u))}else if(e.flows.password){const i=e.flows.password;d.push(z("password",i.tokenUrl,e,o,u))}d.length>0&&(n.oAuth2PreRequests=(n.oAuth2PreRequests??[]).concat(d))}}else if(e.type==="openIdConnect"){const l=t("x-defaultAccessToken"),s=t("x-defaultTokenType")||"Bearer";n.headers.push({name:"Authorization",value:l?`${s} ${l}`:"Bearer <YOUR_TOKEN_HERE>"})}}function ae(e,n,a,r,o=[]){const u=a.serverValues?.[r]?.["x-defaultClientId"]||a["x-defaultClientId"]||"YOUR_CLIENT_ID",c=[{name:"client_id",value:u}];return o.length>0&&c.push({name:"scope",value:o.join(" ")}),{flowType:"deviceAuthorization",tokenUrl:n,clientId:u,scopes:o.length>0?o:void 0,method:"POST",url:e,httpVersion:"HTTP/1.1",cookies:[],headers:[{name:"Content-Type",value:"application/x-www-form-urlencoded"},{name:"Accept",value:"application/json"}],queryString:[],postData:{mimeType:"application/x-www-form-urlencoded",params:c,text:c.map(t=>`${encodeURIComponent(t.name)}=${encodeURIComponent(t.value??"")}`).join("&")},headersSize:-1,bodySize:-1}}function z(e,n,a,r,o=[]){const u=a.serverValues?.[r]?.["x-defaultClientId"]||a["x-defaultClientId"]||"YOUR_CLIENT_ID",c=a.serverValues?.[r]?.["x-defaultClientSecret"]||a["x-defaultClientSecret"],t=a.serverValues?.[r]?.["x-defaultUsername"]||a["x-defaultUsername"],l=a.serverValues?.[r]?.["x-defaultPassword"]||a["x-defaultPassword"],s=[];return e==="clientCredentials"?s.push({name:"grant_type",value:"client_credentials"}):e==="password"&&s.push({name:"grant_type",value:"password"}),s.push({name:"client_id",value:u}),s.push({name:"client_secret",value:c||"YOUR_CLIENT_SECRET"}),e==="password"&&(s.push({name:"username",value:t||"<username>"}),s.push({name:"password",value:l||"<password>"})),o.length>0&&s.push({name:"scope",value:o.join(" ")}),{flowType:e,tokenUrl:n,clientId:u,clientSecret:c,username:t,password:l,scopes:o.length>0?o:void 0,method:"POST",url:n,httpVersion:"HTTP/1.1",cookies:[],headers:[{name:"Content-Type",value:"application/x-www-form-urlencoded"},{name:"Accept",value:"application/json"}],queryString:[],postData:{mimeType:"application/x-www-form-urlencoded",params:s,text:s.map(d=>`${encodeURIComponent(d.name)}=${encodeURIComponent(d.value??"")}`).join("&")},headersSize:-1,bodySize:-1}}function N(e,n,a){return n==="querystring"&&e.serializationMime===k.URL_ENCODED&&typeof a=="object"&&a!==null?re(J(a)):null}function re(e){const n=new Map,a=[];for(const r of e){const o=n.get(r.name);o?o.push(r.value):(n.set(r.name,[r.value]),a.push(r.name))}return a.map(r=>({name:r,value:(n.get(r)??[]).join(",")}))}function b(e,n,a,r,o,u,c){return e.filter(t=>!o.skipOptionalParameters||t.required).flatMap(t=>{const s=r[n==="querystring"?"query":n]?.[t.name];if(s!=null)return[{name:t.name,value:String(s)}];const d=t.serverValues?.[a]?.example;if(d!=null)return[{name:t.name,value:T(t,d)}];if(t.example!=null){const i=N(t,n,t.example);return i||(t.serializationMime&&u.serializeParameter?[{name:t.name,value:u.serializeParameter(t,t.example)}]:[{name:t.name,value:T(t,t.example)}])}if(n==="querystring"&&t.serializationMime===k.URL_ENCODED&&t.schemaId){const i=u.resolveSchema(t.schemaId);if(i){const p=u.sampleFromSchema(i,c),m=N(t,n,p);if(m)return m}}return[{name:t.name,value:oe(t,u,c)}]})}function oe(e,n,a){if(e.schemaId){const r=n.resolveSchema(e.schemaId);if(r){const o=n.sampleFromSchema(r,a);if(o!=null)return e.serializationMime&&n.serializeParameter?n.serializeParameter(e,o):T(e,o)}}return`{${e.name}}`}function ie(e){switch(e){case"query":case"querystring":case"cookie":return"form";case"path":case"header":return"simple";default:return"form"}}function T(e,n){if(n==null)return"";if(typeof n!="object")return String(n);const a=e.style??ie(e.in),o=e.explode??a==="form"?"*":"",u="__redoc_param_name__";try{switch(a){case"form":{const l=$.parse(`{?${u}${o}}`).expand({[u]:n}).substring(1).replace(/__redoc_param_name__/g,e.name).split(`&${e.name}=`);return l[0]=l[0].replace(new RegExp(`^${se(e.name)}=`),""),l.map(D).join(",")}case"spaceDelimited":return Array.isArray(n)?n.map(String).join(" "):String(n);case"pipeDelimited":return Array.isArray(n)?n.map(String).join("|"):String(n);case"simple":case"label":case"matrix":{const c=a==="label"?".":a==="matrix"?";":"",t=$.parse(`{${c}${u}${o}}`);return D(t.expand({[u]:n}).replace(/__redoc_param_name__/g,e.name))}case"deepObject":return JSON.stringify(n);default:return JSON.stringify(n)}}catch{return Array.isArray(n)?n.map(String).join(","):JSON.stringify(n)}}function se(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e){try{return decodeURIComponent(e)}catch{return e}}function le(e,n,a,r,o,u,c){let t;if(a.replayBody!==void 0&&(t=a.replayBody),t===void 0&&a.exampleName){const i=Q(e.exampleIds,a.exampleName,r.resolveExample),p=i?r.resolveExample(i):void 0;p&&(t=p.value)}if(t===void 0&&e.exampleIds?.length){const i=r.resolveExample(e.exampleIds[0]);i&&(t=i.value)}if(t===void 0&&e.schemaId){const i=r.resolveVariantSchemaForSampling?.(e.schemaId),p=i?.schema??r.resolveSchema(e.schemaId),m=i?.variantSchemaId??e.schemaId;if(p){const y=n.toLowerCase().includes("xml");t=r.sampleFromSchema(p,{...o,format:y?"xml":o.format}),t&&typeof t=="object"&&!Array.isArray(t)&&m!==e.schemaId&&r.applyDiscriminatorValue?.(t,m,i?.mappingKey)}}if(c!==void 0&&a.replayBody===void 0&&(t===void 0?t=c:t=F(t,c)),t===void 0)return;const l=n.toLowerCase();let s,d=[];if(l.includes("x-www-form-urlencoded"))typeof t=="object"&&t!==null?(d=Object.entries(t).map(([i,p])=>({name:i,value:E(p)})),s=K(t)):s=String(t);else if(l.includes("multipart/form-data"))typeof t=="string"?(d=M(t)??[],s=t):(typeof t=="object"&&t!==null&&!Array.isArray(t)&&(d=Object.entries(t).map(([i,p])=>({name:i,value:E(p)}))),s=JSON.stringify(t,null,2));else if(H(l))if(typeof t=="string")s=t;else{const i=e.schemaId?r.resolveSchema(e.schemaId):void 0;s=String(Y(t,l,i,!0))}else l.includes("json")?s=typeof t=="string"?t:JSON.stringify(t,null,2):l.includes("xml")?s=typeof t=="string"?t:t&&typeof t=="object"?L(t):String(t):s=typeof t=="string"?t:JSON.stringify(t,null,2);return{mimeType:n,params:d,text:s}}function ue(e){try{const n=JSON.parse(e);if(n&&typeof n=="object"&&!Array.isArray(n))return n}catch{}}export{V as appendKeyValue,Ie as buildCodeSampleHAR};
|
|
@@ -2,9 +2,11 @@ import type { SchemaEntry } from '../../types/store.js';
|
|
|
2
2
|
export type EffectiveDiscriminator = {
|
|
3
3
|
propertyName: string;
|
|
4
4
|
mapping: Record<string, string>;
|
|
5
|
+
defaultMapping?: string;
|
|
6
|
+
variantsNode?: Record<string, unknown>;
|
|
5
7
|
};
|
|
6
8
|
export declare function findEffectiveDiscriminator(schemaData: Record<string, unknown> | undefined, schemaStore: Record<string, SchemaEntry>, visited?: Set<string>): EffectiveDiscriminator | undefined;
|
|
7
|
-
export declare function applyDiscriminatorValue(sample: Record<string, unknown>, variantSchemaId: string, schemaStore: Record<string, SchemaEntry
|
|
9
|
+
export declare function applyDiscriminatorValue(sample: Record<string, unknown>, variantSchemaId: string, schemaStore: Record<string, SchemaEntry>, mappingKey?: string): void;
|
|
8
10
|
export type SchemaVariantOption = {
|
|
9
11
|
label: string;
|
|
10
12
|
schemaId: string;
|
|
@@ -12,6 +14,11 @@ export type SchemaVariantOption = {
|
|
|
12
14
|
isDefaultMapping?: boolean;
|
|
13
15
|
isDeprecated?: boolean;
|
|
14
16
|
};
|
|
17
|
+
export type HoistedVariant = {
|
|
18
|
+
schema: Record<string, unknown>;
|
|
19
|
+
variantSchemaId: string;
|
|
20
|
+
mappingKey?: string;
|
|
21
|
+
};
|
|
15
22
|
export type SchemaVariantAxis = {
|
|
16
23
|
kind: 'discriminator' | 'oneOf' | 'anyOf';
|
|
17
24
|
stateKey: string;
|
|
@@ -25,15 +32,14 @@ export declare function findSchemaVariantAxis(schemaId: string, schemaStore: Rec
|
|
|
25
32
|
}): SchemaVariantAxis | undefined;
|
|
26
33
|
export declare function resolveActiveVariantIndex(axis: SchemaVariantAxis, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>): number;
|
|
27
34
|
export declare function resolveActiveVariantSchemaId(schemaId: string, schemaStore: Record<string, SchemaEntry>, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>): string;
|
|
28
|
-
export declare function hoistActiveVariantSchemaForSampling(schemaId: string, schemaStore: Record<string, SchemaEntry>, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>):
|
|
29
|
-
schema: Record<string, unknown>;
|
|
30
|
-
variantSchemaId: string;
|
|
31
|
-
} | undefined;
|
|
35
|
+
export declare function hoistActiveVariantSchemaForSampling(schemaId: string, schemaStore: Record<string, SchemaEntry>, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>): HoistedVariant | undefined;
|
|
32
36
|
/**
|
|
33
|
-
* Deep-collapse inline nested
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
+
* Deep-collapse inline nested variant axes to the active option so generated
|
|
38
|
+
* samples follow the switcher: oneOf/anyOf collapse to the active branch
|
|
39
|
+
* (default 0) — so null branches sample as `null`: the sampler turns any
|
|
40
|
+
* surviving `oneOf: [{type: 'null'}]` wrapper into `{}` — and inline
|
|
41
|
+
* discriminator hosts collapse to the active variant with its mapping key
|
|
42
|
+
* stamped. Returns a structural clone.
|
|
37
43
|
*/
|
|
38
|
-
export declare function applyActiveVariantsToSchema(data: Record<string, unknown>, schemaStore: Record<string, SchemaEntry>, activeOneOf?: Record<string, number>, parentPath?: string[]): Record<string, unknown>;
|
|
44
|
+
export declare function applyActiveVariantsToSchema(data: Record<string, unknown>, schemaStore: Record<string, SchemaEntry>, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>, parentPath?: string[]): Record<string, unknown>;
|
|
39
45
|
export declare function applyActiveVariantsToStore(schemaStore: Record<string, SchemaEntry>, activeDiscriminator?: Record<string, number>, activeOneOf?: Record<string, number>): Record<string, Record<string, unknown>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{buildVariantStateKey as
|
|
1
|
+
import{buildVariantStateKey as j}from"../../jotai/itemStore.js";import{deriveVariantLabel as B}from"../schema/variant-label.js";function g(n){return n.discriminator}function O(n){return n.startsWith("#/")?n.slice(2):n}function _(n,r,o=new Set){if(!n)return;const i=g(n);if(i?.propertyName&&(i.mapping||n.oneOf||n.anyOf))return{propertyName:i.propertyName,mapping:i.mapping??{},...i.defaultMapping&&{defaultMapping:i.defaultMapping},...(Array.isArray(n.oneOf)||Array.isArray(n.anyOf))&&{variantsNode:n}};const t=n.allOf;if(Array.isArray(t))for(const e of t){if(!e||typeof e!="object")continue;const f=e;if(typeof f.$ref=="string"){const s=O(f.$ref);if(o.has(s))continue;o.add(s);const c=r[s];if(c){const p=_(c.data,r,o);if(p)return p}continue}const a=_(f,r,o);if(a)return a}}function tn(n,r,o,i){for(const t of Object.values(o)){const e=g(t.data);if(!(!e?.propertyName||!e.mapping)&&e.propertyName in n){if(i!==void 0){const f=e.mapping[i];if(f&&O(f)===r){n[e.propertyName]=i;return}continue}if(e.defaultMapping&&O(e.defaultMapping)===r)return;for(const[f,a]of Object.entries(e.mapping))if(O(a)===r){n[e.propertyName]=f;return}}}}function K({oneOfList:n,oneOfOwner:r,extraSiblings:o,fallbackSchemaId:i,schemaStore:t,activeIdx:e=0}){const f=e>=0&&e<n.length?e:0,a=n[f],s=M(a,t);if(!s)return;const{oneOf:c,anyOf:p,...d}=r,u=[...o,d].filter(V),y=[...Array.isArray(s.allOf)?s.allOf:[],...u],{allOf:m,...I}=s,E=y.length?{...I,allOf:y}:{...I},N=R(a,t)??i;return{schema:E,variantSchemaId:N}}function V(n){return!!n&&typeof n=="object"&&!Array.isArray(n)&&Object.keys(n).length>0}function M(n,r){if(!n||typeof n!="object")return;const o=n;if(typeof o.$ref!="string")return o;const i=O(o.$ref);return r[i]?.data}function R(n,r){if(!n||typeof n!="object")return;const o=n;if(typeof o.$ref!="string")return;const i=O(o.$ref);return r[i]?i:void 0}const P="One of:",z="Any of:",G="Default mapping";function v(n){return!!n?.deprecated}function U(n,r){if(!n||typeof n!="object")return{};const o=n;if(typeof o.$ref=="string"){const i=r[O(o.$ref)];if(!i)return{};const t={...i.data};return t["x-original-ref"]=o.$ref,t}return o}function T(n,r){const o=O(n),i=r[o];return i?{schemaId:o,entry:i}:void 0}function X(n,r,o){const i=Object.entries(n.mapping);if(i.length===0)return;const t=n.defaultMapping,e=[];for(const[a,s]of i){const c=T(s,r);c&&e.push({label:a,schemaId:c.schemaId,mappingKey:a,isDeprecated:v(c.entry.data)})}const f=t?T(t,r):void 0;if(t&&f){const a=t.split("/").pop(),s=e.findIndex(c=>c.label===a);s!==-1&&e.splice(s,1),e.push({label:G,schemaId:f.schemaId,isDefaultMapping:!0,isDeprecated:v(f.entry.data)})}return{kind:"discriminator",stateKey:j(o,n.propertyName),options:e,localPart:n.propertyName,parentPath:o}}function A(n,r,o,i,t){if(!n.length)return;const e=t==="anyOf"?z:P,f=[],a=new Map;for(let s=0;s<n.length;s++){const c=n[s],p=U(c,o),{label:d}=B(p,r),u=(a.get(d)??0)+1;a.set(d,u);const l=u===1?d:`${d} (${u})`,y=R(c,o)??"";f.push({label:l,schemaId:y,isDeprecated:v(o[y]?.data??c)})}return{kind:t,stateKey:j(i,e),options:f,localPart:e,parentPath:i}}function x(n,r,o){const i=_(n,r);if(i){const t=X(i,r,o);if(t&&t.options.length>0)return t;const e=i.variantsNode??n;for(const f of["oneOf","anyOf"]){const a=e[f];if(!Array.isArray(a)||a.length===0)continue;const s=A(a,e,r,o,f);if(s&&s.options.length>0)return{...s,kind:"discriminator",localPart:i.propertyName,stateKey:j(o,i.propertyName)}}}if(Array.isArray(n.oneOf)&&n.oneOf.length>0){const t=A(n.oneOf,n,r,o,"oneOf");if(t&&t.options.length>0)return t}if(Array.isArray(n.anyOf)&&n.anyOf.length>0){const t=A(n.anyOf,n,r,o,"anyOf");if(t&&t.options.length>0)return t}}function k(n,r,o=new Map,i=new Set,t=[]){if(!n)return o;const e=(s,c=t)=>{if(!s||typeof s!="object")return;const p=s;if(typeof p.$ref=="string"){const u=O(p.$ref);if(i.has(u))return;i.add(u);const l=r[u]?.data;if(!l)return;const y=x(l,r,c);y&&y.options.length>1&&o.set(y.stateKey,y),k(l,r,o,i,c);return}const d=x(p,r,c);d&&d.options.length>1&&o.set(d.stateKey,d),k(p,r,o,i,c)},f=n.properties;if(f&&typeof f=="object")for(const[s,c]of Object.entries(f))e(c,[...t,s]);const a=t.length>0?[...t.slice(0,-1),`${t[t.length-1]}[]`]:t;e(n.items,a);for(const s of["oneOf","anyOf","allOf"]){const c=n[s];if(Array.isArray(c))for(const p of c)e(p,t)}return o}function Y(n,r,{includeNested:o=!1}={}){const i=r[n];if(!i)return;const t=x(i.data,r,[]);if(t&&t.options.length>0)return t;if(!o)return;const e=k(i.data,r);if(e.size===1)return e.values().next().value}function b(n,r,o){const i=n.kind==="discriminator"?r:o;if(!i)return 0;const t=i[n.stateKey];if(t!==void 0&&t>=0&&t<n.options.length)return t;const e=Object.entries(i).filter(([f])=>f.endsWith(`/${n.stateKey}`)||f.includes("/")&&n.stateKey.endsWith(`/${f}`));if(e.length===1){const[,f]=e[0];if(f>=0&&f<n.options.length)return f}return 0}function w(n,r,o,i){const t=Y(n,r);if(!t)return;const e=b(t,o,i),f=t.options[e]??t.options[0];if(!(!f?.schemaId||!r[f.schemaId]))return f}function en(n,r,o,i){return w(n,r,o,i)?.schemaId??n}function rn(n,r,o,i){const t=q(n,r,i);if(t)return t;const e=w(n,r,o,i);if(!e||e.schemaId===n)return;const f=r[e.schemaId];if(f)return{schema:f.data,variantSchemaId:e.schemaId,mappingKey:e.mappingKey}}function q(n,r,o){const i=r[n];if(!i||g(i.data))return;const t=i.data;if(Array.isArray(t.oneOf)&&t.oneOf.length>0){const e=A(t.oneOf,t,r,[],"oneOf"),f=e?b(e,void 0,o):0;return K({oneOfList:t.oneOf,oneOfOwner:t,extraSiblings:[],fallbackSchemaId:n,schemaStore:r,activeIdx:f})}if(Array.isArray(t.anyOf)&&t.anyOf.length>0){const e=A(t.anyOf,t,r,[],"anyOf"),f=e?b(e,void 0,o):0;return K({oneOfList:t.anyOf,oneOfOwner:t,extraSiblings:[],fallbackSchemaId:n,schemaStore:r,activeIdx:f})}if(Array.isArray(t.allOf)){let e,f,a="oneOf";const s=[];for(const d of t.allOf){const u=M(d,r)??d,l=Array.isArray(u.oneOf)?u.oneOf:Array.isArray(u.anyOf)?u.anyOf:void 0;!f&&l?.length&&!g(u)?(e=u,f=l,a=Array.isArray(u.oneOf)?"oneOf":"anyOf"):s.push(d)}if(!f||!e)return;const c=A(f,e,r,[],a),p=c?b(c,void 0,o):0;return K({oneOfList:f,oneOfOwner:e,extraSiblings:s,fallbackSchemaId:n,schemaStore:r,activeIdx:p})}}function J(n){return n.length===0?n:[...n.slice(0,-1),`${n[n.length-1]}[]`]}function Q(n,r,o,i,t){const e=g(n);if(!e?.propertyName)return;const f=x(n,r,o);if(!f)return;const a=b(f,i,t),s=f.options[a]??f.options[0];if(!s?.schemaId||!r[s.schemaId])return;const{oneOf:c,anyOf:p,discriminator:d,...u}=n,l={allOf:[{$ref:`${$}${s.schemaId}`}]};return{...u,...H(l,e.propertyName,s.mappingKey)}}function Z(n,r,o,i,t=[]){const e=(f,a,s=!1)=>{if(!f||typeof f!="object")return f;if(Array.isArray(f))return f.map(d=>e(d,a));const c=f;if(typeof c.$ref=="string")return c;if(!s){const d=Q(c,r,a,o,i);if(d)return e(d,a)}if(!g(c))for(const d of["oneOf","anyOf"]){const u=c[d];if(!Array.isArray(u)||u.length===0)continue;const l=A(u,c,r,a,d),y=l?b(l,void 0,i):0,m=u[y]??u[0];if(!V(m))continue;const{oneOf:I,anyOf:E,...N}=c;return e({...N,...m},a)}const p={};for(const[d,u]of Object.entries(c))if(d==="properties"&&V(u)){const l={};for(const[y,m]of Object.entries(u))l[y]=e(m,[...a,y]);p[d]=l}else d==="items"?p[d]=e(u,J(a)):d==="allOf"||d==="oneOf"||d==="anyOf"?p[d]=e(u,a):p[d]=u;return p};return e(n,t,!0)}function C(n,r){return n.type!==void 0||r.type===void 0?n:{...n,type:r.type}}function on(n,r,o){const i={};for(const[t,e]of Object.entries(n)){if(!e.data)continue;const f=g(e.data);if(f?.propertyName&&(f.mapping||Array.isArray(e.data.oneOf)||Array.isArray(e.data.anyOf))){const s=w(t,n,r,o),c=s&&s.schemaId!==t?n[s.schemaId]?.data:void 0;if(c){const p=W(c,t,e.data);i[t]=C(H(p,f.propertyName,s?.mappingKey),e.data)}else i[t]=e.data;continue}let a=!1;for(const s of["oneOf","anyOf"]){const c=e.data[s];if(!Array.isArray(c))continue;const p=A(c,e.data,n,[],s);if(!p||p.options.length<=1)continue;const d=b(p,void 0,o),u=p.options[d]??p.options[0];if(!u?.schemaId||!n[u.schemaId])continue;const l=n[u.schemaId].data;i[t]=C(W(l,t,e.data),e.data),a=!0;break}a||(i[t]=e.data)}for(const[t,e]of Object.entries(i))i[t]=Z(e,n,r,o);return i}const $="#/";function H(n,r,o){if(!o)return n;const i={properties:{[r]:{enum:[o]}}};return Array.isArray(n.allOf)?{...n,allOf:[...n.allOf,i]}:{allOf:[n,i]}}function D(n){const r=new Set([`${$}${n}`]);return n.startsWith("components/schemas/")?r.add(`${$}${n.replace("components/schemas/","")}`):r.add(`${$}components/schemas/${n}`),Array.from(r)}function h(n){const{discriminator:r,oneOf:o,anyOf:i,...t}=n;return t}function W(n,r,o){const i=D(r);if(!L(n,i))return n;const t=h(o);return F(n,i,t)}function L(n,r){if(!n||typeof n!="object")return!1;if(Array.isArray(n))return n.some(i=>L(i,r));const o=n;if(typeof o.$ref=="string"&&r.includes(o.$ref))return!0;for(const i of Object.values(o))if(L(i,r))return!0;return!1}function F(n,r,o){if(!n||typeof n!="object")return n;if(Array.isArray(n))return n.map(e=>F(e,r,o));const i=n;if(typeof i.$ref=="string"&&r.includes(i.$ref))return{...o};const t={};for(const[e,f]of Object.entries(i))t[e]=F(f,r,o);return t}export{Z as applyActiveVariantsToSchema,on as applyActiveVariantsToStore,tn as applyDiscriminatorValue,k as collectNestedVariantAxes,_ as findEffectiveDiscriminator,Y as findSchemaVariantAxis,rn as hoistActiveVariantSchemaForSampling,b as resolveActiveVariantIndex,en as resolveActiveVariantSchemaId};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CodeBuilder as
|
|
2
|
-
`)){const i=s.replace(/"/g,'\\"');t.push(3,`"${i}", `)}t.push(2,");"),t.push(2,"%s.setEntity(new StringEntity(payload));",t.var("request"))}break;case
|
|
1
|
+
import{CodeBuilder as w,Lang as A}from"./helpers/code-builder.js";import{buildUrlExpression as d,printUrlVariablesDeclarations as k}from"./helpers/url-helpers.js";import{buildJava8DeviceAuthorizationCodeSnippet as v}from"./helpers/oauth2-snippets.js";import{normalizeMimeType as D}from"./helpers/mime.js";import{MediaTypes as o}from"../../../constants/openapi.js";import{toCodeSampleHAR as N}from"./helpers/sub-request.js";function C(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t){return"Http"+C(t.toLowerCase())}function b(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)&&Object.keys(t).length===0}function S(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function E(t){return typeof t=="string"}function m(t){return E(t)?JSON.stringify(t):t==null?"JSONObject.NULL":String(t)}function q(t,a){const r={indent:" ",withWrapper:!0,...a},e=new w({indentation:r.indent,variablesPrefix:r.variablesPrefix,capitalize:!0,lang:A.JAVA8}),s=g(t.method),i=t.oAuth2PreRequests?.[0],u=D(t.postData?.mimeType);r.withComments&&(e.push("/**"),e.push(" * Requires JDK >= 8"),e.push(" *"),e.push(" * Requires Apache HttpComponents Client >= 4.3.5"),e.push(" * See here for installation details:"),e.push(" * https://search.maven.org/artifact/org.apache.httpcomponents/httpcomponents-client"),e.push(" *"),e.push(' * Requires package "junit4"'),e.push(" * See here for installation details:"),e.push(" * https://junit.org/junit4"),e.push(" *"),e.push(' * Requires package "org.json" >= 20180130'),e.push(" * See here for installation details:"),e.push(" * https://search.maven.org/artifact/org.json/json"),e.push(" */"),e.blank()),r.withImports&&(e.push("import org.apache.http.util.EntityUtils;"),e.push("import org.apache.http.NameValuePair;"),e.push("import org.apache.http.client.HttpClient;"),e.push("import org.apache.http.client.entity.UrlEncodedFormEntity;"),t.method&&e.push(`import org.apache.http.client.methods.${s};`),i&&i.method.toLowerCase()!==t.method.toLowerCase()&&e.push(`import org.apache.http.client.methods.${g(i.method)};`),e.push("import org.apache.http.impl.client.HttpClientBuilder;"),e.push("import org.apache.http.message.BasicNameValuePair;"),e.push("import org.apache.http.entity.StringEntity;"),e.push("import org.json.JSONObject;"),e.push("import org.json.JSONArray;"),e.push("import java.util.ArrayList;"),e.push("import java.util.List;"),e.push("import org.apache.http.entity.mime.MultipartEntity;"),e.push("import org.apache.http.entity.mime.content.StringBody;"),!t.postData?.params?.length&&t.postData?.text&&u===o.MULTIPART&&(e.push("import org.apache.http.entity.mime.content.FileBody;"),e.push("import java.io.File;")),t.basicAuth&&e.push("import java.util.Base64;"),e.blank()),r.withWrapper&&(e.push("public class App {"),e.push(1,"public static void main(String[] args ) throws java.io.IOException {"),e.push(2,"HttpClient httpClient = HttpClientBuilder.create().build();"),e.blank());const c={...t.allHeaders??t.headersObj};if(i){const p=q(N(i),{...r,withImports:!1,withWrapper:!1,withComments:!1,variablesPrefix:"oauth2"});e.push(p),e.push(2,"JSONObject %s = new JSONObject(EntityUtils.toString(httpClient.execute(%s).getEntity()));","oauth2Response","oauth2Request"),i.flowType==="deviceAuthorization"?v(e,{tokenUrl:i.tokenUrl??"YOUR_TOKEN_URL",clientId:i.clientId??"YOUR_CLIENT_ID",level:2}):(e.push(2,'String accessToken = %s.getString("access_token");',"oauth2Response"),e.blank())}k(t,e,2);const O=d(t,e);e.push(2,`%s ${e.var("request")} = new %s(%s);`,s,s,O);const f=Object.keys(c);if(f.length&&!(t.postData&&t.postData.mimeType===o.MULTIPART))for(const p of f){const n=p.toLowerCase()==="authorization";e.push(2,'%s.setHeader("%s", %s);',e.var("request"),p,i&&n?'"Bearer " + accessToken':`"${c[p]}"`)}if(t.basicAuth){const{username:p,password:n}=t.basicAuth;e.push(2,`String encodedString = Base64.getEncoder().encodeToString("${p}:${n}".getBytes());`),e.push(2,'%s.setHeader("%s", "%s"+encodedString);',e.var("request"),"Authorization","Basic ")}const y=(p,n)=>{const j=Array.isArray(p)?p.map((h,l)=>[String(l),h]):Object.entries(p);for(const[h,l]of j)l!==null&&typeof l=="object"?(e.push(n,'.put("%s", new JSONObject()',h),y(l,n+1),e.push(n,")")):e.push(n,'.put("%s", %s)',h,m(l))};return L(e,t,u,y),r.withWrapper&&(e.push(2,`String ${e.var("response")} = EntityUtils.toString(httpClient.execute(request).getEntity());`),e.blank(),e.push(2,"System.out.println(response);"),e.push(1,"}"),e.push("}")),e.join()}function L(t,a,r,e){if(a.postData)switch(r){case o.URL_ENCODED:if(a.postData.params?.length){t.blank(),t.push(2,"List<NameValuePair> params = new ArrayList<NameValuePair>();");for(const s of a.postData.params)t.push(2,'params.add(new BasicNameValuePair("%s", "%s"));',s.name,s.value??"");t.push(2,"%s.setEntity(new UrlEncodedFormEntity(params));",t.var("request")),t.blank()}else a.postData.text&&(t.blank(),t.push(2,'%s.setEntity(new StringEntity("%s"));',t.var("request"),a.postData.text),t.blank());break;case o.MULTIPART:if(a.postData.params&&a.postData.params.length>0){t.push(2,"MultipartEntity reqEntity = new MultipartEntity();");for(const s of a.postData.params)s.fileName?t.push(2,'reqEntity.addPart("%s", new FileBody(new File("%s")));',s.name,s.fileName):t.push(2,'reqEntity.addPart("%s", %s);',s.name,E(s.value)?`new StringBody("${s.value}")`:s.value);t.push(2,"%s.setEntity(reqEntity);",t.var("request"))}else a.postData.text&&t.push(2,'%s.setEntity(new StringEntity("%s"));',t.var("request"),a.postData.text.replace(/\\/g,"\\\\").replace(/"/g,'\\"'));break;case o.JSON:if(a.jsonObj){t.push(2,"JSONObject payload = new JSONObject();");for(const[s,i]of Object.entries(a.jsonObj))if(Array.isArray(i)){t.push(2,'payload.put("%s", new JSONArray()',s);for(const u of i)S(u)?(t.push(3,".put(new JSONObject()"),e(u,4),t.push(3,")")):t.push(3,".put(%s)",m(u));t.push(2,");")}else S(i)?(t.push(2,'payload.put("%s", new JSONObject()%s',s,b(i)?");":""),e(i,3),b(i)||t.push(2,");")):t.push(2,'payload.put("%s", %s);',s,m(i));t.push(2,"%s.setEntity(new StringEntity(payload.toString()));",t.var("request"))}break;case o.XML:if(a.postData.text){t.push(2,'String payload = String.join("\\n"');for(const s of a.postData.text.trim().split(`
|
|
2
|
+
`)){const i=s.replace(/"/g,'\\"');t.push(3,`"${i}", `)}t.push(2,");"),t.push(2,"%s.setEntity(new StringEntity(payload));",t.var("request"))}break;case o.OCTET_STREAM:a.postData.text&&t.push(2,'%s.setEntity(new StringEntity("%s"));',t.var("request"),a.postData.text);break}}export{q as generateJava8};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Which configured languages are offered in the code-sample panel. The community edition keeps only payload and x-codeSamples languages. */
|
|
2
|
+
export declare function filterAvailableLanguages<L extends {
|
|
3
|
+
key: string;
|
|
4
|
+
}>(languages: L[], _definitionSampleKeys: Set<string>): L[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function n(e,i){return e}export{n as filterAvailableLanguages};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { OpenAPIServer } from '
|
|
1
|
+
import type { OpenAPIServer } from '../../types/openapi.js';
|
|
2
2
|
export declare function resolveServerUrl(url: string, specUrl?: string): string;
|
|
3
3
|
export declare function normalizeServers(specUrl: string | undefined, servers: OpenAPIServer[]): OpenAPIServer[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isAbsoluteUrl as l,removeQueryStringAndHash as o,resolveUrl as s}from"../../adapters/openapi/utils/helpers.js";import{getUrlDirname as i}from"../../adapters/openapi/utils/url.js";import{IS_BROWSER as u}from"../../utils/environments.js";function f(e){const t=o(e);if(!t||t.endsWith("/"))return t;const r=t.lastIndexOf("/");return r===-1?"":t.slice(0,r)}function a(e){return e===void 0?o((()=>{if(!u)return globalThis.SSR_HOSTNAME||"";const r=window.location.href;return r.endsWith(".html")&&i(r)||r})()):l(e)?i(e):f(e)}function m(e,t){const r=a(t);return r?s(r,e):e}function S(e,t){let r=t;return r.length===0&&(r=[{url:"/"}]),r.map(n=>({...n,url:m(n.url,e),description:n.description||""}))}export{S as normalizeServers,m as resolveServerUrl};
|