@kubb/plugin-svelte-query 3.16.2 → 3.16.4

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 (39) hide show
  1. package/dist/components-B3IxfIQc.js +487 -0
  2. package/dist/components-B3IxfIQc.js.map +1 -0
  3. package/dist/components-Bl5LenX1.cjs +545 -0
  4. package/dist/components-Bl5LenX1.cjs.map +1 -0
  5. package/dist/components.cjs +6 -27
  6. package/dist/components.d.cts +191 -85
  7. package/dist/components.d.ts +191 -85
  8. package/dist/components.js +3 -3
  9. package/dist/generators-B0aaCM9R.cjs +355 -0
  10. package/dist/generators-B0aaCM9R.cjs.map +1 -0
  11. package/dist/generators-CNk_QjGS.js +344 -0
  12. package/dist/generators-CNk_QjGS.js.map +1 -0
  13. package/dist/generators.cjs +4 -16
  14. package/dist/generators.d.cts +8 -9
  15. package/dist/generators.d.ts +8 -9
  16. package/dist/generators.js +4 -4
  17. package/dist/index.cjs +108 -136
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +6 -8
  20. package/dist/index.d.ts +6 -8
  21. package/dist/index.js +108 -130
  22. package/dist/index.js.map +1 -1
  23. package/dist/types-BmYdmD4y.d.ts +1361 -0
  24. package/dist/types-DGLdNNAs.d.cts +1361 -0
  25. package/package.json +23 -28
  26. package/dist/chunk-IRUWABQ4.js +0 -398
  27. package/dist/chunk-IRUWABQ4.js.map +0 -1
  28. package/dist/chunk-NPZ54AT7.cjs +0 -289
  29. package/dist/chunk-NPZ54AT7.cjs.map +0 -1
  30. package/dist/chunk-OJL7OC3Y.cjs +0 -404
  31. package/dist/chunk-OJL7OC3Y.cjs.map +0 -1
  32. package/dist/chunk-Y534JBKZ.js +0 -286
  33. package/dist/chunk-Y534JBKZ.js.map +0 -1
  34. package/dist/components.cjs.map +0 -1
  35. package/dist/components.js.map +0 -1
  36. package/dist/generators.cjs.map +0 -1
  37. package/dist/generators.js.map +0 -1
  38. package/dist/types-BIWbWacf.d.cts +0 -140
  39. package/dist/types-BIWbWacf.d.ts +0 -140
@@ -1,404 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('@kubb/react');
4
- var oas = require('@kubb/oas');
5
- var components = require('@kubb/plugin-client/components');
6
- var utils = require('@kubb/plugin-oas/utils');
7
- var utils$1 = require('@kubb/core/utils');
8
- var jsxRuntime = require('@kubb/react/jsx-runtime');
9
-
10
- // src/components/Mutation.tsx
11
- function getParams({}) {
12
- return react.FunctionParams.factory({});
13
- }
14
- var getTransformer = ({ operation, casing }) => {
15
- const path = new utils$1.URLPath(operation.path, { casing });
16
- return [JSON.stringify({ url: path.path })].filter(Boolean);
17
- };
18
- function MutationKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }) {
19
- const params = getParams({ });
20
- const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing });
21
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
22
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function.Arrow, { name, export: true, params: params.toConstructor(), singleLine: true, children: `[${keys.join(", ")}] as const` }) }),
23
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name: typeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Type, { name: typeName, export: true, children: `ReturnType<typeof ${name}>` }) })
24
- ] });
25
- }
26
- MutationKey.getParams = getParams;
27
- MutationKey.getTransformer = getTransformer;
28
- function getParams2({ paramsCasing, dataReturnType, typeSchemas }) {
29
- const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
30
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
31
- const mutationParams = react.FunctionParams.factory({
32
- ...utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
33
- data: typeSchemas.request?.name ? {
34
- type: typeSchemas.request?.name,
35
- optional: oas.isOptional(typeSchemas.request?.schema)
36
- } : void 0,
37
- params: typeSchemas.queryParams?.name ? {
38
- type: typeSchemas.queryParams?.name,
39
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
40
- } : void 0,
41
- headers: typeSchemas.headerParams?.name ? {
42
- type: typeSchemas.headerParams?.name,
43
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
44
- } : void 0
45
- });
46
- const TRequest = mutationParams.toConstructor();
47
- return react.FunctionParams.factory({
48
- options: {
49
- type: `
50
- {
51
- mutation?: CreateMutationOptions<${[TData, TError, TRequest ? `{${TRequest}}` : "void", "TContext"].join(", ")}> & { client?: QueryClient },
52
- client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"},
53
- }
54
- `,
55
- default: "{}"
56
- }
57
- });
58
- }
59
- function Mutation({
60
- name,
61
- clientName,
62
- paramsCasing,
63
- paramsType,
64
- pathParamsType,
65
- dataReturnType,
66
- typeSchemas,
67
- operation,
68
- mutationKeyName
69
- }) {
70
- const mutationKeyParams = MutationKey.getParams({
71
- pathParamsType,
72
- typeSchemas
73
- });
74
- const params = getParams2({
75
- paramsCasing,
76
- dataReturnType,
77
- typeSchemas
78
- });
79
- const clientParams = components.Client.getParams({
80
- paramsCasing,
81
- paramsType,
82
- typeSchemas,
83
- pathParamsType,
84
- isConfigurable: true
85
- });
86
- const mutationParams = react.FunctionParams.factory({
87
- ...utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
88
- data: typeSchemas.request?.name ? {
89
- type: typeSchemas.request?.name,
90
- optional: oas.isOptional(typeSchemas.request?.schema)
91
- } : void 0,
92
- params: typeSchemas.queryParams?.name ? {
93
- type: typeSchemas.queryParams?.name,
94
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
95
- } : void 0,
96
- headers: typeSchemas.headerParams?.name ? {
97
- type: typeSchemas.headerParams?.name,
98
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
99
- } : void 0
100
- });
101
- const dataParams = react.FunctionParams.factory({
102
- data: {
103
- // No use of pathParams because useMutation can only take one argument in object form,
104
- // see https://tanstack.com/query/latest/docs/framework/react/reference/useMutation#usemutation
105
- mode: "object",
106
- children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {
107
- if (value) {
108
- acc[key] = {
109
- ...value,
110
- type: void 0
111
- };
112
- }
113
- return acc;
114
- }, {})
115
- }
116
- });
117
- const TRequest = mutationParams.toConstructor();
118
- const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
119
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
120
- const generics = [TData, TError, TRequest ? `{${TRequest}}` : "void", "TContext"].join(", ");
121
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(
122
- react.Function,
123
- {
124
- name,
125
- export: true,
126
- params: params.toConstructor(),
127
- JSDoc: {
128
- comments: utils.getComments(operation)
129
- },
130
- generics: ["TContext"],
131
- children: `
132
- const { mutation = {}, client: config = {} } = options ?? {}
133
- const { client: queryClient, ...mutationOptions } = mutation;
134
- const mutationKey = mutationOptions?.mutationKey ?? ${mutationKeyName}(${mutationKeyParams.toCall()})
135
-
136
- return createMutation<${generics}>({
137
- mutationFn: async(${dataParams.toConstructor()}) => {
138
- return ${clientName}(${clientParams.toCall()})
139
- },
140
- mutationKey,
141
- ...mutationOptions
142
- }, queryClient)
143
- `
144
- }
145
- ) });
146
- }
147
- function getParams3({ pathParamsType, paramsCasing, typeSchemas }) {
148
- return react.FunctionParams.factory({
149
- pathParams: {
150
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
151
- children: utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing })
152
- },
153
- data: typeSchemas.request?.name ? {
154
- type: typeSchemas.request?.name,
155
- optional: oas.isOptional(typeSchemas.request?.schema)
156
- } : void 0,
157
- params: typeSchemas.queryParams?.name ? {
158
- type: typeSchemas.queryParams?.name,
159
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
160
- } : void 0
161
- });
162
- }
163
- var getTransformer2 = ({ operation, schemas, casing }) => {
164
- const path = new utils$1.URLPath(operation.path, { casing });
165
- const keys = [
166
- path.toObject({
167
- type: "path",
168
- stringify: true
169
- }),
170
- schemas.queryParams?.name ? "...(params ? [params] : [])" : void 0,
171
- schemas.request?.name ? "...(data ? [data] : [])" : void 0
172
- ].filter(Boolean);
173
- return keys;
174
- };
175
- function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer2 }) {
176
- const params = getParams3({ pathParamsType, paramsCasing, typeSchemas });
177
- const keys = transformer({
178
- operation,
179
- schemas: typeSchemas,
180
- casing: paramsCasing
181
- });
182
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
183
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function.Arrow, { name, export: true, params: params.toConstructor(), singleLine: true, children: `[${keys.join(", ")}] as const` }) }),
184
- /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name: typeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Type, { name: typeName, export: true, children: `ReturnType<typeof ${name}>` }) })
185
- ] });
186
- }
187
- QueryKey.getParams = getParams3;
188
- QueryKey.getTransformer = getTransformer2;
189
- function getParams4({ paramsType, paramsCasing, pathParamsType, typeSchemas }) {
190
- if (paramsType === "object") {
191
- return react.FunctionParams.factory({
192
- data: {
193
- mode: "object",
194
- children: {
195
- ...utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
196
- data: typeSchemas.request?.name ? {
197
- type: typeSchemas.request?.name,
198
- optional: oas.isOptional(typeSchemas.request?.schema)
199
- } : void 0,
200
- params: typeSchemas.queryParams?.name ? {
201
- type: typeSchemas.queryParams?.name,
202
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
203
- } : void 0,
204
- headers: typeSchemas.headerParams?.name ? {
205
- type: typeSchemas.headerParams?.name,
206
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
207
- } : void 0
208
- }
209
- },
210
- config: {
211
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
212
- default: "{}"
213
- }
214
- });
215
- }
216
- return react.FunctionParams.factory({
217
- pathParams: typeSchemas.pathParams?.name ? {
218
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
219
- children: utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
220
- optional: oas.isOptional(typeSchemas.pathParams?.schema)
221
- } : void 0,
222
- data: typeSchemas.request?.name ? {
223
- type: typeSchemas.request?.name,
224
- optional: oas.isOptional(typeSchemas.request?.schema)
225
- } : void 0,
226
- params: typeSchemas.queryParams?.name ? {
227
- type: typeSchemas.queryParams?.name,
228
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
229
- } : void 0,
230
- headers: typeSchemas.headerParams?.name ? {
231
- type: typeSchemas.headerParams?.name,
232
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
233
- } : void 0,
234
- config: {
235
- type: typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }",
236
- default: "{}"
237
- }
238
- });
239
- }
240
- function QueryOptions({ name, clientName, typeSchemas, paramsCasing, paramsType, dataReturnType, pathParamsType, queryKeyName }) {
241
- const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
242
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
243
- const params = getParams4({ paramsType, paramsCasing, pathParamsType, typeSchemas });
244
- const clientParams = components.Client.getParams({
245
- paramsType,
246
- paramsCasing,
247
- typeSchemas,
248
- pathParamsType,
249
- isConfigurable: true
250
- });
251
- const queryKeyParams = QueryKey.getParams({
252
- pathParamsType,
253
- paramsCasing,
254
- typeSchemas
255
- });
256
- const enabled = Object.entries(queryKeyParams.flatParams).map(([key, item]) => item && !item.optional ? key : void 0).filter(Boolean).join("&& ");
257
- const enabledText = enabled ? `enabled: !!(${enabled}),` : "";
258
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(react.Function, { name, export: true, params: params.toConstructor(), children: `
259
- const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})
260
- return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({
261
- ${enabledText}
262
- queryKey,
263
- queryFn: async ({ signal }) => {
264
- config.signal = signal
265
- return ${clientName}(${clientParams.toCall()})
266
- },
267
- })
268
- ` }) });
269
- }
270
- QueryOptions.getParams = getParams4;
271
- function getParams5({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }) {
272
- const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
273
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
274
- if (paramsType === "object") {
275
- return react.FunctionParams.factory({
276
- data: {
277
- mode: "object",
278
- children: {
279
- ...utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
280
- data: typeSchemas.request?.name ? {
281
- type: typeSchemas.request?.name,
282
- optional: oas.isOptional(typeSchemas.request?.schema)
283
- } : void 0,
284
- params: typeSchemas.queryParams?.name ? {
285
- type: typeSchemas.queryParams?.name,
286
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
287
- } : void 0,
288
- headers: typeSchemas.headerParams?.name ? {
289
- type: typeSchemas.headerParams?.name,
290
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
291
- } : void 0
292
- }
293
- },
294
- options: {
295
- type: `
296
- {
297
- query?: Partial<CreateBaseQueryOptions<${[TData, TError, "TData", "TQueryData", "TQueryKey"].join(", ")}>> & { client?: QueryClient },
298
- client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"}
299
- }
300
- `,
301
- default: "{}"
302
- }
303
- });
304
- }
305
- return react.FunctionParams.factory({
306
- pathParams: typeSchemas.pathParams?.name ? {
307
- mode: pathParamsType === "object" ? "object" : "inlineSpread",
308
- children: utils.getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),
309
- optional: oas.isOptional(typeSchemas.pathParams?.schema)
310
- } : void 0,
311
- data: typeSchemas.request?.name ? {
312
- type: typeSchemas.request?.name,
313
- optional: oas.isOptional(typeSchemas.request?.schema)
314
- } : void 0,
315
- params: typeSchemas.queryParams?.name ? {
316
- type: typeSchemas.queryParams?.name,
317
- optional: oas.isOptional(typeSchemas.queryParams?.schema)
318
- } : void 0,
319
- headers: typeSchemas.headerParams?.name ? {
320
- type: typeSchemas.headerParams?.name,
321
- optional: oas.isOptional(typeSchemas.headerParams?.schema)
322
- } : void 0,
323
- options: {
324
- type: `
325
- {
326
- query?: Partial<CreateBaseQueryOptions<${[TData, TError, "TData", "TQueryData", "TQueryKey"].join(", ")}>> & { client?: QueryClient },
327
- client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : "Partial<RequestConfig> & { client?: typeof fetch }"}
328
- }
329
- `,
330
- default: "{}"
331
- }
332
- });
333
- }
334
- function Query({
335
- name,
336
- queryKeyTypeName,
337
- queryOptionsName,
338
- queryKeyName,
339
- paramsType,
340
- paramsCasing,
341
- pathParamsType,
342
- dataReturnType,
343
- typeSchemas,
344
- operation
345
- }) {
346
- const TData = dataReturnType === "data" ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`;
347
- const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(" | ") || "Error"}>`;
348
- const returnType = `CreateQueryResult<${["TData", TError].join(", ")}> & { queryKey: TQueryKey }`;
349
- const generics = [`TData = ${TData}`, `TQueryData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`];
350
- const queryKeyParams = QueryKey.getParams({
351
- pathParamsType,
352
- paramsCasing,
353
- typeSchemas
354
- });
355
- const queryOptionsParams = QueryOptions.getParams({
356
- paramsType,
357
- paramsCasing,
358
- pathParamsType,
359
- typeSchemas
360
- });
361
- const params = getParams5({
362
- paramsType,
363
- paramsCasing,
364
- pathParamsType,
365
- dataReturnType,
366
- typeSchemas
367
- });
368
- const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`;
369
- return /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(
370
- react.Function,
371
- {
372
- name,
373
- export: true,
374
- generics: generics.join(", "),
375
- params: params.toConstructor(),
376
- JSDoc: {
377
- comments: utils.getComments(operation)
378
- },
379
- children: `
380
- const { query: { client: queryClient, ...queryOptions } = {}, client: config = {} } = options ?? {}
381
- const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})
382
-
383
- const query = createQuery({
384
- ...${queryOptions},
385
- queryKey,
386
- ...queryOptions
387
- } as unknown as CreateBaseQueryOptions, queryClient) as ${returnType}
388
-
389
- query.queryKey = queryKey as TQueryKey
390
-
391
- return query
392
- `
393
- }
394
- ) });
395
- }
396
- Query.getParams = getParams5;
397
-
398
- exports.Mutation = Mutation;
399
- exports.MutationKey = MutationKey;
400
- exports.Query = Query;
401
- exports.QueryKey = QueryKey;
402
- exports.QueryOptions = QueryOptions;
403
- //# sourceMappingURL=chunk-OJL7OC3Y.cjs.map
404
- //# sourceMappingURL=chunk-OJL7OC3Y.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/MutationKey.tsx","../src/components/Mutation.tsx","../src/components/QueryKey.tsx","../src/components/QueryOptions.tsx","../src/components/Query.tsx"],"names":["FunctionParams","URLPath","jsxs","Fragment","jsx","File","Function","Type","getParams","getPathParams","isOptional","Client","getComments","getTransformer"],"mappings":";;;;;;;;;;AAuBA,SAAS,SAAA,CAAU,EAAoB,EAAA;AACrC,EAAO,OAAAA,oBAAA,CAAe,OAAQ,CAAA,EAAE,CAAA;AAClC;AAEA,IAAM,cAA8B,GAAA,CAAC,EAAE,SAAA,EAAW,QAAa,KAAA;AAC7D,EAAA,MAAM,OAAO,IAAIC,eAAA,CAAQ,UAAU,IAAM,EAAA,EAAE,QAAQ,CAAA;AAEnD,EAAO,OAAA,CAAC,IAAK,CAAA,SAAA,CAAU,EAAE,GAAA,EAAK,IAAK,CAAA,IAAA,EAAM,CAAC,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA;AAC5D,CAAA;AAEO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAM,WAAa,EAAA,YAAA,EAAc,gBAAgB,SAAW,EAAA,QAAA,EAAU,WAAc,GAAA,cAAA,EAAoC,EAAA;AACpJ,EAAA,MAAM,MAAS,GAAA,SAAA,CAAU,EAA8B,CAAC,CAAA;AACxD,EAAM,MAAA,IAAA,GAAO,YAAY,EAAE,SAAA,EAAW,SAAS,WAAa,EAAA,MAAA,EAAQ,cAAc,CAAA;AAElF,EAAA,uBAEIC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAAC,UAAA,CAAK,MAAL,EAAA,EAAY,IAAY,EAAA,YAAA,EAAY,IAAC,EAAA,WAAA,EAAW,IAC/C,EAAA,QAAA,kBAAAD,cAAA,CAACE,cAAS,CAAA,KAAA,EAAT,EAAe,IAAA,EAAY,MAAM,EAAA,IAAA,EAAC,MAAQ,EAAA,MAAA,CAAO,aAAc,EAAA,EAAG,UAAU,EAAA,IAAA,EAC1E,QAAI,EAAA,CAAA,CAAA,EAAA,IAAA,CAAK,IAAK,CAAA,IAAI,CAAC,CAAA,UAAA,CAAA,EACtB,CACF,EAAA,CAAA;AAAA,oBACAF,cAAA,CAACC,WAAK,MAAL,EAAA,EAAY,MAAM,QAAU,EAAA,YAAA,EAAY,MAAC,WAAW,EAAA,IAAA,EAAC,YAAU,IAC9D,EAAA,QAAA,kBAAAD,cAAA,CAACG,cAAK,IAAM,EAAA,QAAA,EAAU,QAAM,IACzB,EAAA,QAAA,EAAA,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAA,CAAA,EAC5B,CACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AAEA,WAAA,CAAY,SAAY,GAAA,SAAA;AACxB,WAAA,CAAY,cAAiB,GAAA,cAAA;ACpB7B,SAASC,UAAU,CAAA,EAAE,YAAc,EAAA,cAAA,EAAgB,aAA+B,EAAA;AAChF,EAAM,MAAA,KAAA,GAAQ,mBAAmB,MAAS,GAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,eAAA,EAAkB,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA;AACjH,EAAA,MAAM,MAAS,GAAA,CAAA,oBAAA,EAAuB,WAAY,CAAA,MAAA,EAAQ,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAA,CAAE,IAAK,CAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA;AAEzG,EAAM,MAAA,cAAA,GAAiBR,qBAAe,OAAQ,CAAA;AAAA,IAC5C,GAAGS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,IAC9E,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAU,EAAAC,cAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,MAC/B,QAAU,EAAAA,cAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,KAEtD,GAAA,MAAA;AAAA,IACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,MAChC,QAAU,EAAAA,cAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,KAEvD,GAAA;AAAA,GACL,CAAA;AACD,EAAM,MAAA,QAAA,GAAW,eAAe,aAAc,EAAA;AAE9C,EAAA,OAAOV,qBAAe,OAAQ,CAAA;AAAA,IAC5B,OAAS,EAAA;AAAA,MACP,IAAM,EAAA;AAAA;AAAA,mCAAA,EAEyB,CAAC,KAAA,EAAO,MAAQ,EAAA,QAAA,GAAW,CAAI,CAAA,EAAA,QAAQ,CAAM,CAAA,CAAA,GAAA,MAAA,EAAQ,UAAU,CAAA,CAAE,IAAK,CAAA,IAAI,CAAC,CAAA;AAAA,WACnG,EAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,sBAAA,EAAyB,YAAY,OAAS,EAAA,IAAI,mCAAmC,oDAAoD,CAAA;AAAA;AAAA,CAAA;AAAA,MAG5K,OAAS,EAAA;AAAA;AACX,GACD,CAAA;AACH;AAEO,SAAS,QAAS,CAAA;AAAA,EACvB,IAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAM,MAAA,iBAAA,GAAoB,YAAY,SAAU,CAAA;AAAA,IAC9C,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,SAASQ,UAAU,CAAA;AAAA,IACvB,YAAA;AAAA,IAEA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAM,MAAA,YAAA,GAAeG,kBAAO,SAAU,CAAA;AAAA,IACpC,YAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAgB,EAAA;AAAA,GACjB,CAAA;AACD,EAAM,MAAA,cAAA,GAAiBX,qBAAe,OAAQ,CAAA;AAAA,IAC5C,GAAGS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,IAC9E,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAU,EAAAC,cAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,MAC/B,QAAU,EAAAA,cAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,KAEtD,GAAA,MAAA;AAAA,IACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,MAChC,QAAU,EAAAA,cAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,KAEvD,GAAA;AAAA,GACL,CAAA;AACD,EAAM,MAAA,UAAA,GAAaV,qBAAe,OAAQ,CAAA;AAAA,IACxC,IAAM,EAAA;AAAA;AAAA;AAAA,MAGJ,IAAM,EAAA,QAAA;AAAA,MACN,QAAU,EAAA,MAAA,CAAO,OAAQ,CAAA,cAAA,CAAe,MAAM,CAAA,CAAE,MAAO,CAAA,CAAC,GAAK,EAAA,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA;AAC5E,QAAA,IAAI,KAAO,EAAA;AACT,UAAA,GAAA,CAAI,GAAG,CAAI,GAAA;AAAA,YACT,GAAG,KAAA;AAAA,YACH,IAAM,EAAA;AAAA,WACR;AAAA;AAGF,QAAO,OAAA,GAAA;AAAA,OACT,EAAG,EAAY;AAAA;AACjB,GACD,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,eAAe,aAAc,EAAA;AAC9C,EAAM,MAAA,KAAA,GAAQ,mBAAmB,MAAS,GAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,eAAA,EAAkB,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA;AACjH,EAAA,MAAM,MAAS,GAAA,CAAA,oBAAA,EAAuB,WAAY,CAAA,MAAA,EAAQ,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAA,CAAE,IAAK,CAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA;AACzG,EAAA,MAAM,QAAW,GAAA,CAAC,KAAO,EAAA,MAAA,EAAQ,QAAW,GAAA,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,CAAA,GAAM,MAAQ,EAAA,UAAU,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAE3F,EACE,uBAAAI,cAACC,CAAAA,UAAAA,CAAK,MAAL,EAAA,EAAY,MAAY,YAAY,EAAA,IAAA,EAAC,WAAW,EAAA,IAAA,EAC/C,QAAAD,kBAAAA,cAAAA;AAAA,IAACE,cAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,MAAM,EAAA,IAAA;AAAA,MACN,MAAA,EAAQ,OAAO,aAAc,EAAA;AAAA,MAC7B,KAAO,EAAA;AAAA,QACL,QAAA,EAAUM,kBAAY,SAAS;AAAA,OACjC;AAAA,MACA,QAAA,EAAU,CAAC,UAAU,CAAA;AAAA,MAEpB,QAAA,EAAA;AAAA;AAAA;AAAA,4DAAA,EAGqD,eAAe,CAAA,CAAA,EAAI,iBAAkB,CAAA,MAAA,EAAQ,CAAA;;AAAA,8BAAA,EAE3E,QAAQ,CAAA;AAAA,4BACV,EAAA,UAAA,CAAW,eAAe,CAAA;AAAA,mBAAA,EACnC,UAAU,CAAA,CAAA,EAAI,YAAa,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA;AAAA,GAOpD,EAAA,CAAA;AAEJ;ACtJA,SAASJ,UAAU,CAAA,EAAE,cAAgB,EAAA,YAAA,EAAc,aAA+B,EAAA;AAChF,EAAA,OAAOR,qBAAe,OAAQ,CAAA;AAAA,IAC5B,UAAY,EAAA;AAAA,MACV,IAAA,EAAM,cAAmB,KAAA,QAAA,GAAW,QAAW,GAAA,cAAA;AAAA,MAC/C,QAAA,EAAUS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc;AAAA,KACvF;AAAA,IACA,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAUC,EAAAA,cAAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,MAC/B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,KAEtD,GAAA;AAAA,GACL,CAAA;AACH;AAEA,IAAMG,kBAA8B,CAAC,EAAE,SAAW,EAAA,OAAA,EAAS,QAAa,KAAA;AACtE,EAAA,MAAM,OAAO,IAAIZ,eAAAA,CAAQ,UAAU,IAAM,EAAA,EAAE,QAAQ,CAAA;AACnD,EAAA,MAAM,IAAO,GAAA;AAAA,IACX,KAAK,QAAS,CAAA;AAAA,MACZ,IAAM,EAAA,MAAA;AAAA,MACN,SAAW,EAAA;AAAA,KACZ,CAAA;AAAA,IACD,OAAA,CAAQ,WAAa,EAAA,IAAA,GAAO,6BAAgC,GAAA,MAAA;AAAA,IAC5D,OAAA,CAAQ,OAAS,EAAA,IAAA,GAAO,yBAA4B,GAAA;AAAA,GACtD,CAAE,OAAO,OAAO,CAAA;AAEhB,EAAO,OAAA,IAAA;AACT,CAAA;AAEO,SAAS,QAAA,CAAS,EAAE,IAAA,EAAM,WAAa,EAAA,YAAA,EAAc,gBAAgB,SAAW,EAAA,QAAA,EAAU,WAAcY,GAAAA,eAAAA,EAAoC,EAAA;AACjJ,EAAA,MAAM,SAASL,UAAU,CAAA,EAAE,cAAgB,EAAA,YAAA,EAAc,aAAa,CAAA;AACtE,EAAA,MAAM,OAAO,WAAY,CAAA;AAAA,IACvB,SAAA;AAAA,IACA,OAAS,EAAA,WAAA;AAAA,IACT,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EACE,uBAAAN,eAAAC,CAAAA,mBAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAC,cAACC,CAAAA,UAAAA,CAAK,MAAL,EAAA,EAAY,IAAY,EAAA,YAAA,EAAY,IAAC,EAAA,WAAA,EAAW,IAC/C,EAAA,QAAA,kBAAAD,cAACE,CAAAA,cAAAA,CAAS,KAAT,EAAA,EAAe,IAAY,EAAA,MAAA,EAAM,IAAC,EAAA,MAAA,EAAQ,MAAO,CAAA,aAAA,EAAiB,EAAA,UAAA,EAAU,IAC1E,EAAA,QAAA,EAAA,CAAA,CAAA,EAAI,IAAK,CAAA,IAAA,CAAK,IAAI,CAAC,cACtB,CACF,EAAA,CAAA;AAAA,oBACAF,cAACC,CAAAA,UAAAA,CAAK,MAAL,EAAA,EAAY,MAAM,QAAU,EAAA,YAAA,EAAY,IAAC,EAAA,WAAA,EAAW,IAAC,EAAA,UAAA,EAAU,MAC9D,QAAAD,kBAAAA,cAAAA,CAACG,UAAA,EAAA,EAAK,IAAM,EAAA,QAAA,EAAU,QAAM,IACzB,EAAA,QAAA,EAAA,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAA,CAAA,EAC5B,CACF,EAAA;AAAA,GACF,EAAA,CAAA;AAEJ;AAEA,QAAA,CAAS,SAAYC,GAAAA,UAAAA;AACrB,QAAA,CAAS,cAAiBK,GAAAA,eAAAA;ACxD1B,SAASL,WAAU,EAAE,UAAA,EAAY,YAAc,EAAA,cAAA,EAAgB,aAA+B,EAAA;AAC5F,EAAA,IAAI,eAAe,QAAU,EAAA;AAC3B,IAAA,OAAOR,qBAAe,OAAQ,CAAA;AAAA,MAC5B,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,QAAU,EAAA;AAAA,UACR,GAAGS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,UAC9E,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,YAC3B,QAAUC,EAAAA,cAAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,WAElD,GAAA,MAAA;AAAA,UACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,YAC/B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,WAEtD,GAAA,MAAA;AAAA,UACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,YAChC,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,WAEvD,GAAA;AAAA;AACN,OACF;AAAA,MACA,MAAQ,EAAA;AAAA,QACN,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA,GACvB,yBAAyB,WAAY,CAAA,OAAA,EAAS,IAAI,CAClD,8BAAA,CAAA,GAAA,oDAAA;AAAA,QACJ,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AAAA;AAGH,EAAA,OAAOV,qBAAe,OAAQ,CAAA;AAAA,IAC5B,UAAA,EAAY,WAAY,CAAA,UAAA,EAAY,IAChC,GAAA;AAAA,MACE,IAAA,EAAM,cAAmB,KAAA,QAAA,GAAW,QAAW,GAAA,cAAA;AAAA,MAC/C,QAAA,EAAUS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,MACrF,QAAUC,EAAAA,cAAAA,CAAW,WAAY,CAAA,UAAA,EAAY,MAAM;AAAA,KAErD,GAAA,MAAA;AAAA,IACJ,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,MAC/B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,KAEtD,GAAA,MAAA;AAAA,IACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,MAChC,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,KAEvD,GAAA,MAAA;AAAA,IACJ,MAAQ,EAAA;AAAA,MACN,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA,GACvB,yBAAyB,WAAY,CAAA,OAAA,EAAS,IAAI,CAClD,8BAAA,CAAA,GAAA,oDAAA;AAAA,MACJ,OAAS,EAAA;AAAA;AACX,GACD,CAAA;AACH;AAEO,SAAS,YAAA,CAAa,EAAE,IAAA,EAAM,UAAY,EAAA,WAAA,EAAa,cAAc,UAAY,EAAA,cAAA,EAAgB,cAAgB,EAAA,YAAA,EAAkC,EAAA;AACxJ,EAAM,MAAA,KAAA,GAAQ,mBAAmB,MAAS,GAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,eAAA,EAAkB,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA;AACjH,EAAA,MAAM,MAAS,GAAA,CAAA,oBAAA,EAAuB,WAAY,CAAA,MAAA,EAAQ,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAA,CAAE,IAAK,CAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA;AAEzG,EAAA,MAAM,SAASF,UAAU,CAAA,EAAE,YAAY,YAAc,EAAA,cAAA,EAAgB,aAAa,CAAA;AAClF,EAAM,MAAA,YAAA,GAAeG,kBAAO,SAAU,CAAA;AAAA,IACpC,UAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAgB,EAAA;AAAA,GACjB,CAAA;AACD,EAAM,MAAA,cAAA,GAAiB,SAAS,SAAU,CAAA;AAAA,IACxC,cAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAM,MAAA,OAAA,GAAU,OAAO,OAAQ,CAAA,cAAA,CAAe,UAAU,CACrD,CAAA,GAAA,CAAI,CAAC,CAAC,GAAK,EAAA,IAAI,MAAO,IAAQ,IAAA,CAAC,IAAK,CAAA,QAAA,GAAW,GAAM,GAAA,MAAU,EAC/D,MAAO,CAAA,OAAO,CACd,CAAA,IAAA,CAAK,KAAK,CAAA;AAEb,EAAA,MAAM,WAAc,GAAA,OAAA,GAAU,CAAe,YAAA,EAAA,OAAO,CAAO,EAAA,CAAA,GAAA,EAAA;AAE3D,EACE,uBAAAP,eAACC,UAAK,CAAA,MAAA,EAAL,EAAY,IAAY,EAAA,YAAA,EAAY,MAAC,WAAW,EAAA,IAAA,EAC/C,0BAAAD,cAACE,CAAAA,cAAAA,EAAA,EAAS,IAAY,EAAA,MAAA,EAAM,MAAC,MAAQ,EAAA,MAAA,CAAO,eACzC,EAAA,QAAA,EAAA;AAAA,uBAAA,EACgB,YAAY,CAAA,CAAA,EAAI,cAAe,CAAA,MAAA,EAAQ,CAAA;AAAA,0BAAA,EACpC,KAAK,CAAA,EAAA,EAAK,MAAM,CAAA,EAAA,EAAK,KAAK,CAAA;AAAA,MAAA,EAC9C,WAAW;AAAA;AAAA;AAAA;AAAA,iBAAA,EAIA,UAAU,CAAA,CAAA,EAAI,YAAa,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA;AAAA,CAAA,EAIhD,CACF,EAAA,CAAA;AAEJ;AAEA,YAAA,CAAa,SAAYE,GAAAA,UAAAA;AC9GzB,SAASA,WAAU,EAAE,UAAA,EAAY,cAAc,cAAgB,EAAA,cAAA,EAAgB,aAA+B,EAAA;AAC5G,EAAM,MAAA,KAAA,GAAQ,mBAAmB,MAAS,GAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,eAAA,EAAkB,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA;AACjH,EAAA,MAAM,MAAS,GAAA,CAAA,oBAAA,EAAuB,WAAY,CAAA,MAAA,EAAQ,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAA,CAAE,IAAK,CAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA;AAEzG,EAAA,IAAI,eAAe,QAAU,EAAA;AAC3B,IAAA,OAAOR,qBAAe,OAAQ,CAAA;AAAA,MAC5B,IAAM,EAAA;AAAA,QACJ,IAAM,EAAA,QAAA;AAAA,QACN,QAAU,EAAA;AAAA,UACR,GAAGS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,UAC9E,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,YAC3B,QAAUC,EAAAA,cAAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,WAElD,GAAA,MAAA;AAAA,UACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,YAC/B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,WAEtD,GAAA,MAAA;AAAA,UACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,YACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,YAChC,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,WAEvD,GAAA;AAAA;AACN,OACF;AAAA,MACA,OAAS,EAAA;AAAA,QACP,IAAM,EAAA;AAAA;AAAA,yCAE6B,EAAA,CAAC,OAAO,MAAQ,EAAA,OAAA,EAAS,cAAc,WAAW,CAAA,CAAE,IAAK,CAAA,IAAI,CAAC,CAAA;AAAA,WAC5F,EAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,sBAAA,EAAyB,YAAY,OAAS,EAAA,IAAI,mCAAmC,oDAAoD;AAAA;AAAA,CAAA;AAAA,QAG1K,OAAS,EAAA;AAAA;AACX,KACD,CAAA;AAAA;AAGH,EAAA,OAAOV,qBAAe,OAAQ,CAAA;AAAA,IAC5B,UAAA,EAAY,WAAY,CAAA,UAAA,EAAY,IAChC,GAAA;AAAA,MACE,IAAA,EAAM,cAAmB,KAAA,QAAA,GAAW,QAAW,GAAA,cAAA;AAAA,MAC/C,QAAA,EAAUS,oBAAc,WAAY,CAAA,UAAA,EAAY,EAAE,KAAO,EAAA,IAAA,EAAM,MAAQ,EAAA,YAAA,EAAc,CAAA;AAAA,MACrF,QAAUC,EAAAA,cAAAA,CAAW,WAAY,CAAA,UAAA,EAAY,MAAM;AAAA,KAErD,GAAA,MAAA;AAAA,IACJ,IAAA,EAAM,WAAY,CAAA,OAAA,EAAS,IACvB,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,OAAS,EAAA,IAAA;AAAA,MAC3B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,OAAA,EAAS,MAAM;AAAA,KAElD,GAAA,MAAA;AAAA,IACJ,MAAA,EAAQ,WAAY,CAAA,WAAA,EAAa,IAC7B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,WAAa,EAAA,IAAA;AAAA,MAC/B,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,WAAA,EAAa,MAAM;AAAA,KAEtD,GAAA,MAAA;AAAA,IACJ,OAAA,EAAS,WAAY,CAAA,YAAA,EAAc,IAC/B,GAAA;AAAA,MACE,IAAA,EAAM,YAAY,YAAc,EAAA,IAAA;AAAA,MAChC,QAAUA,EAAAA,cAAAA,CAAW,WAAY,CAAA,YAAA,EAAc,MAAM;AAAA,KAEvD,GAAA,MAAA;AAAA,IACJ,OAAS,EAAA;AAAA,MACP,IAAM,EAAA;AAAA;AAAA,yCAE+B,EAAA,CAAC,OAAO,MAAQ,EAAA,OAAA,EAAS,cAAc,WAAW,CAAA,CAAE,IAAK,CAAA,IAAI,CAAC,CAAA;AAAA,WAC5F,EAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,sBAAA,EAAyB,YAAY,OAAS,EAAA,IAAI,mCAAmC,oDAAoD;AAAA;AAAA,CAAA;AAAA,MAG5K,OAAS,EAAA;AAAA;AACX,GACD,CAAA;AACH;AAEO,SAAS,KAAM,CAAA;AAAA,EACpB,IAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAqB,EAAA;AACnB,EAAM,MAAA,KAAA,GAAQ,mBAAmB,MAAS,GAAA,WAAA,CAAY,SAAS,IAAO,GAAA,CAAA,eAAA,EAAkB,WAAY,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,CAAA;AACjH,EAAA,MAAM,MAAS,GAAA,CAAA,oBAAA,EAAuB,WAAY,CAAA,MAAA,EAAQ,GAAI,CAAA,CAAC,IAAS,KAAA,IAAA,CAAK,IAAI,CAAA,CAAE,IAAK,CAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA;AACzG,EAAM,MAAA,UAAA,GAAa,qBAAqB,CAAC,OAAA,EAAS,MAAM,CAAE,CAAA,IAAA,CAAK,IAAI,CAAC,CAAA,2BAAA,CAAA;AACpE,EAAM,MAAA,QAAA,GAAW,CAAC,CAAA,QAAA,EAAW,KAAK,CAAA,CAAA,EAAI,gBAAgB,KAAK,CAAA,CAAA,EAAI,CAAgC,6BAAA,EAAA,gBAAgB,CAAE,CAAA,CAAA;AAEjH,EAAM,MAAA,cAAA,GAAiB,SAAS,SAAU,CAAA;AAAA,IACxC,cAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAM,MAAA,kBAAA,GAAqB,aAAa,SAAU,CAAA;AAAA,IAChD,UAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AACD,EAAA,MAAM,SAASF,UAAU,CAAA;AAAA,IACvB,UAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,eAAe,CAAG,EAAA,gBAAgB,CAAI,CAAA,EAAA,kBAAA,CAAmB,QAAQ,CAAA,CAAA,CAAA;AAEvE,EACE,uBAAAJ,cAACC,CAAAA,UAAAA,CAAK,MAAL,EAAA,EAAY,MAAY,YAAY,EAAA,IAAA,EAAC,WAAW,EAAA,IAAA,EAC/C,QAAAD,kBAAAA,cAAAA;AAAA,IAACE,cAAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,MAAM,EAAA,IAAA;AAAA,MACN,QAAA,EAAU,QAAS,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,MAC5B,MAAA,EAAQ,OAAO,aAAc,EAAA;AAAA,MAC7B,KAAO,EAAA;AAAA,QACL,QAAA,EAAUM,kBAAY,SAAS;AAAA,OACjC;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,kDAAA,EAE2C,YAAY,CAAA,CAAA,EAAI,cAAe,CAAA,MAAA,EAAQ,CAAA;;AAAA;AAAA,WAAA,EAG9E,YAAY,CAAA;AAAA;AAAA;AAAA,+DAAA,EAGwC,UAAU;;AAAA;;AAAA;AAAA,OAAA;AAAA;AAAA,GAOvE,EAAA,CAAA;AAEJ;AAEA,KAAA,CAAM,SAAYJ,GAAAA,UAAAA","file":"chunk-OJL7OC3Y.cjs","sourcesContent":["import { URLPath } from '@kubb/core/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { PluginSvelteQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({}: GetParamsProps) {\n return FunctionParams.factory({})\n}\n\nconst getTransformer: Transformer = ({ operation, casing }) => {\n const path = new URLPath(operation.path, { casing })\n\n return [JSON.stringify({ url: path.path })].filter(Boolean)\n}\n\nexport function MutationKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, typeSchemas })\n const keys = transformer({ operation, schemas: typeSchemas, casing: paramsCasing })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\nMutationKey.getParams = getParams\nMutationKey.getTransformer = getTransformer\n","import { File, Function, FunctionParams } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport type { Params } from '@kubb/react/types'\nimport type { ReactNode } from 'react'\nimport type { PluginSvelteQuery } from '../types.ts'\nimport { MutationKey } from './MutationKey.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n typeName: string\n clientName: string\n mutationKeyName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginSvelteQuery['resolvedOptions']['paramsType']\n dataReturnType: PluginSvelteQuery['resolvedOptions']['client']['dataReturnType']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSvelteQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsCasing, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n const TRequest = mutationParams.toConstructor()\n\n return FunctionParams.factory({\n options: {\n type: `\n{\n mutation?: CreateMutationOptions<${[TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')}> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'},\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Mutation({\n name,\n clientName,\n paramsCasing,\n paramsType,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n mutationKeyName,\n}: Props): ReactNode {\n const mutationKeyParams = MutationKey.getParams({\n pathParamsType,\n typeSchemas,\n })\n\n const params = getParams({\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const clientParams = Client.getParams({\n paramsCasing,\n paramsType,\n typeSchemas,\n pathParamsType,\n isConfigurable: true,\n })\n const mutationParams = FunctionParams.factory({\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n })\n const dataParams = FunctionParams.factory({\n data: {\n // No use of pathParams because useMutation can only take one argument in object form,\n // see https://tanstack.com/query/latest/docs/framework/react/reference/useMutation#usemutation\n mode: 'object',\n children: Object.entries(mutationParams.params).reduce((acc, [key, value]) => {\n if (value) {\n acc[key] = {\n ...value,\n type: undefined,\n }\n }\n\n return acc\n }, {} as Params),\n },\n })\n\n const TRequest = mutationParams.toConstructor()\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const generics = [TData, TError, TRequest ? `{${TRequest}}` : 'void', 'TContext'].join(', ')\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n generics={['TContext']}\n >\n {`\n const { mutation = {}, client: config = {} } = options ?? {}\n const { client: queryClient, ...mutationOptions } = mutation;\n const mutationKey = mutationOptions?.mutationKey ?? ${mutationKeyName}(${mutationKeyParams.toCall()})\n\n return createMutation<${generics}>({\n mutationFn: async(${dataParams.toConstructor()}) => {\n return ${clientName}(${clientParams.toCall()})\n },\n mutationKey,\n ...mutationOptions\n }, queryClient)\n `}\n </Function>\n </File.Source>\n )\n}\n","import { URLPath } from '@kubb/core/utils'\nimport { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams, Type } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { ReactNode } from 'react'\nimport type { PluginSvelteQuery, Transformer } from '../types'\n\ntype Props = {\n name: string\n typeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n transformer: Transformer | undefined\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ pathParamsType, paramsCasing, typeSchemas }: GetParamsProps) {\n return FunctionParams.factory({\n pathParams: {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n },\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n })\n}\n\nconst getTransformer: Transformer = ({ operation, schemas, casing }) => {\n const path = new URLPath(operation.path, { casing })\n const keys = [\n path.toObject({\n type: 'path',\n stringify: true,\n }),\n schemas.queryParams?.name ? '...(params ? [params] : [])' : undefined,\n schemas.request?.name ? '...(data ? [data] : [])' : undefined,\n ].filter(Boolean)\n\n return keys\n}\n\nexport function QueryKey({ name, typeSchemas, paramsCasing, pathParamsType, operation, typeName, transformer = getTransformer }: Props): ReactNode {\n const params = getParams({ pathParamsType, paramsCasing, typeSchemas })\n const keys = transformer({\n operation,\n schemas: typeSchemas,\n casing: paramsCasing,\n })\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Function.Arrow name={name} export params={params.toConstructor()} singleLine>\n {`[${keys.join(', ')}] as const`}\n </Function.Arrow>\n </File.Source>\n <File.Source name={typeName} isExportable isIndexable isTypeOnly>\n <Type name={typeName} export>\n {`ReturnType<typeof ${name}>`}\n </Type>\n </File.Source>\n </>\n )\n}\n\nQueryKey.getParams = getParams\nQueryKey.getTransformer = getTransformer\n","import { getPathParams } from '@kubb/plugin-oas/utils'\nimport { File, Function, FunctionParams } from '@kubb/react'\n\nimport type { ReactNode } from 'react'\n\nimport { isOptional } from '@kubb/oas'\nimport { Client } from '@kubb/plugin-client/components'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport type { PluginSvelteQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\n\ntype Props = {\n name: string\n clientName: string\n queryKeyName: string\n typeSchemas: OperationSchemas\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginSvelteQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSvelteQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginSvelteQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas }: GetParamsProps) {\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n config: {\n type: typeSchemas.request?.name\n ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }`\n : 'Partial<RequestConfig> & { client?: typeof fetch }',\n default: '{}',\n },\n })\n}\n\nexport function QueryOptions({ name, clientName, typeSchemas, paramsCasing, paramsType, dataReturnType, pathParamsType, queryKeyName }: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n const params = getParams({ paramsType, paramsCasing, pathParamsType, typeSchemas })\n const clientParams = Client.getParams({\n paramsType,\n paramsCasing,\n typeSchemas,\n pathParamsType,\n isConfigurable: true,\n })\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n paramsCasing,\n typeSchemas,\n })\n\n const enabled = Object.entries(queryKeyParams.flatParams)\n .map(([key, item]) => (item && !item.optional ? key : undefined))\n .filter(Boolean)\n .join('&& ')\n\n const enabledText = enabled ? `enabled: !!(${enabled}),` : ''\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function name={name} export params={params.toConstructor()}>\n {`\n const queryKey = ${queryKeyName}(${queryKeyParams.toCall()})\n return queryOptions<${TData}, ${TError}, ${TData}, typeof queryKey>({\n ${enabledText}\n queryKey,\n queryFn: async ({ signal }) => {\n config.signal = signal\n return ${clientName}(${clientParams.toCall()})\n },\n })\n`}\n </Function>\n </File.Source>\n )\n}\n\nQueryOptions.getParams = getParams\n","import { File, Function, FunctionParams } from '@kubb/react'\n\nimport { type Operation, isOptional } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { getComments, getPathParams } from '@kubb/plugin-oas/utils'\nimport type { ReactNode } from 'react'\nimport type { PluginSvelteQuery } from '../types.ts'\nimport { QueryKey } from './QueryKey.tsx'\nimport { QueryOptions } from './QueryOptions.tsx'\n\ntype Props = {\n /**\n * Name of the function\n */\n name: string\n queryOptionsName: string\n queryKeyName: string\n queryKeyTypeName: string\n typeSchemas: OperationSchemas\n operation: Operation\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginSvelteQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSvelteQuery['resolvedOptions']['client']['dataReturnType']\n}\n\ntype GetParamsProps = {\n paramsCasing: PluginSvelteQuery['resolvedOptions']['paramsCasing']\n paramsType: PluginSvelteQuery['resolvedOptions']['paramsType']\n pathParamsType: PluginSvelteQuery['resolvedOptions']['pathParamsType']\n dataReturnType: PluginSvelteQuery['resolvedOptions']['client']['dataReturnType']\n typeSchemas: OperationSchemas\n}\n\nfunction getParams({ paramsType, paramsCasing, pathParamsType, dataReturnType, typeSchemas }: GetParamsProps) {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n\n if (paramsType === 'object') {\n return FunctionParams.factory({\n data: {\n mode: 'object',\n children: {\n ...getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n },\n },\n options: {\n type: `\n{\n query?: Partial<CreateBaseQueryOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'}\n}\n`,\n default: '{}',\n },\n })\n }\n\n return FunctionParams.factory({\n pathParams: typeSchemas.pathParams?.name\n ? {\n mode: pathParamsType === 'object' ? 'object' : 'inlineSpread',\n children: getPathParams(typeSchemas.pathParams, { typed: true, casing: paramsCasing }),\n optional: isOptional(typeSchemas.pathParams?.schema),\n }\n : undefined,\n data: typeSchemas.request?.name\n ? {\n type: typeSchemas.request?.name,\n optional: isOptional(typeSchemas.request?.schema),\n }\n : undefined,\n params: typeSchemas.queryParams?.name\n ? {\n type: typeSchemas.queryParams?.name,\n optional: isOptional(typeSchemas.queryParams?.schema),\n }\n : undefined,\n headers: typeSchemas.headerParams?.name\n ? {\n type: typeSchemas.headerParams?.name,\n optional: isOptional(typeSchemas.headerParams?.schema),\n }\n : undefined,\n options: {\n type: `\n{\n query?: Partial<CreateBaseQueryOptions<${[TData, TError, 'TData', 'TQueryData', 'TQueryKey'].join(', ')}>> & { client?: QueryClient },\n client?: ${typeSchemas.request?.name ? `Partial<RequestConfig<${typeSchemas.request?.name}>> & { client?: typeof fetch }` : 'Partial<RequestConfig> & { client?: typeof fetch }'}\n}\n`,\n default: '{}',\n },\n })\n}\n\nexport function Query({\n name,\n queryKeyTypeName,\n queryOptionsName,\n queryKeyName,\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n operation,\n}: Props): ReactNode {\n const TData = dataReturnType === 'data' ? typeSchemas.response.name : `ResponseConfig<${typeSchemas.response.name}>`\n const TError = `ResponseErrorConfig<${typeSchemas.errors?.map((item) => item.name).join(' | ') || 'Error'}>`\n const returnType = `CreateQueryResult<${['TData', TError].join(', ')}> & { queryKey: TQueryKey }`\n const generics = [`TData = ${TData}`, `TQueryData = ${TData}`, `TQueryKey extends QueryKey = ${queryKeyTypeName}`]\n\n const queryKeyParams = QueryKey.getParams({\n pathParamsType,\n paramsCasing,\n typeSchemas,\n })\n const queryOptionsParams = QueryOptions.getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n typeSchemas,\n })\n const params = getParams({\n paramsType,\n paramsCasing,\n pathParamsType,\n dataReturnType,\n typeSchemas,\n })\n\n const queryOptions = `${queryOptionsName}(${queryOptionsParams.toCall()})`\n\n return (\n <File.Source name={name} isExportable isIndexable>\n <Function\n name={name}\n export\n generics={generics.join(', ')}\n params={params.toConstructor()}\n JSDoc={{\n comments: getComments(operation),\n }}\n >\n {`\n const { query: { client: queryClient, ...queryOptions } = {}, client: config = {} } = options ?? {}\n const queryKey = queryOptions?.queryKey ?? ${queryKeyName}(${queryKeyParams.toCall()})\n\n const query = createQuery({\n ...${queryOptions},\n queryKey,\n ...queryOptions\n } as unknown as CreateBaseQueryOptions, queryClient) as ${returnType}\n\n query.queryKey = queryKey as TQueryKey\n\n return query\n `}\n </Function>\n </File.Source>\n )\n}\n\nQuery.getParams = getParams\n"]}