@spotsdev/sdk 1.3.3 → 1.5.0

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/index.cjs +2139 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1718 -0
  4. package/dist/index.d.ts +1717 -36
  5. package/dist/index.js +1996 -64
  6. package/dist/index.js.map +1 -0
  7. package/package.json +22 -6
  8. package/src/api/entities.ts +28 -84
  9. package/dist/api/client.d.ts +0 -12
  10. package/dist/api/client.js +0 -72
  11. package/dist/api/entities.d.ts +0 -326
  12. package/dist/api/entities.js +0 -9
  13. package/dist/api/mutations/clubs.d.ts +0 -47
  14. package/dist/api/mutations/clubs.js +0 -97
  15. package/dist/api/mutations/conversations.d.ts +0 -45
  16. package/dist/api/mutations/conversations.js +0 -114
  17. package/dist/api/mutations/index.d.ts +0 -14
  18. package/dist/api/mutations/index.js +0 -40
  19. package/dist/api/mutations/notifications.d.ts +0 -38
  20. package/dist/api/mutations/notifications.js +0 -64
  21. package/dist/api/mutations/orders.d.ts +0 -73
  22. package/dist/api/mutations/orders.js +0 -114
  23. package/dist/api/mutations/posts.d.ts +0 -123
  24. package/dist/api/mutations/posts.js +0 -242
  25. package/dist/api/mutations/products.d.ts +0 -81
  26. package/dist/api/mutations/products.js +0 -98
  27. package/dist/api/mutations/redemptions.d.ts +0 -33
  28. package/dist/api/mutations/redemptions.js +0 -63
  29. package/dist/api/mutations/spots.d.ts +0 -93
  30. package/dist/api/mutations/spots.js +0 -167
  31. package/dist/api/mutations/users.d.ts +0 -73
  32. package/dist/api/mutations/users.js +0 -175
  33. package/dist/api/queries/auth.d.ts +0 -37
  34. package/dist/api/queries/auth.js +0 -61
  35. package/dist/api/queries/clubs.d.ts +0 -52
  36. package/dist/api/queries/clubs.js +0 -116
  37. package/dist/api/queries/conversations.d.ts +0 -52
  38. package/dist/api/queries/conversations.js +0 -83
  39. package/dist/api/queries/index.d.ts +0 -28
  40. package/dist/api/queries/index.js +0 -69
  41. package/dist/api/queries/misc.d.ts +0 -30
  42. package/dist/api/queries/misc.js +0 -91
  43. package/dist/api/queries/notifications.d.ts +0 -34
  44. package/dist/api/queries/notifications.js +0 -62
  45. package/dist/api/queries/orders.d.ts +0 -45
  46. package/dist/api/queries/orders.js +0 -93
  47. package/dist/api/queries/posts.d.ts +0 -92
  48. package/dist/api/queries/posts.js +0 -233
  49. package/dist/api/queries/products.d.ts +0 -48
  50. package/dist/api/queries/products.js +0 -87
  51. package/dist/api/queries/spots.d.ts +0 -93
  52. package/dist/api/queries/spots.js +0 -250
  53. package/dist/api/queries/templates.d.ts +0 -39
  54. package/dist/api/queries/templates.js +0 -81
  55. package/dist/api/queries/users.d.ts +0 -104
  56. package/dist/api/queries/users.js +0 -235
  57. package/dist/api/queries/wallet.d.ts +0 -109
  58. package/dist/api/queries/wallet.js +0 -136
  59. package/dist/api/services/index.d.ts +0 -2
  60. package/dist/api/services/index.js +0 -8
  61. package/dist/api/services/marketplace.d.ts +0 -129
  62. package/dist/api/services/marketplace.js +0 -168
  63. package/dist/api/types.d.ts +0 -57
  64. package/dist/api/types.js +0 -33
@@ -1,235 +0,0 @@
1
- "use strict";
2
- /**
3
- * Users Query Hooks
4
- *
5
- * TanStack Query hooks for user-related operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.userKeys = void 0;
9
- exports.useCurrentUser = useCurrentUser;
10
- exports.useUserStats = useUserStats;
11
- exports.useUserSpotsSummary = useUserSpotsSummary;
12
- exports.useUserActivity = useUserActivity;
13
- exports.useUserPosts = useUserPosts;
14
- exports.useUserClubs = useUserClubs;
15
- exports.useUserSubscriptions = useUserSubscriptions;
16
- exports.useBlockedUsers = useBlockedUsers;
17
- exports.useOwnedSpots = useOwnedSpots;
18
- exports.useUserFavorites = useUserFavorites;
19
- const react_query_1 = require("@tanstack/react-query");
20
- const client_1 = require("../client");
21
- // Helper to extract array data from API response
22
- // API can return either { data: T[] } or { data: { data: T[], meta?: {...} } }
23
- function extractArrayData(data) {
24
- if (Array.isArray(data)) {
25
- return data;
26
- }
27
- if (data && typeof data === 'object' && 'data' in data) {
28
- const nested = data.data;
29
- if (Array.isArray(nested)) {
30
- return nested;
31
- }
32
- }
33
- return [];
34
- }
35
- // ============================================================================
36
- // QUERY KEYS
37
- // ============================================================================
38
- exports.userKeys = {
39
- all: ['users'],
40
- me: () => [...exports.userKeys.all, 'me'],
41
- stats: () => [...exports.userKeys.me(), 'stats'],
42
- spotsSummary: () => [...exports.userKeys.me(), 'spots-summary'],
43
- activity: (limit) => [...exports.userKeys.me(), 'activity', limit],
44
- posts: (params) => [...exports.userKeys.me(), 'posts', params],
45
- clubs: () => [...exports.userKeys.me(), 'clubs'],
46
- subscriptions: () => [...exports.userKeys.me(), 'subscriptions'],
47
- blocked: () => [...exports.userKeys.me(), 'blocked'],
48
- ownedSpots: () => [...exports.userKeys.me(), 'owned-spots'],
49
- favorites: () => [...exports.userKeys.me(), 'favorites'],
50
- };
51
- // ============================================================================
52
- // QUERY HOOKS
53
- // ============================================================================
54
- /**
55
- * Get current user's profile
56
- *
57
- * @endpoint GET /users/me
58
- */
59
- function useCurrentUser(options) {
60
- return (0, react_query_1.useQuery)({
61
- queryKey: exports.userKeys.me(),
62
- queryFn: async () => {
63
- console.log('[SDK-USERS] Fetching /users/me...');
64
- const client = (0, client_1.getApiClient)();
65
- try {
66
- const response = await client.get('/users/me');
67
- console.log('[SDK-USERS] Success:', response.status);
68
- return response.data.data;
69
- }
70
- catch (error) {
71
- const axiosError = error;
72
- console.log('[SDK-USERS] Error:', axiosError.response?.status, 'URL:', axiosError.config?.baseURL, axiosError.config?.url);
73
- throw error;
74
- }
75
- },
76
- ...options,
77
- });
78
- }
79
- /**
80
- * Get current user's stats
81
- *
82
- * @endpoint GET /users/me/stats
83
- * @deprecated This endpoint doesn't exist in the API. Use useUserSpotsSummary instead.
84
- */
85
- function useUserStats(options) {
86
- return (0, react_query_1.useQuery)({
87
- queryKey: exports.userKeys.stats(),
88
- queryFn: async () => {
89
- const client = (0, client_1.getApiClient)();
90
- const response = await client.get('/users/me/stats');
91
- return response.data.data;
92
- },
93
- ...options,
94
- });
95
- }
96
- /**
97
- * Get current user's spots summary with activity indicators
98
- *
99
- * Returns list of spots where user has posted, with:
100
- * - Post count per spot
101
- * - Unread messages count
102
- * - Pending responses count
103
- * - Last activity timestamp
104
- *
105
- * @endpoint GET /users/me/spots-summary
106
- */
107
- function useUserSpotsSummary(options) {
108
- return (0, react_query_1.useQuery)({
109
- queryKey: exports.userKeys.spotsSummary(),
110
- queryFn: async () => {
111
- const client = (0, client_1.getApiClient)();
112
- const response = await client.get('/users/me/spots-summary');
113
- return response.data.data;
114
- },
115
- ...options,
116
- });
117
- }
118
- /**
119
- * Get current user's activity
120
- *
121
- * @endpoint GET /users/me/activity
122
- */
123
- function useUserActivity(limit = 10, options) {
124
- return (0, react_query_1.useQuery)({
125
- queryKey: exports.userKeys.activity(limit),
126
- queryFn: async () => {
127
- const client = (0, client_1.getApiClient)();
128
- const response = await client.get(`/users/me/activity?limit=${limit}`);
129
- return extractArrayData(response.data.data);
130
- },
131
- ...options,
132
- });
133
- }
134
- /**
135
- * Get current user's posts
136
- *
137
- * @endpoint GET /user/me/posts
138
- */
139
- function useUserPosts(params, options) {
140
- return (0, react_query_1.useQuery)({
141
- queryKey: exports.userKeys.posts(params),
142
- queryFn: async () => {
143
- const client = (0, client_1.getApiClient)();
144
- const queryParams = new URLSearchParams();
145
- if (params?.page)
146
- queryParams.set('page', String(params.page));
147
- if (params?.limit)
148
- queryParams.set('limit', String(params.limit));
149
- const response = await client.get(`/user/me/posts?${queryParams}`);
150
- return extractArrayData(response.data.data);
151
- },
152
- ...options,
153
- });
154
- }
155
- /**
156
- * Get current user's clubs
157
- *
158
- * @endpoint GET /user/me/clubs
159
- */
160
- function useUserClubs(options) {
161
- return (0, react_query_1.useQuery)({
162
- queryKey: exports.userKeys.clubs(),
163
- queryFn: async () => {
164
- const client = (0, client_1.getApiClient)();
165
- const response = await client.get('/user/me/clubs');
166
- return extractArrayData(response.data.data);
167
- },
168
- ...options,
169
- });
170
- }
171
- /**
172
- * Get current user's spot subscriptions
173
- *
174
- * @endpoint GET /user/me/subscriptions
175
- */
176
- function useUserSubscriptions(options) {
177
- return (0, react_query_1.useQuery)({
178
- queryKey: exports.userKeys.subscriptions(),
179
- queryFn: async () => {
180
- const client = (0, client_1.getApiClient)();
181
- const response = await client.get('/user/me/subscriptions');
182
- return extractArrayData(response.data.data);
183
- },
184
- ...options,
185
- });
186
- }
187
- /**
188
- * Get blocked users list
189
- *
190
- * @endpoint GET /user/me/blocked
191
- */
192
- function useBlockedUsers(options) {
193
- return (0, react_query_1.useQuery)({
194
- queryKey: exports.userKeys.blocked(),
195
- queryFn: async () => {
196
- const client = (0, client_1.getApiClient)();
197
- const response = await client.get('/user/me/blocked');
198
- return extractArrayData(response.data.data);
199
- },
200
- ...options,
201
- });
202
- }
203
- /**
204
- * Get current user's owned spots (for business owners)
205
- *
206
- * @endpoint GET /users/me/owned-spots
207
- */
208
- function useOwnedSpots(options) {
209
- return (0, react_query_1.useQuery)({
210
- queryKey: exports.userKeys.ownedSpots(),
211
- queryFn: async () => {
212
- const client = (0, client_1.getApiClient)();
213
- const response = await client.get('/users/me/owned-spots');
214
- return extractArrayData(response.data.data);
215
- },
216
- ...options,
217
- });
218
- }
219
- /**
220
- * Get current user's favorite spots
221
- *
222
- * @endpoint GET /users/me/favorites
223
- */
224
- function useUserFavorites(options) {
225
- return (0, react_query_1.useQuery)({
226
- queryKey: exports.userKeys.favorites(),
227
- queryFn: async () => {
228
- const client = (0, client_1.getApiClient)();
229
- const response = await client.get('/users/me/favorites');
230
- return extractArrayData(response.data.data);
231
- },
232
- ...options,
233
- });
234
- }
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvdXNlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQStESCx3Q0E2QkM7QUFRRCxvQ0FrQkM7QUFhRCxrREFjQztBQU9ELDBDQWVDO0FBT0Qsb0NBa0JDO0FBT0Qsb0NBWUM7QUFPRCxvREFjQztBQU9ELDBDQWFDO0FBT0Qsc0NBY0M7QUFPRCw0Q0FjQztBQXBTRCx1REFJOEI7QUFFOUIsc0NBQXNDO0FBWXRDLGlEQUFpRDtBQUNqRCwrRUFBK0U7QUFDL0UsU0FBUyxnQkFBZ0IsQ0FBSSxJQUFhO0lBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUksSUFBd0IsQ0FBQyxJQUFJLENBQUE7UUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBVTtJQUN2QixFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBVTtJQUMxQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQ2pELFlBQVksRUFBRSxHQUFH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Z0JBQWdCLENBQzlCLE9BQXVFO0lBRXZFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsU0FBUyxFQUFFO1FBQzlCLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLHFCQUFxQixDQUN0QixDQUFBO1lBQ0QsT0FBTyxnQkFBZ0IsQ0FBZSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzNELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2VycyBRdWVyeSBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciB1c2VyLXJlbGF0ZWQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIHR5cGUgQXBpUmVzcG9uc2UsXG4gIHR5cGUgQ2x1YixcbiAgdHlwZSBGYXZvcml0ZVNwb3QsXG4gIHR5cGUgUG9zdCxcbiAgdHlwZSBTcG90LFxuICB0eXBlIFNwb3RzU3VtbWFyeVJlc3BvbnNlLFxuICB0eXBlIFNwb3RTdWJzY3JpcHRpb24sXG4gIHR5cGUgVXNlcixcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIEhlbHBlciB0byBleHRyYWN0IGFycmF5IGRhdGEgZnJvbSBBUEkgcmVzcG9uc2Vcbi8vIEFQSSBjYW4gcmV0dXJuIGVpdGhlciB7IGRhdGE6IFRbXSB9IG9yIHsgZGF0YTogeyBkYXRhOiBUW10sIG1ldGE/OiB7Li4ufSB9IH1cbmZ1bmN0aW9uIGV4dHJhY3RBcnJheURhdGE8VD4oZGF0YTogdW5rbm93bik6IFRbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGRhdGEpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSAoZGF0YSBhcyB7ZGF0YTogdW5rbm93bn0pLmRhdGFcbiAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWQpKSB7XG4gICAgICByZXR1cm4gbmVzdGVkXG4gICAgfVxuICB9XG4gIHJldHVybiBbXVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCB1c2VyS2V5cyA9IHtcbiAgYWxsOiBbJ3VzZXJzJ10gYXMgY29uc3QsXG4gIG1lOiAoKSA9PiBbLi4udXNlcktleXMuYWxsLCAnbWUnXSBhcyBjb25zdCxcbiAgc3RhdHM6ICgpID0+IFsuLi51c2VyS2V5cy5tZSgpLCAnc3RhdHMnXSBhcyBjb25zdCxcbiAgc3BvdHNTdW1tYXJ5OiAoKSA9PiBbLi4udXNlcktleXMubWUoKSwgJ3Nwb3RzLXN1bW1hcnknXSBhcyBjb25zdCxcbiAgYWN0aXZpdHk6IChsaW1pdD86IG51bWJlcikgPT4gWy4uLnVzZXJLZXlzLm1lKCksICdhY3Rpdml0eScsIGxpbWl0XSBhcyBjb25zdCxcbiAgcG9zdHM6IChwYXJhbXM/OiB7cGFnZT86IG51bWJlcjsgbGltaXQ/OiBudW1iZXJ9KSA9PlxuICAgIFsuLi51c2VyS2V5cy5tZSgpLCAncG9zdHMnLCBwYXJhbXNdIGFzIGNvbnN0LFxuICBjbHViczogKCkgPT4gWy4uLnVzZXJLZXlzLm1lKCksICdjbHVicyddIGFzIGNvbnN0LFxuICBzdWJzY3JpcHRpb25zOiAoKSA9PiBbLi4udXNlcktleXMubWUoKSwgJ3N1YnNjcmlwdGlvbnMnXSBhcyBjb25zdCxcbiAgYmxvY2tlZDogKCkgPT4gWy4uLnVzZXJLZXlzLm1lKCksICdibG9ja2VkJ10gYXMgY29uc3QsXG4gIG93bmVkU3BvdHM6ICgpID0+IFsuLi51c2VyS2V5cy5tZSgpLCAnb3duZWQtc3BvdHMnXSBhcyBjb25zdCxcbiAgZmF2b3JpdGVzOiAoKSA9PiBbLi4udXNlcktleXMubWUoKSwgJ2Zhdm9yaXRlcyddIGFzIGNvbnN0LFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBwcm9maWxlXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUN1cnJlbnRVc2VyKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8VXNlcj4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8VXNlcj4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiB1c2VyS2V5cy5tZSgpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFVzZXI+ID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdbU0RLLVVTRVJTXSBGZXRjaGluZyAvdXNlcnMvbWUuLi4nKVxuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxVc2VyPj4oJy91c2Vycy9tZScpXG4gICAgICAgIGNvbnNvbGUubG9nKCdbU0RLLVVTRVJTXSBTdWNjZXNzOicsIHJlc3BvbnNlLnN0YXR1cylcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgY29uc3QgYXhpb3NFcnJvciA9IGVycm9yIGFzIHtcbiAgICAgICAgICByZXNwb25zZT86IHtzdGF0dXM6IG51bWJlcn1cbiAgICAgICAgICBjb25maWc/OiB7dXJsOiBzdHJpbmc7IGJhc2VVUkw/OiBzdHJpbmd9XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgJ1tTREstVVNFUlNdIEVycm9yOicsXG4gICAgICAgICAgYXhpb3NFcnJvci5yZXNwb25zZT8uc3RhdHVzLFxuICAgICAgICAgICdVUkw6JyxcbiAgICAgICAgICBheGlvc0Vycm9yLmNvbmZpZz8uYmFzZVVSTCxcbiAgICAgICAgICBheGlvc0Vycm9yLmNvbmZpZz8udXJsLFxuICAgICAgICApXG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBzdGF0c1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXJzL21lL3N0YXRzXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGVuZHBvaW50IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIEFQSS4gVXNlIHVzZVVzZXJTcG90c1N1bW1hcnkgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVzZXJTdGF0cyhcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlUXVlcnlPcHRpb25zPHtwb3N0czogbnVtYmVyOyByZXNwb25zZXM6IG51bWJlcjsgdXB2b3RlczogbnVtYmVyfT4sXG4gICAgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJ1xuICA+LFxuKTogVXNlUXVlcnlSZXN1bHQ8e3Bvc3RzOiBudW1iZXI7IHJlc3BvbnNlczogbnVtYmVyOyB1cHZvdGVzOiBudW1iZXJ9PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHVzZXJLZXlzLnN0YXRzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID1cbiAgICAgICAgYXdhaXQgY2xpZW50LmdldDxcbiAgICAgICAgICBBcGlSZXNwb25zZTx7cG9zdHM6IG51bWJlcjsgcmVzcG9uc2VzOiBudW1iZXI7IHVwdm90ZXM6IG51bWJlcn0+XG4gICAgICAgID4oJy91c2Vycy9tZS9zdGF0cycpXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBzcG90cyBzdW1tYXJ5IHdpdGggYWN0aXZpdHkgaW5kaWNhdG9yc1xuICpcbiAqIFJldHVybnMgbGlzdCBvZiBzcG90cyB3aGVyZSB1c2VyIGhhcyBwb3N0ZWQsIHdpdGg6XG4gKiAtIFBvc3QgY291bnQgcGVyIHNwb3RcbiAqIC0gVW5yZWFkIG1lc3NhZ2VzIGNvdW50XG4gKiAtIFBlbmRpbmcgcmVzcG9uc2VzIGNvdW50XG4gKiAtIExhc3QgYWN0aXZpdHkgdGltZXN0YW1wXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWUvc3BvdHMtc3VtbWFyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXNlclNwb3RzU3VtbWFyeShcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFNwb3RzU3VtbWFyeVJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxTcG90c1N1bW1hcnlSZXNwb25zZT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiB1c2VyS2V5cy5zcG90c1N1bW1hcnkoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPFNwb3RzU3VtbWFyeVJlc3BvbnNlPj4oXG4gICAgICAgICcvdXNlcnMvbWUvc3BvdHMtc3VtbWFyeScsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBhY3Rpdml0eVxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXJzL21lL2FjdGl2aXR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVc2VyQWN0aXZpdHkoXG4gIGxpbWl0OiBudW1iZXIgPSAxMCxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPHVua25vd25bXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8dW5rbm93bltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHVzZXJLZXlzLmFjdGl2aXR5KGxpbWl0KSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PihcbiAgICAgICAgYC91c2Vycy9tZS9hY3Rpdml0eT9saW1pdD0ke2xpbWl0fWAsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTx1bmtub3duPihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBwb3N0c1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXIvbWUvcG9zdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVzZXJQb3N0cyhcbiAgcGFyYW1zPzoge3BhZ2U/OiBudW1iZXI7IGxpbWl0PzogbnVtYmVyfSxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBvc3RbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHVzZXJLZXlzLnBvc3RzKHBhcmFtcyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKVxuICAgICAgaWYgKHBhcmFtcz8ubGltaXQpIHF1ZXJ5UGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcocGFyYW1zLmxpbWl0KSlcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oXG4gICAgICAgIGAvdXNlci9tZS9wb3N0cz8ke3F1ZXJ5UGFyYW1zfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxQb3N0PihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCBjdXJyZW50IHVzZXIncyBjbHVic1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXIvbWUvY2x1YnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVzZXJDbHVicyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPENsdWJbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8Q2x1YltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHVzZXJLZXlzLmNsdWJzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oJy91c2VyL21lL2NsdWJzJylcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPENsdWI+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGN1cnJlbnQgdXNlcidzIHNwb3Qgc3Vic2NyaXB0aW9uc1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXIvbWUvc3Vic2NyaXB0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXNlclN1YnNjcmlwdGlvbnMoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxTcG90U3Vic2NyaXB0aW9uW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFNwb3RTdWJzY3JpcHRpb25bXT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiB1c2VyS2V5cy5zdWJzY3JpcHRpb25zKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oXG4gICAgICAgICcvdXNlci9tZS9zdWJzY3JpcHRpb25zJyxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFNwb3RTdWJzY3JpcHRpb24+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGJsb2NrZWQgdXNlcnMgbGlzdFxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXIvbWUvYmxvY2tlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQmxvY2tlZFVzZXJzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8VXNlcltdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxVc2VyW10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogdXNlcktleXMuYmxvY2tlZCgpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9XG4gICAgICAgIGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8dW5rbm93bj4+KCcvdXNlci9tZS9ibG9ja2VkJylcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFVzZXI+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGN1cnJlbnQgdXNlcidzIG93bmVkIHNwb3RzIChmb3IgYnVzaW5lc3Mgb3duZXJzKVxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3VzZXJzL21lL293bmVkLXNwb3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VPd25lZFNwb3RzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8U3BvdFtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxTcG90W10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogdXNlcktleXMub3duZWRTcG90cygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8dW5rbm93bj4+KFxuICAgICAgICAnL3VzZXJzL21lL293bmVkLXNwb3RzJyxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFNwb3Q+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGN1cnJlbnQgdXNlcidzIGZhdm9yaXRlIHNwb3RzXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWUvZmF2b3JpdGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVc2VyRmF2b3JpdGVzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8RmF2b3JpdGVTcG90W10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PEZhdm9yaXRlU3BvdFtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHVzZXJLZXlzLmZhdm9yaXRlcygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8dW5rbm93bj4+KFxuICAgICAgICAnL3VzZXJzL21lL2Zhdm9yaXRlcycsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxGYXZvcml0ZVNwb3Q+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
@@ -1,109 +0,0 @@
1
- /**
2
- * Wallet Query Hooks
3
- *
4
- * TanStack Query hooks for wallet and redemption operations.
5
- */
6
- import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
7
- export type RedemptionStatus = 'PENDING' | 'REDEEMED' | 'EXPIRED' | 'CANCELLED' | 'VOID';
8
- export interface WalletProduct {
9
- id: string;
10
- name: string;
11
- type: string;
12
- imageUrl: string | null;
13
- }
14
- export interface WalletOrderItem {
15
- product: WalletProduct;
16
- quantity: number;
17
- unitPrice: number;
18
- }
19
- export interface WalletOrder {
20
- id: string;
21
- orderNumber: string;
22
- spotId: string;
23
- createdAt: string;
24
- spot: {
25
- id: string;
26
- name: string;
27
- slug: string;
28
- address: string | null;
29
- };
30
- }
31
- export interface WalletRedemption {
32
- id: string;
33
- qrCode: string;
34
- qrCodeUrl: string | null;
35
- status: RedemptionStatus;
36
- validFrom: string;
37
- validUntil: string;
38
- redeemedAt: string | null;
39
- createdAt: string;
40
- orderItem: WalletOrderItem & {
41
- order: WalletOrder;
42
- };
43
- }
44
- export interface RedemptionLookup extends WalletRedemption {
45
- redeemedBy: {
46
- id: string;
47
- name: string;
48
- } | null;
49
- spot: {
50
- id: string;
51
- name: string;
52
- } | null;
53
- orderItem: WalletOrderItem & {
54
- order: WalletOrder & {
55
- user: {
56
- id: string;
57
- name: string | null;
58
- avatarUrl: string | null;
59
- };
60
- };
61
- };
62
- }
63
- export interface WalletHistoryResponse {
64
- data: WalletRedemption[];
65
- meta: {
66
- total: number;
67
- page: number;
68
- limit: number;
69
- totalPages: number;
70
- };
71
- }
72
- export declare const walletKeys: {
73
- all: readonly ["wallet"];
74
- active: () => readonly ["wallet", "active"];
75
- history: (page?: number) => readonly ["wallet", "history", number | undefined];
76
- redemptions: () => readonly ["redemptions"];
77
- lookup: (qrCode: string) => readonly ["redemptions", "lookup", string];
78
- spotRedemptions: (spotId: string, page?: number) => readonly ["redemptions", "spot", string, number | undefined];
79
- };
80
- /**
81
- * Get user's active wallet items (pending redemptions)
82
- *
83
- * @endpoint GET /wallet
84
- */
85
- export declare function useWallet(options?: Omit<UseQueryOptions<WalletRedemption[]>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletRedemption[]>;
86
- /**
87
- * Get user's wallet history (all redemptions)
88
- *
89
- * @endpoint GET /wallet/history
90
- */
91
- export declare function useWalletHistory(params?: {
92
- page?: number;
93
- limit?: number;
94
- }, options?: Omit<UseQueryOptions<WalletHistoryResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletHistoryResponse>;
95
- /**
96
- * Lookup redemption by QR code (for scanner)
97
- *
98
- * @endpoint GET /redemptions/lookup/:qrCode
99
- */
100
- export declare function useRedemptionLookup(qrCode: string, options?: Omit<UseQueryOptions<RedemptionLookup>, 'queryKey' | 'queryFn'>): UseQueryResult<RedemptionLookup>;
101
- /**
102
- * Get spot's redemption history (for spot owner)
103
- *
104
- * @endpoint GET /spots/:spotId/redemptions
105
- */
106
- export declare function useSpotRedemptions(spotId: string, params?: {
107
- page?: number;
108
- limit?: number;
109
- }, options?: Omit<UseQueryOptions<WalletHistoryResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<WalletHistoryResponse>;
@@ -1,136 +0,0 @@
1
- "use strict";
2
- /**
3
- * Wallet Query Hooks
4
- *
5
- * TanStack Query hooks for wallet and redemption operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.walletKeys = void 0;
9
- exports.useWallet = useWallet;
10
- exports.useWalletHistory = useWalletHistory;
11
- exports.useRedemptionLookup = useRedemptionLookup;
12
- exports.useSpotRedemptions = useSpotRedemptions;
13
- const react_query_1 = require("@tanstack/react-query");
14
- const client_1 = require("../client");
15
- // ============================================================================
16
- // HELPER FUNCTIONS
17
- // ============================================================================
18
- function extractArrayData(data) {
19
- if (Array.isArray(data)) {
20
- return data;
21
- }
22
- if (data && typeof data === 'object' && 'data' in data) {
23
- const nested = data.data;
24
- if (Array.isArray(nested)) {
25
- return nested;
26
- }
27
- }
28
- return [];
29
- }
30
- function extractObjectData(data) {
31
- if (data &&
32
- typeof data === 'object' &&
33
- 'data' in data &&
34
- !Array.isArray(data)) {
35
- const nested = data.data;
36
- if (nested &&
37
- typeof nested === 'object' &&
38
- 'data' in nested &&
39
- !Array.isArray(nested)) {
40
- return nested.data;
41
- }
42
- return nested;
43
- }
44
- return data;
45
- }
46
- // ============================================================================
47
- // QUERY KEYS
48
- // ============================================================================
49
- exports.walletKeys = {
50
- all: ['wallet'],
51
- active: () => [...exports.walletKeys.all, 'active'],
52
- history: (page) => [...exports.walletKeys.all, 'history', page],
53
- redemptions: () => ['redemptions'],
54
- lookup: (qrCode) => [...exports.walletKeys.redemptions(), 'lookup', qrCode],
55
- spotRedemptions: (spotId, page) => [...exports.walletKeys.redemptions(), 'spot', spotId, page],
56
- };
57
- // ============================================================================
58
- // QUERY HOOKS
59
- // ============================================================================
60
- /**
61
- * Get user's active wallet items (pending redemptions)
62
- *
63
- * @endpoint GET /wallet
64
- */
65
- function useWallet(options) {
66
- return (0, react_query_1.useQuery)({
67
- queryKey: exports.walletKeys.active(),
68
- queryFn: async () => {
69
- const client = (0, client_1.getApiClient)();
70
- const response = await client.get('/wallet');
71
- return extractArrayData(response.data.data);
72
- },
73
- ...options,
74
- });
75
- }
76
- /**
77
- * Get user's wallet history (all redemptions)
78
- *
79
- * @endpoint GET /wallet/history
80
- */
81
- function useWalletHistory(params, options) {
82
- return (0, react_query_1.useQuery)({
83
- queryKey: exports.walletKeys.history(params?.page),
84
- queryFn: async () => {
85
- const client = (0, client_1.getApiClient)();
86
- const queryParams = new URLSearchParams();
87
- if (params?.page)
88
- queryParams.set('page', String(params.page));
89
- if (params?.limit)
90
- queryParams.set('limit', String(params.limit));
91
- const response = await client.get(`/wallet/history?${queryParams}`);
92
- return extractObjectData(response.data.data);
93
- },
94
- ...options,
95
- });
96
- }
97
- /**
98
- * Lookup redemption by QR code (for scanner)
99
- *
100
- * @endpoint GET /redemptions/lookup/:qrCode
101
- */
102
- function useRedemptionLookup(qrCode, options) {
103
- return (0, react_query_1.useQuery)({
104
- queryKey: exports.walletKeys.lookup(qrCode),
105
- queryFn: async () => {
106
- const client = (0, client_1.getApiClient)();
107
- const response = await client.get(`/redemptions/lookup/${qrCode}`);
108
- return extractObjectData(response.data.data);
109
- },
110
- enabled: !!qrCode && qrCode.length > 0,
111
- ...options,
112
- });
113
- }
114
- /**
115
- * Get spot's redemption history (for spot owner)
116
- *
117
- * @endpoint GET /spots/:spotId/redemptions
118
- */
119
- function useSpotRedemptions(spotId, params, options) {
120
- return (0, react_query_1.useQuery)({
121
- queryKey: exports.walletKeys.spotRedemptions(spotId, params?.page),
122
- queryFn: async () => {
123
- const client = (0, client_1.getApiClient)();
124
- const queryParams = new URLSearchParams();
125
- if (params?.page)
126
- queryParams.set('page', String(params.page));
127
- if (params?.limit)
128
- queryParams.set('limit', String(params.limit));
129
- const response = await client.get(`/spots/${spotId}/redemptions?${queryParams}`);
130
- return extractObjectData(response.data.data);
131
- },
132
- enabled: !!spotId,
133
- ...options,
134
- });
135
- }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9xdWVyaWVzL3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBb0pILDhCQVlDO0FBT0QsNENBa0JDO0FBT0Qsa0RBZ0JDO0FBT0QsZ0RBb0JDO0FBek9ELHVEQUk4QjtBQUU5QixzQ0FBc0M7QUErRXRDLCtFQUErRTtBQUMvRSxtQkFBbUI7QUFDbkIsK0VBQStFO0FBRS9FLFNBQVMsZ0JBQWdCLENBQUksSUFBYTtJQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFDRCxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFJLElBQXdCLENBQUMsSUFBSSxDQUFBO1FBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFJLElBQWE7SUFDekMsSUFDRSxJQUFJO1FBQ0osT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixNQUFNLElBQUksSUFBSTtRQUNkLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDcEIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFJLElBQXdCLENBQUMsSUFBSSxDQUFBO1FBQzdDLElBQ0UsTUFBTTtZQUNOLE9BQU8sTUFBTSxLQUFLLFFBQVE7WUFDMUIsTUFBTSxJQUFJLE1BQU07WUFDaEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUN0QixDQUFDO1lBQ0QsT0FBUSxN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QUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2pCLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdhbGxldCBRdWVyeSBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciB3YWxsZXQgYW5kIHJlZGVtcHRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7dHlwZSBBcGlSZXNwb25zZX0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFJlZGVtcHRpb25TdGF0dXMgPSAnUEVORElORycgfCAnUkVERUVNRUQnIHwgJ0VYUElSRUQnIHwgJ0NBTkNFTExFRCcgfCAnVk9JRCdcblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRQcm9kdWN0IHtcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgdHlwZTogc3RyaW5nXG4gIGltYWdlVXJsOiBzdHJpbmcgfCBudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0T3JkZXJJdGVtIHtcbiAgcHJvZHVjdDogV2FsbGV0UHJvZHVjdFxuICBxdWFudGl0eTogbnVtYmVyXG4gIHVuaXRQcmljZTogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2FsbGV0T3JkZXIge1xuICBpZDogc3RyaW5nXG4gIG9yZGVyTnVtYmVyOiBzdHJpbmdcbiAgc3BvdElkOiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBzdHJpbmdcbiAgc3BvdDoge1xuICAgIGlkOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBzbHVnOiBzdHJpbmdcbiAgICBhZGRyZXNzOiBzdHJpbmcgfCBudWxsXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRSZWRlbXB0aW9uIHtcbiAgaWQ6IHN0cmluZ1xuICBxckNvZGU6IHN0cmluZ1xuICBxckNvZGVVcmw6IHN0cmluZyB8IG51bGxcbiAgc3RhdHVzOiBSZWRlbXB0aW9uU3RhdHVzXG4gIHZhbGlkRnJvbTogc3RyaW5nXG4gIHZhbGlkVW50aWw6IHN0cmluZ1xuICByZWRlZW1lZEF0OiBzdHJpbmcgfCBudWxsXG4gIGNyZWF0ZWRBdDogc3RyaW5nXG4gIG9yZGVySXRlbTogV2FsbGV0T3JkZXJJdGVtICYge1xuICAgIG9yZGVyOiBXYWxsZXRPcmRlclxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVkZW1wdGlvbkxvb2t1cCBleHRlbmRzIFdhbGxldFJlZGVtcHRpb24ge1xuICByZWRlZW1lZEJ5OiB7XG4gICAgaWQ6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICB9IHwgbnVsbFxuICBzcG90OiB7XG4gICAgaWQ6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICB9IHwgbnVsbFxuICBvcmRlckl0ZW06IFdhbGxldE9yZGVySXRlbSAmIHtcbiAgICBvcmRlcjogV2FsbGV0T3JkZXIgJiB7XG4gICAgICB1c2VyOiB7XG4gICAgICAgIGlkOiBzdHJpbmdcbiAgICAgICAgbmFtZTogc3RyaW5nIHwgbnVsbFxuICAgICAgICBhdmF0YXJVcmw6IHN0cmluZyB8IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXYWxsZXRIaXN0b3J5UmVzcG9uc2Uge1xuICBkYXRhOiBXYWxsZXRSZWRlbXB0aW9uW11cbiAgbWV0YToge1xuICAgIHRvdGFsOiBudW1iZXJcbiAgICBwYWdlOiBudW1iZXJcbiAgICBsaW1pdDogbnVtYmVyXG4gICAgdG90YWxQYWdlczogbnVtYmVyXG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5mdW5jdGlvbiBleHRyYWN0QXJyYXlEYXRhPFQ+KGRhdGE6IHVua25vd24pOiBUW10ge1xuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhXG4gIH1cbiAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdkYXRhJyBpbiBkYXRhKSB7XG4gICAgY29uc3QgbmVzdGVkID0gKGRhdGEgYXMge2RhdGE6IHVua25vd259KS5kYXRhXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobmVzdGVkKSkge1xuICAgICAgcmV0dXJuIG5lc3RlZFxuICAgIH1cbiAgfVxuICByZXR1cm4gW11cbn1cblxuZnVuY3Rpb24gZXh0cmFjdE9iamVjdERhdGE8VD4oZGF0YTogdW5rbm93bik6IFQge1xuICBpZiAoXG4gICAgZGF0YSAmJlxuICAgIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICdkYXRhJyBpbiBkYXRhICYmXG4gICAgIUFycmF5LmlzQXJyYXkoZGF0YSlcbiAgKSB7XG4gICAgY29uc3QgbmVzdGVkID0gKGRhdGEgYXMge2RhdGE6IHVua25vd259KS5kYXRhXG4gICAgaWYgKFxuICAgICAgbmVzdGVkICYmXG4gICAgICB0eXBlb2YgbmVzdGVkID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2RhdGEnIGluIG5lc3RlZCAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkobmVzdGVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIChuZXN0ZWQgYXMge2RhdGE6IFR9KS5kYXRhXG4gICAgfVxuICAgIHJldHVybiBuZXN0ZWQgYXMgVFxuICB9XG4gIHJldHVybiBkYXRhIGFzIFRcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgS0VZU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3Qgd2FsbGV0S2V5cyA9IHtcbiAgYWxsOiBbJ3dhbGxldCddIGFzIGNvbnN0LFxuICBhY3RpdmU6ICgpID0+IFsuLi53YWxsZXRLZXlzLmFsbCwgJ2FjdGl2ZSddIGFzIGNvbnN0LFxuICBoaXN0b3J5OiAocGFnZT86IG51bWJlcikgPT4gWy4uLndhbGxldEtleXMuYWxsLCAnaGlzdG9yeScsIHBhZ2VdIGFzIGNvbnN0LFxuICByZWRlbXB0aW9uczogKCkgPT4gWydyZWRlbXB0aW9ucyddIGFzIGNvbnN0LFxuICBsb29rdXA6IChxckNvZGU6IHN0cmluZykgPT4gWy4uLndhbGxldEtleXMucmVkZW1wdGlvbnMoKSwgJ2xvb2t1cCcsIHFyQ29kZV0gYXMgY29uc3QsXG4gIHNwb3RSZWRlbXB0aW9uczogKHNwb3RJZDogc3RyaW5nLCBwYWdlPzogbnVtYmVyKSA9PlxuICAgIFsuLi53YWxsZXRLZXlzLnJlZGVtcHRpb25zKCksICdzcG90Jywgc3BvdElkLCBwYWdlXSBhcyBjb25zdCxcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgdXNlcidzIGFjdGl2ZSB3YWxsZXQgaXRlbXMgKHBlbmRpbmcgcmVkZW1wdGlvbnMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvd2FsbGV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VXYWxsZXQoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxXYWxsZXRSZWRlbXB0aW9uW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFdhbGxldFJlZGVtcHRpb25bXT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiB3YWxsZXRLZXlzLmFjdGl2ZSgpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFdhbGxldFJlZGVtcHRpb25bXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oJy93YWxsZXQnKVxuICAgICAgcmV0dXJuIGV4dHJhY3RBcnJheURhdGE8V2FsbGV0UmVkZW1wdGlvbj4ocmVzcG9uc2UuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgdXNlcidzIHdhbGxldCBoaXN0b3J5IChhbGwgcmVkZW1wdGlvbnMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvd2FsbGV0L2hpc3RvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVdhbGxldEhpc3RvcnkoXG4gIHBhcmFtcz86IHtwYWdlPzogbnVtYmVyOyBsaW1pdD86IG51bWJlcn0sXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxXYWxsZXRIaXN0b3J5UmVzcG9uc2U+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFdhbGxldEhpc3RvcnlSZXNwb25zZT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiB3YWxsZXRLZXlzLmhpc3RvcnkocGFyYW1zPy5wYWdlKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxXYWxsZXRIaXN0b3J5UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSlcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8V2FsbGV0SGlzdG9yeVJlc3BvbnNlPj4oXG4gICAgICAgIGAvd2FsbGV0L2hpc3Rvcnk/JHtxdWVyeVBhcmFtc31gLFxuICAgICAgKVxuICAgICAgcmV0dXJuIGV4dHJhY3RPYmplY3REYXRhPFdhbGxldEhpc3RvcnlSZXNwb25zZT4ocmVzcG9uc2UuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBMb29rdXAgcmVkZW1wdGlvbiBieSBRUiBjb2RlIChmb3Igc2Nhbm5lcilcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9yZWRlbXB0aW9ucy9sb29rdXAvOnFyQ29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmVkZW1wdGlvbkxvb2t1cChcbiAgcXJDb2RlOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxSZWRlbXB0aW9uTG9va3VwPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxSZWRlbXB0aW9uTG9va3VwPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHdhbGxldEtleXMubG9va3VwKHFyQ29kZSksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UmVkZW1wdGlvbkxvb2t1cD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oXG4gICAgICAgIGAvcmVkZW1wdGlvbnMvbG9va3VwLyR7cXJDb2RlfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdE9iamVjdERhdGE8UmVkZW1wdGlvbkxvb2t1cD4ocmVzcG9uc2UuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgZW5hYmxlZDogISFxckNvZGUgJiYgcXJDb2RlLmxlbmd0aCA+IDAsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgc3BvdCdzIHJlZGVtcHRpb24gaGlzdG9yeSAoZm9yIHNwb3Qgb3duZXIpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvc3BvdHMvOnNwb3RJZC9yZWRlbXB0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3BvdFJlZGVtcHRpb25zKFxuICBzcG90SWQ6IHN0cmluZyxcbiAgcGFyYW1zPzoge3BhZ2U/OiBudW1iZXI7IGxpbWl0PzogbnVtYmVyfSxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFdhbGxldEhpc3RvcnlSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8V2FsbGV0SGlzdG9yeVJlc3BvbnNlPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHdhbGxldEtleXMuc3BvdFJlZGVtcHRpb25zKHNwb3RJZCwgcGFyYW1zPy5wYWdlKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxXYWxsZXRIaXN0b3J5UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSlcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8V2FsbGV0SGlzdG9yeVJlc3BvbnNlPj4oXG4gICAgICAgIGAvc3BvdHMvJHtzcG90SWR9L3JlZGVtcHRpb25zPyR7cXVlcnlQYXJhbXN9YCxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0T2JqZWN0RGF0YTxXYWxsZXRIaXN0b3J5UmVzcG9uc2U+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhc3BvdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export { productsService, ordersService, paymentsService } from './marketplace';
2
- export type { CreateProductInput, UpdateProductInput, CreateOrderInput, } from './marketplace';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.paymentsService = exports.ordersService = exports.productsService = void 0;
4
- var marketplace_1 = require("./marketplace");
5
- Object.defineProperty(exports, "productsService", { enumerable: true, get: function () { return marketplace_1.productsService; } });
6
- Object.defineProperty(exports, "ordersService", { enumerable: true, get: function () { return marketplace_1.ordersService; } });
7
- Object.defineProperty(exports, "paymentsService", { enumerable: true, get: function () { return marketplace_1.paymentsService; } });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFnRjtBQUF2RSw4R0FBQSxlQUFlLE9BQUE7QUFBRSw0R0FBQSxhQUFhLE9BQUE7QUFBRSw4R0FBQSxlQUFlLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBwcm9kdWN0c1NlcnZpY2UsIG9yZGVyc1NlcnZpY2UsIHBheW1lbnRzU2VydmljZSB9IGZyb20gJy4vbWFya2V0cGxhY2UnO1xuZXhwb3J0IHR5cGUge1xuICBDcmVhdGVQcm9kdWN0SW5wdXQsXG4gIFVwZGF0ZVByb2R1Y3RJbnB1dCxcbiAgQ3JlYXRlT3JkZXJJbnB1dCxcbn0gZnJvbSAnLi9tYXJrZXRwbGFjZSc7XG4iXX0=