@apiboost/omnispec 1.1.0-next.6 → 1.1.0-next.8
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/README.md +4 -0
- package/dist/cjs/asyncapi/index.js +4 -4
- package/dist/cjs/chunks/{AsyncApiSpec-TKogbIW6.js → AsyncApiSpec-g7Htcn89.js} +4 -4
- package/dist/cjs/chunks/{AsyncApiSpec-TKogbIW6.js.map → AsyncApiSpec-g7Htcn89.js.map} +1 -1
- package/dist/cjs/chunks/{Collapsible-BfmA9-9j.js → Collapsible-2_XxRGv-.js} +2 -2
- package/dist/cjs/chunks/{Collapsible-BfmA9-9j.js.map → Collapsible-2_XxRGv-.js.map} +1 -1
- package/dist/cjs/chunks/{ErrorBoundary-B4HaKqgp.js → ErrorBoundary-DokoK3KD.js} +2 -2
- package/dist/cjs/chunks/{ErrorBoundary-B4HaKqgp.js.map → ErrorBoundary-DokoK3KD.js.map} +1 -1
- package/dist/cjs/chunks/{OmniSpecRenderer-BUy3S_g-.js → OmniSpecRenderer-BJFT4Wum.js} +6 -6
- package/dist/cjs/chunks/{OmniSpecRenderer-BUy3S_g-.js.map → OmniSpecRenderer-BJFT4Wum.js.map} +1 -1
- package/dist/cjs/chunks/{OpenApiSpec-gHi0WNaL.js → OpenApiSpec-Cwg1Jecs.js} +27 -17
- package/dist/cjs/chunks/OpenApiSpec-Cwg1Jecs.js.map +1 -0
- package/dist/cjs/chunks/{OpenIdConnectManual-Ci5ApLr2.js → OpenIdConnectManual-9sxtgylu.js} +30 -4
- package/dist/cjs/chunks/OpenIdConnectManual-9sxtgylu.js.map +1 -0
- package/dist/cjs/chunks/{useSpecDetector-CEVOaUGf.js → useSpecDetector-CAauxHEE.js} +3 -24
- package/dist/cjs/chunks/useSpecDetector-CAauxHEE.js.map +1 -0
- package/dist/cjs/chunks/{useSpecFetcher-DSW4ivlk.js → useSpecFetcher-CpXe_imr.js} +2 -2
- package/dist/cjs/chunks/useSpecFetcher-CpXe_imr.js.map +1 -0
- package/dist/cjs/core/public.js +4 -4
- package/dist/cjs/index.js +8 -8
- package/dist/cjs/openapi/index.js +5 -5
- package/dist/cjs/wc/index.js +4 -4
- package/dist/esm/asyncapi/index.js +4 -4
- package/dist/esm/chunks/{AsyncApiSpec-DkQzir1h.js → AsyncApiSpec-dPymWhNP.js} +4 -4
- package/dist/esm/chunks/{AsyncApiSpec-DkQzir1h.js.map → AsyncApiSpec-dPymWhNP.js.map} +1 -1
- package/dist/esm/chunks/{Collapsible-CAN3BvNV.js → Collapsible-DJnJiyJI.js} +2 -2
- package/dist/esm/chunks/{Collapsible-CAN3BvNV.js.map → Collapsible-DJnJiyJI.js.map} +1 -1
- package/dist/esm/chunks/{ErrorBoundary-Djn7CSf3.js → ErrorBoundary-Ba5GPfFd.js} +2 -2
- package/dist/esm/chunks/{ErrorBoundary-Djn7CSf3.js.map → ErrorBoundary-Ba5GPfFd.js.map} +1 -1
- package/dist/esm/chunks/{OmniSpecRenderer-eqAJuEto.js → OmniSpecRenderer-B1ysJ64C.js} +6 -6
- package/dist/esm/chunks/{OmniSpecRenderer-eqAJuEto.js.map → OmniSpecRenderer-B1ysJ64C.js.map} +1 -1
- package/dist/esm/chunks/{OpenApiSpec-BuNo8dSM.js → OpenApiSpec-DvXokteJ.js} +27 -17
- package/dist/esm/chunks/OpenApiSpec-DvXokteJ.js.map +1 -0
- package/dist/esm/chunks/{OpenIdConnectManual-CzR3QdaN.js → OpenIdConnectManual-CXdMGONf.js} +30 -4
- package/dist/esm/chunks/OpenIdConnectManual-CXdMGONf.js.map +1 -0
- package/dist/esm/chunks/{useSpecDetector-BvnIv0YM.js → useSpecDetector-YPvOiNwd.js} +3 -24
- package/dist/esm/chunks/useSpecDetector-YPvOiNwd.js.map +1 -0
- package/dist/esm/chunks/{useSpecFetcher-D1G2eiXA.js → useSpecFetcher-DRDJ1CzD.js} +2 -2
- package/dist/esm/chunks/useSpecFetcher-DRDJ1CzD.js.map +1 -0
- package/dist/esm/core/public.js +4 -4
- package/dist/esm/index.js +8 -8
- package/dist/esm/openapi/index.js +5 -5
- package/dist/esm/wc/index.js +4 -4
- package/dist/types/core/components/Auth/ApiKeyAuth.d.ts.map +1 -1
- package/dist/types/core/components/TryIt/TryItPanel.d.ts +2 -0
- package/dist/types/core/components/TryIt/TryItPanel.d.ts.map +1 -1
- package/dist/types/core/components/common/UpgradePrompt.d.ts.map +1 -1
- package/dist/types/core/context/AuthContext.d.ts +13 -0
- package/dist/types/core/context/AuthContext.d.ts.map +1 -1
- package/dist/types/core/context/ConfigContext.d.ts +5 -0
- package/dist/types/core/context/ConfigContext.d.ts.map +1 -1
- package/dist/types/core/public.d.ts +2 -1
- package/dist/types/core/public.d.ts.map +1 -1
- package/dist/types/core/types/auth.types.d.ts +15 -0
- package/dist/types/core/types/auth.types.d.ts.map +1 -1
- package/dist/types/core/utils/auth-placement.d.ts +31 -0
- package/dist/types/core/utils/auth-placement.d.ts.map +1 -0
- package/dist/types/openapi/OpenApiSpec.d.ts +1 -1
- package/dist/types/openapi/OpenApiSpec.d.ts.map +1 -1
- package/dist/wc/standalone.js +1 -1
- package/dist/wc/standalone.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/chunks/OpenApiSpec-gHi0WNaL.js.map +0 -1
- package/dist/cjs/chunks/OpenIdConnectManual-Ci5ApLr2.js.map +0 -1
- package/dist/cjs/chunks/useSpecDetector-CEVOaUGf.js.map +0 -1
- package/dist/cjs/chunks/useSpecFetcher-DSW4ivlk.js.map +0 -1
- package/dist/esm/chunks/OpenApiSpec-BuNo8dSM.js.map +0 -1
- package/dist/esm/chunks/OpenIdConnectManual-CzR3QdaN.js.map +0 -1
- package/dist/esm/chunks/useSpecDetector-BvnIv0YM.js.map +0 -1
- package/dist/esm/chunks/useSpecFetcher-D1G2eiXA.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Component } from 'react';
|
|
3
|
-
import { E as ErrorMessage } from './useSpecFetcher-
|
|
3
|
+
import { E as ErrorMessage } from './useSpecFetcher-DRDJ1CzD.js';
|
|
4
4
|
|
|
5
5
|
class ErrorBoundary extends Component {
|
|
6
6
|
constructor(props) {
|
|
@@ -31,4 +31,4 @@ class ErrorBoundary extends Component {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export { ErrorBoundary as E };
|
|
34
|
-
//# sourceMappingURL=ErrorBoundary-
|
|
34
|
+
//# sourceMappingURL=ErrorBoundary-Ba5GPfFd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorBoundary-
|
|
1
|
+
{"version":3,"file":"ErrorBoundary-Ba5GPfFd.js","sources":["../../../src/core/components/common/ErrorBoundary.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { Component } from 'react'\nimport type { ErrorInfo, ReactNode } from 'react'\nimport { ErrorMessage } from './ErrorMessage'\n\ninterface ErrorBoundaryProps {\n children: ReactNode\n /** Title shown in the fallback UI. */\n title?: string\n /**\n * Custom fallback. Receives the caught error. When omitted, a themed\n * `ErrorMessage` is rendered so a render-phase crash never takes down the\n * host page (required hardening for the embeddable widget).\n */\n fallback?: (error: Error) => ReactNode\n /** Optional hook for logging/telemetry when a render crash is caught. */\n onError?: (error: Error, info: ErrorInfo) => void\n}\n\ninterface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * Catches render-phase exceptions from any descendant and renders a graceful\n * fallback instead of crashing the whole React tree. React error boundaries\n * must be class components — there is no hooks equivalent.\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onError?.(error, info)\n // eslint-disable-next-line no-console\n console.error('[omnispec] Render error caught by ErrorBoundary:', error, info)\n }\n\n render(): ReactNode {\n const { error } = this.state\n if (error) {\n if (this.props.fallback) return this.props.fallback(error)\n return (\n <ErrorMessage\n title={this.props.title ?? 'Something went wrong'}\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n )\n }\n return this.props.children\n }\n}\n"],"names":[],"mappings":";;;;AAqCO,MAAM,sBAAsB,SAAA,CAAkD;AAAA,EACnF,YAAY,KAAA,EAA2B;AACrC,IAAA,KAAA,CAAM,KAAK,CAAA;AACX,IAAA,IAAA,CAAK,KAAA,GAAQ,EAAE,KAAA,EAAO,IAAA,EAAK;AAAA,EAC7B;AAAA,EAEA,OAAO,yBAAyB,KAAA,EAAkC;AAChE,IAAA,OAAO,EAAE,KAAA,EAAM;AAAA,EACjB;AAAA,EAEA,iBAAA,CAAkB,OAAc,IAAA,EAAuB;AACrD,IAAA,IAAA,CAAK,KAAA,CAAM,OAAA,GAAU,KAAA,EAAO,IAAI,CAAA;AAEhC,IAAA,OAAA,CAAQ,KAAA,CAAM,kDAAA,EAAoD,KAAA,EAAO,IAAI,CAAA;AAAA,EAC/E;AAAA,EAEA,MAAA,GAAoB;AAClB,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,IAAA,CAAK,KAAA;AACvB,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAI,KAAK,KAAA,CAAM,QAAA,SAAiB,IAAA,CAAK,KAAA,CAAM,SAAS,KAAK,CAAA;AACzD,MAAA,uBACE,GAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,KAAA,IAAS,sBAAA;AAAA,UAC3B,OAAA,EAAS,MAAM,OAAA,IAAW;AAAA;AAAA,OAC5B;AAAA,IAEJ;AACA,IAAA,OAAO,KAAK,KAAA,CAAM,QAAA;AAAA,EACpB;AACF;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { lazy, useMemo, Suspense } from 'react';
|
|
3
|
-
import { a as useSpecFetcher, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage } from './useSpecFetcher-
|
|
4
|
-
import { u as useSpecDetector, U as UpgradePrompt } from './useSpecDetector-
|
|
5
|
-
import { E as ErrorBoundary } from './ErrorBoundary-
|
|
3
|
+
import { a as useSpecFetcher, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage } from './useSpecFetcher-DRDJ1CzD.js';
|
|
4
|
+
import { u as useSpecDetector, U as UpgradePrompt } from './useSpecDetector-YPvOiNwd.js';
|
|
5
|
+
import { E as ErrorBoundary } from './ErrorBoundary-Ba5GPfFd.js';
|
|
6
6
|
|
|
7
7
|
const OpenApiSpec = lazy(
|
|
8
|
-
() => import('./OpenApiSpec-
|
|
8
|
+
() => import('./OpenApiSpec-DvXokteJ.js').then(function (n) { return n.b; }).then((m) => ({ default: m.OpenApiSpec }))
|
|
9
9
|
);
|
|
10
10
|
const AsyncApiSpec = lazy(
|
|
11
|
-
() => import('./AsyncApiSpec-
|
|
11
|
+
() => import('./AsyncApiSpec-dPymWhNP.js').then((m) => ({ default: m.AsyncApiSpec }))
|
|
12
12
|
);
|
|
13
13
|
function OmniSpecRenderer({ specType, spec, theme, docsUrl, upgradeUrl, pro, ...props }) {
|
|
14
14
|
const { data: rawContent, state } = useSpecFetcher(spec);
|
|
@@ -99,4 +99,4 @@ function SpecRenderer({ type, props, registeredRenderers, docsUrl, upgradeUrl })
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
export { OmniSpecRenderer as O };
|
|
102
|
-
//# sourceMappingURL=OmniSpecRenderer-
|
|
102
|
+
//# sourceMappingURL=OmniSpecRenderer-B1ysJ64C.js.map
|
package/dist/esm/chunks/{OmniSpecRenderer-eqAJuEto.js.map → OmniSpecRenderer-B1ysJ64C.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OmniSpecRenderer-
|
|
1
|
+
{"version":3,"file":"OmniSpecRenderer-B1ysJ64C.js","sources":["../../../src/unified/OmniSpecRenderer.tsx"],"sourcesContent":["/**\n * This source file is part of the Apiboost(R) OmniSpec Core.\n *\n * Copyright (c) Apiboost, Inc.\n *\n * SPDX-License-Identifier: Apache-2.0\n *\n * See LICENSE.md and LICENSING.md in the project root for license information.\n */\n\nimport { lazy, Suspense, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport type { BaseSpecProps } from '../core/types/common.types'\nimport type { SpecType } from '../core/types/spec-detection.types'\nimport { useSpecFetcher } from '../core/hooks/useSpecFetcher'\nimport { useSpecDetector } from '../core/hooks/useSpecDetector'\nimport { ThemeProvider } from '../core/themes/ThemeProvider'\nimport { LoadingScreen } from '../core/components/common/LoadingScreen'\nimport { ErrorMessage } from '../core/components/common/ErrorMessage'\nimport { ErrorBoundary } from '../core/components/common/ErrorBoundary'\nimport { UpgradePrompt } from '../core/components/common/UpgradePrompt'\nimport { SpecStatusScreen } from '../core/components/Layout/SpecStatusScreen'\n\nconst OpenApiSpec = lazy(() =>\n import('../openapi/OpenApiSpec').then((m) => ({ default: m.OpenApiSpec })),\n)\nconst AsyncApiSpec = lazy(() =>\n import('../asyncapi/AsyncApiSpec').then((m) => ({ default: m.AsyncApiSpec })),\n)\n\nexport interface OmniSpecRendererProps extends BaseSpecProps {\n specType?: SpecType\n docsUrl?: string\n upgradeUrl?: string\n}\n\nexport function OmniSpecRenderer({ specType, spec, theme, docsUrl, upgradeUrl, pro, ...props }: OmniSpecRendererProps) {\n const { data: rawContent, state } = useSpecFetcher<string>(spec)\n const detected = useSpecDetector(rawContent, specType)\n const proRenderers = useMemo(() => pro?.renderers ?? new Map(), [pro?.renderers])\n\n if (state.status === 'loading') {\n return (\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n )\n }\n\n // Non-fatal spec problems (failed load, unrecognized content) render in the\n // content area while the host's nav/chrome stays put, so the user can\n // navigate away. Fatal render errors still use the ErrorBoundary fallback.\n if (state.status === 'error') {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage title=\"Failed to load specification\" message={state.error} />\n </SpecStatusScreen>\n )\n }\n\n if (!detected) {\n return (\n <SpecStatusScreen\n theme={theme}\n layout={props.layout}\n sidebarPosition={props.sidebarPosition}\n slots={props.slots}\n sidebarNav={props.sidebarNav}\n premiumThemingEnabled={pro?.premiumThemingEnabled ?? false}\n >\n <ErrorMessage\n title=\"Unable to detect specification type\"\n message=\"The provided content could not be recognized as a supported API specification (OpenAPI, AsyncAPI, GraphQL, SOAP, or gRPC).\"\n />\n </SpecStatusScreen>\n )\n }\n\n const specProps = { ...props, spec, theme, pro }\n\n return (\n <ErrorBoundary\n fallback={(error) => (\n <ThemeProvider theme={theme}>\n <ErrorMessage\n title=\"Failed to render specification\"\n message={error.message || 'An unexpected error occurred while rendering the documentation.'}\n />\n </ThemeProvider>\n )}\n >\n <Suspense\n fallback={\n <ThemeProvider theme={theme}>\n <LoadingScreen />\n </ThemeProvider>\n }\n >\n <SpecRenderer\n type={detected.type}\n props={specProps}\n registeredRenderers={proRenderers}\n docsUrl={docsUrl}\n upgradeUrl={upgradeUrl}\n />\n </Suspense>\n </ErrorBoundary>\n )\n}\n\ninterface SpecRendererProps {\n type: SpecType\n props: BaseSpecProps\n registeredRenderers: Map<SpecType, ComponentType<BaseSpecProps>>\n docsUrl?: string\n upgradeUrl?: string\n}\n\nfunction SpecRenderer({ type, props, registeredRenderers, docsUrl, upgradeUrl }: SpecRendererProps) {\n const RegisteredRenderer = registeredRenderers.get(type)\n if (RegisteredRenderer) {\n return <RegisteredRenderer {...props} />\n }\n\n switch (type) {\n case 'openapi-2':\n case 'openapi-3':\n return <OpenApiSpec {...props} />\n case 'asyncapi-2':\n case 'asyncapi-3':\n return <AsyncApiSpec {...props} />\n default:\n return (\n <ThemeProvider theme={props.theme}>\n <UpgradePrompt specType={type} docsUrl={docsUrl} upgradeUrl={upgradeUrl} />\n </ThemeProvider>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useState, useCallback, useRef, useEffect, useMemo, useId, memo } from 'react';
|
|
3
3
|
import { css, cx } from '@emotion/css';
|
|
4
|
-
import { j as useConfig, I as Icon, a as useSpecFetcher, m as mq, B as Button, S as SpecType, r as resolveSchemaStyle, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage, N as NavTree, h as buildSidebar, C as ConfigProvider, e as DocLayout } from './useSpecFetcher-
|
|
5
|
-
import { M as MarkdownRenderer, T as Tabs, x as generateExample, f as MethodBar, t as SchemaTree, A as schemaToNodes, K as buildConstraints, J as ExampleSelector, I as getNamedExamples, C as CodeBlock, d as ExpandableCard, R as ReferenceLayout, a as Collapsible, D as useHashScroll, w as flattenNavItemIds, G as useScrollSpy, u as SearchBar, L as ExpandProvider, v as SpecToolbar, z as resolveDownloadLink } from './Collapsible-
|
|
6
|
-
import { e as authStyles, d as SecretInput, u as useAuth, O as OAuth2AuthManual, a as OpenIdConnectManual, g as ApiKeyAuth, M as Modal, l as loadTryItState, h as saveTryItState, f as sendProxiedRequest, s as sendDirectRequest, C as CodeSamples, b as ResponseViewer, i as clearTryItState, L as LinkableHeading, S as SamplesPanel, R as ReferenceOperationDetail, c as ResponsiveColumns, A as AuthProvider } from './OpenIdConnectManual-
|
|
4
|
+
import { j as useConfig, I as Icon, a as useSpecFetcher, m as mq, B as Button, S as SpecType, r as resolveSchemaStyle, T as ThemeProvider, L as LoadingScreen, b as SpecStatusScreen, E as ErrorMessage, N as NavTree, h as buildSidebar, C as ConfigProvider, e as DocLayout } from './useSpecFetcher-DRDJ1CzD.js';
|
|
5
|
+
import { M as MarkdownRenderer, T as Tabs, x as generateExample, f as MethodBar, t as SchemaTree, A as schemaToNodes, K as buildConstraints, J as ExampleSelector, I as getNamedExamples, C as CodeBlock, d as ExpandableCard, R as ReferenceLayout, a as Collapsible, D as useHashScroll, w as flattenNavItemIds, G as useScrollSpy, u as SearchBar, L as ExpandProvider, v as SpecToolbar, z as resolveDownloadLink } from './Collapsible-DJnJiyJI.js';
|
|
6
|
+
import { e as authStyles, d as SecretInput, u as useAuth, O as OAuth2AuthManual, a as OpenIdConnectManual, g as ApiKeyAuth, M as Modal, l as loadTryItState, h as saveTryItState, f as sendProxiedRequest, s as sendDirectRequest, C as CodeSamples, b as ResponseViewer, i as clearTryItState, L as LinkableHeading, S as SamplesPanel, R as ReferenceOperationDetail, c as ResponsiveColumns, A as AuthProvider } from './OpenIdConnectManual-CXdMGONf.js';
|
|
7
7
|
import { r as resolveRefs, p as parse } from './ref-resolver-B0C36NuQ.js';
|
|
8
|
-
import { E as ErrorBoundary } from './ErrorBoundary-
|
|
8
|
+
import { E as ErrorBoundary } from './ErrorBoundary-Ba5GPfFd.js';
|
|
9
9
|
|
|
10
10
|
const AUTH_SCHEME_LABELS = {
|
|
11
11
|
apiKey: "API Key",
|
|
@@ -1203,8 +1203,10 @@ function TryItPanel({
|
|
|
1203
1203
|
onRequest,
|
|
1204
1204
|
onResponse
|
|
1205
1205
|
}) {
|
|
1206
|
-
const { allowTryIt, proxyUrl, proxyHeaders, specKey, tryItPersistTtl } = useConfig();
|
|
1207
|
-
const
|
|
1206
|
+
const { allowTryIt, proxyUrl, proxyHeaders, specKey, tryItPersistTtl, onTryItRequest, onTryItResponse } = useConfig();
|
|
1207
|
+
const emitRequest = onRequest ?? onTryItRequest;
|
|
1208
|
+
const emitResponse = onResponse ?? onTryItResponse;
|
|
1209
|
+
const { getAuthPlacement, appliedAuth, openAuthPanel, hasAuth, clearAuth } = useAuth();
|
|
1208
1210
|
const authorized = appliedAuth.size > 0;
|
|
1209
1211
|
const persistenceDisabled = tryItPersistTtl === 0;
|
|
1210
1212
|
const operationKey = `${method.toUpperCase()} ${path}`;
|
|
@@ -1304,8 +1306,9 @@ function TryItPanel({
|
|
|
1304
1306
|
});
|
|
1305
1307
|
}, [exampleSignature]);
|
|
1306
1308
|
const buildRequest = useCallback(() => {
|
|
1307
|
-
const
|
|
1308
|
-
const headers = { ...
|
|
1309
|
+
const authPlacement = getAuthPlacement();
|
|
1310
|
+
const headers = { ...authPlacement.headers };
|
|
1311
|
+
if (authPlacement.cookieHeader) headers["Cookie"] = authPlacement.cookieHeader;
|
|
1309
1312
|
for (const param of parameters) {
|
|
1310
1313
|
if (param.in === "header" && paramValues[param.name]) {
|
|
1311
1314
|
headers[param.name] = paramValues[param.name];
|
|
@@ -1320,7 +1323,7 @@ function TryItPanel({
|
|
|
1320
1323
|
const isUrlEncoded = contentType.includes("application/x-www-form-urlencoded");
|
|
1321
1324
|
const hasFormFieldValues = Object.values(multipartFields).some((v) => v !== null && v !== "");
|
|
1322
1325
|
const pathParams = {};
|
|
1323
|
-
const queryParams = {};
|
|
1326
|
+
const queryParams = { ...authPlacement.queryParams };
|
|
1324
1327
|
for (const param of parameters) {
|
|
1325
1328
|
const val = paramValues[param.name];
|
|
1326
1329
|
if (!val) continue;
|
|
@@ -1377,21 +1380,21 @@ function TryItPanel({
|
|
|
1377
1380
|
body: encodedBody,
|
|
1378
1381
|
bodyType: contentType
|
|
1379
1382
|
};
|
|
1380
|
-
}, [parameters, paramValues, body, contentType, multipartFields, customHeaders, method, path,
|
|
1383
|
+
}, [parameters, paramValues, body, contentType, multipartFields, customHeaders, method, path, getAuthPlacement]);
|
|
1381
1384
|
const handleSend = useCallback(async () => {
|
|
1382
1385
|
setLoading(true);
|
|
1383
1386
|
setError(void 0);
|
|
1384
1387
|
setResponse(null);
|
|
1385
1388
|
const request2 = buildRequest();
|
|
1386
|
-
onRequest?.(request2);
|
|
1387
1389
|
const fullRequest = {
|
|
1388
1390
|
...request2,
|
|
1389
1391
|
url: serverUrl + request2.url
|
|
1390
1392
|
};
|
|
1393
|
+
emitRequest?.(fullRequest);
|
|
1391
1394
|
try {
|
|
1392
1395
|
const res = proxyUrl ? await sendProxiedRequest(proxyUrl, fullRequest, proxyHeaders) : await sendDirectRequest(fullRequest);
|
|
1393
1396
|
setResponse(res);
|
|
1394
|
-
|
|
1397
|
+
emitResponse?.(res);
|
|
1395
1398
|
} catch (err) {
|
|
1396
1399
|
const message = err instanceof Error ? err.message : "Request failed";
|
|
1397
1400
|
if (!proxyUrl && message.includes("Failed to fetch")) {
|
|
@@ -1404,13 +1407,15 @@ function TryItPanel({
|
|
|
1404
1407
|
} finally {
|
|
1405
1408
|
setLoading(false);
|
|
1406
1409
|
}
|
|
1407
|
-
}, [proxyUrl, proxyHeaders, buildRequest, serverUrl,
|
|
1410
|
+
}, [proxyUrl, proxyHeaders, buildRequest, serverUrl, emitRequest, emitResponse]);
|
|
1408
1411
|
const schemaBody = useMemo(() => {
|
|
1409
1412
|
if (!requestBodySchema) return void 0;
|
|
1410
1413
|
return JSON.stringify(generateExample(requestBodySchema), null, 2);
|
|
1411
1414
|
}, [requestBodySchema]);
|
|
1412
1415
|
if (!allowTryIt) return null;
|
|
1413
1416
|
const request = buildRequest();
|
|
1417
|
+
const cookieAuthNames = Object.keys(getAuthPlacement().cookies);
|
|
1418
|
+
const cookieAuthDirect = !proxyUrl && cookieAuthNames.length > 0;
|
|
1414
1419
|
const hasBodyMethods = ["post", "put", "patch"].includes(method.toLowerCase());
|
|
1415
1420
|
const codeSampleRequest = useMemo(() => {
|
|
1416
1421
|
const r = { ...request };
|
|
@@ -1493,6 +1498,11 @@ function TryItPanel({
|
|
|
1493
1498
|
children: loading ? "Sending..." : "Send"
|
|
1494
1499
|
}
|
|
1495
1500
|
) }),
|
|
1501
|
+
cookieAuthDirect && /* @__PURE__ */ jsx("div", { className: validationMsgStyle, role: "status", children: /* @__PURE__ */ jsxs("span", { children: [
|
|
1502
|
+
"Browsers cannot set cookies on cross-origin requests, so your cookie credential (",
|
|
1503
|
+
cookieAuthNames.join(", "),
|
|
1504
|
+
") will not be sent in direct mode. Configure a proxyUrl to send it, or use the code sample."
|
|
1505
|
+
] }) }),
|
|
1496
1506
|
(sendBlocked || authMismatch) && /* @__PURE__ */ jsxs("div", { className: validationMsgStyle, role: "status", children: [
|
|
1497
1507
|
missingRequiredParams.length > 0 && /* @__PURE__ */ jsxs("span", { children: [
|
|
1498
1508
|
"Required: ",
|
|
@@ -2801,8 +2811,8 @@ function OpenApiSpec({
|
|
|
2801
2811
|
sidebarNav,
|
|
2802
2812
|
slots = {},
|
|
2803
2813
|
onSpecLoaded,
|
|
2804
|
-
onTryItRequest
|
|
2805
|
-
onTryItResponse
|
|
2814
|
+
onTryItRequest,
|
|
2815
|
+
onTryItResponse,
|
|
2806
2816
|
className
|
|
2807
2817
|
}) {
|
|
2808
2818
|
const refOptions = useMemo(() => ({
|
|
@@ -3014,7 +3024,7 @@ function OpenApiSpec({
|
|
|
3014
3024
|
] });
|
|
3015
3025
|
const sidebar = buildSidebar(sidebarNav, specNav);
|
|
3016
3026
|
const resolvedDownloadLink = resolveDownloadLink(downloadLink, spec);
|
|
3017
|
-
return /* @__PURE__ */ jsx(ConfigProvider, { config: { proxyUrl, proxyHeaders, oauth, allowTryIt, layout, sidebarPosition, tryItLayout, defaultExpandOperations, displayMode: resolvedDisplayMode, schemaStyle: resolvedSchemaStyle, slots, proRenderers: pro?.renderers ?? /* @__PURE__ */ new Map(), premiumThemingEnabled: pro?.premiumThemingEnabled ?? false, interactiveAuth: pro?.interactiveAuth, interactiveOAuth, specKey: `${parsedSpec.title}@${parsedSpec.version}`, tryItPersistTtl }, children: /* @__PURE__ */ jsx(ExpandProvider, { expandAll: allExpanded, expandGeneration, children: /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx(AuthProvider, { schemes: parsedSpec.securitySchemes, children: /* @__PURE__ */ jsxs("div", { className: `omnispec-openapi ${className ?? ""}`, children: [
|
|
3027
|
+
return /* @__PURE__ */ jsx(ConfigProvider, { config: { proxyUrl, proxyHeaders, oauth, allowTryIt, layout, sidebarPosition, tryItLayout, defaultExpandOperations, displayMode: resolvedDisplayMode, schemaStyle: resolvedSchemaStyle, slots, proRenderers: pro?.renderers ?? /* @__PURE__ */ new Map(), premiumThemingEnabled: pro?.premiumThemingEnabled ?? false, interactiveAuth: pro?.interactiveAuth, interactiveOAuth, specKey: `${parsedSpec.title}@${parsedSpec.version}`, tryItPersistTtl, onTryItRequest, onTryItResponse }, children: /* @__PURE__ */ jsx(ExpandProvider, { expandAll: allExpanded, expandGeneration, children: /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx(AuthProvider, { schemes: parsedSpec.securitySchemes, children: /* @__PURE__ */ jsxs("div", { className: `omnispec-openapi ${className ?? ""}`, children: [
|
|
3018
3028
|
/* @__PURE__ */ jsx(AuthPanelModal, { serverUrl }),
|
|
3019
3029
|
/* @__PURE__ */ jsx(ErrorBoundary, { title: "Failed to render this API reference", children: /* @__PURE__ */ jsx(
|
|
3020
3030
|
DocLayout,
|
|
@@ -3150,4 +3160,4 @@ var OpenApiSpec$1 = /*#__PURE__*/Object.freeze({
|
|
|
3150
3160
|
});
|
|
3151
3161
|
|
|
3152
3162
|
export { OpenApiSpec as O, authSchemeLabel as a, OpenApiSpec$1 as b };
|
|
3153
|
-
//# sourceMappingURL=OpenApiSpec-
|
|
3163
|
+
//# sourceMappingURL=OpenApiSpec-DvXokteJ.js.map
|