zudoku 0.3.0-dev.55 → 0.3.0-dev.56
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/validate.d.ts +12 -12
- package/dist/lib/components/DeveloperHint.d.ts +5 -0
- package/dist/lib/components/DeveloperHint.js +10 -0
- package/dist/lib/components/DeveloperHint.js.map +1 -0
- package/dist/lib/components/NotFoundPage.js +2 -2
- package/dist/lib/components/NotFoundPage.js.map +1 -1
- package/dist/lib/plugins/api-keys/ProtectedRoute.d.ts +1 -0
- package/dist/lib/plugins/api-keys/ProtectedRoute.js +14 -0
- package/dist/lib/plugins/api-keys/ProtectedRoute.js.map +1 -0
- package/dist/lib/plugins/api-keys/index.js +2 -12
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +2 -2
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -3
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/lib/AnchorLink-GNsUeGSX.js +705 -0
- package/lib/{AnchorLink-BaXHjhF-.js.map → AnchorLink-GNsUeGSX.js.map} +1 -1
- package/lib/Button-DpHMZvVs.js +4571 -0
- package/lib/Button-DpHMZvVs.js.map +1 -0
- package/lib/DevPortalProvider-Do9oJqme.js +1081 -0
- package/lib/{DevPortalProvider-GjdO0Xr-.js.map → DevPortalProvider-Do9oJqme.js.map} +1 -1
- package/lib/Markdown-DtLFdxD1.js +15031 -0
- package/lib/Markdown-DtLFdxD1.js.map +1 -0
- package/lib/MdxPage-CbwYRKf5.js +190 -0
- package/lib/{MdxPage-Dlujuj-J.js.map → MdxPage-CbwYRKf5.js.map} +1 -1
- package/lib/OperationList-DpR4KzIJ.js +5570 -0
- package/lib/OperationList-DpR4KzIJ.js.map +1 -0
- package/lib/Route-C1LyvITr.js +13 -0
- package/lib/{Route-CR6TEwVC.js.map → Route-C1LyvITr.js.map} +1 -1
- package/lib/Spinner-Bhbs5aPI.js +182 -0
- package/lib/Spinner-Bhbs5aPI.js.map +1 -0
- package/lib/_commonjsHelpers-BVfed4GL.js +29 -0
- package/lib/_commonjsHelpers-BVfed4GL.js.map +1 -0
- package/lib/assets/index-BPdJm2ty.js +4765 -0
- package/lib/assets/{index-CpIig0AX.js.map → index-BPdJm2ty.js.map} +1 -1
- package/lib/assets/worker-BjPv-hjP.js +14897 -0
- package/lib/assets/{worker-B5k2aBV9.js.map → worker-BjPv-hjP.js.map} +1 -1
- package/lib/context-_fYfJFgk.js +14 -0
- package/lib/{context-BoN_3uxi.js.map → context-_fYfJFgk.js.map} +1 -1
- package/lib/hook-Biq3zYel.js +92 -0
- package/lib/hook-Biq3zYel.js.map +1 -0
- package/lib/{index-Dih8IAqw.js → index-DZ910ttL.js} +83 -103
- package/lib/{index-Dih8IAqw.js.map → index-DZ910ttL.js.map} +1 -1
- package/lib/index-gsAuUwQh.js +418 -0
- package/lib/index-gsAuUwQh.js.map +1 -0
- package/lib/index-pI9JkN46.js +4765 -0
- package/lib/{index-Bn03IPZt.js.map → index-pI9JkN46.js.map} +1 -1
- package/lib/jsx-runtime-CJZJivg2.js +1526 -0
- package/lib/{jsx-runtime-DvZ6OKMM.js.map → jsx-runtime-CJZJivg2.js.map} +1 -1
- package/lib/prism-bash.min-DadFsM4Z.js +7 -0
- package/lib/{prism-bash.min-BtBk0onv.js.map → prism-bash.min-DadFsM4Z.js.map} +1 -1
- package/lib/prism-csharp.min-Yizuc34Y.js +35 -0
- package/lib/{prism-csharp.min-Cv7D49bv.js.map → prism-csharp.min-Yizuc34Y.js.map} +1 -1
- package/lib/prism-java.min-d5iT_mOd.js +7 -0
- package/lib/{prism-java.min-tNK-JX6x.js.map → prism-java.min-d5iT_mOd.js.map} +1 -1
- package/lib/prism-json.min-B1GJqK1k.js +2 -0
- package/lib/{prism-json.min-Cdtv-CME.js.map → prism-json.min-B1GJqK1k.js.map} +1 -1
- package/lib/prism-markup-templating-DZrrEs0A.js +62 -0
- package/lib/{prism-markup-templating-iotg2sCU.js.map → prism-markup-templating-DZrrEs0A.js.map} +1 -1
- package/lib/prism-objectivec.min-BXSWqpJJ.js +2 -0
- package/lib/{prism-objectivec.min-CY4WGixz.js.map → prism-objectivec.min-BXSWqpJJ.js.map} +1 -1
- package/lib/prism-php.min-o7FpoMP_.js +11 -0
- package/lib/{prism-php.min-T6sIVgED.js.map → prism-php.min-o7FpoMP_.js.map} +1 -1
- package/lib/prism-ruby.min-C7LwcKyz.js +10 -0
- package/lib/{prism-ruby.min-B-2KAa4y.js.map → prism-ruby.min-C7LwcKyz.js.map} +1 -1
- package/lib/router-CBw2vqJE.js +2973 -0
- package/lib/{router-ButO1QyY.js.map → router-CBw2vqJE.js.map} +1 -1
- package/lib/slugify-CiPVjteN.js +28 -0
- package/lib/{slugify-CmS97Vy8.js.map → slugify-CiPVjteN.js.map} +1 -1
- package/lib/state-DKdaQzvh.js +288 -0
- package/lib/{state-CmGfNKhR.js.map → state-DKdaQzvh.js.map} +1 -1
- package/lib/urql-DMlBWUKL.js +1592 -0
- package/lib/{urql-DtVKPBx_.js.map → urql-DMlBWUKL.js.map} +1 -1
- package/lib/util-_jwUlTBU.js +41 -0
- package/lib/{util-B5KX4h4M.js.map → util-_jwUlTBU.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +18 -24
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +34 -43
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +734 -1121
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +822 -1076
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.openapi-worker.js +9691 -13786
- package/lib/zudoku.openapi-worker.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +171 -208
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +33 -41
- package/lib/zudoku.plugin-markdown.js.map +1 -1
- package/lib/zudoku.plugin-openapi.js +6 -6
- package/lib/zudoku.plugin-redirect.js +8 -10
- package/lib/zudoku.plugin-redirect.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/DeveloperHint.tsx +25 -0
- package/src/lib/components/NotFoundPage.tsx +8 -14
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +29 -0
- package/src/lib/plugins/api-keys/index.tsx +2 -21
- package/src/lib/plugins/openapi/OperationList.tsx +5 -8
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +3 -5
- package/lib/AnchorLink-BaXHjhF-.js +0 -989
- package/lib/Combination-BfufJFkX.js +0 -1365
- package/lib/Combination-BfufJFkX.js.map +0 -1
- package/lib/DevPortalProvider-GjdO0Xr-.js +0 -1610
- package/lib/Markdown-B8nPVql1.js +0 -19708
- package/lib/Markdown-B8nPVql1.js.map +0 -1
- package/lib/MdxPage-Dlujuj-J.js +0 -223
- package/lib/OperationList-krPgt6sE.js +0 -8041
- package/lib/OperationList-krPgt6sE.js.map +0 -1
- package/lib/Playground-DOHxca0P.js +0 -539
- package/lib/Playground-DOHxca0P.js.map +0 -1
- package/lib/Route-CR6TEwVC.js +0 -13
- package/lib/Select-Boi_pe3L.js +0 -5298
- package/lib/Select-Boi_pe3L.js.map +0 -1
- package/lib/Spinner-oU0QJmi_.js +0 -16
- package/lib/Spinner-oU0QJmi_.js.map +0 -1
- package/lib/_commonjsHelpers-BxmBWJD2.js +0 -34
- package/lib/_commonjsHelpers-BxmBWJD2.js.map +0 -1
- package/lib/assets/index-CpIig0AX.js +0 -6341
- package/lib/assets/worker-B5k2aBV9.js +0 -18921
- package/lib/context-BoN_3uxi.js +0 -17
- package/lib/hook-CIuFuyBT.js +0 -90
- package/lib/hook-CIuFuyBT.js.map +0 -1
- package/lib/index-BL1P4Gqq.js +0 -280
- package/lib/index-BL1P4Gqq.js.map +0 -1
- package/lib/index-Bn03IPZt.js +0 -6341
- package/lib/index-FprhHF51.js +0 -253
- package/lib/index-FprhHF51.js.map +0 -1
- package/lib/jsx-runtime-DvZ6OKMM.js +0 -2110
- package/lib/mutation-DWY9x2Uc.js +0 -250
- package/lib/mutation-DWY9x2Uc.js.map +0 -1
- package/lib/prism-bash.min-BtBk0onv.js +0 -7
- package/lib/prism-csharp.min-Cv7D49bv.js +0 -30
- package/lib/prism-java.min-tNK-JX6x.js +0 -7
- package/lib/prism-json.min-Cdtv-CME.js +0 -2
- package/lib/prism-markup-templating-iotg2sCU.js +0 -94
- package/lib/prism-objectivec.min-CY4WGixz.js +0 -2
- package/lib/prism-php.min-T6sIVgED.js +0 -11
- package/lib/prism-ruby.min-B-2KAa4y.js +0 -8
- package/lib/router-ButO1QyY.js +0 -4062
- package/lib/slugify-CmS97Vy8.js +0 -50
- package/lib/state-CmGfNKhR.js +0 -436
- package/lib/urql-DtVKPBx_.js +0 -2567
- package/lib/util-B5KX4h4M.js +0 -55
|
@@ -1,539 +0,0 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports } from "./jsx-runtime-DvZ6OKMM.js";
|
|
2
|
-
import { g as useFieldArray, h as useWatch, i as useFormContext, C as Controller, u as useForm, a as useMutation, F as FormProvider, S as Select, b as SelectTrigger, c as SelectValue, d as SelectContent, f as SelectItem } from "./Select-Boi_pe3L.js";
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import { forwardRef, Fragment } from "react";
|
|
5
|
-
import { a as useQuery } from "./urql-DtVKPBx_.js";
|
|
6
|
-
import { v as useApiIdentities } from "./DevPortalProvider-GjdO0Xr-.js";
|
|
7
|
-
import { S as Spinner } from "./Spinner-oU0QJmi_.js";
|
|
8
|
-
import { e as cn, j as TriangleAlert, S as SyntaxHighlight } from "./Markdown-B8nPVql1.js";
|
|
9
|
-
import { B as Button } from "./Combination-BfufJFkX.js";
|
|
10
|
-
import { X, u as usePastellizedColor, D as DATA_ATTR, C as ColorizedParam, T as Tabs, a as TabsList, b as TabsTrigger, c as TabsContent } from "./OperationList-krPgt6sE.js";
|
|
11
|
-
import { u as useOasConfig } from "./context-BoN_3uxi.js";
|
|
12
|
-
import { g as graphql } from "./index-Dih8IAqw.js";
|
|
13
|
-
import { S as Slot } from "./index-BL1P4Gqq.js";
|
|
14
|
-
const Card = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
15
|
-
"div",
|
|
16
|
-
{
|
|
17
|
-
ref,
|
|
18
|
-
className: cn(
|
|
19
|
-
"rounded-xl border border-border bg-card text-card-foreground shadow",
|
|
20
|
-
className
|
|
21
|
-
),
|
|
22
|
-
...props
|
|
23
|
-
}
|
|
24
|
-
));
|
|
25
|
-
Card.displayName = "Card";
|
|
26
|
-
const CardHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
27
|
-
"div",
|
|
28
|
-
{
|
|
29
|
-
ref,
|
|
30
|
-
className: cn("flex flex-col space-y-1.5 p-6", className),
|
|
31
|
-
...props
|
|
32
|
-
}
|
|
33
|
-
));
|
|
34
|
-
CardHeader.displayName = "CardHeader";
|
|
35
|
-
const CardTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
36
|
-
"h3",
|
|
37
|
-
{
|
|
38
|
-
ref,
|
|
39
|
-
className: cn("font-semibold leading-none tracking-tight", className),
|
|
40
|
-
...props
|
|
41
|
-
}
|
|
42
|
-
));
|
|
43
|
-
CardTitle.displayName = "CardTitle";
|
|
44
|
-
const CardDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
45
|
-
"p",
|
|
46
|
-
{
|
|
47
|
-
ref,
|
|
48
|
-
className: cn("text-sm text-muted-foreground", className),
|
|
49
|
-
...props
|
|
50
|
-
}
|
|
51
|
-
));
|
|
52
|
-
CardDescription.displayName = "CardDescription";
|
|
53
|
-
const CardContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props }));
|
|
54
|
-
CardContent.displayName = "CardContent";
|
|
55
|
-
const CardFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56
|
-
"div",
|
|
57
|
-
{
|
|
58
|
-
ref,
|
|
59
|
-
className: cn("flex items-center p-6 pt-0", className),
|
|
60
|
-
...props
|
|
61
|
-
}
|
|
62
|
-
));
|
|
63
|
-
CardFooter.displayName = "CardFooter";
|
|
64
|
-
const createUrl = (host, path, data) => {
|
|
65
|
-
const url = new URL(
|
|
66
|
-
host + path.split("/").map(
|
|
67
|
-
(v) => {
|
|
68
|
-
var _a;
|
|
69
|
-
return v.startsWith("{") && v.endsWith("}") ? ((_a = data.pathParams.find((part) => part.name === v.slice(1, -1))) == null ? void 0 : _a.value) ?? v : v;
|
|
70
|
-
}
|
|
71
|
-
).join("/")
|
|
72
|
-
);
|
|
73
|
-
data.queryParams.forEach((param) => {
|
|
74
|
-
url.searchParams.set(param.name, param.value);
|
|
75
|
-
});
|
|
76
|
-
return url;
|
|
77
|
-
};
|
|
78
|
-
const createVariantComponent = (tag, cvx) => {
|
|
79
|
-
const MyVariant = React.forwardRef(({ className, asChild, ...props }, ref) => {
|
|
80
|
-
const Comp = asChild ? Slot : tag;
|
|
81
|
-
return React.createElement(Comp, {
|
|
82
|
-
...props,
|
|
83
|
-
ref,
|
|
84
|
-
className: cn(cvx, className)
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
MyVariant.displayName = `VariantComponent(${tag})`;
|
|
88
|
-
return MyVariant;
|
|
89
|
-
};
|
|
90
|
-
const InlineInput = createVariantComponent(
|
|
91
|
-
"input",
|
|
92
|
-
"px-2 bg-transparent h-6 font-mono text-xs m-2"
|
|
93
|
-
);
|
|
94
|
-
const Headers = ({
|
|
95
|
-
control,
|
|
96
|
-
register
|
|
97
|
-
}) => {
|
|
98
|
-
const { fields, append, remove } = useFieldArray({
|
|
99
|
-
control,
|
|
100
|
-
name: "headers"
|
|
101
|
-
});
|
|
102
|
-
const selectedIdentity = useWatch({ name: "identity", control });
|
|
103
|
-
const liveHeaders = useWatch({ name: "headers", control });
|
|
104
|
-
const disableAuth = selectedIdentity !== NO_IDENTITY;
|
|
105
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto]", children: [
|
|
106
|
-
fields.map((header, i) => {
|
|
107
|
-
var _a;
|
|
108
|
-
const isDisabledByAuth = disableAuth && ((_a = liveHeaders.at(i)) == null ? void 0 : _a.name) === "Authorization";
|
|
109
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
110
|
-
"div",
|
|
111
|
-
{
|
|
112
|
-
className: cn(
|
|
113
|
-
"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group",
|
|
114
|
-
isDisabledByAuth && "line-through"
|
|
115
|
-
),
|
|
116
|
-
title: isDisabledByAuth ? "This header is disabled because authentication was selected" : void 0,
|
|
117
|
-
children: [
|
|
118
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
119
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
120
|
-
InlineInput,
|
|
121
|
-
{
|
|
122
|
-
...register(`headers.${i}.name`),
|
|
123
|
-
placeholder: "Name",
|
|
124
|
-
className: "peer",
|
|
125
|
-
autoComplete: "off"
|
|
126
|
-
}
|
|
127
|
-
),
|
|
128
|
-
isDisabledByAuth && /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { size: 16, className: "text-amber-500" })
|
|
129
|
-
] }),
|
|
130
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
131
|
-
InlineInput,
|
|
132
|
-
{
|
|
133
|
-
placeholder: "Value",
|
|
134
|
-
className: "peer",
|
|
135
|
-
...register(`headers.${i}.value`),
|
|
136
|
-
autoComplete: "off"
|
|
137
|
-
}
|
|
138
|
-
),
|
|
139
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
140
|
-
"button",
|
|
141
|
-
{
|
|
142
|
-
className: "hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible",
|
|
143
|
-
onClick: () => {
|
|
144
|
-
remove(i);
|
|
145
|
-
},
|
|
146
|
-
type: "button",
|
|
147
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 16 })
|
|
148
|
-
}
|
|
149
|
-
),
|
|
150
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "col-span-full border-b border-border" })
|
|
151
|
-
]
|
|
152
|
-
},
|
|
153
|
-
header.id
|
|
154
|
-
);
|
|
155
|
-
}),
|
|
156
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
157
|
-
Button,
|
|
158
|
-
{
|
|
159
|
-
className: "col-span-full mt-4",
|
|
160
|
-
onClick: () => append({ name: "", value: "" }),
|
|
161
|
-
type: "button",
|
|
162
|
-
children: "Add header"
|
|
163
|
-
}
|
|
164
|
-
)
|
|
165
|
-
] });
|
|
166
|
-
};
|
|
167
|
-
const ParameterValue = forwardRef(
|
|
168
|
-
function ParameterValue2({ part, className, ...props }, ref) {
|
|
169
|
-
const color = usePastellizedColor(part);
|
|
170
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
171
|
-
InlineInput,
|
|
172
|
-
{
|
|
173
|
-
...props,
|
|
174
|
-
ref,
|
|
175
|
-
className: cn(className, "opacity-80 data-[active=true]:opacity-100"),
|
|
176
|
-
style: {
|
|
177
|
-
// color: `hsl(${color})`,
|
|
178
|
-
outlineColor: `hsl(${color})`
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
);
|
|
184
|
-
const PathParams = ({
|
|
185
|
-
control,
|
|
186
|
-
register
|
|
187
|
-
}) => {
|
|
188
|
-
const { fields } = useFieldArray({
|
|
189
|
-
control,
|
|
190
|
-
name: "pathParams"
|
|
191
|
-
});
|
|
192
|
-
return fields.map((part, i) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
193
|
-
"div",
|
|
194
|
-
{
|
|
195
|
-
className: "grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group",
|
|
196
|
-
children: [
|
|
197
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
198
|
-
InlineInput,
|
|
199
|
-
{
|
|
200
|
-
...register(`pathParams.${i}.name`),
|
|
201
|
-
disabled: true,
|
|
202
|
-
placeholder: "Name",
|
|
203
|
-
className: "peer"
|
|
204
|
-
}
|
|
205
|
-
),
|
|
206
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
207
|
-
ParameterValue,
|
|
208
|
-
{
|
|
209
|
-
...register(`pathParams.${i}.value`),
|
|
210
|
-
part: part.name,
|
|
211
|
-
...{ [DATA_ATTR]: part.name },
|
|
212
|
-
placeholder: "Value",
|
|
213
|
-
className: "peer"
|
|
214
|
-
}
|
|
215
|
-
),
|
|
216
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "col-span-full border-b border-border" })
|
|
217
|
-
]
|
|
218
|
-
},
|
|
219
|
-
part.id
|
|
220
|
-
));
|
|
221
|
-
};
|
|
222
|
-
const QueryParams = ({
|
|
223
|
-
control
|
|
224
|
-
}) => {
|
|
225
|
-
const { fields } = useFieldArray({
|
|
226
|
-
control,
|
|
227
|
-
name: "queryParams"
|
|
228
|
-
});
|
|
229
|
-
const form = useFormContext();
|
|
230
|
-
const requiredFields = form.getValues(`queryParams`).map((param) => param.isRequired);
|
|
231
|
-
return fields.map((field, i) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
232
|
-
"div",
|
|
233
|
-
{
|
|
234
|
-
className: "px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group",
|
|
235
|
-
children: [
|
|
236
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
237
|
-
Controller,
|
|
238
|
-
{
|
|
239
|
-
control,
|
|
240
|
-
name: `queryParams.${i}.active`,
|
|
241
|
-
render: ({ field: field2 }) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
242
|
-
"input",
|
|
243
|
-
{
|
|
244
|
-
type: "checkbox",
|
|
245
|
-
id: `queryParams.${i}.active`,
|
|
246
|
-
checked: field2.value,
|
|
247
|
-
onChange: field2.onChange
|
|
248
|
-
}
|
|
249
|
-
)
|
|
250
|
-
}
|
|
251
|
-
),
|
|
252
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
253
|
-
Controller,
|
|
254
|
-
{
|
|
255
|
-
control,
|
|
256
|
-
render: ({ field: field2 }) => {
|
|
257
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(InlineInput, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
258
|
-
"label",
|
|
259
|
-
{
|
|
260
|
-
className: "flex items-center",
|
|
261
|
-
htmlFor: `queryParams.${i}.active`,
|
|
262
|
-
title: requiredFields[i] ? "Required field" : void 0,
|
|
263
|
-
children: [
|
|
264
|
-
field2.value,
|
|
265
|
-
requiredFields[i] && /* @__PURE__ */ jsxRuntimeExports.jsx("sup", { className: "text-destructive", children: "*" })
|
|
266
|
-
]
|
|
267
|
-
}
|
|
268
|
-
) });
|
|
269
|
-
},
|
|
270
|
-
name: `queryParams.${i}.name`
|
|
271
|
-
}
|
|
272
|
-
),
|
|
273
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
274
|
-
Controller,
|
|
275
|
-
{
|
|
276
|
-
control,
|
|
277
|
-
render: ({ field: field2 }) => {
|
|
278
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(InlineInput, { ...field2, placeholder: "Value", className: "peer" });
|
|
279
|
-
},
|
|
280
|
-
name: `queryParams.${i}.value`
|
|
281
|
-
}
|
|
282
|
-
),
|
|
283
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
284
|
-
Controller,
|
|
285
|
-
{
|
|
286
|
-
control,
|
|
287
|
-
render: ({ field: field2 }) => {
|
|
288
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
289
|
-
"button",
|
|
290
|
-
{
|
|
291
|
-
type: "button",
|
|
292
|
-
className: cn(
|
|
293
|
-
"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible",
|
|
294
|
-
field2.value.length === 0 && "opacity-0 pointer-events-none"
|
|
295
|
-
),
|
|
296
|
-
onClick: () => field2.onChange(""),
|
|
297
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(X, { size: 16 })
|
|
298
|
-
}
|
|
299
|
-
);
|
|
300
|
-
},
|
|
301
|
-
name: `queryParams.${i}.value`
|
|
302
|
-
}
|
|
303
|
-
),
|
|
304
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "-mx-2 col-span-full border-b border-border" })
|
|
305
|
-
]
|
|
306
|
-
},
|
|
307
|
-
field.id
|
|
308
|
-
));
|
|
309
|
-
};
|
|
310
|
-
const NO_IDENTITY = "__none";
|
|
311
|
-
const GetServerQuery = graphql(
|
|
312
|
-
/* GraphQL */
|
|
313
|
-
`
|
|
314
|
-
query getServerQuery($input: JSON!, $type: SchemaType!) {
|
|
315
|
-
schema(input: $input, type: $type) {
|
|
316
|
-
url
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
`
|
|
320
|
-
);
|
|
321
|
-
function mimeTypeToLanguage(mimeType) {
|
|
322
|
-
var _a;
|
|
323
|
-
const mimeTypeMapping = {
|
|
324
|
-
"application/json": "json",
|
|
325
|
-
"text/json": "json",
|
|
326
|
-
"text/html": "html",
|
|
327
|
-
"text/css": "css",
|
|
328
|
-
"text/javascript": "javascript",
|
|
329
|
-
"application/xml": "xml",
|
|
330
|
-
"application/xhtml+xml": "xhtml",
|
|
331
|
-
"text/plain": "plain"
|
|
332
|
-
};
|
|
333
|
-
return (_a = Object.entries(mimeTypeMapping).find(
|
|
334
|
-
([mime]) => mimeType.includes(mime)
|
|
335
|
-
)) == null ? void 0 : _a[0][1];
|
|
336
|
-
}
|
|
337
|
-
const statusCodeMap = {
|
|
338
|
-
200: "OK",
|
|
339
|
-
201: "Created",
|
|
340
|
-
202: "Accepted",
|
|
341
|
-
204: "No Content",
|
|
342
|
-
400: "Bad Request",
|
|
343
|
-
401: "Unauthorized",
|
|
344
|
-
403: "Forbidden",
|
|
345
|
-
404: "Not Found",
|
|
346
|
-
405: "Method Not Allowed",
|
|
347
|
-
500: "Internal Server Error"
|
|
348
|
-
};
|
|
349
|
-
const Playground = ({
|
|
350
|
-
url,
|
|
351
|
-
method,
|
|
352
|
-
headers = [{ name: "", value: "" }],
|
|
353
|
-
queryParams = [],
|
|
354
|
-
pathParams = [],
|
|
355
|
-
hasParams
|
|
356
|
-
}) => {
|
|
357
|
-
var _a, _b, _c;
|
|
358
|
-
const variables = useOasConfig();
|
|
359
|
-
const [server] = useQuery({ query: GetServerQuery, variables });
|
|
360
|
-
const { register, control, handleSubmit, watch, ...form } = useForm({
|
|
361
|
-
defaultValues: {
|
|
362
|
-
body: "",
|
|
363
|
-
queryParams,
|
|
364
|
-
headers,
|
|
365
|
-
pathParams,
|
|
366
|
-
identity: NO_IDENTITY
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
const formState = watch();
|
|
370
|
-
const identities = useApiIdentities();
|
|
371
|
-
const queryMutation = useMutation({
|
|
372
|
-
mutationFn: async (data) => {
|
|
373
|
-
var _a2, _b2, _c2;
|
|
374
|
-
const requestUrl = createUrl(((_a2 = server.data) == null ? void 0 : _a2.schema.url) ?? "", url, data);
|
|
375
|
-
const start = performance.now();
|
|
376
|
-
const request = new Request(requestUrl, {
|
|
377
|
-
method: method.toUpperCase(),
|
|
378
|
-
headers: Object.fromEntries(
|
|
379
|
-
data.headers.filter((h) => h.name).map((header) => [header.name, header.value])
|
|
380
|
-
)
|
|
381
|
-
});
|
|
382
|
-
if (data.identity !== NO_IDENTITY) {
|
|
383
|
-
(_c2 = (_b2 = identities.data) == null ? void 0 : _b2.find((i) => i.id === data.identity)) == null ? void 0 : _c2.authorizeRequest(request);
|
|
384
|
-
}
|
|
385
|
-
const response = await fetch(request);
|
|
386
|
-
const body = await response.text();
|
|
387
|
-
return {
|
|
388
|
-
status: response.status,
|
|
389
|
-
headers: response.headers,
|
|
390
|
-
size: body.length,
|
|
391
|
-
body,
|
|
392
|
-
time: performance.now() - start
|
|
393
|
-
};
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
const path = url.split("/").map((part, i, arr) => {
|
|
397
|
-
var _a2;
|
|
398
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
399
|
-
part.startsWith("{") && part.endsWith("}") ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
400
|
-
ColorizedParam,
|
|
401
|
-
{
|
|
402
|
-
name: part,
|
|
403
|
-
backgroundOpacity: "0",
|
|
404
|
-
slug: part.slice(1, -1),
|
|
405
|
-
children: (_a2 = formState.pathParams.find((p) => p.name === part.slice(1, -1))) == null ? void 0 : _a2.value
|
|
406
|
-
}
|
|
407
|
-
) : part,
|
|
408
|
-
i < arr.length - 1 && "/",
|
|
409
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("wbr", {})
|
|
410
|
-
] }, part);
|
|
411
|
-
});
|
|
412
|
-
const lang = mimeTypeToLanguage(
|
|
413
|
-
((_a = queryMutation.data) == null ? void 0 : _a.headers.get("Content-Type")) ?? ""
|
|
414
|
-
);
|
|
415
|
-
const headerEntries = Array.from(((_b = queryMutation.data) == null ? void 0 : _b.headers.entries()) ?? []);
|
|
416
|
-
const urlQueryParams = formState.queryParams.filter((p) => p.active).map((p) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
417
|
-
p.name,
|
|
418
|
-
"=",
|
|
419
|
-
p.value,
|
|
420
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("wbr", {})
|
|
421
|
-
] }, p.name));
|
|
422
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(FormProvider, { ...{ register, control, handleSubmit, watch, ...form }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("form", { onSubmit: handleSubmit((data) => queryMutation.mutateAsync(data)), children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 text-sm h-full", children: [
|
|
423
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto", children: [
|
|
424
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2 items-stretch", children: [
|
|
425
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-1 items-center w-full border rounded-md border-border", children: [
|
|
426
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono", children: method.toUpperCase() }),
|
|
427
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-2 font-mono text-xs", children: [
|
|
428
|
-
path,
|
|
429
|
-
urlQueryParams.length > 0 ? "?" : "",
|
|
430
|
-
urlQueryParams
|
|
431
|
-
] })
|
|
432
|
-
] }),
|
|
433
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Button, { type: "submit", className: "h-auto flex gap-1", children: "Send" })
|
|
434
|
-
] }),
|
|
435
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tabs, { defaultValue: hasParams ? "parameters" : "headers", children: [
|
|
436
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between", children: [
|
|
437
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsList, { children: [
|
|
438
|
-
hasParams && /* @__PURE__ */ jsxRuntimeExports.jsx(TabsTrigger, { value: "parameters", children: "Parameters" }),
|
|
439
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsTrigger, { value: "headers", children: [
|
|
440
|
-
"Headers",
|
|
441
|
-
" ",
|
|
442
|
-
formState.headers.length > 0 && `(${formState.headers.length})`
|
|
443
|
-
] }),
|
|
444
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
445
|
-
TabsTrigger,
|
|
446
|
-
{
|
|
447
|
-
value: "body",
|
|
448
|
-
disabled: ["POST", "PUT", "PATCH", "DELETE"].includes(
|
|
449
|
-
method.toUpperCase()
|
|
450
|
-
),
|
|
451
|
-
children: "Body"
|
|
452
|
-
}
|
|
453
|
-
)
|
|
454
|
-
] }),
|
|
455
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2 items-center", children: [
|
|
456
|
-
"Auth:",
|
|
457
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
458
|
-
Select,
|
|
459
|
-
{
|
|
460
|
-
onValueChange: (value) => form.setValue("identity", value),
|
|
461
|
-
defaultValue: formState.identity,
|
|
462
|
-
children: [
|
|
463
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "w-[180px] flex", children: identities.isPending ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
|
|
464
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(SelectContent, { align: "center", children: [
|
|
465
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: NO_IDENTITY, children: "None" }),
|
|
466
|
-
(_c = identities.data) == null ? void 0 : _c.map((identity) => /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItem, { value: identity.id, children: identity.label }, identity.id))
|
|
467
|
-
] })
|
|
468
|
-
]
|
|
469
|
-
}
|
|
470
|
-
)
|
|
471
|
-
] })
|
|
472
|
-
] }),
|
|
473
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "headers", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Headers, { control, register }) }),
|
|
474
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "parameters", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-[min-content_1fr_1fr_auto]", children: [
|
|
475
|
-
pathParams.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-semibold my-3 col-span-3", children: "Path Parameters" }),
|
|
476
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(PathParams, { control, register }),
|
|
477
|
-
queryParams.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-semibold my-3 col-span-3", children: "Query Parameters" }),
|
|
478
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(QueryParams, { control })
|
|
479
|
-
] }) }),
|
|
480
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "body", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
481
|
-
"textarea",
|
|
482
|
-
{
|
|
483
|
-
...register("body"),
|
|
484
|
-
className: "border border-border w-full rounded p-2 bg-muted h-40"
|
|
485
|
-
}
|
|
486
|
-
) })
|
|
487
|
-
] })
|
|
488
|
-
] }),
|
|
489
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-col gap-4 p-8 bg-muted/70", children: queryMutation.error ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: queryMutation.error.message }) : queryMutation.data ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
490
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex gap-2", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex text-xs gap-6", children: [
|
|
491
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
492
|
-
"Status: ",
|
|
493
|
-
queryMutation.data.status,
|
|
494
|
-
" ",
|
|
495
|
-
statusCodeMap[queryMutation.data.status] ?? ""
|
|
496
|
-
] }),
|
|
497
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
498
|
-
"Time: ",
|
|
499
|
-
queryMutation.data.time.toFixed(0),
|
|
500
|
-
"ms"
|
|
501
|
-
] }),
|
|
502
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
503
|
-
"Size: ",
|
|
504
|
-
queryMutation.data.size,
|
|
505
|
-
" B"
|
|
506
|
-
] })
|
|
507
|
-
] }) }),
|
|
508
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(Tabs, { defaultValue: "response", children: [
|
|
509
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(TabsList, { children: [
|
|
510
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsTrigger, { value: "response", children: "Response" }),
|
|
511
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsTrigger, { value: "headers", children: headerEntries.length ? `Headers (${headerEntries.length})` : "No headers" })
|
|
512
|
-
] }),
|
|
513
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "response", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Card, { className: "shadow-none p-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
514
|
-
SyntaxHighlight,
|
|
515
|
-
{
|
|
516
|
-
language: lang ?? "json",
|
|
517
|
-
noBackground: true,
|
|
518
|
-
className: "overflow-x-auto ",
|
|
519
|
-
code: queryMutation.data.body ?? JSON.stringify("")
|
|
520
|
-
}
|
|
521
|
-
) }) }),
|
|
522
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(TabsContent, { value: "headers", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Card, { className: "grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4", children: [
|
|
523
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-semibold", children: "Key" }),
|
|
524
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-semibold", children: "Value" }),
|
|
525
|
-
headerEntries.map(([key, value]) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
526
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: key }),
|
|
527
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: value })
|
|
528
|
-
] }, key))
|
|
529
|
-
] }) })
|
|
530
|
-
] })
|
|
531
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid place-items-center h-full", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-[16px] font-semibold text-muted-foreground", children: queryMutation.isPending ? /* @__PURE__ */ jsxRuntimeExports.jsx(Spinner, {}) : "Send a request first to see the response here" }) }) })
|
|
532
|
-
] }) }) });
|
|
533
|
-
};
|
|
534
|
-
export {
|
|
535
|
-
NO_IDENTITY,
|
|
536
|
-
Playground,
|
|
537
|
-
Playground as default
|
|
538
|
-
};
|
|
539
|
-
//# sourceMappingURL=Playground-DOHxca0P.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Playground-DOHxca0P.js","sources":["../src/lib/ui/Card.tsx","../src/lib/plugins/openapi/playground/createUrl.ts","../src/lib/util/createVariantComponent.tsx","../src/lib/plugins/openapi/playground/InlineInput.tsx","../src/lib/plugins/openapi/playground/Headers.tsx","../src/lib/plugins/openapi/playground/PathParams.tsx","../src/lib/plugins/openapi/playground/QueryParams.tsx","../src/lib/plugins/openapi/playground/Playground.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n","import type { PlaygroundForm } from \"./Playground.js\";\n\nexport const createUrl = (host: string, path: string, data: PlaygroundForm) => {\n const url = new URL(\n host +\n path\n .split(\"/\")\n .map((v) =>\n v.startsWith(\"{\") && v.endsWith(\"}\")\n ? data.pathParams.find((part) => part.name === v.slice(1, -1))\n ?.value ?? v\n : v,\n )\n .join(\"/\"),\n );\n\n data.queryParams.forEach((param) => {\n url.searchParams.set(param.name, param.value);\n });\n\n return url;\n};\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva } from \"class-variance-authority\";\nimport type { ClassValue } from \"clsx\";\nimport * as React from \"react\";\nimport type { JSX } from \"react/jsx-runtime\";\nimport { cn } from \"./cn.js\";\n\nconst createVariantComponent = <\n E extends keyof React.ReactHTML,\n C extends ReturnType<typeof cva>,\n>(\n tag: E,\n cvx: ClassValue | C,\n // variantProps: Array<keyof VariantProps<C>> = [],\n) => {\n const MyVariant = React.forwardRef<\n HTMLElement,\n JSX.IntrinsicElements[E] & { className?: ClassValue; asChild?: boolean }\n >(({ className, asChild, ...props }, ref) => {\n const Comp = asChild ? Slot : tag;\n\n return React.createElement(Comp, {\n ...props,\n ref,\n className:\n typeof cvx === \"function\" ? cvx({ className }) : cn(cvx, className),\n });\n });\n\n MyVariant.displayName = `VariantComponent(${tag})`;\n\n return MyVariant;\n};\n\nexport default createVariantComponent;\n","import createVariantComponent from \"../../../util/createVariantComponent.js\";\n\nexport const InlineInput = createVariantComponent(\n \"input\",\n \"px-2 bg-transparent h-6 font-mono text-xs m-2\",\n);\n","import { TriangleAlertIcon, XIcon } from \"lucide-react\";\nimport {\n Control,\n useFieldArray,\n UseFormRegister,\n useWatch,\n} from \"react-hook-form\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport { NO_IDENTITY, type PlaygroundForm } from \"./Playground.js\";\n\nexport const Headers = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields, append, remove } = useFieldArray<PlaygroundForm>({\n control,\n name: \"headers\",\n });\n const selectedIdentity = useWatch({ name: \"identity\", control });\n const liveHeaders = useWatch({ name: \"headers\", control });\n\n const disableAuth = selectedIdentity !== NO_IDENTITY;\n\n return (\n <div className=\"grid grid-cols-[1fr_1fr_auto]\">\n {fields.map((header, i) => {\n const isDisabledByAuth =\n disableAuth && liveHeaders.at(i)?.name === \"Authorization\";\n\n return (\n <div\n key={header.id}\n className={cn(\n \"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\",\n isDisabledByAuth && \"line-through\",\n )}\n title={\n isDisabledByAuth\n ? \"This header is disabled because authentication was selected\"\n : undefined\n }\n >\n <div className=\"flex gap-2 items-center\">\n <InlineInput\n {...register(`headers.${i}.name`)}\n placeholder=\"Name\"\n className=\"peer\"\n autoComplete=\"off\"\n />\n {isDisabledByAuth && (\n <TriangleAlertIcon size={16} className=\"text-amber-500\" />\n )}\n </div>\n <InlineInput\n placeholder={\"Value\"}\n className=\"peer\"\n {...register(`headers.${i}.value`)}\n autoComplete=\"off\"\n />\n <button\n className=\"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\"\n onClick={() => {\n remove(i);\n }}\n type=\"button\"\n >\n <XIcon size={16} />\n </button>\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n );\n })}\n <Button\n className=\"col-span-full mt-4\"\n onClick={() => append({ name: \"\", value: \"\" })}\n type=\"button\"\n >\n Add header\n </Button>\n </div>\n );\n};\n","import { forwardRef, InputHTMLAttributes } from \"react\";\nimport { Control, useFieldArray, UseFormRegister } from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { DATA_ATTR, usePastellizedColor } from \"../ColorizedParam.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\ntype ParameterValueProps = {\n part: string;\n} & InputHTMLAttributes<HTMLInputElement>;\n\nconst ParameterValue = forwardRef<HTMLInputElement, ParameterValueProps>(\n function ParameterValue({ part, className, ...props }, ref) {\n const color = usePastellizedColor(part);\n return (\n <InlineInput\n {...props}\n ref={ref}\n className={cn(className, \"opacity-80 data-[active=true]:opacity-100\")}\n style={{\n // color: `hsl(${color})`,\n outlineColor: `hsl(${color})`,\n }}\n />\n );\n },\n);\n\nexport const PathParams = ({\n control,\n register,\n}: {\n register: UseFormRegister<PlaygroundForm>;\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"pathParams\",\n });\n\n return fields.map((part, i) => (\n <div\n key={part.id}\n className=\"grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-muted rounded overflow-hidden group\"\n >\n <InlineInput\n {...register(`pathParams.${i}.name`)}\n disabled\n placeholder=\"Name\"\n className=\"peer\"\n />\n <ParameterValue\n {...register(`pathParams.${i}.value`)}\n part={part.name}\n {...{ [DATA_ATTR]: part.name }}\n placeholder=\"Value\"\n className=\"peer\"\n />\n\n <div className=\"col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { XIcon } from \"lucide-react\";\nimport {\n Control,\n Controller,\n useFieldArray,\n useFormContext,\n} from \"react-hook-form\";\nimport { cn } from \"../../../util/cn.js\";\nimport { InlineInput } from \"./InlineInput.js\";\nimport type { PlaygroundForm } from \"./Playground.js\";\n\nexport const QueryParams = ({\n control,\n}: {\n control: Control<PlaygroundForm>;\n}) => {\n const { fields } = useFieldArray<PlaygroundForm>({\n control,\n name: \"queryParams\",\n });\n const form = useFormContext<PlaygroundForm>();\n\n const requiredFields = form\n .getValues(`queryParams`)\n .map((param) => param.isRequired);\n\n return fields.map((field, i) => (\n <div\n key={field.id}\n className=\"px-2 grid-cols-subgrid col-span-full grid items-center gap-x-2 has-[:focus]:bg-muted hover:bg-accent rounded overflow-hidden group\"\n >\n <Controller\n control={control}\n name={`queryParams.${i}.active`}\n render={({ field }) => (\n <input\n type=\"checkbox\"\n id={`queryParams.${i}.active`}\n checked={field.value}\n onChange={field.onChange}\n />\n )}\n />\n\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput asChild>\n <label\n className=\"flex items-center\"\n htmlFor={`queryParams.${i}.active`}\n title={requiredFields[i] ? \"Required field\" : undefined}\n >\n {field.value}\n {requiredFields[i] && <sup className=\"text-destructive\">*</sup>}\n </label>\n </InlineInput>\n );\n }}\n name={`queryParams.${i}.name`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <InlineInput {...field} placeholder=\"Value\" className=\"peer\" />\n );\n }}\n name={`queryParams.${i}.value`}\n />\n <Controller\n control={control}\n render={({ field }) => {\n return (\n <button\n type=\"button\"\n className={cn(\n \"hover:bg-black/5 p-1 rounded mr-2 text-muted-foreground invisible group-hover:visible peer-focus:visible\",\n field.value.length === 0 && \"opacity-0 pointer-events-none\",\n )}\n onClick={() => field.onChange(\"\")}\n >\n <XIcon size={16} />\n </button>\n );\n }}\n name={`queryParams.${i}.value`}\n />\n\n <div className=\"-mx-2 col-span-full border-b border-border\"></div>\n </div>\n ));\n};\n","import { useMutation } from \"@tanstack/react-query\";\nimport { Fragment } from \"react\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useQuery } from \"urql\";\nimport { useApiIdentities } from \"../../../components/context/DevPortalProvider.js\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/Select.js\";\nimport { Spinner } from \"../../../components/Spinner.js\";\nimport { SyntaxHighlight } from \"../../../components/SyntaxHighlight.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"../../../ui/Tabs.js\";\nimport { ColorizedParam } from \"../ColorizedParam.js\";\nimport { useOasConfig } from \"../context.js\";\nimport { graphql } from \"../graphql/index.js\";\nimport { createUrl } from \"./createUrl.js\";\nimport { Headers } from \"./Headers.js\";\nimport { PathParams } from \"./PathParams.js\";\nimport { QueryParams } from \"./QueryParams.js\";\n\nexport const NO_IDENTITY = \"__none\";\n\nconst GetServerQuery = graphql(/* GraphQL */ `\n query getServerQuery($input: JSON!, $type: SchemaType!) {\n schema(input: $input, type: $type) {\n url\n }\n }\n`);\n\nfunction mimeTypeToLanguage(mimeType: string) {\n const mimeTypeMapping = {\n \"application/json\": \"json\",\n \"text/json\": \"json\",\n \"text/html\": \"html\",\n \"text/css\": \"css\",\n \"text/javascript\": \"javascript\",\n \"application/xml\": \"xml\",\n \"application/xhtml+xml\": \"xhtml\",\n \"text/plain\": \"plain\",\n } as const;\n\n return Object.entries(mimeTypeMapping).find(([mime]) =>\n mimeType.includes(mime),\n )?.[0][1];\n}\n\nconst statusCodeMap: Record<number, string> = {\n 200: \"OK\",\n 201: \"Created\",\n 202: \"Accepted\",\n 204: \"No Content\",\n 400: \"Bad Request\",\n 401: \"Unauthorized\",\n 403: \"Forbidden\",\n 404: \"Not Found\",\n 405: \"Method Not Allowed\",\n 500: \"Internal Server Error\",\n};\n\nexport type Header = {\n name: string;\n value: string;\n};\nexport type QueryParam = {\n name: string;\n value: string;\n active: boolean;\n isRequired: boolean;\n};\nexport type PathParam = {\n name: string;\n value: string;\n};\n\nexport type PlaygroundForm = {\n body: string;\n queryParams: QueryParam[];\n pathParams: PathParam[];\n headers: Header[];\n identity?: string;\n};\n\nexport type PlaygroundContentProps = {\n url: string;\n method: string;\n headers?: Header[];\n queryParams?: QueryParam[];\n pathParams?: PathParam[];\n hasParams: boolean;\n};\n\nexport const Playground = ({\n url,\n method,\n headers = [{ name: \"\", value: \"\" }],\n queryParams = [],\n pathParams = [],\n hasParams,\n}: PlaygroundContentProps) => {\n const variables = useOasConfig();\n const [server] = useQuery({ query: GetServerQuery, variables });\n\n const { register, control, handleSubmit, watch, ...form } =\n useForm<PlaygroundForm>({\n defaultValues: {\n body: \"\",\n queryParams,\n headers,\n pathParams,\n identity: NO_IDENTITY,\n },\n });\n const formState = watch();\n const identities = useApiIdentities();\n\n const queryMutation = useMutation({\n mutationFn: async (data: PlaygroundForm) => {\n const requestUrl = createUrl(server.data?.schema.url ?? \"\", url, data);\n const start = performance.now();\n\n const request = new Request(requestUrl, {\n method: method.toUpperCase(),\n headers: Object.fromEntries(\n data.headers\n .filter((h) => h.name)\n .map((header) => [header.name, header.value]),\n ),\n });\n\n if (data.identity !== NO_IDENTITY) {\n identities.data\n ?.find((i) => i.id === data.identity)\n ?.authorizeRequest(request);\n }\n const response = await fetch(request);\n\n const body = await response.text();\n\n return {\n status: response.status,\n headers: response.headers,\n size: body.length,\n body,\n time: performance.now() - start,\n };\n },\n });\n\n const path = url.split(\"/\").map((part, i, arr) => (\n <Fragment key={part}>\n {part.startsWith(\"{\") && part.endsWith(\"}\") ? (\n <ColorizedParam\n name={part}\n backgroundOpacity=\"0\"\n slug={part.slice(1, -1)}\n >\n {\n formState.pathParams.find((p) => p.name === part.slice(1, -1))\n ?.value\n }\n </ColorizedParam>\n ) : (\n part\n )}\n {i < arr.length - 1 && \"/\"}\n <wbr />\n </Fragment>\n ));\n\n const lang = mimeTypeToLanguage(\n queryMutation.data?.headers.get(\"Content-Type\") ?? \"\",\n );\n\n const headerEntries = Array.from(queryMutation.data?.headers.entries() ?? []);\n\n const urlQueryParams = formState.queryParams\n .filter((p) => p.active)\n .map((p) => (\n <Fragment key={p.name}>\n {p.name}={p.value}\n <wbr />\n </Fragment>\n ));\n return (\n <FormProvider {...{ register, control, handleSubmit, watch, ...form }}>\n <form onSubmit={handleSubmit((data) => queryMutation.mutateAsync(data))}>\n <div className=\"grid grid-cols-2 text-sm h-full\">\n <div className=\"flex flex-col gap-4 p-8 bg-muted/50 after:bg-muted-foreground/20 relative after:absolute after:w-px after:inset-0 after:left-auto\">\n <div className=\"flex gap-2 items-stretch\">\n <div className=\"flex flex-1 items-center w-full border rounded-md border-border\">\n <div className=\"border-r border-border p-2 bg-muted rounded-l-md self-stretch font-semibold font-mono\">\n {method.toUpperCase()}\n </div>\n <div className=\"p-2 font-mono text-xs\">\n {path}\n {urlQueryParams.length > 0 ? \"?\" : \"\"}\n {urlQueryParams}\n </div>\n </div>\n <Button type=\"submit\" className=\"h-auto flex gap-1\">\n Send\n </Button>\n </div>\n <Tabs defaultValue={hasParams ? \"parameters\" : \"headers\"}>\n <div className=\"flex justify-between\">\n <TabsList>\n {hasParams && (\n <TabsTrigger value=\"parameters\">Parameters</TabsTrigger>\n )}\n <TabsTrigger value=\"headers\">\n Headers{\" \"}\n {formState.headers.length > 0 &&\n `(${formState.headers.length})`}\n </TabsTrigger>\n <TabsTrigger\n value=\"body\"\n disabled={[\"POST\", \"PUT\", \"PATCH\", \"DELETE\"].includes(\n method.toUpperCase(),\n )}\n >\n Body\n </TabsTrigger>\n </TabsList>\n <div className=\"flex gap-2 items-center\">\n Auth:\n <Select\n onValueChange={(value) => form.setValue(\"identity\", value)}\n defaultValue={formState.identity}\n >\n <SelectTrigger className=\"w-[180px] flex\">\n {identities.isPending ? <Spinner /> : <SelectValue />}\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value={NO_IDENTITY}>None</SelectItem>\n {identities.data?.map((identity) => (\n <SelectItem key={identity.id} value={identity.id}>\n {identity.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n <TabsContent value=\"headers\">\n <Headers control={control} register={register} />\n </TabsContent>\n <TabsContent value=\"parameters\">\n <div className=\"grid grid-cols-[min-content_1fr_1fr_auto]\">\n {pathParams.length > 0 && (\n <div className=\"font-semibold my-3 col-span-3\">\n Path Parameters\n </div>\n )}\n <PathParams control={control} register={register} />\n {queryParams.length > 0 && (\n <span className=\"font-semibold my-3 col-span-3\">\n Query Parameters\n </span>\n )}\n <QueryParams control={control} />\n </div>\n </TabsContent>\n <TabsContent value=\"body\">\n <textarea\n {...register(\"body\")}\n className=\"border border-border w-full rounded p-2 bg-muted h-40\"\n />\n </TabsContent>\n </Tabs>\n </div>\n <div className=\"flex flex-col gap-4 p-8 bg-muted/70\">\n {queryMutation.error ? (\n <div>{queryMutation.error.message}</div>\n ) : queryMutation.data ? (\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex gap-2\">\n <div className=\"flex text-xs gap-6\">\n <div>\n Status: {queryMutation.data.status}{\" \"}\n {statusCodeMap[queryMutation.data.status] ?? \"\"}\n </div>\n <div>Time: {queryMutation.data.time.toFixed(0)}ms</div>\n <div>Size: {queryMutation.data.size} B</div>\n </div>\n </div>\n {/*<UrlDisplay host={host} path={url} />*/}\n <Tabs defaultValue=\"response\">\n <TabsList>\n <TabsTrigger value=\"response\">Response</TabsTrigger>\n <TabsTrigger value=\"headers\">\n {headerEntries.length\n ? `Headers (${headerEntries.length})`\n : \"No headers\"}\n </TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"response\">\n <Card className=\"shadow-none p-4\">\n <SyntaxHighlight\n language={lang ?? \"json\"}\n noBackground\n className=\"overflow-x-auto \"\n code={queryMutation.data.body ?? JSON.stringify(\"\")}\n />\n </Card>\n </TabsContent>\n <TabsContent value=\"headers\">\n <Card className=\"grid grid-cols-2 w-full gap-2.5 font-mono text-xs shadow-none p-4\">\n <div className=\"font-semibold\">Key</div>\n <div className=\"font-semibold\">Value</div>\n {headerEntries.map(([key, value]) => (\n <Fragment key={key}>\n <div>{key}</div>\n <div>{value}</div>\n </Fragment>\n ))}\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n ) : (\n <div className=\"grid place-items-center h-full\">\n <span className=\"text-[16px] font-semibold text-muted-foreground\">\n {queryMutation.isPending ? (\n <Spinner />\n ) : (\n \"Send a request first to see the response here\"\n )}\n </span>\n </div>\n )}\n </div>\n </div>\n </form>\n </FormProvider>\n );\n};\n\nexport default Playground;\n"],"names":["jsx","jsxs","TriangleAlertIcon","XIcon","ParameterValue","field","_a","_c","_b"],"mappings":"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"}
|
package/lib/Route-CR6TEwVC.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { j as jsxRuntimeExports, O as Outlet } from "./jsx-runtime-DvZ6OKMM.js";
|
|
2
|
-
import { O as OasConfigProvider } from "./context-BoN_3uxi.js";
|
|
3
|
-
import { P as Provider } from "./urql-DtVKPBx_.js";
|
|
4
|
-
function OpenApiRoute({
|
|
5
|
-
config,
|
|
6
|
-
client
|
|
7
|
-
}) {
|
|
8
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(Provider, { value: client, children: /* @__PURE__ */ jsxRuntimeExports.jsx(OasConfigProvider, { value: { config }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Outlet, {}) }) });
|
|
9
|
-
}
|
|
10
|
-
export {
|
|
11
|
-
OpenApiRoute
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=Route-CR6TEwVC.js.map
|