@growsober/sdk 1.0.22 → 1.0.24

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.
@@ -1,31 +1,6 @@
1
- import { CreatorProductResponse, ProductBookingResponse, ProductType, DeliveryMethod } from '../queries/products';
2
- export interface CreateProductRequest {
3
- title: string;
4
- description?: string;
5
- imageUrl?: string;
6
- type?: ProductType;
7
- price: number;
8
- currency?: string;
9
- durationMinutes?: number;
10
- maxParticipants?: number;
11
- deliveryMethod?: DeliveryMethod;
12
- locationDetails?: string;
13
- slug?: string;
14
- }
15
- export interface UpdateProductRequest {
16
- title?: string;
17
- description?: string;
18
- imageUrl?: string;
19
- type?: ProductType;
20
- price?: number;
21
- currency?: string;
22
- durationMinutes?: number;
23
- maxParticipants?: number;
24
- deliveryMethod?: DeliveryMethod;
25
- locationDetails?: string;
26
- isActive?: boolean;
27
- isFeatured?: boolean;
28
- }
1
+ import { CreatorProductResponse, ProductBookingResponse, CreateProductDto, UpdateProductDto } from '../queries/products';
2
+ export type CreateProductRequest = CreateProductDto;
3
+ export type UpdateProductRequest = UpdateProductDto;
29
4
  export interface BookProductRequest {
30
5
  scheduledAt: string;
31
6
  timezone?: string;
@@ -40,136 +15,31 @@ export interface UpdateBookingRequest {
40
15
  export interface CancelBookingRequest {
41
16
  reason?: string;
42
17
  }
43
- /**
44
- * Create a new product for a creator
45
- *
46
- * @example
47
- * ```tsx
48
- * const { mutate: createProduct, isLoading } = useCreateProduct();
49
- *
50
- * createProduct({
51
- * creatorId: 'creator-123',
52
- * data: {
53
- * title: '1-on-1 Coaching Session',
54
- * description: 'Personal coaching session',
55
- * type: 'SESSION_1ON1',
56
- * price: 5000,
57
- * durationMinutes: 60,
58
- * },
59
- * });
60
- * ```
61
- */
62
18
  export declare function useCreateProduct(): import("@tanstack/react-query").UseMutationResult<CreatorProductResponse, Error, {
63
19
  creatorId: string;
64
20
  data: CreateProductRequest;
65
21
  }, unknown>;
66
- /**
67
- * Update an existing product
68
- *
69
- * @example
70
- * ```tsx
71
- * const { mutate: updateProduct, isLoading } = useUpdateProduct();
72
- *
73
- * updateProduct({
74
- * creatorId: 'creator-123',
75
- * productId: 'product-456',
76
- * data: {
77
- * price: 6000,
78
- * isActive: true,
79
- * },
80
- * });
81
- * ```
82
- */
83
22
  export declare function useUpdateProduct(): import("@tanstack/react-query").UseMutationResult<CreatorProductResponse, Error, {
84
23
  creatorId: string;
85
24
  productId: string;
86
25
  data: UpdateProductRequest;
87
26
  }, unknown>;
88
- /**
89
- * Delete a product
90
- *
91
- * @example
92
- * ```tsx
93
- * const { mutate: deleteProduct, isLoading } = useDeleteProduct();
94
- *
95
- * deleteProduct({
96
- * creatorId: 'creator-123',
97
- * productId: 'product-456',
98
- * });
99
- * ```
100
- */
101
27
  export declare function useDeleteProduct(): import("@tanstack/react-query").UseMutationResult<void, Error, {
102
28
  creatorId: string;
103
29
  productId: string;
104
30
  }, unknown>;
105
- /**
106
- * Book a product/session
107
- *
108
- * @example
109
- * ```tsx
110
- * const { mutate: bookProduct, isLoading } = useBookProduct();
111
- *
112
- * bookProduct({
113
- * productId: 'product-123',
114
- * data: {
115
- * scheduledAt: '2024-03-15T10:00:00Z',
116
- * timezone: 'Europe/London',
117
- * clientNotes: 'Looking forward to the session!',
118
- * },
119
- * });
120
- * ```
121
- */
122
31
  export declare function useBookProduct(): import("@tanstack/react-query").UseMutationResult<ProductBookingResponse, Error, {
123
32
  productId: string;
124
33
  data: BookProductRequest;
125
34
  }, unknown>;
126
- /**
127
- * Update a product booking
128
- *
129
- * @example
130
- * ```tsx
131
- * const { mutate: updateBooking, isLoading } = useUpdateProductBooking();
132
- *
133
- * updateBooking({
134
- * bookingId: 'booking-123',
135
- * data: {
136
- * scheduledAt: '2024-03-16T14:00:00Z',
137
- * clientNotes: 'Rescheduled due to conflict',
138
- * },
139
- * });
140
- * ```
141
- */
142
35
  export declare function useUpdateProductBooking(): import("@tanstack/react-query").UseMutationResult<ProductBookingResponse, Error, {
143
36
  bookingId: string;
144
37
  data: UpdateBookingRequest;
145
38
  }, unknown>;
146
- /**
147
- * Cancel a product booking
148
- *
149
- * @example
150
- * ```tsx
151
- * const { mutate: cancelBooking, isLoading } = useCancelProductBooking();
152
- *
153
- * cancelBooking({
154
- * bookingId: 'booking-123',
155
- * data: { reason: 'Schedule conflict' },
156
- * });
157
- * ```
158
- */
159
39
  export declare function useCancelProductBooking(): import("@tanstack/react-query").UseMutationResult<ProductBookingResponse, Error, {
160
40
  bookingId: string;
161
41
  data?: CancelBookingRequest;
162
42
  }, unknown>;
163
- /**
164
- * Mark a booking as completed (creator only)
165
- *
166
- * @example
167
- * ```tsx
168
- * const { mutate: completeBooking, isLoading } = useCompleteProductBooking();
169
- *
170
- * completeBooking({ bookingId: 'booking-123' });
171
- * ```
172
- */
173
43
  export declare function useCompleteProductBooking(): import("@tanstack/react-query").UseMutationResult<ProductBookingResponse, Error, {
174
44
  bookingId: string;
175
45
  }, unknown>;
@@ -177,23 +47,6 @@ export interface PaymentIntentResponse {
177
47
  clientSecret: string;
178
48
  paymentIntentId: string;
179
49
  }
180
- /**
181
- * Create a payment intent for a product booking
182
- * Use this with Stripe Elements to process payment
183
- *
184
- * @example
185
- * ```tsx
186
- * const { mutate: createPaymentIntent, data, isLoading } = useCreateProductPaymentIntent();
187
- *
188
- * // Create payment intent
189
- * createPaymentIntent({ bookingId: 'booking-123' });
190
- *
191
- * // Use clientSecret with Stripe Elements
192
- * if (data?.clientSecret) {
193
- * // Pass to Stripe PaymentElement
194
- * }
195
- * ```
196
- */
197
50
  export declare function useCreateProductPaymentIntent(): import("@tanstack/react-query").UseMutationResult<PaymentIntentResponse, Error, {
198
51
  bookingId: string;
199
52
  }, unknown>;
@@ -14,25 +14,6 @@ const products_1 = require("../queries/products");
14
14
  // ============================================================================
15
15
  // MUTATION HOOKS - PRODUCTS
16
16
  // ============================================================================
17
- /**
18
- * Create a new product for a creator
19
- *
20
- * @example
21
- * ```tsx
22
- * const { mutate: createProduct, isLoading } = useCreateProduct();
23
- *
24
- * createProduct({
25
- * creatorId: 'creator-123',
26
- * data: {
27
- * title: '1-on-1 Coaching Session',
28
- * description: 'Personal coaching session',
29
- * type: 'SESSION_1ON1',
30
- * price: 5000,
31
- * durationMinutes: 60,
32
- * },
33
- * });
34
- * ```
35
- */
36
17
  function useCreateProduct() {
37
18
  const queryClient = (0, react_query_1.useQueryClient)();
38
19
  return (0, react_query_1.useMutation)({
@@ -47,23 +28,6 @@ function useCreateProduct() {
47
28
  },
48
29
  });
49
30
  }
50
- /**
51
- * Update an existing product
52
- *
53
- * @example
54
- * ```tsx
55
- * const { mutate: updateProduct, isLoading } = useUpdateProduct();
56
- *
57
- * updateProduct({
58
- * creatorId: 'creator-123',
59
- * productId: 'product-456',
60
- * data: {
61
- * price: 6000,
62
- * isActive: true,
63
- * },
64
- * });
65
- * ```
66
- */
67
31
  function useUpdateProduct() {
68
32
  const queryClient = (0, react_query_1.useQueryClient)();
69
33
  return (0, react_query_1.useMutation)({
@@ -79,19 +43,6 @@ function useUpdateProduct() {
79
43
  },
80
44
  });
81
45
  }
82
- /**
83
- * Delete a product
84
- *
85
- * @example
86
- * ```tsx
87
- * const { mutate: deleteProduct, isLoading } = useDeleteProduct();
88
- *
89
- * deleteProduct({
90
- * creatorId: 'creator-123',
91
- * productId: 'product-456',
92
- * });
93
- * ```
94
- */
95
46
  function useDeleteProduct() {
96
47
  const queryClient = (0, react_query_1.useQueryClient)();
97
48
  return (0, react_query_1.useMutation)({
@@ -109,23 +60,6 @@ function useDeleteProduct() {
109
60
  // ============================================================================
110
61
  // MUTATION HOOKS - BOOKINGS
111
62
  // ============================================================================
112
- /**
113
- * Book a product/session
114
- *
115
- * @example
116
- * ```tsx
117
- * const { mutate: bookProduct, isLoading } = useBookProduct();
118
- *
119
- * bookProduct({
120
- * productId: 'product-123',
121
- * data: {
122
- * scheduledAt: '2024-03-15T10:00:00Z',
123
- * timezone: 'Europe/London',
124
- * clientNotes: 'Looking forward to the session!',
125
- * },
126
- * });
127
- * ```
128
- */
129
63
  function useBookProduct() {
130
64
  const queryClient = (0, react_query_1.useQueryClient)();
131
65
  return (0, react_query_1.useMutation)({
@@ -139,22 +73,6 @@ function useBookProduct() {
139
73
  },
140
74
  });
141
75
  }
142
- /**
143
- * Update a product booking
144
- *
145
- * @example
146
- * ```tsx
147
- * const { mutate: updateBooking, isLoading } = useUpdateProductBooking();
148
- *
149
- * updateBooking({
150
- * bookingId: 'booking-123',
151
- * data: {
152
- * scheduledAt: '2024-03-16T14:00:00Z',
153
- * clientNotes: 'Rescheduled due to conflict',
154
- * },
155
- * });
156
- * ```
157
- */
158
76
  function useUpdateProductBooking() {
159
77
  const queryClient = (0, react_query_1.useQueryClient)();
160
78
  return (0, react_query_1.useMutation)({
@@ -166,24 +84,10 @@ function useUpdateProductBooking() {
166
84
  onSuccess: (_, { bookingId }) => {
167
85
  queryClient.invalidateQueries({ queryKey: products_1.productKeys.bookingDetail(bookingId) });
168
86
  queryClient.invalidateQueries({ queryKey: products_1.productKeys.myBookings() });
169
- // Also invalidate creator bookings as they see this
170
87
  queryClient.invalidateQueries({ queryKey: products_1.productKeys.bookings() });
171
88
  },
172
89
  });
173
90
  }
174
- /**
175
- * Cancel a product booking
176
- *
177
- * @example
178
- * ```tsx
179
- * const { mutate: cancelBooking, isLoading } = useCancelProductBooking();
180
- *
181
- * cancelBooking({
182
- * bookingId: 'booking-123',
183
- * data: { reason: 'Schedule conflict' },
184
- * });
185
- * ```
186
- */
187
91
  function useCancelProductBooking() {
188
92
  const queryClient = (0, react_query_1.useQueryClient)();
189
93
  return (0, react_query_1.useMutation)({
@@ -199,16 +103,6 @@ function useCancelProductBooking() {
199
103
  },
200
104
  });
201
105
  }
202
- /**
203
- * Mark a booking as completed (creator only)
204
- *
205
- * @example
206
- * ```tsx
207
- * const { mutate: completeBooking, isLoading } = useCompleteProductBooking();
208
- *
209
- * completeBooking({ bookingId: 'booking-123' });
210
- * ```
211
- */
212
106
  function useCompleteProductBooking() {
213
107
  const queryClient = (0, react_query_1.useQueryClient)();
214
108
  return (0, react_query_1.useMutation)({
@@ -224,23 +118,6 @@ function useCompleteProductBooking() {
224
118
  },
225
119
  });
226
120
  }
227
- /**
228
- * Create a payment intent for a product booking
229
- * Use this with Stripe Elements to process payment
230
- *
231
- * @example
232
- * ```tsx
233
- * const { mutate: createPaymentIntent, data, isLoading } = useCreateProductPaymentIntent();
234
- *
235
- * // Create payment intent
236
- * createPaymentIntent({ bookingId: 'booking-123' });
237
- *
238
- * // Use clientSecret with Stripe Elements
239
- * if (data?.clientSecret) {
240
- * // Pass to Stripe PaymentElement
241
- * }
242
- * ```
243
- */
244
121
  function useCreateProductPaymentIntent() {
245
122
  return (0, react_query_1.useMutation)({
246
123
  mutationFn: async ({ bookingId, }) => {
@@ -250,4 +127,4 @@ function useCreateProductPaymentIntent() {
250
127
  },
251
128
  });
252
129
  }
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9wcm9kdWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQThFQSw0Q0FvQkM7QUFtQkQsNENBMEJDO0FBZUQsNENBb0JDO0FBdUJELHdDQW1CQztBQWtCRCwwREF5QkM7QUFlRCwwREF3QkM7QUFZRCw4REFxQkM7QUE0QkQsc0VBY0M7QUF6WEQsdURBQW9FO0FBQ3BFLHNDQUF5QztBQUN6QyxrREFBK0g7QUFxRC9ILCtFQUErRTtBQUMvRSw0QkFBNEI7QUFDNUIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxTQUFnQixnQkFBZ0I7SUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUNqQixTQUFTLEVBQ1QsSUFBSSxHQUlMLEVBQW1DLEVBQUU7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixTQUFTLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7WUFDOUIsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RSxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkUsQ0FBQztLQUNGLENBQUMsQ0FB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RCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1lBQzlCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEYsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVdEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsU0FBZ0IsNkJBQTZCO0lBQzNDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFDakIsU0FBUyxHQUdWLEVBQWtDLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxxQ0FBcUMsU0FBUyxpQkFBaUIsQ0FDaEUsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgcHJvZHVjdEtleXMsIENyZWF0b3JQcm9kdWN0UmVzcG9uc2UsIFByb2R1Y3RCb29raW5nUmVzcG9uc2UsIFByb2R1Y3RUeXBlLCBEZWxpdmVyeU1ldGhvZCB9IGZyb20gJy4uL3F1ZXJpZXMvcHJvZHVjdHMnO1xuaW1wb3J0IHsgY3JlYXRvcktleXMgfSBmcm9tICcuLi9xdWVyaWVzL2NyZWF0b3JzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVQcm9kdWN0UmVxdWVzdCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpbWFnZVVybD86IHN0cmluZztcbiAgdHlwZT86IFByb2R1Y3RUeXBlO1xuICBwcmljZTogbnVtYmVyO1xuICBjdXJyZW5jeT86IHN0cmluZztcbiAgZHVyYXRpb25NaW51dGVzPzogbnVtYmVyO1xuICBtYXhQYXJ0aWNpcGFudHM/OiBudW1iZXI7XG4gIGRlbGl2ZXJ5TWV0aG9kPzogRGVsaXZlcnlNZXRob2Q7XG4gIGxvY2F0aW9uRGV0YWlscz86IHN0cmluZztcbiAgc2x1Zz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQcm9kdWN0UmVxdWVzdCB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gIHR5cGU/OiBQcm9kdWN0VHlwZTtcbiAgcHJpY2U/OiBudW1iZXI7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBkdXJhdGlvbk1pbnV0ZXM/OiBudW1iZXI7XG4gIG1heFBhcnRpY2lwYW50cz86IG51bWJlcjtcbiAgZGVsaXZlcnlNZXRob2Q/OiBEZWxpdmVyeU1ldGhvZDtcbiAgbG9jYXRpb25EZXRhaWxzPzogc3RyaW5nO1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG4gIGlzRmVhdHVyZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2tQcm9kdWN0UmVxdWVzdCB7XG4gIHNjaGVkdWxlZEF0OiBzdHJpbmc7XG4gIHRpbWV6b25lPzogc3RyaW5nO1xuICBjbGllbnROb3Rlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCb29raW5nUmVxdWVzdCB7XG4gIHNjaGVkdWxlZEF0Pzogc3RyaW5nO1xuICBjbGllbnROb3Rlcz86IHN0cmluZztcbiAgY3JlYXRvck5vdGVzPzogc3RyaW5nO1xuICBtZWV0aW5nTGluaz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxCb29raW5nUmVxdWVzdCB7XG4gIHJlYXNvbj86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1MgLSBQUk9EVUNUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBwcm9kdWN0IGZvciBhIGNyZWF0b3JcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZTogY3JlYXRlUHJvZHVjdCwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdGVQcm9kdWN0KCk7XG4gKlxuICogY3JlYXRlUHJvZHVjdCh7XG4gKiAgIGNyZWF0b3JJZDogJ2NyZWF0b3ItMTIzJyxcbiAqICAgZGF0YToge1xuICogICAgIHRpdGxlOiAnMS1vbi0xIENvYWNoaW5nIFNlc3Npb24nLFxuICogICAgIGRlc2NyaXB0aW9uOiAnUGVyc29uYWwgY29hY2hpbmcgc2Vzc2lvbicsXG4gKiAgICAgdHlwZTogJ1NFU1NJT05fMU9OMScsXG4gKiAgICAgcHJpY2U6IDUwMDAsXG4gKiAgICAgZHVyYXRpb25NaW51dGVzOiA2MCxcbiAqICAgfSxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVQcm9kdWN0KCkge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IENyZWF0ZVByb2R1Y3RSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPENyZWF0b3JQcm9kdWN0UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vcHJvZHVjdHNgLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgeyBjcmVhdG9ySWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuYnlDcmVhdG9yKGNyZWF0b3JJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5saXN0cygpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhbiBleGlzdGluZyBwcm9kdWN0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGU6IHVwZGF0ZVByb2R1Y3QsIGlzTG9hZGluZyB9ID0gdXNlVXBkYXRlUHJvZHVjdCgpO1xuICpcbiAqIHVwZGF0ZVByb2R1Y3Qoe1xuICogICBjcmVhdG9ySWQ6ICdjcmVhdG9yLTEyMycsXG4gKiAgIHByb2R1Y3RJZDogJ3Byb2R1Y3QtNDU2JyxcbiAqICAgZGF0YToge1xuICogICAgIHByaWNlOiA2MDAwLFxuICogICAgIGlzQWN0aXZlOiB0cnVlLFxuICogICB9LFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZVByb2R1Y3QoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBwcm9kdWN0SWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgcHJvZHVjdElkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBVcGRhdGVQcm9kdWN0UmVxdWVzdDtcbiAgICB9KTogUHJvbWlzZTxDcmVhdG9yUHJvZHVjdFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChcbiAgICAgICAgYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsXG4gICAgICAgIGRhdGFcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgY3JlYXRvcklkLCBwcm9kdWN0SWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuZGV0YWlsKHByb2R1Y3RJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ieUNyZWF0b3IoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmxpc3RzKCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGEgcHJvZHVjdFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlOiBkZWxldGVQcm9kdWN0LCBpc0xvYWRpbmcgfSA9IHVzZURlbGV0ZVByb2R1Y3QoKTtcbiAqXG4gKiBkZWxldGVQcm9kdWN0KHtcbiAqICAgY3JlYXRvcklkOiAnY3JlYXRvci0xMjMnLFxuICogICBwcm9kdWN0SWQ6ICdwcm9kdWN0LTQ1NicsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlUHJvZHVjdCgpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGNyZWF0b3JJZCxcbiAgICAgIHByb2R1Y3RJZCxcbiAgICB9OiB7XG4gICAgICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2FwaS92MS9jcmVhdG9ycy8ke2NyZWF0b3JJZH0vcHJvZHVjdHMvJHtwcm9kdWN0SWR9YCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB7IGNyZWF0b3JJZCwgcHJvZHVjdElkIH0pID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LnJlbW92ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuZGV0YWlsKHByb2R1Y3RJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ieUNyZWF0b3IoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmxpc3RzKCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTIC0gQk9PS0lOR1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBCb29rIGEgcHJvZHVjdC9zZXNzaW9uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGU6IGJvb2tQcm9kdWN0LCBpc0xvYWRpbmcgfSA9IHVzZUJvb2tQcm9kdWN0KCk7XG4gKlxuICogYm9va1Byb2R1Y3Qoe1xuICogICBwcm9kdWN0SWQ6ICdwcm9kdWN0LTEyMycsXG4gKiAgIGRhdGE6IHtcbiAqICAgICBzY2hlZHVsZWRBdDogJzIwMjQtMDMtMTVUMTA6MDA6MDBaJyxcbiAqICAgICB0aW1lem9uZTogJ0V1cm9wZS9Mb25kb24nLFxuICogICAgIGNsaWVudE5vdGVzOiAnTG9va2luZyBmb3J3YXJkIHRvIHRoZSBzZXNzaW9uIScsXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQm9va1Byb2R1Y3QoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBwcm9kdWN0SWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgICAgZGF0YTogQm9va1Byb2R1Y3RSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9wcm9kdWN0cy8ke3Byb2R1Y3RJZH0vYm9va2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLm15Qm9va2luZ3MoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBwcm9kdWN0IGJvb2tpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZTogdXBkYXRlQm9va2luZywgaXNMb2FkaW5nIH0gPSB1c2VVcGRhdGVQcm9kdWN0Qm9va2luZygpO1xuICpcbiAqIHVwZGF0ZUJvb2tpbmcoe1xuICogICBib29raW5nSWQ6ICdib29raW5nLTEyMycsXG4gKiAgIGRhdGE6IHtcbiAqICAgICBzY2hlZHVsZWRBdDogJzIwMjQtMDMtMTZUMTQ6MDA6MDBaJyxcbiAqICAgICBjbGllbnROb3RlczogJ1Jlc2NoZWR1bGVkIGR1ZSB0byBjb25mbGljdCcsXG4gKiAgIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlUHJvZHVjdEJvb2tpbmcoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBib29raW5nSWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGJvb2tpbmdJZDogc3RyaW5nO1xuICAgICAgZGF0YTogVXBkYXRlQm9va2luZ1JlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8UHJvZHVjdEJvb2tpbmdSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQoXG4gICAgICAgIGAvYXBpL3YxL3VzZXJzL21lL3Byb2R1Y3QtYm9va2luZ3MvJHtib29raW5nSWR9YCxcbiAgICAgICAgZGF0YVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgeyBib29raW5nSWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuYm9va2luZ0RldGFpbChib29raW5nSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMubXlCb29raW5ncygpIH0pO1xuICAgICAgLy8gQWxzbyBpbnZhbGlkYXRlIGNyZWF0b3IgYm9va2luZ3MgYXMgdGhleSBzZWUgdGhpc1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuYm9va2luZ3MoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBDYW5jZWwgYSBwcm9kdWN0IGJvb2tpbmdcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZTogY2FuY2VsQm9va2luZywgaXNMb2FkaW5nIH0gPSB1c2VDYW5jZWxQcm9kdWN0Qm9va2luZygpO1xuICpcbiAqIGNhbmNlbEJvb2tpbmcoe1xuICogICBib29raW5nSWQ6ICdib29raW5nLTEyMycsXG4gKiAgIGRhdGE6IHsgcmVhc29uOiAnU2NoZWR1bGUgY29uZmxpY3QnIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2FuY2VsUHJvZHVjdEJvb2tpbmcoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBib29raW5nSWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGJvb2tpbmdJZDogc3RyaW5nO1xuICAgICAgZGF0YT86IENhbmNlbEJvb2tpbmdSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZGVsZXRlKFxuICAgICAgICBgL2FwaS92MS91c2Vycy9tZS9wcm9kdWN0LWJvb2tpbmdzLyR7Ym9va2luZ0lkfWAsXG4gICAgICAgIHsgZGF0YSB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB7IGJvb2tpbmdJZCB9KSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ib29raW5nRGV0YWlsKGJvb2tpbmdJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5teUJvb2tpbmdzKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ib29raW5ncygpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIE1hcmsgYSBib29raW5nIGFzIGNvbXBsZXRlZCAoY3JlYXRvciBvbmx5KVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlOiBjb21wbGV0ZUJvb2tpbmcsIGlzTG9hZGluZyB9ID0gdXNlQ29tcGxldGVQcm9kdWN0Qm9va2luZygpO1xuICpcbiAqIGNvbXBsZXRlQm9va2luZyh7IGJvb2tpbmdJZDogJ2Jvb2tpbmctMTIzJyB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ29tcGxldGVQcm9kdWN0Qm9va2luZygpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJvb2tpbmdJZCxcbiAgICB9OiB7XG4gICAgICBib29raW5nSWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoXG4gICAgICAgIGAvYXBpL3YxL3VzZXJzL21lL3Byb2R1Y3QtYm9va2luZ3MvJHtib29raW5nSWR9L2NvbXBsZXRlYFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoXywgeyBib29raW5nSWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuYm9va2luZ0RldGFpbChib29raW5nSWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMubXlCb29raW5ncygpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuYm9va2luZ3MoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1MgLSBQQVlNRU5UU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnRJbnRlbnRSZXNwb25zZSB7XG4gIGNsaWVudFNlY3JldDogc3RyaW5nO1xuICBwYXltZW50SW50ZW50SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBwYXltZW50IGludGVudCBmb3IgYSBwcm9kdWN0IGJvb2tpbmdcbiAqIFVzZSB0aGlzIHdpdGggU3RyaXBlIEVsZW1lbnRzIHRvIHByb2Nlc3MgcGF5bWVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlOiBjcmVhdGVQYXltZW50SW50ZW50LCBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyZWF0ZVByb2R1Y3RQYXltZW50SW50ZW50KCk7XG4gKlxuICogLy8gQ3JlYXRlIHBheW1lbnQgaW50ZW50XG4gKiBjcmVhdGVQYXltZW50SW50ZW50KHsgYm9va2luZ0lkOiAnYm9va2luZy0xMjMnIH0pO1xuICpcbiAqIC8vIFVzZSBjbGllbnRTZWNyZXQgd2l0aCBTdHJpcGUgRWxlbWVudHNcbiAqIGlmIChkYXRhPy5jbGllbnRTZWNyZXQpIHtcbiAqICAgLy8gUGFzcyB0byBTdHJpcGUgUGF5bWVudEVsZW1lbnRcbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlUHJvZHVjdFBheW1lbnRJbnRlbnQoKSB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJvb2tpbmdJZCxcbiAgICB9OiB7XG4gICAgICBib29raW5nSWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxQYXltZW50SW50ZW50UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChcbiAgICAgICAgYC9hcGkvdjEvdXNlcnMvbWUvcHJvZHVjdC1ib29raW5ncy8ke2Jvb2tpbmdJZH0vcGF5bWVudC1pbnRlbnRgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9wcm9kdWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlDQSw0Q0FvQkM7QUFFRCw0Q0EwQkM7QUFFRCw0Q0FvQkM7QUFNRCx3Q0FtQkM7QUFFRCwwREF3QkM7QUFFRCwwREF3QkM7QUFFRCw4REFxQkM7QUFXRCxzRUFjQztBQXBPRCx1REFBb0U7QUFDcEUsc0NBQXlDO0FBQ3pDLGtEQUFzSTtBQTJCdEksK0VBQStFO0FBQy9FLDRCQUE0QjtBQUM1QiwrRUFBK0U7QUFFL0UsU0FBZ0IsZ0JBQWdCO0lBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFDakIsU0FBUyxFQUNULElBQUksR0FJTCxFQUFtQyxFQUFFO1lBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsU0FBUyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1lBQzlCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxzQkFBVyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCO0lB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QUUsc0JBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBV0QsU0FBZ0IsNkJBQTZCO0lBQzNDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFDakIsU0FBUyxHQUdWLEVBQWtDLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxxQ0FBcUMsU0FBUyxpQkFBaUIsQ0FDaEUsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU11dGF0aW9uLCB1c2VRdWVyeUNsaWVudCB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgcHJvZHVjdEtleXMsIENyZWF0b3JQcm9kdWN0UmVzcG9uc2UsIFByb2R1Y3RCb29raW5nUmVzcG9uc2UsIENyZWF0ZVByb2R1Y3REdG8sIFVwZGF0ZVByb2R1Y3REdG8gfSBmcm9tICcuLi9xdWVyaWVzL3Byb2R1Y3RzJztcbmltcG9ydCB7IGNyZWF0b3JLZXlzIH0gZnJvbSAnLi4vcXVlcmllcy9jcmVhdG9ycyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTIOKAlCByZXF1ZXN0IHR5cGVzIGRlcml2ZWQgZnJvbSBhdXRvLWdlbmVyYXRlZCBPcGVuQVBJIERUT3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgQ3JlYXRlUHJvZHVjdFJlcXVlc3QgPSBDcmVhdGVQcm9kdWN0RHRvO1xuZXhwb3J0IHR5cGUgVXBkYXRlUHJvZHVjdFJlcXVlc3QgPSBVcGRhdGVQcm9kdWN0RHRvO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJvb2tQcm9kdWN0UmVxdWVzdCB7XG4gIHNjaGVkdWxlZEF0OiBzdHJpbmc7XG4gIHRpbWV6b25lPzogc3RyaW5nO1xuICBjbGllbnROb3Rlcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVCb29raW5nUmVxdWVzdCB7XG4gIHNjaGVkdWxlZEF0Pzogc3RyaW5nO1xuICBjbGllbnROb3Rlcz86IHN0cmluZztcbiAgY3JlYXRvck5vdGVzPzogc3RyaW5nO1xuICBtZWV0aW5nTGluaz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxCb29raW5nUmVxdWVzdCB7XG4gIHJlYXNvbj86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1MgLSBQUk9EVUNUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlUHJvZHVjdCgpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGNyZWF0b3JJZCxcbiAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgY3JlYXRvcklkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBDcmVhdGVQcm9kdWN0UmVxdWVzdDtcbiAgICB9KTogUHJvbWlzZTxDcmVhdG9yUHJvZHVjdFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Byb2R1Y3RzYCwgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgY3JlYXRvcklkIH0pID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJ5Q3JlYXRvcihjcmVhdG9ySWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMubGlzdHMoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZVByb2R1Y3QoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBjcmVhdG9ySWQsXG4gICAgICBwcm9kdWN0SWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgcHJvZHVjdElkOiBzdHJpbmc7XG4gICAgICBkYXRhOiBVcGRhdGVQcm9kdWN0UmVxdWVzdDtcbiAgICB9KTogUHJvbWlzZTxDcmVhdG9yUHJvZHVjdFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dChcbiAgICAgICAgYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Byb2R1Y3RzLyR7cHJvZHVjdElkfWAsXG4gICAgICAgIGRhdGFcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgY3JlYXRvcklkLCBwcm9kdWN0SWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMuZGV0YWlsKHByb2R1Y3RJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ieUNyZWF0b3IoY3JlYXRvcklkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmxpc3RzKCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWxldGVQcm9kdWN0KCkge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgY3JlYXRvcklkLFxuICAgICAgcHJvZHVjdElkLFxuICAgIH06IHtcbiAgICAgIGNyZWF0b3JJZDogc3RyaW5nO1xuICAgICAgcHJvZHVjdElkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAvYXBpL3YxL2NyZWF0b3JzLyR7Y3JlYXRvcklkfS9wcm9kdWN0cy8ke3Byb2R1Y3RJZH1gKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgY3JlYXRvcklkLCBwcm9kdWN0SWQgfSkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQucmVtb3ZlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5kZXRhaWwocHJvZHVjdElkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJ5Q3JlYXRvcihjcmVhdG9ySWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogcHJvZHVjdEtleXMubGlzdHMoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1MgLSBCT09LSU5HU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQm9va1Byb2R1Y3QoKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBwcm9kdWN0SWQsXG4gICAgICBkYXRhLFxuICAgIH06IHtcbiAgICAgIHByb2R1Y3RJZDogc3RyaW5nO1xuICAgICAgZGF0YTogQm9va1Byb2R1Y3RSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9wcm9kdWN0cy8ke3Byb2R1Y3RJZH0vYm9va2AsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLm15Qm9va2luZ3MoKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZVByb2R1Y3RCb29raW5nKCkge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgYm9va2luZ0lkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBib29raW5nSWQ6IHN0cmluZztcbiAgICAgIGRhdGE6IFVwZGF0ZUJvb2tpbmdSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0KFxuICAgICAgICBgL2FwaS92MS91c2Vycy9tZS9wcm9kdWN0LWJvb2tpbmdzLyR7Ym9va2luZ0lkfWAsXG4gICAgICAgIGRhdGFcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgYm9va2luZ0lkIH0pID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJvb2tpbmdEZXRhaWwoYm9va2luZ0lkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLm15Qm9va2luZ3MoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJvb2tpbmdzKCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDYW5jZWxQcm9kdWN0Qm9va2luZygpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJvb2tpbmdJZCxcbiAgICAgIGRhdGEsXG4gICAgfToge1xuICAgICAgYm9va2luZ0lkOiBzdHJpbmc7XG4gICAgICBkYXRhPzogQ2FuY2VsQm9va2luZ1JlcXVlc3Q7XG4gICAgfSk6IFByb21pc2U8UHJvZHVjdEJvb2tpbmdSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5kZWxldGUoXG4gICAgICAgIGAvYXBpL3YxL3VzZXJzL21lL3Byb2R1Y3QtYm9va2luZ3MvJHtib29raW5nSWR9YCxcbiAgICAgICAgeyBkYXRhIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKF8sIHsgYm9va2luZ0lkIH0pID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJvb2tpbmdEZXRhaWwoYm9va2luZ0lkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLm15Qm9va2luZ3MoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJvb2tpbmdzKCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb21wbGV0ZVByb2R1Y3RCb29raW5nKCkge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoe1xuICAgICAgYm9va2luZ0lkLFxuICAgIH06IHtcbiAgICAgIGJvb2tpbmdJZDogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChcbiAgICAgICAgYC9hcGkvdjEvdXNlcnMvbWUvcHJvZHVjdC1ib29raW5ncy8ke2Jvb2tpbmdJZH0vY29tcGxldGVgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB7IGJvb2tpbmdJZCB9KSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ib29raW5nRGV0YWlsKGJvb2tpbmdJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5teUJvb2tpbmdzKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5ib29raW5ncygpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LUyAtIFBBWU1FTlRTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudEludGVudFJlc3BvbnNlIHtcbiAgY2xpZW50U2VjcmV0OiBzdHJpbmc7XG4gIHBheW1lbnRJbnRlbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRlUHJvZHVjdFBheW1lbnRJbnRlbnQoKSB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGJvb2tpbmdJZCxcbiAgICB9OiB7XG4gICAgICBib29raW5nSWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxQYXltZW50SW50ZW50UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChcbiAgICAgICAgYC9hcGkvdjEvdXNlcnMvbWUvcHJvZHVjdC1ib29raW5ncy8ke2Jvb2tpbmdJZH0vcGF5bWVudC1pbnRlbnRgXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
@@ -10,6 +10,8 @@ export declare const creatorKeys: {
10
10
  byUser: (userId: string) => readonly ["creators", "user", string];
11
11
  me: () => readonly ["creators", "me"];
12
12
  availability: (creatorId: string) => readonly ["creators", "detail", string, "availability"];
13
+ availableDates: (creatorId: string, from: string, to: string) => readonly ["creators", "detail", string, "available-dates", string, string];
14
+ availableSlots: (creatorId: string, date: string, durationMinutes: number) => readonly ["creators", "detail", string, "available-slots", string, number];
13
15
  content: (creatorId: string) => readonly ["creators", "detail", string, "content"];
14
16
  allContent: (creatorId: string) => readonly ["creators", "detail", string, "content", "all"];
15
17
  events: (creatorId: string) => readonly ["creators", "detail", string, "events"];
@@ -199,6 +201,36 @@ export declare function useCreatorAvailability(creatorId: string, options?: Omit
199
201
  isRecurring: boolean;
200
202
  specificDate?: string;
201
203
  }[], Error>;
204
+ export interface AvailableDateEntry {
205
+ date: string;
206
+ hasAvailability: boolean;
207
+ }
208
+ export interface AvailableDatesResponse {
209
+ dates: AvailableDateEntry[];
210
+ }
211
+ export interface AvailableSlotEntry {
212
+ startTime: string;
213
+ endTime: string;
214
+ available: boolean;
215
+ }
216
+ export interface AvailableSlotsResponse {
217
+ date: string;
218
+ slots: AvailableSlotEntry[];
219
+ }
220
+ /**
221
+ * Get dates with availability for a creator in a date range
222
+ */
223
+ export declare function useCreatorAvailableDates(creatorId: string, params: {
224
+ from: string;
225
+ to: string;
226
+ }, options?: Omit<UseQueryOptions<AvailableDatesResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<AvailableDatesResponse, Error>;
227
+ /**
228
+ * Get available time slots for a creator on a specific date
229
+ */
230
+ export declare function useCreatorAvailableSlots(creatorId: string, params: {
231
+ date: string;
232
+ durationMinutes?: number;
233
+ }, options?: Omit<UseQueryOptions<AvailableSlotsResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<AvailableSlotsResponse, Error>;
202
234
  /**
203
235
  * Get a creator's published library content
204
236
  *