@spotsdev/sdk 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/client.d.ts +1 -1
- package/dist/api/client.js +7 -3
- package/dist/api/entities.d.ts +318 -0
- package/dist/api/entities.js +9 -0
- package/dist/api/mutations/clubs.d.ts +6 -6
- package/dist/api/mutations/clubs.js +12 -10
- package/dist/api/mutations/conversations.d.ts +7 -7
- package/dist/api/mutations/conversations.js +17 -13
- package/dist/api/mutations/index.js +1 -1
- package/dist/api/mutations/notifications.d.ts +4 -4
- package/dist/api/mutations/notifications.js +7 -7
- package/dist/api/mutations/orders.d.ts +7 -7
- package/dist/api/mutations/orders.js +11 -13
- package/dist/api/mutations/posts.d.ts +13 -13
- package/dist/api/mutations/posts.js +41 -29
- package/dist/api/mutations/products.d.ts +5 -5
- package/dist/api/mutations/products.js +9 -13
- package/dist/api/mutations/spots.d.ts +42 -8
- package/dist/api/mutations/spots.js +51 -13
- package/dist/api/mutations/users.d.ts +12 -10
- package/dist/api/mutations/users.js +20 -18
- package/dist/api/queries/auth.d.ts +5 -5
- package/dist/api/queries/auth.js +7 -7
- package/dist/api/queries/clubs.d.ts +7 -7
- package/dist/api/queries/clubs.js +11 -11
- package/dist/api/queries/conversations.d.ts +5 -5
- package/dist/api/queries/conversations.js +7 -7
- package/dist/api/queries/index.js +1 -1
- package/dist/api/queries/misc.d.ts +8 -32
- package/dist/api/queries/misc.js +28 -66
- package/dist/api/queries/notifications.d.ts +4 -4
- package/dist/api/queries/notifications.js +5 -5
- package/dist/api/queries/orders.d.ts +4 -4
- package/dist/api/queries/orders.js +7 -7
- package/dist/api/queries/posts.d.ts +44 -7
- package/dist/api/queries/posts.js +118 -15
- package/dist/api/queries/products.d.ts +6 -10
- package/dist/api/queries/products.js +7 -9
- package/dist/api/queries/spots.d.ts +31 -16
- package/dist/api/queries/spots.js +113 -31
- package/dist/api/queries/templates.d.ts +6 -9
- package/dist/api/queries/templates.js +8 -13
- package/dist/api/queries/users.d.ts +25 -11
- package/dist/api/queries/users.js +75 -27
- package/dist/api/types.d.ts +36 -33
- package/dist/api/types.js +6 -7
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -8
- package/package.json +6 -21
- package/src/api/client.ts +45 -30
- package/src/api/entities.ts +424 -0
- package/src/api/mutations/clubs.ts +73 -40
- package/src/api/mutations/conversations.ts +91 -47
- package/src/api/mutations/index.ts +8 -8
- package/src/api/mutations/notifications.ts +48 -25
- package/src/api/mutations/orders.ts +101 -70
- package/src/api/mutations/posts.ts +229 -118
- package/src/api/mutations/products.ts +120 -81
- package/src/api/mutations/spots.ts +167 -55
- package/src/api/mutations/users.ts +109 -76
- package/src/api/queries/auth.ts +49 -24
- package/src/api/queries/clubs.ts +53 -38
- package/src/api/queries/conversations.ts +48 -30
- package/src/api/queries/index.ts +21 -21
- package/src/api/queries/misc.ts +53 -82
- package/src/api/queries/notifications.ts +32 -21
- package/src/api/queries/orders.ts +59 -42
- package/src/api/queries/posts.ts +203 -48
- package/src/api/queries/products.ts +51 -44
- package/src/api/queries/spots.ts +216 -85
- package/src/api/queries/templates.ts +39 -32
- package/src/api/queries/users.ts +157 -64
- package/src/api/types.ts +72 -118
- package/src/index.ts +5 -11
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* TanStack Query hooks for order-related operations.
|
|
5
5
|
*/
|
|
6
|
-
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
6
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
7
|
import type { Order, OrderItem, Product, Spot, OrderStatus, PaginatedResponse } from '../types';
|
|
8
8
|
export declare const orderKeys: {
|
|
9
9
|
all: readonly ["orders"];
|
|
@@ -28,18 +28,18 @@ export interface OrderFilters {
|
|
|
28
28
|
/**
|
|
29
29
|
* Get current user's orders (purchases)
|
|
30
30
|
*
|
|
31
|
-
* @endpoint GET /
|
|
31
|
+
* @endpoint GET /users/me/orders
|
|
32
32
|
*/
|
|
33
33
|
export declare function useMyOrders(params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
34
34
|
/**
|
|
35
35
|
* Get a single order by ID
|
|
36
36
|
*
|
|
37
|
-
* @endpoint GET /
|
|
37
|
+
* @endpoint GET /orders/{orderId}
|
|
38
38
|
*/
|
|
39
39
|
export declare function useOrder(orderId: string, options?: Omit<UseQueryOptions<OrderWithDetails>, 'queryKey' | 'queryFn'>): UseQueryResult<OrderWithDetails>;
|
|
40
40
|
/**
|
|
41
41
|
* Get orders for a spot (seller view)
|
|
42
42
|
*
|
|
43
|
-
* @endpoint GET /
|
|
43
|
+
* @endpoint GET /seller/spots/{spotId}/orders
|
|
44
44
|
*/
|
|
45
45
|
export declare function useSpotOrders(spotId: string, params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
@@ -29,7 +29,7 @@ exports.orderKeys = {
|
|
|
29
29
|
/**
|
|
30
30
|
* Get current user's orders (purchases)
|
|
31
31
|
*
|
|
32
|
-
* @endpoint GET /
|
|
32
|
+
* @endpoint GET /users/me/orders
|
|
33
33
|
*/
|
|
34
34
|
function useMyOrders(params, options) {
|
|
35
35
|
return (0, react_query_1.useQuery)({
|
|
@@ -43,7 +43,7 @@ function useMyOrders(params, options) {
|
|
|
43
43
|
queryParams.set('limit', String(params.limit));
|
|
44
44
|
if (params?.page)
|
|
45
45
|
queryParams.set('page', String(params.page));
|
|
46
|
-
const response = await client.get(`/
|
|
46
|
+
const response = await client.get(`/users/me/orders?${queryParams}`);
|
|
47
47
|
return response.data.data;
|
|
48
48
|
},
|
|
49
49
|
...options,
|
|
@@ -52,14 +52,14 @@ function useMyOrders(params, options) {
|
|
|
52
52
|
/**
|
|
53
53
|
* Get a single order by ID
|
|
54
54
|
*
|
|
55
|
-
* @endpoint GET /
|
|
55
|
+
* @endpoint GET /orders/{orderId}
|
|
56
56
|
*/
|
|
57
57
|
function useOrder(orderId, options) {
|
|
58
58
|
return (0, react_query_1.useQuery)({
|
|
59
59
|
queryKey: exports.orderKeys.detail(orderId),
|
|
60
60
|
queryFn: async () => {
|
|
61
61
|
const client = (0, client_1.getApiClient)();
|
|
62
|
-
const response = await client.get(`/
|
|
62
|
+
const response = await client.get(`/orders/${orderId}`);
|
|
63
63
|
return response.data.data;
|
|
64
64
|
},
|
|
65
65
|
enabled: !!orderId,
|
|
@@ -69,7 +69,7 @@ function useOrder(orderId, options) {
|
|
|
69
69
|
/**
|
|
70
70
|
* Get orders for a spot (seller view)
|
|
71
71
|
*
|
|
72
|
-
* @endpoint GET /
|
|
72
|
+
* @endpoint GET /seller/spots/{spotId}/orders
|
|
73
73
|
*/
|
|
74
74
|
function useSpotOrders(spotId, params, options) {
|
|
75
75
|
return (0, react_query_1.useQuery)({
|
|
@@ -83,11 +83,11 @@ function useSpotOrders(spotId, params, options) {
|
|
|
83
83
|
queryParams.set('limit', String(params.limit));
|
|
84
84
|
if (params?.page)
|
|
85
85
|
queryParams.set('page', String(params.page));
|
|
86
|
-
const response = await client.get(`/
|
|
86
|
+
const response = await client.get(`/seller/spots/${spotId}/orders?${queryParams}`);
|
|
87
87
|
return response.data.data;
|
|
88
88
|
},
|
|
89
89
|
enabled: !!spotId,
|
|
90
90
|
...options,
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9xdWVyaWVzL29yZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBdURILGtDQXNCQztBQU9ELDRCQWdCQztBQU9ELHNDQXdCQztBQWpJRCx1REFBeUY7QUFDekYsc0NBQXNDO0FBV3RDLCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBVTtJQUN4QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNoRCxJQUFJLEVBQUUsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ3BELE1BQU0sRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFVO0lBQzdELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFVO0lBQ2pELFVBQVUsRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7Q0FDNUUsQ0FBQTtBQW1CRCwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixNQUFxQixFQUNyQixPQUdDO0lBRUQsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFD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b250ZW50IjpbIi8qKlxuICogT3JkZXJzIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIG9yZGVyLXJlbGF0ZWQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge3VzZVF1ZXJ5LCB0eXBlIFVzZVF1ZXJ5T3B0aW9ucywgdHlwZSBVc2VRdWVyeVJlc3VsdH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5J1xuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgT3JkZXIsXG4gIE9yZGVySXRlbSxcbiAgUHJvZHVjdCxcbiAgU3BvdCxcbiAgT3JkZXJTdGF0dXMsXG4gIEFwaVJlc3BvbnNlLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IG9yZGVyS2V5cyA9IHtcbiAgYWxsOiBbJ29yZGVycyddIGFzIGNvbnN0LFxuICBsaXN0czogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+XG4gICAgWy4uLm9yZGVyS2V5cy5saXN0cygpLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLm9yZGVyS2V5cy5kZXRhaWxzKCksIGlkXSBhcyBjb25zdCxcbiAgbXlPcmRlcnM6ICgpID0+IFsuLi5vcmRlcktleXMuYWxsLCAnbXknXSBhcyBjb25zdCxcbiAgc3BvdE9yZGVyczogKHNwb3RJZDogc3RyaW5nKSA9PiBbLi4ub3JkZXJLZXlzLmFsbCwgJ3Nwb3QnLCBzcG90SWRdIGFzIGNvbnN0LFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyV2l0aERldGFpbHMgZXh0ZW5kcyBPcmRlciB7XG4gIGl0ZW1zOiAoT3JkZXJJdGVtICYge1xuICAgIHByb2R1Y3Q6IFBpY2s8UHJvZHVjdCwgJ2lkJyB8ICduYW1lJyB8ICdzbHVnJyB8ICd0eXBlJyB8ICdpbWFnZVVybCc+XG4gIH0pW11cbiAgc3BvdDogUGljazxTcG90LCAnaWQnIHwgJ25hbWUnIHwgJ3NsdWcnPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyRmlsdGVycyB7XG4gIHN0YXR1cz86IE9yZGVyU3RhdHVzXG4gIGxpbWl0PzogbnVtYmVyXG4gIHBhZ2U/OiBudW1iZXJcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgY3VycmVudCB1c2VyJ3Mgb3JkZXJzIChwdXJjaGFzZXMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWUvb3JkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNeU9yZGVycyhcbiAgcGFyYW1zPzogT3JkZXJGaWx0ZXJzLFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VRdWVyeU9wdGlvbnM8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+LFxuICAgICdxdWVyeUtleScgfCAncXVlcnlGbidcbiAgPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFBhZ2luYXRlZFJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG9yZGVyS2V5cy5saXN0KHsuLi5wYXJhbXMsIG15OiB0cnVlfSksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpXG4gICAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKVxuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSlcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxcbiAgICAgICAgQXBpUmVzcG9uc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+XG4gICAgICA+KGAvdXNlcnMvbWUvb3JkZXJzPyR7cXVlcnlQYXJhbXN9YClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGEgc2luZ2xlIG9yZGVyIGJ5IElEXG4gKlxuICogQGVuZHBvaW50IEdFVCAvb3JkZXJzL3tvcmRlcklkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlT3JkZXIoXG4gIG9yZGVySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPE9yZGVyV2l0aERldGFpbHM+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PE9yZGVyV2l0aERldGFpbHM+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLmRldGFpbChvcmRlcklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxPcmRlcldpdGhEZXRhaWxzPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgICAgYC9vcmRlcnMvJHtvcmRlcklkfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIW9yZGVySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgb3JkZXJzIGZvciBhIHNwb3QgKHNlbGxlciB2aWV3KVxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3NlbGxlci9zcG90cy97c3BvdElkfS9vcmRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNwb3RPcmRlcnMoXG4gIHNwb3RJZDogc3RyaW5nLFxuICBwYXJhbXM/OiBPcmRlckZpbHRlcnMsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZVF1ZXJ5T3B0aW9uczxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4sXG4gICAgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJ1xuICA+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLnNwb3RPcmRlcnMoc3BvdElkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICBpZiAocGFyYW1zPy5zdGF0dXMpIHF1ZXJ5UGFyYW1zLnNldCgnc3RhdHVzJywgcGFyYW1zLnN0YXR1cylcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFxuICAgICAgICBBcGlSZXNwb25zZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj5cbiAgICAgID4oYC9zZWxsZXIvc3BvdHMvJHtzcG90SWR9L29yZGVycz8ke3F1ZXJ5UGFyYW1zfWApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNwb3RJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* TanStack Query hooks for post/board operations.
|
|
5
5
|
*/
|
|
6
|
-
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import type
|
|
6
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
+
import { type Post, type PostResponse, type PostStatusDto, type PostUpvotesResponse } from '../types';
|
|
8
8
|
export declare const postKeys: {
|
|
9
9
|
all: readonly ["posts"];
|
|
10
10
|
lists: () => readonly ["posts", "list"];
|
|
@@ -14,11 +14,18 @@ export declare const postKeys: {
|
|
|
14
14
|
detail: (id: string) => readonly ["posts", "detail", string];
|
|
15
15
|
responses: (postId: string) => readonly ["posts", "detail", string, "responses"];
|
|
16
16
|
status: (postId: string) => readonly ["posts", "detail", string, "status"];
|
|
17
|
+
upvotes: (postId: string, filters?: {
|
|
18
|
+
limit?: number;
|
|
19
|
+
offset?: number;
|
|
20
|
+
}) => readonly ["posts", "detail", string, "upvotes", {
|
|
21
|
+
limit?: number;
|
|
22
|
+
offset?: number;
|
|
23
|
+
} | undefined];
|
|
17
24
|
};
|
|
18
25
|
/**
|
|
19
26
|
* Get posts for a spot
|
|
20
27
|
*
|
|
21
|
-
* @endpoint GET /
|
|
28
|
+
* @endpoint GET /spots/{spotId}/posts
|
|
22
29
|
*/
|
|
23
30
|
export declare function useSpotPosts(spotId: string, params?: {
|
|
24
31
|
postType?: string;
|
|
@@ -29,19 +36,19 @@ export declare function useSpotPosts(spotId: string, params?: {
|
|
|
29
36
|
/**
|
|
30
37
|
* Get a single post by ID
|
|
31
38
|
*
|
|
32
|
-
* @endpoint GET /
|
|
39
|
+
* @endpoint GET /posts/{postId}
|
|
33
40
|
*/
|
|
34
41
|
export declare function usePost(postId: string, options?: Omit<UseQueryOptions<Post>, 'queryKey' | 'queryFn'>): UseQueryResult<Post>;
|
|
35
42
|
/**
|
|
36
43
|
* Get responses for a post
|
|
37
44
|
*
|
|
38
|
-
* @endpoint GET /
|
|
45
|
+
* @endpoint GET /posts/{postId}/responses
|
|
39
46
|
*/
|
|
40
47
|
export declare function usePostResponses(postId: string, options?: Omit<UseQueryOptions<PostResponse[]>, 'queryKey' | 'queryFn'>): UseQueryResult<PostResponse[]>;
|
|
41
48
|
/**
|
|
42
49
|
* Get all posts (with filters)
|
|
43
50
|
*
|
|
44
|
-
* @endpoint GET /
|
|
51
|
+
* @endpoint GET /posts
|
|
45
52
|
*/
|
|
46
53
|
export declare function usePosts(params?: {
|
|
47
54
|
postType?: string;
|
|
@@ -50,6 +57,36 @@ export declare function usePosts(params?: {
|
|
|
50
57
|
/**
|
|
51
58
|
* Get user's status for a post (read/hidden/pinned)
|
|
52
59
|
*
|
|
53
|
-
* @endpoint GET /
|
|
60
|
+
* @endpoint GET /posts/{postId}/status
|
|
54
61
|
*/
|
|
55
62
|
export declare function usePostStatus(postId: string, options?: Omit<UseQueryOptions<PostStatusDto>, 'queryKey' | 'queryFn'>): UseQueryResult<PostStatusDto>;
|
|
63
|
+
/**
|
|
64
|
+
* Get upvotes for a post (list of users who upvoted)
|
|
65
|
+
*
|
|
66
|
+
* @endpoint GET /posts/{postId}/upvotes
|
|
67
|
+
*/
|
|
68
|
+
export declare function usePostUpvotes(postId: string, params?: {
|
|
69
|
+
limit?: number;
|
|
70
|
+
offset?: number;
|
|
71
|
+
}, options?: Omit<UseQueryOptions<PostUpvotesResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<PostUpvotesResponse>;
|
|
72
|
+
/**
|
|
73
|
+
* Get nearby posts feed
|
|
74
|
+
*
|
|
75
|
+
* @endpoint GET /posts/feed
|
|
76
|
+
*/
|
|
77
|
+
export declare function usePostsFeed(params: {
|
|
78
|
+
lat: number;
|
|
79
|
+
lng: number;
|
|
80
|
+
radius?: number;
|
|
81
|
+
postType?: string;
|
|
82
|
+
cursor?: string;
|
|
83
|
+
limit?: number;
|
|
84
|
+
}, options?: Omit<UseQueryOptions<{
|
|
85
|
+
posts: Post[];
|
|
86
|
+
hasMore: boolean;
|
|
87
|
+
nextCursor?: string;
|
|
88
|
+
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
89
|
+
posts: Post[];
|
|
90
|
+
hasMore: boolean;
|
|
91
|
+
nextCursor?: string;
|
|
92
|
+
}>;
|
|
@@ -11,9 +11,54 @@ exports.usePost = usePost;
|
|
|
11
11
|
exports.usePostResponses = usePostResponses;
|
|
12
12
|
exports.usePosts = usePosts;
|
|
13
13
|
exports.usePostStatus = usePostStatus;
|
|
14
|
+
exports.usePostUpvotes = usePostUpvotes;
|
|
15
|
+
exports.usePostsFeed = usePostsFeed;
|
|
14
16
|
const react_query_1 = require("@tanstack/react-query");
|
|
15
17
|
const client_1 = require("../client");
|
|
16
18
|
// ============================================================================
|
|
19
|
+
// HELPER FUNCTIONS
|
|
20
|
+
// ============================================================================
|
|
21
|
+
/**
|
|
22
|
+
* Extract array data from API response
|
|
23
|
+
* API returns { success, data: { data: [...], meta: {...} } } or { success, data: [...] }
|
|
24
|
+
*/
|
|
25
|
+
function extractArrayData(data) {
|
|
26
|
+
// If already an array, return it
|
|
27
|
+
if (Array.isArray(data)) {
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
// If it's an object with nested data property, extract it
|
|
31
|
+
if (data && typeof data === 'object' && 'data' in data) {
|
|
32
|
+
const nested = data.data;
|
|
33
|
+
if (Array.isArray(nested)) {
|
|
34
|
+
return nested;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract single object data from API response
|
|
41
|
+
* API returns { success, data: { data: {...} } } or { success, data: {...} }
|
|
42
|
+
*/
|
|
43
|
+
function extractObjectData(data) {
|
|
44
|
+
// If it's an object with nested data property (not an array), extract it
|
|
45
|
+
if (data &&
|
|
46
|
+
typeof data === 'object' &&
|
|
47
|
+
'data' in data &&
|
|
48
|
+
!Array.isArray(data)) {
|
|
49
|
+
const nested = data.data;
|
|
50
|
+
// Check if nested also has a data property (double-wrapped)
|
|
51
|
+
if (nested &&
|
|
52
|
+
typeof nested === 'object' &&
|
|
53
|
+
'data' in nested &&
|
|
54
|
+
!Array.isArray(nested)) {
|
|
55
|
+
return nested.data;
|
|
56
|
+
}
|
|
57
|
+
return nested;
|
|
58
|
+
}
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
// ============================================================================
|
|
17
62
|
// QUERY KEYS
|
|
18
63
|
// ============================================================================
|
|
19
64
|
exports.postKeys = {
|
|
@@ -25,6 +70,7 @@ exports.postKeys = {
|
|
|
25
70
|
detail: (id) => [...exports.postKeys.details(), id],
|
|
26
71
|
responses: (postId) => [...exports.postKeys.detail(postId), 'responses'],
|
|
27
72
|
status: (postId) => [...exports.postKeys.detail(postId), 'status'],
|
|
73
|
+
upvotes: (postId, filters) => [...exports.postKeys.detail(postId), 'upvotes', filters],
|
|
28
74
|
};
|
|
29
75
|
// ============================================================================
|
|
30
76
|
// QUERY HOOKS
|
|
@@ -32,7 +78,7 @@ exports.postKeys = {
|
|
|
32
78
|
/**
|
|
33
79
|
* Get posts for a spot
|
|
34
80
|
*
|
|
35
|
-
* @endpoint GET /
|
|
81
|
+
* @endpoint GET /spots/{spotId}/posts
|
|
36
82
|
*/
|
|
37
83
|
function useSpotPosts(spotId, params, options) {
|
|
38
84
|
return (0, react_query_1.useQuery)({
|
|
@@ -48,8 +94,8 @@ function useSpotPosts(spotId, params, options) {
|
|
|
48
94
|
queryParams.set('page', String(params.page));
|
|
49
95
|
if (params?.limit)
|
|
50
96
|
queryParams.set('limit', String(params.limit));
|
|
51
|
-
const response = await client.get(`/
|
|
52
|
-
return response.data.data;
|
|
97
|
+
const response = await client.get(`/spots/${spotId}/posts?${queryParams}`);
|
|
98
|
+
return extractArrayData(response.data.data);
|
|
53
99
|
},
|
|
54
100
|
enabled: !!spotId,
|
|
55
101
|
...options,
|
|
@@ -58,15 +104,15 @@ function useSpotPosts(spotId, params, options) {
|
|
|
58
104
|
/**
|
|
59
105
|
* Get a single post by ID
|
|
60
106
|
*
|
|
61
|
-
* @endpoint GET /
|
|
107
|
+
* @endpoint GET /posts/{postId}
|
|
62
108
|
*/
|
|
63
109
|
function usePost(postId, options) {
|
|
64
110
|
return (0, react_query_1.useQuery)({
|
|
65
111
|
queryKey: exports.postKeys.detail(postId),
|
|
66
112
|
queryFn: async () => {
|
|
67
113
|
const client = (0, client_1.getApiClient)();
|
|
68
|
-
const response = await client.get(`/
|
|
69
|
-
return response.data.data;
|
|
114
|
+
const response = await client.get(`/posts/${postId}`);
|
|
115
|
+
return extractObjectData(response.data.data);
|
|
70
116
|
},
|
|
71
117
|
enabled: !!postId,
|
|
72
118
|
...options,
|
|
@@ -75,15 +121,15 @@ function usePost(postId, options) {
|
|
|
75
121
|
/**
|
|
76
122
|
* Get responses for a post
|
|
77
123
|
*
|
|
78
|
-
* @endpoint GET /
|
|
124
|
+
* @endpoint GET /posts/{postId}/responses
|
|
79
125
|
*/
|
|
80
126
|
function usePostResponses(postId, options) {
|
|
81
127
|
return (0, react_query_1.useQuery)({
|
|
82
128
|
queryKey: exports.postKeys.responses(postId),
|
|
83
129
|
queryFn: async () => {
|
|
84
130
|
const client = (0, client_1.getApiClient)();
|
|
85
|
-
const response = await client.get(`/
|
|
86
|
-
return response.data.data;
|
|
131
|
+
const response = await client.get(`/posts/${postId}/responses`);
|
|
132
|
+
return extractArrayData(response.data.data);
|
|
87
133
|
},
|
|
88
134
|
enabled: !!postId,
|
|
89
135
|
...options,
|
|
@@ -92,7 +138,7 @@ function usePostResponses(postId, options) {
|
|
|
92
138
|
/**
|
|
93
139
|
* Get all posts (with filters)
|
|
94
140
|
*
|
|
95
|
-
* @endpoint GET /
|
|
141
|
+
* @endpoint GET /posts
|
|
96
142
|
*/
|
|
97
143
|
function usePosts(params, options) {
|
|
98
144
|
return (0, react_query_1.useQuery)({
|
|
@@ -104,8 +150,8 @@ function usePosts(params, options) {
|
|
|
104
150
|
queryParams.set('postType', params.postType);
|
|
105
151
|
if (params?.limit)
|
|
106
152
|
queryParams.set('limit', String(params.limit));
|
|
107
|
-
const response = await client.get(`/
|
|
108
|
-
return response.data.data;
|
|
153
|
+
const response = await client.get(`/posts?${queryParams}`);
|
|
154
|
+
return extractArrayData(response.data.data);
|
|
109
155
|
},
|
|
110
156
|
...options,
|
|
111
157
|
});
|
|
@@ -113,18 +159,75 @@ function usePosts(params, options) {
|
|
|
113
159
|
/**
|
|
114
160
|
* Get user's status for a post (read/hidden/pinned)
|
|
115
161
|
*
|
|
116
|
-
* @endpoint GET /
|
|
162
|
+
* @endpoint GET /posts/{postId}/status
|
|
117
163
|
*/
|
|
118
164
|
function usePostStatus(postId, options) {
|
|
119
165
|
return (0, react_query_1.useQuery)({
|
|
120
166
|
queryKey: exports.postKeys.status(postId),
|
|
121
167
|
queryFn: async () => {
|
|
122
168
|
const client = (0, client_1.getApiClient)();
|
|
123
|
-
const response = await client.get(`/
|
|
169
|
+
const response = await client.get(`/posts/${postId}/status`);
|
|
170
|
+
return extractObjectData(response.data.data);
|
|
171
|
+
},
|
|
172
|
+
enabled: !!postId,
|
|
173
|
+
...options,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Get upvotes for a post (list of users who upvoted)
|
|
178
|
+
*
|
|
179
|
+
* @endpoint GET /posts/{postId}/upvotes
|
|
180
|
+
*/
|
|
181
|
+
function usePostUpvotes(postId, params, options) {
|
|
182
|
+
return (0, react_query_1.useQuery)({
|
|
183
|
+
queryKey: exports.postKeys.upvotes(postId, params),
|
|
184
|
+
queryFn: async () => {
|
|
185
|
+
const client = (0, client_1.getApiClient)();
|
|
186
|
+
const queryParams = new URLSearchParams();
|
|
187
|
+
if (params?.limit)
|
|
188
|
+
queryParams.set('limit', String(params.limit));
|
|
189
|
+
if (params?.offset)
|
|
190
|
+
queryParams.set('offset', String(params.offset));
|
|
191
|
+
const queryString = queryParams.toString();
|
|
192
|
+
const response = await client.get(`/posts/${postId}/upvotes${queryString ? `?${queryString}` : ''}`);
|
|
193
|
+
// Response structure: { success, data: { data: [...], meta: {...} } }
|
|
124
194
|
return response.data.data;
|
|
125
195
|
},
|
|
126
196
|
enabled: !!postId,
|
|
127
197
|
...options,
|
|
128
198
|
});
|
|
129
199
|
}
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvcG9zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQThCSCxvQ0FvQkM7QUFPRCwwQkFjQztBQU9ELDRDQWNDO0FBT0QsNEJBZ0JDO0FBUUQsc0NBY0M7QUF2SUQsdURBQWtGO0FBQ2xGLHNDQUF5QztBQUd6QywrRUFBK0U7QUFDL0UsYUFBYTtBQUNiLCtFQUErRTtBQUVsRSxRQUFBLFFBQVEsR0FBRztJQUN0QixHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQVU7SUFDdkIsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxnQkFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQVU7SUFDL0MsSUFBSSxFQUFFLENBQUMsT0FBaUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQ3BGLE1BQU0sRUFBRSxDQUFDLE1BQWMsRUFBRSxPQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQVU7SUFDbEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxnQkFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQVU7SUFDbkQsTUFBTSxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQVU7SUFDNUQsU0FBUyxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFVO0lBQ2pGLE1BQU0sRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsQ0FBVTtDQUM1RSxDQUFDO0FBRUYsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCwrRUFBK0U7QUFFL0U7Ozs7R0FJRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsTUFBYyxFQUNkLE1BQThFLEVBQzlFLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDekMsT0FBTyxFQUFFLEtBQUssSUFBcUIsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzFDLElBQUksTUFBTSxFQUFFLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25FLElBQUksTUFBTSxFQUFFLE1BQU07Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELElBQUksTUFBTSxFQUFFLElBQUk7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9ELElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBc0IsaUJBQWlCLE1BQU0sVUFBVSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZHLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FDckIsTUFBYyxFQUNkLE9BQTZEO0lBRTdELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxPQUFPLEVBQUUsS0FBSyxJQUFtQixFQUFFO1lBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBb0IsaUJBQWlCLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2pCLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxPQUF1RTtJQUV2RSxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSxnQkFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDcEMsT0FBTyxFQUFFLEtBQUssSUFBNkIsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQThCLGlCQUFpQixNQUFNLFlBQVksQ0FBQyxDQUFDO1lBQ3BHLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFFBQVEsQ0FDdEIsTUFBOEMsRUFDOUMsT0FBK0Q7SUFFL0QsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUMxQyxJQUFJLE1BQU0sRUFBRSxRQUFRO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRSxJQUFJLE1BQU0sRUFBRSxLQUFLO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQXNCLGlCQUFpQixXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFHRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixNQUFjLEVBQ2QsT0FBc0U7SUFFdEUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxLQUFLLElBQTRCLEVBQUU7WUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUE2QixpQkFBaUIsTUFBTSxTQUFTLENBQUMsQ0FBQztZQUNoRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUG9zdHMgUXVlcnkgSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgcG9zdC9ib2FyZCBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMsIFVzZVF1ZXJ5UmVzdWx0IH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7IFBvc3QsIFBvc3RSZXNwb25zZSwgQXBpUmVzcG9uc2UsIFBvc3RTdGF0dXNEdG8gfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IHBvc3RLZXlzID0ge1xuICBhbGw6IFsncG9zdHMnXSBhcyBjb25zdCxcbiAgbGlzdHM6ICgpID0+IFsuLi5wb3N0S2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IFsuLi5wb3N0S2V5cy5saXN0cygpLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgYnlTcG90OiAoc3BvdElkOiBzdHJpbmcsIGZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gWy4uLnBvc3RLZXlzLmFsbCwgJ3Nwb3QnLCBzcG90SWQsIGZpbHRlcnNdIGFzIGNvbnN0LFxuICBkZXRhaWxzOiAoKSA9PiBbLi4ucG9zdEtleXMuYWxsLCAnZGV0YWlsJ10gYXMgY29uc3QsXG4gIGRldGFpbDogKGlkOiBzdHJpbmcpID0+IFsuLi5wb3N0S2V5cy5kZXRhaWxzKCksIGlkXSBhcyBjb25zdCxcbiAgcmVzcG9uc2VzOiAocG9zdElkOiBzdHJpbmcpID0+IFsuLi5wb3N0S2V5cy5kZXRhaWwocG9zdElkKSwgJ3Jlc3BvbnNlcyddIGFzIGNvbnN0LFxuICBzdGF0dXM6IChwb3N0SWQ6IHN0cmluZykgPT4gWy4uLnBvc3RLZXlzLmRldGFpbChwb3N0SWQpLCAnc3RhdHVzJ10gYXMgY29uc3QsXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCBwb3N0cyBmb3IgYSBzcG90XG4gKlxuICogQGVuZHBvaW50IEdFVCAvYXBpL3YxL3Nwb3RzL3tzcG90SWR9L3Bvc3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTcG90UG9zdHMoXG4gIHNwb3RJZDogc3RyaW5nLFxuICBwYXJhbXM/OiB7IHBvc3RUeXBlPzogc3RyaW5nOyBzdGF0dXM/OiBzdHJpbmc7IHBhZ2U/OiBudW1iZXI7IGxpbWl0PzogbnVtYmVyIH0sXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQb3N0W10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLmJ5U3BvdChzcG90SWQsIHBhcmFtcyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UG9zdFtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgaWYgKHBhcmFtcz8ucG9zdFR5cGUpIHF1ZXJ5UGFyYW1zLnNldCgncG9zdFR5cGUnLCBwYXJhbXMucG9zdFR5cGUpO1xuICAgICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpO1xuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSk7XG4gICAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxQb3N0W10+PihgL2FwaS92MS9zcG90cy8ke3Nwb3RJZH0vcG9zdHM/JHtxdWVyeVBhcmFtc31gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNwb3RJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgcG9zdCBieSBJRFxuICpcbiAqIEBlbmRwb2ludCBHRVQgL2FwaS92MS9wb3N0cy97cG9zdElkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUG9zdChcbiAgcG9zdElkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQb3N0PiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbik6IFVzZVF1ZXJ5UmVzdWx0PFBvc3Q+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogcG9zdEtleXMuZGV0YWlsKHBvc3RJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UG9zdD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8UG9zdD4+KGAvYXBpL3YxL3Bvc3RzLyR7cG9zdElkfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhcG9zdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCByZXNwb25zZXMgZm9yIGEgcG9zdFxuICpcbiAqIEBlbmRwb2ludCBHRVQgL2FwaS92MS9wb3N0cy97cG9zdElkfS9yZXNwb25zZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc3RSZXNwb25zZXMoXG4gIHBvc3RJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UG9zdFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFJlc3BvbnNlW10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogcG9zdEtleXMucmVzcG9uc2VzKHBvc3RJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UG9zdFJlc3BvbnNlW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPFBvc3RSZXNwb25zZVtdPj4oYC9hcGkvdjEvcG9zdHMvJHtwb3N0SWR9L3Jlc3BvbnNlc2ApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhcG9zdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhbGwgcG9zdHMgKHdpdGggZmlsdGVycylcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9hcGkvdjEvcG9zdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc3RzKFxuICBwYXJhbXM/OiB7IHBvc3RUeXBlPzogc3RyaW5nOyBsaW1pdD86IG51bWJlciB9LFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UG9zdFtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbik6IFVzZVF1ZXJ5UmVzdWx0PFBvc3RbXT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBwb3N0S2V5cy5saXN0KHBhcmFtcyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UG9zdFtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgaWYgKHBhcmFtcz8ucG9zdFR5cGUpIHF1ZXJ5UGFyYW1zLnNldCgncG9zdFR5cGUnLCBwYXJhbXMucG9zdFR5cGUpO1xuICAgICAgaWYgKHBhcmFtcz8ubGltaXQpIHF1ZXJ5UGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcocGFyYW1zLmxpbWl0KSk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8UG9zdFtdPj4oYC9hcGkvdjEvcG9zdHM/JHtxdWVyeVBhcmFtc31gKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuXG4vKipcbiAqIEdldCB1c2VyJ3Mgc3RhdHVzIGZvciBhIHBvc3QgKHJlYWQvaGlkZGVuL3Bpbm5lZClcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9hcGkvdjEvcG9zdHMve3Bvc3RJZH0vc3RhdHVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VQb3N0U3RhdHVzKFxuICBwb3N0SWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBvc3RTdGF0dXNEdG8+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFN0YXR1c0R0bz4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBwb3N0S2V5cy5zdGF0dXMocG9zdElkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQb3N0U3RhdHVzRHRvPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxQb3N0U3RhdHVzRHRvPj4oYC9hcGkvdjEvcG9zdHMvJHtwb3N0SWR9L3N0YXR1c2ApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhcG9zdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
|
|
200
|
+
/**
|
|
201
|
+
* Get nearby posts feed
|
|
202
|
+
*
|
|
203
|
+
* @endpoint GET /posts/feed
|
|
204
|
+
*/
|
|
205
|
+
function usePostsFeed(params, options) {
|
|
206
|
+
return (0, react_query_1.useQuery)({
|
|
207
|
+
queryKey: [...exports.postKeys.lists(), 'feed', params],
|
|
208
|
+
queryFn: async () => {
|
|
209
|
+
const client = (0, client_1.getApiClient)();
|
|
210
|
+
const queryParams = new URLSearchParams();
|
|
211
|
+
queryParams.set('lat', String(params.lat));
|
|
212
|
+
queryParams.set('lng', String(params.lng));
|
|
213
|
+
if (params.radius)
|
|
214
|
+
queryParams.set('radius', String(params.radius));
|
|
215
|
+
if (params.postType)
|
|
216
|
+
queryParams.set('postType', params.postType);
|
|
217
|
+
if (params.cursor)
|
|
218
|
+
queryParams.set('cursor', params.cursor);
|
|
219
|
+
if (params.limit)
|
|
220
|
+
queryParams.set('limit', String(params.limit));
|
|
221
|
+
const response = await client.get(`/posts/feed?${queryParams}`);
|
|
222
|
+
const data = response.data.data;
|
|
223
|
+
return {
|
|
224
|
+
posts: data.posts ?? extractArrayData(data),
|
|
225
|
+
hasMore: data.hasMore ?? false,
|
|
226
|
+
nextCursor: data.nextCursor,
|
|
227
|
+
};
|
|
228
|
+
},
|
|
229
|
+
enabled: params.lat !== 0 && params.lng !== 0,
|
|
230
|
+
...options,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvcG9zdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQWdHSCxvQ0FzQkM7QUFPRCwwQkFnQkM7QUFPRCw0Q0FnQkM7QUFPRCw0QkFrQkM7QUFPRCxzQ0FnQkM7QUFPRCx3Q0FzQkM7QUFPRCxvQ0E0Q0M7QUFsU0QsdURBSThCO0FBRTlCLHNDQUFzQztBQVN0QywrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLCtFQUErRTtBQUUvRTs7O0dBR0c7QUFDSCxTQUFTLGdCQUFnQixDQUFJLElBQWE7SUFDeEMsaUNBQWlDO0lBQ2pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELDBEQUEwRDtJQUMxRCxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFJLElBQXdCLENBQUMsSUFBSSxDQUFBO1FBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFJLElBQWE7SUFDekMseUVBQXlFO0lBQ3pFLElBQ0UsSUFBSTtRQUNKLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsTUFBTSxJQUFJLElBQUk7UUFDZCxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQ3BCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBSSxJQUF3QixDQUFDLElBQUksQ0FBQTtRQUM3Qyw0REFBNEQ7UUFDNUQsSUFDRSxNQUFNO1lBQ04sT0FBTyxNQUFNLEtBQUssUUFBUTtZQUMxQixNQUFNLElBQUksTUFBTTtZQUNoQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQ3RCLENBQUM7WUFDRCxPQUFRLE1BQW9CLENBQUMsSUFBSSxDQUFBO1FBQ25DLENBQUM7UUFDRCxPQUFPLE1BQVcsQ0FBQTtJQUNwQixDQUFDO0lBQ0QsT0FBTyxJQUFTLENBQUE7QUFDbEIsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBVTtJQUN2QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUMvQyxJQUFJLEVBQUUsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQ3pDLE1BQU0sRUFBRSxDQUFDLE1BQWMsRUFBRSxPQUFpQyxFQUFFLEVBQUUsQ0FDNUQsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFVO0lBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ25ELE1BQU0sRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFVO0lBQzVELFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQzVCLENBQUMsR0FBRyxnQkFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQVU7SUFDcEQsTUFBTSxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFVO0lBQzNFLE9BQU8sRUFBRSxDQUFDLE1BQWMsRUFBRSxPQUEyQyxFQUFFLEVBQUUsQ0FDdkUsQ0FBQyxHQUFHLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQVU7Q0FDNUQsQ0FBQTtBQUVELCtFQUErRTtBQUMvRSxjQUFjO0FBQ2QsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixZQUFZLENBQzFCLE1BQWMsRUFDZCxNQUE0RSxFQUM1RSxPQUErRDtJQUUvRCxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSxnQkFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO1FBQ3pDLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtZQUN6QyxJQUFJLE1BQU0sRUFBRSxRQUFRO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUNsRSxJQUFJLE1BQU0sRUFBRSxNQUFNO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUM1RCxJQUFJLE1BQU0sRUFBRSxJQUFJO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUM5RCxJQUFJLE1BQU0sRUFBRSxLQUFLO2dCQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNqRSxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLFVBQVUsTUFBTSxVQUFVLFdBQVcsRUFBRSxDQUN4QyxDQUFBO1lBQ0QsT0FBTyxnQkFBZ0IsQ0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixPQUFPLENBQ3JCLE1BQWMsRUFDZCxPQUE2RDtJQUU3RCxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSxnQkFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDakMsT0FBTyxFQUFFLEtBQUssSUFBbUIsRUFBRTtZQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLFVBQVUsTUFBTSxFQUFFLENBQ25CLENBQUE7WUFDRCxPQUFPLGlCQUFpQixDQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDcEQsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixNQUFjLEVBQ2QsT0FBdUU7SUFFdkUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxLQUFLLElBQTZCLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUMvQixVQUFVLE1BQU0sWUFBWSxDQUM3QixDQUFBO1lBQ0QsT0FBTyxnQkFBZ0IsQ0FBZSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzNELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU07UUFDakIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLE1BQTRDLEVBQzVDLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQixPQUFPLEVBQUUsS0FBSyxJQUFxQixFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7WUFDekMsSUFBSSxNQUFNLEVBQUUsUUFBUTtnQkFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbEUsSUFBSSxNQUFNLEVBQUUsS0FBSztnQkFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDakUsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUMvQixVQUFVLFdBQVcsRUFBRSxDQUN4QixDQUFBO1lBQ0QsT0FBTyxnQkFBZ0IsQ0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsTUFBYyxFQUNkLE9BQXNFO0lBRXRFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxPQUFPLEVBQUUsS0FBSyxJQUE0QixFQUFFO1lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsVUFBVSxNQUFNLFNBQVMsQ0FDMUIsQ0FBQTtZQUNELE9BQU8saUJBQWlCLENBQWdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsTUFBYyxFQUNkLE1BQTBDLEVBQzFDLE9BQTRFO0lBRTVFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDMUMsT0FBTyxFQUFFLEtBQUssSUFBa0MsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1lBQ3pDLElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQ2pFLElBQUksTUFBTSxFQUFFLE1BQU07Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQ3BFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLFVBQVUsTUFBTSxXQUFXLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ2xFLENBQUE7WUFDRCxzRUFBc0U7WUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMzQixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2pCLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixNQU9DLEVBQ0QsT0FHQztJQUVELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLENBQUMsR0FBRyxnQkFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7UUFDeEQsT0FBTyxFQUFFLEtBQUssSUFJWCxFQUFFO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQTtZQUN6QyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7WUFDMUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQzFDLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQ25FLElBQUksTUFBTSxDQUFDLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ2pFLElBQUksTUFBTSxDQUFDLE1BQU07Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzNELElBQUksTUFBTSxDQUFDLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBRWhFLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FFL0IsZUFBZSxXQUFXLEVBQUUsQ0FBQyxDQUFBO1lBRS9CLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1lBQy9CLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBQU8sSUFBSSxDQUFDO2dCQUNqRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLO2dCQUM5QixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDNUIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzdDLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFBvc3RzIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIHBvc3QvYm9hcmQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIHR5cGUgQXBpUmVzcG9uc2UsXG4gIHR5cGUgUG9zdCxcbiAgdHlwZSBQb3N0UmVzcG9uc2UsXG4gIHR5cGUgUG9zdFN0YXR1c0R0byxcbiAgdHlwZSBQb3N0VXB2b3Rlc1Jlc3BvbnNlLFxufSBmcm9tICcuLi90eXBlcydcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEV4dHJhY3QgYXJyYXkgZGF0YSBmcm9tIEFQSSByZXNwb25zZVxuICogQVBJIHJldHVybnMgeyBzdWNjZXNzLCBkYXRhOiB7IGRhdGE6IFsuLi5dLCBtZXRhOiB7Li4ufSB9IH0gb3IgeyBzdWNjZXNzLCBkYXRhOiBbLi4uXSB9XG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RBcnJheURhdGE8VD4oZGF0YTogdW5rbm93bik6IFRbXSB7XG4gIC8vIElmIGFscmVhZHkgYW4gYXJyYXksIHJldHVybiBpdFxuICBpZiAoQXJyYXkuaXNBcnJheShkYXRhKSkge1xuICAgIHJldHVybiBkYXRhXG4gIH1cbiAgLy8gSWYgaXQncyBhbiBvYmplY3Qgd2l0aCBuZXN0ZWQgZGF0YSBwcm9wZXJ0eSwgZXh0cmFjdCBpdFxuICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGRhdGEpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSAoZGF0YSBhcyB7ZGF0YTogdW5rbm93bn0pLmRhdGFcbiAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWQpKSB7XG4gICAgICByZXR1cm4gbmVzdGVkXG4gICAgfVxuICB9XG4gIHJldHVybiBbXVxufVxuXG4vKipcbiAqIEV4dHJhY3Qgc2luZ2xlIG9iamVjdCBkYXRhIGZyb20gQVBJIHJlc3BvbnNlXG4gKiBBUEkgcmV0dXJucyB7IHN1Y2Nlc3MsIGRhdGE6IHsgZGF0YTogey4uLn0gfSB9IG9yIHsgc3VjY2VzcywgZGF0YTogey4uLn0gfVxuICovXG5mdW5jdGlvbiBleHRyYWN0T2JqZWN0RGF0YTxUPihkYXRhOiB1bmtub3duKTogVCB7XG4gIC8vIElmIGl0J3MgYW4gb2JqZWN0IHdpdGggbmVzdGVkIGRhdGEgcHJvcGVydHkgKG5vdCBhbiBhcnJheSksIGV4dHJhY3QgaXRcbiAgaWYgKFxuICAgIGRhdGEgJiZcbiAgICB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiZcbiAgICAnZGF0YScgaW4gZGF0YSAmJlxuICAgICFBcnJheS5pc0FycmF5KGRhdGEpXG4gICkge1xuICAgIGNvbnN0IG5lc3RlZCA9IChkYXRhIGFzIHtkYXRhOiB1bmtub3dufSkuZGF0YVxuICAgIC8vIENoZWNrIGlmIG5lc3RlZCBhbHNvIGhhcyBhIGRhdGEgcHJvcGVydHkgKGRvdWJsZS13cmFwcGVkKVxuICAgIGlmIChcbiAgICAgIG5lc3RlZCAmJlxuICAgICAgdHlwZW9mIG5lc3RlZCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICdkYXRhJyBpbiBuZXN0ZWQgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5lc3RlZClcbiAgICApIHtcbiAgICAgIHJldHVybiAobmVzdGVkIGFzIHtkYXRhOiBUfSkuZGF0YVxuICAgIH1cbiAgICByZXR1cm4gbmVzdGVkIGFzIFRcbiAgfVxuICByZXR1cm4gZGF0YSBhcyBUXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IHBvc3RLZXlzID0ge1xuICBhbGw6IFsncG9zdHMnXSBhcyBjb25zdCxcbiAgbGlzdHM6ICgpID0+IFsuLi5wb3N0S2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+XG4gICAgWy4uLnBvc3RLZXlzLmxpc3RzKCksIGZpbHRlcnNdIGFzIGNvbnN0LFxuICBieVNwb3Q6IChzcG90SWQ6IHN0cmluZywgZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PlxuICAgIFsuLi5wb3N0S2V5cy5hbGwsICdzcG90Jywgc3BvdElkLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLnBvc3RLZXlzLmFsbCwgJ2RldGFpbCddIGFzIGNvbnN0LFxuICBkZXRhaWw6IChpZDogc3RyaW5nKSA9PiBbLi4ucG9zdEtleXMuZGV0YWlscygpLCBpZF0gYXMgY29uc3QsXG4gIHJlc3BvbnNlczogKHBvc3RJZDogc3RyaW5nKSA9PlxuICAgIFsuLi5wb3N0S2V5cy5kZXRhaWwocG9zdElkKSwgJ3Jlc3BvbnNlcyddIGFzIGNvbnN0LFxuICBzdGF0dXM6IChwb3N0SWQ6IHN0cmluZykgPT4gWy4uLnBvc3RLZXlzLmRldGFpbChwb3N0SWQpLCAnc3RhdHVzJ10gYXMgY29uc3QsXG4gIHVwdm90ZXM6IChwb3N0SWQ6IHN0cmluZywgZmlsdGVycz86IHtsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyfSkgPT5cbiAgICBbLi4ucG9zdEtleXMuZGV0YWlsKHBvc3RJZCksICd1cHZvdGVzJywgZmlsdGVyc10gYXMgY29uc3QsXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IHBvc3RzIGZvciBhIHNwb3RcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9zcG90cy97c3BvdElkfS9wb3N0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3BvdFBvc3RzKFxuICBzcG90SWQ6IHN0cmluZyxcbiAgcGFyYW1zPzoge3Bvc3RUeXBlPzogc3RyaW5nOyBzdGF0dXM/OiBzdHJpbmc7IHBhZ2U/OiBudW1iZXI7IGxpbWl0PzogbnVtYmVyfSxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBvc3RbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLmJ5U3BvdChzcG90SWQsIHBhcmFtcyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UG9zdFtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgIGlmIChwYXJhbXM/LnBvc3RUeXBlKSBxdWVyeVBhcmFtcy5zZXQoJ3Bvc3RUeXBlJywgcGFyYW1zLnBvc3RUeXBlKVxuICAgICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpXG4gICAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKVxuICAgICAgaWYgKHBhcmFtcz8ubGltaXQpIHF1ZXJ5UGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcocGFyYW1zLmxpbWl0KSlcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx1bmtub3duPj4oXG4gICAgICAgIGAvc3BvdHMvJHtzcG90SWR9L3Bvc3RzPyR7cXVlcnlQYXJhbXN9YCxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFBvc3Q+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhc3BvdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGEgc2luZ2xlIHBvc3QgYnkgSURcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9wb3N0cy97cG9zdElkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUG9zdChcbiAgcG9zdElkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQb3N0PiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxQb3N0PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLmRldGFpbChwb3N0SWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFBvc3Q+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8dW5rbm93bj4+KFxuICAgICAgICBgL3Bvc3RzLyR7cG9zdElkfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdE9iamVjdERhdGE8UG9zdD4ocmVzcG9uc2UuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgZW5hYmxlZDogISFwb3N0SWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgcmVzcG9uc2VzIGZvciBhIHBvc3RcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9wb3N0cy97cG9zdElkfS9yZXNwb25zZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc3RSZXNwb25zZXMoXG4gIHBvc3RJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UG9zdFJlc3BvbnNlW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFBvc3RSZXNwb25zZVtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLnJlc3BvbnNlcyhwb3N0SWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFBvc3RSZXNwb25zZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PihcbiAgICAgICAgYC9wb3N0cy8ke3Bvc3RJZH0vcmVzcG9uc2VzYCxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFBvc3RSZXNwb25zZT4ocmVzcG9uc2UuZGF0YS5kYXRhKVxuICAgIH0sXG4gICAgZW5hYmxlZDogISFwb3N0SWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHBvc3RzICh3aXRoIGZpbHRlcnMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvcG9zdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc3RzKFxuICBwYXJhbXM/OiB7cG9zdFR5cGU/OiBzdHJpbmc7IGxpbWl0PzogbnVtYmVyfSxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFBvc3RbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLmxpc3QocGFyYW1zKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQb3N0W10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8ucG9zdFR5cGUpIHF1ZXJ5UGFyYW1zLnNldCgncG9zdFR5cGUnLCBwYXJhbXMucG9zdFR5cGUpXG4gICAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PihcbiAgICAgICAgYC9wb3N0cz8ke3F1ZXJ5UGFyYW1zfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxQb3N0PihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCB1c2VyJ3Mgc3RhdHVzIGZvciBhIHBvc3QgKHJlYWQvaGlkZGVuL3Bpbm5lZClcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9wb3N0cy97cG9zdElkfS9zdGF0dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVBvc3RTdGF0dXMoXG4gIHBvc3RJZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8UG9zdFN0YXR1c0R0bz4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UG9zdFN0YXR1c0R0bz4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBwb3N0S2V5cy5zdGF0dXMocG9zdElkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQb3N0U3RhdHVzRHRvPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PihcbiAgICAgICAgYC9wb3N0cy8ke3Bvc3RJZH0vc3RhdHVzYCxcbiAgICAgIClcbiAgICAgIHJldHVybiBleHRyYWN0T2JqZWN0RGF0YTxQb3N0U3RhdHVzRHRvPihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXBvc3RJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCB1cHZvdGVzIGZvciBhIHBvc3QgKGxpc3Qgb2YgdXNlcnMgd2hvIHVwdm90ZWQpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvcG9zdHMve3Bvc3RJZH0vdXB2b3Rlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUG9zdFVwdm90ZXMoXG4gIHBvc3RJZDogc3RyaW5nLFxuICBwYXJhbXM/OiB7bGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlcn0sXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxQb3N0VXB2b3Rlc1Jlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxQb3N0VXB2b3Rlc1Jlc3BvbnNlPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IHBvc3RLZXlzLnVwdm90ZXMocG9zdElkLCBwYXJhbXMpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPFBvc3RVcHZvdGVzUmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8ubGltaXQpIHF1ZXJ5UGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcocGFyYW1zLmxpbWl0KSlcbiAgICAgIGlmIChwYXJhbXM/Lm9mZnNldCkgcXVlcnlQYXJhbXMuc2V0KCdvZmZzZXQnLCBTdHJpbmcocGFyYW1zLm9mZnNldCkpXG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxQb3N0VXB2b3Rlc1Jlc3BvbnNlPj4oXG4gICAgICAgIGAvcG9zdHMvJHtwb3N0SWR9L3Vwdm90ZXMke3F1ZXJ5U3RyaW5nID8gYD8ke3F1ZXJ5U3RyaW5nfWAgOiAnJ31gLFxuICAgICAgKVxuICAgICAgLy8gUmVzcG9uc2Ugc3RydWN0dXJlOiB7IHN1Y2Nlc3MsIGRhdGE6IHsgZGF0YTogWy4uLl0sIG1ldGE6IHsuLi59IH0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgZW5hYmxlZDogISFwb3N0SWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgbmVhcmJ5IHBvc3RzIGZlZWRcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9wb3N0cy9mZWVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VQb3N0c0ZlZWQoXG4gIHBhcmFtczoge1xuICAgIGxhdDogbnVtYmVyXG4gICAgbG5nOiBudW1iZXJcbiAgICByYWRpdXM/OiBudW1iZXJcbiAgICBwb3N0VHlwZT86IHN0cmluZ1xuICAgIGN1cnNvcj86IHN0cmluZ1xuICAgIGxpbWl0PzogbnVtYmVyXG4gIH0sXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZVF1ZXJ5T3B0aW9uczx7cG9zdHM6IFBvc3RbXTsgaGFzTW9yZTogYm9vbGVhbjsgbmV4dEN1cnNvcj86IHN0cmluZ30+LFxuICAgICdxdWVyeUtleScgfCAncXVlcnlGbidcbiAgPixcbik6IFVzZVF1ZXJ5UmVzdWx0PHtwb3N0czogUG9zdFtdOyBoYXNNb3JlOiBib29sZWFuOyBuZXh0Q3Vyc29yPzogc3RyaW5nfT4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBbLi4ucG9zdEtleXMubGlzdHMoKSwgJ2ZlZWQnLCBwYXJhbXNdIGFzIGNvbnN0LFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPHtcbiAgICAgIHBvc3RzOiBQb3N0W11cbiAgICAgIGhhc01vcmU6IGJvb2xlYW5cbiAgICAgIG5leHRDdXJzb3I/OiBzdHJpbmdcbiAgICB9PiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgIHF1ZXJ5UGFyYW1zLnNldCgnbGF0JywgU3RyaW5nKHBhcmFtcy5sYXQpKVxuICAgICAgcXVlcnlQYXJhbXMuc2V0KCdsbmcnLCBTdHJpbmcocGFyYW1zLmxuZykpXG4gICAgICBpZiAocGFyYW1zLnJhZGl1cykgcXVlcnlQYXJhbXMuc2V0KCdyYWRpdXMnLCBTdHJpbmcocGFyYW1zLnJhZGl1cykpXG4gICAgICBpZiAocGFyYW1zLnBvc3RUeXBlKSBxdWVyeVBhcmFtcy5zZXQoJ3Bvc3RUeXBlJywgcGFyYW1zLnBvc3RUeXBlKVxuICAgICAgaWYgKHBhcmFtcy5jdXJzb3IpIHF1ZXJ5UGFyYW1zLnNldCgnY3Vyc29yJywgcGFyYW1zLmN1cnNvcilcbiAgICAgIGlmIChwYXJhbXMubGltaXQpIHF1ZXJ5UGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcocGFyYW1zLmxpbWl0KSlcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFxuICAgICAgICBBcGlSZXNwb25zZTx7cG9zdHM6IFBvc3RbXTsgaGFzTW9yZTogYm9vbGVhbjsgbmV4dEN1cnNvcj86IHN0cmluZ30+XG4gICAgICA+KGAvcG9zdHMvZmVlZD8ke3F1ZXJ5UGFyYW1zfWApXG5cbiAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhLmRhdGFcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvc3RzOiBkYXRhLnBvc3RzID8/IGV4dHJhY3RBcnJheURhdGE8UG9zdD4oZGF0YSksXG4gICAgICAgIGhhc01vcmU6IGRhdGEuaGFzTW9yZSA/PyBmYWxzZSxcbiAgICAgICAgbmV4dEN1cnNvcjogZGF0YS5uZXh0Q3Vyc29yLFxuICAgICAgfVxuICAgIH0sXG4gICAgZW5hYmxlZDogcGFyYW1zLmxhdCAhPT0gMCAmJiBwYXJhbXMubG5nICE9PSAwLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* TanStack Query hooks for product-related operations.
|
|
5
5
|
*/
|
|
6
|
-
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import type { Product, PaginatedResponse, ProductType, ProductStatus } from '../types';
|
|
6
|
+
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
+
import type { Product, PaginatedResponse, ProductType, ProductStatus, Spot } from '../types';
|
|
8
8
|
export declare const productKeys: {
|
|
9
9
|
all: readonly ["products"];
|
|
10
10
|
lists: () => readonly ["products", "list"];
|
|
@@ -22,16 +22,12 @@ export interface ProductFilters {
|
|
|
22
22
|
page?: number;
|
|
23
23
|
}
|
|
24
24
|
export interface ProductWithSpot extends Product {
|
|
25
|
-
spot:
|
|
26
|
-
id: string;
|
|
27
|
-
name: string;
|
|
28
|
-
slug: string;
|
|
29
|
-
};
|
|
25
|
+
spot: Pick<Spot, 'id' | 'name' | 'slug'>;
|
|
30
26
|
}
|
|
31
27
|
/**
|
|
32
28
|
* Get products for a spot (public browse)
|
|
33
29
|
*
|
|
34
|
-
* @endpoint GET /
|
|
30
|
+
* @endpoint GET /spots/{spotId}/products
|
|
35
31
|
*/
|
|
36
32
|
export declare function useSpotProducts(spotId: string, params?: {
|
|
37
33
|
type?: ProductType;
|
|
@@ -41,12 +37,12 @@ export declare function useSpotProducts(spotId: string, params?: {
|
|
|
41
37
|
/**
|
|
42
38
|
* Get a product by ID
|
|
43
39
|
*
|
|
44
|
-
* @endpoint GET /
|
|
40
|
+
* @endpoint GET /products/{productId}
|
|
45
41
|
*/
|
|
46
42
|
export declare function useProduct(productId: string, options?: Omit<UseQueryOptions<ProductWithSpot>, 'queryKey' | 'queryFn'>): UseQueryResult<ProductWithSpot>;
|
|
47
43
|
/**
|
|
48
44
|
* Get a product by slug (within a spot)
|
|
49
45
|
*
|
|
50
|
-
* @endpoint GET /
|
|
46
|
+
* @endpoint GET /spots/{spotId}/products/slug/{slug}
|
|
51
47
|
*/
|
|
52
48
|
export declare function useProductBySlug(spotId: string, slug: string, options?: Omit<UseQueryOptions<ProductWithSpot>, 'queryKey' | 'queryFn'>): UseQueryResult<ProductWithSpot>;
|