zudoku 0.33.2-local.4 → 0.34.1
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 +121 -0
- package/dist/config/loader.d.ts +3 -2
- package/dist/config/loader.js +10 -20
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/common.d.ts +346 -346
- package/dist/config/validators/validate.d.ts +165 -165
- package/dist/lib/components/AnchorLink.d.ts +2 -2
- package/dist/lib/components/AnchorLink.js +4 -4
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +1 -1
- package/dist/lib/components/context/ZudokuContext.d.ts +1 -1
- package/dist/lib/components/navigation/SidebarItem.js +6 -5
- package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +4 -0
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +4 -1
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.d.ts +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +5 -3
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js +2 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.d.ts +2 -2
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -5
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/IdentityDialog.d.ts +11 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js +14 -0
- package/dist/lib/plugins/openapi/playground/IdentityDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js +10 -0
- package/dist/lib/plugins/openapi/playground/IdentitySelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +9 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +75 -24
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js +8 -0
- package/dist/lib/plugins/openapi/playground/RequestLoginDialog.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.d.ts +17 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js +11 -0
- package/dist/lib/plugins/openapi/playground/rememberedIdentity.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +19 -13
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +6 -4
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +4 -3
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -1
- package/dist/lib/ui/Checkbox.d.ts +2 -8
- package/dist/lib/ui/Checkbox.js +1 -13
- package/dist/lib/ui/Checkbox.js.map +1 -1
- package/dist/lib/ui/Command.d.ts +6 -6
- package/dist/lib/ui/Select.js +1 -1
- package/dist/lib/ui/Select.js.map +1 -1
- package/dist/lib/ui/SyntaxHighlight.d.ts +2 -1
- package/dist/lib/ui/SyntaxHighlight.js +19 -15
- package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
- package/dist/lib/util/MdxComponents.d.ts +1 -1
- package/dist/lib/util/MdxComponents.js +2 -2
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/vite/config.js +3 -7
- package/dist/vite/config.js.map +1 -1
- package/lib/{AuthenticationPlugin-BCYuduZ9.js → AuthenticationPlugin-4ip08maU.js} +3 -3
- package/lib/{AuthenticationPlugin-BCYuduZ9.js.map → AuthenticationPlugin-4ip08maU.js.map} +1 -1
- package/lib/Callout-B_sEhkYd.js +211 -0
- package/lib/Callout-B_sEhkYd.js.map +1 -0
- package/lib/{Dialog-mi6BrnrM.js → Dialog-sbgekbjb.js} +48 -33
- package/lib/{Dialog-mi6BrnrM.js.map → Dialog-sbgekbjb.js.map} +1 -1
- package/lib/{Markdown-DofXBcqg.js → Markdown-DZXjQjpH.js} +4099 -3848
- package/lib/Markdown-DZXjQjpH.js.map +1 -0
- package/lib/{MdxPage-KJcNWIgt.js → MdxPage-52vRwa_7.js} +13 -13
- package/lib/{MdxPage-KJcNWIgt.js.map → MdxPage-52vRwa_7.js.map} +1 -1
- package/lib/{OasProvider-HcqBeC4H.js → OasProvider-CR2nG1Eg.js} +4 -4
- package/lib/{OasProvider-HcqBeC4H.js.map → OasProvider-CR2nG1Eg.js.map} +1 -1
- package/lib/{OperationList-C3wnbFxp.js → OperationList-DndcCJUG.js} +1097 -1052
- package/lib/{OperationList-C3wnbFxp.js.map → OperationList-DndcCJUG.js.map} +1 -1
- package/lib/{Select-Co6MuS4j.js → Select-FAYHOYTy.js} +35 -35
- package/lib/{Select-Co6MuS4j.js.map → Select-FAYHOYTy.js.map} +1 -1
- package/lib/{SlotletProvider-CYFNHuok.js → SlotletProvider-TydSHROc.js} +4 -4
- package/lib/{SlotletProvider-CYFNHuok.js.map → SlotletProvider-TydSHROc.js.map} +1 -1
- package/lib/{chunk-IR6S3I6Y-CRDBmIgK.js → chunk-HA7DTUK3-ZGg2W6yV.js} +276 -276
- package/lib/chunk-HA7DTUK3-ZGg2W6yV.js.map +1 -0
- package/lib/{hook-LTe5qHSc.js → hook-CfCFKZ-2.js} +10 -7
- package/lib/{hook-LTe5qHSc.js.map → hook-CfCFKZ-2.js.map} +1 -1
- package/lib/index-DK7IuUyR.js +2201 -0
- package/lib/index-DK7IuUyR.js.map +1 -0
- package/lib/index.esm-CltAN0Tf.js +711 -0
- package/lib/index.esm-CltAN0Tf.js.map +1 -0
- package/lib/objectEntries-BS7aAgOm.js +12 -0
- package/lib/objectEntries-BS7aAgOm.js.map +1 -0
- package/lib/ui/Checkbox.js +15 -25
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Select.js +1 -1
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +483 -502
- package/lib/ui/SyntaxHighlight.js.map +1 -1
- package/lib/{useExposedProps-D76yras4.js → useExposedProps-BslIn-FE.js} +2 -2
- package/lib/{useExposedProps-D76yras4.js.map → useExposedProps-BslIn-FE.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +3 -3
- package/lib/zudoku.components.js +1390 -32
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +1 -1
- package/lib/zudoku.plugin-api-catalog.js +5 -5
- package/lib/zudoku.plugin-api-keys.js +4 -4
- package/lib/zudoku.plugin-custom-pages.js +2 -2
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +3 -3
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +84 -154
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
- package/package.json +5 -5
- package/src/lib/components/AnchorLink.tsx +7 -7
- package/src/lib/components/navigation/SidebarItem.tsx +8 -23
- package/src/lib/core/ZudokuContext.ts +4 -0
- package/src/lib/plugins/openapi/OperationList.tsx +73 -33
- package/src/lib/plugins/openapi/OperationListItem.tsx +105 -92
- package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
- package/src/lib/plugins/openapi/graphql/graphql.ts +3 -0
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +30 -32
- package/src/lib/plugins/openapi/playground/Headers.tsx +0 -1
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +74 -0
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +54 -0
- package/src/lib/plugins/openapi/playground/Playground.tsx +164 -133
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +0 -1
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +51 -0
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +24 -4
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +66 -45
- package/src/lib/ui/Checkbox.tsx +8 -24
- package/src/lib/ui/Select.tsx +1 -1
- package/src/lib/ui/SyntaxHighlight.tsx +94 -96
- package/src/lib/util/MdxComponents.tsx +2 -2
- package/lib/Command-CrTA1FX0.js +0 -140
- package/lib/Command-CrTA1FX0.js.map +0 -1
- package/lib/Markdown-DofXBcqg.js.map +0 -1
- package/lib/chunk-IR6S3I6Y-CRDBmIgK.js.map +0 -1
- package/lib/index-CtkRMvMw.js +0 -2052
- package/lib/index-CtkRMvMw.js.map +0 -1
- package/lib/index-vn5bsvmU.js +0 -1399
- package/lib/index-vn5bsvmU.js.map +0 -1
- package/lib/useScrollToAnchor-DKyrbZoy.js +0 -977
- package/lib/useScrollToAnchor-DKyrbZoy.js.map +0 -1
|
@@ -15,6 +15,10 @@ export interface ZudokuEvents {
|
|
|
15
15
|
}
|
|
16
16
|
export interface ApiIdentity {
|
|
17
17
|
authorizeRequest: (request: Request) => Promise<Request> | Request;
|
|
18
|
+
authorizationFields?: {
|
|
19
|
+
headers?: string[];
|
|
20
|
+
queryParams?: string[];
|
|
21
|
+
};
|
|
18
22
|
label: string;
|
|
19
23
|
id: string;
|
|
20
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQ9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAElB,mBAAmB,GAEpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
3
3
|
import { Helmet } from "@zudoku/react-helmet-async";
|
|
4
|
+
import { ChevronsDownUpIcon, ChevronsUpDownIcon } from "lucide-react";
|
|
4
5
|
import { useNavigate } from "react-router";
|
|
6
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "zudoku/ui/Collapsible.js";
|
|
5
7
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "zudoku/ui/Select.js";
|
|
6
8
|
import { useSelectedServer } from "../../authentication/state.js";
|
|
7
9
|
import { CategoryHeading } from "../../components/CategoryHeading.js";
|
|
@@ -24,6 +26,7 @@ export const OperationsFragment = graphql(/* GraphQL */ `
|
|
|
24
26
|
operationId
|
|
25
27
|
contentTypes
|
|
26
28
|
path
|
|
29
|
+
deprecated
|
|
27
30
|
parameters {
|
|
28
31
|
name
|
|
29
32
|
in
|
|
@@ -132,6 +135,6 @@ export const OperationList = ({ tag, untagged, }) => {
|
|
|
132
135
|
? sanitizeMarkdownForMetatag(description)
|
|
133
136
|
: undefined;
|
|
134
137
|
const showVersions = Object.entries(versions).length > 1;
|
|
135
|
-
return (_jsxs("div", { className: "pt-[--padding-content-top]", "data-pagefind-filter": "section:openapi", "data-pagefind-meta": "section:openapi", children: [_jsxs(Helmet, { children: [_jsx("title", { children: title }), metaDescription && (_jsx("meta", { name: "description", content: metaDescription }))] }),
|
|
138
|
+
return (_jsxs("div", { className: "pt-[--padding-content-top]", "data-pagefind-filter": "section:openapi", "data-pagefind-meta": "section:openapi", children: [_jsxs(Helmet, { children: [_jsx("title", { children: title }), metaDescription && (_jsx("meta", { name: "description", content: metaDescription }))] }), _jsx("div", { className: "mb-8", children: _jsxs(Collapsible, { className: "w-full", children: [_jsxs("div", { className: "flex flex-col gap-y-4 sm:flex-row justify-around items-start sm:items-end", children: [_jsxs("div", { className: "flex-1", children: [_jsx(CategoryHeading, { children: title }), _jsxs(Heading, { level: 1, id: "description", registerSidebarAnchor: true, className: "mb-0", children: [tag, showVersions && (_jsxs("span", { className: "text-xl text-muted-foreground ml-1.5", children: [" ", "(", version, ")"] }))] })] }), _jsxs("div", { className: "flex flex-col gap-4 sm:items-end", children: [showVersions && (_jsxs(Select, { onValueChange: (version) => navigate(versions[version]), defaultValue: version, children: [_jsx(SelectTrigger, { className: "w-[180px]", children: _jsx(SelectValue, { placeholder: "Select version" }) }), _jsx(SelectContent, { children: Object.entries(versions).map(([version]) => (_jsx(SelectItem, { value: version, children: version }, version))) })] })), schema.description && (_jsxs(CollapsibleTrigger, { className: "flex items-center gap-1 text-sm font-medium text-muted-foreground group", children: [_jsx("span", { children: "Schema description" }), _jsx(ChevronsUpDownIcon, { className: "group-data-[state=open]:hidden translate-y-px", size: 14 }), _jsx(ChevronsDownUpIcon, { className: "group-data-[state=closed]:hidden translate-y-px", size: 13 })] }))] })] }), schema.description && (_jsx(CollapsibleContent, { className: "CollapsibleContent", children: _jsx("div", { className: cn(ProseClasses, "pt-4 max-w-full prose-img:max-w-prose"), children: _jsx(Markdown, { className: "border rounded bg-muted/25 border-border px-2.5 md:px-4", content: schema.description }) }) }))] }) }), _jsx("hr", {}), _jsx("div", { className: "my-4 flex items-center justify-end gap-4", children: _jsx(Endpoint, {}) }), operations.map((fragment) => (_jsx(OperationListItem, { serverUrl: selectedServer, operationFragment: fragment }, fragment.slug)))] }));
|
|
136
139
|
};
|
|
137
140
|
//# sourceMappingURL=OperationList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationList.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/OperationList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"OperationList.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/OperationList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OperationsFragment } from "./OperationList.js";
|
|
2
|
-
import { FragmentType } from "./graphql/index.js";
|
|
2
|
+
import { type FragmentType } from "./graphql/index.js";
|
|
3
3
|
declare const PARAM_GROUPS: readonly ["path", "query", "header", "cookie"];
|
|
4
4
|
export type ParameterGroup = (typeof PARAM_GROUPS)[number];
|
|
5
5
|
export declare const OperationListItem: ({ operationFragment, serverUrl, }: {
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { VisuallyHidden } from "@radix-ui/react-visually-hidden";
|
|
3
3
|
import { useRef, useState } from "react";
|
|
4
|
+
import { Badge } from "zudoku/ui/Badge.js";
|
|
4
5
|
import { Heading } from "../../components/Heading.js";
|
|
5
6
|
import { Markdown, ProseClasses } from "../../components/Markdown.js";
|
|
6
7
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../ui/Tabs.js";
|
|
8
|
+
import { cn } from "../../util/cn.js";
|
|
7
9
|
import { groupBy } from "../../util/groupBy.js";
|
|
8
10
|
import { renderIf } from "../../util/renderIf.js";
|
|
9
11
|
import { OperationsFragment } from "./OperationList.js";
|
|
@@ -19,7 +21,7 @@ export const OperationListItem = ({ operationFragment, serverUrl, }) => {
|
|
|
19
21
|
const parentRef = useRef(null);
|
|
20
22
|
const first = operation.responses.at(0);
|
|
21
23
|
const [selectedResponse, setSelectedResponse] = useState(first?.statusCode);
|
|
22
|
-
return (_jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-[minmax(0,4fr)_minmax(0,3fr)] gap-8
|
|
24
|
+
return (_jsxs("div", { className: "border-b-2 mb-16 pb-16", children: [operation.deprecated && (_jsx(Badge, { variant: "muted", className: "text-xs mb-4", children: "deprecated" })), _jsxs("div", { className: cn("grid grid-cols-1 lg:grid-cols-[minmax(0,4fr)_minmax(0,3fr)] gap-x-8 gap-y-4 items-start", operation.deprecated && "opacity-50 transition hover:opacity-100"), children: [_jsx(Heading, { level: 2, id: operation.slug, registerSidebarAnchor: true, className: "break-all", children: operation.summary }), _jsxs("div", { className: "text-sm flex gap-2 font-mono col-span-full", children: [_jsx("span", { className: methodForColor(operation.method), children: operation.method.toUpperCase() }), _jsxs("div", { ref: parentRef, className: "max-w-full truncate flex cursor-pointer", onClick: () => {
|
|
23
25
|
if (parentRef.current) {
|
|
24
26
|
const range = document.createRange();
|
|
25
27
|
range.selectNodeContents(parentRef.current);
|
|
@@ -27,7 +29,7 @@ export const OperationListItem = ({ operationFragment, serverUrl, }) => {
|
|
|
27
29
|
selection?.removeAllRanges();
|
|
28
30
|
selection?.addRange(range);
|
|
29
31
|
}
|
|
30
|
-
}, children: [serverUrl && (_jsx("div", { className: "text-neutral-400 dark:text-neutral-500 truncate", children: serverUrl })), _jsx("div", { className: "text-neutral-900 dark:text-neutral-200", children: operation.path })] })] }), operation.description && (_jsx(Markdown, { className: `${ProseClasses} max-w-full prose-img:max-w-prose`, content: operation.description })), operation.parameters && operation.parameters.length > 0 && (_jsx(_Fragment, { children: PARAM_GROUPS.flatMap((group) => groupedParameters[group]?.length ? (_jsx(ParameterList, { summary: operation.summary ?? undefined, id: operation.slug, parameters: groupedParameters[group], group: group }, group)) : ([])) })), renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (_jsxs("div", { className: "mt-4 flex flex-col gap-4", children: [_jsxs(Heading, { level: 3, className: "capitalize", id: `${operation.slug}/request-body`, children: [operation.summary && (_jsxs(VisuallyHidden, { children: [operation.summary, " \u203A "] })), "Request Body"] }), _jsx(SchemaView, { schema: schema })] }))), operation.responses.length > 0 && (_jsxs(_Fragment, { children: [_jsxs(Heading, { level: 3, className: "capitalize mt-8 pt-8 border-t", id: `${operation.slug}/responses`, children: [operation.summary && (_jsxs(VisuallyHidden, { children: [operation.summary, " \u203A "] })), "Responses"] }), _jsxs(Tabs, { onValueChange: (value) => setSelectedResponse(value), value: selectedResponse, children: [operation.responses.length > 1 && (_jsx(TabsList, { children: operation.responses.map((response) => (_jsx(TabsTrigger, { value: response.statusCode, title: response.description ?? undefined, children: response.statusCode }, response.statusCode))) })), _jsx("ul", { className: "list-none m-0 px-0", children: operation.responses.map((response) => (_jsx(TabsContent, { value: response.statusCode, children: _jsx(SchemaView, { schema: response.content?.find((content) => content.schema)
|
|
31
|
-
|
|
32
|
+
}, children: [serverUrl && (_jsx("div", { className: "text-neutral-400 dark:text-neutral-500 truncate", children: serverUrl })), _jsx("div", { className: "text-neutral-900 dark:text-neutral-200", children: operation.path })] })] }), _jsxs("div", { className: "flex flex-col gap-4", children: [operation.description && (_jsx(Markdown, { className: `${ProseClasses} max-w-full prose-img:max-w-prose`, content: operation.description })), operation.parameters && operation.parameters.length > 0 && (_jsx(_Fragment, { children: PARAM_GROUPS.flatMap((group) => groupedParameters[group]?.length ? (_jsx(ParameterList, { summary: operation.summary ?? undefined, id: operation.slug, parameters: groupedParameters[group], group: group }, group)) : ([])) })), renderIf(operation.requestBody?.content?.at(0)?.schema, (schema) => (_jsxs("div", { className: "mt-4 flex flex-col gap-4", children: [_jsxs(Heading, { level: 3, className: "capitalize", id: `${operation.slug}/request-body`, children: [operation.summary && (_jsxs(VisuallyHidden, { children: [operation.summary, " \u203A "] })), "Request Body"] }), _jsx(SchemaView, { schema: schema })] }))), operation.responses.length > 0 && (_jsxs(_Fragment, { children: [_jsxs(Heading, { level: 3, className: "capitalize mt-8 pt-8 border-t", id: `${operation.slug}/responses`, children: [operation.summary && (_jsxs(VisuallyHidden, { children: [operation.summary, " \u203A "] })), "Responses"] }), _jsxs(Tabs, { onValueChange: (value) => setSelectedResponse(value), value: selectedResponse, children: [operation.responses.length > 1 && (_jsx(TabsList, { children: operation.responses.map((response) => (_jsx(TabsTrigger, { value: response.statusCode, title: response.description ?? undefined, children: response.statusCode }, response.statusCode))) })), _jsx("ul", { className: "list-none m-0 px-0", children: operation.responses.map((response) => (_jsx(TabsContent, { value: response.statusCode, children: _jsx(SchemaView, { schema: response.content?.find((content) => content.schema)
|
|
33
|
+
?.schema }) }, response.statusCode))) })] })] }))] }), _jsx(Sidecar, { selectedResponse: selectedResponse, onSelectResponse: setSelectedResponse, operation: operation })] }, operation.operationId)] }));
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=OperationListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperationListItem.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/OperationListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,
|
|
1
|
+
{"version":3,"file":"OperationListItem.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/OperationListItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare function graphql(source: "\n query ServersQuery($input: JSON!, $
|
|
|
5
5
|
/**
|
|
6
6
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
7
7
|
*/
|
|
8
|
-
export declare function graphql(source: "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n"): typeof import("./graphql.js").OperationsFragmentFragmentDoc;
|
|
8
|
+
export declare function graphql(source: "\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n deprecated\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n"): typeof import("./graphql.js").OperationsFragmentFragmentDoc;
|
|
9
9
|
/**
|
|
10
10
|
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
|
11
11
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as types from "./graphql.js";
|
|
3
3
|
const documents = {
|
|
4
4
|
"\n query ServersQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": types.ServersQueryDocument,
|
|
5
|
-
"\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n": types.OperationsFragmentFragmentDoc,
|
|
5
|
+
"\n fragment OperationsFragment on OperationItem {\n slug\n summary\n method\n description\n operationId\n contentTypes\n path\n deprecated\n parameters {\n name\n in\n description\n required\n schema\n style\n examples {\n name\n description\n externalValue\n value\n summary\n }\n }\n requestBody {\n content {\n mediaType\n encoding {\n name\n }\n examples {\n name\n description\n externalValue\n value\n summary\n }\n schema\n }\n description\n required\n }\n responses {\n statusCode\n links\n description\n content {\n examples {\n name\n description\n externalValue\n value\n summary\n }\n mediaType\n encoding {\n name\n }\n schema\n }\n }\n }\n": types.OperationsFragmentFragmentDoc,
|
|
6
6
|
"\n query AllOperations(\n $input: JSON!\n $type: SchemaType!\n $tag: String\n $untagged: Boolean\n ) {\n schema(input: $input, type: $type) {\n servers {\n url\n }\n description\n summary\n title\n url\n version\n tags(name: $tag) {\n name\n description\n }\n operations(tag: $tag, untagged: $untagged) {\n slug\n ...OperationsFragment\n }\n }\n }\n": types.AllOperationsDocument,
|
|
7
7
|
"\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n servers {\n url\n }\n }\n }\n": types.GetServerQueryDocument,
|
|
8
8
|
"\n query GetCategories($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n tags {\n name\n }\n }\n }\n": types.GetCategoriesDocument,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/gql.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAqBtC,MAAM,SAAS,GAAc;IAC3B,uKAAuK,EACrK,KAAK,CAAC,oBAAoB;IAC5B,m
|
|
1
|
+
{"version":3,"file":"gql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/gql.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAqBtC,MAAM,SAAS,GAAc;IAC3B,uKAAuK,EACrK,KAAK,CAAC,oBAAoB;IAC5B,m/BAAm/B,EACj/B,KAAK,CAAC,6BAA6B;IACrC,8cAA8c,EAC5c,KAAK,CAAC,qBAAqB;IAC7B,yKAAyK,EACvK,KAAK,CAAC,sBAAsB;IAC9B,sKAAsK,EACpK,KAAK,CAAC,qBAAqB;IAC7B,0dAA0d,EACxd,KAAK,CAAC,qBAAqB;CAC9B,CAAC;AAuCF,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAQ,SAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC"}
|
|
@@ -20,6 +20,7 @@ export const OperationsFragmentFragmentDoc = new TypedDocumentString(`
|
|
|
20
20
|
operationId
|
|
21
21
|
contentTypes
|
|
22
22
|
path
|
|
23
|
+
deprecated
|
|
23
24
|
parameters {
|
|
24
25
|
name
|
|
25
26
|
in
|
|
@@ -113,6 +114,7 @@ export const AllOperationsDocument = new TypedDocumentString(`
|
|
|
113
114
|
operationId
|
|
114
115
|
contentTypes
|
|
115
116
|
path
|
|
117
|
+
deprecated
|
|
116
118
|
parameters {
|
|
117
119
|
name
|
|
118
120
|
in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/graphql.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/graphql/graphql.ts"],"names":[],"mappings":"AA8VA,MAAM,OAAO,mBACX,SAAQ,MAAM;IAMJ;IACD;IAJT,SAAS,CAA4D;IAErE,YACU,KAAa,EACd,QAA0C;QAEjD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHL,UAAK,GAAL,KAAK,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAkC;IAGnD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AACD,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,mBAAmB,CAClE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+DG,EACH,EAAE,YAAY,EAAE,oBAAoB,EAAE,CACgC,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASvD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkF3D,CAGD,CAAC;AACF,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASzD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;KASxD,CAGJ,CAAC;AACF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;KAwBxD,CAGJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Content, Example } from "../SidecarExamples.js";
|
|
1
|
+
import type { Content, Example } from "../SidecarExamples.js";
|
|
2
2
|
declare const ExamplesDropdown: ({ examples, onSelect, }: {
|
|
3
3
|
examples: Content;
|
|
4
|
-
onSelect: (example: Example) => void;
|
|
4
|
+
onSelect: (example: Example, mediaType: string) => void;
|
|
5
5
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export default ExamplesDropdown;
|
|
@@ -2,11 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Button } from "zudoku/ui/Button.js";
|
|
3
3
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "zudoku/ui/DropdownMenu.js";
|
|
4
4
|
const ExamplesDropdown = ({ examples, onSelect, }) => {
|
|
5
|
-
return (
|
|
6
|
-
return (_jsxs("div", { children: [_jsx(DropdownMenuLabel, { children: example.mediaType }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuGroup, { children: example.examples?.map((example) => {
|
|
7
|
-
return (_jsx(DropdownMenuItem, { onSelect: () => onSelect(example), className: "line-clamp-1", children: example.summary ?? example.name }, example.name));
|
|
8
|
-
}) })] }, example.mediaType));
|
|
9
|
-
}) })] }) }));
|
|
5
|
+
return (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Use Example" }) }), _jsx(DropdownMenuContent, { className: "max-w-72", children: examples.map((mediaTypeObject) => (_jsxs("div", { children: [_jsx(DropdownMenuLabel, { children: mediaTypeObject.mediaType }), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuGroup, { children: mediaTypeObject.examples?.map((example) => (_jsx(DropdownMenuItem, { onSelect: () => onSelect(example, mediaTypeObject.mediaType), children: _jsx("span", { className: "line-clamp-1", title: example.summary ?? example.name, children: example.summary ?? example.name }) }, example.name))) })] }, mediaTypeObject.mediaType))) })] }));
|
|
10
6
|
};
|
|
11
7
|
export default ExamplesDropdown;
|
|
12
8
|
//# sourceMappingURL=ExamplesDropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExamplesDropdown.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/ExamplesDropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,gBAAgB,GAAG,CAAC,EACxB,QAAQ,EACR,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"ExamplesDropdown.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/ExamplesDropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,gBAAgB,GAAG,CAAC,EACxB,QAAQ,EACR,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO,CACL,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,4BAAqB,GAC1B,EACtB,KAAC,mBAAmB,IAAC,SAAS,EAAC,UAAU,YACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CACjC,0BACE,KAAC,iBAAiB,cAAE,eAAe,CAAC,SAAS,GAAqB,EAClE,KAAC,qBAAqB,KAAG,EACzB,KAAC,iBAAiB,cACf,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC1C,KAAC,gBAAgB,IAEf,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,YAE5D,eACE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,YAErC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,GAC3B,IARF,OAAO,CAAC,IAAI,CASA,CACpB,CAAC,GACgB,KAjBZ,eAAe,CAAC,SAAS,CAkB7B,CACP,CAAC,GACkB,IACT,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -65,7 +65,7 @@ export const Headers = ({ control, headers: schemaHeaders, }) => {
|
|
|
65
65
|
.map(({ name }) => name);
|
|
66
66
|
return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Card, { className: "overflow-hidden", children: _jsx(ParamsGrid, { children: fields.map((field, i) => {
|
|
67
67
|
const currentHeader = schemaHeaders.find((h) => h.name === watch(`headers.${i}.name`));
|
|
68
|
-
return (_jsxs(ParamsGridItem, { children: [_jsxs("div", { className: "flex items-center gap-2 ", children: [_jsx(Controller, { control: control, name: `headers.${i}.active`, render: ({ field }) => (_jsx(Checkbox, {
|
|
68
|
+
return (_jsxs(ParamsGridItem, { children: [_jsxs("div", { className: "flex items-center gap-2 ", children: [_jsx(Controller, { control: control, name: `headers.${i}.active`, render: ({ field }) => (_jsx(Checkbox, { id: `headers.${i}.active`, checked: field.value, onCheckedChange: (checked) => {
|
|
69
69
|
field.onChange(checked);
|
|
70
70
|
} })) }), _jsx(Controller, { control: control, name: `headers.${i}.name`, render: ({ field }) => (_jsx(Autocomplete, { ...field, placeholder: "Name", className: "border-0 shadow-none bg-transparent text-xs font-mono", options: [...missingHeaders, ...headerOptions], onEnterPress: () => handleHeaderEnter(i), onChange: (e) => {
|
|
71
71
|
field.onChange(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Headers.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/Headers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ApiIdentity } from "../../../core/ZudokuContext.js";
|
|
2
|
+
declare const IdentityDialog: ({ onSubmit, identities, open, onOpenChange, }: {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
onSubmit: ({ rememberedIdentity, identity, }: {
|
|
6
|
+
rememberedIdentity: boolean;
|
|
7
|
+
identity?: string;
|
|
8
|
+
}) => void;
|
|
9
|
+
identities: ApiIdentity[];
|
|
10
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export { IdentityDialog };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Button } from "zudoku/ui/Button.js";
|
|
4
|
+
import { Checkbox } from "zudoku/ui/Checkbox.js";
|
|
5
|
+
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogTitle, } from "zudoku/ui/Dialog.js";
|
|
6
|
+
import { Label } from "zudoku/ui/Label.js";
|
|
7
|
+
import IdentitySelector from "./IdentitySelector.js";
|
|
8
|
+
const IdentityDialog = ({ onSubmit, identities, open, onOpenChange, }) => {
|
|
9
|
+
const [identity, setIdentity] = useState(undefined);
|
|
10
|
+
const [rememberedIdentity, setRememberedIdentity] = useState(false);
|
|
11
|
+
return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { children: [_jsx(DialogTitle, { children: "Select an auth identity" }), _jsx(DialogDescription, { children: "Please select an identity for this request." }), _jsx("div", { className: "max-h-80 overflow-auto", children: _jsx(IdentitySelector, { identities: identities, setValue: setIdentity, value: identity }) }), _jsxs(DialogFooter, { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { id: "remember", checked: rememberedIdentity, onCheckedChange: (checked) => setRememberedIdentity(checked === "indeterminate" ? false : !!checked) }), _jsx(Label, { htmlFor: "remember", children: "Remember my choice" })] }), _jsx(Button, { onClick: () => onSubmit({ identity: identity, rememberedIdentity }), children: "Send" })] })] }) }));
|
|
12
|
+
};
|
|
13
|
+
export { IdentityDialog };
|
|
14
|
+
//# sourceMappingURL=IdentityDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityDialog.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/IdentityDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,cAAc,GAAG,CAAC,EACtB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,YAAY,GAYb,EAAE,EAAE;IACH,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACxE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7E,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,YAC5C,MAAC,aAAa,eACZ,KAAC,WAAW,0CAAsC,EAClD,KAAC,iBAAiB,8DAEE,EACpB,cAAK,SAAS,EAAC,wBAAwB,YACrC,KAAC,gBAAgB,IACf,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,QAAQ,GACf,GACE,EACN,MAAC,YAAY,IAAC,SAAS,EAAC,qBAAqB,aAC3C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,QAAQ,IACP,EAAE,EAAC,UAAU,EACb,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAC3B,qBAAqB,CACnB,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAChD,GAEH,EACF,KAAC,KAAK,IAAC,OAAO,EAAC,UAAU,mCAA2B,IAChD,EAEN,KAAC,MAAM,IACL,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,qBAG5D,IACI,IACD,GACT,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ApiIdentity } from "../../../core/ZudokuContext.js";
|
|
2
|
+
declare const IdentitySelector: ({ identities, setValue, value, }: {
|
|
3
|
+
identities?: ApiIdentity[];
|
|
4
|
+
setValue: (value: string) => void;
|
|
5
|
+
value?: string;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default IdentitySelector;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card } from "zudoku/ui/Card.js";
|
|
3
|
+
import { Label } from "zudoku/ui/Label.js";
|
|
4
|
+
import { RadioGroup, RadioGroupItem } from "zudoku/ui/RadioGroup.js";
|
|
5
|
+
import { NO_IDENTITY } from "./Playground.js";
|
|
6
|
+
const IdentitySelector = ({ identities, setValue, value, }) => {
|
|
7
|
+
return (_jsx(Card, { className: "w-full overflow-hidden", children: _jsxs(RadioGroup, { onValueChange: (value) => setValue(value), value: value, defaultValue: NO_IDENTITY, className: "gap-0", disabled: identities?.length === 0, children: [_jsxs(Label, { className: "h-12 border-b items-center flex p-4 cursor-pointer hover:bg-accent", htmlFor: "none", children: [_jsx(RadioGroupItem, { value: NO_IDENTITY, id: "none", children: "None" }), _jsx(Label, { htmlFor: "none", className: "ml-2", children: "None" })] }), identities?.map((identity) => (_jsxs(Label, { className: "h-12 border-b items-center flex p-4 cursor-pointer hover:bg-accent", children: [_jsx(RadioGroupItem, { value: identity.id, id: identity.id, children: identity.label }), _jsx(Label, { htmlFor: identity.id, className: "ml-2", children: identity.label })] }, identity.id)))] }) }));
|
|
8
|
+
};
|
|
9
|
+
export default IdentitySelector;
|
|
10
|
+
//# sourceMappingURL=IdentitySelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentitySelector.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/IdentitySelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,gBAAgB,GAAG,CAAC,EACxB,UAAU,EACV,QAAQ,EACR,KAAK,GAKN,EAAE,EAAE;IACH,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,YACtC,MAAC,UAAU,IACT,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EACzC,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,WAAW,EACzB,SAAS,EAAC,OAAO,EACjB,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC,aAElC,MAAC,KAAK,IACJ,SAAS,EAAC,oEAAoE,EAC9E,OAAO,EAAC,MAAM,aAEd,KAAC,cAAc,IAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC,MAAM,qBAE5B,EACjB,KAAC,KAAK,IAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,qBAE9B,IACF,EACP,UAAU,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC7B,MAAC,KAAK,IAEJ,SAAS,EAAC,oEAAoE,aAE9E,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,YAChD,QAAQ,CAAC,KAAK,GACA,EACjB,KAAC,KAAK,IAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAC,MAAM,YAC1C,QAAQ,CAAC,KAAK,GACT,KARH,QAAQ,CAAC,EAAE,CASV,CACT,CAAC,IACS,GACR,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Content } from "../SidecarExamples.js";
|
|
1
|
+
import { type Content } from "../SidecarExamples.js";
|
|
2
2
|
export declare const NO_IDENTITY = "__none";
|
|
3
3
|
export type Header = {
|
|
4
4
|
name: string;
|
|
@@ -21,8 +21,16 @@ export type PathParam = {
|
|
|
21
21
|
defaultValue?: string;
|
|
22
22
|
isRequired?: boolean;
|
|
23
23
|
};
|
|
24
|
+
declare const bodyContentTypeMap: {
|
|
25
|
+
readonly Plain: "text/plain";
|
|
26
|
+
readonly JSON: "application/json";
|
|
27
|
+
readonly XML: "application/xml";
|
|
28
|
+
readonly YAML: "application/yaml";
|
|
29
|
+
readonly CSV: "text/csv";
|
|
30
|
+
};
|
|
24
31
|
export type PlaygroundForm = {
|
|
25
32
|
body: string;
|
|
33
|
+
bodyContentType: keyof typeof bodyContentTypeMap;
|
|
26
34
|
queryParams: Array<{
|
|
27
35
|
name: string;
|
|
28
36
|
value: string;
|
|
@@ -5,32 +5,48 @@ import { Fragment, useEffect, useRef, useState, useTransition } from "react";
|
|
|
5
5
|
import { FormProvider, useForm } from "react-hook-form";
|
|
6
6
|
import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert.js";
|
|
7
7
|
import { PathRenderer } from "../../../components/PathRenderer.js";
|
|
8
|
-
import { Button } from "zudoku/ui/Button.js";
|
|
9
|
-
import { Label } from "zudoku/ui/Label.js";
|
|
10
|
-
import { RadioGroup, RadioGroupItem } from "zudoku/ui/RadioGroup.js";
|
|
11
8
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "zudoku/ui/Select.js";
|
|
12
9
|
import { Textarea } from "zudoku/ui/Textarea.js";
|
|
13
10
|
import { useSelectedServer } from "../../../authentication/state.js";
|
|
14
11
|
import { useApiIdentities } from "../../../components/context/ZudokuContext.js";
|
|
15
|
-
import { Card } from "../../../ui/Card.js";
|
|
16
12
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../../ui/Tabs.js";
|
|
17
13
|
import { cn } from "../../../util/cn.js";
|
|
14
|
+
import { objectEntries } from "../../../util/objectEntries.js";
|
|
15
|
+
import { useLatest } from "../../../util/useLatest.js";
|
|
18
16
|
import { ColorizedParam } from "../ColorizedParam.js";
|
|
19
17
|
import { createUrl } from "./createUrl.js";
|
|
20
18
|
import ExamplesDropdown from "./ExamplesDropdown.js";
|
|
21
19
|
import { Headers } from "./Headers.js";
|
|
20
|
+
import { IdentityDialog } from "./IdentityDialog.js";
|
|
21
|
+
import IdentitySelector from "./IdentitySelector.js";
|
|
22
22
|
import { PathParams } from "./PathParams.js";
|
|
23
23
|
import { QueryParams } from "./QueryParams.js";
|
|
24
|
+
import { useIdentityStore } from "./rememberedIdentity.js";
|
|
25
|
+
import RequestLoginDialog from "./RequestLoginDialog.js";
|
|
24
26
|
import { ResultPanel } from "./result-panel/ResultPanel.js";
|
|
25
27
|
import SubmitButton from "./SubmitButton.js";
|
|
26
28
|
export const NO_IDENTITY = "__none";
|
|
29
|
+
const bodyContentTypeMap = {
|
|
30
|
+
Plain: "text/plain",
|
|
31
|
+
JSON: "application/json",
|
|
32
|
+
XML: "application/xml",
|
|
33
|
+
YAML: "application/yaml",
|
|
34
|
+
CSV: "text/csv",
|
|
35
|
+
};
|
|
27
36
|
export const Playground = ({ server, servers = [], url, method, headers = [], queryParams = [], pathParams = [], defaultBody = "", examples, requiresLogin = false, onLogin, onSignUp, }) => {
|
|
28
37
|
const { selectedServer, setSelectedServer } = useSelectedServer(servers.map((url) => ({ url })));
|
|
38
|
+
const [showSelectIdentity, setShowSelectIdentity] = useState(false);
|
|
39
|
+
const identities = useApiIdentities();
|
|
40
|
+
const { setRememberedIdentity, getRememberedIdentity } = useIdentityStore();
|
|
29
41
|
const [, startTransition] = useTransition();
|
|
30
42
|
const [skipLogin, setSkipLogin] = useState(false);
|
|
43
|
+
const [showLongRunningWarning, setShowLongRunningWarning] = useState(false);
|
|
44
|
+
const abortControllerRef = useRef(undefined);
|
|
45
|
+
const latestSetRememberedIdentity = useLatest(setRememberedIdentity);
|
|
31
46
|
const { register, control, handleSubmit, watch, setValue, ...form } = useForm({
|
|
32
47
|
defaultValues: {
|
|
33
48
|
body: defaultBody,
|
|
49
|
+
bodyContentType: "JSON",
|
|
34
50
|
queryParams: queryParams
|
|
35
51
|
.map((param) => ({
|
|
36
52
|
name: param.name,
|
|
@@ -63,30 +79,31 @@ export const Playground = ({ server, servers = [], url, method, headers = [], qu
|
|
|
63
79
|
active: false,
|
|
64
80
|
},
|
|
65
81
|
]),
|
|
66
|
-
identity:
|
|
82
|
+
identity: getRememberedIdentity(identities.data?.map((i) => i.id) ?? []),
|
|
67
83
|
},
|
|
68
84
|
});
|
|
69
85
|
const formState = watch();
|
|
70
|
-
const
|
|
71
|
-
const setOnce = useRef(false);
|
|
86
|
+
const formRef = useRef(null);
|
|
72
87
|
useEffect(() => {
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
const firstIdentity = identities.data?.at(0);
|
|
76
|
-
if (firstIdentity) {
|
|
77
|
-
setValue("identity", firstIdentity.id);
|
|
78
|
-
setOnce.current = true;
|
|
88
|
+
if (formState.identity) {
|
|
89
|
+
latestSetRememberedIdentity.current(formState.identity);
|
|
79
90
|
}
|
|
80
|
-
}, [
|
|
81
|
-
const formRef = useRef(null);
|
|
91
|
+
}, [latestSetRememberedIdentity, formState.identity]);
|
|
82
92
|
const queryMutation = useMutation({
|
|
83
93
|
mutationFn: async (data) => {
|
|
84
94
|
const start = performance.now();
|
|
95
|
+
const shouldSetContentType = !data.headers.some((h) => h.active && h.name.toLowerCase() === "content-type");
|
|
96
|
+
const headers = Object.fromEntries([
|
|
97
|
+
...data.headers
|
|
98
|
+
.filter((h) => h.name && h.active)
|
|
99
|
+
.map((header) => [header.name, header.value]),
|
|
100
|
+
...(shouldSetContentType
|
|
101
|
+
? [["content-type", bodyContentTypeMap[data.bodyContentType]]]
|
|
102
|
+
: []),
|
|
103
|
+
]);
|
|
85
104
|
const request = new Request(createUrl(server ?? selectedServer, url, data), {
|
|
86
105
|
method: method.toUpperCase(),
|
|
87
|
-
headers
|
|
88
|
-
.filter((h) => h.name && h.active)
|
|
89
|
-
.map((header) => [header.name, header.value])),
|
|
106
|
+
headers,
|
|
90
107
|
body: data.body ? data.body : undefined,
|
|
91
108
|
});
|
|
92
109
|
if (data.identity !== NO_IDENTITY) {
|
|
@@ -94,10 +111,14 @@ export const Playground = ({ server, servers = [], url, method, headers = [], qu
|
|
|
94
111
|
?.find((i) => i.id === data.identity)
|
|
95
112
|
?.authorizeRequest(request);
|
|
96
113
|
}
|
|
114
|
+
const warningTimeout = setTimeout(() => setShowLongRunningWarning(true), 3210);
|
|
115
|
+
abortControllerRef.current = new AbortController();
|
|
97
116
|
try {
|
|
98
117
|
const response = await fetch(request, {
|
|
99
|
-
signal:
|
|
118
|
+
signal: abortControllerRef.current.signal,
|
|
100
119
|
});
|
|
120
|
+
clearTimeout(warningTimeout);
|
|
121
|
+
setShowLongRunningWarning(false);
|
|
101
122
|
const time = performance.now() - start;
|
|
102
123
|
const body = await response.text();
|
|
103
124
|
const url = new URL(request.url);
|
|
@@ -120,6 +141,8 @@ export const Playground = ({ server, servers = [], url, method, headers = [], qu
|
|
|
120
141
|
};
|
|
121
142
|
}
|
|
122
143
|
catch (error) {
|
|
144
|
+
clearTimeout(warningTimeout);
|
|
145
|
+
setShowLongRunningWarning(false);
|
|
123
146
|
if (error instanceof TypeError) {
|
|
124
147
|
throw new Error("The request failed, possibly due to network issues or CORS policy.");
|
|
125
148
|
}
|
|
@@ -129,6 +152,11 @@ export const Playground = ({ server, servers = [], url, method, headers = [], qu
|
|
|
129
152
|
}
|
|
130
153
|
},
|
|
131
154
|
});
|
|
155
|
+
useEffect(() => {
|
|
156
|
+
return () => {
|
|
157
|
+
abortControllerRef.current?.abort();
|
|
158
|
+
};
|
|
159
|
+
}, []);
|
|
132
160
|
const path = (_jsx(PathRenderer, { path: url, renderParam: ({ name, originalValue, index }) => {
|
|
133
161
|
const formValue = formState.pathParams.find((param) => param.name === name)?.value;
|
|
134
162
|
return (_jsx(ColorizedParam, { name: name, backgroundOpacity: "0", slug: name, onClick: () => form.setFocus(`pathParams.${index}.value`), children: formValue || originalValue }));
|
|
@@ -136,14 +164,37 @@ export const Playground = ({ server, servers = [], url, method, headers = [], qu
|
|
|
136
164
|
const urlQueryParams = formState.queryParams
|
|
137
165
|
.filter((p) => p.active)
|
|
138
166
|
.map((p, i, arr) => (_jsxs(Fragment, { children: [p.name, "=", encodeURIComponent(p.value).replaceAll("%20", "+"), i < arr.length - 1 && "&", _jsx("wbr", {})] }, p.name)));
|
|
139
|
-
const serverSelect = (_jsx("div", { className: "inline-block opacity-50 hover:opacity-100 transition
|
|
167
|
+
const serverSelect = (_jsx("div", { className: "inline-block opacity-50 hover:opacity-100 transition", children: server ? (_jsx("span", { children: server.replace(/^https?:\/\//, "").replace(/\/$/, "") })) : (servers.length > 1 && (_jsxs(Select, { onValueChange: (value) => {
|
|
140
168
|
startTransition(() => setSelectedServer(value));
|
|
141
|
-
}, value: selectedServer, defaultValue: selectedServer, children: [_jsx(SelectTrigger, { className: "p-0 border-none flex-row-reverse bg-transparent text-xs gap-0.5 h-auto", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: servers.map((s) => (_jsx(SelectItem, { value: s, children: s.replace(/^https?:\/\//, "") }, s))) })] }))) }));
|
|
169
|
+
}, value: selectedServer, defaultValue: selectedServer, children: [_jsx(SelectTrigger, { className: "p-0 border-none flex-row-reverse bg-transparent text-xs gap-0.5 h-auto translate-y-[4px]", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: servers.map((s) => (_jsx(SelectItem, { value: s, children: s.replace(/^https?:\/\//, "").replace(/\/$/, "") }, s))) })] }))) }));
|
|
142
170
|
const showLogin = requiresLogin && !skipLogin;
|
|
143
|
-
|
|
144
|
-
|
|
171
|
+
const isBodySupported = ["POST", "PUT", "PATCH", "DELETE"].includes(method.toUpperCase());
|
|
172
|
+
return (_jsx(FormProvider, { register, control, handleSubmit, watch, setValue, ...form, children: _jsxs("form", { onSubmit: handleSubmit((data) => {
|
|
173
|
+
if (identities.data?.length === 0 || data.identity) {
|
|
174
|
+
queryMutation.mutate(data);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
setShowSelectIdentity(true);
|
|
178
|
+
}
|
|
179
|
+
}), ref: formRef, className: "relative", children: [_jsx(IdentityDialog, { identities: identities.data ?? [], open: showSelectIdentity, onOpenChange: setShowSelectIdentity, onSubmit: ({ rememberedIdentity, identity }) => {
|
|
180
|
+
if (rememberedIdentity) {
|
|
181
|
+
setValue("identity", identity ?? NO_IDENTITY);
|
|
182
|
+
}
|
|
183
|
+
setShowSelectIdentity(false);
|
|
184
|
+
queryMutation.mutate({ ...formState, identity });
|
|
185
|
+
} }), _jsx(RequestLoginDialog, { open: showLogin, setOpen: (open) => setSkipLogin(!open), onSignUp: onSignUp, onLogin: onLogin }), _jsxs("div", { className: "grid grid-cols-2 text-sm h-full", children: [_jsxs("div", { className: "flex flex-col gap-4 p-4 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto", children: [_jsxs("div", { className: "flex gap-2 items-stretch", children: [_jsxs("div", { className: "flex flex-1 items-center w-full border rounded-md", children: [_jsx("div", { className: "border-r p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono flex items-center", children: method.toUpperCase() }), _jsxs("div", { className: "items-center px-2 py-0.5 font-mono text-xs break-all leading-6", children: [serverSelect, path, urlQueryParams.length > 0 ? "?" : "", urlQueryParams] })] }), _jsx(SubmitButton, { identities: identities.data ?? [], formRef: formRef, disabled: identities.isLoading || form.formState.isSubmitting })] }), _jsxs(Tabs, { defaultValue: "parameters", children: [_jsx("div", { className: "flex flex-wrap gap-1 justify-between", children: _jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "parameters", children: ["Parameters", (formState.pathParams.some((p) => p.value !== "") ||
|
|
186
|
+
formState.queryParams.some((p) => p.active)) && (_jsx("div", { className: "w-2 h-2 rounded-full bg-blue-400 ml-2" }))] }), _jsxs(TabsTrigger, { value: "headers", children: ["Headers", formState.headers.filter((h) => h.active).length > 0 && (_jsx("div", { className: "w-2 h-2 rounded-full bg-blue-400 ml-2" }))] }), _jsxs(TabsTrigger, { value: "auth", children: ["Auth", formState.identity !== NO_IDENTITY && (_jsx("div", { className: "w-2 h-2 rounded-full bg-blue-400 ml-2" }))] }), _jsxs(TabsTrigger, { value: "body", children: ["Body", formState.body && (_jsx("div", { className: "w-2 h-2 rounded-full bg-blue-400 ml-2" }))] })] }) }), _jsx(TabsContent, { value: "headers", children: _jsx(Headers, { control: control, headers: headers }) }), _jsxs(TabsContent, { value: "parameters", children: [pathParams.length > 0 && (_jsxs("div", { className: "flex flex-col gap-4 my-4", children: [_jsx("span", { className: "font-semibold", children: "Path Parameters" }), _jsx(PathParams, { url: url, control: control })] })), _jsxs("div", { className: "flex flex-col gap-4 my-4", children: [_jsx("span", { className: "font-semibold", children: "Query Parameters" }), _jsx(QueryParams, { control: control, queryParams: queryParams })] })] }), _jsxs(TabsContent, { value: "body", children: [!["POST", "PUT", "PATCH", "DELETE"].includes(method.toUpperCase()) && (_jsxs(Alert, { className: "mb-2", children: [_jsx(InfoIcon, { className: "w-4 h-4" }), _jsx(AlertTitle, { children: "Body" }), _jsx(AlertDescription, { children: "Body is only supported for POST, PUT, PATCH, and DELETE requests" })] })), _jsx(Textarea, { ...register("body"), className: cn("border w-full rounded-lg bg-muted/40 p-2 h-64 font-mono text-[13px]", !isBodySupported && "h-20 bg-muted"), placeholder: !isBodySupported
|
|
145
187
|
? "This request does not support a body"
|
|
146
|
-
: undefined, disabled: !
|
|
188
|
+
: undefined, disabled: !isBodySupported }), isBodySupported && (_jsxs("div", { className: "flex items-center gap-2 mt-2 justify-between", children: [_jsxs(Select, { value: formState.bodyContentType, onValueChange: (value) => setValue("bodyContentType", value), children: [_jsx(SelectTrigger, { className: "w-[100px]", children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: Object.keys(bodyContentTypeMap).map((format) => (_jsx(SelectItem, { value: format, children: format }, format))) })] }), examples && examples.length > 0 && (_jsx(ExamplesDropdown, { examples: examples, onSelect: (example, mediaType) => {
|
|
189
|
+
setValue("body", JSON.stringify(example.value, null, 2));
|
|
190
|
+
const format = objectEntries(bodyContentTypeMap).find(([_, contentType]) => contentType === mediaType)?.[0];
|
|
191
|
+
if (format) {
|
|
192
|
+
setValue("bodyContentType", format);
|
|
193
|
+
}
|
|
194
|
+
} }))] }))] }), _jsx(TabsContent, { value: "auth", children: _jsxs("div", { className: "flex flex-col gap-4 my-4", children: [identities.data?.length === 0 && (_jsxs(Alert, { children: [_jsx(InfoIcon, { className: "w-4 h-4" }), _jsx(AlertTitle, { children: "Authentication" }), _jsx(AlertDescription, { children: "No identities found. Please create an identity first." })] })), _jsx("div", { className: "flex flex-col items-center gap-2", children: _jsx(IdentitySelector, { value: formState.identity, identities: identities.data ?? [], setValue: (value) => setValue("identity", value) }) })] }) })] })] }), _jsx(ResultPanel, { queryMutation: queryMutation, showPathParamsWarning: formState.pathParams.some((p) => p.value === ""), showLongRunningWarning: showLongRunningWarning, onCancel: () => {
|
|
195
|
+
abortControllerRef.current?.abort("Request cancelled by the user");
|
|
196
|
+
setShowLongRunningWarning(false);
|
|
197
|
+
} })] })] }) }));
|
|
147
198
|
};
|
|
148
199
|
export default Playground;
|
|
149
200
|
//# sourceMappingURL=Playground.js.map
|