zudoku 0.3.0-dev.54 → 0.3.0-dev.55

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.
Files changed (121) hide show
  1. package/lib/AnchorLink-BaXHjhF-.js +989 -0
  2. package/lib/{AnchorLink-BCN_a_Uz.js.map → AnchorLink-BaXHjhF-.js.map} +1 -1
  3. package/lib/Combination-BfufJFkX.js +1365 -0
  4. package/lib/{Combination-B0Iu6mhJ.js.map → Combination-BfufJFkX.js.map} +1 -1
  5. package/lib/DevPortalProvider-GjdO0Xr-.js +1610 -0
  6. package/lib/{DevPortalProvider-Do9oJqme.js.map → DevPortalProvider-GjdO0Xr-.js.map} +1 -1
  7. package/lib/Markdown-B8nPVql1.js +19708 -0
  8. package/lib/Markdown-B8nPVql1.js.map +1 -0
  9. package/lib/MdxPage-Dlujuj-J.js +223 -0
  10. package/lib/{MdxPage-Bsc79cD-.js.map → MdxPage-Dlujuj-J.js.map} +1 -1
  11. package/lib/OperationList-krPgt6sE.js +8041 -0
  12. package/lib/{OperationList-K-JWBxau.js.map → OperationList-krPgt6sE.js.map} +1 -1
  13. package/lib/Playground-DOHxca0P.js +539 -0
  14. package/lib/{Playground-Czy7ha9z.js.map → Playground-DOHxca0P.js.map} +1 -1
  15. package/lib/Route-CR6TEwVC.js +13 -0
  16. package/lib/{Route-D-egsGHx.js.map → Route-CR6TEwVC.js.map} +1 -1
  17. package/lib/Select-Boi_pe3L.js +5298 -0
  18. package/lib/{Select-CcBbwJ2R.js.map → Select-Boi_pe3L.js.map} +1 -1
  19. package/lib/Spinner-oU0QJmi_.js +16 -0
  20. package/lib/{Spinner-C9_Opdev.js.map → Spinner-oU0QJmi_.js.map} +1 -1
  21. package/lib/_commonjsHelpers-BxmBWJD2.js +34 -0
  22. package/lib/_commonjsHelpers-BxmBWJD2.js.map +1 -0
  23. package/lib/assets/index-CpIig0AX.js +6341 -0
  24. package/lib/{index-pI9JkN46.js.map → assets/index-CpIig0AX.js.map} +1 -1
  25. package/lib/assets/worker-B5k2aBV9.js +18921 -0
  26. package/lib/assets/{worker-BjPv-hjP.js.map → worker-B5k2aBV9.js.map} +1 -1
  27. package/lib/context-BoN_3uxi.js +17 -0
  28. package/lib/{context-_fYfJFgk.js.map → context-BoN_3uxi.js.map} +1 -1
  29. package/lib/hook-CIuFuyBT.js +90 -0
  30. package/lib/{hook-CKqQERWo.js.map → hook-CIuFuyBT.js.map} +1 -1
  31. package/lib/index-BL1P4Gqq.js +280 -0
  32. package/lib/{index-ByHya67R.js.map → index-BL1P4Gqq.js.map} +1 -1
  33. package/lib/index-Bn03IPZt.js +6341 -0
  34. package/lib/{assets/index-BPdJm2ty.js.map → index-Bn03IPZt.js.map} +1 -1
  35. package/lib/{index-jsFBaizC.js → index-Dih8IAqw.js} +103 -83
  36. package/lib/{index-jsFBaizC.js.map → index-Dih8IAqw.js.map} +1 -1
  37. package/lib/index-FprhHF51.js +253 -0
  38. package/lib/{index-DseBZFJ-.js.map → index-FprhHF51.js.map} +1 -1
  39. package/lib/jsx-runtime-DvZ6OKMM.js +2110 -0
  40. package/lib/{jsx-runtime-CJZJivg2.js.map → jsx-runtime-DvZ6OKMM.js.map} +1 -1
  41. package/lib/mutation-DWY9x2Uc.js +250 -0
  42. package/lib/{mutation-DjbQSHzT.js.map → mutation-DWY9x2Uc.js.map} +1 -1
  43. package/lib/prism-bash.min-BtBk0onv.js +7 -0
  44. package/lib/{prism-bash.min-DadFsM4Z.js.map → prism-bash.min-BtBk0onv.js.map} +1 -1
  45. package/lib/prism-csharp.min-Cv7D49bv.js +30 -0
  46. package/lib/{prism-csharp.min-Yizuc34Y.js.map → prism-csharp.min-Cv7D49bv.js.map} +1 -1
  47. package/lib/prism-java.min-tNK-JX6x.js +7 -0
  48. package/lib/{prism-java.min-d5iT_mOd.js.map → prism-java.min-tNK-JX6x.js.map} +1 -1
  49. package/lib/prism-json.min-Cdtv-CME.js +2 -0
  50. package/lib/{prism-json.min-B1GJqK1k.js.map → prism-json.min-Cdtv-CME.js.map} +1 -1
  51. package/lib/prism-markup-templating-iotg2sCU.js +94 -0
  52. package/lib/{prism-markup-templating-DZrrEs0A.js.map → prism-markup-templating-iotg2sCU.js.map} +1 -1
  53. package/lib/prism-objectivec.min-CY4WGixz.js +2 -0
  54. package/lib/{prism-objectivec.min-BXSWqpJJ.js.map → prism-objectivec.min-CY4WGixz.js.map} +1 -1
  55. package/lib/prism-php.min-T6sIVgED.js +11 -0
  56. package/lib/{prism-php.min-o7FpoMP_.js.map → prism-php.min-T6sIVgED.js.map} +1 -1
  57. package/lib/prism-ruby.min-B-2KAa4y.js +8 -0
  58. package/lib/{prism-ruby.min-C7LwcKyz.js.map → prism-ruby.min-B-2KAa4y.js.map} +1 -1
  59. package/lib/router-ButO1QyY.js +4062 -0
  60. package/lib/{router-CBw2vqJE.js.map → router-ButO1QyY.js.map} +1 -1
  61. package/lib/slugify-CmS97Vy8.js +50 -0
  62. package/lib/{slugify-CiPVjteN.js.map → slugify-CmS97Vy8.js.map} +1 -1
  63. package/lib/state-CmGfNKhR.js +436 -0
  64. package/lib/{state-DKdaQzvh.js.map → state-CmGfNKhR.js.map} +1 -1
  65. package/lib/urql-DtVKPBx_.js +2567 -0
  66. package/lib/{urql-DEKdguFl.js.map → urql-DtVKPBx_.js.map} +1 -1
  67. package/lib/util-B5KX4h4M.js +55 -0
  68. package/lib/{util-_jwUlTBU.js.map → util-B5KX4h4M.js.map} +1 -1
  69. package/lib/zudoku.auth-auth0.js +24 -18
  70. package/lib/zudoku.auth-auth0.js.map +1 -1
  71. package/lib/zudoku.auth-clerk.js +43 -34
  72. package/lib/zudoku.auth-clerk.js.map +1 -1
  73. package/lib/zudoku.auth-openid.js +1121 -734
  74. package/lib/zudoku.auth-openid.js.map +1 -1
  75. package/lib/zudoku.components.js +1076 -823
  76. package/lib/zudoku.components.js.map +1 -1
  77. package/lib/zudoku.openapi-worker.js +13776 -9681
  78. package/lib/zudoku.openapi-worker.js.map +1 -1
  79. package/lib/zudoku.plugin-api-keys.js +206 -165
  80. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  81. package/lib/zudoku.plugin-markdown.js +41 -33
  82. package/lib/zudoku.plugin-markdown.js.map +1 -1
  83. package/lib/zudoku.plugin-openapi.js +6 -6
  84. package/lib/zudoku.plugin-redirect.js +10 -8
  85. package/lib/zudoku.plugin-redirect.js.map +1 -1
  86. package/package.json +1 -1
  87. package/lib/AnchorLink-BCN_a_Uz.js +0 -705
  88. package/lib/Combination-B0Iu6mhJ.js +0 -915
  89. package/lib/DevPortalProvider-Do9oJqme.js +0 -1081
  90. package/lib/Markdown-aE_XoLNs.js +0 -15030
  91. package/lib/Markdown-aE_XoLNs.js.map +0 -1
  92. package/lib/MdxPage-Bsc79cD-.js +0 -190
  93. package/lib/OperationList-K-JWBxau.js +0 -5091
  94. package/lib/Playground-Czy7ha9z.js +0 -502
  95. package/lib/Route-D-egsGHx.js +0 -13
  96. package/lib/Select-CcBbwJ2R.js +0 -3667
  97. package/lib/Spinner-C9_Opdev.js +0 -15
  98. package/lib/_commonjsHelpers-BVfed4GL.js +0 -29
  99. package/lib/_commonjsHelpers-BVfed4GL.js.map +0 -1
  100. package/lib/assets/index-BPdJm2ty.js +0 -4765
  101. package/lib/assets/worker-BjPv-hjP.js +0 -14897
  102. package/lib/context-_fYfJFgk.js +0 -14
  103. package/lib/hook-CKqQERWo.js +0 -77
  104. package/lib/index-ByHya67R.js +0 -207
  105. package/lib/index-DseBZFJ-.js +0 -170
  106. package/lib/index-pI9JkN46.js +0 -4765
  107. package/lib/jsx-runtime-CJZJivg2.js +0 -1526
  108. package/lib/mutation-DjbQSHzT.js +0 -208
  109. package/lib/prism-bash.min-DadFsM4Z.js +0 -7
  110. package/lib/prism-csharp.min-Yizuc34Y.js +0 -35
  111. package/lib/prism-java.min-d5iT_mOd.js +0 -7
  112. package/lib/prism-json.min-B1GJqK1k.js +0 -2
  113. package/lib/prism-markup-templating-DZrrEs0A.js +0 -62
  114. package/lib/prism-objectivec.min-BXSWqpJJ.js +0 -2
  115. package/lib/prism-php.min-o7FpoMP_.js +0 -11
  116. package/lib/prism-ruby.min-C7LwcKyz.js +0 -10
  117. package/lib/router-CBw2vqJE.js +0 -2973
  118. package/lib/slugify-CiPVjteN.js +0 -28
  119. package/lib/state-DKdaQzvh.js +0 -288
  120. package/lib/urql-DEKdguFl.js +0 -1592
  121. package/lib/util-_jwUlTBU.js +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"Playground-Czy7ha9z.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":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","createUrl","host","path","data","url","v","_a","part","param","createVariantComponent","tag","cvx","MyVariant","asChild","Comp","Slot","InlineInput","Headers","control","register","fields","append","remove","useFieldArray","selectedIdentity","useWatch","liveHeaders","disableAuth","NO_IDENTITY","jsxs","header","i","isDisabledByAuth","TriangleAlertIcon","XIcon","Button","ParameterValue","forwardRef","color","usePastellizedColor","PathParams","DATA_ATTR","QueryParams","requiredFields","useFormContext","field","Controller","GetServerQuery","graphql","mimeTypeToLanguage","mimeType","mime","statusCodeMap","Playground","method","headers","queryParams","pathParams","hasParams","variables","useOasConfig","server","useQuery","handleSubmit","watch","form","useForm","formState","identities","useApiIdentities","queryMutation","useMutation","requestUrl","start","request","h","_c","_b","response","body","arr","Fragment","ColorizedParam","p","lang","headerEntries","urlQueryParams","FormProvider","Tabs","TabsList","TabsTrigger","Select","value","SelectTrigger","Spinner","SelectValue","SelectContent","SelectItem","identity","TabsContent","SyntaxHighlight","key"],"mappings":"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"}
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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"}
@@ -0,0 +1,13 @@
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
@@ -1 +1 @@
1
- {"version":3,"file":"Route-D-egsGHx.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["OpenApiRoute","config","client","jsx","Provider","OasConfigProvider","Outlet"],"mappings":";;;AAMO,SAASA,EAAa;AAAA,EAC3B,QAAAC;AAAA,EACA,QAAAC;AACF,GAGG;AACD,SACGC,gBAAAA,EAAAA,IAAAC,GAAA,EAAS,OAAOF,GACf,UAACC,gBAAAA,EAAA,IAAAE,GAAA,EAAkB,OAAO,EAAE,QAAAJ,EAAO,GACjC,UAACE,gBAAAA,EAAA,IAAAG,GAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Route-CR6TEwVC.js","sources":["../src/lib/plugins/openapi/Route.tsx"],"sourcesContent":["import { Outlet } from \"react-router-dom\";\nimport { OasConfigProvider } from \"./context.js\";\nimport { OasPluginConfig } from \"./interfaces.js\";\n\nimport { Provider, Client as UrqlClient } from \"./util/urql.js\";\n\nexport function OpenApiRoute({\n config,\n client,\n}: {\n config: OasPluginConfig;\n client: typeof UrqlClient;\n}) {\n return (\n <Provider value={client}>\n <OasConfigProvider value={{ config }}>\n <Outlet />\n </OasConfigProvider>\n </Provider>\n );\n}\n"],"names":["jsx"],"mappings":";;;AAMO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AACF,GAGG;AACD,SACGA,kCAAAA,IAAA,UAAA,EAAS,OAAO,QACf,UAACA,kCAAA,IAAA,mBAAA,EAAkB,OAAO,EAAE,OAAO,GACjC,UAACA,kCAAA,IAAA,QAAA,EAAO,GACV,EACF,CAAA;AAEJ;"}