@growsober/sdk 1.0.5 → 1.0.8
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.
- package/dist/__tests__/e2e.test.d.ts +30 -0
- package/dist/__tests__/e2e.test.js +959 -63
- package/dist/api/mutations/badges.d.ts +116 -0
- package/dist/api/mutations/badges.js +177 -0
- package/dist/api/mutations/brands.d.ts +251 -0
- package/dist/api/mutations/brands.js +242 -0
- package/dist/api/mutations/creators.d.ts +131 -0
- package/dist/api/mutations/creators.js +129 -0
- package/dist/api/mutations/event-chat.d.ts +2 -2
- package/dist/api/mutations/event-chat.js +9 -9
- package/dist/api/mutations/index.d.ts +4 -0
- package/dist/api/mutations/index.js +5 -1
- package/dist/api/mutations/jack.d.ts +29 -0
- package/dist/api/mutations/jack.js +41 -1
- package/dist/api/mutations/products.d.ts +175 -0
- package/dist/api/mutations/products.js +226 -0
- package/dist/api/mutations/support.d.ts +20 -1
- package/dist/api/mutations/support.js +36 -1
- package/dist/api/queries/badges.d.ts +221 -0
- package/dist/api/queries/badges.js +290 -0
- package/dist/api/queries/bookings.d.ts +1 -1
- package/dist/api/queries/brands.d.ts +248 -0
- package/dist/api/queries/brands.js +226 -0
- package/dist/api/queries/businesses.d.ts +61 -1
- package/dist/api/queries/businesses.js +27 -1
- package/dist/api/queries/creators.d.ts +332 -0
- package/dist/api/queries/creators.js +249 -0
- package/dist/api/queries/event-chat.d.ts +1 -1
- package/dist/api/queries/event-chat.js +4 -4
- package/dist/api/queries/events.d.ts +45 -0
- package/dist/api/queries/index.d.ts +5 -0
- package/dist/api/queries/index.js +6 -1
- package/dist/api/queries/jack.d.ts +80 -0
- package/dist/api/queries/jack.js +98 -1
- package/dist/api/queries/library.d.ts +8 -0
- package/dist/api/queries/products.d.ts +185 -0
- package/dist/api/queries/products.js +203 -0
- package/dist/api/queries/support.d.ts +46 -1
- package/dist/api/queries/support.js +48 -1
- package/dist/api/queries/venues.d.ts +304 -0
- package/dist/api/queries/venues.js +211 -0
- package/dist/api/types.d.ts +245 -0
- package/dist/api/types.js +6 -1
- package/dist/api/utils/eventGrouping.d.ts +104 -0
- package/dist/api/utils/eventGrouping.js +155 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -1
- package/package.json +5 -2
- package/src/__tests__/e2e.test.ts +996 -64
- package/src/api/mutations/badges.ts +228 -0
- package/src/api/mutations/brands.ts +376 -0
- package/src/api/mutations/creators.ts +171 -0
- package/src/api/mutations/event-chat.ts +8 -8
- package/src/api/mutations/index.ts +4 -0
- package/src/api/mutations/jack.ts +50 -1
- package/src/api/mutations/products.ts +336 -0
- package/src/api/mutations/support.ts +44 -0
- package/src/api/queries/badges.ts +385 -0
- package/src/api/queries/brands.ts +281 -0
- package/src/api/queries/businesses.ts +30 -1
- package/src/api/queries/creators.ts +308 -0
- package/src/api/queries/event-chat.ts +3 -3
- package/src/api/queries/index.ts +5 -0
- package/src/api/queries/jack.ts +139 -1
- package/src/api/queries/products.ts +312 -0
- package/src/api/queries/support.ts +54 -0
- package/src/api/queries/venues.ts +271 -0
- package/src/api/types.ts +317 -1
- package/src/api/utils/eventGrouping.ts +181 -0
- package/src/index.ts +6 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
export type ProductType = 'SESSION_1ON1' | 'SESSION_GROUP' | 'PACKAGE' | 'WORKSHOP' | 'CONSULTATION';
|
|
3
|
+
export type DeliveryMethod = 'VIDEO_CALL' | 'PHONE_CALL' | 'IN_PERSON' | 'HYBRID';
|
|
4
|
+
export type BookingStatus = 'PENDING' | 'CONFIRMED' | 'CANCELLED' | 'COMPLETED';
|
|
5
|
+
export type PaymentStatus = 'PENDING' | 'PAID' | 'REFUNDED' | 'FAILED';
|
|
6
|
+
export interface CreatorProductResponse {
|
|
7
|
+
id: string;
|
|
8
|
+
creatorId: string;
|
|
9
|
+
title: string;
|
|
10
|
+
slug: string;
|
|
11
|
+
description: string | null;
|
|
12
|
+
imageUrl: string | null;
|
|
13
|
+
type: ProductType;
|
|
14
|
+
price: number;
|
|
15
|
+
currency: string;
|
|
16
|
+
durationMinutes: number;
|
|
17
|
+
maxParticipants: number;
|
|
18
|
+
deliveryMethod: DeliveryMethod;
|
|
19
|
+
locationDetails: string | null;
|
|
20
|
+
isActive: boolean;
|
|
21
|
+
isFeatured: boolean;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
updatedAt: string;
|
|
24
|
+
creator?: {
|
|
25
|
+
id: string;
|
|
26
|
+
displayName: string;
|
|
27
|
+
slug: string;
|
|
28
|
+
avatarUrl: string | null;
|
|
29
|
+
specialties?: string[];
|
|
30
|
+
certifications?: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface ProductBookingResponse {
|
|
34
|
+
id: string;
|
|
35
|
+
productId: string;
|
|
36
|
+
userId: string;
|
|
37
|
+
scheduledAt: string;
|
|
38
|
+
timezone: string;
|
|
39
|
+
status: BookingStatus;
|
|
40
|
+
paymentStatus: PaymentStatus | null;
|
|
41
|
+
stripePaymentIntentId: string | null;
|
|
42
|
+
amountPaid: number | null;
|
|
43
|
+
currency: string;
|
|
44
|
+
clientNotes: string | null;
|
|
45
|
+
creatorNotes: string | null;
|
|
46
|
+
meetingLink: string | null;
|
|
47
|
+
isCompleted: boolean;
|
|
48
|
+
completedAt: string | null;
|
|
49
|
+
isCancelled: boolean;
|
|
50
|
+
cancelledAt: string | null;
|
|
51
|
+
cancelledBy: string | null;
|
|
52
|
+
cancellationReason: string | null;
|
|
53
|
+
createdAt: string;
|
|
54
|
+
updatedAt: string;
|
|
55
|
+
product?: CreatorProductResponse;
|
|
56
|
+
user?: {
|
|
57
|
+
id: string;
|
|
58
|
+
name: string;
|
|
59
|
+
profileImage: string | null;
|
|
60
|
+
email: string;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export interface ProductFilters {
|
|
64
|
+
page?: number;
|
|
65
|
+
limit?: number;
|
|
66
|
+
type?: ProductType;
|
|
67
|
+
deliveryMethod?: DeliveryMethod;
|
|
68
|
+
minPrice?: number;
|
|
69
|
+
maxPrice?: number;
|
|
70
|
+
isActive?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface PaginatedProductsResponse {
|
|
73
|
+
products: CreatorProductResponse[];
|
|
74
|
+
meta: {
|
|
75
|
+
total: number;
|
|
76
|
+
page: number;
|
|
77
|
+
limit: number;
|
|
78
|
+
totalPages: number;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
export declare const productKeys: {
|
|
82
|
+
all: readonly ["products"];
|
|
83
|
+
lists: () => readonly ["products", "list"];
|
|
84
|
+
list: (filters?: ProductFilters) => readonly ["products", "list", ProductFilters | undefined];
|
|
85
|
+
details: () => readonly ["products", "detail"];
|
|
86
|
+
detail: (id: string) => readonly ["products", "detail", string];
|
|
87
|
+
slug: (slug: string) => readonly ["products", "slug", string];
|
|
88
|
+
byCreator: (creatorId: string, filters?: ProductFilters) => readonly ["products", "creator", string, ProductFilters | undefined];
|
|
89
|
+
bookings: () => readonly ["products", "bookings"];
|
|
90
|
+
myBookings: () => readonly ["products", "bookings", "me"];
|
|
91
|
+
creatorBookings: (creatorId: string) => readonly ["products", "bookings", "creator", string];
|
|
92
|
+
bookingDetail: (bookingId: string) => readonly ["products", "bookings", "detail", string];
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Get paginated list of all active products
|
|
96
|
+
*
|
|
97
|
+
* @param filters - Query parameters for filtering and pagination
|
|
98
|
+
* @param options - TanStack Query options
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```tsx
|
|
102
|
+
* const { data, isLoading } = useProducts({
|
|
103
|
+
* page: 1,
|
|
104
|
+
* limit: 20,
|
|
105
|
+
* type: 'SESSION_1ON1',
|
|
106
|
+
* });
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function useProducts(filters?: ProductFilters, options?: Omit<UseQueryOptions<PaginatedProductsResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<PaginatedProductsResponse, Error>;
|
|
110
|
+
/**
|
|
111
|
+
* Get a single product by ID
|
|
112
|
+
*
|
|
113
|
+
* @param id - Product ID
|
|
114
|
+
* @param options - TanStack Query options
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```tsx
|
|
118
|
+
* const { data, isLoading } = useProduct('product-123');
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
export declare function useProduct(id: string, options?: Omit<UseQueryOptions<CreatorProductResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<CreatorProductResponse, Error>;
|
|
122
|
+
/**
|
|
123
|
+
* Get a product by its slug
|
|
124
|
+
*
|
|
125
|
+
* @param slug - Product slug
|
|
126
|
+
* @param options - TanStack Query options
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```tsx
|
|
130
|
+
* const { data, isLoading } = useProductBySlug('1-on-1-coaching-abc123');
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export declare function useProductBySlug(slug: string, options?: Omit<UseQueryOptions<CreatorProductResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<CreatorProductResponse, Error>;
|
|
134
|
+
/**
|
|
135
|
+
* Get products for a specific creator
|
|
136
|
+
*
|
|
137
|
+
* @param creatorId - Creator ID
|
|
138
|
+
* @param filters - Query parameters for filtering
|
|
139
|
+
* @param options - TanStack Query options
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```tsx
|
|
143
|
+
* const { data, isLoading } = useCreatorProducts('creator-123', {
|
|
144
|
+
* type: 'SESSION_1ON1',
|
|
145
|
+
* isActive: true,
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
export declare function useCreatorProducts(creatorId: string, filters?: ProductFilters, options?: Omit<UseQueryOptions<PaginatedProductsResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<PaginatedProductsResponse, Error>;
|
|
150
|
+
/**
|
|
151
|
+
* Get current user's product bookings
|
|
152
|
+
*
|
|
153
|
+
* @param options - TanStack Query options
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```tsx
|
|
157
|
+
* const { data, isLoading } = useMyProductBookings();
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
export declare function useMyProductBookings(options?: Omit<UseQueryOptions<ProductBookingResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<ProductBookingResponse[], Error>;
|
|
161
|
+
/**
|
|
162
|
+
* Get a single product booking by ID
|
|
163
|
+
*
|
|
164
|
+
* @param bookingId - Booking ID
|
|
165
|
+
* @param options - TanStack Query options
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```tsx
|
|
169
|
+
* const { data, isLoading } = useProductBooking('booking-123');
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
export declare function useProductBooking(bookingId: string, options?: Omit<UseQueryOptions<ProductBookingResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<ProductBookingResponse, Error>;
|
|
173
|
+
/**
|
|
174
|
+
* Get bookings for a creator's products (creator dashboard)
|
|
175
|
+
*
|
|
176
|
+
* @param creatorId - Creator ID
|
|
177
|
+
* @param options - TanStack Query options
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```tsx
|
|
181
|
+
* // For creator dashboard - see all bookings for their products
|
|
182
|
+
* const { data, isLoading } = useCreatorBookings('creator-123');
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
export declare function useCreatorBookings(creatorId: string, options?: Omit<UseQueryOptions<ProductBookingResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<ProductBookingResponse[], Error>;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.productKeys = void 0;
|
|
4
|
+
exports.useProducts = useProducts;
|
|
5
|
+
exports.useProduct = useProduct;
|
|
6
|
+
exports.useProductBySlug = useProductBySlug;
|
|
7
|
+
exports.useCreatorProducts = useCreatorProducts;
|
|
8
|
+
exports.useMyProductBookings = useMyProductBookings;
|
|
9
|
+
exports.useProductBooking = useProductBooking;
|
|
10
|
+
exports.useCreatorBookings = useCreatorBookings;
|
|
11
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
12
|
+
const client_1 = require("../client");
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// QUERY KEY FACTORY
|
|
15
|
+
// ============================================================================
|
|
16
|
+
exports.productKeys = {
|
|
17
|
+
all: ['products'],
|
|
18
|
+
lists: () => [...exports.productKeys.all, 'list'],
|
|
19
|
+
list: (filters) => [...exports.productKeys.lists(), filters],
|
|
20
|
+
details: () => [...exports.productKeys.all, 'detail'],
|
|
21
|
+
detail: (id) => [...exports.productKeys.details(), id],
|
|
22
|
+
slug: (slug) => [...exports.productKeys.all, 'slug', slug],
|
|
23
|
+
byCreator: (creatorId, filters) => [...exports.productKeys.all, 'creator', creatorId, filters],
|
|
24
|
+
bookings: () => [...exports.productKeys.all, 'bookings'],
|
|
25
|
+
myBookings: () => [...exports.productKeys.bookings(), 'me'],
|
|
26
|
+
creatorBookings: (creatorId) => [...exports.productKeys.bookings(), 'creator', creatorId],
|
|
27
|
+
bookingDetail: (bookingId) => [...exports.productKeys.bookings(), 'detail', bookingId],
|
|
28
|
+
};
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// QUERY HOOKS
|
|
31
|
+
// ============================================================================
|
|
32
|
+
/**
|
|
33
|
+
* Get paginated list of all active products
|
|
34
|
+
*
|
|
35
|
+
* @param filters - Query parameters for filtering and pagination
|
|
36
|
+
* @param options - TanStack Query options
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* const { data, isLoading } = useProducts({
|
|
41
|
+
* page: 1,
|
|
42
|
+
* limit: 20,
|
|
43
|
+
* type: 'SESSION_1ON1',
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
function useProducts(filters, options) {
|
|
48
|
+
return (0, react_query_1.useQuery)({
|
|
49
|
+
queryKey: exports.productKeys.list(filters),
|
|
50
|
+
queryFn: async () => {
|
|
51
|
+
const client = (0, client_1.getApiClient)();
|
|
52
|
+
const response = await client.get('/api/v1/products', {
|
|
53
|
+
params: filters,
|
|
54
|
+
});
|
|
55
|
+
return response.data;
|
|
56
|
+
},
|
|
57
|
+
...options,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get a single product by ID
|
|
62
|
+
*
|
|
63
|
+
* @param id - Product ID
|
|
64
|
+
* @param options - TanStack Query options
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* const { data, isLoading } = useProduct('product-123');
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
function useProduct(id, options) {
|
|
72
|
+
return (0, react_query_1.useQuery)({
|
|
73
|
+
queryKey: exports.productKeys.detail(id),
|
|
74
|
+
queryFn: async () => {
|
|
75
|
+
const client = (0, client_1.getApiClient)();
|
|
76
|
+
const response = await client.get(`/api/v1/products/${id}`);
|
|
77
|
+
return response.data;
|
|
78
|
+
},
|
|
79
|
+
enabled: !!id,
|
|
80
|
+
...options,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get a product by its slug
|
|
85
|
+
*
|
|
86
|
+
* @param slug - Product slug
|
|
87
|
+
* @param options - TanStack Query options
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```tsx
|
|
91
|
+
* const { data, isLoading } = useProductBySlug('1-on-1-coaching-abc123');
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
function useProductBySlug(slug, options) {
|
|
95
|
+
return (0, react_query_1.useQuery)({
|
|
96
|
+
queryKey: exports.productKeys.slug(slug),
|
|
97
|
+
queryFn: async () => {
|
|
98
|
+
const client = (0, client_1.getApiClient)();
|
|
99
|
+
const response = await client.get(`/api/v1/products/slug/${slug}`);
|
|
100
|
+
return response.data;
|
|
101
|
+
},
|
|
102
|
+
enabled: !!slug,
|
|
103
|
+
...options,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get products for a specific creator
|
|
108
|
+
*
|
|
109
|
+
* @param creatorId - Creator ID
|
|
110
|
+
* @param filters - Query parameters for filtering
|
|
111
|
+
* @param options - TanStack Query options
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```tsx
|
|
115
|
+
* const { data, isLoading } = useCreatorProducts('creator-123', {
|
|
116
|
+
* type: 'SESSION_1ON1',
|
|
117
|
+
* isActive: true,
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
function useCreatorProducts(creatorId, filters, options) {
|
|
122
|
+
return (0, react_query_1.useQuery)({
|
|
123
|
+
queryKey: exports.productKeys.byCreator(creatorId, filters),
|
|
124
|
+
queryFn: async () => {
|
|
125
|
+
const client = (0, client_1.getApiClient)();
|
|
126
|
+
const response = await client.get(`/api/v1/creators/${creatorId}/products`, {
|
|
127
|
+
params: filters,
|
|
128
|
+
});
|
|
129
|
+
return response.data;
|
|
130
|
+
},
|
|
131
|
+
enabled: !!creatorId,
|
|
132
|
+
...options,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get current user's product bookings
|
|
137
|
+
*
|
|
138
|
+
* @param options - TanStack Query options
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```tsx
|
|
142
|
+
* const { data, isLoading } = useMyProductBookings();
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
function useMyProductBookings(options) {
|
|
146
|
+
return (0, react_query_1.useQuery)({
|
|
147
|
+
queryKey: exports.productKeys.myBookings(),
|
|
148
|
+
queryFn: async () => {
|
|
149
|
+
const client = (0, client_1.getApiClient)();
|
|
150
|
+
const response = await client.get('/api/v1/users/me/product-bookings');
|
|
151
|
+
return response.data;
|
|
152
|
+
},
|
|
153
|
+
...options,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get a single product booking by ID
|
|
158
|
+
*
|
|
159
|
+
* @param bookingId - Booking ID
|
|
160
|
+
* @param options - TanStack Query options
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```tsx
|
|
164
|
+
* const { data, isLoading } = useProductBooking('booking-123');
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
function useProductBooking(bookingId, options) {
|
|
168
|
+
return (0, react_query_1.useQuery)({
|
|
169
|
+
queryKey: exports.productKeys.bookingDetail(bookingId),
|
|
170
|
+
queryFn: async () => {
|
|
171
|
+
const client = (0, client_1.getApiClient)();
|
|
172
|
+
const response = await client.get(`/api/v1/users/me/product-bookings/${bookingId}`);
|
|
173
|
+
return response.data;
|
|
174
|
+
},
|
|
175
|
+
enabled: !!bookingId,
|
|
176
|
+
...options,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get bookings for a creator's products (creator dashboard)
|
|
181
|
+
*
|
|
182
|
+
* @param creatorId - Creator ID
|
|
183
|
+
* @param options - TanStack Query options
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* // For creator dashboard - see all bookings for their products
|
|
188
|
+
* const { data, isLoading } = useCreatorBookings('creator-123');
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
function useCreatorBookings(creatorId, options) {
|
|
192
|
+
return (0, react_query_1.useQuery)({
|
|
193
|
+
queryKey: exports.productKeys.creatorBookings(creatorId),
|
|
194
|
+
queryFn: async () => {
|
|
195
|
+
const client = (0, client_1.getApiClient)();
|
|
196
|
+
const response = await client.get(`/api/v1/creators/${creatorId}/products/bookings`);
|
|
197
|
+
return response.data;
|
|
198
|
+
},
|
|
199
|
+
enabled: !!creatorId,
|
|
200
|
+
...options,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvcHJvZHVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUlBLGtDQWVDO0FBYUQsZ0NBY0M7QUFhRCw0Q0FjQztBQWlCRCxnREFpQkM7QUFZRCxvREFZQztBQWFELDhDQWNDO0FBY0QsZ0RBY0M7QUF2VEQsdURBQWtFO0FBQ2xFLHNDQUF5QztBQTBGekMsK0VBQStFO0FBQy9FLG9CQUFvQjtBQUNwQiwrRUFBK0U7QUFFbEUsUUFBQSxXQUFXLEdBQUc7SUFDekIsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFVO0lBQzFCLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFVO0lBQ2xELElBQUksRUFBRSxDQUFDLE9BQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sQ0FBVTtJQUM5RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBVTtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBVTtJQUMvRCxJQUFJLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFVO0lBQ25FLFNBQVMsRUFBRSxDQUFDLFNBQWlCLEVBQUUsT0FBd0IsRUFBRSxFQUFFLENBQ3pELENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVTtJQUM5RCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENB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O0dBV0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsU0FBaUIsRUFDakIsT0FBaUY7SUFFakYsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsbUJBQVcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQ2hELE9BQU8sRUFBRSxLQUFLLElBQXVDLEVBQUU7WUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFvQixTQUFTLG9CQUFvQixDQUFDLENBQUM7WUFDckYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVM7UUFDcEIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IHR5cGUgUHJvZHVjdFR5cGUgPSAnU0VTU0lPTl8xT04xJyB8ICdTRVNTSU9OX0dST1VQJyB8ICdQQUNLQUdFJyB8ICdXT1JLU0hPUCcgfCAnQ09OU1VMVEFUSU9OJztcbmV4cG9ydCB0eXBlIERlbGl2ZXJ5TWV0aG9kID0gJ1ZJREVPX0NBTEwnIHwgJ1BIT05FX0NBTEwnIHwgJ0lOX1BFUlNPTicgfCAnSFlCUklEJztcbmV4cG9ydCB0eXBlIEJvb2tpbmdTdGF0dXMgPSAnUEVORElORycgfCAnQ09ORklSTUVEJyB8ICdDQU5DRUxMRUQnIHwgJ0NPTVBMRVRFRCc7XG5leHBvcnQgdHlwZSBQYXltZW50U3RhdHVzID0gJ1BFTkRJTkcnIHwgJ1BBSUQnIHwgJ1JFRlVOREVEJyB8ICdGQUlMRUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0b3JQcm9kdWN0UmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBjcmVhdG9ySWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgaW1hZ2VVcmw6IHN0cmluZyB8IG51bGw7XG4gIHR5cGU6IFByb2R1Y3RUeXBlO1xuICBwcmljZTogbnVtYmVyO1xuICBjdXJyZW5jeTogc3RyaW5nO1xuICBkdXJhdGlvbk1pbnV0ZXM6IG51bWJlcjtcbiAgbWF4UGFydGljaXBhbnRzOiBudW1iZXI7XG4gIGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZDtcbiAgbG9jYXRpb25EZXRhaWxzOiBzdHJpbmcgfCBudWxsO1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgaXNGZWF0dXJlZDogYm9vbGVhbjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBjcmVhdG9yPzoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgYXZhdGFyVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIHNwZWNpYWx0aWVzPzogc3RyaW5nW107XG4gICAgY2VydGlmaWNhdGlvbnM/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlIHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvZHVjdElkOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBzY2hlZHVsZWRBdDogc3RyaW5nO1xuICB0aW1lem9uZTogc3RyaW5nO1xuICBzdGF0dXM6IEJvb2tpbmdTdGF0dXM7XG4gIHBheW1lbnRTdGF0dXM6IFBheW1lbnRTdGF0dXMgfCBudWxsO1xuICBzdHJpcGVQYXltZW50SW50ZW50SWQ6IHN0cmluZyB8IG51bGw7XG4gIGFtb3VudFBhaWQ6IG51bWJlciB8IG51bGw7XG4gIGN1cnJlbmN5OiBzdHJpbmc7XG4gIGNsaWVudE5vdGVzOiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdG9yTm90ZXM6IHN0cmluZyB8IG51bGw7XG4gIG1lZXRpbmdMaW5rOiBzdHJpbmcgfCBudWxsO1xuICBpc0NvbXBsZXRlZDogYm9vbGVhbjtcbiAgY29tcGxldGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGlzQ2FuY2VsbGVkOiBib29sZWFuO1xuICBjYW5jZWxsZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgY2FuY2VsbGVkQnk6IHN0cmluZyB8IG51bGw7XG4gIGNhbmNlbGxhdGlvblJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICBwcm9kdWN0PzogQ3JlYXRvclByb2R1Y3RSZXNwb25zZTtcbiAgdXNlcj86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwcm9maWxlSW1hZ2U6IHN0cmluZyB8IG51bGw7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RmlsdGVycyB7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0eXBlPzogUHJvZHVjdFR5cGU7XG4gIGRlbGl2ZXJ5TWV0aG9kPzogRGVsaXZlcnlNZXRob2Q7XG4gIG1pblByaWNlPzogbnVtYmVyO1xuICBtYXhQcmljZT86IG51bWJlcjtcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRlZFByb2R1Y3RzUmVzcG9uc2Uge1xuICBwcm9kdWN0czogQ3JlYXRvclByb2R1Y3RSZXNwb25zZVtdO1xuICBtZXRhOiB7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgbGltaXQ6IG51bWJlcjtcbiAgICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIH07XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWSBGQUNUT1JZXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBwcm9kdWN0S2V5cyA9IHtcbiAgYWxsOiBbJ3Byb2R1Y3RzJ10gYXMgY29uc3QsXG4gIGxpc3RzOiAoKSA9PiBbLi4ucHJvZHVjdEtleXMuYWxsLCAnbGlzdCddIGFzIGNvbnN0LFxuICBsaXN0OiAoZmlsdGVycz86IFByb2R1Y3RGaWx0ZXJzKSA9PiBbLi4ucHJvZHVjdEtleXMubGlzdHMoKSwgZmlsdGVyc10gYXMgY29uc3QsXG4gIGRldGFpbHM6ICgpID0+IFsuLi5wcm9kdWN0S2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLnByb2R1Y3RLZXlzLmRldGFpbHMoKSwgaWRdIGFzIGNvbnN0LFxuICBzbHVnOiAoc2x1Zzogc3RyaW5nKSA9PiBbLi4ucHJvZHVjdEtleXMuYWxsLCAnc2x1ZycsIHNsdWddIGFzIGNvbnN0LFxuICBieUNyZWF0b3I6IChjcmVhdG9ySWQ6IHN0cmluZywgZmlsdGVycz86IFByb2R1Y3RGaWx0ZXJzKSA9PlxuICAgIFsuLi5wcm9kdWN0S2V5cy5hbGwsICdjcmVhdG9yJywgY3JlYXRvcklkLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgYm9va2luZ3M6ICgpID0+IFsuLi5wcm9kdWN0S2V5cy5hbGwsICdib29raW5ncyddIGFzIGNvbnN0LFxuICBteUJvb2tpbmdzOiAoKSA9PiBbLi4ucHJvZHVjdEtleXMuYm9va2luZ3MoKSwgJ21lJ10gYXMgY29uc3QsXG4gIGNyZWF0b3JCb29raW5nczogKGNyZWF0b3JJZDogc3RyaW5nKSA9PiBbLi4ucHJvZHVjdEtleXMuYm9va2luZ3MoKSwgJ2NyZWF0b3InLCBjcmVhdG9ySWRdIGFzIGNvbnN0LFxuICBib29raW5nRGV0YWlsOiAoYm9va2luZ0lkOiBzdHJpbmcpID0+IFsuLi5wcm9kdWN0S2V5cy5ib29raW5ncygpLCAnZGV0YWlsJywgYm9va2luZ0lkXSBhcyBjb25zdCxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IHBhZ2luYXRlZCBsaXN0IG9mIGFsbCBhY3RpdmUgcHJvZHVjdHNcbiAqXG4gKiBAcGFyYW0gZmlsdGVycyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBhbmQgcGFnaW5hdGlvblxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZVByb2R1Y3RzKHtcbiAqICAgcGFnZTogMSxcbiAqICAgbGltaXQ6IDIwLFxuICogICB0eXBlOiAnU0VTU0lPTl8xT04xJyxcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VQcm9kdWN0cyhcbiAgZmlsdGVycz86IFByb2R1Y3RGaWx0ZXJzLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UGFnaW5hdGVkUHJvZHVjdHNSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogcHJvZHVjdEtleXMubGlzdChmaWx0ZXJzKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQYWdpbmF0ZWRQcm9kdWN0c1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9wcm9kdWN0cycsIHtcbiAgICAgICAgcGFyYW1zOiBmaWx0ZXJzLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIHNpbmdsZSBwcm9kdWN0IGJ5IElEXG4gKlxuICogQHBhcmFtIGlkIC0gUHJvZHVjdCBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZVByb2R1Y3QoJ3Byb2R1Y3QtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVByb2R1Y3QoXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxDcmVhdG9yUHJvZHVjdFJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5kZXRhaWwoaWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JQcm9kdWN0UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL3Byb2R1Y3RzLyR7aWR9YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhaWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgcHJvZHVjdCBieSBpdHMgc2x1Z1xuICpcbiAqIEBwYXJhbSBzbHVnIC0gUHJvZHVjdCBzbHVnXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlUHJvZHVjdEJ5U2x1ZygnMS1vbi0xLWNvYWNoaW5nLWFiYzEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VQcm9kdWN0QnlTbHVnKFxuICBzbHVnOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxDcmVhdG9yUHJvZHVjdFJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBwcm9kdWN0S2V5cy5zbHVnKHNsdWcpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyZWF0b3JQcm9kdWN0UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KGAvYXBpL3YxL3Byb2R1Y3RzL3NsdWcvJHtzbHVnfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNsdWcsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHByb2R1Y3RzIGZvciBhIHNwZWNpZmljIGNyZWF0b3JcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIGZpbHRlcnMgLSBRdWVyeSBwYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmdcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yUHJvZHVjdHMoJ2NyZWF0b3ItMTIzJywge1xuICogICB0eXBlOiAnU0VTU0lPTl8xT04xJyxcbiAqICAgaXNBY3RpdmU6IHRydWUsXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvclByb2R1Y3RzKFxuICBjcmVhdG9ySWQ6IHN0cmluZyxcbiAgZmlsdGVycz86IFByb2R1Y3RGaWx0ZXJzLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UGFnaW5hdGVkUHJvZHVjdHNSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogcHJvZHVjdEtleXMuYnlDcmVhdG9yKGNyZWF0b3JJZCwgZmlsdGVycyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkUHJvZHVjdHNSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Byb2R1Y3RzYCwge1xuICAgICAgICBwYXJhbXM6IGZpbHRlcnMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjcmVhdG9ySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGN1cnJlbnQgdXNlcidzIHByb2R1Y3QgYm9va2luZ3NcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlTXlQcm9kdWN0Qm9va2luZ3MoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTXlQcm9kdWN0Qm9va2luZ3MoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLm15Qm9va2luZ3MoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3VzZXJzL21lL3Byb2R1Y3QtYm9va2luZ3MnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGEgc2luZ2xlIHByb2R1Y3QgYm9va2luZyBieSBJRFxuICpcbiAqIEBwYXJhbSBib29raW5nSWQgLSBCb29raW5nIElEXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlUHJvZHVjdEJvb2tpbmcoJ2Jvb2tpbmctMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVByb2R1Y3RCb29raW5nKFxuICBib29raW5nSWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFByb2R1Y3RCb29raW5nUmVzcG9uc2U+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmJvb2tpbmdEZXRhaWwoYm9va2luZ0lkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS91c2Vycy9tZS9wcm9kdWN0LWJvb2tpbmdzLyR7Ym9va2luZ0lkfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIWJvb2tpbmdJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYm9va2luZ3MgZm9yIGEgY3JlYXRvcidzIHByb2R1Y3RzIChjcmVhdG9yIGRhc2hib2FyZClcbiAqXG4gKiBAcGFyYW0gY3JlYXRvcklkIC0gQ3JlYXRvciBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogLy8gRm9yIGNyZWF0b3IgZGFzaGJvYXJkIC0gc2VlIGFsbCBib29raW5ncyBmb3IgdGhlaXIgcHJvZHVjdHNcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VDcmVhdG9yQm9va2luZ3MoJ2NyZWF0b3ItMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0b3JCb29raW5ncyhcbiAgY3JlYXRvcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQcm9kdWN0Qm9va2luZ1Jlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHByb2R1Y3RLZXlzLmNyZWF0b3JCb29raW5ncyhjcmVhdG9ySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFByb2R1Y3RCb29raW5nUmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvY3JlYXRvcnMvJHtjcmVhdG9ySWR9L3Byb2R1Y3RzL2Jvb2tpbmdzYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY3JlYXRvcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { UseQueryOptions } from '@tanstack/react-query';
|
|
2
|
-
import type { CheckInResponse, CheckInStreakResponse, MoodLogResponse, WinResponse, HabitResponse, ReflectionResponse } from '../types';
|
|
2
|
+
import type { CheckInResponse, CheckInStreakResponse, MoodLogResponse, WinResponse, HabitResponse, ReflectionResponse, CravingLogResponse, CravingStatsResponse } from '../types';
|
|
3
3
|
export declare const supportKeys: {
|
|
4
4
|
all: readonly ["support"];
|
|
5
5
|
checkIns: () => readonly ["support", "check-ins"];
|
|
6
6
|
checkInToday: () => readonly ["support", "check-ins", "today"];
|
|
7
7
|
checkInStreak: () => readonly ["support", "check-ins", "streak"];
|
|
8
8
|
moodLogs: () => readonly ["support", "mood"];
|
|
9
|
+
cravings: () => readonly ["support", "cravings"];
|
|
10
|
+
cravingStats: (days?: number) => readonly ["support", "cravings", "stats", number | undefined];
|
|
9
11
|
wins: () => readonly ["support", "wins"];
|
|
10
12
|
winsByCategory: () => readonly ["support", "wins", "by-category"];
|
|
11
13
|
habits: () => readonly ["support", "habits"];
|
|
@@ -184,3 +186,46 @@ export declare function useReflections(options?: Omit<UseQueryOptions<Reflection
|
|
|
184
186
|
createdAt: string;
|
|
185
187
|
updatedAt: string;
|
|
186
188
|
}[], Error>;
|
|
189
|
+
/**
|
|
190
|
+
* Get user's craving logs
|
|
191
|
+
*
|
|
192
|
+
* @param options - TanStack Query options
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```tsx
|
|
196
|
+
* const { data, isLoading } = useCravings();
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare function useCravings(options?: Omit<UseQueryOptions<CravingLogResponse[]>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
|
|
200
|
+
id: string;
|
|
201
|
+
userId: string;
|
|
202
|
+
intensity: number;
|
|
203
|
+
trigger?: Record<string, never>;
|
|
204
|
+
triggerType?: "STRESS" | "SOCIAL_PRESSURE" | "BOREDOM" | "EMOTIONAL" | "CELEBRATION" | "HABIT" | "PHYSICAL" | "ENVIRONMENT" | "OTHER";
|
|
205
|
+
notes?: Record<string, never>;
|
|
206
|
+
copingUsed: string[];
|
|
207
|
+
didResist?: Record<string, never>;
|
|
208
|
+
situation?: Record<string, never>;
|
|
209
|
+
mood?: Record<string, never>;
|
|
210
|
+
createdAt: string;
|
|
211
|
+
}[], Error>;
|
|
212
|
+
/**
|
|
213
|
+
* Get craving statistics for a given period
|
|
214
|
+
*
|
|
215
|
+
* @param days - Number of days to include (default: 30)
|
|
216
|
+
* @param options - TanStack Query options
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* const { data, isLoading } = useCravingStats(30);
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
export declare function useCravingStats(days?: number, options?: Omit<UseQueryOptions<CravingStatsResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
|
|
224
|
+
averageIntensity: number;
|
|
225
|
+
totalLogs: number;
|
|
226
|
+
timesResisted: number;
|
|
227
|
+
resistanceRate: number;
|
|
228
|
+
topTriggers: string[];
|
|
229
|
+
topCopingStrategies: string[];
|
|
230
|
+
intensityDistribution: Record<string, never>;
|
|
231
|
+
}, Error>;
|
|
@@ -9,6 +9,8 @@ exports.useWins = useWins;
|
|
|
9
9
|
exports.useWinsByCategory = useWinsByCategory;
|
|
10
10
|
exports.useHabits = useHabits;
|
|
11
11
|
exports.useReflections = useReflections;
|
|
12
|
+
exports.useCravings = useCravings;
|
|
13
|
+
exports.useCravingStats = useCravingStats;
|
|
12
14
|
const react_query_1 = require("@tanstack/react-query");
|
|
13
15
|
const client_1 = require("../client");
|
|
14
16
|
// ============================================================================
|
|
@@ -20,6 +22,8 @@ exports.supportKeys = {
|
|
|
20
22
|
checkInToday: () => [...exports.supportKeys.checkIns(), 'today'],
|
|
21
23
|
checkInStreak: () => [...exports.supportKeys.checkIns(), 'streak'],
|
|
22
24
|
moodLogs: () => [...exports.supportKeys.all, 'mood'],
|
|
25
|
+
cravings: () => [...exports.supportKeys.all, 'cravings'],
|
|
26
|
+
cravingStats: (days) => [...exports.supportKeys.cravings(), 'stats', days],
|
|
23
27
|
wins: () => [...exports.supportKeys.all, 'wins'],
|
|
24
28
|
winsByCategory: () => [...exports.supportKeys.wins(), 'by-category'],
|
|
25
29
|
habits: () => [...exports.supportKeys.all, 'habits'],
|
|
@@ -199,4 +203,47 @@ function useReflections(options) {
|
|
|
199
203
|
...options,
|
|
200
204
|
});
|
|
201
205
|
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQW1EQSxrQ0FhQztBQVlELDBDQWFDO0FBWUQsNENBYUM7QUFZRCxrQ0FZQztBQVlELDBCQVlDO0FBWUQsOENBWUM7QUFZRCw4QkFZQztBQVlELHdDQVlDO0FBMU9ELHVEQUFrRTtBQUNsRSxzQ0FBeUM7QUFVekMsK0VBQStFO0FBQy9FLG9CQUFvQjtBQUNwQiwrRUFBK0U7QUFFbEUsUUFBQSxXQUFXLEdBQUc7SUFDekIsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFVO0lBQ3pCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFVO0lBQzFELFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQVU7SUFDakUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsQ0FBVTtJQUNuRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNyRCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNqRCxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsYUFBYSxDQUFVO0lBQ3JFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ3JELFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FB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bkMsT0FBTyxFQUFFLEtBQUssSUFBbUMsRUFBRTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNqRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VRdWVyeSwgVXNlUXVlcnlPcHRpb25zIH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7XG4gIENoZWNrSW5SZXNwb25zZSxcbiAgQ2hlY2tJblN0cmVha1Jlc3BvbnNlLFxuICBNb29kTG9nUmVzcG9uc2UsXG4gIFdpblJlc3BvbnNlLFxuICBIYWJpdFJlc3BvbnNlLFxuICBSZWZsZWN0aW9uUmVzcG9uc2UsXG59IGZyb20gJy4uL3R5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgS0VZIEZBQ1RPUllcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IHN1cHBvcnRLZXlzID0ge1xuICBhbGw6IFsnc3VwcG9ydCddIGFzIGNvbnN0LFxuICBjaGVja0luczogKCkgPT4gWy4uLnN1cHBvcnRLZXlzLmFsbCwgJ2NoZWNrLWlucyddIGFzIGNvbnN0LFxuICBjaGVja0luVG9kYXk6ICgpID0+IFsuLi5zdXBwb3J0S2V5cy5jaGVja0lucygpLCAndG9kYXknXSBhcyBjb25zdCxcbiAgY2hlY2tJblN0cmVhazogKCkgPT4gWy4uLnN1cHBvcnRLZXlzLmNoZWNrSW5zKCksICdzdHJlYWsnXSBhcyBjb25zdCxcbiAgbW9vZExvZ3M6ICgpID0+IFsuLi5zdXBwb3J0S2V5cy5hbGwsICdtb29kJ10gYXMgY29uc3QsXG4gIHdpbnM6ICgpID0+IFsuLi5zdXBwb3J0S2V5cy5hbGwsICd3aW5zJ10gYXMgY29uc3QsXG4gIHdpbnNCeUNhdGVnb3J5OiAoKSA9PiBbLi4uc3VwcG9ydEtleXMud2lucygpLCAnYnktY2F0ZWdvcnknXSBhcyBjb25zdCxcbiAgaGFiaXRzOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuYWxsLCAnaGFiaXRzJ10gYXMgY29uc3QsXG4gIHJlZmxlY3Rpb25zOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuYWxsLCAncmVmbGVjdGlvbnMnXSBhcyBjb25zdCxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luc0J5Q2F0ZWdvcnkge1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICB3aW5zOiBXaW5SZXNwb25zZVtdO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgZGFpbHkgY2hlY2staW5zXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNoZWNrSW5zKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNoZWNrSW5zKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLmNoZWNrSW5zKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvY2hlY2staW5zJyk7XG4gICAgICAvLyBBUEkgd3JhcHMgcmVzcG9uc2VzIGluIHsgZGF0YTogWy4uLl0sIG1ldGE6IHsuLi59IH1cbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGEgfHwgW107XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdG9kYXkncyBjaGVjay1pblxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VUb2RheUNoZWNrSW4oKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVG9kYXlDaGVja0luKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3VwcG9ydEtleXMuY2hlY2tJblRvZGF5KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblJlc3BvbnNlIHwgbnVsbD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9jaGVjay1pbnMvdG9kYXknKTtcbiAgICAgIC8vIEFQSSB3cmFwcyByZXNwb25zZXMgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgPz8gcmVzcG9uc2UuZGF0YSA/PyBudWxsO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHVzZXIncyBjaGVjay1pbiBzdHJlYWtcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlQ2hlY2tJblN0cmVhaygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDaGVja0luU3RyZWFrKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblN0cmVha1Jlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBzdXBwb3J0S2V5cy5jaGVja0luU3RyZWFrKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblN0cmVha1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9zdXBwb3J0L2NoZWNrLWlucy9zdHJlYWsnKTtcbiAgICAgIC8vIEFQSSB3cmFwcyByZXNwb25zZXMgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YSB8fCB7IGN1cnJlbnRTdHJlYWs6IDAsIGxvbmdlc3RTdHJlYWs6IDAsIHRvdGFsQ2hlY2tJbnM6IDAgfTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgbW9vZCBsb2dzXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZU1vb2RMb2dzKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vb2RMb2dzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8TW9vZExvZ1Jlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLm1vb2RMb2dzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TW9vZExvZ1Jlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvbW9vZCcpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdXNlcidzIHdpbnNcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlV2lucygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VXaW5zKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8V2luUmVzcG9uc2VbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3VwcG9ydEtleXMud2lucygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFdpblJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvd2lucycpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdXNlcidzIHdpbnMgZ3JvdXBlZCBieSBjYXRlZ29yeVxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VXaW5zQnlDYXRlZ29yeSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VXaW5zQnlDYXRlZ29yeShcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFdpbnNCeUNhdGVnb3J5W10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLndpbnNCeUNhdGVnb3J5KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8V2luc0J5Q2F0ZWdvcnlbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC93aW5zL2J5LWNhdGVnb3J5Jyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgaGFiaXRzXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUhhYml0cygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VIYWJpdHMoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxIYWJpdFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLmhhYml0cygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEhhYml0UmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9oYWJpdHMnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHVzZXIncyByZWZsZWN0aW9uc1xuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VSZWZsZWN0aW9ucygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWZsZWN0aW9ucyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFJlZmxlY3Rpb25SZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBzdXBwb3J0S2V5cy5yZWZsZWN0aW9ucygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFJlZmxlY3Rpb25SZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9zdXBwb3J0L3JlZmxlY3Rpb25zJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
|
|
206
|
+
/**
|
|
207
|
+
* Get user's craving logs
|
|
208
|
+
*
|
|
209
|
+
* @param options - TanStack Query options
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```tsx
|
|
213
|
+
* const { data, isLoading } = useCravings();
|
|
214
|
+
* ```
|
|
215
|
+
*/
|
|
216
|
+
function useCravings(options) {
|
|
217
|
+
return (0, react_query_1.useQuery)({
|
|
218
|
+
queryKey: exports.supportKeys.cravings(),
|
|
219
|
+
queryFn: async () => {
|
|
220
|
+
const client = (0, client_1.getApiClient)();
|
|
221
|
+
const response = await client.get('/api/v1/support/cravings');
|
|
222
|
+
return response.data;
|
|
223
|
+
},
|
|
224
|
+
...options,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get craving statistics for a given period
|
|
229
|
+
*
|
|
230
|
+
* @param days - Number of days to include (default: 30)
|
|
231
|
+
* @param options - TanStack Query options
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```tsx
|
|
235
|
+
* const { data, isLoading } = useCravingStats(30);
|
|
236
|
+
* ```
|
|
237
|
+
*/
|
|
238
|
+
function useCravingStats(days = 30, options) {
|
|
239
|
+
return (0, react_query_1.useQuery)({
|
|
240
|
+
queryKey: exports.supportKeys.cravingStats(days),
|
|
241
|
+
queryFn: async () => {
|
|
242
|
+
const client = (0, client_1.getApiClient)();
|
|
243
|
+
const response = await client.get(`/api/v1/support/cravings/stats?days=${days}`);
|
|
244
|
+
return response.data;
|
|
245
|
+
},
|
|
246
|
+
...options,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9zdXBwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVEQSxrQ0FhQztBQVlELDBDQWFDO0FBWUQsNENBYUM7QUFZRCxrQ0FZQztBQVlELDBCQVlDO0FBWUQsOENBWUM7QUFZRCw4QkFZQztBQVlELHdDQVlDO0FBWUQsa0NBWUM7QUFhRCwwQ0FhQztBQWhTRCx1REFBa0U7QUFDbEUsc0NBQXlDO0FBWXpDLCtFQUErRTtBQUMvRSxvQkFBb0I7QUFDcEIsK0VBQStFO0FBRWxFLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBVTtJQUN6QixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBVTtJQUMxRCxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLG1CQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQ2pFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLENBQVU7SUFDbkUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQVU7SUFDckQsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQVU7SUFDekQsWUFBWSxFQUFFLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFVO0lBQ3BGLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFVO0lBQ2pELGNB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QUU7WUFDakQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgQ2hlY2tJblJlc3BvbnNlLFxuICBDaGVja0luU3RyZWFrUmVzcG9uc2UsXG4gIE1vb2RMb2dSZXNwb25zZSxcbiAgV2luUmVzcG9uc2UsXG4gIEhhYml0UmVzcG9uc2UsXG4gIFJlZmxlY3Rpb25SZXNwb25zZSxcbiAgQ3JhdmluZ0xvZ1Jlc3BvbnNlLFxuICBDcmF2aW5nU3RhdHNSZXNwb25zZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVkgRkFDVE9SWVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3Qgc3VwcG9ydEtleXMgPSB7XG4gIGFsbDogWydzdXBwb3J0J10gYXMgY29uc3QsXG4gIGNoZWNrSW5zOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuYWxsLCAnY2hlY2staW5zJ10gYXMgY29uc3QsXG4gIGNoZWNrSW5Ub2RheTogKCkgPT4gWy4uLnN1cHBvcnRLZXlzLmNoZWNrSW5zKCksICd0b2RheSddIGFzIGNvbnN0LFxuICBjaGVja0luU3RyZWFrOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuY2hlY2tJbnMoKSwgJ3N0cmVhayddIGFzIGNvbnN0LFxuICBtb29kTG9nczogKCkgPT4gWy4uLnN1cHBvcnRLZXlzLmFsbCwgJ21vb2QnXSBhcyBjb25zdCxcbiAgY3JhdmluZ3M6ICgpID0+IFsuLi5zdXBwb3J0S2V5cy5hbGwsICdjcmF2aW5ncyddIGFzIGNvbnN0LFxuICBjcmF2aW5nU3RhdHM6IChkYXlzPzogbnVtYmVyKSA9PiBbLi4uc3VwcG9ydEtleXMuY3JhdmluZ3MoKSwgJ3N0YXRzJywgZGF5c10gYXMgY29uc3QsXG4gIHdpbnM6ICgpID0+IFsuLi5zdXBwb3J0S2V5cy5hbGwsICd3aW5zJ10gYXMgY29uc3QsXG4gIHdpbnNCeUNhdGVnb3J5OiAoKSA9PiBbLi4uc3VwcG9ydEtleXMud2lucygpLCAnYnktY2F0ZWdvcnknXSBhcyBjb25zdCxcbiAgaGFiaXRzOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuYWxsLCAnaGFiaXRzJ10gYXMgY29uc3QsXG4gIHJlZmxlY3Rpb25zOiAoKSA9PiBbLi4uc3VwcG9ydEtleXMuYWxsLCAncmVmbGVjdGlvbnMnXSBhcyBjb25zdCxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luc0J5Q2F0ZWdvcnkge1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICB3aW5zOiBXaW5SZXNwb25zZVtdO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgZGFpbHkgY2hlY2staW5zXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNoZWNrSW5zKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNoZWNrSW5zKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLmNoZWNrSW5zKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvY2hlY2staW5zJyk7XG4gICAgICAvLyBBUEkgd3JhcHMgcmVzcG9uc2VzIGluIHsgZGF0YTogWy4uLl0sIG1ldGE6IHsuLi59IH1cbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGEgfHwgW107XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdG9kYXkncyBjaGVjay1pblxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VUb2RheUNoZWNrSW4oKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVG9kYXlDaGVja0luKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblJlc3BvbnNlIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3VwcG9ydEtleXMuY2hlY2tJblRvZGF5KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblJlc3BvbnNlIHwgbnVsbD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9jaGVjay1pbnMvdG9kYXknKTtcbiAgICAgIC8vIEFQSSB3cmFwcyByZXNwb25zZXMgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgPz8gcmVzcG9uc2UuZGF0YSA/PyBudWxsO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHVzZXIncyBjaGVjay1pbiBzdHJlYWtcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlQ2hlY2tJblN0cmVhaygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDaGVja0luU3RyZWFrKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2hlY2tJblN0cmVha1Jlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBzdXBwb3J0S2V5cy5jaGVja0luU3RyZWFrKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2hlY2tJblN0cmVha1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9zdXBwb3J0L2NoZWNrLWlucy9zdHJlYWsnKTtcbiAgICAgIC8vIEFQSSB3cmFwcyByZXNwb25zZXMgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YSB8fCB7IGN1cnJlbnRTdHJlYWs6IDAsIGxvbmdlc3RTdHJlYWs6IDAsIHRvdGFsQ2hlY2tJbnM6IDAgfTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgbW9vZCBsb2dzXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZU1vb2RMb2dzKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vb2RMb2dzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8TW9vZExvZ1Jlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLm1vb2RMb2dzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TW9vZExvZ1Jlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvbW9vZCcpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdXNlcidzIHdpbnNcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGEsIGlzTG9hZGluZyB9ID0gdXNlV2lucygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VXaW5zKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8V2luUmVzcG9uc2VbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3VwcG9ydEtleXMud2lucygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFdpblJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvd2lucycpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdXNlcidzIHdpbnMgZ3JvdXBlZCBieSBjYXRlZ29yeVxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VXaW5zQnlDYXRlZ29yeSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VXaW5zQnlDYXRlZ29yeShcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFdpbnNCeUNhdGVnb3J5W10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLndpbnNCeUNhdGVnb3J5KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8V2luc0J5Q2F0ZWdvcnlbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC93aW5zL2J5LWNhdGVnb3J5Jyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgaGFiaXRzXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUhhYml0cygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VIYWJpdHMoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxIYWJpdFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLmhhYml0cygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEhhYml0UmVzcG9uc2VbXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9oYWJpdHMnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHVzZXIncyByZWZsZWN0aW9uc1xuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YSwgaXNMb2FkaW5nIH0gPSB1c2VSZWZsZWN0aW9ucygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWZsZWN0aW9ucyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFJlZmxlY3Rpb25SZXNwb25zZVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBzdXBwb3J0S2V5cy5yZWZsZWN0aW9ucygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFJlZmxlY3Rpb25SZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9zdXBwb3J0L3JlZmxlY3Rpb25zJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB1c2VyJ3MgY3JhdmluZyBsb2dzXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyYXZpbmdzKCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyYXZpbmdzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q3JhdmluZ0xvZ1Jlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKSB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHN1cHBvcnRLZXlzLmNyYXZpbmdzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q3JhdmluZ0xvZ1Jlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvY3JhdmluZ3MnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGNyYXZpbmcgc3RhdGlzdGljcyBmb3IgYSBnaXZlbiBwZXJpb2RcbiAqXG4gKiBAcGFyYW0gZGF5cyAtIE51bWJlciBvZiBkYXlzIHRvIGluY2x1ZGUgKGRlZmF1bHQ6IDMwKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhLCBpc0xvYWRpbmcgfSA9IHVzZUNyYXZpbmdTdGF0cygzMCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyYXZpbmdTdGF0cyhcbiAgZGF5czogbnVtYmVyID0gMzAsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxDcmF2aW5nU3RhdHNSZXNwb25zZT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3VwcG9ydEtleXMuY3JhdmluZ1N0YXRzKGRheXMpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPENyYXZpbmdTdGF0c1Jlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldChgL2FwaS92MS9zdXBwb3J0L2NyYXZpbmdzL3N0YXRzP2RheXM9JHtkYXlzfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
|