@sudobility/heavymath_indexer_client 0.0.19 → 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.
Files changed (64) hide show
  1. package/dist/hooks/index.d.ts +1 -0
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/index.js +1 -0
  4. package/dist/hooks/index.js.map +1 -1
  5. package/dist/hooks/sports/baseball.d.ts +16 -0
  6. package/dist/hooks/sports/baseball.d.ts.map +1 -0
  7. package/dist/hooks/sports/baseball.js +30 -0
  8. package/dist/hooks/sports/baseball.js.map +1 -0
  9. package/dist/hooks/sports/basketball.d.ts +16 -0
  10. package/dist/hooks/sports/basketball.d.ts.map +1 -0
  11. package/dist/hooks/sports/basketball.js +30 -0
  12. package/dist/hooks/sports/basketball.js.map +1 -0
  13. package/dist/hooks/sports/f1.d.ts +17 -0
  14. package/dist/hooks/sports/f1.d.ts.map +1 -0
  15. package/dist/hooks/sports/f1.js +33 -0
  16. package/dist/hooks/sports/f1.js.map +1 -0
  17. package/dist/hooks/sports/football.d.ts +32 -0
  18. package/dist/hooks/sports/football.d.ts.map +1 -0
  19. package/dist/hooks/sports/football.js +78 -0
  20. package/dist/hooks/sports/football.js.map +1 -0
  21. package/dist/hooks/sports/handball.d.ts +16 -0
  22. package/dist/hooks/sports/handball.d.ts.map +1 -0
  23. package/dist/hooks/sports/handball.js +30 -0
  24. package/dist/hooks/sports/handball.js.map +1 -0
  25. package/dist/hooks/sports/hockey.d.ts +16 -0
  26. package/dist/hooks/sports/hockey.d.ts.map +1 -0
  27. package/dist/hooks/sports/hockey.js +30 -0
  28. package/dist/hooks/sports/hockey.js.map +1 -0
  29. package/dist/hooks/sports/index.d.ts +12 -0
  30. package/dist/hooks/sports/index.d.ts.map +1 -0
  31. package/dist/hooks/sports/index.js +12 -0
  32. package/dist/hooks/sports/index.js.map +1 -0
  33. package/dist/hooks/sports/mma.d.ts +13 -0
  34. package/dist/hooks/sports/mma.d.ts.map +1 -0
  35. package/dist/hooks/sports/mma.js +21 -0
  36. package/dist/hooks/sports/mma.js.map +1 -0
  37. package/dist/hooks/sports/nfl.d.ts +16 -0
  38. package/dist/hooks/sports/nfl.d.ts.map +1 -0
  39. package/dist/hooks/sports/nfl.js +30 -0
  40. package/dist/hooks/sports/nfl.js.map +1 -0
  41. package/dist/hooks/sports/rugby.d.ts +16 -0
  42. package/dist/hooks/sports/rugby.d.ts.map +1 -0
  43. package/dist/hooks/sports/rugby.js +30 -0
  44. package/dist/hooks/sports/rugby.js.map +1 -0
  45. package/dist/hooks/sports/useSportsProxy.d.ts +5 -0
  46. package/dist/hooks/sports/useSportsProxy.d.ts.map +1 -0
  47. package/dist/hooks/sports/useSportsProxy.js +11 -0
  48. package/dist/hooks/sports/useSportsProxy.js.map +1 -0
  49. package/dist/hooks/sports/volleyball.d.ts +15 -0
  50. package/dist/hooks/sports/volleyball.d.ts.map +1 -0
  51. package/dist/hooks/sports/volleyball.js +27 -0
  52. package/dist/hooks/sports/volleyball.js.map +1 -0
  53. package/dist/network/IndexerClient.d.ts +2 -0
  54. package/dist/network/IndexerClient.d.ts.map +1 -1
  55. package/dist/network/IndexerClient.js +19 -2
  56. package/dist/network/IndexerClient.js.map +1 -1
  57. package/dist/types/sports.d.ts +14 -0
  58. package/dist/types/sports.d.ts.map +1 -0
  59. package/dist/types/sports.js +2 -0
  60. package/dist/types/sports.js.map +1 -0
  61. package/dist/types.d.ts +1 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import { useSportsProxy } from './useSportsProxy';
2
+ const S = 'mma';
3
+ export function useMmaTimezone(client, opts) {
4
+ return useSportsProxy(client, S, '/timezone', undefined, opts);
5
+ }
6
+ export function useMmaCountries(client, params, opts) {
7
+ return useSportsProxy(client, S, '/countries', params, opts);
8
+ }
9
+ export function useMmaSeasons(client, params, opts) {
10
+ return useSportsProxy(client, S, '/seasons', params, opts);
11
+ }
12
+ export function useMmaCategories(client, params, opts) {
13
+ return useSportsProxy(client, S, '/categories', params, opts);
14
+ }
15
+ export function useMmaFighters(client, params, opts) {
16
+ return useSportsProxy(client, S, '/fighters', params, opts);
17
+ }
18
+ export function useMmaFights(client, params, opts) {
19
+ return useSportsProxy(client, S, '/fights', params, opts);
20
+ }
21
+ //# sourceMappingURL=mma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mma.js","sourceRoot":"","sources":["../../../src/hooks/sports/mma.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,KAAK,CAAC;AAEhB,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,IAAoB;IACxE,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,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,aAAa,CAC3B,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,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,MAAqB,EACrB,MAA0B,EAC1B,IAAoB;IAEpB,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,CAAC","sourcesContent":["/**\n * MMA 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 = 'mma';\n\nexport function useMmaTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useMmaCountries(\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 useMmaSeasons(\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 useMmaCategories(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/categories', params, opts);\n}\n\nexport function useMmaFighters(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/fighters', params, opts);\n}\n\nexport function useMmaFights(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/fights', 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 useNflTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
7
+ export declare function useNflCountries(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
8
+ export declare function useNflSeasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
9
+ export declare function useNflLeagues(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
10
+ export declare function useNflTeams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
11
+ export declare function useNflTeamStatistics(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
12
+ export declare function useNflGames(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
13
+ export declare function useNflGamesH2H(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
14
+ export declare function useNflStandings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
15
+ export {};
16
+ //# sourceMappingURL=nfl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nfl.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/nfl.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,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAE3F;AAED,wBAAgB,eAAe,CAC7B,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,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,WAAW,CACzB,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,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,eAAe,CAC7B,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 = 'nfl';
3
+ export function useNflTimezone(client, opts) {
4
+ return useSportsProxy(client, S, '/timezone', undefined, opts);
5
+ }
6
+ export function useNflCountries(client, params, opts) {
7
+ return useSportsProxy(client, S, '/countries', params, opts);
8
+ }
9
+ export function useNflSeasons(client, params, opts) {
10
+ return useSportsProxy(client, S, '/seasons', params, opts);
11
+ }
12
+ export function useNflLeagues(client, params, opts) {
13
+ return useSportsProxy(client, S, '/leagues', params, opts);
14
+ }
15
+ export function useNflTeams(client, params, opts) {
16
+ return useSportsProxy(client, S, '/teams', params, opts);
17
+ }
18
+ export function useNflTeamStatistics(client, params, opts) {
19
+ return useSportsProxy(client, S, '/statistics', params, opts);
20
+ }
21
+ export function useNflGames(client, params, opts) {
22
+ return useSportsProxy(client, S, '/games', params, opts);
23
+ }
24
+ export function useNflGamesH2H(client, params, opts) {
25
+ return useSportsProxy(client, S, '/games/h2h', params, opts);
26
+ }
27
+ export function useNflStandings(client, params, opts) {
28
+ return useSportsProxy(client, S, '/standings', params, opts);
29
+ }
30
+ //# sourceMappingURL=nfl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nfl.js","sourceRoot":"","sources":["../../../src/hooks/sports/nfl.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,KAAK,CAAC;AAEhB,MAAM,UAAU,cAAc,CAAC,MAAqB,EAAE,IAAoB;IACxE,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,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,aAAa,CAC3B,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,aAAa,CAC3B,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,WAAW,CACzB,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,oBAAoB,CAClC,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,WAAW,CACzB,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,cAAc,CAC5B,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,eAAe,CAC7B,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 * NFL (American Football) 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 = 'nfl';\n\nexport function useNflTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useNflCountries(\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 useNflSeasons(\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 useNflLeagues(\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 useNflTeams(\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 useNflTeamStatistics(\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 useNflGames(\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 useNflGamesH2H(\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 useNflStandings(\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 useRugbyTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
7
+ export declare function useRugbyCountries(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
8
+ export declare function useRugbySeasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
9
+ export declare function useRugbyLeagues(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
10
+ export declare function useRugbyTeams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
11
+ export declare function useRugbyTeamStatistics(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
12
+ export declare function useRugbyGames(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
13
+ export declare function useRugbyGamesH2H(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
14
+ export declare function useRugbyStandings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
15
+ export {};
16
+ //# sourceMappingURL=rugby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rugby.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/rugby.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,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAE7F;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,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GACnB,MAAM,CAAC,OAAO,CAAC,CAEjB;AAED,wBAAgB,eAAe,CAC7B,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,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,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,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,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"}
@@ -0,0 +1,30 @@
1
+ import { useSportsProxy } from './useSportsProxy';
2
+ const S = 'rugby';
3
+ export function useRugbyTimezone(client, opts) {
4
+ return useSportsProxy(client, S, '/timezone', undefined, opts);
5
+ }
6
+ export function useRugbyCountries(client, params, opts) {
7
+ return useSportsProxy(client, S, '/countries', params, opts);
8
+ }
9
+ export function useRugbySeasons(client, params, opts) {
10
+ return useSportsProxy(client, S, '/seasons', params, opts);
11
+ }
12
+ export function useRugbyLeagues(client, params, opts) {
13
+ return useSportsProxy(client, S, '/leagues', params, opts);
14
+ }
15
+ export function useRugbyTeams(client, params, opts) {
16
+ return useSportsProxy(client, S, '/teams', params, opts);
17
+ }
18
+ export function useRugbyTeamStatistics(client, params, opts) {
19
+ return useSportsProxy(client, S, '/statistics', params, opts);
20
+ }
21
+ export function useRugbyGames(client, params, opts) {
22
+ return useSportsProxy(client, S, '/games', params, opts);
23
+ }
24
+ export function useRugbyGamesH2H(client, params, opts) {
25
+ return useSportsProxy(client, S, '/games/h2h', params, opts);
26
+ }
27
+ export function useRugbyStandings(client, params, opts) {
28
+ return useSportsProxy(client, S, '/standings', params, opts);
29
+ }
30
+ //# sourceMappingURL=rugby.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rugby.js","sourceRoot":"","sources":["../../../src/hooks/sports/rugby.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,OAAO,CAAC;AAElB,MAAM,UAAU,gBAAgB,CAAC,MAAqB,EAAE,IAAoB;IAC1E,OAAO,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,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,eAAe,CAC7B,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,eAAe,CAC7B,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,aAAa,CAC3B,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,sBAAsB,CACpC,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,aAAa,CAC3B,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,gBAAgB,CAC9B,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,iBAAiB,CAC/B,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 * Rugby 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 = 'rugby';\n\nexport function useRugbyTimezone(client: IndexerClient, opts?: Opts<unknown>): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useRugbyCountries(\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 useRugbySeasons(\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 useRugbyLeagues(\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 useRugbyTeams(\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 useRugbyTeamStatistics(\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 useRugbyGames(\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 useRugbyGamesH2H(\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 useRugbyStandings(\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,5 @@
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
+ export declare function useSportsProxy<T = unknown>(client: IndexerClient, sport: string, endpoint: string, params?: SportsQueryParams, options?: Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>): UseQueryResult<SportsApiResponse<T>>;
5
+ //# sourceMappingURL=useSportsProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSportsProxy.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/useSportsProxy.ts"],"names":[],"mappings":"AAMA,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;AAY/E,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EACxC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,GAC5E,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAQtC"}
@@ -0,0 +1,11 @@
1
+ import { useQuery } from '@tanstack/react-query';
2
+ export function useSportsProxy(client, sport, endpoint, params, options) {
3
+ return useQuery({
4
+ queryKey: ['sports', sport, endpoint, params ?? {}],
5
+ queryFn: () => client.getSportsData(sport, endpoint, params),
6
+ staleTime: 30000,
7
+ retry: false,
8
+ ...options,
9
+ });
10
+ }
11
+ //# sourceMappingURL=useSportsProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSportsProxy.js","sourceRoot":"","sources":["../../../src/hooks/sports/useSportsProxy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAejD,MAAM,UAAU,cAAc,CAC5B,MAAqB,EACrB,KAAa,EACb,QAAgB,EAChB,MAA0B,EAC1B,OAA6E;IAE7E,OAAO,QAAQ,CAAC;QACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;QACnD,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;QAC/D,SAAS,EAAE,KAAM;QACjB,KAAK,EAAE,KAAK;QACZ,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @fileoverview Generic Sports API Proxy Hook\n * @description Base hook that all sport-specific hooks wrap.\n */\n\nimport { useQuery } from '@tanstack/react-query';\nimport type { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';\nimport type { IndexerClient } from '../../network/IndexerClient';\nimport type { SportsApiResponse, SportsQueryParams } from '../../types/sports';\n\n/**\n * Generic hook for fetching sports data through the indexer proxy.\n * Server handles caching; client uses a short staleTime for navigation.\n *\n * @param client - IndexerClient instance\n * @param sport - Sport identifier\n * @param endpoint - API endpoint path (e.g., '/countries', '/fixtures')\n * @param params - Optional query parameters\n * @param options - React Query options (enabled, staleTime overrides, etc.)\n */\nexport function useSportsProxy<T = unknown>(\n client: IndexerClient,\n sport: string,\n endpoint: string,\n params?: SportsQueryParams,\n options?: Omit<UseQueryOptions<SportsApiResponse<T>>, 'queryKey' | 'queryFn'>\n): UseQueryResult<SportsApiResponse<T>> {\n return useQuery({\n queryKey: ['sports', sport, endpoint, params ?? {}],\n queryFn: () => client.getSportsData<T>(sport, endpoint, params),\n staleTime: 30_000, // 30s client-side; server handles real caching\n retry: false,\n ...options,\n });\n}\n"]}
@@ -0,0 +1,15 @@
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 useVolleyballTimezones(client: IndexerClient, opts?: Opts<unknown>): Result<unknown>;
7
+ export declare function useVolleyballCountries(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
8
+ export declare function useVolleyballSeasons(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
9
+ export declare function useVolleyballLeagues(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
10
+ export declare function useVolleyballTeams(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
11
+ export declare function useVolleyballStandings(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
12
+ export declare function useVolleyballGames(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
13
+ export declare function useVolleyballH2H(client: IndexerClient, params?: SportsQueryParams, opts?: Opts<unknown>): Result<unknown>;
14
+ export {};
15
+ //# sourceMappingURL=volleyball.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volleyball.d.ts","sourceRoot":"","sources":["../../../src/hooks/sports/volleyball.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,sBAAsB,CACpC,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,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,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"}
@@ -0,0 +1,27 @@
1
+ import { useSportsProxy } from './useSportsProxy';
2
+ const S = 'volleyball';
3
+ export function useVolleyballTimezones(client, opts) {
4
+ return useSportsProxy(client, S, '/timezone', undefined, opts);
5
+ }
6
+ export function useVolleyballCountries(client, params, opts) {
7
+ return useSportsProxy(client, S, '/countries', params, opts);
8
+ }
9
+ export function useVolleyballSeasons(client, params, opts) {
10
+ return useSportsProxy(client, S, '/seasons', params, opts);
11
+ }
12
+ export function useVolleyballLeagues(client, params, opts) {
13
+ return useSportsProxy(client, S, '/leagues', params, opts);
14
+ }
15
+ export function useVolleyballTeams(client, params, opts) {
16
+ return useSportsProxy(client, S, '/teams', params, opts);
17
+ }
18
+ export function useVolleyballStandings(client, params, opts) {
19
+ return useSportsProxy(client, S, '/standings', params, opts);
20
+ }
21
+ export function useVolleyballGames(client, params, opts) {
22
+ return useSportsProxy(client, S, '/games', params, opts);
23
+ }
24
+ export function useVolleyballH2H(client, params, opts) {
25
+ return useSportsProxy(client, S, '/games/h2h', params, opts);
26
+ }
27
+ //# sourceMappingURL=volleyball.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volleyball.js","sourceRoot":"","sources":["../../../src/hooks/sports/volleyball.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,MAAM,CAAC,GAAG,YAAY,CAAC;AAEvB,MAAM,UAAU,sBAAsB,CACpC,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,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,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,gBAAgB,CAC9B,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 * Volleyball 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 = 'volleyball';\n\nexport function useVolleyballTimezones(\n client: IndexerClient,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/timezone', undefined, opts);\n}\n\nexport function useVolleyballCountries(\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 useVolleyballSeasons(\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 useVolleyballLeagues(\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 useVolleyballTeams(\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 useVolleyballStandings(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/standings', params, opts);\n}\n\nexport function useVolleyballGames(\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 useVolleyballH2H(\n client: IndexerClient,\n params?: SportsQueryParams,\n opts?: Opts<unknown>\n): Result<unknown> {\n return useSportsProxy(client, S, '/games/h2h', params, opts);\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { NetworkClient } from '@sudobility/types';
2
2
  import type { ApiResponse, PaginatedResponse, MarketData, PredictionData, DealerNftData, DealerPermissionData, MarketStateHistoryData, FeeWithdrawalData, OracleRequestData, MarketStatsData, HealthData, MarketFilters, PredictionFilters, DealerFilters, WithdrawalFilters, OracleFilters, WalletFavoriteData, WalletFavoritesFilters, CreateFavoriteRequest } from '../types';
3
+ import type { SportsApiResponse, SportsQueryParams } from '../types/sports';
3
4
  export declare class IndexerClient {
4
5
  private readonly baseUrl;
5
6
  private readonly networkClient;
@@ -22,5 +23,6 @@ export declare class IndexerClient {
22
23
  removeFavorite(walletAddress: string, favoriteId: number): Promise<ApiResponse<void>>;
23
24
  getMarketStats(): Promise<ApiResponse<MarketStatsData>>;
24
25
  getHealth(): Promise<ApiResponse<HealthData>>;
26
+ getSportsData<T = unknown>(sport: string, endpoint: string, params?: SportsQueryParams): Promise<SportsApiResponse<T>>;
25
27
  }
26
28
  //# sourceMappingURL=IndexerClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAwClB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAOlC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;IAiBvD,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IA+B3E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAoBvD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;IAoB9E,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAwBlF,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;IA+BvF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAwB/D,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;IA6B9E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAoB1D,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAoBpF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IAwBtE,cAAc,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAmC1F,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IA8BzF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAyBrE,YAAY,CAChB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAgC3C,WAAW,CACf,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,qBAAqB,GAC9B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAsBrC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IA0BrF,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAmBvD,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;CAWpD"}
1
+ {"version":3,"file":"IndexerClient.d.ts","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export class IndexerClient {
27
27
  if (filters?.offset)
28
28
  params.append('offset', filters.offset.toString());
29
29
  const queryString = params.toString();
30
- const path = `/api/markets${queryString ? `?${queryString}` : ''}`;
30
+ const path = `/api/markets/list${queryString ? `?${queryString}` : ''}`;
31
31
  const response = await this.networkClient.get(buildUrl(this.baseUrl, path));
32
32
  if (!response.ok || !response.data) {
33
33
  throw handleApiError(response, 'get markets');
@@ -91,7 +91,7 @@ export class IndexerClient {
91
91
  if (filters?.offset)
92
92
  params.append('offset', filters.offset.toString());
93
93
  const queryString = params.toString();
94
- const path = `/api/dealers${queryString ? `?${queryString}` : ''}`;
94
+ const path = `/api/dealers/list${queryString ? `?${queryString}` : ''}`;
95
95
  const response = await this.networkClient.get(buildUrl(this.baseUrl, path));
96
96
  if (!response.ok || !response.data) {
97
97
  throw handleApiError(response, 'get dealers');
@@ -212,5 +212,22 @@ export class IndexerClient {
212
212
  }
213
213
  return response.data;
214
214
  }
215
+ async getSportsData(sport, endpoint, params) {
216
+ const searchParams = new URLSearchParams();
217
+ if (params) {
218
+ for (const [key, value] of Object.entries(params)) {
219
+ if (value !== undefined && value !== null) {
220
+ searchParams.append(key, String(value));
221
+ }
222
+ }
223
+ }
224
+ const queryString = searchParams.toString();
225
+ const path = `/api/sports/${encodeURIComponent(sport)}${endpoint}${queryString ? `?${queryString}` : ''}`;
226
+ const response = await this.networkClient.get(buildUrl(this.baseUrl, path));
227
+ if (!response.ok || !response.data) {
228
+ throw handleApiError(response, `get sports data (${sport}${endpoint})`);
229
+ }
230
+ return response.data;
231
+ }
215
232
  }
216
233
  //# sourceMappingURL=IndexerClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Indexer API Client\n * @description Low-level HTTP client for all Heavymath Indexer REST endpoints.\n * Each public method maps 1:1 to a REST API endpoint. Uses an injected\n * NetworkClient for transport, making it environment-agnostic (browser, Node, React Native).\n */\n\nimport type { NetworkClient, NetworkResponse } from '@sudobility/types';\nimport type {\n ApiResponse,\n PaginatedResponse,\n MarketData,\n PredictionData,\n DealerNftData,\n DealerPermissionData,\n MarketStateHistoryData,\n FeeWithdrawalData,\n OracleRequestData,\n MarketStatsData,\n HealthData,\n MarketFilters,\n PredictionFilters,\n DealerFilters,\n WithdrawalFilters,\n OracleFilters,\n WalletFavoriteData,\n WalletFavoritesFilters,\n CreateFavoriteRequest,\n} from '../types';\n\n/**\n * Build a full URL by joining a base URL and path.\n *\n * @param baseUrl - The base URL (trailing slash is stripped)\n * @param path - The path to append (leading slash is ensured)\n * @returns The combined URL string\n */\nfunction buildUrl(baseUrl: string, path: string): string {\n const base = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n const fullPath = path.startsWith('/') ? path : `/${path}`;\n return `${base}${fullPath}`;\n}\n\n/**\n * Create a standardized Error from an API response failure.\n * Includes the HTTP status code, endpoint URL, and error details for easier debugging.\n *\n * @param response - The failed network response\n * @param operation - A description of the operation that failed (used in error message)\n * @param url - Optional request URL to include in the error message for debugging\n * @returns An Error with a formatted message including the HTTP status code\n */\nfunction handleApiError(\n response: NetworkResponse<unknown>,\n operation: string,\n url?: string\n): Error {\n const data = response.data as { error?: string } | undefined;\n const errorMessage = data?.error || response.statusText || `Failed to ${operation}`;\n const urlSuffix = url ? ` [${url}]` : '';\n return new Error(`API Error (${response.status}): ${errorMessage}${urlSuffix}`);\n}\n\n/**\n * Indexer API client for Heavymath Prediction Market.\n * Provides type-safe methods for all REST endpoints exposed by the heavymath_indexer.\n * Requires a `NetworkClient` instance (from `@sudobility/di`) for HTTP transport.\n */\nexport class IndexerClient {\n private readonly baseUrl: string;\n private readonly networkClient: NetworkClient;\n\n /**\n * Create an IndexerClient instance\n * @param endpointUrl - The base URL for the indexer API\n * @param networkClient - A NetworkClient instance from @sudobility/di\n */\n constructor(endpointUrl: string, networkClient: NetworkClient) {\n this.baseUrl = endpointUrl;\n this.networkClient = networkClient;\n }\n\n // =============================================================================\n // MARKET ENDPOINTS\n // =============================================================================\n\n /**\n * Get all markets with optional filtering.\n * GET /api/markets\n *\n * @param filters - Optional query parameters (status, dealer, category, limit, offset)\n * @returns Paginated list of markets\n * @throws Error if the API request fails\n */\n async getMarkets(filters?: MarketFilters): Promise<PaginatedResponse<MarketData>> {\n const params = new URLSearchParams();\n\n if (filters?.status) params.append('status', filters.status);\n if (filters?.dealer) params.append('dealer', filters.dealer);\n if (filters?.category) params.append('category', filters.category);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/markets${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<MarketData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get markets');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific market by ID.\n * GET /api/markets/:id\n *\n * @param id - The chain-prefixed market ID (e.g., \"1-market-123\")\n * @returns The market data wrapped in an API response\n * @throws Error if the market is not found or the request fails\n */\n async getMarket(id: string): Promise<ApiResponse<MarketData>> {\n const response = await this.networkClient.get<ApiResponse<MarketData>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market');\n }\n\n return response.data;\n }\n\n /**\n * Get all predictions for a specific market.\n * GET /api/markets/:id/predictions\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of predictions for the market\n * @throws Error if the request fails\n */\n async getMarketPredictions(marketId: string): Promise<ApiResponse<PredictionData[]>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/predictions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get state transition history for a market.\n * GET /api/markets/:id/history\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of state history entries for the market\n * @throws Error if the request fails\n */\n async getMarketHistory(marketId: string): Promise<ApiResponse<MarketStateHistoryData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketStateHistoryData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/history`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market history');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // PREDICTION ENDPOINTS\n // =============================================================================\n\n /**\n * Get predictions with optional filtering.\n * GET /api/predictions\n *\n * @param filters - Optional query parameters (user, market, claimed, limit, offset)\n * @returns Paginated list of predictions\n * @throws Error if the request fails\n */\n async getPredictions(filters?: PredictionFilters): Promise<PaginatedResponse<PredictionData>> {\n const params = new URLSearchParams();\n\n if (filters?.user) params.append('user', filters.user);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.claimed !== undefined) params.append('claimed', filters.claimed.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/predictions${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<PredictionData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific prediction by ID.\n * GET /api/predictions/:id\n *\n * @param id - The chain-prefixed prediction ID (e.g., \"1-market-123-0xuser...\")\n * @returns The prediction data wrapped in an API response\n * @throws Error if the prediction is not found or the request fails\n */\n async getPrediction(id: string): Promise<ApiResponse<PredictionData>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData>>(\n buildUrl(this.baseUrl, `/api/predictions/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get prediction');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // DEALER NFT ENDPOINTS\n // =============================================================================\n\n /**\n * Get all dealer NFTs with optional filtering.\n * GET /api/dealers\n *\n * @param filters - Optional query parameters (owner, limit, offset)\n * @returns Paginated list of dealer NFTs\n * @throws Error if the request fails\n */\n async getDealers(filters?: DealerFilters): Promise<PaginatedResponse<DealerNftData>> {\n const params = new URLSearchParams();\n\n if (filters?.owner) params.append('owner', filters.owner);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/dealers${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<DealerNftData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealers');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific dealer NFT by ID.\n * GET /api/dealers/:id\n *\n * @param id - The chain-prefixed dealer ID (e.g., \"1-1\")\n * @returns The dealer NFT data wrapped in an API response\n * @throws Error if the dealer is not found or the request fails\n */\n async getDealer(id: string): Promise<ApiResponse<DealerNftData>> {\n const response = await this.networkClient.get<ApiResponse<DealerNftData>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer');\n }\n\n return response.data;\n }\n\n /**\n * Get permissions for a specific dealer NFT.\n * GET /api/dealers/:id/permissions\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of permission entries for the dealer\n * @throws Error if the request fails\n */\n async getDealerPermissions(dealerId: string): Promise<ApiResponse<DealerPermissionData[]>> {\n const response = await this.networkClient.get<ApiResponse<DealerPermissionData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/permissions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer permissions');\n }\n\n return response.data;\n }\n\n /**\n * Get all markets created by a specific dealer NFT.\n * GET /api/dealers/:id/markets\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of markets created by this dealer\n * @throws Error if the request fails\n */\n async getDealerMarkets(dealerId: string): Promise<ApiResponse<MarketData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/markets`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer markets');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // FEE WITHDRAWAL ENDPOINTS\n // =============================================================================\n\n /**\n * Get fee withdrawals with optional filtering.\n * GET /api/withdrawals\n *\n * @param filters - Optional query parameters (withdrawer, type, market, limit, offset)\n * @returns Paginated list of fee withdrawals\n * @throws Error if the request fails\n */\n async getWithdrawals(filters?: WithdrawalFilters): Promise<PaginatedResponse<FeeWithdrawalData>> {\n const params = new URLSearchParams();\n\n if (filters?.withdrawer) params.append('withdrawer', filters.withdrawer);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/withdrawals${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<FeeWithdrawalData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get withdrawals');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ORACLE REQUEST ENDPOINTS\n // =============================================================================\n\n /**\n * Get oracle requests with optional filtering.\n * GET /api/oracle/requests\n *\n * @param filters - Optional query parameters (market, timedOut, limit, offset)\n * @returns Paginated list of oracle requests\n * @throws Error if the request fails\n */\n async getOracleRequests(filters?: OracleFilters): Promise<PaginatedResponse<OracleRequestData>> {\n const params = new URLSearchParams();\n\n if (filters?.market) params.append('market', filters.market);\n if (filters?.timedOut !== undefined) params.append('timedOut', filters.timedOut.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/oracle/requests${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle requests');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific oracle request by ID.\n * GET /api/oracle/requests/:id\n *\n * @param id - The oracle request ID\n * @returns The oracle request data wrapped in an API response\n * @throws Error if the oracle request is not found or the request fails\n */\n async getOracleRequest(id: string): Promise<ApiResponse<OracleRequestData>> {\n const response = await this.networkClient.get<ApiResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, `/api/oracle/requests/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle request');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // WALLET FAVORITES ENDPOINTS\n // =============================================================================\n\n /**\n * Get favorites for a wallet address.\n * GET /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to get favorites for\n * @param filters - Optional query parameters (category, subcategory, type, limit, offset)\n * @returns Paginated list of wallet favorites\n * @throws Error if the request fails\n */\n async getFavorites(\n walletAddress: string,\n filters?: WalletFavoritesFilters\n ): Promise<PaginatedResponse<WalletFavoriteData>> {\n const params = new URLSearchParams();\n\n if (filters?.category) params.append('category', filters.category);\n if (filters?.subcategory) params.append('subcategory', filters.subcategory);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/wallet/${encodeURIComponent(walletAddress)}/favorites${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get favorites');\n }\n\n return response.data;\n }\n\n /**\n * Add a favorite for a wallet address.\n * POST /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to add a favorite for\n * @param favorite - The favorite item to add (category, subcategory, type, id)\n * @returns The newly created favorite data\n * @throws Error if the request fails\n */\n async addFavorite(\n walletAddress: string,\n favorite: CreateFavoriteRequest\n ): Promise<ApiResponse<WalletFavoriteData>> {\n const response = await this.networkClient.post<ApiResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, `/api/wallet/${encodeURIComponent(walletAddress)}/favorites`),\n favorite\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'add favorite');\n }\n\n return response.data;\n }\n\n /**\n * Remove a favorite by ID.\n * DELETE /api/wallet/:address/favorites/:id\n *\n * @param walletAddress - The wallet address that owns the favorite\n * @param favoriteId - The numeric ID of the favorite to remove\n * @returns An API response confirming deletion\n * @throws Error if the favorite is not found or the request fails\n */\n async removeFavorite(walletAddress: string, favoriteId: number): Promise<ApiResponse<void>> {\n const response = await this.networkClient.delete<ApiResponse<void>>(\n buildUrl(\n this.baseUrl,\n `/api/wallet/${encodeURIComponent(walletAddress)}/favorites/${favoriteId}`\n )\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'remove favorite');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ANALYTICS ENDPOINTS\n // =============================================================================\n\n /**\n * Get market statistics.\n * GET /api/stats/markets\n *\n * @returns Aggregate market statistics (totals, breakdowns by status)\n * @throws Error if the request fails\n */\n async getMarketStats(): Promise<ApiResponse<MarketStatsData>> {\n const response = await this.networkClient.get<ApiResponse<MarketStatsData>>(\n buildUrl(this.baseUrl, '/api/stats/markets')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market stats');\n }\n\n return response.data;\n }\n\n /**\n * Get health status of the indexer.\n * GET /api/health\n *\n * @returns The indexer health status\n * @throws Error if the request fails\n */\n async getHealth(): Promise<ApiResponse<HealthData>> {\n const response = await this.networkClient.get<ApiResponse<HealthData>>(\n buildUrl(this.baseUrl, '/api/health')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get health');\n }\n\n return response.data;\n }\n}\n"]}
1
+ {"version":3,"file":"IndexerClient.js","sourceRoot":"","sources":["../../src/network/IndexerClient.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Indexer API Client\n * @description Low-level HTTP client for all Heavymath Indexer REST endpoints.\n * Each public method maps 1:1 to a REST API endpoint. Uses an injected\n * NetworkClient for transport, making it environment-agnostic (browser, Node, React Native).\n */\n\nimport type { NetworkClient, NetworkResponse } from '@sudobility/types';\nimport type {\n ApiResponse,\n PaginatedResponse,\n MarketData,\n PredictionData,\n DealerNftData,\n DealerPermissionData,\n MarketStateHistoryData,\n FeeWithdrawalData,\n OracleRequestData,\n MarketStatsData,\n HealthData,\n MarketFilters,\n PredictionFilters,\n DealerFilters,\n WithdrawalFilters,\n OracleFilters,\n WalletFavoriteData,\n WalletFavoritesFilters,\n CreateFavoriteRequest,\n} from '../types';\nimport type { SportsApiResponse, SportsQueryParams } from '../types/sports';\n\n/**\n * Build a full URL by joining a base URL and path.\n *\n * @param baseUrl - The base URL (trailing slash is stripped)\n * @param path - The path to append (leading slash is ensured)\n * @returns The combined URL string\n */\nfunction buildUrl(baseUrl: string, path: string): string {\n const base = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n const fullPath = path.startsWith('/') ? path : `/${path}`;\n return `${base}${fullPath}`;\n}\n\n/**\n * Create a standardized Error from an API response failure.\n * Includes the HTTP status code, endpoint URL, and error details for easier debugging.\n *\n * @param response - The failed network response\n * @param operation - A description of the operation that failed (used in error message)\n * @param url - Optional request URL to include in the error message for debugging\n * @returns An Error with a formatted message including the HTTP status code\n */\nfunction handleApiError(\n response: NetworkResponse<unknown>,\n operation: string,\n url?: string\n): Error {\n const data = response.data as { error?: string } | undefined;\n const errorMessage = data?.error || response.statusText || `Failed to ${operation}`;\n const urlSuffix = url ? ` [${url}]` : '';\n return new Error(`API Error (${response.status}): ${errorMessage}${urlSuffix}`);\n}\n\n/**\n * Indexer API client for Heavymath Prediction Market.\n * Provides type-safe methods for all REST endpoints exposed by the heavymath_indexer.\n * Requires a `NetworkClient` instance (from `@sudobility/di`) for HTTP transport.\n */\nexport class IndexerClient {\n private readonly baseUrl: string;\n private readonly networkClient: NetworkClient;\n\n /**\n * Create an IndexerClient instance\n * @param endpointUrl - The base URL for the indexer API\n * @param networkClient - A NetworkClient instance from @sudobility/di\n */\n constructor(endpointUrl: string, networkClient: NetworkClient) {\n this.baseUrl = endpointUrl;\n this.networkClient = networkClient;\n }\n\n // =============================================================================\n // MARKET ENDPOINTS\n // =============================================================================\n\n /**\n * Get all markets with optional filtering.\n * GET /api/markets\n *\n * @param filters - Optional query parameters (status, dealer, category, limit, offset)\n * @returns Paginated list of markets\n * @throws Error if the API request fails\n */\n async getMarkets(filters?: MarketFilters): Promise<PaginatedResponse<MarketData>> {\n const params = new URLSearchParams();\n\n if (filters?.status) params.append('status', filters.status);\n if (filters?.dealer) params.append('dealer', filters.dealer);\n if (filters?.category) params.append('category', filters.category);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/markets/list${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<MarketData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get markets');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific market by ID.\n * GET /api/markets/:id\n *\n * @param id - The chain-prefixed market ID (e.g., \"1-market-123\")\n * @returns The market data wrapped in an API response\n * @throws Error if the market is not found or the request fails\n */\n async getMarket(id: string): Promise<ApiResponse<MarketData>> {\n const response = await this.networkClient.get<ApiResponse<MarketData>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market');\n }\n\n return response.data;\n }\n\n /**\n * Get all predictions for a specific market.\n * GET /api/markets/:id/predictions\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of predictions for the market\n * @throws Error if the request fails\n */\n async getMarketPredictions(marketId: string): Promise<ApiResponse<PredictionData[]>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/predictions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get state transition history for a market.\n * GET /api/markets/:id/history\n *\n * @param marketId - The chain-prefixed market ID\n * @returns Array of state history entries for the market\n * @throws Error if the request fails\n */\n async getMarketHistory(marketId: string): Promise<ApiResponse<MarketStateHistoryData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketStateHistoryData[]>>(\n buildUrl(this.baseUrl, `/api/markets/${encodeURIComponent(marketId)}/history`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market history');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // PREDICTION ENDPOINTS\n // =============================================================================\n\n /**\n * Get predictions with optional filtering.\n * GET /api/predictions\n *\n * @param filters - Optional query parameters (user, market, claimed, limit, offset)\n * @returns Paginated list of predictions\n * @throws Error if the request fails\n */\n async getPredictions(filters?: PredictionFilters): Promise<PaginatedResponse<PredictionData>> {\n const params = new URLSearchParams();\n\n if (filters?.user) params.append('user', filters.user);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.claimed !== undefined) params.append('claimed', filters.claimed.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/predictions${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<PredictionData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get predictions');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific prediction by ID.\n * GET /api/predictions/:id\n *\n * @param id - The chain-prefixed prediction ID (e.g., \"1-market-123-0xuser...\")\n * @returns The prediction data wrapped in an API response\n * @throws Error if the prediction is not found or the request fails\n */\n async getPrediction(id: string): Promise<ApiResponse<PredictionData>> {\n const response = await this.networkClient.get<ApiResponse<PredictionData>>(\n buildUrl(this.baseUrl, `/api/predictions/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get prediction');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // DEALER NFT ENDPOINTS\n // =============================================================================\n\n /**\n * Get all dealer NFTs with optional filtering.\n * GET /api/dealers\n *\n * @param filters - Optional query parameters (owner, limit, offset)\n * @returns Paginated list of dealer NFTs\n * @throws Error if the request fails\n */\n async getDealers(filters?: DealerFilters): Promise<PaginatedResponse<DealerNftData>> {\n const params = new URLSearchParams();\n\n if (filters?.owner) params.append('owner', filters.owner);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/dealers/list${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<DealerNftData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealers');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific dealer NFT by ID.\n * GET /api/dealers/:id\n *\n * @param id - The chain-prefixed dealer ID (e.g., \"1-1\")\n * @returns The dealer NFT data wrapped in an API response\n * @throws Error if the dealer is not found or the request fails\n */\n async getDealer(id: string): Promise<ApiResponse<DealerNftData>> {\n const response = await this.networkClient.get<ApiResponse<DealerNftData>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer');\n }\n\n return response.data;\n }\n\n /**\n * Get permissions for a specific dealer NFT.\n * GET /api/dealers/:id/permissions\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of permission entries for the dealer\n * @throws Error if the request fails\n */\n async getDealerPermissions(dealerId: string): Promise<ApiResponse<DealerPermissionData[]>> {\n const response = await this.networkClient.get<ApiResponse<DealerPermissionData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/permissions`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer permissions');\n }\n\n return response.data;\n }\n\n /**\n * Get all markets created by a specific dealer NFT.\n * GET /api/dealers/:id/markets\n *\n * @param dealerId - The chain-prefixed dealer ID\n * @returns Array of markets created by this dealer\n * @throws Error if the request fails\n */\n async getDealerMarkets(dealerId: string): Promise<ApiResponse<MarketData[]>> {\n const response = await this.networkClient.get<ApiResponse<MarketData[]>>(\n buildUrl(this.baseUrl, `/api/dealers/${encodeURIComponent(dealerId)}/markets`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get dealer markets');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // FEE WITHDRAWAL ENDPOINTS\n // =============================================================================\n\n /**\n * Get fee withdrawals with optional filtering.\n * GET /api/withdrawals\n *\n * @param filters - Optional query parameters (withdrawer, type, market, limit, offset)\n * @returns Paginated list of fee withdrawals\n * @throws Error if the request fails\n */\n async getWithdrawals(filters?: WithdrawalFilters): Promise<PaginatedResponse<FeeWithdrawalData>> {\n const params = new URLSearchParams();\n\n if (filters?.withdrawer) params.append('withdrawer', filters.withdrawer);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.market) params.append('market', filters.market);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/withdrawals${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<FeeWithdrawalData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get withdrawals');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ORACLE REQUEST ENDPOINTS\n // =============================================================================\n\n /**\n * Get oracle requests with optional filtering.\n * GET /api/oracle/requests\n *\n * @param filters - Optional query parameters (market, timedOut, limit, offset)\n * @returns Paginated list of oracle requests\n * @throws Error if the request fails\n */\n async getOracleRequests(filters?: OracleFilters): Promise<PaginatedResponse<OracleRequestData>> {\n const params = new URLSearchParams();\n\n if (filters?.market) params.append('market', filters.market);\n if (filters?.timedOut !== undefined) params.append('timedOut', filters.timedOut.toString());\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/oracle/requests${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle requests');\n }\n\n return response.data;\n }\n\n /**\n * Get a specific oracle request by ID.\n * GET /api/oracle/requests/:id\n *\n * @param id - The oracle request ID\n * @returns The oracle request data wrapped in an API response\n * @throws Error if the oracle request is not found or the request fails\n */\n async getOracleRequest(id: string): Promise<ApiResponse<OracleRequestData>> {\n const response = await this.networkClient.get<ApiResponse<OracleRequestData>>(\n buildUrl(this.baseUrl, `/api/oracle/requests/${encodeURIComponent(id)}`)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get oracle request');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // WALLET FAVORITES ENDPOINTS\n // =============================================================================\n\n /**\n * Get favorites for a wallet address.\n * GET /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to get favorites for\n * @param filters - Optional query parameters (category, subcategory, type, limit, offset)\n * @returns Paginated list of wallet favorites\n * @throws Error if the request fails\n */\n async getFavorites(\n walletAddress: string,\n filters?: WalletFavoritesFilters\n ): Promise<PaginatedResponse<WalletFavoriteData>> {\n const params = new URLSearchParams();\n\n if (filters?.category) params.append('category', filters.category);\n if (filters?.subcategory) params.append('subcategory', filters.subcategory);\n if (filters?.type) params.append('type', filters.type);\n if (filters?.limit) params.append('limit', filters.limit.toString());\n if (filters?.offset) params.append('offset', filters.offset.toString());\n\n const queryString = params.toString();\n const path = `/api/wallet/${encodeURIComponent(walletAddress)}/favorites${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<PaginatedResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get favorites');\n }\n\n return response.data;\n }\n\n /**\n * Add a favorite for a wallet address.\n * POST /api/wallet/:address/favorites\n *\n * @param walletAddress - The wallet address to add a favorite for\n * @param favorite - The favorite item to add (category, subcategory, type, id)\n * @returns The newly created favorite data\n * @throws Error if the request fails\n */\n async addFavorite(\n walletAddress: string,\n favorite: CreateFavoriteRequest\n ): Promise<ApiResponse<WalletFavoriteData>> {\n const response = await this.networkClient.post<ApiResponse<WalletFavoriteData>>(\n buildUrl(this.baseUrl, `/api/wallet/${encodeURIComponent(walletAddress)}/favorites`),\n favorite\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'add favorite');\n }\n\n return response.data;\n }\n\n /**\n * Remove a favorite by ID.\n * DELETE /api/wallet/:address/favorites/:id\n *\n * @param walletAddress - The wallet address that owns the favorite\n * @param favoriteId - The numeric ID of the favorite to remove\n * @returns An API response confirming deletion\n * @throws Error if the favorite is not found or the request fails\n */\n async removeFavorite(walletAddress: string, favoriteId: number): Promise<ApiResponse<void>> {\n const response = await this.networkClient.delete<ApiResponse<void>>(\n buildUrl(\n this.baseUrl,\n `/api/wallet/${encodeURIComponent(walletAddress)}/favorites/${favoriteId}`\n )\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'remove favorite');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // ANALYTICS ENDPOINTS\n // =============================================================================\n\n /**\n * Get market statistics.\n * GET /api/stats/markets\n *\n * @returns Aggregate market statistics (totals, breakdowns by status)\n * @throws Error if the request fails\n */\n async getMarketStats(): Promise<ApiResponse<MarketStatsData>> {\n const response = await this.networkClient.get<ApiResponse<MarketStatsData>>(\n buildUrl(this.baseUrl, '/api/stats/markets')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get market stats');\n }\n\n return response.data;\n }\n\n /**\n * Get health status of the indexer.\n * GET /api/health\n *\n * @returns The indexer health status\n * @throws Error if the request fails\n */\n async getHealth(): Promise<ApiResponse<HealthData>> {\n const response = await this.networkClient.get<ApiResponse<HealthData>>(\n buildUrl(this.baseUrl, '/api/health')\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, 'get health');\n }\n\n return response.data;\n }\n\n // =============================================================================\n // SPORTS API PROXY ENDPOINTS\n // =============================================================================\n\n /**\n * Generic sports API proxy call.\n * Proxies any api-sports.io request through the indexer with server-side caching.\n * Returns the raw api-sports.io response body (passthrough format).\n *\n * @param sport - Sport identifier (e.g., 'football', 'basketball')\n * @param endpoint - API endpoint path (e.g., '/countries', '/fixtures')\n * @param params - Optional query parameters to forward\n * @returns The raw api-sports.io response\n * @throws Error if the request fails\n *\n * @example\n * ```ts\n * const data = await client.getSportsData('football', '/countries');\n * const leagues = await client.getSportsData('basketball', '/leagues', { season: '2023-2024' });\n * ```\n */\n async getSportsData<T = unknown>(\n sport: string,\n endpoint: string,\n params?: SportsQueryParams\n ): Promise<SportsApiResponse<T>> {\n const searchParams = new URLSearchParams();\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== undefined && value !== null) {\n searchParams.append(key, String(value));\n }\n }\n }\n\n const queryString = searchParams.toString();\n const path = `/api/sports/${encodeURIComponent(sport)}${endpoint}${queryString ? `?${queryString}` : ''}`;\n\n const response = await this.networkClient.get<SportsApiResponse<T>>(\n buildUrl(this.baseUrl, path)\n );\n\n if (!response.ok || !response.data) {\n throw handleApiError(response, `get sports data (${sport}${endpoint})`);\n }\n\n return response.data;\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ export interface SportsApiResponse<T> {
2
+ get: string;
3
+ parameters: Record<string, string>;
4
+ errors: string[] | Record<string, string>;
5
+ results: number;
6
+ paging?: {
7
+ current: number;
8
+ total: number;
9
+ };
10
+ response: T[];
11
+ }
12
+ export type SportName = 'football' | 'basketball' | 'hockey' | 'nfl' | 'baseball' | 'rugby' | 'formula1' | 'mma' | 'handball' | 'volleyball';
13
+ export type SportsQueryParams = Record<string, string | number | boolean | undefined>;
14
+ //# sourceMappingURL=sports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sports.d.ts","sourceRoot":"","sources":["../../src/types/sports.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf;AAKD,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,KAAK,GACL,UAAU,GACV,OAAO,GACP,UAAU,GACV,KAAK,GACL,UAAU,GACV,YAAY,CAAC;AAKjB,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sports.js","sourceRoot":"","sources":["../../src/types/sports.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * @fileoverview Sports API Proxy Types\n * @description Generic response type matching api-sports.io format (passthrough).\n */\n\n/**\n * Standard api-sports.io response format.\n * The proxy returns this exact shape for all sport endpoints.\n */\nexport interface SportsApiResponse<T> {\n get: string;\n parameters: Record<string, string>;\n errors: string[] | Record<string, string>;\n results: number;\n paging?: { current: number; total: number };\n response: T[];\n}\n\n/**\n * Valid sport identifiers for the proxy.\n */\nexport type SportName =\n | 'football'\n | 'basketball'\n | 'hockey'\n | 'nfl'\n | 'baseball'\n | 'rugby'\n | 'formula1'\n | 'mma'\n | 'handball'\n | 'volleyball';\n\n/**\n * Generic query params for sport endpoints.\n */\nexport type SportsQueryParams = Record<string, string | number | boolean | undefined>;\n"]}
package/dist/types.d.ts CHANGED
@@ -83,6 +83,7 @@ export interface SSESubscriptionConfirmedMessage {
83
83
  }
84
84
  export type SSEMessage = SSEConnectedMessage | SSEDataUpdateMessage | SSEHeartbeatMessage | SSESubscriptionConfirmedMessage;
85
85
  export type SSEConnectionState = 'connecting' | 'connected' | 'disconnected' | 'error';
86
+ export type { SportsApiResponse, SportName, SportsQueryParams } from './types/sports';
86
87
  export interface MarketCreatedEventData {
87
88
  marketId: string;
88
89
  dealer: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}