@kubb/plugin-react-query 5.0.0-beta.30 → 5.0.0-beta.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{components-CDmg-RPi.js → components-BVmVgpLX.js} +142 -62
- package/dist/components-BVmVgpLX.js.map +1 -0
- package/dist/{components-MPBTffPl.cjs → components-DLUeLMsz.cjs} +147 -61
- package/dist/components-DLUeLMsz.cjs.map +1 -0
- package/dist/components.cjs +1 -1
- package/dist/components.d.ts +3 -1
- package/dist/components.js +1 -1
- package/dist/{generators-BtsWNz-6.cjs → generators--AcF4Y4n.cjs} +35 -153
- package/dist/generators--AcF4Y4n.cjs.map +1 -0
- package/dist/{generators-Bma51Uar.js → generators-BFn9CLBS.js} +36 -154
- package/dist/generators-BFn9CLBS.js.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +40 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +40 -10
- package/dist/index.js.map +1 -1
- package/extension.yaml +3 -3
- package/package.json +7 -7
- package/src/components/InfiniteQuery.tsx +13 -8
- package/src/components/InfiniteQueryOptions.tsx +8 -8
- package/src/components/Query.tsx +6 -1
- package/src/components/QueryOptions.tsx +12 -8
- package/src/components/SuspenseInfiniteQueryOptions.tsx +0 -6
- package/src/generators/hookOptionsGenerator.tsx +12 -22
- package/src/generators/infiniteQueryGenerator.tsx +19 -22
- package/src/generators/mutationGenerator.tsx +19 -22
- package/src/generators/queryGenerator.tsx +19 -22
- package/src/generators/suspenseInfiniteQueryGenerator.tsx +19 -22
- package/src/generators/suspenseQueryGenerator.tsx +20 -22
- package/src/plugin.ts +4 -16
- package/dist/components-CDmg-RPi.js.map +0 -1
- package/dist/components-MPBTffPl.cjs.map +0 -1
- package/dist/generators-Bma51Uar.js.map +0 -1
- package/dist/generators-BtsWNz-6.cjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_components = require("./components-
|
|
1
|
+
const require_components = require("./components-DLUeLMsz.cjs");
|
|
2
2
|
let node_path = require("node:path");
|
|
3
3
|
node_path = require_components.__toESM(node_path);
|
|
4
4
|
let _kubb_core = require("@kubb/core");
|
|
@@ -138,6 +138,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
138
138
|
const imports = [];
|
|
139
139
|
const hookOptions = {};
|
|
140
140
|
for (const node of nodes) {
|
|
141
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) continue;
|
|
141
142
|
const opOverrides = require_components.resolveOperationOverrides(node, override);
|
|
142
143
|
const nodeQuery = "query" in opOverrides ? opOverrides.query : query;
|
|
143
144
|
const nodeMutation = "mutation" in opOverrides ? opOverrides.mutation : mutation;
|
|
@@ -150,12 +151,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
150
151
|
if (isQueryOp) {
|
|
151
152
|
const queryOptionsName = resolver.resolveQueryOptionsName(node);
|
|
152
153
|
const queryHookName = resolver.resolveQueryName(node);
|
|
153
|
-
const queryHookFile = resolver.resolveFile({
|
|
154
|
-
name: queryHookName,
|
|
155
|
-
extname: ".ts",
|
|
156
|
-
tag: node.tags[0] ?? "default",
|
|
157
|
-
path: node.path
|
|
158
|
-
}, {
|
|
154
|
+
const queryHookFile = resolver.resolveFile(require_components.operationFileEntry(node, queryHookName), {
|
|
159
155
|
root,
|
|
160
156
|
output,
|
|
161
157
|
group: group ?? void 0
|
|
@@ -169,12 +165,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
169
165
|
if (isSuspenseOp) {
|
|
170
166
|
const suspenseOptionsName = resolver.resolveSuspenseQueryOptionsName(node);
|
|
171
167
|
const suspenseHookName = resolver.resolveSuspenseQueryName(node);
|
|
172
|
-
const suspenseHookFile = resolver.resolveFile({
|
|
173
|
-
name: suspenseHookName,
|
|
174
|
-
extname: ".ts",
|
|
175
|
-
tag: node.tags[0] ?? "default",
|
|
176
|
-
path: node.path
|
|
177
|
-
}, {
|
|
168
|
+
const suspenseHookFile = resolver.resolveFile(require_components.operationFileEntry(node, suspenseHookName), {
|
|
178
169
|
root,
|
|
179
170
|
output,
|
|
180
171
|
group: group ?? void 0
|
|
@@ -192,12 +183,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
192
183
|
if (nodeInfiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === nodeInfiniteOptions.queryParam) : false) {
|
|
193
184
|
const infiniteOptionsName = resolver.resolveInfiniteQueryOptionsName(node);
|
|
194
185
|
const infiniteHookName = resolver.resolveInfiniteQueryName(node);
|
|
195
|
-
const infiniteHookFile = resolver.resolveFile({
|
|
196
|
-
name: infiniteHookName,
|
|
197
|
-
extname: ".ts",
|
|
198
|
-
tag: node.tags[0] ?? "default",
|
|
199
|
-
path: node.path
|
|
200
|
-
}, {
|
|
186
|
+
const infiniteHookFile = resolver.resolveFile(require_components.operationFileEntry(node, infiniteHookName), {
|
|
201
187
|
root,
|
|
202
188
|
output,
|
|
203
189
|
group: group ?? void 0
|
|
@@ -211,12 +197,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
211
197
|
if (isSuspenseOp) {
|
|
212
198
|
const suspenseInfiniteOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node);
|
|
213
199
|
const suspenseInfiniteHookName = resolver.resolveSuspenseInfiniteQueryName(node);
|
|
214
|
-
const suspenseInfiniteHookFile = resolver.resolveFile({
|
|
215
|
-
name: suspenseInfiniteHookName,
|
|
216
|
-
extname: ".ts",
|
|
217
|
-
tag: node.tags[0] ?? "default",
|
|
218
|
-
path: node.path
|
|
219
|
-
}, {
|
|
200
|
+
const suspenseInfiniteHookFile = resolver.resolveFile(require_components.operationFileEntry(node, suspenseInfiniteHookName), {
|
|
220
201
|
root,
|
|
221
202
|
output,
|
|
222
203
|
group: group ?? void 0
|
|
@@ -234,12 +215,7 @@ const hookOptionsGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
234
215
|
if (isMutationOp) {
|
|
235
216
|
const mutationOptionsName = resolver.resolveMutationOptionsName(node);
|
|
236
217
|
const mutationHookName = resolver.resolveMutationName(node);
|
|
237
|
-
const mutationHookFile = resolver.resolveFile({
|
|
238
|
-
name: mutationHookName,
|
|
239
|
-
extname: ".ts",
|
|
240
|
-
tag: node.tags[0] ?? "default",
|
|
241
|
-
path: node.path
|
|
242
|
-
}, {
|
|
218
|
+
const mutationHookFile = resolver.resolveFile(require_components.operationFileEntry(node, mutationHookName), {
|
|
243
219
|
root,
|
|
244
220
|
output,
|
|
245
221
|
group: group ?? void 0
|
|
@@ -298,6 +274,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
298
274
|
name: "react-infinite-query",
|
|
299
275
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
300
276
|
operation(node, ctx) {
|
|
277
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
301
278
|
const { config, driver, resolver, root } = ctx;
|
|
302
279
|
const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
303
280
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
@@ -319,22 +296,12 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
319
296
|
const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node);
|
|
320
297
|
const clientBaseName = resolver.resolveInfiniteClientName(node);
|
|
321
298
|
const meta = {
|
|
322
|
-
file: resolver.resolveFile({
|
|
323
|
-
name: queryName,
|
|
324
|
-
extname: ".ts",
|
|
325
|
-
tag: node.tags[0] ?? "default",
|
|
326
|
-
path: node.path
|
|
327
|
-
}, {
|
|
299
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
328
300
|
root,
|
|
329
301
|
output,
|
|
330
302
|
group: group ?? void 0
|
|
331
303
|
}),
|
|
332
|
-
fileTs: tsResolver.resolveFile({
|
|
333
|
-
name: node.operationId,
|
|
334
|
-
extname: ".ts",
|
|
335
|
-
tag: node.tags[0] ?? "default",
|
|
336
|
-
path: node.path
|
|
337
|
-
}, {
|
|
304
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
338
305
|
root,
|
|
339
306
|
output: pluginTs.options?.output ?? output,
|
|
340
307
|
group: pluginTs.options?.group ?? void 0
|
|
@@ -347,12 +314,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
347
314
|
});
|
|
348
315
|
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
349
316
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
350
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
351
|
-
name: node.operationId,
|
|
352
|
-
extname: ".ts",
|
|
353
|
-
tag: node.tags[0] ?? "default",
|
|
354
|
-
path: node.path
|
|
355
|
-
}, {
|
|
317
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
356
318
|
root,
|
|
357
319
|
output: pluginZod?.options?.output ?? output,
|
|
358
320
|
group: pluginZod?.options?.group ?? void 0
|
|
@@ -361,12 +323,7 @@ const infiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
361
323
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
362
324
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
363
325
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
364
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
365
|
-
name: node.operationId,
|
|
366
|
-
extname: ".ts",
|
|
367
|
-
tag: node.tags[0] ?? "default",
|
|
368
|
-
path: node.path
|
|
369
|
-
}, {
|
|
326
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
370
327
|
root,
|
|
371
328
|
output: clientPlugin?.options?.output ?? output,
|
|
372
329
|
group: clientPlugin?.options?.group ?? void 0
|
|
@@ -550,6 +507,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
550
507
|
name: "react-query-mutation",
|
|
551
508
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
552
509
|
operation(node, ctx) {
|
|
510
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
553
511
|
const { config, driver, resolver, root } = ctx;
|
|
554
512
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
555
513
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
@@ -564,22 +522,12 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
564
522
|
const mutationKeyName = resolver.resolveMutationKeyName(node);
|
|
565
523
|
const clientName = resolver.resolveClientName(node);
|
|
566
524
|
const meta = {
|
|
567
|
-
file: resolver.resolveFile({
|
|
568
|
-
name: mutationHookName,
|
|
569
|
-
extname: ".ts",
|
|
570
|
-
tag: node.tags[0] ?? "default",
|
|
571
|
-
path: node.path
|
|
572
|
-
}, {
|
|
525
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, mutationHookName), {
|
|
573
526
|
root,
|
|
574
527
|
output,
|
|
575
528
|
group: group ?? void 0
|
|
576
529
|
}),
|
|
577
|
-
fileTs: tsResolver.resolveFile({
|
|
578
|
-
name: node.operationId,
|
|
579
|
-
extname: ".ts",
|
|
580
|
-
tag: node.tags[0] ?? "default",
|
|
581
|
-
path: node.path
|
|
582
|
-
}, {
|
|
530
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
583
531
|
root,
|
|
584
532
|
output: pluginTs.options?.output ?? output,
|
|
585
533
|
group: pluginTs.options?.group ?? void 0
|
|
@@ -591,12 +539,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
591
539
|
});
|
|
592
540
|
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
593
541
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
594
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
595
|
-
name: node.operationId,
|
|
596
|
-
extname: ".ts",
|
|
597
|
-
tag: node.tags[0] ?? "default",
|
|
598
|
-
path: node.path
|
|
599
|
-
}, {
|
|
542
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
600
543
|
root,
|
|
601
544
|
output: pluginZod?.options?.output ?? output,
|
|
602
545
|
group: pluginZod?.options?.group ?? void 0
|
|
@@ -605,12 +548,7 @@ const mutationGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
605
548
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
606
549
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
607
550
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
608
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
609
|
-
name: node.operationId,
|
|
610
|
-
extname: ".ts",
|
|
611
|
-
tag: node.tags[0] ?? "default",
|
|
612
|
-
path: node.path
|
|
613
|
-
}, {
|
|
551
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
614
552
|
root,
|
|
615
553
|
output: clientPlugin?.options?.output ?? output,
|
|
616
554
|
group: clientPlugin?.options?.group ?? void 0
|
|
@@ -780,6 +718,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
780
718
|
name: "react-query",
|
|
781
719
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
782
720
|
operation(node, ctx) {
|
|
721
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
783
722
|
const { config, driver, resolver, root } = ctx;
|
|
784
723
|
const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
785
724
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
@@ -795,22 +734,12 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
795
734
|
const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node);
|
|
796
735
|
const clientName = resolver.resolveClientName(node);
|
|
797
736
|
const meta = {
|
|
798
|
-
file: resolver.resolveFile({
|
|
799
|
-
name: queryName,
|
|
800
|
-
extname: ".ts",
|
|
801
|
-
tag: node.tags[0] ?? "default",
|
|
802
|
-
path: node.path
|
|
803
|
-
}, {
|
|
737
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
804
738
|
root,
|
|
805
739
|
output,
|
|
806
740
|
group: group ?? void 0
|
|
807
741
|
}),
|
|
808
|
-
fileTs: tsResolver.resolveFile({
|
|
809
|
-
name: node.operationId,
|
|
810
|
-
extname: ".ts",
|
|
811
|
-
tag: node.tags[0] ?? "default",
|
|
812
|
-
path: node.path
|
|
813
|
-
}, {
|
|
742
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
814
743
|
root,
|
|
815
744
|
output: pluginTs.options?.output ?? output,
|
|
816
745
|
group: pluginTs.options?.group ?? void 0
|
|
@@ -823,12 +752,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
823
752
|
});
|
|
824
753
|
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
825
754
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
826
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
827
|
-
name: node.operationId,
|
|
828
|
-
extname: ".ts",
|
|
829
|
-
tag: node.tags[0] ?? "default",
|
|
830
|
-
path: node.path
|
|
831
|
-
}, {
|
|
755
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
832
756
|
root,
|
|
833
757
|
output: pluginZod?.options?.output ?? output,
|
|
834
758
|
group: pluginZod?.options?.group ?? void 0
|
|
@@ -837,12 +761,7 @@ const queryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
837
761
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
838
762
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
839
763
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
840
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
841
|
-
name: node.operationId,
|
|
842
|
-
extname: ".ts",
|
|
843
|
-
tag: node.tags[0] ?? "default",
|
|
844
|
-
path: node.path
|
|
845
|
-
}, {
|
|
764
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
846
765
|
root,
|
|
847
766
|
output: clientPlugin?.options?.output ?? output,
|
|
848
767
|
group: clientPlugin?.options?.group ?? void 0
|
|
@@ -1017,6 +936,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1017
936
|
name: "react-suspense-infinite-query",
|
|
1018
937
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
1019
938
|
operation(node, ctx) {
|
|
939
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1020
940
|
const { config, driver, resolver, root } = ctx;
|
|
1021
941
|
const { output, query, mutation, infinite, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
1022
942
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
@@ -1039,22 +959,12 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1039
959
|
const queryKeyTypeName = resolver.resolveSuspenseInfiniteQueryKeyTypeName(node);
|
|
1040
960
|
const clientBaseName = resolver.resolveSuspenseInfiniteClientName(node);
|
|
1041
961
|
const meta = {
|
|
1042
|
-
file: resolver.resolveFile({
|
|
1043
|
-
name: queryName,
|
|
1044
|
-
extname: ".ts",
|
|
1045
|
-
tag: node.tags[0] ?? "default",
|
|
1046
|
-
path: node.path
|
|
1047
|
-
}, {
|
|
962
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
1048
963
|
root,
|
|
1049
964
|
output,
|
|
1050
965
|
group: group ?? void 0
|
|
1051
966
|
}),
|
|
1052
|
-
fileTs: tsResolver.resolveFile({
|
|
1053
|
-
name: node.operationId,
|
|
1054
|
-
extname: ".ts",
|
|
1055
|
-
tag: node.tags[0] ?? "default",
|
|
1056
|
-
path: node.path
|
|
1057
|
-
}, {
|
|
967
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1058
968
|
root,
|
|
1059
969
|
output: pluginTs.options?.output ?? output,
|
|
1060
970
|
group: pluginTs.options?.group ?? void 0
|
|
@@ -1066,12 +976,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1066
976
|
});
|
|
1067
977
|
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
1068
978
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
1069
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
1070
|
-
name: node.operationId,
|
|
1071
|
-
extname: ".ts",
|
|
1072
|
-
tag: node.tags[0] ?? "default",
|
|
1073
|
-
path: node.path
|
|
1074
|
-
}, {
|
|
979
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1075
980
|
root,
|
|
1076
981
|
output: pluginZod?.options?.output ?? output,
|
|
1077
982
|
group: pluginZod?.options?.group ?? void 0
|
|
@@ -1080,12 +985,7 @@ const suspenseInfiniteQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1080
985
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
1081
986
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
1082
987
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
1083
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
1084
|
-
name: node.operationId,
|
|
1085
|
-
extname: ".ts",
|
|
1086
|
-
tag: node.tags[0] ?? "default",
|
|
1087
|
-
path: node.path
|
|
1088
|
-
}, {
|
|
988
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1089
989
|
root,
|
|
1090
990
|
output: clientPlugin?.options?.output ?? output,
|
|
1091
991
|
group: clientPlugin?.options?.group ?? void 0
|
|
@@ -1270,6 +1170,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1270
1170
|
name: "react-suspense-query",
|
|
1271
1171
|
renderer: _kubb_renderer_jsx.jsxRendererSync,
|
|
1272
1172
|
operation(node, ctx) {
|
|
1173
|
+
if (!_kubb_core.ast.isHttpOperationNode(node)) return null;
|
|
1273
1174
|
const { config, driver, resolver, root } = ctx;
|
|
1274
1175
|
const { output, query, mutation, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options;
|
|
1275
1176
|
const pluginTs = driver.getPlugin(_kubb_plugin_ts.pluginTsName);
|
|
@@ -1285,22 +1186,12 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1285
1186
|
const queryKeyTypeName = resolver.resolveSuspenseQueryKeyTypeName(node);
|
|
1286
1187
|
const clientName = resolver.resolveSuspenseClientName(node);
|
|
1287
1188
|
const meta = {
|
|
1288
|
-
file: resolver.resolveFile({
|
|
1289
|
-
name: queryName,
|
|
1290
|
-
extname: ".ts",
|
|
1291
|
-
tag: node.tags[0] ?? "default",
|
|
1292
|
-
path: node.path
|
|
1293
|
-
}, {
|
|
1189
|
+
file: resolver.resolveFile(require_components.operationFileEntry(node, queryName), {
|
|
1294
1190
|
root,
|
|
1295
1191
|
output,
|
|
1296
1192
|
group: group ?? void 0
|
|
1297
1193
|
}),
|
|
1298
|
-
fileTs: tsResolver.resolveFile({
|
|
1299
|
-
name: node.operationId,
|
|
1300
|
-
extname: ".ts",
|
|
1301
|
-
tag: node.tags[0] ?? "default",
|
|
1302
|
-
path: node.path
|
|
1303
|
-
}, {
|
|
1194
|
+
fileTs: tsResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1304
1195
|
root,
|
|
1305
1196
|
output: pluginTs.options?.output ?? output,
|
|
1306
1197
|
group: pluginTs.options?.group ?? void 0
|
|
@@ -1313,12 +1204,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1313
1204
|
});
|
|
1314
1205
|
const pluginZod = parser === "zod" ? driver.getPlugin(_kubb_plugin_zod.pluginZodName) : null;
|
|
1315
1206
|
const zodResolver = pluginZod ? driver.getResolver(_kubb_plugin_zod.pluginZodName) : null;
|
|
1316
|
-
const fileZod = zodResolver ? zodResolver.resolveFile({
|
|
1317
|
-
name: node.operationId,
|
|
1318
|
-
extname: ".ts",
|
|
1319
|
-
tag: node.tags[0] ?? "default",
|
|
1320
|
-
path: node.path
|
|
1321
|
-
}, {
|
|
1207
|
+
const fileZod = zodResolver ? zodResolver.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1322
1208
|
root,
|
|
1323
1209
|
output: pluginZod?.options?.output ?? output,
|
|
1324
1210
|
group: pluginZod?.options?.group ?? void 0
|
|
@@ -1327,12 +1213,7 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1327
1213
|
const clientPlugin = driver.getPlugin(_kubb_plugin_client.pluginClientName);
|
|
1328
1214
|
const shouldUseClientPlugin = clientPlugin?.name === _kubb_plugin_client.pluginClientName && clientOptions.clientType !== "class";
|
|
1329
1215
|
const clientResolver = shouldUseClientPlugin ? driver.getResolver(_kubb_plugin_client.pluginClientName) : null;
|
|
1330
|
-
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile({
|
|
1331
|
-
name: node.operationId,
|
|
1332
|
-
extname: ".ts",
|
|
1333
|
-
tag: node.tags[0] ?? "default",
|
|
1334
|
-
path: node.path
|
|
1335
|
-
}, {
|
|
1216
|
+
const clientFile = shouldUseClientPlugin ? clientResolver?.resolveFile(require_components.operationFileEntry(node, node.operationId), {
|
|
1336
1217
|
root,
|
|
1337
1218
|
output: clientPlugin?.options?.output ?? output,
|
|
1338
1219
|
group: clientPlugin?.options?.group ?? void 0
|
|
@@ -1460,7 +1341,8 @@ const suspenseQueryGenerator = (0, _kubb_core.defineGenerator)({
|
|
|
1460
1341
|
paramsCasing,
|
|
1461
1342
|
paramsType,
|
|
1462
1343
|
pathParamsType,
|
|
1463
|
-
dataReturnType: clientOptions.dataReturnType || "data"
|
|
1344
|
+
dataReturnType: clientOptions.dataReturnType || "data",
|
|
1345
|
+
suspense: true
|
|
1464
1346
|
}),
|
|
1465
1347
|
suspense && /* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsxs)(_kubb_renderer_jsx_jsx_runtime.Fragment, { children: [
|
|
1466
1348
|
/* @__PURE__ */ (0, _kubb_renderer_jsx_jsx_runtime.jsx)(_kubb_renderer_jsx.File.Import, {
|
|
@@ -1539,4 +1421,4 @@ Object.defineProperty(exports, "suspenseQueryGenerator", {
|
|
|
1539
1421
|
}
|
|
1540
1422
|
});
|
|
1541
1423
|
|
|
1542
|
-
//# sourceMappingURL=generators
|
|
1424
|
+
//# sourceMappingURL=generators--AcF4Y4n.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators--AcF4Y4n.cjs","names":["jsxRendererSync","path","fs","File","Function","jsxRendererSync","ast","resolveOperationOverrides","operationFileEntry","File","getOperationParameters","Type","jsxRendererSync","ast","pluginTsName","getOperationParameters","operationFileEntry","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","InfiniteQueryOptions","InfiniteQuery","jsxRendererSync","ast","pluginTsName","operationFileEntry","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","MutationKey","Client","MutationOptions","Mutation","jsxRendererSync","ast","pluginTsName","operationFileEntry","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","QueryOptions","Query","jsxRendererSync","ast","pluginTsName","getOperationParameters","operationFileEntry","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","SuspenseInfiniteQueryOptions","SuspenseInfiniteQuery","jsxRendererSync","ast","pluginTsName","operationFileEntry","resolveOperationTypeNames","pluginZodName","resolveZodSchemaNames","pluginClientName","File","path","QueryKey","Client","QueryOptions","SuspenseQuery"],"sources":["../src/generators/customHookOptionsFileGenerator.tsx","../src/generators/hookOptionsGenerator.tsx","../src/generators/infiniteQueryGenerator.tsx","../src/generators/mutationGenerator.tsx","../src/generators/queryGenerator.tsx","../src/generators/suspenseInfiniteQueryGenerator.tsx","../src/generators/suspenseQueryGenerator.tsx"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\n\nimport { defineGenerator } from '@kubb/core'\nimport { File, Function, jsxRendererSync } from '@kubb/renderer-jsx'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Scaffolds the user-editable `useCustomHookOptions` file when\n * `pluginReactQuery({ customOptions: { ... } })` is configured. The file is\n * only created when it does not already exist, so user edits persist across\n * regeneration.\n */\nexport const customHookOptionsFileGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-custom-hook-options-file',\n renderer: jsxRendererSync,\n operations(nodes, ctx) {\n const { resolver, config, root } = ctx\n const { output, customOptions, query, group } = ctx.options\n\n if (!customOptions) return null\n\n const override = output.override ?? config.output.override ?? false\n const { importPath, name } = customOptions\n const hookOptionsName = resolver.resolveHookOptionsName()\n const customHookOptionsName = resolver.resolveCustomHookOptionsName()\n\n const reactQueryImportPath = query ? query.importPath : '@tanstack/react-query'\n\n let hookFilePath: string\n const firstNode = nodes[0]\n if (firstNode) {\n const hookName = resolver.resolveQueryName(firstNode)\n const hookFile = resolver.resolveFile(\n { name: hookName, extname: '.ts', tag: firstNode.tags[0] ?? 'default', path: firstNode.path },\n { root, output, group: group ?? undefined },\n )\n hookFilePath = hookFile.path\n } else {\n hookFilePath = path.resolve(root, 'index.ts')\n }\n\n const ensureExtension = (filePath: string, extname: string) => {\n if (path.extname(filePath) === '') return filePath + extname\n return filePath\n }\n\n const basePath = path.dirname(hookFilePath)\n const actualFilePath = ensureExtension(importPath, '.ts')\n const file = {\n baseName: path.basename(actualFilePath) as `${string}.${string}`,\n name: path.basename(actualFilePath, path.extname(actualFilePath)),\n path: path.resolve(basePath, actualFilePath),\n }\n\n if (fs.existsSync(file.path) && !override) return null\n\n return (\n <File baseName={file.baseName} path={file.path}>\n <File.Import name={['QueryClient']} path={reactQueryImportPath} isTypeOnly />\n <File.Import name={['useQueryClient']} path={reactQueryImportPath} />\n <File.Import name={[hookOptionsName]} root={file.path} path={path.resolve(root, './index.ts')} />\n <File.Source name={file.name} isExportable isIndexable>\n <Function name={customHookOptionsName} params=\"{ queryClient }: { queryClient: QueryClient }\" returnType={`Partial<${hookOptionsName}>`}>\n {`return {\n // TODO: Define custom hook options here\n // Example:\n // useUpdatePetHook: {\n // onSuccess: () => {\n // void queryClient.invalidateQueries({ queryKey: ['pet'] })\n // }\n // }\n }`}\n </Function>\n <Function\n name={name}\n generics={`T extends keyof ${hookOptionsName}`}\n params=\"{ hookName, operationId }: { hookName: T, operationId: string }\"\n returnType={`${hookOptionsName}[T]`}\n export\n >\n {`const queryClient = useQueryClient()\n const customOptions = ${customHookOptionsName}({ queryClient })\n return customOptions[hookName] ?? {}`}\n </Function>\n </File.Source>\n </File>\n )\n },\n})\n","import { getOperationParameters, operationFileEntry } from '@internals/shared'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { File, jsxRendererSync, Type } from '@kubb/renderer-jsx'\nimport type { KubbReactNode } from '@kubb/renderer-jsx/types'\nimport { difference } from 'remeda'\nimport type { PluginReactQuery } from '../types'\nimport { resolveOperationOverrides } from '../utils.ts'\n\ntype QueryOption = PluginReactQuery['resolvedOptions']['query']\ntype MutationOption = PluginReactQuery['resolvedOptions']['mutation']\n\n/**\n * Emits the `HookOptions` type used by `customOptions`. Enabled when\n * `pluginReactQuery({ customOptions: { ... } })`. The generated type lists\n * every hook keyed by name so user-supplied options stay in sync with the\n * generated hooks at compile time.\n */\nexport const hookOptionsGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-hook-options',\n renderer: jsxRendererSync,\n operations(nodes, ctx) {\n const { resolver, config, root } = ctx\n const { output, customOptions, query, mutation, suspense, infinite, group, override } = ctx.options\n\n if (!customOptions) return null\n\n const name = resolver.resolveHookOptionsName()\n const resolvedFile = resolver.resolveFile({ name, extname: '.ts' }, { root, output, group: group ?? undefined })\n const hookOptionsFile = {\n ...resolvedFile,\n baseName: `${name}.ts` as const,\n path: resolvedFile.path.replace(/[^/\\\\]+\\.ts$/, `${name}.ts`),\n }\n\n const imports: Array<KubbReactNode> = []\n const hookOptions: Record<string, string> = {}\n\n for (const node of nodes) {\n if (!ast.isHttpOperationNode(node)) continue\n const opOverrides = resolveOperationOverrides(node, override)\n const nodeQuery: QueryOption = 'query' in opOverrides ? (opOverrides.query as QueryOption) : query\n const nodeMutation: MutationOption = 'mutation' in opOverrides ? (opOverrides.mutation as MutationOption) : mutation\n const nodeInfinite = 'infinite' in opOverrides ? opOverrides.infinite : infinite\n const nodeInfiniteOptions = nodeInfinite && typeof nodeInfinite === 'object' ? nodeInfinite : null\n\n // query: false means \"still a query but skip the useQuery hook\"\n const isQueryOp =\n nodeQuery === false\n ? !!query && query.methods.some((m) => node.method.toLowerCase() === m.toLowerCase())\n : !!nodeQuery && nodeQuery.methods.some((m) => node.method.toLowerCase() === m.toLowerCase())\n const isMutationOp =\n nodeMutation !== false &&\n !isQueryOp &&\n difference(nodeMutation ? nodeMutation.methods : [], nodeQuery ? nodeQuery.methods : []).some((m) => node.method.toLowerCase() === m.toLowerCase())\n const isSuspenseOp = !!suspense\n const isInfiniteOp = !!nodeInfiniteOptions\n\n if (isQueryOp) {\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryHookName = resolver.resolveQueryName(node)\n const queryHookFile = resolver.resolveFile(operationFileEntry(node, queryHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[queryOptionsName]} root={hookOptionsFile.path} path={queryHookFile.path} />)\n hookOptions[queryHookName] = `Partial<ReturnType<typeof ${queryOptionsName}>>`\n\n if (isSuspenseOp) {\n const suspenseOptionsName = resolver.resolveSuspenseQueryOptionsName(node)\n const suspenseHookName = resolver.resolveSuspenseQueryName(node)\n const suspenseHookFile = resolver.resolveFile(operationFileEntry(node, suspenseHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[suspenseOptionsName]} root={hookOptionsFile.path} path={suspenseHookFile.path} />)\n hookOptions[suspenseHookName] = `Partial<ReturnType<typeof ${suspenseOptionsName}>>`\n }\n\n if (isInfiniteOp) {\n // Validate queryParam\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = nodeInfiniteOptions!.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === nodeInfiniteOptions!.queryParam) : false\n\n if (hasQueryParam) {\n const infiniteOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const infiniteHookName = resolver.resolveInfiniteQueryName(node)\n const infiniteHookFile = resolver.resolveFile(operationFileEntry(node, infiniteHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[infiniteOptionsName]} root={hookOptionsFile.path} path={infiniteHookFile.path} />)\n hookOptions[infiniteHookName] = `Partial<ReturnType<typeof ${infiniteOptionsName}>>`\n\n if (isSuspenseOp) {\n const suspenseInfiniteOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node)\n const suspenseInfiniteHookName = resolver.resolveSuspenseInfiniteQueryName(node)\n const suspenseInfiniteHookFile = resolver.resolveFile(operationFileEntry(node, suspenseInfiniteHookName), {\n root,\n output,\n group: group ?? undefined,\n })\n imports.push(<File.Import name={[suspenseInfiniteOptionsName]} root={hookOptionsFile.path} path={suspenseInfiniteHookFile.path} />)\n hookOptions[suspenseInfiniteHookName] = `Partial<ReturnType<typeof ${suspenseInfiniteOptionsName}>>`\n }\n }\n }\n }\n\n if (isMutationOp) {\n const mutationOptionsName = resolver.resolveMutationOptionsName(node)\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationHookFile = resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined })\n imports.push(<File.Import name={[mutationOptionsName]} root={hookOptionsFile.path} path={mutationHookFile.path} />)\n hookOptions[mutationHookName] = `Partial<ReturnType<typeof ${mutationOptionsName}>>`\n }\n }\n\n return (\n <File\n baseName={hookOptionsFile.baseName}\n path={hookOptionsFile.path}\n meta={hookOptionsFile.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: hookOptionsFile.path, baseName: hookOptionsFile.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: hookOptionsFile.path, baseName: hookOptionsFile.baseName } })}\n >\n {imports}\n <File.Source name={name} isExportable isIndexable isTypeOnly>\n <Type export name={name}>\n {`{ ${Object.keys(hookOptions)\n .map((key) => `${JSON.stringify(key)}: ${hookOptions[key]}`)\n .join(', ')} }`}\n </Type>\n </File.Source>\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { InfiniteQuery, InfiniteQueryOptions, QueryKey } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useInfiniteQuery` hooks. Enabled when\n * `pluginReactQuery({ infinite: { ... } })`. Emits one `useFooInfiniteQuery`\n * hook per query operation, wiring the configured `nextParam` /\n * `previousParam` paths into TanStack Query's cursor-based pagination.\n */\nexport const infiniteQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-infinite-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, infinite, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n // cursorParam validation against response schema keys is skipped in v5 (complex schema inspection)\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <InfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'InfiniteQueryObserverOptions', 'UseInfiniteQueryResult']} path={importPath} isTypeOnly />\n\n <InfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={customOptions}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Mutation, MutationKey, MutationOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useMutation` hooks. Emits one `useFooMutation` hook\n * per POST/PUT/DELETE operation (configurable via `mutation.methods`) plus\n * the matching `fooMutationKey` / `fooMutationOptions` helpers.\n */\nexport const mutationGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query-mutation',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isMutation) return null\n\n const importPath = mutation ? mutation.importPath : '@tanstack/react-query'\n\n const mutationHookName = resolver.resolveMutationName(node)\n const mutationTypeName = resolver.resolveMutationTypeName(node)\n const mutationOptionsName = resolver.resolveMutationOptionsName(node)\n const mutationKeyName = resolver.resolveMutationKeyName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, mutationHookName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && node.requestBody?.content?.some((e) => e.contentType === 'multipart/form-data') && (\n <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />\n )}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <MutationKey name={mutationKeyName} node={node} pathParamsType={pathParamsType} paramsCasing={paramsCasing} transformer={ctx.options.mutationKey} />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['mutationOptions']} path={importPath} />\n\n <MutationOptions\n name={mutationOptionsName}\n clientName={resolvedClientName}\n mutationKeyName={mutationKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {mutation && (\n <>\n <File.Import name={['useMutation']} path={importPath} />\n <File.Import name={['UseMutationOptions', 'UseMutationResult', 'QueryClient']} path={importPath} isTypeOnly />\n <Mutation\n name={mutationHookName}\n typeName={mutationTypeName}\n mutationOptionsName={mutationOptionsName}\n mutationKeyName={mutationKeyName}\n node={node}\n tsResolver={tsResolver}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={paramsCasing}\n pathParamsType={pathParamsType}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { Query, QueryKey, QueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useQuery` hooks. Emits one `useFooQuery` hook per\n * GET operation (configurable via `query.methods`) plus the matching\n * `fooQueryKey` / `fooQueryOptions` helpers.\n */\nexport const queryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n // query: false means \"this IS a query op, but skip the useQuery hook\"\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n\n if (!isQuery || isMutation) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveQueryName(node)\n const queryOptionsName = resolver.resolveQueryOptionsName(node)\n const queryKeyName = resolver.resolveQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveQueryKeyTypeName(node)\n const clientName = resolver.resolveClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n />\n\n {query && (\n <>\n <File.Import name={['useQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'QueryObserverOptions', 'UseQueryResult']} path={importPath} isTypeOnly />\n <Query\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { getOperationParameters, operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { QueryKey, SuspenseInfiniteQuery, SuspenseInfiniteQueryOptions } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useSuspenseInfiniteQuery` hooks. Enabled when both\n * `suspense` and `infinite` are configured. Combines suspense semantics with\n * cursor-based pagination — handlers throw promises while loading and pull\n * additional pages on demand.\n */\nexport const suspenseInfiniteQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-suspense-infinite-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const {\n output,\n query,\n mutation,\n infinite,\n suspense,\n paramsCasing,\n paramsType,\n pathParamsType,\n parser,\n client: clientOptions,\n group,\n customOptions,\n } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n const isSuspense = !!suspense\n const infiniteOptions = infinite && typeof infinite === 'object' ? infinite : null\n\n if (!isQuery || isMutation || !isSuspense || !infiniteOptions) return null\n\n // Validate queryParam exists in operation's query parameters\n const normalizeKey = (key: string) => key.replace(/\\?$/, '')\n const queryParamKeys = getOperationParameters(node).query.map((p) => p.name)\n const hasQueryParam = infiniteOptions.queryParam ? queryParamKeys.some((k) => normalizeKey(k) === infiniteOptions.queryParam) : false\n const hasCursorParam = !infiniteOptions.cursorParam || true\n\n if (!hasQueryParam || !hasCursorParam) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveSuspenseInfiniteQueryName(node)\n const queryOptionsName = resolver.resolveSuspenseInfiniteQueryOptionsName(node)\n const queryKeyName = resolver.resolveSuspenseInfiniteQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveSuspenseInfiniteQueryKeyTypeName(node)\n const clientBaseName = resolver.resolveSuspenseInfiniteClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, { paramsCasing, order: 'body-response-first' })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientBaseName) : clientBaseName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['InfiniteData']} isTypeOnly path={importPath} />\n <File.Import name={['infiniteQueryOptions']} path={importPath} />\n\n <SuspenseInfiniteQueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n cursorParam={infiniteOptions.cursorParam}\n nextParam={infiniteOptions.nextParam}\n previousParam={infiniteOptions.previousParam}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n />\n\n <File.Import name={['useSuspenseInfiniteQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseInfiniteQueryOptions', 'UseSuspenseInfiniteQueryResult']} path={importPath} isTypeOnly />\n\n <SuspenseInfiniteQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n initialPageParam={infiniteOptions.initialPageParam}\n queryParam={infiniteOptions.queryParam}\n customOptions={customOptions}\n />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { operationFileEntry, resolveOperationTypeNames } from '@internals/shared'\nimport { resolveZodSchemaNames } from '@internals/tanstack-query'\nimport { ast, defineGenerator } from '@kubb/core'\nimport { Client, pluginClientName } from '@kubb/plugin-client'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File, jsxRendererSync } from '@kubb/renderer-jsx'\nimport { difference } from 'remeda'\nimport { QueryKey, QueryOptions, SuspenseQuery } from '../components'\nimport type { PluginReactQuery } from '../types'\n\n/**\n * Built-in generator for `useSuspenseQuery` hooks. Enabled when\n * `pluginReactQuery({ suspense: {} })`. Emits one `useFooSuspenseQuery` hook\n * per query operation. Suspense queries throw promises while loading and\n * require a `<Suspense>` boundary in the React tree. TanStack Query v5+ only.\n */\nexport const suspenseQueryGenerator = defineGenerator<PluginReactQuery>({\n name: 'react-suspense-query',\n renderer: jsxRendererSync,\n operation(node, ctx) {\n if (!ast.isHttpOperationNode(node)) return null\n const { config, driver, resolver, root } = ctx\n const { output, query, mutation, suspense, paramsCasing, paramsType, pathParamsType, parser, client: clientOptions, group, customOptions } = ctx.options\n\n const pluginTs = driver.getPlugin(pluginTsName)\n if (!pluginTs) return null\n const tsResolver = driver.getResolver(pluginTsName)\n\n // query: false means \"this IS a query op\" (suspense hooks still generate)\n const isQuery = query === false || (!!query && query.methods.some((method) => node.method.toLowerCase() === method.toLowerCase()))\n const isMutation =\n mutation !== false &&\n !isQuery &&\n difference(mutation ? mutation.methods : [], query ? query.methods : []).some((method) => node.method.toLowerCase() === method.toLowerCase())\n const isSuspense = !!suspense\n\n if (!isQuery || isMutation || !isSuspense) return null\n\n const importPath = query ? query.importPath : '@tanstack/react-query'\n\n const queryName = resolver.resolveSuspenseQueryName(node)\n const queryOptionsName = resolver.resolveSuspenseQueryOptionsName(node)\n const queryKeyName = resolver.resolveSuspenseQueryKeyName(node)\n const queryKeyTypeName = resolver.resolveSuspenseQueryKeyTypeName(node)\n const clientName = resolver.resolveSuspenseClientName(node)\n\n const meta = {\n file: resolver.resolveFile(operationFileEntry(node, queryName), { root, output, group: group ?? undefined }),\n fileTs: tsResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginTs.options?.output ?? output,\n group: pluginTs.options?.group ?? undefined,\n }),\n }\n\n const importedTypeNames = resolveOperationTypeNames(node, tsResolver, {\n paramsCasing,\n exclude: [queryKeyTypeName],\n order: 'body-response-first',\n })\n\n const pluginZod = parser === 'zod' ? driver.getPlugin(pluginZodName) : null\n const zodResolver = pluginZod ? driver.getResolver(pluginZodName) : null\n const fileZod = zodResolver\n ? zodResolver.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: pluginZod?.options?.output ?? output,\n group: pluginZod?.options?.group ?? undefined,\n })\n : null\n const zodSchemaNames = resolveZodSchemaNames(node, zodResolver)\n\n const clientPlugin = driver.getPlugin(pluginClientName)\n const hasClientPlugin = clientPlugin?.name === pluginClientName\n const shouldUseClientPlugin = hasClientPlugin && clientOptions.clientType !== 'class'\n const clientResolver = shouldUseClientPlugin ? driver.getResolver(pluginClientName) : null\n\n const clientFile = shouldUseClientPlugin\n ? clientResolver?.resolveFile(operationFileEntry(node, node.operationId), {\n root,\n output: clientPlugin?.options?.output ?? output,\n group: clientPlugin?.options?.group ?? undefined,\n })\n : null\n\n const resolvedClientName = shouldUseClientPlugin ? (clientResolver?.resolveName(node.operationId) ?? clientName) : clientName\n\n return (\n <File\n baseName={meta.file.baseName}\n path={meta.file.path}\n meta={meta.file.meta}\n banner={resolver.resolveBanner(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n footer={resolver.resolveFooter(ctx.meta, { output, config, file: { path: meta.file.path, baseName: meta.file.baseName } })}\n >\n {fileZod && zodSchemaNames.length > 0 && <File.Import name={zodSchemaNames} root={meta.file.path} path={fileZod.path} />}\n {clientOptions.importPath ? (\n <>\n {!shouldUseClientPlugin && <File.Import name={'client'} path={clientOptions.importPath} />}\n <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={clientOptions.importPath} isTypeOnly />\n {clientOptions.dataReturnType === 'full' && <File.Import name={['ResponseConfig']} path={clientOptions.importPath} isTypeOnly />}\n </>\n ) : (\n <>\n {!shouldUseClientPlugin && <File.Import name={['client']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} />}\n <File.Import\n name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n root={meta.file.path}\n path={path.resolve(root, '.kubb/client.ts')}\n isTypeOnly\n />\n {clientOptions.dataReturnType === 'full' && (\n <File.Import name={['ResponseConfig']} root={meta.file.path} path={path.resolve(root, '.kubb/client.ts')} isTypeOnly />\n )}\n </>\n )}\n {shouldUseClientPlugin && clientFile && <File.Import name={[resolvedClientName]} root={meta.file.path} path={clientFile.path} />}\n {!shouldUseClientPlugin && <File.Import name={['buildFormData']} root={meta.file.path} path={path.resolve(root, '.kubb/config.ts')} />}\n {customOptions && <File.Import name={[customOptions.name]} path={customOptions.importPath} />}\n {meta.fileTs && importedTypeNames.length > 0 && (\n <File.Import name={Array.from(new Set(importedTypeNames))} root={meta.file.path} path={meta.fileTs.path} isTypeOnly />\n )}\n\n <QueryKey\n name={queryKeyName}\n typeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n pathParamsType={pathParamsType}\n paramsCasing={paramsCasing}\n transformer={ctx.options.queryKey}\n />\n\n {!shouldUseClientPlugin && (\n <Client\n name={resolvedClientName}\n baseURL={clientOptions.baseURL}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n paramsCasing={clientOptions.paramsCasing || paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n parser={parser}\n node={node}\n tsResolver={tsResolver}\n zodResolver={zodResolver}\n />\n )}\n\n <File.Import name={['queryOptions']} path={importPath} />\n\n <QueryOptions\n name={queryOptionsName}\n clientName={resolvedClientName}\n queryKeyName={queryKeyName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n suspense\n />\n\n {suspense && (\n <>\n <File.Import name={['useSuspenseQuery']} path={importPath} />\n <File.Import name={['QueryKey', 'QueryClient', 'UseSuspenseQueryOptions', 'UseSuspenseQueryResult']} path={importPath} isTypeOnly />\n <SuspenseQuery\n name={queryName}\n queryOptionsName={queryOptionsName}\n queryKeyName={queryKeyName}\n queryKeyTypeName={queryKeyTypeName}\n node={node}\n tsResolver={tsResolver}\n paramsCasing={paramsCasing}\n paramsType={paramsType}\n pathParamsType={pathParamsType}\n dataReturnType={clientOptions.dataReturnType || 'data'}\n customOptions={customOptions}\n />\n </>\n )}\n </File>\n )\n },\n})\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAaA,MAAa,kCAAA,GAAA,WAAA,iBAAmE;CAC9E,MAAM;CACN,UAAUA,mBAAAA;CACV,WAAW,OAAO,KAAK;EACrB,MAAM,EAAE,UAAU,QAAQ,SAAS;EACnC,MAAM,EAAE,QAAQ,eAAe,OAAO,UAAU,IAAI;EAEpD,IAAI,CAAC,eAAe,OAAO;EAE3B,MAAM,WAAW,OAAO,YAAY,OAAO,OAAO,YAAY;EAC9D,MAAM,EAAE,YAAY,SAAS;EAC7B,MAAM,kBAAkB,SAAS,wBAAwB;EACzD,MAAM,wBAAwB,SAAS,8BAA8B;EAErE,MAAM,uBAAuB,QAAQ,MAAM,aAAa;EAExD,IAAI;EACJ,MAAM,YAAY,MAAM;EACxB,IAAI,WAAW;GACb,MAAM,WAAW,SAAS,iBAAiB,UAAU;GAKrD,eAJiB,SAAS,YACxB;IAAE,MAAM;IAAU,SAAS;IAAO,KAAK,UAAU,KAAK,MAAM;IAAW,MAAM,UAAU;IAAM,EAC7F;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAEtB,CAAC;SAExB,eAAeC,UAAAA,QAAK,QAAQ,MAAM,WAAW;EAG/C,MAAM,mBAAmB,UAAkB,YAAoB;GAC7D,IAAIA,UAAAA,QAAK,QAAQ,SAAS,KAAK,IAAI,OAAO,WAAW;GACrD,OAAO;;EAGT,MAAM,WAAWA,UAAAA,QAAK,QAAQ,aAAa;EAC3C,MAAM,iBAAiB,gBAAgB,YAAY,MAAM;EACzD,MAAM,OAAO;GACX,UAAUA,UAAAA,QAAK,SAAS,eAAe;GACvC,MAAMA,UAAAA,QAAK,SAAS,gBAAgBA,UAAAA,QAAK,QAAQ,eAAe,CAAC;GACjE,MAAMA,UAAAA,QAAK,QAAQ,UAAU,eAAe;GAC7C;EAED,IAAIC,QAAAA,QAAG,WAAW,KAAK,KAAK,IAAI,CAAC,UAAU,OAAO;EAElD,OACE,iBAAA,GAAA,+BAAA,MAACC,mBAAAA,MAAD;GAAM,UAAU,KAAK;GAAU,MAAM,KAAK;aAA1C;IACE,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc;KAAE,MAAM;KAAsB,YAAA;KAAa,CAAA;IAC7E,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,iBAAiB;KAAE,MAAM;KAAwB,CAAA;IACrE,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK;KAAM,MAAMF,UAAAA,QAAK,QAAQ,MAAM,aAAa;KAAI,CAAA;IACjG,iBAAA,GAAA,+BAAA,MAACE,mBAAAA,KAAK,QAAN;KAAa,MAAM,KAAK;KAAM,cAAA;KAAa,aAAA;eAA3C,CACE,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,UAAD;MAAU,MAAM;MAAuB,QAAO;MAAgD,YAAY,WAAW,gBAAgB;gBAClI;;;;;;;;;MASQ,CAAA,EACX,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,UAAD;MACQ;MACN,UAAU,mBAAmB;MAC7B,QAAO;MACP,YAAY,GAAG,gBAAgB;MAC/B,QAAA;gBAEC;oCACuB,sBAAsB;;MAErC,CAAA,CACC;;IACT;;;CAGZ,CAAC;;;;;;;;;ACxEF,MAAa,wBAAA,GAAA,WAAA,iBAAyD;CACpE,MAAM;CACN,UAAUC,mBAAAA;CACV,WAAW,OAAO,KAAK;EACrB,MAAM,EAAE,UAAU,QAAQ,SAAS;EACnC,MAAM,EAAE,QAAQ,eAAe,OAAO,UAAU,UAAU,UAAU,OAAO,aAAa,IAAI;EAE5F,IAAI,CAAC,eAAe,OAAO;EAE3B,MAAM,OAAO,SAAS,wBAAwB;EAC9C,MAAM,eAAe,SAAS,YAAY;GAAE;GAAM,SAAS;GAAO,EAAE;GAAE;GAAM;GAAQ,OAAO,SAAS,KAAA;GAAW,CAAC;EAChH,MAAM,kBAAkB;GACtB,GAAG;GACH,UAAU,GAAG,KAAK;GAClB,MAAM,aAAa,KAAK,QAAQ,gBAAgB,GAAG,KAAK,KAAK;GAC9D;EAED,MAAM,UAAgC,EAAE;EACxC,MAAM,cAAsC,EAAE;EAE9C,KAAK,MAAM,QAAQ,OAAO;GACxB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE;GACpC,MAAM,cAAcC,mBAAAA,0BAA0B,MAAM,SAAS;GAC7D,MAAM,YAAyB,WAAW,cAAe,YAAY,QAAwB;GAC7F,MAAM,eAA+B,cAAc,cAAe,YAAY,WAA8B;GAC5G,MAAM,eAAe,cAAc,cAAc,YAAY,WAAW;GACxE,MAAM,sBAAsB,gBAAgB,OAAO,iBAAiB,WAAW,eAAe;GAG9F,MAAM,YACJ,cAAc,QACV,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,MAAM,KAAK,OAAO,aAAa,KAAK,EAAE,aAAa,CAAC,GACnF,CAAC,CAAC,aAAa,UAAU,QAAQ,MAAM,MAAM,KAAK,OAAO,aAAa,KAAK,EAAE,aAAa,CAAC;GACjG,MAAM,eACJ,iBAAiB,SACjB,CAAC,cAAA,GAAA,OAAA,YACU,eAAe,aAAa,UAAU,EAAE,EAAE,YAAY,UAAU,UAAU,EAAE,CAAC,CAAC,MAAM,MAAM,KAAK,OAAO,aAAa,KAAK,EAAE,aAAa,CAAC;GACrJ,MAAM,eAAe,CAAC,CAAC;GACvB,MAAM,eAAe,CAAC,CAAC;GAEvB,IAAI,WAAW;IACb,MAAM,mBAAmB,SAAS,wBAAwB,KAAK;IAC/D,MAAM,gBAAgB,SAAS,iBAAiB,KAAK;IACrD,MAAM,gBAAgB,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,cAAc,EAAE;KAAE;KAAM;KAAQ,OAAO,SAAS,KAAA;KAAW,CAAC;IAChI,QAAQ,KAAK,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,iBAAiB;KAAE,MAAM,gBAAgB;KAAM,MAAM,cAAc;KAAQ,CAAA,CAAC;IAC7G,YAAY,iBAAiB,6BAA6B,iBAAiB;IAE3E,IAAI,cAAc;KAChB,MAAM,sBAAsB,SAAS,gCAAgC,KAAK;KAC1E,MAAM,mBAAmB,SAAS,yBAAyB,KAAK;KAChE,MAAM,mBAAmB,SAAS,YAAYD,mBAAAA,mBAAmB,MAAM,iBAAiB,EAAE;MAAE;MAAM;MAAQ,OAAO,SAAS,KAAA;MAAW,CAAC;KACtI,QAAQ,KAAK,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,oBAAoB;MAAE,MAAM,gBAAgB;MAAM,MAAM,iBAAiB;MAAQ,CAAA,CAAC;KACnH,YAAY,oBAAoB,6BAA6B,oBAAoB;;IAGnF,IAAI,cAAc;KAEhB,MAAM,gBAAgB,QAAgB,IAAI,QAAQ,OAAO,GAAG;KAC5D,MAAM,iBAAiBC,mBAAAA,uBAAuB,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,KAAK;KAG5E,IAFsB,oBAAqB,aAAa,eAAe,MAAM,MAAM,aAAa,EAAE,KAAK,oBAAqB,WAAW,GAAG,OAEvH;MACjB,MAAM,sBAAsB,SAAS,gCAAgC,KAAK;MAC1E,MAAM,mBAAmB,SAAS,yBAAyB,KAAK;MAChE,MAAM,mBAAmB,SAAS,YAAYF,mBAAAA,mBAAmB,MAAM,iBAAiB,EAAE;OAAE;OAAM;OAAQ,OAAO,SAAS,KAAA;OAAW,CAAC;MACtI,QAAQ,KAAK,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;OAAa,MAAM,CAAC,oBAAoB;OAAE,MAAM,gBAAgB;OAAM,MAAM,iBAAiB;OAAQ,CAAA,CAAC;MACnH,YAAY,oBAAoB,6BAA6B,oBAAoB;MAEjF,IAAI,cAAc;OAChB,MAAM,8BAA8B,SAAS,wCAAwC,KAAK;OAC1F,MAAM,2BAA2B,SAAS,iCAAiC,KAAK;OAChF,MAAM,2BAA2B,SAAS,YAAYD,mBAAAA,mBAAmB,MAAM,yBAAyB,EAAE;QACxG;QACA;QACA,OAAO,SAAS,KAAA;QACjB,CAAC;OACF,QAAQ,KAAK,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;QAAa,MAAM,CAAC,4BAA4B;QAAE,MAAM,gBAAgB;QAAM,MAAM,yBAAyB;QAAQ,CAAA,CAAC;OACnI,YAAY,4BAA4B,6BAA6B,4BAA4B;;;;;GAMzG,IAAI,cAAc;IAChB,MAAM,sBAAsB,SAAS,2BAA2B,KAAK;IACrE,MAAM,mBAAmB,SAAS,oBAAoB,KAAK;IAC3D,MAAM,mBAAmB,SAAS,YAAYD,mBAAAA,mBAAmB,MAAM,iBAAiB,EAAE;KAAE;KAAM;KAAQ,OAAO,SAAS,KAAA;KAAW,CAAC;IACtI,QAAQ,KAAK,iBAAA,GAAA,+BAAA,KAACC,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,oBAAoB;KAAE,MAAM,gBAAgB;KAAM,MAAM,iBAAiB;KAAQ,CAAA,CAAC;IACnH,YAAY,oBAAoB,6BAA6B,oBAAoB;;;EAIrF,OACE,iBAAA,GAAA,+BAAA,MAACA,mBAAAA,MAAD;GACE,UAAU,gBAAgB;GAC1B,MAAM,gBAAgB;GACtB,MAAM,gBAAgB;GACtB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,gBAAgB;KAAM,UAAU,gBAAgB;KAAU;IAAE,CAAC;GACtI,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,gBAAgB;KAAM,UAAU,gBAAgB;KAAU;IAAE,CAAC;aALxI,CAOG,SACD,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;IAAmB;IAAM,cAAA;IAAa,aAAA;IAAY,YAAA;cAChD,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,MAAD;KAAM,QAAA;KAAa;eAChB,KAAK,OAAO,KAAK,YAAY,CAC3B,KAAK,QAAQ,GAAG,KAAK,UAAU,IAAI,CAAC,IAAI,YAAY,OAAO,CAC3D,KAAK,KAAK,CAAC;KACT,CAAA;IACK,CAAA,CACT;;;CAGZ,CAAC;;;;;;;;;AC9GF,MAAa,0BAAA,GAAA,WAAA,iBAA2D;CACtE,MAAM;CACN,UAAUC,mBAAAA;CACV,UAAU,MAAM,KAAK;EACnB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE,OAAO;EAC3C,MAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS;EAC3C,MAAM,EAAE,QAAQ,OAAO,UAAU,UAAU,cAAc,YAAY,gBAAgB,QAAQ,QAAQ,eAAe,OAAO,kBAAkB,IAAI;EAEjJ,MAAM,WAAW,OAAO,UAAUC,gBAAAA,aAAa;EAC/C,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,aAAa,OAAO,YAAYA,gBAAAA,aAAa;EAEnD,MAAM,UAAU,UAAU,SAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EACjI,MAAM,aACJ,aAAa,SACb,CAAC,YAAA,GAAA,OAAA,YACU,WAAW,SAAS,UAAU,EAAE,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EAC/I,MAAM,kBAAkB,YAAY,OAAO,aAAa,WAAW,WAAW;EAE9E,IAAI,CAAC,WAAW,cAAc,CAAC,iBAAiB,OAAO;EAGvD,MAAM,gBAAgB,QAAgB,IAAI,QAAQ,OAAO,GAAG;EAC5D,MAAM,iBAAiBC,mBAAAA,uBAAuB,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,KAAK;EAC5E,MAAM,gBAAgB,gBAAgB,aAAa,eAAe,MAAM,MAAM,aAAa,EAAE,KAAK,gBAAgB,WAAW,GAAG;EAEhI,MAAM,iBAAiB,CAAC,gBAAgB,eAAe;EAEvD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,OAAO;EAE9C,MAAM,aAAa,QAAQ,MAAM,aAAa;EAE9C,MAAM,YAAY,SAAS,yBAAyB,KAAK;EACzD,MAAM,mBAAmB,SAAS,gCAAgC,KAAK;EACvE,MAAM,eAAe,SAAS,4BAA4B,KAAK;EAC/D,MAAM,mBAAmB,SAAS,gCAAgC,KAAK;EACvE,MAAM,iBAAiB,SAAS,0BAA0B,KAAK;EAE/D,MAAM,OAAO;GACX,MAAM,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,UAAU,EAAE;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAAC;GAC5G,QAAQ,WAAW,YAAYA,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;IACzE;IACA,QAAQ,SAAS,SAAS,UAAU;IACpC,OAAO,SAAS,SAAS,SAAS,KAAA;IACnC,CAAC;GACH;EAED,MAAM,oBAAoBC,mBAAAA,0BAA0B,MAAM,YAAY;GACpE;GACA,SAAS,CAAC,iBAAiB;GAC3B,OAAO;GACR,CAAC;EAEF,MAAM,YAAY,WAAW,QAAQ,OAAO,UAAUC,iBAAAA,cAAc,GAAG;EACvE,MAAM,cAAc,YAAY,OAAO,YAAYA,iBAAAA,cAAc,GAAG;EACpE,MAAM,UAAU,cACZ,YAAY,YAAYF,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GAClE;GACA,QAAQ,WAAW,SAAS,UAAU;GACtC,OAAO,WAAW,SAAS,SAAS,KAAA;GACrC,CAAC,GACF;EACJ,MAAM,iBAAiBG,mBAAAA,sBAAsB,MAAM,YAAY;EAE/D,MAAM,eAAe,OAAO,UAAUC,oBAAAA,iBAAiB;EAEvD,MAAM,wBADkB,cAAc,SAASA,oBAAAA,oBACE,cAAc,eAAe;EAC9E,MAAM,iBAAiB,wBAAwB,OAAO,YAAYA,oBAAAA,iBAAiB,GAAG;EAEtF,MAAM,aAAa,wBACf,gBAAgB,YAAYJ,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GACtE;GACA,QAAQ,cAAc,SAAS,UAAU;GACzC,OAAO,cAAc,SAAS,SAAS,KAAA;GACxC,CAAC,GACF;EAEJ,MAAM,qBAAqB,wBAAyB,gBAAgB,YAAY,KAAK,YAAY,IAAI,iBAAkB;EAEvH,OACE,iBAAA,GAAA,+BAAA,MAACK,mBAAAA,MAAD;GACE,UAAU,KAAK,KAAK;GACpB,MAAM,KAAK,KAAK;GAChB,MAAM,KAAK,KAAK;GAChB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;GAC1H,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;aAL5H;IAOG,WAAW,eAAe,SAAS,KAAK,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;KAAgB,MAAM,KAAK,KAAK;KAAM,MAAM,QAAQ;KAAQ,CAAA;IACvH,cAAc,aACb,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;MAAU,MAAM,cAAc;MAAc,CAAA;KAC1F,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAU;OAAiB;OAAsB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KACnH,cAAc,mBAAmB,UAAU,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KAC/H,EAAA,CAAA,GAEH,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,SAAS;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAI,CAAA;KAC/H,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MACE,MAAM;OAAC;OAAU;OAAiB;OAAsB;MACxD,MAAM,KAAK,KAAK;MAChB,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAC3C,YAAA;MACA,CAAA;KACD,cAAc,mBAAmB,UAChC,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAE,YAAA;MAAa,CAAA;KAExH,EAAA,CAAA;IAEJ,yBAAyB,cAAc,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,WAAW;KAAQ,CAAA;IAC/H,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;KAAI,CAAA;IACrI,iBAAiB,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc,KAAK;KAAE,MAAM,cAAc;KAAc,CAAA;IAC5F,KAAK,UAAU,kBAAkB,SAAS,KACzC,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,KAAK,OAAO;KAAM,YAAA;KAAa,CAAA;IAGxH,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,UAAD;KACE,MAAM;KACN,UAAU;KACJ;KACM;KACI;KACF;KACd,aAAa,IAAI,QAAQ;KACzB,CAAA;IAED,CAAC,yBACA,iBAAA,GAAA,+BAAA,KAACC,oBAAAA,QAAD;KACE,MAAM;KACN,SAAS,cAAc;KACvB,gBAAgB,cAAc,kBAAkB;KAChD,cAAc,cAAc,gBAAgB;KAChC;KACI;KACR;KACF;KACM;KACC;KACb,CAAA;IAGJ,iBAAA,GAAA,+BAAA,KAACH,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,eAAe;KAAE,YAAA;KAAW,MAAM;KAAc,CAAA;IACpE,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,uBAAuB;KAAE,MAAM;KAAc,CAAA;IAEjE,iBAAA,GAAA,+BAAA,KAACI,mBAAAA,sBAAD;KACE,MAAM;KACN,YAAY;KACE;KACR;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,aAAa,gBAAgB;KAC7B,WAAW,gBAAgB;KAC3B,eAAe,gBAAgB;KAC/B,kBAAkB,gBAAgB;KAClC,YAAY,gBAAgB;KAC5B,CAAA;IAEF,iBAAA,GAAA,+BAAA,KAACJ,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM;KAAc,CAAA;IAC7D,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;MAAC;MAAY;MAAe;MAAgC;MAAyB;KAAE,MAAM;KAAY,YAAA;KAAa,CAAA;IAEzI,iBAAA,GAAA,+BAAA,KAACK,mBAAAA,eAAD;KACE,MAAM;KACY;KACJ;KACI;KACZ;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,kBAAkB,gBAAgB;KAClC,YAAY,gBAAgB;KACb;KACf,CAAA;IACG;;;CAGZ,CAAC;;;;;;;;ACtLF,MAAa,qBAAA,GAAA,WAAA,iBAAsD;CACjE,MAAM;CACN,UAAUC,mBAAAA;CACV,UAAU,MAAM,KAAK;EACnB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE,OAAO;EAC3C,MAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS;EAC3C,MAAM,EAAE,QAAQ,OAAO,UAAU,cAAc,YAAY,gBAAgB,QAAQ,QAAQ,eAAe,OAAO,kBAAkB,IAAI;EAEvI,MAAM,WAAW,OAAO,UAAUC,gBAAAA,aAAa;EAC/C,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,aAAa,OAAO,YAAYA,gBAAAA,aAAa;EAEnD,MAAM,UAAU,UAAU,SAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EAMjI,IAAI,EAJF,aAAa,SACb,CAAC,YAAA,GAAA,OAAA,YACU,WAAW,SAAS,UAAU,EAAE,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC,GAE9H,OAAO;EAExB,MAAM,aAAa,WAAW,SAAS,aAAa;EAEpD,MAAM,mBAAmB,SAAS,oBAAoB,KAAK;EAC3D,MAAM,mBAAmB,SAAS,wBAAwB,KAAK;EAC/D,MAAM,sBAAsB,SAAS,2BAA2B,KAAK;EACrE,MAAM,kBAAkB,SAAS,uBAAuB,KAAK;EAC7D,MAAM,aAAa,SAAS,kBAAkB,KAAK;EAEnD,MAAM,OAAO;GACX,MAAM,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,iBAAiB,EAAE;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAAC;GACnH,QAAQ,WAAW,YAAYA,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;IACzE;IACA,QAAQ,SAAS,SAAS,UAAU;IACpC,OAAO,SAAS,SAAS,SAAS,KAAA;IACnC,CAAC;GACH;EAED,MAAM,oBAAoBC,mBAAAA,0BAA0B,MAAM,YAAY;GAAE;GAAc,OAAO;GAAuB,CAAC;EAErH,MAAM,YAAY,WAAW,QAAQ,OAAO,UAAUC,iBAAAA,cAAc,GAAG;EACvE,MAAM,cAAc,YAAY,OAAO,YAAYA,iBAAAA,cAAc,GAAG;EACpE,MAAM,UAAU,cACZ,YAAY,YAAYF,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GAClE;GACA,QAAQ,WAAW,SAAS,UAAU;GACtC,OAAO,WAAW,SAAS,SAAS,KAAA;GACrC,CAAC,GACF;EACJ,MAAM,iBAAiBG,mBAAAA,sBAAsB,MAAM,YAAY;EAE/D,MAAM,eAAe,OAAO,UAAUC,oBAAAA,iBAAiB;EAEvD,MAAM,wBADkB,cAAc,SAASA,oBAAAA,oBACE,cAAc,eAAe;EAC9E,MAAM,iBAAiB,wBAAwB,OAAO,YAAYA,oBAAAA,iBAAiB,GAAG;EAEtF,MAAM,aAAa,wBACf,gBAAgB,YAAYJ,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GACtE;GACA,QAAQ,cAAc,SAAS,UAAU;GACzC,OAAO,cAAc,SAAS,SAAS,KAAA;GACxC,CAAC,GACF;EAEJ,MAAM,qBAAqB,wBAAyB,gBAAgB,YAAY,KAAK,YAAY,IAAI,aAAc;EAEnH,OACE,iBAAA,GAAA,+BAAA,MAACK,mBAAAA,MAAD;GACE,UAAU,KAAK,KAAK;GACpB,MAAM,KAAK,KAAK;GAChB,MAAM,KAAK,KAAK;GAChB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;GAC1H,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;aAL5H;IAOG,WAAW,eAAe,SAAS,KAAK,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;KAAgB,MAAM,KAAK,KAAK;KAAM,MAAM,QAAQ;KAAQ,CAAA;IACvH,cAAc,aACb,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;MAAU,MAAM,cAAc;MAAc,CAAA;KAC1F,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAU;OAAiB;OAAsB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KACnH,cAAc,mBAAmB,UAAU,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KAC/H,EAAA,CAAA,GAEH,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,SAAS;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAI,CAAA;KAC/H,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MACE,MAAM;OAAC;OAAU;OAAiB;OAAsB;MACxD,MAAM,KAAK,KAAK;MAChB,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAC3C,YAAA;MACA,CAAA;KACD,cAAc,mBAAmB,UAChC,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAE,YAAA;MAAa,CAAA;KAExH,EAAA,CAAA;IAEJ,yBAAyB,cAAc,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,WAAW;KAAQ,CAAA;IAC/H,CAAC,yBAAyB,KAAK,aAAa,SAAS,MAAM,MAAM,EAAE,gBAAgB,sBAAsB,IACxG,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;KAAI,CAAA;IAE5G,iBAAiB,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc,KAAK;KAAE,MAAM,cAAc;KAAc,CAAA;IAC5F,KAAK,UAAU,kBAAkB,SAAS,KACzC,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,KAAK,OAAO;KAAM,YAAA;KAAa,CAAA;IAGxH,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,aAAD;KAAa,MAAM;KAAuB;KAAsB;KAA8B;KAAc,aAAa,IAAI,QAAQ;KAAe,CAAA;IAEnJ,CAAC,yBACA,iBAAA,GAAA,+BAAA,KAACC,oBAAAA,QAAD;KACE,MAAM;KACN,SAAS,cAAc;KACvB,gBAAgB,cAAc,kBAAkB;KAChD,cAAc,cAAc,gBAAgB;KAChC;KACI;KACR;KACF;KACM;KACC;KACb,CAAA;IAGJ,iBAAA,GAAA,+BAAA,KAACH,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,kBAAkB;KAAE,MAAM;KAAc,CAAA;IAE5D,iBAAA,GAAA,+BAAA,KAACI,mBAAAA,iBAAD;KACE,MAAM;KACN,YAAY;KACK;KACX;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,CAAA;IAED,YACC,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACE,iBAAA,GAAA,+BAAA,KAACJ,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,cAAc;MAAE,MAAM;MAAc,CAAA;KACxD,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAsB;OAAqB;OAAc;MAAE,MAAM;MAAY,YAAA;MAAa,CAAA;KAC9G,iBAAA,GAAA,+BAAA,KAACK,mBAAAA,UAAD;MACE,MAAM;MACN,UAAU;MACW;MACJ;MACX;MACM;MACZ,gBAAgB,cAAc,kBAAkB;MAClC;MACE;MACD;MACf,CAAA;KACD,EAAA,CAAA;IAEA;;;CAGZ,CAAC;;;;;;;;AC3JF,MAAa,kBAAA,GAAA,WAAA,iBAAmD;CAC9D,MAAM;CACN,UAAUC,mBAAAA;CACV,UAAU,MAAM,KAAK;EACnB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE,OAAO;EAC3C,MAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS;EAC3C,MAAM,EAAE,QAAQ,OAAO,UAAU,cAAc,YAAY,gBAAgB,QAAQ,QAAQ,eAAe,OAAO,kBAAkB,IAAI;EAEvI,MAAM,WAAW,OAAO,UAAUC,gBAAAA,aAAa;EAC/C,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,aAAa,OAAO,YAAYA,gBAAAA,aAAa;EAGnD,MAAM,UAAU,UAAU,SAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EACjI,MAAM,aACJ,aAAa,SACb,CAAC,YAAA,GAAA,OAAA,YACU,WAAW,SAAS,UAAU,EAAE,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EAE/I,IAAI,CAAC,WAAW,YAAY,OAAO;EAEnC,MAAM,aAAa,QAAQ,MAAM,aAAa;EAE9C,MAAM,YAAY,SAAS,iBAAiB,KAAK;EACjD,MAAM,mBAAmB,SAAS,wBAAwB,KAAK;EAC/D,MAAM,eAAe,SAAS,oBAAoB,KAAK;EACvD,MAAM,mBAAmB,SAAS,wBAAwB,KAAK;EAC/D,MAAM,aAAa,SAAS,kBAAkB,KAAK;EAEnD,MAAM,OAAO;GACX,MAAM,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,UAAU,EAAE;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAAC;GAC5G,QAAQ,WAAW,YAAYA,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;IACzE;IACA,QAAQ,SAAS,SAAS,UAAU;IACpC,OAAO,SAAS,SAAS,SAAS,KAAA;IACnC,CAAC;GACH;EAED,MAAM,oBAAoBC,mBAAAA,0BAA0B,MAAM,YAAY;GACpE;GACA,SAAS,CAAC,iBAAiB;GAC3B,OAAO;GACR,CAAC;EAEF,MAAM,YAAY,WAAW,QAAQ,OAAO,UAAUC,iBAAAA,cAAc,GAAG;EACvE,MAAM,cAAc,YAAY,OAAO,YAAYA,iBAAAA,cAAc,GAAG;EACpE,MAAM,UAAU,cACZ,YAAY,YAAYF,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GAClE;GACA,QAAQ,WAAW,SAAS,UAAU;GACtC,OAAO,WAAW,SAAS,SAAS,KAAA;GACrC,CAAC,GACF;EACJ,MAAM,iBAAiBG,mBAAAA,sBAAsB,MAAM,YAAY;EAE/D,MAAM,eAAe,OAAO,UAAUC,oBAAAA,iBAAiB;EAEvD,MAAM,wBADkB,cAAc,SAASA,oBAAAA,oBACE,cAAc,eAAe;EAC9E,MAAM,iBAAiB,wBAAwB,OAAO,YAAYA,oBAAAA,iBAAiB,GAAG;EAEtF,MAAM,aAAa,wBACf,gBAAgB,YAAYJ,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GACtE;GACA,QAAQ,cAAc,SAAS,UAAU;GACzC,OAAO,cAAc,SAAS,SAAS,KAAA;GACxC,CAAC,GACF;EAEJ,MAAM,qBAAqB,wBAAyB,gBAAgB,YAAY,KAAK,YAAY,IAAI,aAAc;EAEnH,OACE,iBAAA,GAAA,+BAAA,MAACK,mBAAAA,MAAD;GACE,UAAU,KAAK,KAAK;GACpB,MAAM,KAAK,KAAK;GAChB,MAAM,KAAK,KAAK;GAChB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;GAC1H,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;aAL5H;IAOG,WAAW,eAAe,SAAS,KAAK,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;KAAgB,MAAM,KAAK,KAAK;KAAM,MAAM,QAAQ;KAAQ,CAAA;IACvH,cAAc,aACb,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;MAAU,MAAM,cAAc;MAAc,CAAA;KAC1F,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAU;OAAiB;OAAsB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KACnH,cAAc,mBAAmB,UAAU,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KAC/H,EAAA,CAAA,GAEH,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,SAAS;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAI,CAAA;KAC/H,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MACE,MAAM;OAAC;OAAU;OAAiB;OAAsB;MACxD,MAAM,KAAK,KAAK;MAChB,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAC3C,YAAA;MACA,CAAA;KACD,cAAc,mBAAmB,UAChC,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAE,YAAA;MAAa,CAAA;KAExH,EAAA,CAAA;IAEJ,yBAAyB,cAAc,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,WAAW;KAAQ,CAAA;IAC/H,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;KAAI,CAAA;IACrI,iBAAiB,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc,KAAK;KAAE,MAAM,cAAc;KAAc,CAAA;IAC5F,KAAK,UAAU,kBAAkB,SAAS,KACzC,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,KAAK,OAAO;KAAM,YAAA;KAAa,CAAA;IAGxH,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,UAAD;KACE,MAAM;KACN,UAAU;KACJ;KACM;KACI;KACF;KACd,aAAa,IAAI,QAAQ;KACzB,CAAA;IAED,CAAC,yBACA,iBAAA,GAAA,+BAAA,KAACC,oBAAAA,QAAD;KACE,MAAM;KACN,SAAS,cAAc;KACvB,gBAAgB,cAAc,kBAAkB;KAChD,cAAc,cAAc,gBAAgB;KAChC;KACI;KACR;KACF;KACM;KACC;KACb,CAAA;IAGJ,iBAAA,GAAA,+BAAA,KAACH,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,eAAe;KAAE,MAAM;KAAc,CAAA;IAEzD,iBAAA,GAAA,+BAAA,KAACI,mBAAAA,cAAD;KACE,MAAM;KACN,YAAY;KACE;KACR;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,CAAA;IAED,SACC,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACE,iBAAA,GAAA,+BAAA,KAACJ,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,WAAW;MAAE,MAAM;MAAc,CAAA;KACrD,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAY;OAAe;OAAwB;OAAiB;MAAE,MAAM;MAAY,YAAA;MAAa,CAAA;KACzH,iBAAA,GAAA,+BAAA,KAACK,mBAAAA,OAAD;MACE,MAAM;MACY;MACJ;MACI;MACZ;MACM;MACE;MACF;MACI;MAChB,gBAAgB,cAAc,kBAAkB;MACjC;MACf,CAAA;KACD,EAAA,CAAA;IAEA;;;CAGZ,CAAC;;;;;;;;;ACtKF,MAAa,kCAAA,GAAA,WAAA,iBAAmE;CAC9E,MAAM;CACN,UAAUC,mBAAAA;CACV,UAAU,MAAM,KAAK;EACnB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE,OAAO;EAC3C,MAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS;EAC3C,MAAM,EACJ,QACA,OACA,UACA,UACA,UACA,cACA,YACA,gBACA,QACA,QAAQ,eACR,OACA,kBACE,IAAI;EAER,MAAM,WAAW,OAAO,UAAUC,gBAAAA,aAAa;EAC/C,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,aAAa,OAAO,YAAYA,gBAAAA,aAAa;EAEnD,MAAM,UAAU,UAAU,SAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EACjI,MAAM,aACJ,aAAa,SACb,CAAC,YAAA,GAAA,OAAA,YACU,WAAW,SAAS,UAAU,EAAE,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EAC/I,MAAM,aAAa,CAAC,CAAC;EACrB,MAAM,kBAAkB,YAAY,OAAO,aAAa,WAAW,WAAW;EAE9E,IAAI,CAAC,WAAW,cAAc,CAAC,cAAc,CAAC,iBAAiB,OAAO;EAGtE,MAAM,gBAAgB,QAAgB,IAAI,QAAQ,OAAO,GAAG;EAC5D,MAAM,iBAAiBC,mBAAAA,uBAAuB,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,KAAK;EAC5E,MAAM,gBAAgB,gBAAgB,aAAa,eAAe,MAAM,MAAM,aAAa,EAAE,KAAK,gBAAgB,WAAW,GAAG;EAChI,MAAM,iBAAiB,CAAC,gBAAgB,eAAe;EAEvD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,OAAO;EAE9C,MAAM,aAAa,QAAQ,MAAM,aAAa;EAE9C,MAAM,YAAY,SAAS,iCAAiC,KAAK;EACjE,MAAM,mBAAmB,SAAS,wCAAwC,KAAK;EAC/E,MAAM,eAAe,SAAS,oCAAoC,KAAK;EACvE,MAAM,mBAAmB,SAAS,wCAAwC,KAAK;EAC/E,MAAM,iBAAiB,SAAS,kCAAkC,KAAK;EAEvE,MAAM,OAAO;GACX,MAAM,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,UAAU,EAAE;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAAC;GAC5G,QAAQ,WAAW,YAAYA,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;IACzE;IACA,QAAQ,SAAS,SAAS,UAAU;IACpC,OAAO,SAAS,SAAS,SAAS,KAAA;IACnC,CAAC;GACH;EAED,MAAM,oBAAoBC,mBAAAA,0BAA0B,MAAM,YAAY;GAAE;GAAc,OAAO;GAAuB,CAAC;EAErH,MAAM,YAAY,WAAW,QAAQ,OAAO,UAAUC,iBAAAA,cAAc,GAAG;EACvE,MAAM,cAAc,YAAY,OAAO,YAAYA,iBAAAA,cAAc,GAAG;EACpE,MAAM,UAAU,cACZ,YAAY,YAAYF,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GAClE;GACA,QAAQ,WAAW,SAAS,UAAU;GACtC,OAAO,WAAW,SAAS,SAAS,KAAA;GACrC,CAAC,GACF;EACJ,MAAM,iBAAiBG,mBAAAA,sBAAsB,MAAM,YAAY;EAE/D,MAAM,eAAe,OAAO,UAAUC,oBAAAA,iBAAiB;EAEvD,MAAM,wBADkB,cAAc,SAASA,oBAAAA,oBACE,cAAc,eAAe;EAC9E,MAAM,iBAAiB,wBAAwB,OAAO,YAAYA,oBAAAA,iBAAiB,GAAG;EAEtF,MAAM,aAAa,wBACf,gBAAgB,YAAYJ,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GACtE;GACA,QAAQ,cAAc,SAAS,UAAU;GACzC,OAAO,cAAc,SAAS,SAAS,KAAA;GACxC,CAAC,GACF;EAEJ,MAAM,qBAAqB,wBAAyB,gBAAgB,YAAY,KAAK,YAAY,IAAI,iBAAkB;EAEvH,OACE,iBAAA,GAAA,+BAAA,MAACK,mBAAAA,MAAD;GACE,UAAU,KAAK,KAAK;GACpB,MAAM,KAAK,KAAK;GAChB,MAAM,KAAK,KAAK;GAChB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;GAC1H,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;aAL5H;IAOG,WAAW,eAAe,SAAS,KAAK,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;KAAgB,MAAM,KAAK,KAAK;KAAM,MAAM,QAAQ;KAAQ,CAAA;IACvH,cAAc,aACb,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;MAAU,MAAM,cAAc;MAAc,CAAA;KAC1F,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAU;OAAiB;OAAsB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KACnH,cAAc,mBAAmB,UAAU,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KAC/H,EAAA,CAAA,GAEH,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,SAAS;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAI,CAAA;KAC/H,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MACE,MAAM;OAAC;OAAU;OAAiB;OAAsB;MACxD,MAAM,KAAK,KAAK;MAChB,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAC3C,YAAA;MACA,CAAA;KACD,cAAc,mBAAmB,UAChC,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAE,YAAA;MAAa,CAAA;KAExH,EAAA,CAAA;IAEJ,yBAAyB,cAAc,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,WAAW;KAAQ,CAAA;IAC/H,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;KAAI,CAAA;IACrI,iBAAiB,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc,KAAK;KAAE,MAAM,cAAc;KAAc,CAAA;IAC5F,KAAK,UAAU,kBAAkB,SAAS,KACzC,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,KAAK,OAAO;KAAM,YAAA;KAAa,CAAA;IAGxH,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,UAAD;KACE,MAAM;KACN,UAAU;KACJ;KACM;KACI;KACF;KACd,aAAa,IAAI,QAAQ;KACzB,CAAA;IAED,CAAC,yBACA,iBAAA,GAAA,+BAAA,KAACC,oBAAAA,QAAD;KACE,MAAM;KACN,SAAS,cAAc;KACvB,gBAAgB,cAAc,kBAAkB;KAChD,cAAc,cAAc,gBAAgB;KAChC;KACI;KACR;KACF;KACM;KACC;KACb,CAAA;IAGJ,iBAAA,GAAA,+BAAA,KAACH,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,eAAe;KAAE,YAAA;KAAW,MAAM;KAAc,CAAA;IACpE,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,uBAAuB;KAAE,MAAM;KAAc,CAAA;IAEjE,iBAAA,GAAA,+BAAA,KAACI,mBAAAA,8BAAD;KACE,MAAM;KACN,YAAY;KACE;KACR;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,aAAa,gBAAgB;KAC7B,WAAW,gBAAgB;KAC3B,eAAe,gBAAgB;KAC/B,kBAAkB,gBAAgB;KAClC,YAAY,gBAAgB;KAC5B,CAAA;IAEF,iBAAA,GAAA,+BAAA,KAACJ,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,2BAA2B;KAAE,MAAM;KAAc,CAAA;IACrE,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;MAAC;MAAY;MAAe;MAAmC;MAAiC;KAAE,MAAM;KAAY,YAAA;KAAa,CAAA;IAEpJ,iBAAA,GAAA,+BAAA,KAACK,mBAAAA,uBAAD;KACE,MAAM;KACY;KACJ;KACI;KACZ;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,kBAAkB,gBAAgB;KAClC,YAAY,gBAAgB;KACb;KACf,CAAA;IACG;;;CAGZ,CAAC;;;;;;;;;AC9LF,MAAa,0BAAA,GAAA,WAAA,iBAA2D;CACtE,MAAM;CACN,UAAUC,mBAAAA;CACV,UAAU,MAAM,KAAK;EACnB,IAAI,CAACC,WAAAA,IAAI,oBAAoB,KAAK,EAAE,OAAO;EAC3C,MAAM,EAAE,QAAQ,QAAQ,UAAU,SAAS;EAC3C,MAAM,EAAE,QAAQ,OAAO,UAAU,UAAU,cAAc,YAAY,gBAAgB,QAAQ,QAAQ,eAAe,OAAO,kBAAkB,IAAI;EAEjJ,MAAM,WAAW,OAAO,UAAUC,gBAAAA,aAAa;EAC/C,IAAI,CAAC,UAAU,OAAO;EACtB,MAAM,aAAa,OAAO,YAAYA,gBAAAA,aAAa;EAGnD,MAAM,UAAU,UAAU,SAAU,CAAC,CAAC,SAAS,MAAM,QAAQ,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EACjI,MAAM,aACJ,aAAa,SACb,CAAC,YAAA,GAAA,OAAA,YACU,WAAW,SAAS,UAAU,EAAE,EAAE,QAAQ,MAAM,UAAU,EAAE,CAAC,CAAC,MAAM,WAAW,KAAK,OAAO,aAAa,KAAK,OAAO,aAAa,CAAC;EAG/I,IAAI,CAAC,WAAW,cAAc,CAAC,CAFX,CAAC,UAEsB,OAAO;EAElD,MAAM,aAAa,QAAQ,MAAM,aAAa;EAE9C,MAAM,YAAY,SAAS,yBAAyB,KAAK;EACzD,MAAM,mBAAmB,SAAS,gCAAgC,KAAK;EACvE,MAAM,eAAe,SAAS,4BAA4B,KAAK;EAC/D,MAAM,mBAAmB,SAAS,gCAAgC,KAAK;EACvE,MAAM,aAAa,SAAS,0BAA0B,KAAK;EAE3D,MAAM,OAAO;GACX,MAAM,SAAS,YAAYC,mBAAAA,mBAAmB,MAAM,UAAU,EAAE;IAAE;IAAM;IAAQ,OAAO,SAAS,KAAA;IAAW,CAAC;GAC5G,QAAQ,WAAW,YAAYA,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;IACzE;IACA,QAAQ,SAAS,SAAS,UAAU;IACpC,OAAO,SAAS,SAAS,SAAS,KAAA;IACnC,CAAC;GACH;EAED,MAAM,oBAAoBC,mBAAAA,0BAA0B,MAAM,YAAY;GACpE;GACA,SAAS,CAAC,iBAAiB;GAC3B,OAAO;GACR,CAAC;EAEF,MAAM,YAAY,WAAW,QAAQ,OAAO,UAAUC,iBAAAA,cAAc,GAAG;EACvE,MAAM,cAAc,YAAY,OAAO,YAAYA,iBAAAA,cAAc,GAAG;EACpE,MAAM,UAAU,cACZ,YAAY,YAAYF,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GAClE;GACA,QAAQ,WAAW,SAAS,UAAU;GACtC,OAAO,WAAW,SAAS,SAAS,KAAA;GACrC,CAAC,GACF;EACJ,MAAM,iBAAiBG,mBAAAA,sBAAsB,MAAM,YAAY;EAE/D,MAAM,eAAe,OAAO,UAAUC,oBAAAA,iBAAiB;EAEvD,MAAM,wBADkB,cAAc,SAASA,oBAAAA,oBACE,cAAc,eAAe;EAC9E,MAAM,iBAAiB,wBAAwB,OAAO,YAAYA,oBAAAA,iBAAiB,GAAG;EAEtF,MAAM,aAAa,wBACf,gBAAgB,YAAYJ,mBAAAA,mBAAmB,MAAM,KAAK,YAAY,EAAE;GACtE;GACA,QAAQ,cAAc,SAAS,UAAU;GACzC,OAAO,cAAc,SAAS,SAAS,KAAA;GACxC,CAAC,GACF;EAEJ,MAAM,qBAAqB,wBAAyB,gBAAgB,YAAY,KAAK,YAAY,IAAI,aAAc;EAEnH,OACE,iBAAA,GAAA,+BAAA,MAACK,mBAAAA,MAAD;GACE,UAAU,KAAK,KAAK;GACpB,MAAM,KAAK,KAAK;GAChB,MAAM,KAAK,KAAK;GAChB,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;GAC1H,QAAQ,SAAS,cAAc,IAAI,MAAM;IAAE;IAAQ;IAAQ,MAAM;KAAE,MAAM,KAAK,KAAK;KAAM,UAAU,KAAK,KAAK;KAAU;IAAE,CAAC;aAL5H;IAOG,WAAW,eAAe,SAAS,KAAK,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM;KAAgB,MAAM,KAAK,KAAK;KAAM,MAAM,QAAQ;KAAQ,CAAA;IACvH,cAAc,aACb,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;MAAU,MAAM,cAAc;MAAc,CAAA;KAC1F,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAU;OAAiB;OAAsB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KACnH,cAAc,mBAAmB,UAAU,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,cAAc;MAAY,YAAA;MAAa,CAAA;KAC/H,EAAA,CAAA,GAEH,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACG,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,SAAS;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAI,CAAA;KAC/H,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MACE,MAAM;OAAC;OAAU;OAAiB;OAAsB;MACxD,MAAM,KAAK,KAAK;MAChB,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAC3C,YAAA;MACA,CAAA;KACD,cAAc,mBAAmB,UAChC,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,iBAAiB;MAAE,MAAM,KAAK,KAAK;MAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;MAAE,YAAA;MAAa,CAAA;KAExH,EAAA,CAAA;IAEJ,yBAAyB,cAAc,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,mBAAmB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,WAAW;KAAQ,CAAA;IAC/H,CAAC,yBAAyB,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,gBAAgB;KAAE,MAAM,KAAK,KAAK;KAAM,MAAMC,UAAAA,QAAK,QAAQ,MAAM,kBAAkB;KAAI,CAAA;IACrI,iBAAiB,iBAAA,GAAA,+BAAA,KAACD,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,cAAc,KAAK;KAAE,MAAM,cAAc;KAAc,CAAA;IAC5F,KAAK,UAAU,kBAAkB,SAAS,KACzC,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;KAAa,MAAM,MAAM,KAAK,IAAI,IAAI,kBAAkB,CAAC;KAAE,MAAM,KAAK,KAAK;KAAM,MAAM,KAAK,OAAO;KAAM,YAAA;KAAa,CAAA;IAGxH,iBAAA,GAAA,+BAAA,KAACE,mBAAAA,UAAD;KACE,MAAM;KACN,UAAU;KACJ;KACM;KACI;KACF;KACd,aAAa,IAAI,QAAQ;KACzB,CAAA;IAED,CAAC,yBACA,iBAAA,GAAA,+BAAA,KAACC,oBAAAA,QAAD;KACE,MAAM;KACN,SAAS,cAAc;KACvB,gBAAgB,cAAc,kBAAkB;KAChD,cAAc,cAAc,gBAAgB;KAChC;KACI;KACR;KACF;KACM;KACC;KACb,CAAA;IAGJ,iBAAA,GAAA,+BAAA,KAACH,mBAAAA,KAAK,QAAN;KAAa,MAAM,CAAC,eAAe;KAAE,MAAM;KAAc,CAAA;IAEzD,iBAAA,GAAA,+BAAA,KAACI,mBAAAA,cAAD;KACE,MAAM;KACN,YAAY;KACE;KACR;KACM;KACE;KACF;KACI;KAChB,gBAAgB,cAAc,kBAAkB;KAChD,UAAA;KACA,CAAA;IAED,YACC,iBAAA,GAAA,+BAAA,MAAA,+BAAA,UAAA,EAAA,UAAA;KACE,iBAAA,GAAA,+BAAA,KAACJ,mBAAAA,KAAK,QAAN;MAAa,MAAM,CAAC,mBAAmB;MAAE,MAAM;MAAc,CAAA;KAC7D,iBAAA,GAAA,+BAAA,KAACA,mBAAAA,KAAK,QAAN;MAAa,MAAM;OAAC;OAAY;OAAe;OAA2B;OAAyB;MAAE,MAAM;MAAY,YAAA;MAAa,CAAA;KACpI,iBAAA,GAAA,+BAAA,KAACK,mBAAAA,eAAD;MACE,MAAM;MACY;MACJ;MACI;MACZ;MACM;MACE;MACF;MACI;MAChB,gBAAgB,cAAc,kBAAkB;MACjC;MACf,CAAA;KACD,EAAA,CAAA;IAEA;;;CAGZ,CAAC"}
|