@sudobility/heavymath_indexer_client 0.0.18 → 0.0.20
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/README.md +44 -341
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/sports/baseball.d.ts +16 -0
- package/dist/hooks/sports/baseball.d.ts.map +1 -0
- package/dist/hooks/sports/baseball.js +30 -0
- package/dist/hooks/sports/baseball.js.map +1 -0
- package/dist/hooks/sports/basketball.d.ts +16 -0
- package/dist/hooks/sports/basketball.d.ts.map +1 -0
- package/dist/hooks/sports/basketball.js +30 -0
- package/dist/hooks/sports/basketball.js.map +1 -0
- package/dist/hooks/sports/f1.d.ts +17 -0
- package/dist/hooks/sports/f1.d.ts.map +1 -0
- package/dist/hooks/sports/f1.js +33 -0
- package/dist/hooks/sports/f1.js.map +1 -0
- package/dist/hooks/sports/football.d.ts +32 -0
- package/dist/hooks/sports/football.d.ts.map +1 -0
- package/dist/hooks/sports/football.js +78 -0
- package/dist/hooks/sports/football.js.map +1 -0
- package/dist/hooks/sports/handball.d.ts +16 -0
- package/dist/hooks/sports/handball.d.ts.map +1 -0
- package/dist/hooks/sports/handball.js +30 -0
- package/dist/hooks/sports/handball.js.map +1 -0
- package/dist/hooks/sports/hockey.d.ts +16 -0
- package/dist/hooks/sports/hockey.d.ts.map +1 -0
- package/dist/hooks/sports/hockey.js +30 -0
- package/dist/hooks/sports/hockey.js.map +1 -0
- package/dist/hooks/sports/index.d.ts +12 -0
- package/dist/hooks/sports/index.d.ts.map +1 -0
- package/dist/hooks/sports/index.js +12 -0
- package/dist/hooks/sports/index.js.map +1 -0
- package/dist/hooks/sports/mma.d.ts +13 -0
- package/dist/hooks/sports/mma.d.ts.map +1 -0
- package/dist/hooks/sports/mma.js +21 -0
- package/dist/hooks/sports/mma.js.map +1 -0
- package/dist/hooks/sports/nfl.d.ts +16 -0
- package/dist/hooks/sports/nfl.d.ts.map +1 -0
- package/dist/hooks/sports/nfl.js +30 -0
- package/dist/hooks/sports/nfl.js.map +1 -0
- package/dist/hooks/sports/rugby.d.ts +16 -0
- package/dist/hooks/sports/rugby.d.ts.map +1 -0
- package/dist/hooks/sports/rugby.js +30 -0
- package/dist/hooks/sports/rugby.js.map +1 -0
- package/dist/hooks/sports/useSportsProxy.d.ts +5 -0
- package/dist/hooks/sports/useSportsProxy.d.ts.map +1 -0
- package/dist/hooks/sports/useSportsProxy.js +11 -0
- package/dist/hooks/sports/useSportsProxy.js.map +1 -0
- package/dist/hooks/sports/volleyball.d.ts +15 -0
- package/dist/hooks/sports/volleyball.d.ts.map +1 -0
- package/dist/hooks/sports/volleyball.js +27 -0
- package/dist/hooks/sports/volleyball.js.map +1 -0
- package/dist/network/IndexerClient.d.ts +2 -0
- package/dist/network/IndexerClient.d.ts.map +1 -1
- package/dist/network/IndexerClient.js +19 -2
- package/dist/network/IndexerClient.js.map +1 -1
- package/dist/types/sports.d.ts +14 -0
- package/dist/types/sports.d.ts.map +1 -0
- package/dist/types/sports.js +2 -0
- package/dist/types/sports.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -1,380 +1,83 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @sudobility/heavymath_indexer_client
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **Full API Coverage** - All REST endpoints supported
|
|
8
|
-
- **React Hooks** - Built-in hooks using @tanstack/react-query
|
|
9
|
-
- **Business Services** - High-level services with caching
|
|
10
|
-
- **Network Layer** - Low-level API client for custom integrations
|
|
11
|
-
- **TypeScript First** - Full type definitions included
|
|
12
|
-
- **React Native Compatible** - Works in React Native environments
|
|
13
|
-
- **Dependency Injection** - Uses NetworkClient from @sudobility/di
|
|
3
|
+
React and React Native compatible client library for the Heavymath prediction market indexer API. Provides a four-layer architecture (hooks, stores, business, network) with React Query integration, Zustand stores for optimistic updates, and SSE real-time subscriptions.
|
|
14
4
|
|
|
15
5
|
## Installation
|
|
16
6
|
|
|
17
7
|
```bash
|
|
18
|
-
|
|
8
|
+
bun add @sudobility/heavymath_indexer_client
|
|
19
9
|
```
|
|
20
10
|
|
|
21
|
-
|
|
11
|
+
### Peer Dependencies
|
|
22
12
|
|
|
23
13
|
```bash
|
|
24
|
-
|
|
14
|
+
bun add react @tanstack/react-query zustand @sudobility/types @sudobility/heavymath_types
|
|
25
15
|
```
|
|
26
16
|
|
|
27
|
-
##
|
|
28
|
-
|
|
29
|
-
### 1. Setup React Query Provider
|
|
17
|
+
## Usage
|
|
30
18
|
|
|
31
|
-
```
|
|
32
|
-
import {
|
|
19
|
+
```typescript
|
|
20
|
+
import { IndexerClient, useActiveMarkets, useFavorites } from '@sudobility/heavymath_indexer_client';
|
|
33
21
|
|
|
34
|
-
|
|
22
|
+
// Create client with injected NetworkClient
|
|
23
|
+
const client = new IndexerClient('http://localhost:42069', networkClient);
|
|
35
24
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
);
|
|
25
|
+
// Use hooks in React components
|
|
26
|
+
function Dashboard({ wallet }) {
|
|
27
|
+
const { data: markets } = useActiveMarkets(client, 20);
|
|
28
|
+
const { favorites, addFavorite, removeFavorite } = useFavorites(client, wallet);
|
|
29
|
+
// ...
|
|
42
30
|
}
|
|
43
31
|
```
|
|
44
32
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
```tsx
|
|
48
|
-
import { useMemo } from 'react';
|
|
49
|
-
import { useNetworkService } from '@sudobility/di'; // Or your DI container
|
|
50
|
-
import { IndexerClient } from '@heavymath/indexer_client';
|
|
51
|
-
|
|
52
|
-
// Create a hook to provide IndexerClient
|
|
53
|
-
function useIndexerClient() {
|
|
54
|
-
const networkClient = useNetworkService();
|
|
55
|
-
return useMemo(
|
|
56
|
-
() => new IndexerClient('http://localhost:42069', networkClient),
|
|
57
|
-
[networkClient]
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
```
|
|
33
|
+
## Available Hooks
|
|
61
34
|
|
|
62
|
-
###
|
|
35
|
+
### Markets
|
|
36
|
+
`useMarkets`, `useActiveMarkets`, `useMarket`, `useMarketPredictions`, `useMarketHistory`, `useMarketDetails`
|
|
63
37
|
|
|
64
|
-
|
|
65
|
-
|
|
38
|
+
### Predictions
|
|
39
|
+
`usePredictions`, `useUserPredictions`, `useActiveBets`, `usePastBets`, `usePrediction`, `useUserBettingHistory`
|
|
66
40
|
|
|
67
|
-
|
|
68
|
-
|
|
41
|
+
### Dealers
|
|
42
|
+
`useDealers`, `useIsDealer`, `useDealerNFTs`, `useDealer`, `useDealerPermissions`, `useDealerMarkets`, `useDealerDashboard`
|
|
69
43
|
|
|
70
|
-
|
|
71
|
-
|
|
44
|
+
### Withdrawals / Oracle
|
|
45
|
+
`useWithdrawals`, `useDealerWithdrawals`, `useSystemWithdrawals`, `useMarketWithdrawals`, `useOracleRequests`, `useOracleRequest`, `useMarketOracle`
|
|
72
46
|
|
|
73
|
-
|
|
47
|
+
### Favorites (with Zustand optimistic updates)
|
|
48
|
+
`useFavorites`, `useCategoryFavorites`, `useIsFavorite`
|
|
74
49
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
<h2>Active Markets</h2>
|
|
78
|
-
{markets?.data?.map(market => (
|
|
79
|
-
<MarketCard key={market.id} market={market} />
|
|
80
|
-
))}
|
|
50
|
+
### SSE (real-time)
|
|
51
|
+
`useSSE`, `useMarketUpdates`, `useAllMarketUpdates`, `useUserPredictionUpdates`
|
|
81
52
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
<BetCard key={bet.id} bet={bet} />
|
|
85
|
-
))}
|
|
86
|
-
</div>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
```
|
|
53
|
+
### Stats
|
|
54
|
+
`useMarketStats`, `useHealth`
|
|
90
55
|
|
|
91
56
|
## Architecture
|
|
92
57
|
|
|
93
|
-
The library is organized into three layers:
|
|
94
|
-
|
|
95
|
-
### 1. Network Layer
|
|
96
|
-
|
|
97
|
-
Low-level API client that accepts a `NetworkClient` instance.
|
|
98
|
-
|
|
99
|
-
```tsx
|
|
100
|
-
import type { NetworkClient } from '@sudobility/types';
|
|
101
|
-
import { IndexerClient } from '@heavymath/indexer_client';
|
|
102
|
-
|
|
103
|
-
// Get NetworkClient from your DI container
|
|
104
|
-
const networkClient: NetworkClient = getNetworkService();
|
|
105
|
-
|
|
106
|
-
const client = new IndexerClient('http://localhost:42069', networkClient);
|
|
107
|
-
|
|
108
|
-
// Direct API calls
|
|
109
|
-
const markets = await client.getMarkets({ status: 'Active', limit: 10 });
|
|
110
|
-
const market = await client.getMarket('1-market-123');
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### 2. Business Layer
|
|
114
|
-
|
|
115
|
-
High-level services with caching and business logic.
|
|
116
|
-
|
|
117
|
-
```tsx
|
|
118
|
-
import type { NetworkClient } from '@sudobility/types';
|
|
119
|
-
import { IndexerService } from '@heavymath/indexer_client';
|
|
120
|
-
|
|
121
|
-
const networkClient: NetworkClient = getNetworkService();
|
|
122
|
-
|
|
123
|
-
const service = new IndexerService({
|
|
124
|
-
indexerUrl: 'http://localhost:42069',
|
|
125
|
-
networkClient,
|
|
126
|
-
cacheTTL: 5 * 60 * 1000, // 5 minutes (optional)
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// Business methods with caching
|
|
130
|
-
const activeMarkets = await service.getActiveMarkets(20);
|
|
131
|
-
const userPredictions = await service.getUserPredictions('0x123...');
|
|
132
|
-
const dealerDashboard = await service.getDealerDashboard('0x123...');
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 3. Hooks Layer
|
|
136
|
-
|
|
137
|
-
React hooks using @tanstack/react-query for data fetching.
|
|
138
|
-
|
|
139
|
-
```tsx
|
|
140
|
-
import { useActiveMarkets, useUserPredictions, useDealerDashboard } from '@heavymath/indexer_client';
|
|
141
|
-
|
|
142
|
-
// All hooks take IndexerClient as first parameter
|
|
143
|
-
const { data, isLoading, error, refetch } = useActiveMarkets(client, 20);
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Common Use Cases
|
|
147
|
-
|
|
148
|
-
### Dealer Dashboard
|
|
149
|
-
|
|
150
|
-
```tsx
|
|
151
|
-
import { useDealerDashboard, useIsDealer } from '@heavymath/indexer_client';
|
|
152
|
-
|
|
153
|
-
function DealerDashboard({ wallet }: { wallet: string }) {
|
|
154
|
-
const client = useIndexerClient();
|
|
155
|
-
|
|
156
|
-
const { data: isDealer, isLoading: checkingDealer } = useIsDealer(client, wallet);
|
|
157
|
-
const { nfts, markets, isLoading } = useDealerDashboard(client, wallet);
|
|
158
|
-
|
|
159
|
-
if (checkingDealer) return <div>Checking dealer status...</div>;
|
|
160
|
-
if (!isDealer) return <div>You are not a dealer</div>;
|
|
161
|
-
if (isLoading) return <div>Loading dashboard...</div>;
|
|
162
|
-
|
|
163
|
-
return (
|
|
164
|
-
<div>
|
|
165
|
-
<h2>My Dealer NFTs</h2>
|
|
166
|
-
{nfts.data?.map(nft => (
|
|
167
|
-
<div key={nft.id}>Token #{nft.tokenId}</div>
|
|
168
|
-
))}
|
|
169
|
-
|
|
170
|
-
<h2>My Markets</h2>
|
|
171
|
-
{markets.data?.map(market => (
|
|
172
|
-
<MarketCard key={market.id} market={market} />
|
|
173
|
-
))}
|
|
174
|
-
</div>
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
### Market Details Page
|
|
180
|
-
|
|
181
|
-
```tsx
|
|
182
|
-
import { useMarketDetails } from '@heavymath/indexer_client';
|
|
183
|
-
|
|
184
|
-
function MarketPage({ marketId }: { marketId: string }) {
|
|
185
|
-
const client = useIndexerClient();
|
|
186
|
-
|
|
187
|
-
const { market, predictions, history, isLoading, isError } = useMarketDetails(client, marketId);
|
|
188
|
-
|
|
189
|
-
if (isLoading) return <div>Loading...</div>;
|
|
190
|
-
if (isError) return <div>Error loading market</div>;
|
|
191
|
-
|
|
192
|
-
return (
|
|
193
|
-
<div>
|
|
194
|
-
<h1>{market.data?.data?.title}</h1>
|
|
195
|
-
<p>{market.data?.data?.description}</p>
|
|
196
|
-
<p>Status: {market.data?.data?.status}</p>
|
|
197
|
-
|
|
198
|
-
<h2>Predictions ({predictions.data?.data?.length || 0})</h2>
|
|
199
|
-
{predictions.data?.data?.map(pred => (
|
|
200
|
-
<div key={pred.id}>
|
|
201
|
-
{pred.userAddress}: {pred.percentage}%
|
|
202
|
-
</div>
|
|
203
|
-
))}
|
|
204
|
-
|
|
205
|
-
<h2>State History</h2>
|
|
206
|
-
{history.data?.data?.map(state => (
|
|
207
|
-
<div key={state.id}>
|
|
208
|
-
{state.fromState} → {state.toState}
|
|
209
|
-
</div>
|
|
210
|
-
))}
|
|
211
|
-
</div>
|
|
212
|
-
);
|
|
213
|
-
}
|
|
214
58
|
```
|
|
215
|
-
|
|
216
|
-
### Wallet Favorites
|
|
217
|
-
|
|
218
|
-
```tsx
|
|
219
|
-
import { useFavorites } from '@heavymath/indexer_client';
|
|
220
|
-
|
|
221
|
-
function FavoritesPage({ wallet }: { wallet: string }) {
|
|
222
|
-
const client = useIndexerClient();
|
|
223
|
-
|
|
224
|
-
const { favorites, isLoading, addFavorite, removeFavorite, refresh } = useFavorites(
|
|
225
|
-
client,
|
|
226
|
-
wallet
|
|
227
|
-
);
|
|
228
|
-
|
|
229
|
-
const handleAddFavorite = async () => {
|
|
230
|
-
await addFavorite.mutateAsync({
|
|
231
|
-
category: 'sports',
|
|
232
|
-
subcategory: 'soccer',
|
|
233
|
-
type: 'team',
|
|
234
|
-
id: 'team-123',
|
|
235
|
-
});
|
|
236
|
-
};
|
|
237
|
-
|
|
238
|
-
const handleRemoveFavorite = async (id: number) => {
|
|
239
|
-
await removeFavorite.mutateAsync(id);
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
if (isLoading) return <div>Loading...</div>;
|
|
243
|
-
|
|
244
|
-
return (
|
|
245
|
-
<div>
|
|
246
|
-
<h2>My Favorites</h2>
|
|
247
|
-
{favorites.map(fav => (
|
|
248
|
-
<div key={fav.id}>
|
|
249
|
-
{fav.category}/{fav.subcategory}: {fav.itemId}
|
|
250
|
-
<button onClick={() => handleRemoveFavorite(fav.id)}>Remove</button>
|
|
251
|
-
</div>
|
|
252
|
-
))}
|
|
253
|
-
<button onClick={handleAddFavorite}>Add Favorite</button>
|
|
254
|
-
</div>
|
|
255
|
-
);
|
|
256
|
-
}
|
|
59
|
+
Hooks (React Query) --> Zustand Stores --> Business Layer (caching) --> Network Layer (HTTP)
|
|
257
60
|
```
|
|
258
61
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
### Market Hooks
|
|
262
|
-
- `useMarkets(client, filters?)` - Get all markets with filtering
|
|
263
|
-
- `useActiveMarkets(client, limit?)` - Get active markets only
|
|
264
|
-
- `useMarket(client, marketId)` - Get specific market
|
|
265
|
-
- `useMarketPredictions(client, marketId)` - Get market's predictions
|
|
266
|
-
- `useMarketHistory(client, marketId)` - Get market's state history
|
|
267
|
-
- `useMarketDetails(client, marketId)` - Get complete market details
|
|
268
|
-
|
|
269
|
-
### Prediction Hooks
|
|
270
|
-
- `usePredictions(client, filters?)` - Get predictions with filtering
|
|
271
|
-
- `useUserPredictions(client, wallet, filters?)` - Get user's predictions
|
|
272
|
-
- `useActiveBets(client, wallet)` - Get user's active bets
|
|
273
|
-
- `usePastBets(client, wallet)` - Get user's claimed bets
|
|
274
|
-
- `usePrediction(client, predictionId)` - Get specific prediction
|
|
275
|
-
- `useUserBettingHistory(client, wallet)` - Get complete betting history
|
|
276
|
-
|
|
277
|
-
### Dealer Hooks
|
|
278
|
-
- `useDealers(client, filters?)` - Get dealer NFTs with filtering
|
|
279
|
-
- `useIsDealer(client, wallet)` - Check if wallet is a dealer
|
|
280
|
-
- `useDealerNFTs(client, wallet)` - Get wallet's dealer NFTs
|
|
281
|
-
- `useDealer(client, dealerId)` - Get specific dealer NFT
|
|
282
|
-
- `useDealerPermissions(client, dealerId)` - Get dealer's permissions
|
|
283
|
-
- `useDealerMarkets(client, dealerId)` - Get dealer's markets
|
|
284
|
-
- `useDealerDashboard(client, wallet)` - Get complete dealer dashboard
|
|
285
|
-
|
|
286
|
-
### Withdrawal Hooks
|
|
287
|
-
- `useWithdrawals(client, filters?)` - Get withdrawals with filtering
|
|
288
|
-
- `useDealerWithdrawals(client, dealer)` - Get dealer's withdrawals
|
|
289
|
-
- `useSystemWithdrawals(client)` - Get system withdrawals
|
|
290
|
-
- `useMarketWithdrawals(client, marketId)` - Get market's withdrawals
|
|
291
|
-
|
|
292
|
-
### Oracle Hooks
|
|
293
|
-
- `useOracleRequests(client, filters?)` - Get oracle requests with filtering
|
|
294
|
-
- `useOracleRequest(client, requestId)` - Get specific oracle request
|
|
295
|
-
- `useMarketOracle(client, marketId)` - Get market's oracle request
|
|
296
|
-
- `useTimedOutOracleRequests(client)` - Get timed out requests
|
|
297
|
-
- `usePendingOracleRequests(client)` - Get pending requests
|
|
298
|
-
|
|
299
|
-
### Favorites Hooks
|
|
300
|
-
- `useFavorites(client, wallet, filters?)` - Get favorites with add/remove/refresh
|
|
301
|
-
- `useCategoryFavorites(client, wallet, category)` - Get favorites by category
|
|
302
|
-
- `useIsFavorite(client, wallet, item)` - Check if item is favorited with toggle
|
|
303
|
-
|
|
304
|
-
### Stats Hooks
|
|
305
|
-
- `useMarketStats(client)` - Get market statistics
|
|
306
|
-
- `useHealth(client)` - Get indexer health status
|
|
307
|
-
|
|
308
|
-
## API Endpoints
|
|
309
|
-
|
|
310
|
-
The client supports all REST endpoints:
|
|
311
|
-
|
|
312
|
-
- **Markets**: `/api/markets`, `/api/markets/:id`, `/api/markets/:id/predictions`, `/api/markets/:id/history`
|
|
313
|
-
- **Predictions**: `/api/predictions`, `/api/predictions/:id`
|
|
314
|
-
- **Dealers**: `/api/dealers`, `/api/dealers/:id`, `/api/dealers/:id/permissions`, `/api/dealers/:id/markets`
|
|
315
|
-
- **Withdrawals**: `/api/withdrawals`
|
|
316
|
-
- **Oracle**: `/api/oracle/requests`, `/api/oracle/requests/:id`
|
|
317
|
-
- **Favorites**: `/api/wallet/:address/favorites` (GET, POST, DELETE)
|
|
318
|
-
- **Analytics**: `/api/stats/markets`, `/api/health`
|
|
319
|
-
|
|
320
|
-
## TypeScript Support
|
|
321
|
-
|
|
322
|
-
Full TypeScript definitions included:
|
|
323
|
-
|
|
324
|
-
```tsx
|
|
325
|
-
import type {
|
|
326
|
-
// Core types (from @sudobility/heavymath_types)
|
|
327
|
-
MarketData,
|
|
328
|
-
PredictionData,
|
|
329
|
-
DealerNftData,
|
|
330
|
-
DealerPermissionData,
|
|
331
|
-
MarketStateHistoryData,
|
|
332
|
-
FeeWithdrawalData,
|
|
333
|
-
OracleRequestData,
|
|
334
|
-
WalletFavoriteData,
|
|
335
|
-
CreateFavoriteRequest,
|
|
336
|
-
// Enums
|
|
337
|
-
MarketStatus,
|
|
338
|
-
ClaimType,
|
|
339
|
-
WithdrawalType,
|
|
340
|
-
// Response wrappers (from @sudobility/types)
|
|
341
|
-
ApiResponse,
|
|
342
|
-
PaginatedResponse,
|
|
343
|
-
NetworkClient,
|
|
344
|
-
// Filter types
|
|
345
|
-
MarketFilters,
|
|
346
|
-
PredictionFilters,
|
|
347
|
-
DealerFilters,
|
|
348
|
-
WithdrawalFilters,
|
|
349
|
-
OracleFilters,
|
|
350
|
-
WalletFavoritesFilters,
|
|
351
|
-
} from '@heavymath/indexer_client';
|
|
352
|
-
```
|
|
62
|
+
All hooks accept `IndexerClient` as their first parameter. SSE hooks accept an endpoint URL.
|
|
353
63
|
|
|
354
64
|
## Development
|
|
355
65
|
|
|
356
66
|
```bash
|
|
357
|
-
#
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
#
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
# Type check
|
|
364
|
-
npm run typecheck
|
|
67
|
+
bun run build # Compile TypeScript to dist/
|
|
68
|
+
bun run typecheck # Type validation
|
|
69
|
+
bun run test:run # Run tests once
|
|
70
|
+
bun run lint # ESLint check
|
|
71
|
+
bun run check-all # Lint + typecheck + tests
|
|
72
|
+
```
|
|
365
73
|
|
|
366
|
-
|
|
367
|
-
npm run lint
|
|
74
|
+
## Related Packages
|
|
368
75
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
npm run check-all
|
|
374
|
-
```
|
|
76
|
+
- `@sudobility/heavymath_types` -- shared type definitions
|
|
77
|
+
- `@sudobility/heavymath_indexer` -- the backend indexer this client connects to
|
|
78
|
+
- `@sudobility/heavymath_lib` -- business logic hooks
|
|
79
|
+
- `heavymath_app` -- frontend web application
|
|
375
80
|
|
|
376
81
|
## License
|
|
377
82
|
|
|
378
|
-
BUSL
|
|
379
|
-
|
|
380
|
-
Copyright (c) 2025 Sudobility Inc.
|
|
83
|
+
BUSL-1.1
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC"}
|
package/dist/hooks/index.js
CHANGED
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC","sourcesContent":["/**\n * React hooks for Heavymath Prediction Market Indexer API\n */\n\n// Market hooks\nexport * from './useMarkets';\n\n// Prediction hooks\nexport * from './usePredictions';\n\n// Dealer NFT hooks\nexport * from './useDealers';\n\n// Fee withdrawal hooks\nexport * from './useWithdrawals';\n\n// Oracle hooks\nexport * from './useOracle';\n\n// Analytics and stats hooks\nexport * from './useStats';\n\n// Favorites hooks\nexport * from './useFavorites';\n\n// Real-time SSE hooks\nexport * from './useSSE';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAKA,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC","sourcesContent":["/**\n * React hooks for Heavymath Prediction Market Indexer API\n */\n\n// Market hooks\nexport * from './useMarkets';\n\n// Prediction hooks\nexport * from './usePredictions';\n\n// Dealer NFT hooks\nexport * from './useDealers';\n\n// Fee withdrawal hooks\nexport * from './useWithdrawals';\n\n// Oracle hooks\nexport * from './useOracle';\n\n// Analytics and stats hooks\nexport * from './useStats';\n\n// Favorites hooks\nexport * from './useFavorites';\n\n// Real-time SSE hooks\nexport * from './useSSE';\n\n// Sports API proxy hooks\nexport * from './sports';\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import type { IndexerClient } from '../../network/IndexerClient';
|
|
3
|
+
import type { SportsApiResponse, SportsQueryParams } from '../../types/sports';
|
|
4
|
+
type Opts<T> = Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>;
|
|
5
|
+
type Result<T> = UseQueryResult<SportsApiResponse<T>>;
|
|
6
|
+
export declare function useBaseballTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
|
|
7
|
+
export declare function useBaseballCountries(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
8
|
+
export declare function useBaseballSeasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
9
|
+
export declare function useBaseballLeagues(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
10
|
+
export declare function useBaseballTeams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
11
|
+
export declare function useBaseballTeamStatistics(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
12
|
+
export declare function useBaseballGames(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
13
|
+
export declare function useBaseballGamesH2H(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
14
|
+
export declare function useBaseballStandings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=baseball.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseball.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/baseball.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AACnF,KAAK,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAItD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAEhG;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useSportsProxy } from './useSportsProxy';
|
|
2
|
+
const S = 'baseball';
|
|
3
|
+
export function useBaseballTimezone(client, opts) {
|
|
4
|
+
return useSportsProxy(client, S, '/timezone', undefined, opts);
|
|
5
|
+
}
|
|
6
|
+
export function useBaseballCountries(client, params, opts) {
|
|
7
|
+
return useSportsProxy(client, S, '/countries', params, opts);
|
|
8
|
+
}
|
|
9
|
+
export function useBaseballSeasons(client, params, opts) {
|
|
10
|
+
return useSportsProxy(client, S, '/seasons', params, opts);
|
|
11
|
+
}
|
|
12
|
+
export function useBaseballLeagues(client, params, opts) {
|
|
13
|
+
return useSportsProxy(client, S, '/leagues', params, opts);
|
|
14
|
+
}
|
|
15
|
+
export function useBaseballTeams(client, params, opts) {
|
|
16
|
+
return useSportsProxy(client, S, '/teams', params, opts);
|
|
17
|
+
}
|
|
18
|
+
export function useBaseballTeamStatistics(client, params, opts) {
|
|
19
|
+
return useSportsProxy(client, S, '/statistics', params, opts);
|
|
20
|
+
}
|
|
21
|
+
export function useBaseballGames(client, params, opts) {
|
|
22
|
+
return useSportsProxy(client, S, '/games', params, opts);
|
|
23
|
+
}
|
|
24
|
+
export function useBaseballGamesH2H(client, params, opts) {
|
|
25
|
+
return useSportsProxy(client, S, '/games/h2h', params, opts);
|
|
26
|
+
}
|
|
27
|
+
export function useBaseballStandings(client, params, opts) {
|
|
28
|
+
return useSportsProxy(client, S, '/standings', params, opts);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=baseball.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseball.js","sourceRoot":"","sources":["../../../src/hooks/sports/baseball.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,MAAM,UAAU,mBAAmB,CAAC,MAAqB,EAAE,IAAoB;IAC7E,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["/**\n * Baseball proxy hooks - api-sports.io v1\n */\n\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { IndexerClient } from '../../network/IndexerClient';\nimport type { SportsApiResponse, SportsQueryParams } from '../../types/sports';\nimport { useSportsProxy } from './useSportsProxy';\n\ntype Opts<T> = Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>;\ntype Result<T> = UseQueryResult<SportsApiResponse<T>>;\n\nconst S = 'baseball';\n\nexport function useBaseballTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useBaseballCountries(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/countries', params, opts);\n}\n\nexport function useBaseballSeasons(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/seasons', params, opts);\n}\n\nexport function useBaseballLeagues(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/leagues', params, opts);\n}\n\nexport function useBaseballTeams(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/teams', params, opts);\n}\n\nexport function useBaseballTeamStatistics(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/statistics', params, opts);\n}\n\nexport function useBaseballGames(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/games', params, opts);\n}\n\nexport function useBaseballGamesH2H(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/games/h2h', params, opts);\n}\n\nexport function useBaseballStandings(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/standings', params, opts);\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import type { IndexerClient } from '../../network/IndexerClient';
|
|
3
|
+
import type { SportsApiResponse, SportsQueryParams } from '../../types/sports';
|
|
4
|
+
type Opts<T> = Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>;
|
|
5
|
+
type Result<T> = UseQueryResult<SportsApiResponse<T>>;
|
|
6
|
+
export declare function useBasketballTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
|
|
7
|
+
export declare function useBasketballCountries(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
8
|
+
export declare function useBasketballSeasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
9
|
+
export declare function useBasketballLeagues(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
10
|
+
export declare function useBasketballTeams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
11
|
+
export declare function useBasketballTeamStatistics(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
12
|
+
export declare function useBasketballGames(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
13
|
+
export declare function useBasketballGamesH2H(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
14
|
+
export declare function useBasketballStandings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=basketball.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basketball.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/basketball.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AACnF,KAAK,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAItD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useSportsProxy } from './useSportsProxy';
|
|
2
|
+
const S = 'basketball';
|
|
3
|
+
export function useBasketballTimezone(client, opts) {
|
|
4
|
+
return useSportsProxy(client, S, '/timezone', undefined, opts);
|
|
5
|
+
}
|
|
6
|
+
export function useBasketballCountries(client, params, opts) {
|
|
7
|
+
return useSportsProxy(client, S, '/countries', params, opts);
|
|
8
|
+
}
|
|
9
|
+
export function useBasketballSeasons(client, params, opts) {
|
|
10
|
+
return useSportsProxy(client, S, '/seasons', params, opts);
|
|
11
|
+
}
|
|
12
|
+
export function useBasketballLeagues(client, params, opts) {
|
|
13
|
+
return useSportsProxy(client, S, '/leagues', params, opts);
|
|
14
|
+
}
|
|
15
|
+
export function useBasketballTeams(client, params, opts) {
|
|
16
|
+
return useSportsProxy(client, S, '/teams', params, opts);
|
|
17
|
+
}
|
|
18
|
+
export function useBasketballTeamStatistics(client, params, opts) {
|
|
19
|
+
return useSportsProxy(client, S, '/statistics', params, opts);
|
|
20
|
+
}
|
|
21
|
+
export function useBasketballGames(client, params, opts) {
|
|
22
|
+
return useSportsProxy(client, S, '/games', params, opts);
|
|
23
|
+
}
|
|
24
|
+
export function useBasketballGamesH2H(client, params, opts) {
|
|
25
|
+
return useSportsProxy(client, S, '/games/h2h', params, opts);
|
|
26
|
+
}
|
|
27
|
+
export function useBasketballStandings(client, params, opts) {
|
|
28
|
+
return useSportsProxy(client, S, '/standings', params, opts);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=basketball.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basketball.js","sourceRoot":"","sources":["../../../src/hooks/sports/basketball.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,YAAY,CAAC;AAEvB,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["/**\n * Basketball proxy hooks - api-sports.io v1\n */\n\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { IndexerClient } from '../../network/IndexerClient';\nimport type { SportsApiResponse, SportsQueryParams } from '../../types/sports';\nimport { useSportsProxy } from './useSportsProxy';\n\ntype Opts<T> = Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>;\ntype Result<T> = UseQueryResult<SportsApiResponse<T>>;\n\nconst S = 'basketball';\n\nexport function useBasketballTimezone(\n client: IndexerClient,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useBasketballCountries(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/countries', params, opts);\n}\n\nexport function useBasketballSeasons(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/seasons', params, opts);\n}\n\nexport function useBasketballLeagues(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/leagues', params, opts);\n}\n\nexport function useBasketballTeams(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/teams', params, opts);\n}\n\nexport function useBasketballTeamStatistics(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/statistics', params, opts);\n}\n\nexport function useBasketballGames(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/games', params, opts);\n}\n\nexport function useBasketballGamesH2H(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/games/h2h', params, opts);\n}\n\nexport function useBasketballStandings(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/standings', params, opts);\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import type { IndexerClient } from '../../network/IndexerClient';
|
|
3
|
+
import type { SportsApiResponse, SportsQueryParams } from '../../types/sports';
|
|
4
|
+
type Opts<T> = Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>;
|
|
5
|
+
type Result<T> = UseQueryResult<SportsApiResponse<T>>;
|
|
6
|
+
export declare function useF1Timezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
|
|
7
|
+
export declare function useF1Seasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
8
|
+
export declare function useF1Circuits(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
9
|
+
export declare function useF1Competitions(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
10
|
+
export declare function useF1Teams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
11
|
+
export declare function useF1Drivers(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
12
|
+
export declare function useF1Races(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
13
|
+
export declare function useF1DriverRankings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
14
|
+
export declare function useF1TeamRankings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
15
|
+
export declare function useF1PitStops(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=f1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"f1.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/f1.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,CAAC;AACnF,KAAK,MAAM,CAAC,CAAC,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAItD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAE1F;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useSportsProxy } from './useSportsProxy';
|
|
2
|
+
const S = 'formula1';
|
|
3
|
+
export function useF1Timezone(client, opts) {
|
|
4
|
+
return useSportsProxy(client, S, '/timezone', undefined, opts);
|
|
5
|
+
}
|
|
6
|
+
export function useF1Seasons(client, params, opts) {
|
|
7
|
+
return useSportsProxy(client, S, '/seasons', params, opts);
|
|
8
|
+
}
|
|
9
|
+
export function useF1Circuits(client, params, opts) {
|
|
10
|
+
return useSportsProxy(client, S, '/circuits', params, opts);
|
|
11
|
+
}
|
|
12
|
+
export function useF1Competitions(client, params, opts) {
|
|
13
|
+
return useSportsProxy(client, S, '/competitions', params, opts);
|
|
14
|
+
}
|
|
15
|
+
export function useF1Teams(client, params, opts) {
|
|
16
|
+
return useSportsProxy(client, S, '/teams', params, opts);
|
|
17
|
+
}
|
|
18
|
+
export function useF1Drivers(client, params, opts) {
|
|
19
|
+
return useSportsProxy(client, S, '/drivers', params, opts);
|
|
20
|
+
}
|
|
21
|
+
export function useF1Races(client, params, opts) {
|
|
22
|
+
return useSportsProxy(client, S, '/races', params, opts);
|
|
23
|
+
}
|
|
24
|
+
export function useF1DriverRankings(client, params, opts) {
|
|
25
|
+
return useSportsProxy(client, S, '/rankings/drivers', params, opts);
|
|
26
|
+
}
|
|
27
|
+
export function useF1TeamRankings(client, params, opts) {
|
|
28
|
+
return useSportsProxy(client, S, '/rankings/teams', params, opts);
|
|
29
|
+
}
|
|
30
|
+
export function useF1PitStops(client, params, opts) {
|
|
31
|
+
return useSportsProxy(client, S, '/pitstops', params, opts);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=f1.js.map
|