zudoku 0.25.2 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/demo.js +0 -1
- package/dist/app/demo.js.map +1 -1
- package/dist/app/standalone.js +0 -1
- package/dist/app/standalone.js.map +1 -1
- package/dist/cli/dev/handler.js +2 -2
- package/dist/cli/dev/handler.js.map +1 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +2 -2
- package/dist/config/validators/common.d.ts +28 -28
- package/dist/config/validators/icon-types.d.ts +1 -1
- package/dist/config/validators/validate.d.ts +16 -16
- package/dist/lib/components/navigation/SidebarCategory.js +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/oas/graphql/index.d.ts +3 -0
- package/dist/lib/oas/graphql/index.js +12 -13
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/plugins/openapi/ColorizedParam.d.ts +10 -2
- package/dist/lib/plugins/openapi/ColorizedParam.js +16 -7
- package/dist/lib/plugins/openapi/ColorizedParam.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +3 -0
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +3 -2
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +2 -0
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +3 -2
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +3 -6
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +2 -6
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +9 -6
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/{ExampleDisplay.d.ts → SidecarExamples.d.ts} +3 -6
- package/dist/lib/plugins/openapi/SidecarExamples.js +65 -0
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -0
- package/dist/lib/plugins/openapi/client/GraphQLClient.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/GraphQLClient.js +22 -93
- package/dist/lib/plugins/openapi/client/GraphQLClient.js.map +1 -1
- package/dist/lib/plugins/openapi/client/createServer.d.ts +2 -1
- package/dist/lib/plugins/openapi/client/createServer.js +5 -2
- package/dist/lib/plugins/openapi/client/createServer.js.map +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +1 -1
- package/dist/lib/plugins/openapi/client/useCreateQuery.js +2 -13
- package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
- package/dist/lib/plugins/openapi/index.d.ts +2 -1
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/EnumSelector.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/EnumSelector.js +21 -0
- package/dist/lib/plugins/openapi/playground/EnumSelector.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.js +9 -4
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +3 -0
- package/dist/lib/plugins/openapi/playground/Playground.js +5 -2
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +23 -8
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +2 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +1 -1
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js +19 -11
- package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
- package/dist/lib/ui/Badge.d.ts +1 -1
- package/dist/lib/ui/Badge.js +2 -1
- package/dist/lib/ui/Badge.js.map +1 -1
- package/dist/lib/ui/Button.d.ts +1 -1
- package/dist/lib/ui/Checkbox.d.ts +8 -2
- package/dist/lib/ui/Checkbox.js +13 -1
- package/dist/lib/ui/Checkbox.js.map +1 -1
- package/dist/lib/util/traverse.d.ts +8 -1
- package/dist/lib/util/traverse.js +7 -3
- package/dist/lib/util/traverse.js.map +1 -1
- package/dist/vite/api/schema-codegen.d.ts +12 -0
- package/dist/vite/api/schema-codegen.js +62 -0
- package/dist/vite/api/schema-codegen.js.map +1 -0
- package/dist/vite/api/schema-codegen.test.d.ts +1 -0
- package/dist/vite/api/schema-codegen.test.js +247 -0
- package/dist/vite/api/schema-codegen.test.js.map +1 -0
- package/dist/vite/config.js +0 -7
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/config.test.js +5 -1
- package/dist/vite/config.test.js.map +1 -1
- package/dist/vite/plugin-api.js +110 -82
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-component.js +0 -1
- package/dist/vite/plugin-component.js.map +1 -1
- package/lib/{AnchorLink-DFZZbmvr.js → AnchorLink-_Vu02ceN.js} +3 -3
- package/lib/{AnchorLink-DFZZbmvr.js.map → AnchorLink-_Vu02ceN.js.map} +1 -1
- package/lib/{AuthenticationPlugin-D7G3me8L.js → AuthenticationPlugin-DNXBcsVN.js} +4 -4
- package/lib/{AuthenticationPlugin-D7G3me8L.js.map → AuthenticationPlugin-DNXBcsVN.js.map} +1 -1
- package/lib/{Button-DeAoTouo.js → Button-oroWHXAy.js} +3 -3
- package/lib/{Button-DeAoTouo.js.map → Button-oroWHXAy.js.map} +1 -1
- package/lib/{CategoryHeading-CBconmtI.js → CategoryHeading-MYL1u_6K.js} +3 -3
- package/lib/{CategoryHeading-CBconmtI.js.map → CategoryHeading-MYL1u_6K.js.map} +1 -1
- package/lib/Command-D5DE0DD7.js +611 -0
- package/lib/Command-D5DE0DD7.js.map +1 -0
- package/lib/{Markdown-CZDLNOFc.js → Markdown-BrfrjEk_.js} +1041 -1041
- package/lib/{Markdown-CZDLNOFc.js.map → Markdown-BrfrjEk_.js.map} +1 -1
- package/lib/{MdxPage-DKMbBROv.js → MdxPage-LNZLj_A5.js} +24 -24
- package/lib/{MdxPage-DKMbBROv.js.map → MdxPage-LNZLj_A5.js.map} +1 -1
- package/lib/{OperationList-BLdHAQ39.js → OperationList-PCwzTp1r.js} +1899 -1877
- package/lib/OperationList-PCwzTp1r.js.map +1 -0
- package/lib/{Route-DYwKZ_c_.js → Route-Pzk6qwIk.js} +5 -5
- package/lib/{Route-DYwKZ_c_.js.map → Route-Pzk6qwIk.js.map} +1 -1
- package/lib/{Select-B_IxRUUC.js → Select-DkOpAG0c.js} +36 -36
- package/lib/{Select-B_IxRUUC.js.map → Select-DkOpAG0c.js.map} +1 -1
- package/lib/{SlotletProvider-pfc9oejW.js → SlotletProvider-DPbx9KdU.js} +53 -53
- package/lib/{SlotletProvider-pfc9oejW.js.map → SlotletProvider-DPbx9KdU.js.map} +1 -1
- package/lib/{Spinner-DuxJLLNE.js → Spinner-C5gHXrVz.js} +2 -2
- package/lib/{Spinner-DuxJLLNE.js.map → Spinner-C5gHXrVz.js.map} +1 -1
- package/lib/{SyntaxHighlight-Bz-lOJtH.js → SyntaxHighlight-CJCSPG1F.js} +297 -301
- package/lib/{SyntaxHighlight-Bz-lOJtH.js.map → SyntaxHighlight-CJCSPG1F.js.map} +1 -1
- package/lib/{ZudokuContext-hmLMUdf2.js → ZudokuContext-D3ayHjP-.js} +357 -356
- package/lib/ZudokuContext-D3ayHjP-.js.map +1 -0
- package/lib/{chunk-D52XG6IA-Dl7HLe6j.js → chunk-SYFQ2XB5-KWlHsT7t.js} +407 -410
- package/lib/chunk-SYFQ2XB5-KWlHsT7t.js.map +1 -0
- package/lib/context-rwLGh-6_.js +22 -0
- package/lib/{context-h_UkBLvr.js.map → context-rwLGh-6_.js.map} +1 -1
- package/lib/{createServer-Bf5_6o6G.js → createServer-BcaswoFO.js} +4363 -5302
- package/lib/createServer-BcaswoFO.js.map +1 -0
- package/lib/{hook-CHq7pFyz.js → hook-DUyACbIK.js} +17 -17
- package/lib/{hook-CHq7pFyz.js.map → hook-DUyACbIK.js.map} +1 -1
- package/lib/index-CaILD1AV.js +1292 -0
- package/lib/index-CaILD1AV.js.map +1 -0
- package/lib/index-Djenk2Hj.js +36 -0
- package/lib/{index-CPNSgwSb.js.map → index-Djenk2Hj.js.map} +1 -1
- package/lib/{index-CBXSgjaE.js → index-Dl3Yl0yb.js} +65 -69
- package/lib/index-Dl3Yl0yb.js.map +1 -0
- package/lib/index-TaRXY2w1.js +43 -0
- package/lib/index-TaRXY2w1.js.map +1 -0
- package/lib/{index.esm-BSV1C092.js → index.esm-9-TF9KQB.js} +52 -52
- package/lib/{index.esm-BSV1C092.js.map → index.esm-9-TF9KQB.js.map} +1 -1
- package/lib/index.esm-CrSoEshU.js +1207 -0
- package/lib/index.esm-CrSoEshU.js.map +1 -0
- package/lib/{jsx-runtime-Dx-03ztt.js → jsx-runtime-Bdg6XQ1m.js} +135 -135
- package/lib/{jsx-runtime-Dx-03ztt.js.map → jsx-runtime-Bdg6XQ1m.js.map} +1 -1
- package/lib/post-processors/removeExtensions.js +3 -3
- package/lib/post-processors/traverse.js +11 -8
- package/lib/post-processors/traverse.js.map +1 -1
- package/lib/{prism-bash.min-DadFsM4Z.js → prism-bash.min-HHIMdNJ_.js} +4 -4
- package/lib/{prism-bash.min-DadFsM4Z.js.map → prism-bash.min-HHIMdNJ_.js.map} +1 -1
- package/lib/{prism-csharp.min-DUwvItt4.js → prism-csharp.min-bQAo2pmx.js} +33 -33
- package/lib/{prism-csharp.min-DUwvItt4.js.map → prism-csharp.min-bQAo2pmx.js.map} +1 -1
- package/lib/{prism-java.min-BtgBR4yd.js → prism-java.min-BpvsOuIa.js} +12 -12
- package/lib/{prism-java.min-BtgBR4yd.js.map → prism-java.min-BpvsOuIa.js.map} +1 -1
- package/lib/{prism-markdown.min-F3U-vPBi.js → prism-markdown.min-C0Qn0m-5.js} +30 -30
- package/lib/{prism-markdown.min-F3U-vPBi.js.map → prism-markdown.min-C0Qn0m-5.js.map} +1 -1
- package/lib/{prism-ruby.min-DeDXCp1r.js → prism-ruby.min-Dx9KO9ds.js} +16 -16
- package/lib/{prism-ruby.min-DeDXCp1r.js.map → prism-ruby.min-Dx9KO9ds.js.map} +1 -1
- package/lib/prism-typescript.min-CD7H2IYQ.js.map +1 -1
- package/lib/state-mM7uaXTW.js +202 -0
- package/lib/state-mM7uaXTW.js.map +1 -0
- package/lib/ui/Accordion.js +1 -1
- package/lib/ui/ActionButton.js +3 -3
- package/lib/ui/Alert.js +2 -2
- package/lib/ui/AlertDialog.js +1 -1
- package/lib/ui/Badge.js +4 -3
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Breadcrumb.js +1 -1
- package/lib/ui/Button.js +2 -2
- package/lib/ui/Callout.js +1 -1
- package/lib/ui/Card.js +1 -1
- package/lib/ui/Carousel.js +3 -3
- package/lib/ui/Carousel.js.map +1 -1
- package/lib/ui/Checkbox.js +26 -15
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/Command.js +14 -550
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Dialog.js +1 -1
- package/lib/ui/Drawer.js +520 -519
- package/lib/ui/Drawer.js.map +1 -1
- package/lib/ui/DropdownMenu.js +1 -1
- package/lib/ui/Form.js +2 -2
- package/lib/ui/HoverCard.js +1 -1
- package/lib/ui/Input.js +1 -1
- package/lib/ui/Label.js +2 -2
- package/lib/ui/Pagination.js +7 -7
- package/lib/ui/Popover.js +1 -1
- package/lib/ui/Progress.js +1 -1
- package/lib/ui/RadioGroup.js +1 -1
- package/lib/ui/ScrollArea.js +1 -1
- package/lib/ui/Select.js +1 -1
- package/lib/ui/Skeleton.js +1 -1
- package/lib/ui/Slider.js +1 -1
- package/lib/ui/Switch.js +1 -1
- package/lib/ui/Tabs.js +1 -1
- package/lib/ui/Textarea.js +1 -1
- package/lib/ui/Toggle.js +2 -2
- package/lib/ui/ToggleGroup.js +1 -1
- package/lib/ui/Tooltip.js +1 -1
- package/lib/{useExposedProps-DE9lR6MF.js → useExposedProps-BBHR7aLM.js} +2 -2
- package/lib/{useExposedProps-DE9lR6MF.js.map → useExposedProps-BBHR7aLM.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-clerk.js +18 -18
- package/lib/zudoku.auth-openid.js +5 -5
- package/lib/zudoku.components.js +492 -477
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +5 -5
- package/lib/zudoku.plugin-api-keys.js +7 -7
- package/lib/zudoku.plugin-custom-pages.js +3 -3
- package/lib/zudoku.plugin-markdown.js +2 -2
- package/lib/zudoku.plugin-openapi.js +5 -5
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-search-inkeep.js +9 -9
- package/package.json +48 -53
- package/src/app/demo.tsx +0 -1
- package/src/app/standalone.tsx +0 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +2 -2
- package/src/lib/oas/graphql/index.ts +19 -15
- package/src/lib/plugins/openapi/ColorizedParam.tsx +29 -12
- package/src/lib/plugins/openapi/OperationList.tsx +4 -0
- package/src/lib/plugins/openapi/ParameterListItem.tsx +5 -7
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +2 -0
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +9 -8
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +5 -8
- package/src/lib/plugins/openapi/Sidecar.tsx +14 -7
- package/src/lib/plugins/openapi/SidecarBox.tsx +1 -1
- package/src/lib/plugins/openapi/SidecarExamples.tsx +163 -0
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +28 -120
- package/src/lib/plugins/openapi/client/createServer.ts +6 -2
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +2 -17
- package/src/lib/plugins/openapi/index.tsx +2 -1
- package/src/lib/plugins/openapi/playground/EnumSelector.tsx +86 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +72 -64
- package/src/lib/plugins/openapi/playground/Playground.tsx +26 -13
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +102 -73
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +4 -7
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +26 -11
- package/src/lib/ui/Badge.tsx +2 -1
- package/src/lib/ui/Checkbox.tsx +24 -7
- package/src/lib/util/traverse.ts +15 -5
- package/dist/lib/plugins/openapi/ExampleDisplay.js +0 -78
- package/dist/lib/plugins/openapi/ExampleDisplay.js.map +0 -1
- package/dist/lib/plugins/openapi/client/worker.d.ts +0 -4
- package/dist/lib/plugins/openapi/client/worker.js +0 -29
- package/dist/lib/plugins/openapi/client/worker.js.map +0 -1
- package/dist/lib/plugins/openapi-worker.d.ts +0 -1
- package/dist/lib/plugins/openapi-worker.js +0 -8
- package/dist/lib/plugins/openapi-worker.js.map +0 -1
- package/lib/Dialog-Bxv1yEIg.js +0 -67
- package/lib/Dialog-Bxv1yEIg.js.map +0 -1
- package/lib/OperationList-BLdHAQ39.js.map +0 -1
- package/lib/ZudokuContext-hmLMUdf2.js.map +0 -1
- package/lib/assets/index-C7jnHK4b.js +0 -4841
- package/lib/assets/index-C7jnHK4b.js.map +0 -1
- package/lib/assets/worker-Cbp2r2BQ.js +0 -18592
- package/lib/assets/worker-Cbp2r2BQ.js.map +0 -1
- package/lib/chunk-D52XG6IA-Dl7HLe6j.js.map +0 -1
- package/lib/context-h_UkBLvr.js +0 -22
- package/lib/createServer-Bf5_6o6G.js.map +0 -1
- package/lib/index-BNx95gkf.js +0 -1284
- package/lib/index-BNx95gkf.js.map +0 -1
- package/lib/index-CBXSgjaE.js.map +0 -1
- package/lib/index-CPNSgwSb.js +0 -36
- package/lib/index-DyBL--Kz.js +0 -826
- package/lib/index-DyBL--Kz.js.map +0 -1
- package/lib/index.esm-BnnBRKJX.js +0 -1214
- package/lib/index.esm-BnnBRKJX.js.map +0 -1
- package/lib/state-CFQsUZUP.js +0 -202
- package/lib/state-CFQsUZUP.js.map +0 -1
- package/lib/zudoku.openapi-worker.js +0 -15
- package/lib/zudoku.openapi-worker.js.map +0 -1
- package/src/lib/plugins/openapi/ExampleDisplay.tsx +0 -163
- package/src/lib/plugins/openapi/client/worker.ts +0 -44
- package/src/lib/plugins/openapi-worker.ts +0 -11
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useSuspenseQuery } from "@tanstack/react-query";
|
|
3
3
|
import { HTTPSnippet } from "@zudoku/httpsnippet";
|
|
4
|
-
import { Fragment, useMemo, useTransition } from "react";
|
|
4
|
+
import { Fragment, useMemo, useState, useTransition } from "react";
|
|
5
5
|
import { useSearchParams } from "react-router";
|
|
6
6
|
import { useSelectedServerStore } from "../../authentication/state.js";
|
|
7
7
|
import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
|
|
@@ -91,6 +91,7 @@ export const Sidecar = ({ operation, selectedResponse, onSelectResponse, }) => {
|
|
|
91
91
|
const methodTextColor = methodForColor(operation.method);
|
|
92
92
|
const [searchParams, setSearchParams] = useSearchParams();
|
|
93
93
|
const [, startTransition] = useTransition();
|
|
94
|
+
const [selectedExample, setSelectedExample] = useState();
|
|
94
95
|
const selectedLang = searchParams.get("lang") ?? "shell";
|
|
95
96
|
const requestBodyContent = operation.requestBody?.content;
|
|
96
97
|
const path = operation.path.split("/").map((part, i, arr) => {
|
|
@@ -104,9 +105,10 @@ export const Sidecar = ({ operation, selectedResponse, onSelectResponse, }) => {
|
|
|
104
105
|
});
|
|
105
106
|
const { selectedServer } = useSelectedServerStore();
|
|
106
107
|
const code = useMemo(() => {
|
|
107
|
-
const example =
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
const example = selectedExample ??
|
|
109
|
+
(requestBodyContent?.[0]?.schema
|
|
110
|
+
? generateSchemaExample(requestBodyContent[0].schema)
|
|
111
|
+
: undefined);
|
|
110
112
|
const snippet = new HTTPSnippet({
|
|
111
113
|
method: operation.method.toLocaleUpperCase(),
|
|
112
114
|
url: (selectedServer ?? result.data.schema.url ?? "") +
|
|
@@ -126,6 +128,7 @@ export const Sidecar = ({ operation, selectedResponse, onSelectResponse, }) => {
|
|
|
126
128
|
});
|
|
127
129
|
return getConverted(snippet, selectedLang);
|
|
128
130
|
}, [
|
|
131
|
+
selectedExample,
|
|
129
132
|
requestBodyContent,
|
|
130
133
|
operation.method,
|
|
131
134
|
operation.path,
|
|
@@ -134,13 +137,13 @@ export const Sidecar = ({ operation, selectedResponse, onSelectResponse, }) => {
|
|
|
134
137
|
selectedLang,
|
|
135
138
|
]);
|
|
136
139
|
const [ref, isOnScreen] = useOnScreen({ rootMargin: "200px 0px 200px 0px" });
|
|
137
|
-
return (_jsxs("aside", { ref: ref, className: "flex flex-col overflow-hidden sticky top-[--scroll-padding] gap-4", children: [_jsxs(SidecarBox.Root, { children: [_jsxs(SidecarBox.Head, { className: "flex justify-between items-center flex-nowrap py-
|
|
140
|
+
return (_jsxs("aside", { ref: ref, className: "flex flex-col overflow-hidden sticky top-[--scroll-padding] gap-4", children: [_jsxs(SidecarBox.Root, { children: [_jsxs(SidecarBox.Head, { className: "flex justify-between items-center flex-nowrap py-2.5 gap-2 text-xs", children: [_jsxs("span", { className: "font-mono break-words", children: [_jsx("span", { className: cn("font-semibold", methodTextColor), children: operation.method.toLocaleUpperCase() }), "\u00A0", path] }), isOnScreen && (_jsx(PlaygroundDialogWrapper, { server: result.data.schema.url, servers: result.data.schema.servers.map((server) => server.url), operation: operation }))] }), isOnScreen && (_jsxs(_Fragment, { children: [_jsx(SidecarBox.Body, { className: "p-0", children: _jsx(CollapsibleCode, { children: _jsx(SyntaxHighlight, { language: selectedLang, noBackground: true, className: "[--scrollbar-color:gray] text-xs max-h-[500px] p-2", code: code }) }) }), _jsxs(SidecarBox.Footer, { className: "flex items-center text-xs gap-2 justify-end py-2.5", children: [_jsx("span", { children: "Show example in" }), _jsx(SimpleSelect, { className: "self-start max-w-[150px]", value: selectedLang, onChange: (e) => {
|
|
138
141
|
startTransition(() => {
|
|
139
142
|
setSearchParams((prev) => {
|
|
140
143
|
prev.set("lang", e.target.value);
|
|
141
144
|
return prev;
|
|
142
145
|
});
|
|
143
146
|
});
|
|
144
|
-
}, options: EXAMPLE_LANGUAGES })] })] }))] }), isOnScreen && requestBodyContent && (_jsx(RequestBodySidecarBox, { content: requestBodyContent })), isOnScreen && operation.responses.length > 0 && (_jsx(ResponsesSidecarBox, { selectedResponse: selectedResponse, onSelectResponse: onSelectResponse, responses: operation.responses }))] }));
|
|
147
|
+
}, options: EXAMPLE_LANGUAGES })] })] }))] }), isOnScreen && requestBodyContent && (_jsx(RequestBodySidecarBox, { content: requestBodyContent, onExampleChange: setSelectedExample })), isOnScreen && operation.responses.length > 0 && (_jsx(ResponsesSidecarBox, { selectedResponse: selectedResponse, onSelectResponse: onSelectResponse, responses: operation.responses }))] }));
|
|
145
148
|
};
|
|
146
149
|
//# sourceMappingURL=Sidecar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/Sidecar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/Sidecar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../../util/cn.js";
|
|
3
3
|
export const Root = ({ children, className }) => (_jsx("div", { className: cn("rounded-xl overflow-hidden border border-border", className), children: children }));
|
|
4
|
-
export const Head = ({ children, className }) => (_jsx("div", { className: cn("border-b bg-muted dark:bg-transparent text-card-foreground p-3", className), children: children }));
|
|
4
|
+
export const Head = ({ children, className }) => (_jsx("div", { className: cn("border-b bg-muted dark:bg-transparent text-card-foreground p-3 py-2.5", className), children: children }));
|
|
5
5
|
export const Body = ({ children, className }) => (_jsx("div", { className: cn("bg-card overflow-auto p-2", className), children: children }));
|
|
6
6
|
export const Footer = ({ children, className }) => (_jsx("div", { className: cn("border-t bg-muted dark:bg-transparent p-3", className), children: children }));
|
|
7
7
|
//# sourceMappingURL=SidecarBox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidecarBox.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/SidecarBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAMtC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACnE,cACE,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,YAE1E,QAAQ,GACL,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACnE,cACE,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"SidecarBox.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/SidecarBox.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAMtC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACnE,cACE,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,YAE1E,QAAQ,GACL,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACnE,cACE,SAAS,EAAE,EAAE,CACX,uEAAuE,EACvE,SAAS,CACV,YAEA,QAAQ,GACL,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACnE,cAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,YAAG,QAAQ,GAAO,CAC7E,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAsB,EAAE,EAAE,CAAC,CACrE,cAAK,SAAS,EAAE,EAAE,CAAC,2CAA2C,EAAE,SAAS,CAAC,YACvE,QAAQ,GACL,CACP,CAAC"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import type { OperationListItemResult } from "./OperationList.js";
|
|
2
2
|
export type Content = NonNullable<NonNullable<OperationListItemResult["requestBody"]>["content"]>;
|
|
3
3
|
export type Example = NonNullable<NonNullable<Content[number]["examples"]>>[number];
|
|
4
|
-
export
|
|
4
|
+
export type SidecarExamplesProps = {
|
|
5
5
|
content: Content;
|
|
6
6
|
description?: string;
|
|
7
|
-
|
|
8
|
-
export declare const useSidecarExamples: ({ content, description, }: UseExampleDisplayProps) => {
|
|
9
|
-
SidecarBody: () => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
SidebarFooter: () => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
hasContent: boolean;
|
|
7
|
+
onExampleChange?: (example: unknown) => void;
|
|
12
8
|
};
|
|
9
|
+
export declare const SidecarExamples: ({ content, description, onExampleChange, }: SidecarExamplesProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
|
|
4
|
+
import { CollapsibleCode } from "./CollapsibleCode.js";
|
|
5
|
+
import * as SidecarBox from "./SidecarBox.js";
|
|
6
|
+
import { SimpleSelect } from "./SimpleSelect.js";
|
|
7
|
+
import { generateSchemaExample } from "./util/generateSchemaExample.js";
|
|
8
|
+
const formatForDisplay = (value) => {
|
|
9
|
+
if (value == null)
|
|
10
|
+
return "No example";
|
|
11
|
+
if (typeof value === "string")
|
|
12
|
+
return value.trim();
|
|
13
|
+
return JSON.stringify(value, null, 2);
|
|
14
|
+
};
|
|
15
|
+
const getLanguage = (mediaType) => {
|
|
16
|
+
if (!mediaType)
|
|
17
|
+
return "plain";
|
|
18
|
+
const languages = {
|
|
19
|
+
"application/json": "json",
|
|
20
|
+
"application/xml": "xml",
|
|
21
|
+
"application/x-yaml": "yaml",
|
|
22
|
+
"text/csv": "csv",
|
|
23
|
+
"application/javascript": "javascript",
|
|
24
|
+
"application/graphql": "graphql",
|
|
25
|
+
};
|
|
26
|
+
return languages[mediaType] ?? "plain";
|
|
27
|
+
};
|
|
28
|
+
export const SidecarExamples = ({ content, description, onExampleChange, }) => {
|
|
29
|
+
const [selectedContentTypeIndex, setSelectedContentTypeIndex] = useState(0);
|
|
30
|
+
const [selectedExampleIndex, setSelectedExampleIndex] = useState(0);
|
|
31
|
+
// Get the effective content (handle single item array case)
|
|
32
|
+
const effectiveContent = Array.isArray(content) && content.length === 1
|
|
33
|
+
? content[0]
|
|
34
|
+
: content[selectedContentTypeIndex];
|
|
35
|
+
// Get example value, with fallback to schema-generated example
|
|
36
|
+
const examples = effectiveContent?.examples ?? [];
|
|
37
|
+
const selectedExample = examples[selectedExampleIndex];
|
|
38
|
+
let exampleValue = undefined;
|
|
39
|
+
if (selectedExample) {
|
|
40
|
+
// If it's a wrapped example with a value field, use that
|
|
41
|
+
exampleValue =
|
|
42
|
+
"value" in selectedExample ? selectedExample.value : selectedExample;
|
|
43
|
+
}
|
|
44
|
+
else if (effectiveContent?.schema) {
|
|
45
|
+
// No example provided, generate one from schema
|
|
46
|
+
exampleValue = generateSchemaExample(effectiveContent.schema);
|
|
47
|
+
}
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
onExampleChange?.(exampleValue);
|
|
50
|
+
}, [exampleValue, onExampleChange]);
|
|
51
|
+
const formattedExample = formatForDisplay(exampleValue);
|
|
52
|
+
const language = getLanguage(effectiveContent?.mediaType);
|
|
53
|
+
const hasContent = examples.length > 0 || content.length > 0;
|
|
54
|
+
return (_jsxs(_Fragment, { children: [_jsxs(SidecarBox.Body, { className: "p-0", children: [selectedExample?.externalValue ? (_jsx("div", { className: "p-2", children: _jsx("a", { href: selectedExample.externalValue, target: "_blank", rel: "noopener noreferrer", className: "text-xs text-primary hover:underline", children: "View External Example \u2192" }) })) : (_jsx(CollapsibleCode, { children: _jsx(SyntaxHighlight, { language: language, noBackground: true, copyable: true, className: "[--scrollbar-color:gray] text-xs max-h-[500px] p-2", code: formattedExample }) })), selectedExample?.description && (_jsx("div", { className: "border-t text-xs px-3 py-1.5 text-muted-foreground", children: selectedExample.description }))] }), hasContent && (_jsxs(SidecarBox.Footer, { className: "text-xs p-0", children: [description && (_jsx("div", { className: "text-muted-foreground text-xs border-b px-3 py-2", children: description })), _jsxs("div", { className: "flex items-center gap-2 justify-between min-w-0 px-3 py-2", children: [_jsx("div", { className: "flex items-center gap-2 min-w-0", children: content.length > 1 ? (_jsx(SimpleSelect, { className: "max-w-[200px]", value: selectedContentTypeIndex.toString(), onChange: (e) => setSelectedContentTypeIndex(Number(e.target.value)), options: content.map((c, index) => ({
|
|
55
|
+
value: index.toString(),
|
|
56
|
+
label: c.mediaType,
|
|
57
|
+
})) })) : (_jsx("span", { className: "font-mono text-[11px]", children: content[0]?.mediaType })) }), examples.length > 1 && (_jsx("div", { className: "flex items-center gap-1", children: _jsx(SimpleSelect, { className: "max-w-[180px]", value: selectedExampleIndex.toString(), onChange: (e) => setSelectedExampleIndex(Number(e.target.value)), options: examples.map((example, index) => ({
|
|
58
|
+
value: index.toString(),
|
|
59
|
+
label: example.summary ||
|
|
60
|
+
example.name ||
|
|
61
|
+
example.description ||
|
|
62
|
+
`Example ${index + 1}`,
|
|
63
|
+
})) }) }))] })] }))] }));
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=SidecarExamples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SidecarExamples.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/SidecarExamples.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { TypedDocumentString } from "../graphql/graphql.js";
|
|
|
2
2
|
import type { OpenApiPluginOptions } from "../index.js";
|
|
3
3
|
export declare class GraphQLClient {
|
|
4
4
|
#private;
|
|
5
|
-
private config;
|
|
5
|
+
private readonly config;
|
|
6
6
|
constructor(config: OpenApiPluginOptions);
|
|
7
7
|
fetch: <TResult, TVariables>(query: TypedDocumentString<TResult, TVariables>, ...[variables]: TVariables extends Record<string, never> ? [] : [TVariables]) => Promise<TResult>;
|
|
8
8
|
}
|
|
@@ -1,19 +1,5 @@
|
|
|
1
|
-
import { ulid } from "ulidx";
|
|
2
|
-
import { initializeWorker } from "zudoku/openapi-worker";
|
|
3
1
|
import { ZudokuError } from "../../../util/invariant.js";
|
|
4
2
|
let localServerPromise;
|
|
5
|
-
let worker;
|
|
6
|
-
const resolveVariables = async (variables) => {
|
|
7
|
-
if (!variables)
|
|
8
|
-
return;
|
|
9
|
-
if (typeof variables === "object" &&
|
|
10
|
-
"type" in variables &&
|
|
11
|
-
variables.type === "file" &&
|
|
12
|
-
"input" in variables &&
|
|
13
|
-
typeof variables.input === "function") {
|
|
14
|
-
variables.input = await variables.input();
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
3
|
const throwIfError = (response) => {
|
|
18
4
|
if (!response.errors?.[0])
|
|
19
5
|
return;
|
|
@@ -23,92 +9,35 @@ const throwIfError = (response) => {
|
|
|
23
9
|
};
|
|
24
10
|
export class GraphQLClient {
|
|
25
11
|
config;
|
|
26
|
-
#mode;
|
|
27
|
-
#pendingRequests = new Map();
|
|
28
|
-
#port;
|
|
29
12
|
constructor(config) {
|
|
30
13
|
this.config = config;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.#mode = "in-memory";
|
|
14
|
+
}
|
|
15
|
+
#getLocalServer = async () => {
|
|
16
|
+
if (!localServerPromise) {
|
|
17
|
+
localServerPromise = import("./createServer.js").then((m) => m.createServer(this.config));
|
|
36
18
|
}
|
|
37
|
-
|
|
38
|
-
|
|
19
|
+
return localServerPromise;
|
|
20
|
+
};
|
|
21
|
+
#executeFetch = async (init) => {
|
|
22
|
+
if (this.config.server) {
|
|
23
|
+
return fetch(this.config.server, init);
|
|
39
24
|
}
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
const localServer = await this.#getLocalServer();
|
|
26
|
+
return localServer.fetch("http://localhost/graphql", init);
|
|
27
|
+
};
|
|
42
28
|
fetch = async (query, ...[variables]) => {
|
|
43
29
|
const operationName = query.match(/query (\w+)/)?.[1];
|
|
44
|
-
await
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
headers: { "Content-Type": "application/json" },
|
|
52
|
-
});
|
|
53
|
-
if (!response.ok) {
|
|
54
|
-
throw new Error("Network response was not ok");
|
|
55
|
-
}
|
|
56
|
-
const result = (await response.json());
|
|
57
|
-
throwIfError(result);
|
|
58
|
-
return result.data;
|
|
59
|
-
}
|
|
60
|
-
case "in-memory": {
|
|
61
|
-
if (!localServerPromise) {
|
|
62
|
-
localServerPromise = this.#initializeLocalServer();
|
|
63
|
-
}
|
|
64
|
-
const localServer = await localServerPromise;
|
|
65
|
-
if (!localServer)
|
|
66
|
-
throw new Error("Local server not initialized");
|
|
67
|
-
const response = await localServer.fetch(new Request("http://localhost/graphql", {
|
|
68
|
-
method: "POST",
|
|
69
|
-
body,
|
|
70
|
-
headers: { "Content-Type": "application/json" },
|
|
71
|
-
}));
|
|
72
|
-
if (!response.ok) {
|
|
73
|
-
throw new Error("Network response was not ok");
|
|
74
|
-
}
|
|
75
|
-
const result = (await response.json());
|
|
76
|
-
throwIfError(result);
|
|
77
|
-
return result.data;
|
|
78
|
-
}
|
|
79
|
-
case "worker": {
|
|
80
|
-
if (!worker) {
|
|
81
|
-
worker = initializeWorker();
|
|
82
|
-
}
|
|
83
|
-
if (!this.#port) {
|
|
84
|
-
const channel = new MessageChannel();
|
|
85
|
-
worker.port.postMessage({ port: channel.port2 }, [channel.port2]);
|
|
86
|
-
this.#port = channel.port1;
|
|
87
|
-
this.#port.onmessage = (e) => {
|
|
88
|
-
const { id, body } = e.data;
|
|
89
|
-
const resolve = this.#pendingRequests.get(id);
|
|
90
|
-
if (resolve) {
|
|
91
|
-
const result = JSON.parse(body);
|
|
92
|
-
resolve(result);
|
|
93
|
-
this.#pendingRequests.delete(id);
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
// eslint-disable-next-line no-console
|
|
97
|
-
console.error(`No pending request found for id: ${id}`);
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
this.#port.start();
|
|
101
|
-
}
|
|
102
|
-
const id = ulid();
|
|
103
|
-
const resultPromise = new Promise((resolve) => {
|
|
104
|
-
this.#pendingRequests.set(id, resolve);
|
|
105
|
-
this.#port.postMessage({ id, body });
|
|
106
|
-
});
|
|
107
|
-
const result = await resultPromise;
|
|
108
|
-
throwIfError(result);
|
|
109
|
-
return result.data;
|
|
110
|
-
}
|
|
30
|
+
const response = await this.#executeFetch({
|
|
31
|
+
method: "POST",
|
|
32
|
+
body: JSON.stringify({ query, variables, operationName }),
|
|
33
|
+
headers: { "Content-Type": "application/json" },
|
|
34
|
+
});
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error("Network response was not ok");
|
|
111
37
|
}
|
|
38
|
+
const result = (await response.json());
|
|
39
|
+
throwIfError(result);
|
|
40
|
+
return result.data;
|
|
112
41
|
};
|
|
113
42
|
}
|
|
114
43
|
//# sourceMappingURL=GraphQLClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GraphQLClient.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/GraphQLClient.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"GraphQLClient.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/GraphQLClient.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKzD,IAAI,kBAAoD,CAAC;AAOzD,MAAM,YAAY,GAAG,CAAC,QAAkC,EAAE,EAAE;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO;IAElC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QAChD,aAAa,EACX,mFAAmF;KACtF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,MAA4B;QAA5B,WAAM,GAAN,MAAM,CAAsB;IAAG,CAAC;IAE7D,eAAe,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAC5B,CAAC;QACJ,CAAC;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC;IAEF,aAAa,GAAG,KAAK,EAAE,IAAiB,EAAqB,EAAE;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,KAAK,GAAG,KAAK,EACX,KAA+C,EAC/C,GAAG,CAAC,SAAS,CAA+D,EAC1D,EAAE;QACpB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YACxC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;YACzD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;QACnE,YAAY,CAAC,MAAM,CAAC,CAAC;QAErB,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC;CACH"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { OpenApiPluginOptions } from "../index.js";
|
|
1
2
|
/**
|
|
2
3
|
* Creates the GraphQL server
|
|
3
4
|
*/
|
|
4
|
-
export declare const createServer: () => import("graphql-yoga").YogaServerInstance<any, any>;
|
|
5
|
+
export declare const createServer: (config: OpenApiPluginOptions) => import("graphql-yoga").YogaServerInstance<any, any>;
|
|
5
6
|
export type LocalServer = ReturnType<typeof createServer>;
|
|
@@ -4,7 +4,10 @@ const map = new Map();
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates the GraphQL server
|
|
6
6
|
*/
|
|
7
|
-
export const createServer = () => createGraphQLServer({
|
|
7
|
+
export const createServer = (config) => createGraphQLServer({
|
|
8
|
+
context: {
|
|
9
|
+
schemaImports: config.schemaImports,
|
|
10
|
+
},
|
|
8
11
|
plugins: [
|
|
9
12
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
10
13
|
useLogger({
|
|
@@ -19,7 +22,7 @@ export const createServer = () => createGraphQLServer({
|
|
|
19
22
|
const start = map.get(`${startEvent}-${args.operationName}`);
|
|
20
23
|
if (start) {
|
|
21
24
|
// eslint-disable-next-line no-console
|
|
22
|
-
console.log(
|
|
25
|
+
console.log(`[zudoku:debug] ${args.operationName} query took ${performance.now() - start}ms`);
|
|
23
26
|
map.delete(`${startEvent}-${args.operationName}`);
|
|
24
27
|
}
|
|
25
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"createServer.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA4B,EAAE,EAAE,CAC3D,mBAAmB,CAAC;IAClB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,SAAS,CAAC;YACR,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;oBAAE,OAAO;gBAEjC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnE,CAAC;qBAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACvD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC7D,IAAI,KAAK,EAAE,CAAC;wBACV,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CACT,kBAAkB,IAAI,CAAC,aAAa,eAAe,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CACjF,CAAC;wBACF,GAAG,CAAC,MAAM,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;KACH;CACF,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TypedDocumentString } from "../graphql/graphql.js";
|
|
2
2
|
export declare const useCreateQuery: <TResult, TVariables>(query: TypedDocumentString<TResult, TVariables>, ...variables: TVariables extends Record<string, never> ? [] : [TVariables]) => {
|
|
3
3
|
readonly queryFn: () => Promise<TResult>;
|
|
4
|
-
readonly queryKey: readonly [TypedDocumentString<TResult, TVariables>,
|
|
4
|
+
readonly queryKey: readonly [TypedDocumentString<TResult, TVariables>, TVariables | undefined];
|
|
5
5
|
};
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useContext, useMemo } from "react";
|
|
1
|
+
import { useContext } from "react";
|
|
3
2
|
import { GraphQLContext } from "./GraphQLContext.js";
|
|
4
3
|
export const useCreateQuery = (query, ...variables) => {
|
|
5
4
|
const graphQLClient = useContext(GraphQLContext);
|
|
6
5
|
if (graphQLClient === undefined) {
|
|
7
6
|
throw new Error("useGraphQL must be used within a GraphQLProvider");
|
|
8
7
|
}
|
|
9
|
-
const hash = useMemo(() => {
|
|
10
|
-
if (typeof variables[0] === "object" &&
|
|
11
|
-
variables[0] != null &&
|
|
12
|
-
"input" in variables[0] &&
|
|
13
|
-
typeof variables[0].input === "function") {
|
|
14
|
-
// This is a pre-hashed name to ensure that the query key is consistent across server and client
|
|
15
|
-
return variables[0].input.name;
|
|
16
|
-
}
|
|
17
|
-
return hashit(variables[0] ?? {});
|
|
18
|
-
}, [variables]);
|
|
19
8
|
return {
|
|
20
9
|
queryFn: () => graphQLClient.fetch(query, ...variables),
|
|
21
|
-
queryKey: [query,
|
|
10
|
+
queryKey: [query, variables[0]],
|
|
22
11
|
};
|
|
23
12
|
};
|
|
24
13
|
//# sourceMappingURL=useCreateQuery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateQuery.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/useCreateQuery.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useCreateQuery.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/client/useCreateQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAA+C,EAC/C,GAAG,SAAuE,EAC1E,EAAE;IACF,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC;QACvD,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;KACvB,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type ZudokuPlugin } from "../../core/plugins.js";
|
|
2
|
+
import type { SchemaImports } from "../../oas/graphql/index.js";
|
|
2
3
|
import { OasPluginConfig } from "./interfaces.js";
|
|
3
4
|
type InternalOasPluginConfig = {
|
|
4
|
-
|
|
5
|
+
schemaImports?: SchemaImports;
|
|
5
6
|
};
|
|
6
7
|
export type OpenApiPluginOptions = OasPluginConfig & InternalOasPluginConfig;
|
|
7
8
|
export declare const openApiPlugin: (config: OpenApiPluginOptions) => ZudokuPlugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/openapi/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface EnumSelectorProps {
|
|
2
|
+
value: string;
|
|
3
|
+
enumValues: string[];
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
onValueSelected: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const EnumSelector: ({ value, enumValues, onChange, onValueSelected, }: EnumSelectorProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Command, CommandEmpty, CommandInput, CommandItem, CommandList, } from "../../../ui/Command.js";
|
|
4
|
+
import { Popover, PopoverContent, PopoverTrigger, } from "../../../ui/Popover.js";
|
|
5
|
+
import { cn } from "../../../util/cn.js";
|
|
6
|
+
export const EnumSelector = ({ value, enumValues, onChange, onValueSelected, }) => {
|
|
7
|
+
const [searchValue, setSearchValue] = useState("");
|
|
8
|
+
const [open, setOpen] = useState(false);
|
|
9
|
+
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("button", { type: "button", role: "combobox", className: cn("px-3 py-2 w-full border-0 shadow-none text-xs font-mono text-start hover:bg-accent/40 rounded border-transparent hover:bg-accent", !value && "text-muted-foreground"), children: value || "Select value" }) }), _jsx(PopoverContent, { className: "p-0 w-[--radix-popover-trigger-width] ", align: "start", sideOffset: 3, alignOffset: -3, side: "bottom", children: _jsxs(Command, { className: "max-h-[180px]", children: [_jsx(CommandInput, { placeholder: "Enter value", className: "h-9 bg-transparent ", onValueChange: setSearchValue, onKeyDown: (e) => {
|
|
10
|
+
if (e.key === "Enter") {
|
|
11
|
+
onChange(searchValue);
|
|
12
|
+
onValueSelected();
|
|
13
|
+
setOpen(false);
|
|
14
|
+
}
|
|
15
|
+
} }), _jsxs(CommandList, { children: [_jsxs(CommandEmpty, { children: ["Use \"", searchValue, "\""] }), enumValues.map((enumValue) => (_jsx(CommandItem, { value: enumValue, onSelect: (selected) => {
|
|
16
|
+
onChange(selected);
|
|
17
|
+
onValueSelected();
|
|
18
|
+
setOpen(false);
|
|
19
|
+
}, children: enumValue }, enumValue)))] })] }) })] }));
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=EnumSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnumSelector.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/EnumSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AASzC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAC3B,KAAK,EACL,UAAU,EACV,QAAQ,EACR,eAAe,GACG,EAAE,EAAE;IACtB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,MAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aACxC,KAAC,cAAc,IAAC,OAAO,kBACrB,iBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,EAAE,CACX,kIAAkI,EAClI,CAAC,KAAK,IAAI,uBAAuB,CAClC,YAEA,KAAK,IAAI,cAAc,GACjB,GACM,EACjB,KAAC,cAAc,IACb,SAAS,EAAC,wCAAwC,EAClD,KAAK,EAAC,OAAO,EACb,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,CAAC,CAAC,EACf,IAAI,EAAC,QAAQ,YAEb,MAAC,OAAO,IAAC,SAAS,EAAC,eAAe,aAChC,KAAC,YAAY,IACX,WAAW,EAAC,aAAa,EACzB,SAAS,EAAC,qBAAqB,EAC/B,aAAa,EAAE,cAAc,EAC7B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gCACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oCACtB,QAAQ,CAAC,WAAW,CAAC,CAAC;oCACtB,eAAe,EAAE,CAAC;oCAClB,OAAO,CAAC,KAAK,CAAC,CAAC;gCACjB,CAAC;4BACH,CAAC,GACD,EACF,MAAC,WAAW,eACV,MAAC,YAAY,yBAAO,WAAW,UAAiB,EAC/C,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC7B,KAAC,WAAW,IAEV,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;wCACrB,QAAQ,CAAC,QAAQ,CAAC,CAAC;wCACnB,eAAe,EAAE,CAAC;wCAClB,OAAO,CAAC,KAAK,CAAC,CAAC;oCACjB,CAAC,YAEA,SAAS,IARL,SAAS,CASF,CACf,CAAC,IACU,IACN,GACK,IACT,CACX,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { EraserIcon } from "lucide-react";
|
|
3
3
|
import { Controller, useFieldArray } from "react-hook-form";
|
|
4
|
+
import { Card } from "zudoku/ui/Card.js";
|
|
4
5
|
import { Button } from "../../../ui/Button.js";
|
|
5
6
|
import { Input } from "../../../ui/Input.js";
|
|
6
7
|
import { cn } from "../../../util/cn.js";
|
|
7
|
-
import { ColorizedParam } from "../ColorizedParam.js";
|
|
8
|
+
import { ColorizedParam, useParamColor } from "../ColorizedParam.js";
|
|
9
|
+
const PathParamLabel = ({ name }) => {
|
|
10
|
+
const color = useParamColor(name);
|
|
11
|
+
return (_jsxs("div", { className: "flex items-center", children: [_jsx("div", { className: "w-2 h-2 rounded-full", style: { backgroundColor: `hsl(${color})` } }), _jsx(ColorizedParam, { slug: name, name: name, className: "font-mono text-xs m-2 px-1" })] }));
|
|
12
|
+
};
|
|
8
13
|
export const PathParams = ({ control, }) => {
|
|
9
14
|
const { fields } = useFieldArray({
|
|
10
15
|
control,
|
|
11
16
|
name: "pathParams",
|
|
12
17
|
});
|
|
13
|
-
return (_jsx(
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
return (_jsx(Card, { className: "rounded-lg", children: _jsx("table", { className: "w-full", children: _jsx("tbody", { children: fields.map((part, i) => (_jsxs("tr", { className: "hover:bg-accent/40", children: [_jsx("td", { className: "w-5/12", children: _jsx(Controller, { control: control, name: `pathParams.${i}.value`, render: () => _jsx(PathParamLabel, { name: part.name }) }) }), _jsx("td", { className: "w-7/12", children: _jsxs("div", { className: "flex justify-between items-center", children: [_jsx(Controller, { control: control, name: `pathParams.${i}.value`, render: ({ field }) => (_jsx(Input, { ...field, required: true, placeholder: "Enter value", className: "w-full border-0 shadow-none text-xs font-mono hover:bg-accent" })) }), _jsx(Controller, { control: control, name: `pathParams.${i}.value`, render: ({ field }) => (_jsx(Button, { size: "icon", type: "button", variant: "ghost", "aria-label": "Clear value", className: cn("ms-2 mr-1", field.value.length === 0
|
|
19
|
+
? "opacity-0 pointer-events-none"
|
|
20
|
+
: "opacity-100"), title: "Clear value", onClick: () => field.onChange(""), children: _jsx(EraserIcon, { size: 16 }) })) })] }) })] }, part.id))) }) }) }));
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=PathParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PathParams.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/PathParams.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAW,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"PathParams.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/playground/PathParams.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAW,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrE,MAAM,cAAc,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAElC,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAChC,cACE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,GAAG,EAAE,GAC3C,EAEF,KAAC,cAAc,IACb,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,4BAA4B,GACtC,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACzB,OAAO,GAGR,EAAE,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAiB;QAC/C,OAAO;QACP,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAC,YAAY,YAC1B,gBAAO,SAAS,EAAC,QAAQ,YACvB,0BACG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,cAAkB,SAAS,EAAC,oBAAoB,aAC9C,aAAI,SAAS,EAAC,QAAQ,YACpB,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAI,GACjD,GACC,EACL,aAAI,SAAS,EAAC,QAAQ,YACpB,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAC7B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,KAAK,OACA,KAAK,EACT,QAAQ,QACR,WAAW,EAAC,aAAa,EACzB,SAAS,EAAC,+DAA+D,GACzE,CACH,GACD,EACF,KAAC,UAAU,IACT,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,CAAC,QAAQ,EAC7B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrB,KAAC,MAAM,IACL,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,gBACJ,aAAa,EACxB,SAAS,EAAE,EAAE,CACX,WAAW,EACX,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gDACtB,CAAC,CAAC,+BAA+B;gDACjC,CAAC,CAAC,aAAa,CAClB,EACD,KAAK,EAAC,aAAa,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,YAEjC,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,CACV,GACD,IACE,GACH,KA7CE,IAAI,CAAC,EAAE,CA8CX,CACN,CAAC,GACI,GACF,GACH,CACR,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -8,6 +8,8 @@ export type QueryParam = {
|
|
|
8
8
|
defaultValue?: string;
|
|
9
9
|
defaultActive?: boolean;
|
|
10
10
|
isRequired?: boolean;
|
|
11
|
+
enum?: string[];
|
|
12
|
+
type?: string;
|
|
11
13
|
};
|
|
12
14
|
export type PathParam = {
|
|
13
15
|
name: string;
|
|
@@ -20,6 +22,7 @@ export type PlaygroundForm = {
|
|
|
20
22
|
name: string;
|
|
21
23
|
value: string;
|
|
22
24
|
active: boolean;
|
|
25
|
+
enum?: string[];
|
|
23
26
|
}>;
|
|
24
27
|
pathParams: Array<{
|
|
25
28
|
name: string;
|