@turtleclub/hooks 0.2.0-beta.0 → 0.2.0-beta.1

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/index.cjs CHANGED
@@ -26,10 +26,14 @@ __export(index_exports, {
26
26
  useEarnDeals: () => useEarnDeals,
27
27
  useEarnRoute: () => useEarnRoute,
28
28
  useEarnWalletBalances: () => useEarnWalletBalances,
29
+ useEnhancedEarnDeals: () => useEnhancedEarnDeals,
29
30
  useExists: () => useExists,
31
+ useIndexerTvl: () => useIndexerTvl,
30
32
  useOrganizationDeals: () => useOrganizationDeals,
31
33
  useOrganizations: () => useOrganizations,
32
34
  useOrganizationsDeals: () => useOrganizationsDeals,
35
+ usePartnerCampaigns: () => usePartnerCampaigns,
36
+ usePartnerDeals: () => usePartnerDeals,
33
37
  usePrepareSignup: () => usePrepareSignup,
34
38
  useProjectTvl: () => useProjectTvl,
35
39
  useSignup: () => useSignup
@@ -107,18 +111,46 @@ function useExists(options, { config, queryClient } = {}) {
107
111
  return query;
108
112
  }
109
113
 
110
- // src/hooks/endpoints/useOrganizationDeals.ts
114
+ // src/hooks/endpoints/useIndexerTvl.ts
111
115
  var import_react_query4 = require("@tanstack/react-query");
112
116
  var import_api4 = require("@turtleclub/api");
113
- function useOrganizationDeals(options, { config, queryClient } = {}) {
117
+ function useIndexerTvl(options, { config, queryClient } = {}) {
114
118
  const defaultConfig2 = useConfig();
115
119
  const enabled = options !== void 0;
116
120
  const query = (0, import_react_query4.useQuery)({
121
+ queryKey: [
122
+ "indexer-tvl",
123
+ options?.project,
124
+ options?.chain
125
+ ],
126
+ queryFn: async () => {
127
+ if (!enabled)
128
+ return null;
129
+ return await (0, import_api4.projectTvl)(options, config ?? defaultConfig2);
130
+ },
131
+ enabled,
132
+ staleTime: 5 * 60 * 1e3,
133
+ refetchOnWindowFocus: false,
134
+ refetchOnMount: false,
135
+ refetchOnReconnect: false,
136
+ gcTime: 30 * 60 * 1e3
137
+ // 30 minutos de cache
138
+ }, queryClient ?? defaultQueryClient);
139
+ return query;
140
+ }
141
+
142
+ // src/hooks/endpoints/useOrganizationDeals.ts
143
+ var import_react_query5 = require("@tanstack/react-query");
144
+ var import_api5 = require("@turtleclub/api");
145
+ function useOrganizationDeals(options, { config, queryClient } = {}) {
146
+ const defaultConfig2 = useConfig();
147
+ const enabled = options !== void 0;
148
+ const query = (0, import_react_query5.useQuery)({
117
149
  queryKey: ["organizationDeals", options?.organizationId],
118
150
  queryFn: async () => {
119
151
  if (!enabled)
120
152
  return null;
121
- return await (0, import_api4.organizationDeals)(options, config ?? defaultConfig2);
153
+ return await (0, import_api5.organizationDeals)(options, config ?? defaultConfig2);
122
154
  },
123
155
  enabled,
124
156
  staleTime: 2 * 60 * 1e3,
@@ -128,17 +160,17 @@ function useOrganizationDeals(options, { config, queryClient } = {}) {
128
160
  }
129
161
 
130
162
  // src/hooks/endpoints/useOrganizationsDeals.ts
131
- var import_react_query5 = require("@tanstack/react-query");
132
- var import_api5 = require("@turtleclub/api");
163
+ var import_react_query6 = require("@tanstack/react-query");
164
+ var import_api6 = require("@turtleclub/api");
133
165
  function useOrganizationsDeals(options, { config, queryClient } = {}) {
134
166
  const defaultConfig2 = useConfig();
135
167
  const enabled = options !== void 0;
136
- const query = (0, import_react_query5.useQuery)({
168
+ const query = (0, import_react_query6.useQuery)({
137
169
  queryKey: ["organizationsDeals", options?.organizationIds],
138
170
  queryFn: async () => {
139
171
  if (!enabled)
140
172
  return null;
141
- return await (0, import_api5.organizationsDeals)(options, config ?? defaultConfig2);
173
+ return await (0, import_api6.organizationsDeals)(options, config ?? defaultConfig2);
142
174
  },
143
175
  enabled,
144
176
  staleTime: 2 * 60 * 1e3,
@@ -149,17 +181,17 @@ function useOrganizationsDeals(options, { config, queryClient } = {}) {
149
181
  }
150
182
 
151
183
  // src/hooks/endpoints/usePrepareSignup.ts
152
- var import_react_query6 = require("@tanstack/react-query");
153
- var import_api6 = require("@turtleclub/api");
184
+ var import_react_query7 = require("@tanstack/react-query");
185
+ var import_api7 = require("@turtleclub/api");
154
186
  function usePrepareSignup(options, { config, queryClient } = {}) {
155
187
  const defaultConfig2 = useConfig();
156
188
  const enabled = options !== void 0;
157
- const query = (0, import_react_query6.useQuery)({
189
+ const query = (0, import_react_query7.useQuery)({
158
190
  queryKey: ["prepareSignup", options?.user],
159
191
  queryFn: async () => {
160
192
  if (!enabled)
161
193
  return null;
162
- return await (0, import_api6.prepareSignup)(options, config ?? defaultConfig2);
194
+ return await (0, import_api7.prepareSignup)(options, config ?? defaultConfig2);
163
195
  },
164
196
  enabled,
165
197
  refetchInterval: 5 * 60 * 1e3
@@ -168,17 +200,17 @@ function usePrepareSignup(options, { config, queryClient } = {}) {
168
200
  }
169
201
 
170
202
  // src/hooks/endpoints/useProjectTvl.ts
171
- var import_react_query7 = require("@tanstack/react-query");
172
- var import_api7 = require("@turtleclub/api");
203
+ var import_react_query8 = require("@tanstack/react-query");
204
+ var import_api8 = require("@turtleclub/api");
173
205
  function useProjectTvl(options, { config, queryClient } = {}) {
174
206
  const defaultConfig2 = useConfig();
175
207
  const enabled = options !== void 0;
176
- const query = (0, import_react_query7.useQuery)({
208
+ const query = (0, import_react_query8.useQuery)({
177
209
  queryKey: ["projectTvl", options?.projects],
178
210
  queryFn: async () => {
179
211
  if (!enabled)
180
212
  return null;
181
- return await (0, import_api7.projectTvl)(options, config ?? defaultConfig2);
213
+ return await (0, import_api8.projectTvl)(options, config ?? defaultConfig2);
182
214
  },
183
215
  enabled,
184
216
  staleTime: 7 * 60 * 1e3,
@@ -188,16 +220,16 @@ function useProjectTvl(options, { config, queryClient } = {}) {
188
220
  }
189
221
 
190
222
  // src/hooks/endpoints/useSignup.ts
191
- var import_react_query8 = require("@tanstack/react-query");
192
- var import_api8 = require("@turtleclub/api");
223
+ var import_react_query9 = require("@tanstack/react-query");
224
+ var import_api9 = require("@turtleclub/api");
193
225
  function useSignup(options, { config, queryClient } = {}) {
194
226
  const defaultConfig2 = useConfig();
195
227
  const enabled = options !== void 0;
196
- const mutation = (0, import_react_query8.useMutation)(
228
+ const mutation = (0, import_react_query9.useMutation)(
197
229
  {
198
230
  mutationFn: async (signature) => {
199
231
  if (!enabled) return null;
200
- return await (0, import_api8.signup)({ ...options, signature }, config ?? defaultConfig2);
232
+ return await (0, import_api9.signup)({ ...options, signature }, config ?? defaultConfig2);
201
233
  }
202
234
  },
203
235
  queryClient ?? defaultQueryClient
@@ -206,35 +238,38 @@ function useSignup(options, { config, queryClient } = {}) {
206
238
  }
207
239
 
208
240
  // src/hooks/endpoints/earn/useCampaigns.ts
209
- var import_react_query9 = require("@tanstack/react-query");
210
- var import_api9 = require("@turtleclub/api");
241
+ var import_react_query10 = require("@tanstack/react-query");
242
+ var import_api10 = require("@turtleclub/api");
211
243
  function useEarnCampaigns(options, { config, queryClient } = {}) {
212
244
  const defaultConfig2 = useConfig();
213
245
  const enabled = true;
214
- const query = (0, import_react_query9.useQuery)({
246
+ const query = (0, import_react_query10.useQuery)({
215
247
  queryKey: [
216
248
  "earn-campaigns",
217
249
  options?.idFilter,
218
250
  options?.protocolFilter
219
251
  ],
220
252
  queryFn: async () => {
221
- return await (0, import_api9.earnCampaigns)(options || {}, config ?? defaultConfig2);
253
+ return await (0, import_api10.earnCampaigns)(options || {}, config ?? defaultConfig2);
222
254
  },
223
255
  enabled,
224
- staleTime: 60 * 1e3,
225
- refetchInterval: 30 * 1e3,
226
- refetchOnWindowFocus: true
256
+ staleTime: 5 * 60 * 1e3,
257
+ refetchOnWindowFocus: false,
258
+ refetchOnMount: false,
259
+ refetchOnReconnect: false,
260
+ gcTime: 30 * 60 * 1e3
261
+ // 30 minutos de cache
227
262
  }, queryClient ?? defaultQueryClient);
228
263
  return query;
229
264
  }
230
265
 
231
266
  // src/hooks/endpoints/earn/useDeals.ts
232
- var import_react_query10 = require("@tanstack/react-query");
233
- var import_api10 = require("@turtleclub/api");
267
+ var import_react_query11 = require("@tanstack/react-query");
268
+ var import_api11 = require("@turtleclub/api");
234
269
  function useEarnDeals(options, { config, queryClient } = {}) {
235
270
  const defaultConfig2 = useConfig();
236
271
  const enabled = options !== void 0;
237
- const query = (0, import_react_query10.useQuery)({
272
+ const query = (0, import_react_query11.useQuery)({
238
273
  queryKey: [
239
274
  "earn-deals",
240
275
  options?.campaignId,
@@ -244,23 +279,26 @@ function useEarnDeals(options, { config, queryClient } = {}) {
244
279
  queryFn: async () => {
245
280
  if (!enabled)
246
281
  return null;
247
- return await (0, import_api10.earnDeals)(options, config ?? defaultConfig2);
282
+ return await (0, import_api11.earnDeals)(options, config ?? defaultConfig2);
248
283
  },
249
284
  enabled,
250
- staleTime: 60 * 1e3,
251
- refetchInterval: 30 * 1e3,
252
- refetchOnWindowFocus: true
285
+ staleTime: 5 * 60 * 1e3,
286
+ refetchOnWindowFocus: false,
287
+ refetchOnMount: false,
288
+ refetchOnReconnect: false,
289
+ gcTime: 30 * 60 * 1e3
290
+ // 30 minutos de cache
253
291
  }, queryClient ?? defaultQueryClient);
254
292
  return query;
255
293
  }
256
294
 
257
295
  // src/hooks/endpoints/earn/useRoute.ts
258
- var import_react_query11 = require("@tanstack/react-query");
259
- var import_api11 = require("@turtleclub/api");
296
+ var import_react_query12 = require("@tanstack/react-query");
297
+ var import_api12 = require("@turtleclub/api");
260
298
  function useEarnRoute(options, { config, queryClient } = {}) {
261
299
  const defaultConfig2 = useConfig();
262
300
  const enabled = options !== void 0;
263
- const query = (0, import_react_query11.useQuery)({
301
+ const query = (0, import_react_query12.useQuery)({
264
302
  queryKey: [
265
303
  "earnRoute",
266
304
  options?.user,
@@ -273,7 +311,7 @@ function useEarnRoute(options, { config, queryClient } = {}) {
273
311
  queryFn: async () => {
274
312
  if (!enabled)
275
313
  return null;
276
- return await (0, import_api11.earnRoute)(options, config ?? defaultConfig2);
314
+ return await (0, import_api12.earnRoute)(options, config ?? defaultConfig2);
277
315
  },
278
316
  enabled,
279
317
  staleTime: 2 * 60 * 1e3,
@@ -286,17 +324,17 @@ function useEarnRoute(options, { config, queryClient } = {}) {
286
324
  }
287
325
 
288
326
  // src/hooks/endpoints/earn/useWalletBalances.ts
289
- var import_react_query12 = require("@tanstack/react-query");
290
- var import_api12 = require("@turtleclub/api");
327
+ var import_react_query13 = require("@tanstack/react-query");
328
+ var import_api13 = require("@turtleclub/api");
291
329
  function useEarnWalletBalances(options, { config, queryClient } = {}) {
292
330
  const defaultConfig2 = useConfig();
293
331
  const enabled = options !== void 0;
294
- const query = (0, import_react_query12.useQuery)(
332
+ const query = (0, import_react_query13.useQuery)(
295
333
  {
296
334
  queryKey: ["earnWalletBalances", options?.chain, options?.user],
297
335
  queryFn: async () => {
298
336
  if (!enabled) return null;
299
- return await (0, import_api12.earnWalletBalances)(options, config ?? defaultConfig2);
337
+ return await (0, import_api13.earnWalletBalances)(options, config ?? defaultConfig2);
300
338
  },
301
339
  enabled,
302
340
  staleTime: 30 * 1e3,
@@ -307,6 +345,171 @@ function useEarnWalletBalances(options, { config, queryClient } = {}) {
307
345
  );
308
346
  return query;
309
347
  }
348
+
349
+ // src/hooks/earn/useEnhancedEarnDeals.ts
350
+ var import_react_query14 = require("@tanstack/react-query");
351
+ var import_api14 = require("@turtleclub/api");
352
+
353
+ // src/utils/dataMatching.ts
354
+ function deduplicateDeals(deals) {
355
+ const dealsMap = /* @__PURE__ */ new Map();
356
+ deals.forEach((deal) => {
357
+ const key = deal.metadata.id;
358
+ const existing = dealsMap.get(key);
359
+ if (!existing || hasMoreCompleteData(deal, existing)) {
360
+ dealsMap.set(key, deal);
361
+ }
362
+ });
363
+ return Array.from(dealsMap.values());
364
+ }
365
+ function hasMoreCompleteData(newDeal, existingDeal) {
366
+ if (newDeal.data.tvl > 0 && existingDeal.data.tvl === 0) return true;
367
+ if (newDeal.data.apy > 0 && existingDeal.data.apy === 0) return true;
368
+ if (newDeal.metadata.iconUrl && !existingDeal.metadata.iconUrl) return true;
369
+ if (newDeal.token.logos.length > existingDeal.token.logos.length) return true;
370
+ if (newDeal.underlying_tokens.length > existingDeal.underlying_tokens.length) return true;
371
+ return false;
372
+ }
373
+ function filterDealsByIds(deals, ids) {
374
+ if (!ids.length) return deals;
375
+ return deals.filter((deal) => ids.includes(deal.metadata.id));
376
+ }
377
+
378
+ // src/hooks/earn/useEnhancedEarnDeals.ts
379
+ function useEnhancedEarnDeals({
380
+ dealIds = [],
381
+ campaignIds = [],
382
+ fetchAllIfNoFilters = false
383
+ } = {}) {
384
+ const config = useConfig();
385
+ const shouldFetchAll = dealIds.length > 0 || fetchAllIfNoFilters && dealIds.length === 0 && campaignIds.length === 0;
386
+ const shouldFetchCampaigns = campaignIds.length > 0;
387
+ const queries = [];
388
+ if (shouldFetchAll) {
389
+ queries.push({
390
+ queryKey: ["earn-deals", "all"],
391
+ queryFn: () => (0, import_api14.earnDeals)({}, config),
392
+ enabled: true
393
+ });
394
+ }
395
+ if (shouldFetchCampaigns) {
396
+ campaignIds.forEach((campaignId) => {
397
+ queries.push({
398
+ queryKey: ["earn-deals", "campaign", campaignId],
399
+ queryFn: () => (0, import_api14.earnDeals)({ campaignId }, config),
400
+ enabled: true
401
+ });
402
+ });
403
+ }
404
+ if (queries.length === 0) {
405
+ queries.push({
406
+ queryKey: ["earn-deals", "none"],
407
+ queryFn: async () => ({ deals: [], metadata: {} }),
408
+ enabled: false
409
+ });
410
+ }
411
+ const results = (0, import_react_query14.useQueries)({
412
+ queries: queries.map((query) => ({
413
+ ...query,
414
+ staleTime: 5 * 60 * 1e3,
415
+ refetchOnWindowFocus: false,
416
+ refetchOnMount: false,
417
+ refetchOnReconnect: false,
418
+ gcTime: 30 * 60 * 1e3
419
+ // 30 minutos de cache
420
+ }))
421
+ });
422
+ const isLoading = results.some((result) => result.isLoading);
423
+ const error = results.find((result) => result.error)?.error;
424
+ let allDeals = [];
425
+ const dealCampaignMap = /* @__PURE__ */ new Map();
426
+ results.forEach((result, index) => {
427
+ if (result.data?.deals) {
428
+ const queryKey = queries[index].queryKey;
429
+ if (queryKey.includes("all") && dealIds.length > 0) {
430
+ const filteredDeals = filterDealsByIds(result.data.deals, dealIds);
431
+ allDeals = [...allDeals, ...filteredDeals];
432
+ } else {
433
+ allDeals = [...allDeals, ...result.data.deals];
434
+ if (queryKey.includes("campaign") && queryKey[2]) {
435
+ const campaignId = queryKey[2];
436
+ result.data.deals.forEach((deal) => {
437
+ dealCampaignMap.set(deal.metadata.id, campaignId);
438
+ });
439
+ }
440
+ }
441
+ }
442
+ });
443
+ const uniqueDeals = deduplicateDeals(allDeals);
444
+ const refetch = () => {
445
+ results.forEach((result) => result.refetch());
446
+ };
447
+ return {
448
+ deals: uniqueDeals,
449
+ isLoading,
450
+ error,
451
+ refetch,
452
+ dealCampaignMap
453
+ };
454
+ }
455
+
456
+ // src/hooks/endpoints/partner/usePartnerCampaigns.ts
457
+ var import_react_query15 = require("@tanstack/react-query");
458
+ var import_api15 = require("@turtleclub/api");
459
+ function usePartnerCampaigns(options, { config, queryClient } = {}) {
460
+ const defaultConfig2 = useConfig();
461
+ const enabled = options !== void 0;
462
+ const query = (0, import_react_query15.useQuery)({
463
+ queryKey: [
464
+ "partner-campaigns",
465
+ options?.idFilter,
466
+ options?.protocolFilter
467
+ ],
468
+ queryFn: async () => {
469
+ if (!enabled)
470
+ return null;
471
+ return await (0, import_api15.earnCampaigns)(options, config ?? defaultConfig2);
472
+ },
473
+ enabled,
474
+ staleTime: 5 * 60 * 1e3,
475
+ refetchOnWindowFocus: false,
476
+ refetchOnMount: false,
477
+ refetchOnReconnect: false,
478
+ gcTime: 30 * 60 * 1e3
479
+ // 30 minutos de cache
480
+ }, queryClient ?? defaultQueryClient);
481
+ return query;
482
+ }
483
+
484
+ // src/hooks/endpoints/partner/usePartnerDeals.ts
485
+ var import_react_query16 = require("@tanstack/react-query");
486
+ var import_api16 = require("@turtleclub/api");
487
+ function usePartnerDeals(options, { config, queryClient } = {}) {
488
+ const defaultConfig2 = useConfig();
489
+ const enabled = options !== void 0;
490
+ const query = (0, import_react_query16.useQuery)({
491
+ queryKey: [
492
+ "partner-deals",
493
+ options?.status,
494
+ options?.protocol,
495
+ options?.ids
496
+ ],
497
+ queryFn: async () => {
498
+ if (!enabled)
499
+ return null;
500
+ const result = await (0, import_api16.turtleDeals)(options || {}, config ?? defaultConfig2);
501
+ return result;
502
+ },
503
+ enabled,
504
+ staleTime: 5 * 60 * 1e3,
505
+ refetchOnWindowFocus: false,
506
+ refetchOnMount: false,
507
+ refetchOnReconnect: false,
508
+ gcTime: 30 * 60 * 1e3
509
+ // 30 minutos de cache
510
+ }, queryClient ?? defaultQueryClient);
511
+ return query;
512
+ }
310
513
  // Annotate the CommonJS export names for ESM import in node:
311
514
  0 && (module.exports = {
312
515
  defaultQueryClient,
@@ -315,10 +518,14 @@ function useEarnWalletBalances(options, { config, queryClient } = {}) {
315
518
  useEarnDeals,
316
519
  useEarnRoute,
317
520
  useEarnWalletBalances,
521
+ useEnhancedEarnDeals,
318
522
  useExists,
523
+ useIndexerTvl,
319
524
  useOrganizationDeals,
320
525
  useOrganizations,
321
526
  useOrganizationsDeals,
527
+ usePartnerCampaigns,
528
+ usePartnerDeals,
322
529
  usePrepareSignup,
323
530
  useProjectTvl,
324
531
  useSignup
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/hooks/useConfig.ts","../src/hooks/client.ts","../src/hooks/endpoints/useOrganizations.ts","../src/hooks/endpoints/useExists.ts","../src/hooks/endpoints/useOrganizationDeals.ts","../src/hooks/endpoints/useOrganizationsDeals.ts","../src/hooks/endpoints/usePrepareSignup.ts","../src/hooks/endpoints/useProjectTvl.ts","../src/hooks/endpoints/useSignup.ts","../src/hooks/endpoints/earn/useCampaigns.ts","../src/hooks/endpoints/earn/useDeals.ts","../src/hooks/endpoints/earn/useRoute.ts","../src/hooks/endpoints/earn/useWalletBalances.ts"],"sourcesContent":["// TODO: delete - prerelease trigger\n// Hooks\nexport * from \"./hooks/useConfig\";\nexport * from \"./hooks/client\";\n\n// Endpoint hooks\nexport * from \"./hooks/endpoints/useOrganizations\";\nexport * from \"./hooks/endpoints/useExists\";\nexport * from \"./hooks/endpoints/useOrganizationDeals\";\nexport * from \"./hooks/endpoints/useOrganizationsDeals\";\nexport * from \"./hooks/endpoints/usePrepareSignup\";\nexport * from \"./hooks/endpoints/useProjectTvl\";\nexport * from \"./hooks/endpoints/useSignup\";\n\n// Earn hooks\nexport * from \"./hooks/endpoints/earn\";\n","import type { Config } from \"@turtleclub/api\";\nimport { defaultConfig } from \"@turtleclub/api\";\n\nexport function useConfig(): Config {\n // Placeholder implementation - in real app this would use TurtleProvider context\n return defaultConfig;\n}\n","import { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\n\nexport const defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\n// Only persist on client side\nif (typeof window !== 'undefined') {\n const localStoragePersister = createSyncStoragePersister({\n storage: window.localStorage,\n key: \"turtle-sdk\",\n });\n\n persistQueryClient({\n queryClient: defaultQueryClient,\n persister: localStoragePersister,\n });\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organization, type OrganizationResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizations({\n config,\n queryClient,\n}: UseOrganizationsOptions = {}): UseQueryResult<OrganizationResponse | null> {\n const defaultConfig = useConfig();\n\n const query = useQuery(\n {\n queryKey: [\"organizations\"],\n queryFn: async () => {\n return await organization(config ?? defaultConfig);\n },\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, exists, type ExistsOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseExistsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useExists(\n options?: ExistsOptions,\n { config, queryClient }: UseExistsOptions = {},\n): UseQueryResult<boolean | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"exists\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await exists(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationDeals, type OrganizationDealsOptions, type OrganizationDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationDeals(\n options?: OrganizationDealsOptions,\n { config, queryClient }: UseOrganizationDealsOptions = {},\n): UseQueryResult<OrganizationDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationDeals\", options?.organizationId],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationsDeals, type OrganizationsDealsOptions, type OrganizationsDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationsDeals(\n options?: OrganizationsDealsOptions,\n { config, queryClient }: UseOrganizationsDealsOptions = {},\n): UseQueryResult<OrganizationsDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationsDeals\", options?.organizationIds],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationsDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n throwOnError: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, prepareSignup, type PrepareSignupOptions, type PrepareSignupResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UsePrepareSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePrepareSignup(\n options?: PrepareSignupOptions,\n { config, queryClient }: UsePrepareSignupOptions = {},\n): UseQueryResult<PrepareSignupResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"prepareSignup\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await prepareSignup(options, config ?? defaultConfig);\n },\n enabled,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseProjectTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useProjectTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseProjectTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"projectTvl\", options?.projects],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 7 * 60 * 1000,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import {\n type QueryClient,\n useMutation,\n type UseMutationResult,\n useQuery,\n} from \"@tanstack/react-query\";\nimport { type Config, signup, type SignupOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useSignup(\n options?: Omit<SignupOptions, \"signature\">,\n { config, queryClient }: UseSignupOptions = {}\n): UseMutationResult<boolean | null, Error, string, unknown> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const mutation = useMutation(\n {\n mutationFn: async (signature: string) => {\n if (!enabled) return null;\n\n return await signup({ ...options, signature }, config ?? defaultConfig);\n },\n },\n queryClient ?? defaultQueryClient\n );\n\n return mutation;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UseEarnCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = true; // Always enabled for campaigns\n\n const query = useQuery({\n queryKey: [\n \"earn-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n return await earnCampaigns(options || {}, config ?? defaultConfig);\n },\n enabled,\n staleTime: 60 * 1000,\n refetchInterval: 30 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnDeals, type EarnDealsOptions, type EarnDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnDeals(\n options?: EarnDealsOptions,\n { config, queryClient }: UseEarnDealsOptions = {},\n): UseQueryResult<EarnDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earn-deals\",\n options?.campaignId,\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 60 * 1000,\n refetchInterval: 30 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnRoute, type EarnRouteOptions, type EarnRouteResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnRouteOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnRoute(\n options?: EarnRouteOptions,\n { config, queryClient }: UseEarnRouteOptions = {},\n): UseQueryResult<EarnRouteResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earnRoute\",\n options?.user,\n options?.chain,\n options?.slippage,\n options?.tokenIn,\n options?.tokenOut,\n options?.amount,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnRoute(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000, // 2 minutes - longer stale time for transaction stability\n refetchInterval: false, // Disable automatic refetch to prevent transaction state reset\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport {\n type Config,\n earnWalletBalances,\n type EarnWalletBalancesOptions,\n type EarnWalletBalancesResponse,\n} from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnWalletBalancesOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnWalletBalances(\n options?: EarnWalletBalancesOptions,\n { config, queryClient }: UseEarnWalletBalancesOptions = {}\n): UseQueryResult<EarnWalletBalancesResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery(\n {\n queryKey: [\"earnWalletBalances\", options?.chain, options?.user],\n queryFn: async () => {\n if (!enabled) return null;\n\n return await earnWalletBalances(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 30 * 1000,\n refetchInterval: 15 * 1000,\n refetchOnWindowFocus: true,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n"],"mappings":"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","names":["import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/hooks/useConfig.ts","../src/hooks/client.ts","../src/hooks/endpoints/useOrganizations.ts","../src/hooks/endpoints/useExists.ts","../src/hooks/endpoints/useIndexerTvl.ts","../src/hooks/endpoints/useOrganizationDeals.ts","../src/hooks/endpoints/useOrganizationsDeals.ts","../src/hooks/endpoints/usePrepareSignup.ts","../src/hooks/endpoints/useProjectTvl.ts","../src/hooks/endpoints/useSignup.ts","../src/hooks/endpoints/earn/useCampaigns.ts","../src/hooks/endpoints/earn/useDeals.ts","../src/hooks/endpoints/earn/useRoute.ts","../src/hooks/endpoints/earn/useWalletBalances.ts","../src/hooks/earn/useEnhancedEarnDeals.ts","../src/utils/dataMatching.ts","../src/hooks/endpoints/partner/usePartnerCampaigns.ts","../src/hooks/endpoints/partner/usePartnerDeals.ts"],"sourcesContent":["// TODO: delete - prerelease trigger\n// Hooks\nexport * from \"./hooks/useConfig\";\nexport * from \"./hooks/client\";\n\n// Endpoint hooks\nexport * from \"./hooks/endpoints/useOrganizations\";\nexport * from \"./hooks/endpoints/useExists\";\nexport * from \"./hooks/endpoints/useIndexerTvl\";\nexport * from \"./hooks/endpoints/useOrganizationDeals\";\nexport * from \"./hooks/endpoints/useOrganizationsDeals\";\nexport * from \"./hooks/endpoints/usePrepareSignup\";\nexport * from \"./hooks/endpoints/useProjectTvl\";\nexport * from \"./hooks/endpoints/useSignup\";\n\n// Earn hooks\nexport * from \"./hooks/endpoints/earn\";\nexport * from \"./hooks/earn\";\n\n// Partner hooks\nexport * from \"./hooks/endpoints/partner\";\n","import type { Config } from \"@turtleclub/api\";\nimport { defaultConfig } from \"@turtleclub/api\";\n\nexport function useConfig(): Config {\n // Placeholder implementation - in real app this would use TurtleProvider context\n return defaultConfig;\n}\n","import { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\n\nexport const defaultQueryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\n// Only persist on client side\nif (typeof window !== 'undefined') {\n const localStoragePersister = createSyncStoragePersister({\n storage: window.localStorage,\n key: \"turtle-sdk\",\n });\n\n persistQueryClient({\n queryClient: defaultQueryClient,\n persister: localStoragePersister,\n });\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organization, type OrganizationResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizations({\n config,\n queryClient,\n}: UseOrganizationsOptions = {}): UseQueryResult<OrganizationResponse | null> {\n const defaultConfig = useConfig();\n\n const query = useQuery(\n {\n queryKey: [\"organizations\"],\n queryFn: async () => {\n return await organization(config ?? defaultConfig);\n },\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, exists, type ExistsOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseExistsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useExists(\n options?: ExistsOptions,\n { config, queryClient }: UseExistsOptions = {},\n): UseQueryResult<boolean | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"exists\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await exists(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseIndexerTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useIndexerTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseIndexerTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"indexer-tvl\",\n options?.project,\n options?.chain,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationDeals, type OrganizationDealsOptions, type OrganizationDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationDeals(\n options?: OrganizationDealsOptions,\n { config, queryClient }: UseOrganizationDealsOptions = {},\n): UseQueryResult<OrganizationDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationDeals\", options?.organizationId],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, organizationsDeals, type OrganizationsDealsOptions, type OrganizationsDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseOrganizationsDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useOrganizationsDeals(\n options?: OrganizationsDealsOptions,\n { config, queryClient }: UseOrganizationsDealsOptions = {},\n): UseQueryResult<OrganizationsDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"organizationsDeals\", options?.organizationIds],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await organizationsDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000,\n refetchInterval: 1 * 60 * 1000,\n throwOnError: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, prepareSignup, type PrepareSignupOptions, type PrepareSignupResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UsePrepareSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePrepareSignup(\n options?: PrepareSignupOptions,\n { config, queryClient }: UsePrepareSignupOptions = {},\n): UseQueryResult<PrepareSignupResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"prepareSignup\", options?.user],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await prepareSignup(options, config ?? defaultConfig);\n },\n enabled,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, projectTvl, type ProjectTvlOptions, type ProjectTvlResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseProjectTvlOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useProjectTvl(\n options?: ProjectTvlOptions,\n { config, queryClient }: UseProjectTvlOptions = {},\n): UseQueryResult<ProjectTvlResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\"projectTvl\", options?.projects],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await projectTvl(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 7 * 60 * 1000,\n refetchInterval: 5 * 60 * 1000,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import {\n type QueryClient,\n useMutation,\n type UseMutationResult,\n useQuery,\n} from \"@tanstack/react-query\";\nimport { type Config, signup, type SignupOptions } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../client\";\nimport { useConfig } from \"../useConfig\";\n\nexport interface UseSignupOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useSignup(\n options?: Omit<SignupOptions, \"signature\">,\n { config, queryClient }: UseSignupOptions = {}\n): UseMutationResult<boolean | null, Error, string, unknown> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const mutation = useMutation(\n {\n mutationFn: async (signature: string) => {\n if (!enabled) return null;\n\n return await signup({ ...options, signature }, config ?? defaultConfig);\n },\n },\n queryClient ?? defaultQueryClient\n );\n\n return mutation;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UseEarnCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = true; // Always enabled for campaigns\n\n const query = useQuery({\n queryKey: [\n \"earn-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n return await earnCampaigns(options || {}, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnDeals, type EarnDealsOptions, type EarnDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UseEarnDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnDeals(\n options?: EarnDealsOptions,\n { config, queryClient }: UseEarnDealsOptions = {},\n): UseQueryResult<EarnDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earn-deals\",\n options?.campaignId,\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnDeals(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnRoute, type EarnRouteOptions, type EarnRouteResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnRouteOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnRoute(\n options?: EarnRouteOptions,\n { config, queryClient }: UseEarnRouteOptions = {},\n): UseQueryResult<EarnRouteResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"earnRoute\",\n options?.user,\n options?.chain,\n options?.slippage,\n options?.tokenIn,\n options?.tokenOut,\n options?.amount,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnRoute(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 2 * 60 * 1000, // 2 minutes - longer stale time for transaction stability\n refetchInterval: false, // Disable automatic refetch to prevent transaction state reset\n refetchOnWindowFocus: true,\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}\n","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport {\n type Config,\n earnWalletBalances,\n type EarnWalletBalancesOptions,\n type EarnWalletBalancesResponse,\n} from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"../../client\";\nimport { useConfig } from \"../../useConfig\";\n\nexport interface UseEarnWalletBalancesOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function useEarnWalletBalances(\n options?: EarnWalletBalancesOptions,\n { config, queryClient }: UseEarnWalletBalancesOptions = {}\n): UseQueryResult<EarnWalletBalancesResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery(\n {\n queryKey: [\"earnWalletBalances\", options?.chain, options?.user],\n queryFn: async () => {\n if (!enabled) return null;\n\n return await earnWalletBalances(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 30 * 1000,\n refetchInterval: 15 * 1000,\n refetchOnWindowFocus: true,\n },\n queryClient ?? defaultQueryClient\n );\n\n return query;\n}\n","import { useQueries } from \"@tanstack/react-query\";\nimport { earnDeals, earnTyped, type EarnDealsResponse } from \"@turtleclub/api\";\ntype DefiToken = earnTyped.DefiToken;\nimport { useConfig } from \"@/hooks/useConfig\";\nimport { deduplicateDeals, filterDealsByIds } from \"@/utils/dataMatching\";\n\nexport interface UseEnhancedEarnDealsOptions {\n /**\n * Array of deal IDs to filter\n */\n dealIds?: string[];\n /**\n * Array of campaign IDs to fetch deals from\n */\n campaignIds?: string[];\n /**\n * Whether to fetch all deals when no filters are provided\n */\n fetchAllIfNoFilters?: boolean;\n}\n\nexport interface UseEnhancedEarnDealsResult {\n deals: DefiToken[];\n isLoading: boolean;\n error: Error | null;\n refetch: () => void;\n // Map of dealId to campaignId\n dealCampaignMap: Map<string, string>;\n}\n\n/**\n * Enhanced hook for fetching deals with configuration-based filtering\n *\n * Logic:\n * - If dealIds are provided, fetch all deals and filter by IDs\n * - If campaignIds are provided, fetch deals for each campaign\n * - If neither is provided and fetchAllIfNoFilters is false, return empty array\n * - Deduplicates deals from multiple sources\n */\nexport function useEnhancedEarnDeals({\n dealIds = [],\n campaignIds = [],\n fetchAllIfNoFilters = false,\n}: UseEnhancedEarnDealsOptions = {}): UseEnhancedEarnDealsResult {\n const config = useConfig();\n\n // Determine what queries to make\n const shouldFetchAll =\n dealIds.length > 0 || (fetchAllIfNoFilters && dealIds.length === 0 && campaignIds.length === 0);\n const shouldFetchCampaigns = campaignIds.length > 0;\n\n // Create queries array\n const queries: Array<{\n queryKey: string[];\n queryFn: () => Promise<EarnDealsResponse>;\n enabled: boolean;\n }> = [];\n\n // Add query for all deals if needed\n if (shouldFetchAll) {\n queries.push({\n queryKey: [\"earn-deals\", \"all\"],\n queryFn: () => earnDeals({}, config),\n enabled: true,\n });\n }\n\n // Add queries for each campaign\n if (shouldFetchCampaigns) {\n campaignIds.forEach((campaignId) => {\n queries.push({\n queryKey: [\"earn-deals\", \"campaign\", campaignId],\n queryFn: () => earnDeals({ campaignId }, config),\n enabled: true,\n });\n });\n }\n\n // If no queries, add a disabled query to maintain hook structure\n if (queries.length === 0) {\n queries.push({\n queryKey: [\"earn-deals\", \"none\"],\n queryFn: async () => ({ deals: [], metadata: {} }),\n enabled: false,\n });\n }\n\n // Execute all queries\n const results = useQueries({\n queries: queries.map((query) => ({\n ...query,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n })),\n });\n\n // Process results\n const isLoading = results.some((result) => result.isLoading);\n const error = results.find((result) => result.error)?.error as Error | null;\n\n // Combine all deals and track campaign associations\n let allDeals: DefiToken[] = [];\n const dealCampaignMap = new Map<string, string>();\n\n results.forEach((result, index) => {\n if (result.data?.deals) {\n const queryKey = queries[index].queryKey;\n \n // If this is the \"all deals\" query and we have dealIds filter\n if (queryKey.includes(\"all\") && dealIds.length > 0) {\n const filteredDeals = filterDealsByIds(result.data.deals, dealIds);\n allDeals = [...allDeals, ...filteredDeals];\n } else {\n // Otherwise add all deals from this query\n allDeals = [...allDeals, ...result.data.deals];\n \n // If this is a campaign-specific query, track the campaign association\n if (queryKey.includes(\"campaign\") && queryKey[2]) {\n const campaignId = queryKey[2];\n result.data.deals.forEach(deal => {\n dealCampaignMap.set(deal.metadata.id, campaignId);\n });\n }\n }\n }\n });\n\n // Deduplicate deals\n const uniqueDeals = deduplicateDeals(allDeals);\n\n // Create refetch function\n const refetch = () => {\n results.forEach((result) => result.refetch());\n };\n\n return {\n deals: uniqueDeals,\n isLoading,\n error,\n refetch,\n dealCampaignMap,\n };\n}\n","import { earnTyped } from \"@turtleclub/api\";\ntype DefiToken = earnTyped.DefiToken;\n\n/**\n * Matches deals by protocol and vault identifiers\n * This function handles matching between different data sources\n */\nexport function matchDealsByProtocol(\n earnDeals: DefiToken[],\n protocolFilter?: string\n): DefiToken[] {\n if (!protocolFilter) return earnDeals;\n \n return earnDeals.filter(deal => \n deal.protocol?.toLowerCase() === protocolFilter.toLowerCase()\n );\n}\n\n/**\n * Matches vault deals with campaign vaults\n * Useful for matching deals from different endpoints\n */\nexport function matchVaultDeals(\n earnDeals: DefiToken[],\n vaultIds: string[]\n): DefiToken[] {\n if (!vaultIds.length) return [];\n \n return earnDeals.filter(deal => \n vaultIds.includes(deal.metadata.id)\n );\n}\n\n/**\n * Deduplicates deals from multiple sources\n * Prioritizes deals with more complete data\n */\nexport function deduplicateDeals(deals: DefiToken[]): DefiToken[] {\n const dealsMap = new Map<string, DefiToken>();\n \n deals.forEach(deal => {\n const key = deal.metadata.id;\n const existing = dealsMap.get(key);\n \n // If no existing deal or new deal has more data, replace\n if (!existing || hasMoreCompleteData(deal, existing)) {\n dealsMap.set(key, deal);\n }\n });\n \n return Array.from(dealsMap.values());\n}\n\n/**\n * Helper to determine if a deal has more complete data\n */\nfunction hasMoreCompleteData(newDeal: DefiToken, existingDeal: DefiToken): boolean {\n // Check for TVL data\n if (newDeal.data.tvl > 0 && existingDeal.data.tvl === 0) return true;\n \n // Check for APY data\n if (newDeal.data.apy > 0 && existingDeal.data.apy === 0) return true;\n \n // Check for icon/logo data\n if (newDeal.metadata.iconUrl && !existingDeal.metadata.iconUrl) return true;\n if (newDeal.token.logos.length > existingDeal.token.logos.length) return true;\n \n // Check for underlying tokens\n if (newDeal.underlying_tokens.length > existingDeal.underlying_tokens.length) return true;\n \n return false;\n}\n\n/**\n * Filters deals by specific IDs\n */\nexport function filterDealsByIds(deals: DefiToken[], ids: string[]): DefiToken[] {\n if (!ids.length) return deals;\n \n return deals.filter(deal => ids.includes(deal.metadata.id));\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, earnCampaigns, type EarnCampaignsOptions, type EarnCampaignWithVaults } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UsePartnerCampaignsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\n/**\n * Hook to fetch partner campaigns\n * Currently uses the same endpoint as earn campaigns\n */\nexport function usePartnerCampaigns(\n options?: EarnCampaignsOptions,\n { config, queryClient }: UsePartnerCampaignsOptions = {},\n): UseQueryResult<EarnCampaignWithVaults[] | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"partner-campaigns\",\n options?.idFilter,\n options?.protocolFilter,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n return await earnCampaigns(options, config ?? defaultConfig);\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}","import { type QueryClient, useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { type Config, turtleDeals, type TurtleDealsOptions, type TurtleDealsResponse } from \"@turtleclub/api\";\nimport { defaultQueryClient } from \"@/hooks/client\";\nimport { useConfig } from \"@/hooks/useConfig\";\n\nexport interface UsePartnerDealsOptions {\n config?: Config;\n queryClient?: QueryClient;\n}\n\nexport function usePartnerDeals(\n options?: TurtleDealsOptions,\n { config, queryClient }: UsePartnerDealsOptions = {},\n): UseQueryResult<TurtleDealsResponse | null> {\n const defaultConfig = useConfig();\n const enabled = options !== undefined;\n\n const query = useQuery({\n queryKey: [\n \"partner-deals\",\n options?.status,\n options?.protocol,\n options?.ids,\n ],\n queryFn: async () => {\n if (!enabled)\n return null;\n\n const result = await turtleDeals(options || {}, config ?? defaultConfig);\n return result;\n },\n enabled,\n staleTime: 5 * 60 * 1000,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n gcTime: 30 * 60 * 1000, // 30 minutos de cache\n }, queryClient ?? defaultQueryClient);\n\n return query;\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,iBAA8B;AAEvB,SAAS,YAAoB;AAElC,SAAO;AACT;;;ACNA,0CAA2C;AAC3C,yBAA4B;AAC5B,wCAAmC;AAE5B,IAAM,qBAAqB,IAAI,+BAAY;AAAA,EAChD,gBAAgB;AAAA,IACd,SAAS;AAAA,MACP,sBAAsB;AAAA,IACxB;AAAA,EACF;AACF,CAAC;AAGD,IAAI,OAAO,WAAW,aAAa;AACjC,QAAM,4BAAwB,gEAA2B;AAAA,IACvD,SAAS,OAAO;AAAA,IAChB,KAAK;AAAA,EACP,CAAC;AAED,4DAAmB;AAAA,IACjB,aAAa;AAAA,IACb,WAAW;AAAA,EACb,CAAC;AACH;;;ACvBA,IAAAA,sBAAgE;AAChE,IAAAC,cAAqE;AAS9D,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AACF,IAA6B,CAAC,GAAgD;AAC5E,QAAMC,iBAAgB,UAAU;AAEhC,QAAM,YAAQ;AAAA,IACZ;AAAA,MACE,UAAU,CAAC,eAAe;AAAA,MAC1B,SAAS,YAAY;AACnB,eAAO,UAAM,0BAAa,UAAUA,cAAa;AAAA,MACnD;AAAA,MACA,WAAW,IAAI,KAAK;AAAA,MACpB,iBAAiB,IAAI,KAAK;AAAA,IAC5B;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;AC7BA,IAAAC,sBAAgE;AAChE,IAAAC,cAAwD;AASjD,SAAS,UACd,SACA,EAAE,QAAQ,YAAY,IAAsB,CAAC,GACb;AAChC,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU,CAAC,UAAU,SAAS,IAAI;AAAA,IAClC,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,oBAAO,SAAS,UAAUA,cAAa;AAAA,IACtD;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,iBAAiB,IAAI,KAAK;AAAA,IAC1B,sBAAsB;AAAA,EACxB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AChCA,IAAAC,sBAAgE;AAChE,IAAAC,cAAyF;AASlF,SAAS,cACd,SACA,EAAE,QAAQ,YAAY,IAA0B,CAAC,GACN;AAC3C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,wBAAW,SAAS,UAAUA,cAAa;AAAA,IAC1D;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,EACpB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;ACtCA,IAAAC,sBAAgE;AAChE,IAAAC,cAA8G;AASvG,SAAS,qBACd,SACA,EAAE,QAAQ,YAAY,IAAiC,CAAC,GACN;AAClD,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU,CAAC,qBAAqB,SAAS,cAAc;AAAA,IACvD,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,+BAAkB,SAAS,UAAUA,cAAa;AAAA,IACjE;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,iBAAiB,IAAI,KAAK;AAAA,EAC5B,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AC/BA,IAAAC,sBAAgE;AAChE,IAAAC,cAAiH;AAS1G,SAAS,sBACd,SACA,EAAE,QAAQ,YAAY,IAAkC,CAAC,GACN;AACnD,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU,CAAC,sBAAsB,SAAS,eAAe;AAAA,IACzD,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,gCAAmB,SAAS,UAAUA,cAAa;AAAA,IAClE;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,iBAAiB,IAAI,KAAK;AAAA,IAC1B,cAAc;AAAA,EAChB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AChCA,IAAAC,sBAAgE;AAChE,IAAAC,cAAkG;AAS3F,SAAS,iBACd,SACA,EAAE,QAAQ,YAAY,IAA6B,CAAC,GACN;AAC9C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU,CAAC,iBAAiB,SAAS,IAAI;AAAA,IACzC,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,2BAAc,SAAS,UAAUA,cAAa;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,iBAAiB,IAAI,KAAK;AAAA,EAC5B,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AC9BA,IAAAC,sBAAgE;AAChE,IAAAC,cAAyF;AASlF,SAAS,cACd,SACA,EAAE,QAAQ,YAAY,IAA0B,CAAC,GACN;AAC3C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,8BAAS;AAAA,IACrB,UAAU,CAAC,cAAc,SAAS,QAAQ;AAAA,IAC1C,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,wBAAW,SAAS,UAAUA,cAAa;AAAA,IAC1D;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,iBAAiB,IAAI,KAAK;AAAA,EAC5B,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AC/BA,IAAAC,sBAKO;AACP,IAAAC,cAAwD;AASjD,SAAS,UACd,SACA,EAAE,QAAQ,YAAY,IAAsB,CAAC,GACc;AAC3D,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,eAAW;AAAA,IACf;AAAA,MACE,YAAY,OAAO,cAAsB;AACvC,YAAI,CAAC,QAAS,QAAO;AAErB,eAAO,UAAM,oBAAO,EAAE,GAAG,SAAS,UAAU,GAAG,UAAUA,cAAa;AAAA,MACxE;AAAA,IACF;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;AClCA,IAAAC,uBAAgE;AAChE,IAAAC,eAAmG;AAS5F,SAAS,iBACd,SACA,EAAE,QAAQ,YAAY,IAA6B,CAAC,GACH;AACjD,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU;AAEhB,QAAM,YAAQ,+BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,aAAO,UAAM,4BAAc,WAAW,CAAC,GAAG,UAAUA,cAAa;AAAA,IACnE;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,EACpB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;ACnCA,IAAAC,uBAAgE;AAChE,IAAAC,eAAsF;AAS/E,SAAS,aACd,SACA,EAAE,QAAQ,YAAY,IAAyB,CAAC,GACN;AAC1C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,+BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,wBAAU,SAAS,UAAUA,cAAa;AAAA,IACzD;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,EACpB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;ACvCA,IAAAC,uBAAgE;AAChE,IAAAC,eAAsF;AAS/E,SAAS,aACd,SACA,EAAE,QAAQ,YAAY,IAAyB,CAAC,GACN;AAC1C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,+BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,wBAAU,SAAS,UAAUA,cAAa;AAAA,IACzD;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA;AAAA,IACpB,iBAAiB;AAAA;AAAA,IACjB,sBAAsB;AAAA,EACxB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;ACxCA,IAAAC,uBAAgE;AAChE,IAAAC,eAKO;AASA,SAAS,sBACd,SACA,EAAE,QAAQ,YAAY,IAAkC,CAAC,GACN;AACnD,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ;AAAA,IACZ;AAAA,MACE,UAAU,CAAC,sBAAsB,SAAS,OAAO,SAAS,IAAI;AAAA,MAC9D,SAAS,YAAY;AACnB,YAAI,CAAC,QAAS,QAAO;AAErB,eAAO,UAAM,iCAAmB,SAAS,UAAUA,cAAa;AAAA,MAClE;AAAA,MACA;AAAA,MACA,WAAW,KAAK;AAAA,MAChB,iBAAiB,KAAK;AAAA,MACtB,sBAAsB;AAAA,IACxB;AAAA,IACA,eAAe;AAAA,EACjB;AAEA,SAAO;AACT;;;ACvCA,IAAAC,uBAA2B;AAC3B,IAAAC,eAA6D;;;ACoCtD,SAAS,iBAAiB,OAAiC;AAChE,QAAM,WAAW,oBAAI,IAAuB;AAE5C,QAAM,QAAQ,UAAQ;AACpB,UAAM,MAAM,KAAK,SAAS;AAC1B,UAAM,WAAW,SAAS,IAAI,GAAG;AAGjC,QAAI,CAAC,YAAY,oBAAoB,MAAM,QAAQ,GAAG;AACpD,eAAS,IAAI,KAAK,IAAI;AAAA,IACxB;AAAA,EACF,CAAC;AAED,SAAO,MAAM,KAAK,SAAS,OAAO,CAAC;AACrC;AAKA,SAAS,oBAAoB,SAAoB,cAAkC;AAEjF,MAAI,QAAQ,KAAK,MAAM,KAAK,aAAa,KAAK,QAAQ,EAAG,QAAO;AAGhE,MAAI,QAAQ,KAAK,MAAM,KAAK,aAAa,KAAK,QAAQ,EAAG,QAAO;AAGhE,MAAI,QAAQ,SAAS,WAAW,CAAC,aAAa,SAAS,QAAS,QAAO;AACvE,MAAI,QAAQ,MAAM,MAAM,SAAS,aAAa,MAAM,MAAM,OAAQ,QAAO;AAGzE,MAAI,QAAQ,kBAAkB,SAAS,aAAa,kBAAkB,OAAQ,QAAO;AAErF,SAAO;AACT;AAKO,SAAS,iBAAiB,OAAoB,KAA4B;AAC/E,MAAI,CAAC,IAAI,OAAQ,QAAO;AAExB,SAAO,MAAM,OAAO,UAAQ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;AAC5D;;;ADzCO,SAAS,qBAAqB;AAAA,EACnC,UAAU,CAAC;AAAA,EACX,cAAc,CAAC;AAAA,EACf,sBAAsB;AACxB,IAAiC,CAAC,GAA+B;AAC/D,QAAM,SAAS,UAAU;AAGzB,QAAM,iBACJ,QAAQ,SAAS,KAAM,uBAAuB,QAAQ,WAAW,KAAK,YAAY,WAAW;AAC/F,QAAM,uBAAuB,YAAY,SAAS;AAGlD,QAAM,UAID,CAAC;AAGN,MAAI,gBAAgB;AAClB,YAAQ,KAAK;AAAA,MACX,UAAU,CAAC,cAAc,KAAK;AAAA,MAC9B,SAAS,UAAM,wBAAU,CAAC,GAAG,MAAM;AAAA,MACnC,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAGA,MAAI,sBAAsB;AACxB,gBAAY,QAAQ,CAAC,eAAe;AAClC,cAAQ,KAAK;AAAA,QACX,UAAU,CAAC,cAAc,YAAY,UAAU;AAAA,QAC/C,SAAS,UAAM,wBAAU,EAAE,WAAW,GAAG,MAAM;AAAA,QAC/C,SAAS;AAAA,MACX,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAGA,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,KAAK;AAAA,MACX,UAAU,CAAC,cAAc,MAAM;AAAA,MAC/B,SAAS,aAAa,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,EAAE;AAAA,MAChD,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAGA,QAAM,cAAU,iCAAW;AAAA,IACzB,SAAS,QAAQ,IAAI,CAAC,WAAW;AAAA,MAC/B,GAAG;AAAA,MACH,WAAW,IAAI,KAAK;AAAA,MACpB,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,IACpB,EAAE;AAAA,EACJ,CAAC;AAGD,QAAM,YAAY,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS;AAC3D,QAAM,QAAQ,QAAQ,KAAK,CAAC,WAAW,OAAO,KAAK,GAAG;AAGtD,MAAI,WAAwB,CAAC;AAC7B,QAAM,kBAAkB,oBAAI,IAAoB;AAEhD,UAAQ,QAAQ,CAAC,QAAQ,UAAU;AACjC,QAAI,OAAO,MAAM,OAAO;AACtB,YAAM,WAAW,QAAQ,KAAK,EAAE;AAGhC,UAAI,SAAS,SAAS,KAAK,KAAK,QAAQ,SAAS,GAAG;AAClD,cAAM,gBAAgB,iBAAiB,OAAO,KAAK,OAAO,OAAO;AACjE,mBAAW,CAAC,GAAG,UAAU,GAAG,aAAa;AAAA,MAC3C,OAAO;AAEL,mBAAW,CAAC,GAAG,UAAU,GAAG,OAAO,KAAK,KAAK;AAG7C,YAAI,SAAS,SAAS,UAAU,KAAK,SAAS,CAAC,GAAG;AAChD,gBAAM,aAAa,SAAS,CAAC;AAC7B,iBAAO,KAAK,MAAM,QAAQ,UAAQ;AAChC,4BAAgB,IAAI,KAAK,SAAS,IAAI,UAAU;AAAA,UAClD,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAGD,QAAM,cAAc,iBAAiB,QAAQ;AAG7C,QAAM,UAAU,MAAM;AACpB,YAAQ,QAAQ,CAAC,WAAW,OAAO,QAAQ,CAAC;AAAA,EAC9C;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;;;AEjJA,IAAAC,uBAAgE;AAChE,IAAAC,eAAmG;AAa5F,SAAS,oBACd,SACA,EAAE,QAAQ,YAAY,IAAgC,CAAC,GACN;AACjD,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,+BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,aAAO,UAAM,4BAAc,SAAS,UAAUA,cAAa;AAAA,IAC7D;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,EACpB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;;;AC1CA,IAAAC,uBAAgE;AAChE,IAAAC,eAA4F;AASrF,SAAS,gBACd,SACA,EAAE,QAAQ,YAAY,IAA4B,CAAC,GACP;AAC5C,QAAMC,iBAAgB,UAAU;AAChC,QAAM,UAAU,YAAY;AAE5B,QAAM,YAAQ,+BAAS;AAAA,IACrB,UAAU;AAAA,MACR;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,IACX;AAAA,IACA,SAAS,YAAY;AACnB,UAAI,CAAC;AACH,eAAO;AAET,YAAM,SAAS,UAAM,0BAAY,WAAW,CAAC,GAAG,UAAUA,cAAa;AACvE,aAAO;AAAA,IACT;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,oBAAoB;AAAA,IACpB,QAAQ,KAAK,KAAK;AAAA;AAAA,EACpB,GAAG,eAAe,kBAAkB;AAEpC,SAAO;AACT;","names":["import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig","import_react_query","import_api","import_react_query","import_api","defaultConfig","import_react_query","import_api","defaultConfig"]}