@axcode/axcloud-sdk 0.2.0-dev.1e6c3d5 → 0.2.0-dev.85285e0

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.
@@ -0,0 +1,262 @@
1
+ import { useAxCloudContext } from './chunk-2A5NJAFA.mjs';
2
+ import { useQuery, useMutation } from '@tanstack/react-query';
3
+
4
+ // src/core/barnsportClient.ts
5
+ var BarnsportClient = class {
6
+ constructor(client, orgId) {
7
+ this.client = client;
8
+ this.orgId = orgId;
9
+ }
10
+ path(path) {
11
+ return `/barnsport/public/${encodeURIComponent(this.orgId)}${path}`;
12
+ }
13
+ listMunicipalities() {
14
+ return this.client.get(this.path("/municipalities"));
15
+ }
16
+ listSports() {
17
+ return this.client.get(this.path("/sports"));
18
+ }
19
+ getSport(slug) {
20
+ return this.client.get(this.path(`/sports/${encodeURIComponent(slug)}`));
21
+ }
22
+ listActivities(filters = {}) {
23
+ return this.client.get(this.path("/activities"), { ...filters });
24
+ }
25
+ getActivity(slug) {
26
+ return this.client.get(this.path(`/activities/${encodeURIComponent(slug)}`));
27
+ }
28
+ getSitemap(baseUrl) {
29
+ return this.client.get(this.path("/sitemap"), { baseUrl });
30
+ }
31
+ listProviders(filters = {}) {
32
+ return this.client.get(this.path("/providers"), { ...filters });
33
+ }
34
+ getProvider(slug) {
35
+ return this.client.get(this.path(`/providers/${encodeURIComponent(slug)}`));
36
+ }
37
+ listActivityOffers(filters = {}) {
38
+ return this.client.get(this.path("/activity-offers"), { ...filters });
39
+ }
40
+ submitInterest(request) {
41
+ return this.client.post(this.path("/interest"), request);
42
+ }
43
+ submitFeedback(request) {
44
+ return this.client.post(this.path("/feedback"), request);
45
+ }
46
+ submitReview(request) {
47
+ return this.client.post(this.path("/reviews"), request);
48
+ }
49
+ trackEvent(request) {
50
+ return this.client.post(this.path("/events"), request);
51
+ }
52
+ submitClubRemovalRequest(clubSlug, request) {
53
+ return this.client.post(
54
+ this.path(`/clubs/${encodeURIComponent(clubSlug)}/removal-request`),
55
+ request
56
+ );
57
+ }
58
+ };
59
+ function createBarnsportClient(client, orgId) {
60
+ return new BarnsportClient(client, orgId);
61
+ }
62
+ function barnsportQueryRoot(context) {
63
+ return ["axcloud", "barnsport", context.stage, context.config.apiUrl, context.orgId];
64
+ }
65
+ function useBarnsportMunicipalities() {
66
+ const { client, orgId } = useAxCloudContext();
67
+ const query = useQuery({
68
+ queryKey: ["axcloud", "barnsport", "municipalities", orgId],
69
+ queryFn: () => client.get(
70
+ `/barnsport/public/${orgId}/municipalities`
71
+ ),
72
+ staleTime: 1e3 * 60 * 30
73
+ });
74
+ return {
75
+ municipalities: query.data?.items ?? [],
76
+ count: query.data?.count ?? 0,
77
+ isLoading: query.isLoading,
78
+ isError: query.isError,
79
+ error: query.error,
80
+ refetch: query.refetch
81
+ };
82
+ }
83
+ function useBarnsportSports() {
84
+ const { client, orgId } = useAxCloudContext();
85
+ const query = useQuery({
86
+ queryKey: ["axcloud", "barnsport", "sports", orgId],
87
+ queryFn: () => client.get(`/barnsport/public/${orgId}/sports`),
88
+ staleTime: 1e3 * 60 * 30
89
+ });
90
+ return {
91
+ sports: query.data?.items ?? [],
92
+ count: query.data?.count ?? 0,
93
+ isLoading: query.isLoading,
94
+ isError: query.isError,
95
+ error: query.error,
96
+ refetch: query.refetch
97
+ };
98
+ }
99
+ function useBarnsportSport(slug) {
100
+ const { client, orgId } = useAxCloudContext();
101
+ const query = useQuery({
102
+ queryKey: ["axcloud", "barnsport", "sport", orgId, slug],
103
+ queryFn: () => client.get(`/barnsport/public/${orgId}/sports/${slug || ""}`),
104
+ enabled: Boolean(slug),
105
+ staleTime: 1e3 * 60 * 15
106
+ });
107
+ return {
108
+ sport: query.data?.sport ?? null,
109
+ isLoading: query.isLoading,
110
+ isError: query.isError,
111
+ error: query.error,
112
+ refetch: query.refetch
113
+ };
114
+ }
115
+ function useBarnsportActivities(filters = {}) {
116
+ const { client, orgId } = useAxCloudContext();
117
+ const params = { ...filters };
118
+ const query = useQuery({
119
+ queryKey: ["axcloud", "barnsport", "activities", orgId, filters],
120
+ queryFn: () => client.get(
121
+ `/barnsport/public/${orgId}/activities`,
122
+ params
123
+ ),
124
+ staleTime: 1e3 * 60 * 5
125
+ });
126
+ return {
127
+ activities: query.data?.items ?? [],
128
+ count: query.data?.count ?? 0,
129
+ nextCursor: query.data?.nextCursor ?? null,
130
+ isLoading: query.isLoading,
131
+ isError: query.isError,
132
+ error: query.error,
133
+ refetch: query.refetch
134
+ };
135
+ }
136
+ function useBarnsportActivity(slug) {
137
+ const { client, orgId } = useAxCloudContext();
138
+ const query = useQuery({
139
+ queryKey: ["axcloud", "barnsport", "activity", orgId, slug],
140
+ queryFn: () => client.get(`/barnsport/public/${orgId}/activities/${slug || ""}`),
141
+ enabled: Boolean(slug),
142
+ staleTime: 1e3 * 60 * 5
143
+ });
144
+ return {
145
+ activity: query.data?.activity ?? null,
146
+ isLoading: query.isLoading,
147
+ isError: query.isError,
148
+ error: query.error,
149
+ refetch: query.refetch
150
+ };
151
+ }
152
+ function useBarnsportSitemap(baseUrl) {
153
+ const { client, orgId } = useAxCloudContext();
154
+ const query = useQuery({
155
+ queryKey: ["axcloud", "barnsport", "sitemap", orgId, baseUrl],
156
+ queryFn: () => client.get(`/barnsport/public/${orgId}/sitemap`, {
157
+ baseUrl
158
+ }),
159
+ staleTime: 1e3 * 60 * 15
160
+ });
161
+ return {
162
+ sitemap: query.data ?? null,
163
+ urls: query.data?.urls ?? [],
164
+ isLoading: query.isLoading,
165
+ isError: query.isError,
166
+ error: query.error,
167
+ refetch: query.refetch
168
+ };
169
+ }
170
+ function useSubmitBarnsportInterest() {
171
+ const { client, orgId } = useAxCloudContext();
172
+ return useMutation({
173
+ mutationFn: (submission) => client.post(
174
+ `/barnsport/public/${orgId}/interest`,
175
+ submission
176
+ )
177
+ });
178
+ }
179
+ function useBarnsportProviderSearch(filters) {
180
+ const context = useAxCloudContext();
181
+ const api = createBarnsportClient(context.client, context.orgId);
182
+ const normalizedFilters = { ...filters, q: filters.q?.trim() };
183
+ const query = useQuery({
184
+ queryKey: [...barnsportQueryRoot(context), "providers", normalizedFilters],
185
+ queryFn: () => api.listProviders(normalizedFilters),
186
+ enabled: (normalizedFilters.q?.length ?? 0) >= 2,
187
+ staleTime: 1e3 * 60
188
+ });
189
+ return {
190
+ providers: query.data?.items ?? [],
191
+ count: query.data?.count ?? query.data?.items.length ?? 0,
192
+ nextCursor: query.data?.nextCursor ?? null,
193
+ hasMore: query.data?.hasMore ?? false,
194
+ isLoading: query.isLoading,
195
+ isFetching: query.isFetching,
196
+ isError: query.isError,
197
+ error: query.error,
198
+ refetch: query.refetch
199
+ };
200
+ }
201
+ function useBarnsportProvider(slug) {
202
+ const context = useAxCloudContext();
203
+ const api = createBarnsportClient(context.client, context.orgId);
204
+ const query = useQuery({
205
+ queryKey: [...barnsportQueryRoot(context), "provider", slug],
206
+ queryFn: () => api.getProvider(slug || ""),
207
+ enabled: Boolean(slug),
208
+ staleTime: 1e3 * 60 * 5
209
+ });
210
+ return {
211
+ provider: query.data?.item ?? null,
212
+ isLoading: query.isLoading,
213
+ isError: query.isError,
214
+ error: query.error,
215
+ refetch: query.refetch
216
+ };
217
+ }
218
+ function useBarnsportActivityOffers(filters = {}) {
219
+ const context = useAxCloudContext();
220
+ const api = createBarnsportClient(context.client, context.orgId);
221
+ const query = useQuery({
222
+ queryKey: [...barnsportQueryRoot(context), "activity-offers", filters],
223
+ queryFn: () => api.listActivityOffers(filters),
224
+ staleTime: 1e3 * 60 * 5
225
+ });
226
+ return {
227
+ activityOffers: query.data?.items ?? [],
228
+ count: query.data?.count ?? query.data?.items.length ?? 0,
229
+ nextCursor: query.data?.nextCursor ?? null,
230
+ hasMore: query.data?.hasMore ?? false,
231
+ isLoading: query.isLoading,
232
+ isFetching: query.isFetching,
233
+ isError: query.isError,
234
+ error: query.error,
235
+ refetch: query.refetch
236
+ };
237
+ }
238
+ function useSubmitBarnsportFeedback() {
239
+ const { client, orgId } = useAxCloudContext();
240
+ const api = createBarnsportClient(client, orgId);
241
+ return useMutation({
242
+ mutationFn: (request) => api.submitFeedback(request)
243
+ });
244
+ }
245
+ function useSubmitBarnsportReview() {
246
+ const { client, orgId } = useAxCloudContext();
247
+ const api = createBarnsportClient(client, orgId);
248
+ return useMutation({
249
+ mutationFn: (request) => api.submitReview(request)
250
+ });
251
+ }
252
+ function useTrackBarnsportEvent() {
253
+ const { client, orgId } = useAxCloudContext();
254
+ const api = createBarnsportClient(client, orgId);
255
+ return useMutation({
256
+ mutationFn: (request) => api.trackEvent(request)
257
+ });
258
+ }
259
+
260
+ export { BarnsportClient, createBarnsportClient, useBarnsportActivities, useBarnsportActivity, useBarnsportActivityOffers, useBarnsportMunicipalities, useBarnsportProvider, useBarnsportProviderSearch, useBarnsportSitemap, useBarnsportSport, useBarnsportSports, useSubmitBarnsportFeedback, useSubmitBarnsportInterest, useSubmitBarnsportReview, useTrackBarnsportEvent };
261
+ //# sourceMappingURL=chunk-HRNRGCCT.mjs.map
262
+ //# sourceMappingURL=chunk-HRNRGCCT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/barnsportClient.ts","../src/react/hooks/useBarnsport.ts"],"names":[],"mappings":"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","file":"chunk-HRNRGCCT.mjs","sourcesContent":["import type { AxCloudClient } from './client';\nimport type {\n BarnsportActivitiesFilter,\n BarnsportActivityListItem,\n BarnsportActivityOffersFilter,\n BarnsportActivityResponse,\n BarnsportActivityOffer,\n BarnsportClubRemovalRequest,\n BarnsportClubRemovalResponse,\n BarnsportCollectionResponse,\n BarnsportEventRequest,\n BarnsportEventResponse,\n BarnsportFeedbackRequest,\n BarnsportFeedbackResponse,\n BarnsportInterestSubmissionRequest,\n BarnsportInterestSubmissionResponse,\n BarnsportItemResponse,\n BarnsportListResponse,\n BarnsportMunicipality,\n BarnsportProviderProfile,\n BarnsportProvider,\n BarnsportProvidersFilter,\n BarnsportReviewSubmissionRequest,\n BarnsportReviewSubmissionResponse,\n BarnsportSitemapResponse,\n BarnsportSport,\n} from './barnsport';\n\ntype QueryParams = Record<string, string | number | boolean | undefined>;\n\nexport class BarnsportClient {\n constructor(\n private readonly client: AxCloudClient,\n private readonly orgId: string\n ) {}\n\n private path(path: string): string {\n return `/barnsport/public/${encodeURIComponent(this.orgId)}${path}`;\n }\n\n listMunicipalities(): Promise<BarnsportListResponse<BarnsportMunicipality>> {\n return this.client.get(this.path('/municipalities'));\n }\n\n listSports(): Promise<BarnsportListResponse<BarnsportSport>> {\n return this.client.get(this.path('/sports'));\n }\n\n getSport(slug: string): Promise<{ sport: BarnsportSport }> {\n return this.client.get(this.path(`/sports/${encodeURIComponent(slug)}`));\n }\n\n listActivities(\n filters: BarnsportActivitiesFilter = {}\n ): Promise<BarnsportListResponse<BarnsportActivityListItem>> {\n return this.client.get(this.path('/activities'), { ...filters } as QueryParams);\n }\n\n getActivity(slug: string): Promise<BarnsportActivityResponse> {\n return this.client.get(this.path(`/activities/${encodeURIComponent(slug)}`));\n }\n\n getSitemap(baseUrl?: string): Promise<BarnsportSitemapResponse> {\n return this.client.get(this.path('/sitemap'), { baseUrl });\n }\n\n listProviders(\n filters: BarnsportProvidersFilter = {}\n ): Promise<BarnsportCollectionResponse<BarnsportProvider, BarnsportProvidersFilter>> {\n return this.client.get(this.path('/providers'), { ...filters } as QueryParams);\n }\n\n getProvider(slug: string): Promise<BarnsportItemResponse<BarnsportProviderProfile>> {\n return this.client.get(this.path(`/providers/${encodeURIComponent(slug)}`));\n }\n\n listActivityOffers(\n filters: BarnsportActivityOffersFilter = {}\n ): Promise<BarnsportCollectionResponse<BarnsportActivityOffer, BarnsportActivityOffersFilter>> {\n return this.client.get(this.path('/activity-offers'), { ...filters } as QueryParams);\n }\n\n submitInterest(\n request: BarnsportInterestSubmissionRequest\n ): Promise<BarnsportInterestSubmissionResponse> {\n return this.client.post(this.path('/interest'), request);\n }\n\n submitFeedback(request: BarnsportFeedbackRequest): Promise<BarnsportFeedbackResponse> {\n return this.client.post(this.path('/feedback'), request);\n }\n\n submitReview(\n request: BarnsportReviewSubmissionRequest\n ): Promise<BarnsportReviewSubmissionResponse> {\n return this.client.post(this.path('/reviews'), request);\n }\n\n trackEvent(request: BarnsportEventRequest): Promise<BarnsportEventResponse> {\n return this.client.post(this.path('/events'), request);\n }\n\n submitClubRemovalRequest(\n clubSlug: string,\n request: BarnsportClubRemovalRequest\n ): Promise<BarnsportClubRemovalResponse> {\n return this.client.post(\n this.path(`/clubs/${encodeURIComponent(clubSlug)}/removal-request`),\n request\n );\n }\n}\n\nexport function createBarnsportClient(client: AxCloudClient, orgId: string): BarnsportClient {\n return new BarnsportClient(client, orgId);\n}\n","import { useMutation, useQuery } from '@tanstack/react-query';\nimport { useAxCloudContext } from '../context';\nimport type {\n BarnsportActivitiesFilter,\n BarnsportActivityListItem,\n BarnsportActivityResponse,\n BarnsportClubRemovalRequest,\n BarnsportClubRemovalResponse,\n BarnsportInterestSubmissionRequest,\n BarnsportInterestSubmissionResponse,\n BarnsportListResponse,\n BarnsportMunicipality,\n BarnsportSitemapResponse,\n BarnsportSport,\n BarnsportActivityOffersFilter,\n BarnsportActivityOffer,\n BarnsportCollectionResponse,\n BarnsportEventRequest,\n BarnsportEventResponse,\n BarnsportFeedbackRequest,\n BarnsportFeedbackResponse,\n BarnsportProvider,\n BarnsportProviderProfile,\n BarnsportProvidersFilter,\n BarnsportReviewSubmissionRequest,\n BarnsportReviewSubmissionResponse,\n} from '../../core/barnsport';\nimport { createBarnsportClient } from '../../core/barnsportClient';\n\nfunction barnsportQueryRoot(context: ReturnType<typeof useAxCloudContext>) {\n return ['axcloud', 'barnsport', context.stage, context.config.apiUrl, context.orgId] as const;\n}\n\nexport function useBarnsportMunicipalities() {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportListResponse<BarnsportMunicipality>>({\n queryKey: ['axcloud', 'barnsport', 'municipalities', orgId],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportMunicipality>>(\n `/barnsport/public/${orgId}/municipalities`\n ),\n staleTime: 1000 * 60 * 30,\n });\n\n return {\n municipalities: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSports() {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportListResponse<BarnsportSport>>({\n queryKey: ['axcloud', 'barnsport', 'sports', orgId],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportSport>>(`/barnsport/public/${orgId}/sports`),\n staleTime: 1000 * 60 * 30,\n });\n\n return {\n sports: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSport(slug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<{ sport: BarnsportSport }>({\n queryKey: ['axcloud', 'barnsport', 'sport', orgId, slug],\n queryFn: () =>\n client.get<{ sport: BarnsportSport }>(`/barnsport/public/${orgId}/sports/${slug || ''}`),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 15,\n });\n\n return {\n sport: query.data?.sport ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivities(filters: BarnsportActivitiesFilter = {}) {\n const { client, orgId } = useAxCloudContext();\n const params: Record<string, string | number | boolean | undefined> = { ...filters };\n\n const query = useQuery<BarnsportListResponse<BarnsportActivityListItem>>({\n queryKey: ['axcloud', 'barnsport', 'activities', orgId, filters],\n queryFn: () =>\n client.get<BarnsportListResponse<BarnsportActivityListItem>>(\n `/barnsport/public/${orgId}/activities`,\n params\n ),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activities: query.data?.items ?? [],\n count: query.data?.count ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivity(slug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportActivityResponse>({\n queryKey: ['axcloud', 'barnsport', 'activity', orgId, slug],\n queryFn: () =>\n client.get<BarnsportActivityResponse>(`/barnsport/public/${orgId}/activities/${slug || ''}`),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activity: query.data?.activity ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportSitemap(baseUrl?: string) {\n const { client, orgId } = useAxCloudContext();\n\n const query = useQuery<BarnsportSitemapResponse>({\n queryKey: ['axcloud', 'barnsport', 'sitemap', orgId, baseUrl],\n queryFn: () =>\n client.get<BarnsportSitemapResponse>(`/barnsport/public/${orgId}/sitemap`, {\n baseUrl,\n }),\n staleTime: 1000 * 60 * 15,\n });\n\n return {\n sitemap: query.data ?? null,\n urls: query.data?.urls ?? [],\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useSubmitBarnsportInterest() {\n const { client, orgId } = useAxCloudContext();\n\n return useMutation<\n BarnsportInterestSubmissionResponse,\n Error,\n BarnsportInterestSubmissionRequest\n >({\n mutationFn: (submission) =>\n client.post<BarnsportInterestSubmissionResponse>(\n `/barnsport/public/${orgId}/interest`,\n submission\n ),\n });\n}\n\nexport function useSubmitBarnsportClubRemovalRequest(clubSlug: string | undefined) {\n const { client, orgId } = useAxCloudContext();\n\n return useMutation<BarnsportClubRemovalResponse, Error, BarnsportClubRemovalRequest>({\n mutationFn: (request) =>\n client.post<BarnsportClubRemovalResponse>(\n `/barnsport/public/${orgId}/clubs/${clubSlug || ''}/removal-request`,\n request\n ),\n });\n}\n\nexport function useBarnsportProviderSearch(filters: BarnsportProvidersFilter) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const normalizedFilters = { ...filters, q: filters.q?.trim() };\n const query = useQuery<BarnsportCollectionResponse<BarnsportProvider, BarnsportProvidersFilter>>({\n queryKey: [...barnsportQueryRoot(context), 'providers', normalizedFilters],\n queryFn: () => api.listProviders(normalizedFilters),\n enabled: (normalizedFilters.q?.length ?? 0) >= 2,\n staleTime: 1000 * 60,\n });\n\n return {\n providers: query.data?.items ?? [],\n count: query.data?.count ?? query.data?.items.length ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n hasMore: query.data?.hasMore ?? false,\n isLoading: query.isLoading,\n isFetching: query.isFetching,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportProvider(slug: string | undefined) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const query = useQuery<{ item: BarnsportProviderProfile }>({\n queryKey: [...barnsportQueryRoot(context), 'provider', slug],\n queryFn: () => api.getProvider(slug || ''),\n enabled: Boolean(slug),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n provider: query.data?.item ?? null,\n isLoading: query.isLoading,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useBarnsportActivityOffers(filters: BarnsportActivityOffersFilter = {}) {\n const context = useAxCloudContext();\n const api = createBarnsportClient(context.client, context.orgId);\n const query = useQuery<\n BarnsportCollectionResponse<BarnsportActivityOffer, BarnsportActivityOffersFilter>\n >({\n queryKey: [...barnsportQueryRoot(context), 'activity-offers', filters],\n queryFn: () => api.listActivityOffers(filters),\n staleTime: 1000 * 60 * 5,\n });\n\n return {\n activityOffers: query.data?.items ?? [],\n count: query.data?.count ?? query.data?.items.length ?? 0,\n nextCursor: query.data?.nextCursor ?? null,\n hasMore: query.data?.hasMore ?? false,\n isLoading: query.isLoading,\n isFetching: query.isFetching,\n isError: query.isError,\n error: query.error,\n refetch: query.refetch,\n };\n}\n\nexport function useSubmitBarnsportFeedback() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportFeedbackResponse, Error, BarnsportFeedbackRequest>({\n mutationFn: (request) => api.submitFeedback(request),\n });\n}\n\nexport function useSubmitBarnsportReview() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportReviewSubmissionResponse, Error, BarnsportReviewSubmissionRequest>({\n mutationFn: (request) => api.submitReview(request),\n });\n}\n\nexport function useTrackBarnsportEvent() {\n const { client, orgId } = useAxCloudContext();\n const api = createBarnsportClient(client, orgId);\n return useMutation<BarnsportEventResponse, Error, BarnsportEventRequest>({\n mutationFn: (request) => api.trackEvent(request),\n });\n}\n"]}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * AxCloud API Client
3
+ *
4
+ * Fetch wrapper with authentication header injection and error handling.
5
+ */
6
+ interface ClientConfig {
7
+ baseUrl: string;
8
+ getAccessToken?: () => Promise<string | undefined>;
9
+ /** API key for public content endpoints */
10
+ apiKey?: string;
11
+ /** Default request timeout in milliseconds (default: 30000) */
12
+ timeout?: number;
13
+ }
14
+ interface RequestOptions extends Omit<RequestInit, 'body'> {
15
+ body?: unknown;
16
+ params?: Record<string, string | number | boolean | undefined>;
17
+ /** Request timeout in milliseconds (overrides client default) */
18
+ timeout?: number;
19
+ }
20
+ declare class AxCloudClient {
21
+ private baseUrl;
22
+ private getAccessToken?;
23
+ private apiKey?;
24
+ private defaultTimeout;
25
+ constructor(config: ClientConfig);
26
+ /**
27
+ * Update the access token getter (used when auth state changes)
28
+ */
29
+ setAccessTokenGetter(getter: () => Promise<string | undefined>): void;
30
+ /**
31
+ * Build URL with query parameters
32
+ */
33
+ private buildUrl;
34
+ /**
35
+ * API key should only be sent to public endpoints.
36
+ * This avoids leaking public keys to authenticated/internal routes.
37
+ */
38
+ private shouldAttachApiKey;
39
+ /**
40
+ * Make an authenticated request
41
+ */
42
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
43
+ /**
44
+ * GET request
45
+ */
46
+ get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T>;
47
+ /**
48
+ * POST request
49
+ */
50
+ post<T>(path: string, body?: unknown): Promise<T>;
51
+ /**
52
+ * PUT request
53
+ */
54
+ put<T>(path: string, body?: unknown): Promise<T>;
55
+ /**
56
+ * PATCH request
57
+ */
58
+ patch<T>(path: string, body?: unknown): Promise<T>;
59
+ /**
60
+ * DELETE request
61
+ */
62
+ delete<T>(path: string): Promise<T>;
63
+ }
64
+ /**
65
+ * Create a client instance associated with a key (typically the provider instance)
66
+ * This allows multiple AxCloudProviders to coexist without conflicts
67
+ */
68
+ declare function createClient(config: ClientConfig, key?: object): AxCloudClient;
69
+ /**
70
+ * Get a client instance by key
71
+ * @deprecated Use the client from useAxCloudContext() instead
72
+ */
73
+ declare function getClient(key?: object): AxCloudClient;
74
+
75
+ export { AxCloudClient as A, createClient as c, getClient as g };
@@ -0,0 +1,75 @@
1
+ /**
2
+ * AxCloud API Client
3
+ *
4
+ * Fetch wrapper with authentication header injection and error handling.
5
+ */
6
+ interface ClientConfig {
7
+ baseUrl: string;
8
+ getAccessToken?: () => Promise<string | undefined>;
9
+ /** API key for public content endpoints */
10
+ apiKey?: string;
11
+ /** Default request timeout in milliseconds (default: 30000) */
12
+ timeout?: number;
13
+ }
14
+ interface RequestOptions extends Omit<RequestInit, 'body'> {
15
+ body?: unknown;
16
+ params?: Record<string, string | number | boolean | undefined>;
17
+ /** Request timeout in milliseconds (overrides client default) */
18
+ timeout?: number;
19
+ }
20
+ declare class AxCloudClient {
21
+ private baseUrl;
22
+ private getAccessToken?;
23
+ private apiKey?;
24
+ private defaultTimeout;
25
+ constructor(config: ClientConfig);
26
+ /**
27
+ * Update the access token getter (used when auth state changes)
28
+ */
29
+ setAccessTokenGetter(getter: () => Promise<string | undefined>): void;
30
+ /**
31
+ * Build URL with query parameters
32
+ */
33
+ private buildUrl;
34
+ /**
35
+ * API key should only be sent to public endpoints.
36
+ * This avoids leaking public keys to authenticated/internal routes.
37
+ */
38
+ private shouldAttachApiKey;
39
+ /**
40
+ * Make an authenticated request
41
+ */
42
+ request<T>(path: string, options?: RequestOptions): Promise<T>;
43
+ /**
44
+ * GET request
45
+ */
46
+ get<T>(path: string, params?: Record<string, string | number | boolean | undefined>): Promise<T>;
47
+ /**
48
+ * POST request
49
+ */
50
+ post<T>(path: string, body?: unknown): Promise<T>;
51
+ /**
52
+ * PUT request
53
+ */
54
+ put<T>(path: string, body?: unknown): Promise<T>;
55
+ /**
56
+ * PATCH request
57
+ */
58
+ patch<T>(path: string, body?: unknown): Promise<T>;
59
+ /**
60
+ * DELETE request
61
+ */
62
+ delete<T>(path: string): Promise<T>;
63
+ }
64
+ /**
65
+ * Create a client instance associated with a key (typically the provider instance)
66
+ * This allows multiple AxCloudProviders to coexist without conflicts
67
+ */
68
+ declare function createClient(config: ClientConfig, key?: object): AxCloudClient;
69
+ /**
70
+ * Get a client instance by key
71
+ * @deprecated Use the client from useAxCloudContext() instead
72
+ */
73
+ declare function getClient(key?: object): AxCloudClient;
74
+
75
+ export { AxCloudClient as A, createClient as c, getClient as g };