@spotsdev/sdk 1.4.0 → 1.5.2

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 (67) hide show
  1. package/dist/index.cjs +2166 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +1656 -0
  4. package/dist/index.d.ts +1655 -36
  5. package/dist/index.js +2021 -64
  6. package/dist/index.js.map +1 -0
  7. package/package.json +22 -6
  8. package/src/api/entities.ts +171 -170
  9. package/src/api/mutations/products.ts +18 -2
  10. package/src/api/queries/index.ts +4 -0
  11. package/src/api/queries/payments.ts +67 -0
  12. package/dist/api/client.d.ts +0 -12
  13. package/dist/api/client.js +0 -72
  14. package/dist/api/entities.d.ts +0 -305
  15. package/dist/api/entities.js +0 -13
  16. package/dist/api/mutations/clubs.d.ts +0 -47
  17. package/dist/api/mutations/clubs.js +0 -97
  18. package/dist/api/mutations/conversations.d.ts +0 -45
  19. package/dist/api/mutations/conversations.js +0 -114
  20. package/dist/api/mutations/index.d.ts +0 -14
  21. package/dist/api/mutations/index.js +0 -40
  22. package/dist/api/mutations/notifications.d.ts +0 -38
  23. package/dist/api/mutations/notifications.js +0 -64
  24. package/dist/api/mutations/orders.d.ts +0 -73
  25. package/dist/api/mutations/orders.js +0 -114
  26. package/dist/api/mutations/posts.d.ts +0 -123
  27. package/dist/api/mutations/posts.js +0 -242
  28. package/dist/api/mutations/products.d.ts +0 -81
  29. package/dist/api/mutations/products.js +0 -98
  30. package/dist/api/mutations/redemptions.d.ts +0 -33
  31. package/dist/api/mutations/redemptions.js +0 -63
  32. package/dist/api/mutations/spots.d.ts +0 -93
  33. package/dist/api/mutations/spots.js +0 -167
  34. package/dist/api/mutations/users.d.ts +0 -73
  35. package/dist/api/mutations/users.js +0 -175
  36. package/dist/api/queries/auth.d.ts +0 -37
  37. package/dist/api/queries/auth.js +0 -61
  38. package/dist/api/queries/clubs.d.ts +0 -52
  39. package/dist/api/queries/clubs.js +0 -116
  40. package/dist/api/queries/conversations.d.ts +0 -52
  41. package/dist/api/queries/conversations.js +0 -83
  42. package/dist/api/queries/index.d.ts +0 -28
  43. package/dist/api/queries/index.js +0 -69
  44. package/dist/api/queries/misc.d.ts +0 -30
  45. package/dist/api/queries/misc.js +0 -91
  46. package/dist/api/queries/notifications.d.ts +0 -34
  47. package/dist/api/queries/notifications.js +0 -62
  48. package/dist/api/queries/orders.d.ts +0 -45
  49. package/dist/api/queries/orders.js +0 -93
  50. package/dist/api/queries/posts.d.ts +0 -92
  51. package/dist/api/queries/posts.js +0 -233
  52. package/dist/api/queries/products.d.ts +0 -48
  53. package/dist/api/queries/products.js +0 -87
  54. package/dist/api/queries/spots.d.ts +0 -93
  55. package/dist/api/queries/spots.js +0 -250
  56. package/dist/api/queries/templates.d.ts +0 -39
  57. package/dist/api/queries/templates.js +0 -81
  58. package/dist/api/queries/users.d.ts +0 -104
  59. package/dist/api/queries/users.js +0 -235
  60. package/dist/api/queries/wallet.d.ts +0 -109
  61. package/dist/api/queries/wallet.js +0 -136
  62. package/dist/api/services/index.d.ts +0 -2
  63. package/dist/api/services/index.js +0 -8
  64. package/dist/api/services/marketplace.d.ts +0 -129
  65. package/dist/api/services/marketplace.js +0 -168
  66. package/dist/api/types.d.ts +0 -57
  67. package/dist/api/types.js +0 -33
@@ -1,305 +0,0 @@
1
- /**
2
- * Spots SDK Entity Types
3
- *
4
- * These types mirror the Prisma schema entities but without @prisma/client dependency.
5
- * This allows the SDK to work in React Native where Prisma is not available.
6
- *
7
- * IMPORTANT: Enum types are imported from @spotsdev/types (generated from OpenAPI spec).
8
- * types.ts handles re-exporting from spots-types - this file only defines entity interfaces
9
- * and SDK-specific types not in the OpenAPI spec.
10
- */
11
- import type { SpotType, AccountStatus, PostType, ResponseStatus, ReportReason, ProductResponseDto, ClaimStatus, OrderStatus, NotificationType } from '@spotsdev/types';
12
- export type SpotPostType = PostType;
13
- export type ReportStatus = 'PENDING' | 'REVIEWED' | 'RESOLVED' | 'DISMISSED';
14
- export interface UserVibe {
15
- id: string;
16
- name: string;
17
- emoji: string | null;
18
- slug?: string;
19
- category?: string;
20
- }
21
- export interface User {
22
- id: string;
23
- phone: string | null;
24
- email: string | null;
25
- name: string | null;
26
- bio: string | null;
27
- avatarUrl: string | null;
28
- status: AccountStatus;
29
- onboardingCompleted: boolean;
30
- vibes?: UserVibe[];
31
- lastActiveAt: Date | null;
32
- createdAt: Date;
33
- updatedAt: Date;
34
- }
35
- export interface Spot {
36
- id: string;
37
- name: string;
38
- slug: string;
39
- description: string | null;
40
- address: string | null;
41
- city: string | null;
42
- country: string | null;
43
- latitude: number | null;
44
- longitude: number | null;
45
- lat?: number | null;
46
- lng?: number | null;
47
- type: SpotType;
48
- googlePlaceId: string | null;
49
- website: string | null;
50
- phone: string | null;
51
- imageUrl: string | null;
52
- ownerId: string | null;
53
- isVerified: boolean;
54
- marketplaceEnabled: boolean;
55
- createdAt: Date | string;
56
- updatedAt: Date | string;
57
- }
58
- export interface SpotPost {
59
- id: string;
60
- spotId: string;
61
- userId: string;
62
- postType: SpotPostType;
63
- title: string;
64
- content: string | null;
65
- emoji: string | null;
66
- expiresAt: Date | null;
67
- status: 'ACTIVE' | 'FULFILLED' | 'EXPIRED' | 'DELETED';
68
- upvoteCount: number;
69
- responseCount: number;
70
- replyCount: number;
71
- createdAt: Date;
72
- updatedAt: Date;
73
- user?: User;
74
- spot?: Spot;
75
- }
76
- export interface PostReply {
77
- id: string;
78
- postId: string;
79
- userId: string;
80
- content: string;
81
- createdAt: Date;
82
- updatedAt: Date;
83
- user?: User;
84
- }
85
- export interface PostResponse {
86
- id: string;
87
- postId: string;
88
- userId: string;
89
- note: string | null;
90
- status: ResponseStatus;
91
- createdAt: Date;
92
- updatedAt: Date;
93
- user?: User;
94
- post?: SpotPost;
95
- }
96
- export interface PostUpvote {
97
- id: string;
98
- postId: string;
99
- userId: string;
100
- createdAt: Date;
101
- }
102
- /**
103
- * PostUpvoter - user who upvoted a post (from /posts/:id/upvotes endpoint)
104
- */
105
- export interface PostUpvoter {
106
- id: string;
107
- userId: string;
108
- name: string | null;
109
- avatarUrl: string | null;
110
- createdAt: Date;
111
- }
112
- /**
113
- * PostUpvotesResponse - response from /posts/:id/upvotes endpoint
114
- */
115
- export interface PostUpvotesResponse {
116
- data: PostUpvoter[];
117
- meta: {
118
- total: number;
119
- limit: number;
120
- offset: number;
121
- hasMore: boolean;
122
- currentUserUpvoted: boolean;
123
- isPostAuthor: boolean;
124
- };
125
- }
126
- export interface PostReport {
127
- id: string;
128
- postId: string;
129
- userId: string;
130
- reason: ReportReason;
131
- details: string | null;
132
- status: ReportStatus;
133
- createdAt: Date;
134
- updatedAt: Date;
135
- }
136
- export interface Club {
137
- id: string;
138
- name: string;
139
- slug: string;
140
- description: string | null;
141
- imageUrl: string | null;
142
- isPrivate: boolean;
143
- createdById: string;
144
- createdAt: Date;
145
- updatedAt: Date;
146
- }
147
- export interface ClubMember {
148
- id: string;
149
- clubId: string;
150
- userId: string;
151
- role: 'MEMBER' | 'ADMIN' | 'OWNER';
152
- joinedAt: Date;
153
- }
154
- export interface Conversation {
155
- id: string;
156
- createdAt: Date;
157
- updatedAt: Date;
158
- participants?: User[];
159
- messages?: Message[];
160
- }
161
- export interface Message {
162
- id: string;
163
- conversationId: string;
164
- senderId: string;
165
- content: string;
166
- createdAt: Date;
167
- sender?: User;
168
- }
169
- export interface Notification {
170
- id: string;
171
- userId: string;
172
- type: NotificationType;
173
- title: string;
174
- body: string | null;
175
- data: Record<string, unknown> | null;
176
- isRead: boolean;
177
- createdAt: Date;
178
- }
179
- export interface PostTemplate {
180
- id: string;
181
- postType: SpotPostType;
182
- emoji: string;
183
- title: string;
184
- placeholder: string | null;
185
- isActive: boolean;
186
- sortOrder: number;
187
- createdAt: Date;
188
- updatedAt: Date;
189
- }
190
- export interface Vibe {
191
- id: string;
192
- name: string;
193
- emoji: string | null;
194
- createdAt: Date;
195
- }
196
- export interface Interest {
197
- id: string;
198
- name: string;
199
- emoji: string | null;
200
- category: string | null;
201
- createdAt: Date;
202
- }
203
- export interface Intention {
204
- id: string;
205
- name: string;
206
- emoji: string | null;
207
- createdAt: Date;
208
- }
209
- export interface LifeSituation {
210
- id: string;
211
- name: string;
212
- emoji: string | null;
213
- createdAt: Date;
214
- }
215
- export interface FavoriteSpot {
216
- id: string;
217
- userId: string;
218
- spotId: string;
219
- createdAt: Date;
220
- spot?: Spot;
221
- }
222
- export interface SpotImage {
223
- id: string;
224
- spotId: string;
225
- url: string;
226
- caption: string | null;
227
- sortOrder: number;
228
- createdAt: Date;
229
- }
230
- export interface SpotVibe {
231
- id: string;
232
- spotId: string;
233
- vibeId: string;
234
- vibe?: Vibe;
235
- }
236
- export interface SpotIntention {
237
- id: string;
238
- spotId: string;
239
- intentionId: string;
240
- intention?: Intention;
241
- }
242
- export interface SpotClaim {
243
- id: string;
244
- spotId: string;
245
- userId: string;
246
- status: ClaimStatus;
247
- verificationMethod: string | null;
248
- createdAt: Date;
249
- updatedAt: Date;
250
- }
251
- export interface SpotSubscription {
252
- id: string;
253
- spotId: string;
254
- userId: string;
255
- createdAt: Date;
256
- spot?: Spot;
257
- }
258
- export interface City {
259
- id: string;
260
- name: string;
261
- country: string;
262
- latitude: number;
263
- longitude: number;
264
- timezone: string | null;
265
- createdAt: Date;
266
- }
267
- /**
268
- * Paginated response with meta information
269
- */
270
- export interface PaginatedResponse<T> {
271
- data: T[];
272
- meta: PaginationMeta;
273
- }
274
- export interface PaginationMeta {
275
- total: number;
276
- page: number;
277
- limit: number;
278
- totalPages: number;
279
- hasNextPage: boolean;
280
- hasPreviousPage: boolean;
281
- }
282
- export type Product = ProductResponseDto;
283
- export interface Order {
284
- id: string;
285
- spotId: string;
286
- userId: string;
287
- status: OrderStatus;
288
- subtotal: number;
289
- tax: number;
290
- total: number;
291
- currency: string;
292
- notes: string | null;
293
- metadata: Record<string, unknown> | null;
294
- createdAt: Date;
295
- updatedAt: Date;
296
- }
297
- export interface OrderItem {
298
- id: string;
299
- orderId: string;
300
- productId: string;
301
- quantity: number;
302
- unitPrice: number;
303
- total: number;
304
- createdAt: Date;
305
- }
@@ -1,13 +0,0 @@
1
- "use strict";
2
- /**
3
- * Spots SDK Entity Types
4
- *
5
- * These types mirror the Prisma schema entities but without @prisma/client dependency.
6
- * This allows the SDK to work in React Native where Prisma is not available.
7
- *
8
- * IMPORTANT: Enum types are imported from @spotsdev/types (generated from OpenAPI spec).
9
- * types.ts handles re-exporting from spots-types - this file only defines entity interfaces
10
- * and SDK-specific types not in the OpenAPI spec.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2VudGl0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7O0dBU0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwb3RzIFNESyBFbnRpdHkgVHlwZXNcbiAqXG4gKiBUaGVzZSB0eXBlcyBtaXJyb3IgdGhlIFByaXNtYSBzY2hlbWEgZW50aXRpZXMgYnV0IHdpdGhvdXQgQHByaXNtYS9jbGllbnQgZGVwZW5kZW5jeS5cbiAqIFRoaXMgYWxsb3dzIHRoZSBTREsgdG8gd29yayBpbiBSZWFjdCBOYXRpdmUgd2hlcmUgUHJpc21hIGlzIG5vdCBhdmFpbGFibGUuXG4gKlxuICogSU1QT1JUQU5UOiBFbnVtIHR5cGVzIGFyZSBpbXBvcnRlZCBmcm9tIEBzcG90c2Rldi90eXBlcyAoZ2VuZXJhdGVkIGZyb20gT3BlbkFQSSBzcGVjKS5cbiAqIHR5cGVzLnRzIGhhbmRsZXMgcmUtZXhwb3J0aW5nIGZyb20gc3BvdHMtdHlwZXMgLSB0aGlzIGZpbGUgb25seSBkZWZpbmVzIGVudGl0eSBpbnRlcmZhY2VzXG4gKiBhbmQgU0RLLXNwZWNpZmljIHR5cGVzIG5vdCBpbiB0aGUgT3BlbkFQSSBzcGVjLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIElNUE9SVFMgRlJPTSBAc3BvdHNkZXYvdHlwZXMgKHVzZWQgaW4gaW50ZXJmYWNlcyBiZWxvdylcbi8vIFRoZXNlIGFyZSBOT1QgcmUtZXhwb3J0ZWQgLSB0eXBlcy50cyBoYW5kbGVzIHRoZSByZS1leHBvcnQgZnJvbSBzcG90cy10eXBlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuaW1wb3J0IHR5cGUge1xuICBTcG90VHlwZSxcbiAgQWNjb3VudFN0YXR1cyxcbiAgUG9zdFR5cGUsXG4gIFBvc3RTdGF0dXMsXG4gIFJlc3BvbnNlU3RhdHVzLFxuICBSZXBvcnRSZWFzb24sXG4gIFByb2R1Y3RUeXBlLFxuICBQcm9kdWN0U3RhdHVzLFxuICBQcm9kdWN0UmVzcG9uc2VEdG8sXG4gIENsYWltU3RhdHVzLFxuICBPcmRlclN0YXR1cyxcbiAgTm90aWZpY2F0aW9uVHlwZSxcbn0gZnJvbSAnQHNwb3RzZGV2L3R5cGVzJ1xuXG4vLyBUeXBlIGFsaWFzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAtIFNESyB1c2VzIFNwb3RQb3N0VHlwZSwgQVBJIHVzZXMgUG9zdFR5cGVcbmV4cG9ydCB0eXBlIFNwb3RQb3N0VHlwZSA9IFBvc3RUeXBlXG5cbi8vIEVudW1zIG5vdCB5ZXQgaW4gT3BlbkFQSSBzcGVjIERUT3MgLSB0aGVzZSBzdGF5IGxvY2FsIHVudGlsIEFQSSBleHBvc2VzIHRoZW1cbmV4cG9ydCB0eXBlIFJlcG9ydFN0YXR1cyA9ICdQRU5ESU5HJyB8ICdSRVZJRVdFRCcgfCAnUkVTT0xWRUQnIHwgJ0RJU01JU1NFRCdcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRU5USVRZIElOVEVSRkFDRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyVmliZSB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIHNsdWc/OiBzdHJpbmdcbiAgY2F0ZWdvcnk/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcbiAgaWQ6IHN0cmluZ1xuICBwaG9uZTogc3RyaW5nIHwgbnVsbFxuICBlbWFpbDogc3RyaW5nIHwgbnVsbFxuICBuYW1lOiBzdHJpbmcgfCBudWxsXG4gIGJpbzogc3RyaW5nIHwgbnVsbFxuICBhdmF0YXJVcmw6IHN0cmluZyB8IG51bGxcbiAgc3RhdHVzOiBBY2NvdW50U3RhdHVzXG4gIG9uYm9hcmRpbmdDb21wbGV0ZWQ6IGJvb2xlYW5cbiAgdmliZXM/OiBVc2VyVmliZVtdXG4gIGxhc3RBY3RpdmVBdDogRGF0ZSB8IG51bGxcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3Qge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzbHVnOiBzdHJpbmdcbiAgZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGxcbiAgYWRkcmVzczogc3RyaW5nIHwgbnVsbFxuICBjaXR5OiBzdHJpbmcgfCBudWxsXG4gIGNvdW50cnk6IHN0cmluZyB8IG51bGxcbiAgbGF0aXR1ZGU6IG51bWJlciB8IG51bGxcbiAgbG9uZ2l0dWRlOiBudW1iZXIgfCBudWxsXG4gIC8vIEFsaWFzZXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gIGxhdD86IG51bWJlciB8IG51bGxcbiAgbG5nPzogbnVtYmVyIHwgbnVsbFxuICB0eXBlOiBTcG90VHlwZVxuICBnb29nbGVQbGFjZUlkOiBzdHJpbmcgfCBudWxsXG4gIHdlYnNpdGU6IHN0cmluZyB8IG51bGxcbiAgcGhvbmU6IHN0cmluZyB8IG51bGxcbiAgaW1hZ2VVcmw6IHN0cmluZyB8IG51bGxcbiAgb3duZXJJZDogc3RyaW5nIHwgbnVsbFxuICBpc1ZlcmlmaWVkOiBib29sZWFuXG4gIG1hcmtldHBsYWNlRW5hYmxlZDogYm9vbGVhblxuICAvLyBEYXRlcyBhcyBzdHJpbmdzIGZvciBKU09OIHNlcmlhbGl6YXRpb24gY29tcGF0aWJpbGl0eVxuICBjcmVhdGVkQXQ6IERhdGUgfCBzdHJpbmdcbiAgdXBkYXRlZEF0OiBEYXRlIHwgc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdFBvc3Qge1xuICBpZDogc3RyaW5nXG4gIHNwb3RJZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIHBvc3RUeXBlOiBTcG90UG9zdFR5cGVcbiAgdGl0bGU6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmcgfCBudWxsXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIGV4cGlyZXNBdDogRGF0ZSB8IG51bGxcbiAgc3RhdHVzOiAnQUNUSVZFJyB8ICdGVUxGSUxMRUQnIHwgJ0VYUElSRUQnIHwgJ0RFTEVURUQnXG4gIHVwdm90ZUNvdW50OiBudW1iZXJcbiAgcmVzcG9uc2VDb3VudDogbnVtYmVyXG4gIHJlcGx5Q291bnQ6IG51bWJlclxuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG4gIC8vIFJlbGF0aW9ucyAob3B0aW9uYWwsIHBvcHVsYXRlZCBieSBBUEkpXG4gIHVzZXI/OiBVc2VyXG4gIHNwb3Q/OiBTcG90XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFJlcGx5IHtcbiAgaWQ6IHN0cmluZ1xuICBwb3N0SWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICBjb250ZW50OiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxuICB1c2VyPzogVXNlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RSZXNwb25zZSB7XG4gIGlkOiBzdHJpbmdcbiAgcG9zdElkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgbm90ZTogc3RyaW5nIHwgbnVsbFxuICBzdGF0dXM6IFJlc3BvbnNlU3RhdHVzXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ6IERhdGVcbiAgdXNlcj86IFVzZXJcbiAgcG9zdD86IFNwb3RQb3N0XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFVwdm90ZSB7XG4gIGlkOiBzdHJpbmdcbiAgcG9zdElkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG59XG5cbi8qKlxuICogUG9zdFVwdm90ZXIgLSB1c2VyIHdobyB1cHZvdGVkIGEgcG9zdCAoZnJvbSAvcG9zdHMvOmlkL3Vwdm90ZXMgZW5kcG9pbnQpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFVwdm90ZXIge1xuICBpZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZyB8IG51bGxcbiAgYXZhdGFyVXJsOiBzdHJpbmcgfCBudWxsXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG4vKipcbiAqIFBvc3RVcHZvdGVzUmVzcG9uc2UgLSByZXNwb25zZSBmcm9tIC9wb3N0cy86aWQvdXB2b3RlcyBlbmRwb2ludFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RVcHZvdGVzUmVzcG9uc2Uge1xuICBkYXRhOiBQb3N0VXB2b3RlcltdXG4gIG1ldGE6IHtcbiAgICB0b3RhbDogbnVtYmVyXG4gICAgbGltaXQ6IG51bWJlclxuICAgIG9mZnNldDogbnVtYmVyXG4gICAgaGFzTW9yZTogYm9vbGVhblxuICAgIGN1cnJlbnRVc2VyVXB2b3RlZDogYm9vbGVhblxuICAgIGlzUG9zdEF1dGhvcjogYm9vbGVhblxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9zdFJlcG9ydCB7XG4gIGlkOiBzdHJpbmdcbiAgcG9zdElkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcmVhc29uOiBSZXBvcnRSZWFzb25cbiAgZGV0YWlsczogc3RyaW5nIHwgbnVsbFxuICBzdGF0dXM6IFJlcG9ydFN0YXR1c1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1YiB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIHNsdWc6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbFxuICBpbWFnZVVybDogc3RyaW5nIHwgbnVsbFxuICBpc1ByaXZhdGU6IGJvb2xlYW5cbiAgY3JlYXRlZEJ5SWQ6IHN0cmluZ1xuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1Yk1lbWJlciB7XG4gIGlkOiBzdHJpbmdcbiAgY2x1YklkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgcm9sZTogJ01FTUJFUicgfCAnQURNSU4nIHwgJ09XTkVSJ1xuICBqb2luZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnZlcnNhdGlvbiB7XG4gIGlkOiBzdHJpbmdcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxuICBwYXJ0aWNpcGFudHM/OiBVc2VyW11cbiAgbWVzc2FnZXM/OiBNZXNzYWdlW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIHtcbiAgaWQ6IHN0cmluZ1xuICBjb252ZXJzYXRpb25JZDogc3RyaW5nXG4gIHNlbmRlcklkOiBzdHJpbmdcbiAgY29udGVudDogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBzZW5kZXI/OiBVc2VyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcbiAgaWQ6IHN0cmluZ1xuICB1c2VySWQ6IHN0cmluZ1xuICB0eXBlOiBOb3RpZmljYXRpb25UeXBlXG4gIHRpdGxlOiBzdHJpbmdcbiAgYm9keTogc3RyaW5nIHwgbnVsbFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGxcbiAgaXNSZWFkOiBib29sZWFuXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RUZW1wbGF0ZSB7XG4gIGlkOiBzdHJpbmdcbiAgcG9zdFR5cGU6IFNwb3RQb3N0VHlwZVxuICBlbW9qaTogc3RyaW5nXG4gIHRpdGxlOiBzdHJpbmdcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyB8IG51bGxcbiAgaXNBY3RpdmU6IGJvb2xlYW5cbiAgc29ydE9yZGVyOiBudW1iZXJcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpYmUge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBlbW9qaTogc3RyaW5nIHwgbnVsbFxuICBjcmVhdGVkQXQ6IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcmVzdCB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVudGlvbiB7XG4gIGlkOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGVtb2ppOiBzdHJpbmcgfCBudWxsXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpZmVTaXR1YXRpb24ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBlbW9qaTogc3RyaW5nIHwgbnVsbFxuICBjcmVhdGVkQXQ6IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGYXZvcml0ZVNwb3Qge1xuICBpZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIHNwb3RJZDogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBzcG90PzogU3BvdFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RJbWFnZSB7XG4gIGlkOiBzdHJpbmdcbiAgc3BvdElkOiBzdHJpbmdcbiAgdXJsOiBzdHJpbmdcbiAgY2FwdGlvbjogc3RyaW5nIHwgbnVsbFxuICBzb3J0T3JkZXI6IG51bWJlclxuICBjcmVhdGVkQXQ6IERhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcG90VmliZSB7XG4gIGlkOiBzdHJpbmdcbiAgc3BvdElkOiBzdHJpbmdcbiAgdmliZUlkOiBzdHJpbmdcbiAgdmliZT86IFZpYmVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTcG90SW50ZW50aW9uIHtcbiAgaWQ6IHN0cmluZ1xuICBzcG90SWQ6IHN0cmluZ1xuICBpbnRlbnRpb25JZDogc3RyaW5nXG4gIGludGVudGlvbj86IEludGVudGlvblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RDbGFpbSB7XG4gIGlkOiBzdHJpbmdcbiAgc3BvdElkOiBzdHJpbmdcbiAgdXNlcklkOiBzdHJpbmdcbiAgc3RhdHVzOiBDbGFpbVN0YXR1c1xuICB2ZXJpZmljYXRpb25NZXRob2Q6IHN0cmluZyB8IG51bGxcbiAgY3JlYXRlZEF0OiBEYXRlXG4gIHVwZGF0ZWRBdDogRGF0ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RTdWJzY3JpcHRpb24ge1xuICBpZDogc3RyaW5nXG4gIHNwb3RJZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICBzcG90PzogU3BvdFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpdHkge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBjb3VudHJ5OiBzdHJpbmdcbiAgbGF0aXR1ZGU6IG51bWJlclxuICBsb25naXR1ZGU6IG51bWJlclxuICB0aW1lem9uZTogc3RyaW5nIHwgbnVsbFxuICBjcmVhdGVkQXQ6IERhdGVcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVBJIFJFU1BPTlNFIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIE5PVEU6IEFwaVJlc3BvbnNlIGlzIHJlLWV4cG9ydGVkIGZyb20gQHNwb3RzL3R5cGVzIGluIHR5cGVzLnRzXG5cbi8qKlxuICogUGFnaW5hdGVkIHJlc3BvbnNlIHdpdGggbWV0YSBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlZFJlc3BvbnNlPFQ+IHtcbiAgZGF0YTogVFtdXG4gIG1ldGE6IFBhZ2luYXRpb25NZXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbk1ldGEge1xuICB0b3RhbDogbnVtYmVyXG4gIHBhZ2U6IG51bWJlclxuICBsaW1pdDogbnVtYmVyXG4gIHRvdGFsUGFnZXM6IG51bWJlclxuICBoYXNOZXh0UGFnZTogYm9vbGVhblxuICBoYXNQcmV2aW91c1BhZ2U6IGJvb2xlYW5cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTUFSS0VUUExBQ0UgVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gVXNlIFByb2R1Y3RSZXNwb25zZUR0byBmcm9tIHNwb3RzLXR5cGVzIGRpcmVjdGx5XG5leHBvcnQgdHlwZSBQcm9kdWN0ID0gUHJvZHVjdFJlc3BvbnNlRHRvXG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXIge1xuICBpZDogc3RyaW5nXG4gIHNwb3RJZDogc3RyaW5nXG4gIHVzZXJJZDogc3RyaW5nXG4gIHN0YXR1czogT3JkZXJTdGF0dXNcbiAgc3VidG90YWw6IG51bWJlclxuICB0YXg6IG51bWJlclxuICB0b3RhbDogbnVtYmVyXG4gIGN1cnJlbmN5OiBzdHJpbmdcbiAgbm90ZXM6IHN0cmluZyB8IG51bGxcbiAgbWV0YWRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbFxuICBjcmVhdGVkQXQ6IERhdGVcbiAgdXBkYXRlZEF0OiBEYXRlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJJdGVtIHtcbiAgaWQ6IHN0cmluZ1xuICBvcmRlcklkOiBzdHJpbmdcbiAgcHJvZHVjdElkOiBzdHJpbmdcbiAgcXVhbnRpdHk6IG51bWJlclxuICB1bml0UHJpY2U6IG51bWJlclxuICB0b3RhbDogbnVtYmVyXG4gIGNyZWF0ZWRBdDogRGF0ZVxufVxuIl19
@@ -1,47 +0,0 @@
1
- /**
2
- * Clubs Mutation Hooks
3
- *
4
- * TanStack Query hooks for club mutation operations.
5
- */
6
- import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
7
- import { type Club } from '../types';
8
- /**
9
- * Create a new club
10
- *
11
- * @endpoint POST /clubs
12
- */
13
- export declare function useCreateClub(options?: Omit<UseMutationOptions<Club, Error, {
14
- spotId: string;
15
- name: string;
16
- description?: string;
17
- }>, 'mutationFn'>): UseMutationResult<Club, Error, {
18
- spotId: string;
19
- name: string;
20
- description?: string;
21
- }>;
22
- /**
23
- * Update a club
24
- *
25
- * @endpoint PUT /clubs/{id}
26
- */
27
- export declare function useUpdateClub(options?: Omit<UseMutationOptions<Club, Error, {
28
- clubId: string;
29
- name?: string;
30
- description?: string;
31
- }>, 'mutationFn'>): UseMutationResult<Club, Error, {
32
- clubId: string;
33
- name?: string;
34
- description?: string;
35
- }>;
36
- /**
37
- * Join a club
38
- *
39
- * @endpoint POST /clubs/{id}/join
40
- */
41
- export declare function useJoinClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
42
- /**
43
- * Leave a club
44
- *
45
- * @endpoint POST /clubs/{id}/leave
46
- */
47
- export declare function useLeaveClub(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
@@ -1,97 +0,0 @@
1
- "use strict";
2
- /**
3
- * Clubs Mutation Hooks
4
- *
5
- * TanStack Query hooks for club mutation operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.useCreateClub = useCreateClub;
9
- exports.useUpdateClub = useUpdateClub;
10
- exports.useJoinClub = useJoinClub;
11
- exports.useLeaveClub = useLeaveClub;
12
- const react_query_1 = require("@tanstack/react-query");
13
- const client_1 = require("../client");
14
- const clubs_1 = require("../queries/clubs");
15
- const users_1 = require("../queries/users");
16
- // ============================================================================
17
- // MUTATION HOOKS
18
- // ============================================================================
19
- /**
20
- * Create a new club
21
- *
22
- * @endpoint POST /clubs
23
- */
24
- function useCreateClub(options) {
25
- const queryClient = (0, react_query_1.useQueryClient)();
26
- return (0, react_query_1.useMutation)({
27
- mutationFn: async (data) => {
28
- const client = (0, client_1.getApiClient)();
29
- const response = await client.post('/clubs', data);
30
- return response.data.data;
31
- },
32
- onSuccess: (_, variables) => {
33
- queryClient.invalidateQueries({
34
- queryKey: clubs_1.clubKeys.bySpot(variables.spotId),
35
- });
36
- },
37
- ...options,
38
- });
39
- }
40
- /**
41
- * Update a club
42
- *
43
- * @endpoint PUT /clubs/{id}
44
- */
45
- function useUpdateClub(options) {
46
- const queryClient = (0, react_query_1.useQueryClient)();
47
- return (0, react_query_1.useMutation)({
48
- mutationFn: async ({ clubId, ...data }) => {
49
- const client = (0, client_1.getApiClient)();
50
- const response = await client.put(`/clubs/${clubId}`, data);
51
- return response.data.data;
52
- },
53
- onSuccess: (data, variables) => {
54
- queryClient.setQueryData(clubs_1.clubKeys.detail(variables.clubId), data);
55
- },
56
- ...options,
57
- });
58
- }
59
- /**
60
- * Join a club
61
- *
62
- * @endpoint POST /clubs/{id}/join
63
- */
64
- function useJoinClub(options) {
65
- const queryClient = (0, react_query_1.useQueryClient)();
66
- return (0, react_query_1.useMutation)({
67
- mutationFn: async (clubId) => {
68
- const client = (0, client_1.getApiClient)();
69
- await client.post(`/clubs/${clubId}/join`);
70
- },
71
- onSuccess: (_, clubId) => {
72
- queryClient.invalidateQueries({ queryKey: clubs_1.clubKeys.detail(clubId) });
73
- queryClient.invalidateQueries({ queryKey: users_1.userKeys.clubs() });
74
- },
75
- ...options,
76
- });
77
- }
78
- /**
79
- * Leave a club
80
- *
81
- * @endpoint POST /clubs/{id}/leave
82
- */
83
- function useLeaveClub(options) {
84
- const queryClient = (0, react_query_1.useQueryClient)();
85
- return (0, react_query_1.useMutation)({
86
- mutationFn: async (clubId) => {
87
- const client = (0, client_1.getApiClient)();
88
- await client.post(`/clubs/${clubId}/leave`);
89
- },
90
- onSuccess: (_, clubId) => {
91
- queryClient.invalidateQueries({ queryKey: clubs_1.clubKeys.detail(clubId) });
92
- queryClient.invalidateQueries({ queryKey: users_1.userKeys.clubs() });
93
- },
94
- ...options,
95
- });
96
- }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9jbHVicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUF1Qkgsc0NBNkJDO0FBT0Qsc0NBOEJDO0FBT0Qsa0NBZ0JDO0FBT0Qsb0NBZ0JDO0FBcklELHVEQUs4QjtBQUU5QixzQ0FBc0M7QUFDdEMsNENBQXlDO0FBQ3pDLDRDQUF5QztBQUd6QywrRUFBK0U7QUFDL0UsaUJBQWlCO0FBQ2pCLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQU9DO0lBTUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWlCLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFvQixRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDckUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMzQixDQUFDO1FBQ0QsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQzFCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7YUFDNUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQU9DO0lBTUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBQyxFQUFpQixFQUFFO1lBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsVUFBVSxNQUFNLEVBQUUsRUFDbEIsSUFBSSxDQUNMLENBQUE7WUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQzNCLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7WUFDN0IsV0FBVyxDQUFDLFlBQVksQ0FBQyxnQkFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDbkUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixPQUFxRTtJQUVyRSxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQTtJQUVwQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQWMsRUFBaUIsRUFBRTtZQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLE9BQU8sQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQTtZQUNsRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixPQUFxRTtJQUVyRSxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQTtJQUVwQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQWMsRUFBaUIsRUFBRTtZQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLFFBQVEsQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDdkIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQTtZQUNsRSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsdWJzIE11dGF0aW9uIEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIGNsdWIgbXV0YXRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VNdXRhdGlvbixcbiAgdHlwZSBVc2VNdXRhdGlvbk9wdGlvbnMsXG4gIHR5cGUgVXNlTXV0YXRpb25SZXN1bHQsXG4gIHVzZVF1ZXJ5Q2xpZW50LFxufSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknXG5cbmltcG9ydCB7Z2V0QXBpQ2xpZW50fSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQge2NsdWJLZXlzfSBmcm9tICcuLi9xdWVyaWVzL2NsdWJzJ1xuaW1wb3J0IHt1c2VyS2V5c30gZnJvbSAnLi4vcXVlcmllcy91c2VycydcbmltcG9ydCB7dHlwZSBBcGlSZXNwb25zZSwgdHlwZSBDbHVifSBmcm9tICcuLi90eXBlcydcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgY2x1YlxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9jbHVic1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlQ2x1YihcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFxuICAgICAgQ2x1YixcbiAgICAgIEVycm9yLFxuICAgICAge3Nwb3RJZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nfVxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxcbiAgQ2x1YixcbiAgRXJyb3IsXG4gIHtzcG90SWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbj86IHN0cmluZ31cbj4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhKTogUHJvbWlzZTxDbHViPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTxDbHViPj4oJy9jbHVicycsIGRhdGEpXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtcbiAgICAgICAgcXVlcnlLZXk6IGNsdWJLZXlzLmJ5U3BvdCh2YXJpYWJsZXMuc3BvdElkKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIFVwZGF0ZSBhIGNsdWJcbiAqXG4gKiBAZW5kcG9pbnQgUFVUIC9jbHVicy97aWR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVDbHViKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBDbHViLFxuICAgICAgRXJyb3IsXG4gICAgICB7Y2x1YklkOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nfVxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxcbiAgQ2x1YixcbiAgRXJyb3IsXG4gIHtjbHViSWQ6IHN0cmluZzsgbmFtZT86IHN0cmluZzsgZGVzY3JpcHRpb24/OiBzdHJpbmd9XG4+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe2NsdWJJZCwgLi4uZGF0YX0pOiBQcm9taXNlPENsdWI+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQ8QXBpUmVzcG9uc2U8Q2x1Yj4+KFxuICAgICAgICBgL2NsdWJzLyR7Y2x1YklkfWAsXG4gICAgICAgIGRhdGEsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChkYXRhLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LnNldFF1ZXJ5RGF0YShjbHViS2V5cy5kZXRhaWwodmFyaWFibGVzLmNsdWJJZCksIGRhdGEpXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEpvaW4gYSBjbHViXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2NsdWJzL3tpZH0vam9pblxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSm9pbkNsdWIoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCBzdHJpbmc+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoY2x1YklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBhd2FpdCBjbGllbnQucG9zdChgL2NsdWJzLyR7Y2x1YklkfS9qb2luYClcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIGNsdWJJZCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiBjbHViS2V5cy5kZXRhaWwoY2x1YklkKX0pXG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IHVzZXJLZXlzLmNsdWJzKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBMZWF2ZSBhIGNsdWJcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvY2x1YnMve2lkfS9sZWF2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTGVhdmVDbHViKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDx2b2lkLCBFcnJvciwgc3RyaW5nPiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKVxuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGNsdWJJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgYXdhaXQgY2xpZW50LnBvc3QoYC9jbHVicy8ke2NsdWJJZH0vbGVhdmVgKVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgY2x1YklkKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IGNsdWJLZXlzLmRldGFpbChjbHViSWQpfSlcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogdXNlcktleXMuY2x1YnMoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
@@ -1,45 +0,0 @@
1
- /**
2
- * Conversations Mutation Hooks
3
- *
4
- * TanStack Query hooks for conversation/messaging mutation operations.
5
- */
6
- import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
7
- import { type Conversation, type CreateConversationRequest, type Message, type SendMessageRequest } from '../types';
8
- /**
9
- * Create a new conversation
10
- *
11
- * @endpoint POST /conversations
12
- */
13
- export declare function useCreateConversation(options?: Omit<UseMutationOptions<Conversation, Error, CreateConversationRequest>, 'mutationFn'>): UseMutationResult<Conversation, Error, CreateConversationRequest>;
14
- /**
15
- * Create or get direct conversation with a user
16
- *
17
- * @endpoint POST /conversations/direct
18
- */
19
- export declare function useCreateDirectConversation(options?: Omit<UseMutationOptions<Conversation, Error, {
20
- userId: string;
21
- }>, 'mutationFn'>): UseMutationResult<Conversation, Error, {
22
- userId: string;
23
- }>;
24
- /**
25
- * Send a message in a conversation
26
- *
27
- * @endpoint POST /conversations/{id}/messages
28
- */
29
- export declare function useSendMessage(options?: Omit<UseMutationOptions<Message, Error, {
30
- conversationId: string;
31
- } & SendMessageRequest>, 'mutationFn'>): UseMutationResult<Message, Error, {
32
- conversationId: string;
33
- } & SendMessageRequest>;
34
- /**
35
- * Mark conversation as read
36
- *
37
- * @endpoint PUT /conversations/{id}/read
38
- */
39
- export declare function useMarkConversationAsRead(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
40
- /**
41
- * Send typing indicator
42
- *
43
- * @endpoint POST /conversations/{id}/typing
44
- */
45
- export declare function useSendTypingIndicator(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
@@ -1,114 +0,0 @@
1
- "use strict";
2
- /**
3
- * Conversations Mutation Hooks
4
- *
5
- * TanStack Query hooks for conversation/messaging mutation operations.
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.useCreateConversation = useCreateConversation;
9
- exports.useCreateDirectConversation = useCreateDirectConversation;
10
- exports.useSendMessage = useSendMessage;
11
- exports.useMarkConversationAsRead = useMarkConversationAsRead;
12
- exports.useSendTypingIndicator = useSendTypingIndicator;
13
- const react_query_1 = require("@tanstack/react-query");
14
- const client_1 = require("../client");
15
- const conversations_1 = require("../queries/conversations");
16
- // ============================================================================
17
- // MUTATION HOOKS
18
- // ============================================================================
19
- /**
20
- * Create a new conversation
21
- *
22
- * @endpoint POST /conversations
23
- */
24
- function useCreateConversation(options) {
25
- const queryClient = (0, react_query_1.useQueryClient)();
26
- return (0, react_query_1.useMutation)({
27
- mutationFn: async (data) => {
28
- const client = (0, client_1.getApiClient)();
29
- const response = await client.post('/conversations', data);
30
- return response.data.data;
31
- },
32
- onSuccess: () => {
33
- queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
34
- },
35
- ...options,
36
- });
37
- }
38
- /**
39
- * Create or get direct conversation with a user
40
- *
41
- * @endpoint POST /conversations/direct
42
- */
43
- function useCreateDirectConversation(options) {
44
- const queryClient = (0, react_query_1.useQueryClient)();
45
- return (0, react_query_1.useMutation)({
46
- mutationFn: async (data) => {
47
- const client = (0, client_1.getApiClient)();
48
- const response = await client.post('/conversations/direct', data);
49
- return response.data.data;
50
- },
51
- onSuccess: () => {
52
- queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
53
- },
54
- ...options,
55
- });
56
- }
57
- /**
58
- * Send a message in a conversation
59
- *
60
- * @endpoint POST /conversations/{id}/messages
61
- */
62
- function useSendMessage(options) {
63
- const queryClient = (0, react_query_1.useQueryClient)();
64
- return (0, react_query_1.useMutation)({
65
- mutationFn: async ({ conversationId, ...data }) => {
66
- const client = (0, client_1.getApiClient)();
67
- const response = await client.post(`/conversations/${conversationId}/messages`, data);
68
- return response.data.data;
69
- },
70
- onSuccess: (_, variables) => {
71
- queryClient.invalidateQueries({
72
- queryKey: conversations_1.conversationKeys.messages(variables.conversationId),
73
- });
74
- queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
75
- },
76
- ...options,
77
- });
78
- }
79
- /**
80
- * Mark conversation as read
81
- *
82
- * @endpoint PUT /conversations/{id}/read
83
- */
84
- function useMarkConversationAsRead(options) {
85
- const queryClient = (0, react_query_1.useQueryClient)();
86
- return (0, react_query_1.useMutation)({
87
- mutationFn: async (conversationId) => {
88
- const client = (0, client_1.getApiClient)();
89
- await client.put(`/conversations/${conversationId}/read`);
90
- },
91
- onSuccess: (_, conversationId) => {
92
- queryClient.invalidateQueries({
93
- queryKey: conversations_1.conversationKeys.detail(conversationId),
94
- });
95
- queryClient.invalidateQueries({ queryKey: conversations_1.conversationKeys.lists() });
96
- },
97
- ...options,
98
- });
99
- }
100
- /**
101
- * Send typing indicator
102
- *
103
- * @endpoint POST /conversations/{id}/typing
104
- */
105
- function useSendTypingIndicator(options) {
106
- return (0, react_query_1.useMutation)({
107
- mutationFn: async (conversationId) => {
108
- const client = (0, client_1.getApiClient)();
109
- await client.post(`/conversations/${conversationId}/typing`);
110
- },
111
- ...options,
112
- });
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvbXV0YXRpb25zL2NvbnZlcnNhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7O0FBNEJILHNEQXdCQztBQU9ELGtFQXNCQztBQU9ELHdDQWlDQztBQU9ELDhEQWtCQztBQU9ELHdEQVVDO0FBaktELHVEQUs4QjtBQUU5QixzQ0FBc0M7QUFDdEMsNERBQXlEO0FBU3pELCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsT0FHQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFBO0lBRXBDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQ2YsSUFBK0IsRUFDUixFQUFFO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDaEMsZ0JBQWdCLEVBQ2hCLElBQUksQ0FDTCxDQUFBO1lBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMzQixDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxnQ0FBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDckUsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BR0M7SUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQTtJQUVwQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFF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bnZlcnNhdGlvbnMgTXV0YXRpb24gSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgY29udmVyc2F0aW9uL21lc3NhZ2luZyBtdXRhdGlvbiBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7XG4gIHVzZU11dGF0aW9uLFxuICB0eXBlIFVzZU11dGF0aW9uT3B0aW9ucyxcbiAgdHlwZSBVc2VNdXRhdGlvblJlc3VsdCxcbiAgdXNlUXVlcnlDbGllbnQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7Y29udmVyc2F0aW9uS2V5c30gZnJvbSAnLi4vcXVlcmllcy9jb252ZXJzYXRpb25zJ1xuaW1wb3J0IHtcbiAgdHlwZSBBcGlSZXNwb25zZSxcbiAgdHlwZSBDb252ZXJzYXRpb24sXG4gIHR5cGUgQ3JlYXRlQ29udmVyc2F0aW9uUmVxdWVzdCxcbiAgdHlwZSBNZXNzYWdlLFxuICB0eXBlIFNlbmRNZXNzYWdlUmVxdWVzdCxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGNvbnZlcnNhdGlvblxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9jb252ZXJzYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVDb252ZXJzYXRpb24oXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxDb252ZXJzYXRpb24sIEVycm9yLCBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0PixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PENvbnZlcnNhdGlvbiwgRXJyb3IsIENyZWF0ZUNvbnZlcnNhdGlvblJlcXVlc3Q+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoXG4gICAgICBkYXRhOiBDcmVhdGVDb252ZXJzYXRpb25SZXF1ZXN0LFxuICAgICk6IFByb21pc2U8Q29udmVyc2F0aW9uPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTxDb252ZXJzYXRpb24+PihcbiAgICAgICAgJy9jb252ZXJzYXRpb25zJyxcbiAgICAgICAgZGF0YSxcbiAgICAgIClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiBjb252ZXJzYXRpb25LZXlzLmxpc3RzKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBDcmVhdGUgb3IgZ2V0IGRpcmVjdCBjb252ZXJzYXRpb24gd2l0aCBhIHVzZXJcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvY29udmVyc2F0aW9ucy9kaXJlY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZURpcmVjdENvbnZlcnNhdGlvbihcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPENvbnZlcnNhdGlvbiwgRXJyb3IsIHt1c2VySWQ6IHN0cmluZ30+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8Q29udmVyc2F0aW9uLCBFcnJvciwge3VzZXJJZDogc3RyaW5nfT4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiB7dXNlcklkOiBzdHJpbmd9KTogUHJvbWlzZTxDb252ZXJzYXRpb24+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPENvbnZlcnNhdGlvbj4+KFxuICAgICAgICAnL2NvbnZlcnNhdGlvbnMvZGlyZWN0JyxcbiAgICAgICAgZGF0YSxcbiAgICAgIClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiBjb252ZXJzYXRpb25LZXlzLmxpc3RzKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBTZW5kIGEgbWVzc2FnZSBpbiBhIGNvbnZlcnNhdGlvblxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9jb252ZXJzYXRpb25zL3tpZH0vbWVzc2FnZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbmRNZXNzYWdlKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBNZXNzYWdlLFxuICAgICAgRXJyb3IsXG4gICAgICB7Y29udmVyc2F0aW9uSWQ6IHN0cmluZ30gJiBTZW5kTWVzc2FnZVJlcXVlc3RcbiAgICA+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8XG4gIE1lc3NhZ2UsXG4gIEVycm9yLFxuICB7Y29udmVyc2F0aW9uSWQ6IHN0cmluZ30gJiBTZW5kTWVzc2FnZVJlcXVlc3Rcbj4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7Y29udmVyc2F0aW9uSWQsIC4uLmRhdGF9KTogUHJvbWlzZTxNZXNzYWdlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTxNZXNzYWdlPj4oXG4gICAgICAgIGAvY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfS9tZXNzYWdlc2AsXG4gICAgICAgIGRhdGEsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtcbiAgICAgICAgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubWVzc2FnZXModmFyaWFibGVzLmNvbnZlcnNhdGlvbklkKSxcbiAgICAgIH0pXG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubGlzdHMoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIE1hcmsgY29udmVyc2F0aW9uIGFzIHJlYWRcbiAqXG4gKiBAZW5kcG9pbnQgUFVUIC9jb252ZXJzYXRpb25zL3tpZH0vcmVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTWFya0NvbnZlcnNhdGlvbkFzUmVhZChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8dm9pZCwgRXJyb3IsIHN0cmluZz4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChjb252ZXJzYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgYXdhaXQgY2xpZW50LnB1dChgL2NvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH0vcmVhZGApXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCBjb252ZXJzYXRpb25JZCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe1xuICAgICAgICBxdWVyeUtleTogY29udmVyc2F0aW9uS2V5cy5kZXRhaWwoY29udmVyc2F0aW9uSWQpLFxuICAgICAgfSlcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogY29udmVyc2F0aW9uS2V5cy5saXN0cygpfSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogU2VuZCB0eXBpbmcgaW5kaWNhdG9yXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2NvbnZlcnNhdGlvbnMve2lkfS90eXBpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbmRUeXBpbmdJbmRpY2F0b3IoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCBzdHJpbmc+IHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoY29udmVyc2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGF3YWl0IGNsaWVudC5wb3N0KGAvY29udmVyc2F0aW9ucy8ke2NvbnZlcnNhdGlvbklkfS90eXBpbmdgKVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cbiJdfQ==