zudoku 0.3.0-dev.77 → 0.3.0-dev.78

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 (90) hide show
  1. package/dist/config/validators/validate.d.ts +130 -130
  2. package/dist/lib/components/DevPortal.js +11 -2
  3. package/dist/lib/components/DevPortal.js.map +1 -1
  4. package/dist/lib/components/Heading.d.ts +1 -1
  5. package/dist/lib/core/plugins.d.ts +3 -0
  6. package/dist/lib/core/plugins.js +1 -0
  7. package/dist/lib/core/plugins.js.map +1 -1
  8. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.d.ts +2 -1
  9. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +8 -16
  10. package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
  11. package/dist/lib/plugins/openapi/Sidecar.js +18 -1
  12. package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
  13. package/dist/lib/plugins/openapi/graphql/gql.d.ts +6 -6
  14. package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
  15. package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
  16. package/dist/lib/plugins/openapi/graphql/graphql.d.ts +15 -15
  17. package/dist/lib/plugins/openapi/graphql/graphql.js +67 -67
  18. package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
  19. package/dist/lib/plugins/openapi/index.js +8 -0
  20. package/dist/lib/plugins/openapi/index.js.map +1 -1
  21. package/dist/lib/plugins/openapi/playground/PathParams.d.ts +2 -3
  22. package/dist/lib/plugins/openapi/playground/PathParams.js +3 -4
  23. package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
  24. package/dist/lib/plugins/openapi/playground/Playground.d.ts +22 -10
  25. package/dist/lib/plugins/openapi/playground/Playground.js +37 -25
  26. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  27. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.d.ts +2 -1
  28. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
  29. package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
  30. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +3 -2
  31. package/dist/lib/plugins/openapi/playground/QueryParams.js +10 -5
  32. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  33. package/dist/lib/util/fetchTimeout.d.ts +1 -0
  34. package/dist/lib/util/fetchTimeout.js +14 -0
  35. package/dist/lib/util/fetchTimeout.js.map +1 -0
  36. package/lib/{CategoryHeading-D0V23fMT.js → CategoryHeading-DCmchnA1.js} +2 -2
  37. package/lib/{CategoryHeading-D0V23fMT.js.map → CategoryHeading-DCmchnA1.js.map} +1 -1
  38. package/lib/{Combination-CgxP9BB4.js → Combination-BIdpLnWg.js} +27 -33
  39. package/lib/Combination-BIdpLnWg.js.map +1 -0
  40. package/lib/DeveloperHint-DQVwIery.js +10 -0
  41. package/lib/DeveloperHint-DQVwIery.js.map +1 -0
  42. package/lib/{Input-BcZoDid4.js → Input-qyZciIJp.js} +3 -3
  43. package/lib/{Input-BcZoDid4.js.map → Input-qyZciIJp.js.map} +1 -1
  44. package/lib/{Markdown-IsabnbGN.js → Markdown-QsZ-PHET.js} +3 -3
  45. package/lib/{Markdown-IsabnbGN.js.map → Markdown-QsZ-PHET.js.map} +1 -1
  46. package/lib/{MdxPage-B1B2Inj5.js → MdxPage-V4FCB0C_.js} +3 -3
  47. package/lib/{MdxPage-B1B2Inj5.js.map → MdxPage-V4FCB0C_.js.map} +1 -1
  48. package/lib/OperationList-qfNEBPAx.js +4397 -0
  49. package/lib/OperationList-qfNEBPAx.js.map +1 -0
  50. package/lib/{Route-D0Ub80Oa.js → Route-CogU1ofM.js} +2 -2
  51. package/lib/{Route-D0Ub80Oa.js.map → Route-CogU1ofM.js.map} +1 -1
  52. package/lib/{SlotletProvider-CJXWb2gw.js → SlotletProvider-D_Vz-7c_.js} +4 -4
  53. package/lib/{SlotletProvider-CJXWb2gw.js.map → SlotletProvider-D_Vz-7c_.js.map} +1 -1
  54. package/lib/Spinner-yPSFgoZ8.js +244 -0
  55. package/lib/Spinner-yPSFgoZ8.js.map +1 -0
  56. package/lib/index-BpO_SgPQ.js +124 -0
  57. package/lib/index-BpO_SgPQ.js.map +1 -0
  58. package/lib/index-DccqEFTy.js +1878 -0
  59. package/lib/index-DccqEFTy.js.map +1 -0
  60. package/lib/{urql-DMlBWUKL.js → urql-DrBfkb92.js} +2 -3
  61. package/lib/{urql-DMlBWUKL.js.map → urql-DrBfkb92.js.map} +1 -1
  62. package/lib/zudoku.components.js +352 -348
  63. package/lib/zudoku.components.js.map +1 -1
  64. package/lib/zudoku.openapi-worker.js +1 -1
  65. package/lib/zudoku.plugin-api-keys.js +7 -6
  66. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  67. package/lib/zudoku.plugin-custom-page.js +1 -1
  68. package/lib/zudoku.plugin-markdown.js +1 -1
  69. package/lib/zudoku.plugin-openapi.js +5 -4
  70. package/lib/zudoku.plugin-openapi.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/lib/components/DevPortal.tsx +14 -5
  73. package/src/lib/core/plugins.ts +7 -0
  74. package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +9 -17
  75. package/src/lib/plugins/openapi/Sidecar.tsx +23 -1
  76. package/src/lib/plugins/openapi/graphql/gql.ts +8 -8
  77. package/src/lib/plugins/openapi/graphql/graphql.ts +80 -80
  78. package/src/lib/plugins/openapi/index.tsx +15 -0
  79. package/src/lib/plugins/openapi/playground/PathParams.tsx +14 -20
  80. package/src/lib/plugins/openapi/playground/Playground.tsx +69 -45
  81. package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +8 -6
  82. package/src/lib/plugins/openapi/playground/QueryParams.tsx +86 -72
  83. package/src/lib/util/fetchTimeout.tsx +21 -0
  84. package/lib/Combination-CgxP9BB4.js.map +0 -1
  85. package/lib/OperationList-B2nsuf1v.js +0 -5471
  86. package/lib/OperationList-B2nsuf1v.js.map +0 -1
  87. package/lib/Spinner-BhtSoFka.js +0 -359
  88. package/lib/Spinner-BhtSoFka.js.map +0 -1
  89. package/lib/index-BC2Ob2BR.js +0 -727
  90. package/lib/index-BC2Ob2BR.js.map +0 -1
@@ -9,12 +9,18 @@ import { Button } from "../../../ui/Button.js";
9
9
  import { Input } from "../../../ui/Input.js";
10
10
  import { cn } from "../../../util/cn.js";
11
11
  import { InlineInput } from "./InlineInput.js";
12
- import type { PlaygroundForm } from "./Playground.js";
12
+ import {
13
+ NO_IDENTITY,
14
+ type PlaygroundForm,
15
+ type QueryParam,
16
+ } from "./Playground.js";
13
17
 
14
18
  export const QueryParams = ({
15
19
  control,
20
+ queryParams,
16
21
  }: {
17
22
  control: Control<PlaygroundForm>;
23
+ queryParams: QueryParam[];
18
24
  }) => {
19
25
  const { fields } = useFieldArray<PlaygroundForm>({
20
26
  control,
@@ -22,93 +28,101 @@ export const QueryParams = ({
22
28
  });
23
29
  const form = useFormContext<PlaygroundForm>();
24
30
 
25
- const requiredFields = form
26
- .getValues("queryParams")
27
- .map((param) => param.isRequired);
31
+ const requiredFields = queryParams.map((param) => Boolean(param.isRequired));
32
+
33
+ const selectedIdentity = form.watch("identity");
34
+ const hasSelectedIdentity = selectedIdentity !== NO_IDENTITY;
28
35
 
29
36
  return (
30
37
  <div className="">
31
38
  <table className="w-full [&_td]:border [&_td]:p-1.5 [&_td]:px-2">
32
39
  <tbody>
33
- {fields.map((field, i) => (
34
- <tr key={field.id} className="hover:bg-accent/40">
35
- <td className="text-center">
36
- <Controller
37
- control={control}
38
- name={`queryParams.${i}.active`}
39
- render={({ field }) => (
40
- <input
41
- type="checkbox"
42
- id={`queryParams.${i}.active`}
43
- checked={field.value}
44
- onChange={field.onChange}
45
- />
46
- )}
47
- />
48
- </td>
49
- <td>
50
- <Controller
51
- control={control}
52
- render={({ field }) => (
53
- <InlineInput asChild>
54
- <label
55
- className="flex items-center cursor-pointer"
56
- htmlFor={`queryParams.${i}.active`}
57
- title={requiredFields[i] ? "Required field" : undefined}
58
- >
59
- {field.value}
60
- {requiredFields[i] && <sup>&nbsp;*</sup>}
61
- </label>
62
- </InlineInput>
63
- )}
64
- name={`queryParams.${i}.name`}
65
- />
66
- </td>
67
- <td>
68
- <div className="flex justify-between items-center">
40
+ {fields
41
+ .filter(
42
+ // TODO remove this hack for Accu or make it more generic
43
+ (field) => !(hasSelectedIdentity && field.name === "apikey"),
44
+ )
45
+ .map((field, i) => (
46
+ <tr key={field.id} className="hover:bg-accent/40">
47
+ <td className="text-center">
69
48
  <Controller
70
49
  control={control}
50
+ name={`queryParams.${i}.active`}
71
51
  render={({ field }) => (
72
- <Input
73
- {...field}
74
- onChange={(e) => {
75
- field.onChange(e.target.value);
76
- if (e.target.value.length > 0) {
77
- form.setValue(`queryParams.${i}.active`, true);
78
- }
79
- }}
80
- placeholder="Enter value"
81
- className="w-full border-0 shadow-none text-xs font-mono"
52
+ <input
53
+ type="checkbox"
54
+ id={`queryParams.${i}.active`}
55
+ checked={field.value}
56
+ onChange={field.onChange}
82
57
  />
83
58
  )}
84
- name={`queryParams.${i}.value`}
85
59
  />
60
+ </td>
61
+ <td>
86
62
  <Controller
87
63
  control={control}
88
64
  render={({ field }) => (
89
- <Button
90
- size="icon"
91
- type="button"
92
- variant="ghost"
93
- aria-label="Clear value"
94
- className={cn(
95
- "ms-2",
96
- field.value.length === 0
97
- ? "opacity-0 pointer-events-none"
98
- : "opacity-100",
99
- )}
100
- title="Clear value"
101
- onClick={() => field.onChange("")}
102
- >
103
- <EraserIcon size={16} />
104
- </Button>
65
+ <InlineInput asChild>
66
+ <label
67
+ className="flex items-center cursor-pointer"
68
+ htmlFor={`queryParams.${i}.active`}
69
+ title={
70
+ requiredFields[i] ? "Required field" : undefined
71
+ }
72
+ >
73
+ {field.value}
74
+ {requiredFields[i] && <sup>&nbsp;*</sup>}
75
+ </label>
76
+ </InlineInput>
105
77
  )}
106
- name={`queryParams.${i}.value`}
78
+ name={`queryParams.${i}.name`}
107
79
  />
108
- </div>
109
- </td>
110
- </tr>
111
- ))}
80
+ </td>
81
+ <td>
82
+ <div className="flex justify-between items-center">
83
+ <Controller
84
+ control={control}
85
+ render={({ field }) => (
86
+ <Input
87
+ {...field}
88
+ onChange={(e) => {
89
+ field.onChange(e.target.value);
90
+ if (e.target.value.length > 0) {
91
+ form.setValue(`queryParams.${i}.active`, true);
92
+ }
93
+ }}
94
+ placeholder="Enter value"
95
+ className="w-full border-0 shadow-none text-xs font-mono"
96
+ />
97
+ )}
98
+ name={`queryParams.${i}.value`}
99
+ />
100
+ <Controller
101
+ control={control}
102
+ render={({ field }) => (
103
+ <Button
104
+ size="icon"
105
+ type="button"
106
+ variant="ghost"
107
+ aria-label="Clear value"
108
+ className={cn(
109
+ "ms-2",
110
+ field.value.length === 0
111
+ ? "opacity-0 pointer-events-none"
112
+ : "opacity-100",
113
+ )}
114
+ title="Clear value"
115
+ onClick={() => field.onChange("")}
116
+ >
117
+ <EraserIcon size={16} />
118
+ </Button>
119
+ )}
120
+ name={`queryParams.${i}.value`}
121
+ />
122
+ </div>
123
+ </td>
124
+ </tr>
125
+ ))}
112
126
  </tbody>
113
127
  </table>
114
128
  </div>
@@ -0,0 +1,21 @@
1
+ export const fetchTimeout = async (
2
+ input: RequestInfo,
3
+ init?: RequestInit,
4
+ timeout = 5000,
5
+ ): Promise<Response> => {
6
+ const controller = new AbortController();
7
+ const signal = controller.signal;
8
+
9
+ const fetchPromise = fetch(input, { ...init, signal });
10
+
11
+ const timeoutPromise = new Promise<Response>((_, reject) => {
12
+ const timer = setTimeout(() => {
13
+ controller.abort("Request timed out");
14
+ reject(new Error("Request timed out"));
15
+ }, timeout);
16
+
17
+ void fetchPromise.finally(() => clearTimeout(timer));
18
+ });
19
+
20
+ return Promise.race([fetchPromise, timeoutPromise]);
21
+ };