zudoku 0.25.0 → 0.25.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/dist/config/validators/InputSidebarSchema.d.ts +15 -0
- package/dist/config/validators/InputSidebarSchema.js +1 -0
- package/dist/config/validators/InputSidebarSchema.js.map +1 -1
- package/dist/config/validators/common.d.ts +45 -34
- package/dist/config/validators/common.js +2 -1
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +19 -14
- package/dist/lib/authentication/components/SignOut.js +1 -1
- package/dist/lib/authentication/components/SignOut.js.map +1 -1
- package/dist/lib/authentication/providers/clerk.js +29 -6
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/components/navigation/SidebarBadge.d.ts +11 -1
- package/dist/lib/components/navigation/SidebarBadge.js +11 -2
- package/dist/lib/components/navigation/SidebarBadge.js.map +1 -1
- package/dist/lib/components/navigation/SidebarCategory.js +2 -2
- package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.js +1 -1
- package/dist/lib/components/navigation/SidebarWrapper.js.map +1 -1
- package/dist/lib/oas/graphql/index.js +16 -3
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/upgrade/index.js +17 -3
- package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
- package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
- package/dist/lib/plugins/openapi/Endpoint.d.ts +1 -1
- package/dist/lib/plugins/openapi/Endpoint.js +2 -0
- package/dist/lib/plugins/openapi/Endpoint.js.map +1 -1
- package/dist/lib/plugins/openapi/ExampleDisplay.d.ts +12 -0
- package/dist/lib/plugins/openapi/ExampleDisplay.js +78 -0
- package/dist/lib/plugins/openapi/ExampleDisplay.js.map +1 -0
- package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.d.ts +2 -4
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +6 -13
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +11 -13
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +1 -0
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/vite/build.js +10 -8
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.js +10 -0
- package/dist/vite/config.js.map +1 -1
- package/lib/{AuthenticationPlugin-DVLEc6cm.js → AuthenticationPlugin-D7G3me8L.js} +16 -16
- package/lib/AuthenticationPlugin-D7G3me8L.js.map +1 -0
- package/lib/{OperationList-c6V_vcgz.js → OperationList-BLdHAQ39.js} +1594 -1525
- package/lib/OperationList-BLdHAQ39.js.map +1 -0
- package/lib/assets/{worker-DV9Ecqy9.js → worker-Cbp2r2BQ.js} +26 -14
- package/lib/assets/{worker-DV9Ecqy9.js.map → worker-Cbp2r2BQ.js.map} +1 -1
- package/lib/{createServer-C4C0OO0m.js → createServer-Bf5_6o6G.js} +796 -784
- package/lib/{createServer-C4C0OO0m.js.map → createServer-Bf5_6o6G.js.map} +1 -1
- package/lib/{index-DkwDHnit.js → index-BNx95gkf.js} +5 -4
- package/lib/{index-DkwDHnit.js.map → index-BNx95gkf.js.map} +1 -1
- package/lib/zudoku.auth-clerk.js +80 -52
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +1 -1
- package/lib/zudoku.components.js +89 -85
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.openapi-worker.js +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/package.json +4 -4
- package/src/lib/authentication/components/SignOut.tsx +2 -1
- package/src/lib/authentication/providers/clerk.tsx +38 -7
- package/src/lib/components/navigation/SidebarBadge.tsx +13 -1
- package/src/lib/components/navigation/SidebarCategory.tsx +3 -7
- package/src/lib/components/navigation/SidebarWrapper.tsx +1 -0
- package/src/lib/oas/graphql/index.ts +16 -7
- package/src/lib/oas/parser/upgrade/index.ts +19 -4
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +1 -1
- package/src/lib/plugins/openapi/Endpoint.tsx +2 -0
- package/src/lib/plugins/openapi/ExampleDisplay.tsx +163 -0
- package/src/lib/plugins/openapi/OperationListItem.tsx +5 -3
- package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -1
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +11 -37
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +49 -63
- package/src/lib/plugins/openapi/Sidecar.tsx +2 -4
- package/src/lib/plugins/openapi/index.tsx +1 -0
- package/lib/AuthenticationPlugin-DVLEc6cm.js.map +0 -1
- package/lib/OperationList-c6V_vcgz.js.map +0 -1
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import * as Tabs from "@radix-ui/react-tabs";
|
|
2
|
-
import { SyntaxHighlight } from "../../components/SyntaxHighlight.js";
|
|
3
|
-
import { type SchemaObject } from "../../oas/graphql/index.js";
|
|
4
2
|
import { cn } from "../../util/cn.js";
|
|
5
|
-
import {
|
|
3
|
+
import { useSidecarExamples } from "./ExampleDisplay.js";
|
|
6
4
|
import type { OperationListItemResult } from "./OperationList.js";
|
|
7
5
|
import * as SidecarBox from "./SidecarBox.js";
|
|
8
|
-
import { generateSchemaExample } from "./util/generateSchemaExample.js";
|
|
9
6
|
|
|
10
7
|
type Responses = OperationListItemResult["responses"];
|
|
8
|
+
|
|
9
|
+
const ResponseContent = ({ response }: { response: Responses[number] }) => {
|
|
10
|
+
const { SidecarBody, SidebarFooter, hasContent } = useSidecarExamples({
|
|
11
|
+
content: response.content ?? [],
|
|
12
|
+
description: response.description ?? undefined,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<Tabs.Content value={response.statusCode}>
|
|
17
|
+
<SidecarBody />
|
|
18
|
+
{hasContent && <SidebarFooter />}
|
|
19
|
+
</Tabs.Content>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
22
|
+
|
|
11
23
|
export const ResponsesSidecarBox = ({
|
|
12
24
|
responses,
|
|
13
25
|
selectedResponse,
|
|
@@ -16,62 +28,36 @@ export const ResponsesSidecarBox = ({
|
|
|
16
28
|
responses: Responses;
|
|
17
29
|
selectedResponse?: string;
|
|
18
30
|
onSelectResponse: (response: string) => void;
|
|
19
|
-
}) =>
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return (
|
|
54
|
-
<Tabs.Content key={response.statusCode} value={response.statusCode}>
|
|
55
|
-
<SidecarBox.Body className="p-0">
|
|
56
|
-
<CollapsibleCode>
|
|
57
|
-
<SyntaxHighlight
|
|
58
|
-
language={example ? "json" : "plain"}
|
|
59
|
-
noBackground
|
|
60
|
-
className="[--scrollbar-color:gray] text-xs max-h-[500px] p-2"
|
|
61
|
-
code={
|
|
62
|
-
example
|
|
63
|
-
? JSON.stringify(example, null, 2)
|
|
64
|
-
: "Empty response"
|
|
65
|
-
}
|
|
66
|
-
/>
|
|
67
|
-
</CollapsibleCode>
|
|
68
|
-
</SidecarBox.Body>
|
|
69
|
-
<SidecarBox.Footer className="flex justify-end text-xs">
|
|
70
|
-
{response.description}
|
|
71
|
-
</SidecarBox.Footer>
|
|
72
|
-
</Tabs.Content>
|
|
73
|
-
);
|
|
74
|
-
})}
|
|
75
|
-
</Tabs.Root>
|
|
76
|
-
</SidecarBox.Root>
|
|
77
|
-
);
|
|
31
|
+
}) => {
|
|
32
|
+
return (
|
|
33
|
+
<SidecarBox.Root>
|
|
34
|
+
<Tabs.Root
|
|
35
|
+
defaultValue={responses[0]?.statusCode}
|
|
36
|
+
value={selectedResponse}
|
|
37
|
+
onValueChange={(value) => onSelectResponse(value)}
|
|
38
|
+
>
|
|
39
|
+
<SidecarBox.Head className="text-xs flex flex-col gap-2 pb-0">
|
|
40
|
+
<span className="font-mono">Example Responses</span>
|
|
41
|
+
<Tabs.List className="flex gap-2">
|
|
42
|
+
{responses.map((response) => (
|
|
43
|
+
<Tabs.Trigger
|
|
44
|
+
key={response.statusCode}
|
|
45
|
+
value={response.statusCode}
|
|
46
|
+
className={cn(
|
|
47
|
+
"text-xs font-mono px-1.5 py-1 pb-px translate-y-px border-b-2 border-transparent rounded-t cursor-pointer",
|
|
48
|
+
"data-[state=active]:text-primary data-[state=active]:dark:text-inherit data-[state=active]:border-primary",
|
|
49
|
+
"hover:border-accent-foreground/25",
|
|
50
|
+
)}
|
|
51
|
+
>
|
|
52
|
+
{response.statusCode}
|
|
53
|
+
</Tabs.Trigger>
|
|
54
|
+
))}
|
|
55
|
+
</Tabs.List>
|
|
56
|
+
</SidecarBox.Head>
|
|
57
|
+
{responses.map((response) => (
|
|
58
|
+
<ResponseContent key={response.statusCode} response={response} />
|
|
59
|
+
))}
|
|
60
|
+
</Tabs.Root>
|
|
61
|
+
</SidecarBox.Root>
|
|
62
|
+
);
|
|
63
|
+
};
|
|
@@ -191,10 +191,8 @@ export const Sidecar = ({
|
|
|
191
191
|
</span>
|
|
192
192
|
{isOnScreen && (
|
|
193
193
|
<PlaygroundDialogWrapper
|
|
194
|
-
server={result.data.schema.url
|
|
195
|
-
servers={
|
|
196
|
-
result.data.schema.servers.map((server) => server.url) ?? []
|
|
197
|
-
}
|
|
194
|
+
server={result.data.schema.url}
|
|
195
|
+
servers={result.data.schema.servers.map((server) => server.url)}
|
|
198
196
|
operation={operation}
|
|
199
197
|
/>
|
|
200
198
|
)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticationPlugin-DVLEc6cm.js","sources":["../src/lib/authentication/components/SignIn.tsx","../src/lib/authentication/components/SignOut.tsx","../src/lib/authentication/components/SignUp.tsx","../src/lib/authentication/AuthenticationPlugin.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useSearchParams } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignIn = () => {\n const context = useZudoku();\n const [search] = useSearchParams();\n useEffect(() => {\n void context.authentication?.signIn({\n redirectTo: search.get(\"redirect\") ?? undefined,\n });\n }, [context.authentication, search]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignOut = () => {\n const context = useZudoku();\n const navigate = useNavigate();\n useEffect(() => {\n void context.authentication?.signOut().then(() => navigate(\"/\"));\n }, [navigate, context.authentication]);\n\n return null;\n};\n","import { useEffect } from \"react\";\nimport { useZudoku } from \"../../components/context/ZudokuContext.js\";\n\nexport const SignUp = () => {\n const context = useZudoku();\n useEffect(() => {\n void (context.authentication?.signUp() ?? context.authentication?.signIn());\n }, [context.authentication]);\n\n return null;\n};\n","import { LogOutIcon } from \"lucide-react\";\nimport {\n CommonPlugin,\n NavigationPlugin,\n ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class AuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n }\n}\n"],"names":["SignIn","context","useZudoku","search","useSearchParams","useEffect","_a","SignOut","navigate","useNavigate","SignUp","_b","AuthenticationPlugin","LogOutIcon"],"mappings":";;;;;AAIO,MAAMA,IAAS,MAAM;AAC1B,QAAMC,IAAUC,EAAU,GACpB,CAACC,CAAM,IAAIC,EAAgB;AACjC,SAAAC,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,OAAO;AAAA,MAClC,YAAYH,EAAO,IAAI,UAAU,KAAK;AAAA,IAAA;AAAA,EAEvC,GAAA,CAACF,EAAQ,gBAAgBE,CAAM,CAAC,GAE5B;AACT,GCVaI,IAAU,MAAM;AAC3B,QAAMN,IAAUC,EAAU,GACpBM,IAAWC,EAAY;AAC7B,SAAAJ,EAAU,MAAM;;AACT,KAAAC,IAAAL,EAAQ,mBAAR,QAAAK,EAAwB,UAAU,KAAK,MAAME,EAAS,GAAG;AAAA,EAC7D,GAAA,CAACA,GAAUP,EAAQ,cAAc,CAAC,GAE9B;AACT,GCTaS,IAAS,MAAM;AAC1B,QAAMT,IAAUC,EAAU;AAC1B,SAAAG,EAAU,MAAM;;AACd,MAAMC,IAAAL,EAAQ,mBAAR,gBAAAK,EAAwB,eAAYK,IAAAV,EAAQ,mBAAR,QAAAU,EAAwB;AAAA,EAAO,GACxE,CAACV,EAAQ,cAAc,CAAC,GAEpB;AACT;ACEO,MAAMW,EAAgD;AAAA,EAC3D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUL,GAAQ,CAAA,CAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUP,GAAO,CAAA,CAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUU,GAAO,CAAA,CAAA;AAAA,MAAA;AAAA,IAErB;AAAA,EAAA;AAAA,EAGF,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMG;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEJ;"}
|