@spotsdev/sdk 1.4.0 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2166 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1656 -0
- package/dist/index.d.ts +1655 -36
- package/dist/index.js +2021 -64
- package/dist/index.js.map +1 -0
- package/package.json +22 -6
- package/src/api/entities.ts +171 -170
- package/src/api/mutations/products.ts +18 -2
- package/src/api/queries/index.ts +4 -0
- package/src/api/queries/payments.ts +67 -0
- package/dist/api/client.d.ts +0 -12
- package/dist/api/client.js +0 -72
- package/dist/api/entities.d.ts +0 -305
- package/dist/api/entities.js +0 -13
- package/dist/api/mutations/clubs.d.ts +0 -47
- package/dist/api/mutations/clubs.js +0 -97
- package/dist/api/mutations/conversations.d.ts +0 -45
- package/dist/api/mutations/conversations.js +0 -114
- package/dist/api/mutations/index.d.ts +0 -14
- package/dist/api/mutations/index.js +0 -40
- package/dist/api/mutations/notifications.d.ts +0 -38
- package/dist/api/mutations/notifications.js +0 -64
- package/dist/api/mutations/orders.d.ts +0 -73
- package/dist/api/mutations/orders.js +0 -114
- package/dist/api/mutations/posts.d.ts +0 -123
- package/dist/api/mutations/posts.js +0 -242
- package/dist/api/mutations/products.d.ts +0 -81
- package/dist/api/mutations/products.js +0 -98
- package/dist/api/mutations/redemptions.d.ts +0 -33
- package/dist/api/mutations/redemptions.js +0 -63
- package/dist/api/mutations/spots.d.ts +0 -93
- package/dist/api/mutations/spots.js +0 -167
- package/dist/api/mutations/users.d.ts +0 -73
- package/dist/api/mutations/users.js +0 -175
- package/dist/api/queries/auth.d.ts +0 -37
- package/dist/api/queries/auth.js +0 -61
- package/dist/api/queries/clubs.d.ts +0 -52
- package/dist/api/queries/clubs.js +0 -116
- package/dist/api/queries/conversations.d.ts +0 -52
- package/dist/api/queries/conversations.js +0 -83
- package/dist/api/queries/index.d.ts +0 -28
- package/dist/api/queries/index.js +0 -69
- package/dist/api/queries/misc.d.ts +0 -30
- package/dist/api/queries/misc.js +0 -91
- package/dist/api/queries/notifications.d.ts +0 -34
- package/dist/api/queries/notifications.js +0 -62
- package/dist/api/queries/orders.d.ts +0 -45
- package/dist/api/queries/orders.js +0 -93
- package/dist/api/queries/posts.d.ts +0 -92
- package/dist/api/queries/posts.js +0 -233
- package/dist/api/queries/products.d.ts +0 -48
- package/dist/api/queries/products.js +0 -87
- package/dist/api/queries/spots.d.ts +0 -93
- package/dist/api/queries/spots.js +0 -250
- package/dist/api/queries/templates.d.ts +0 -39
- package/dist/api/queries/templates.js +0 -81
- package/dist/api/queries/users.d.ts +0 -104
- package/dist/api/queries/users.js +0 -235
- package/dist/api/queries/wallet.d.ts +0 -109
- package/dist/api/queries/wallet.js +0 -136
- package/dist/api/services/index.d.ts +0 -2
- package/dist/api/services/index.js +0 -8
- package/dist/api/services/marketplace.d.ts +0 -129
- package/dist/api/services/marketplace.js +0 -168
- package/dist/api/types.d.ts +0 -57
- package/dist/api/types.js +0 -33
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spots Mutation Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for spot mutation operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
7
|
-
import { type ClaimSpotRequest, type Spot } from '../types';
|
|
8
|
-
/**
|
|
9
|
-
* Create a new spot
|
|
10
|
-
*
|
|
11
|
-
* @endpoint POST /spots
|
|
12
|
-
*/
|
|
13
|
-
export declare function useCreateSpot(options?: Omit<UseMutationOptions<Spot, Error, Partial<Spot>>, 'mutationFn'>): UseMutationResult<Spot, Error, Partial<Spot>>;
|
|
14
|
-
/**
|
|
15
|
-
* Update a spot
|
|
16
|
-
*
|
|
17
|
-
* @endpoint PUT /spots/{spotId}
|
|
18
|
-
*/
|
|
19
|
-
export declare function useUpdateSpot(options?: Omit<UseMutationOptions<Spot, Error, {
|
|
20
|
-
spotId: string;
|
|
21
|
-
} & Partial<Spot>>, 'mutationFn'>): UseMutationResult<Spot, Error, {
|
|
22
|
-
spotId: string;
|
|
23
|
-
} & Partial<Spot>>;
|
|
24
|
-
/**
|
|
25
|
-
* Claim a spot (for business owners)
|
|
26
|
-
*
|
|
27
|
-
* @endpoint POST /spots/{spotId}/claim
|
|
28
|
-
*/
|
|
29
|
-
export declare function useClaimSpot(options?: Omit<UseMutationOptions<{
|
|
30
|
-
claimId: string;
|
|
31
|
-
}, Error, {
|
|
32
|
-
spotId: string;
|
|
33
|
-
} & ClaimSpotRequest>, 'mutationFn'>): UseMutationResult<{
|
|
34
|
-
claimId: string;
|
|
35
|
-
}, Error, {
|
|
36
|
-
spotId: string;
|
|
37
|
-
} & ClaimSpotRequest>;
|
|
38
|
-
/**
|
|
39
|
-
* Subscribe to a spot
|
|
40
|
-
*
|
|
41
|
-
* @endpoint POST /spots/{spotId}/subscribe
|
|
42
|
-
*/
|
|
43
|
-
export declare function useSubscribeToSpot(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
44
|
-
/**
|
|
45
|
-
* Unsubscribe from a spot
|
|
46
|
-
*
|
|
47
|
-
* @endpoint DELETE /spots/{spotId}/subscribe
|
|
48
|
-
*/
|
|
49
|
-
export declare function useUnsubscribeFromSpot(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
50
|
-
/**
|
|
51
|
-
* Toggle favorite status on a spot
|
|
52
|
-
*
|
|
53
|
-
* @endpoint POST /spots/{spotId}/favorite
|
|
54
|
-
*/
|
|
55
|
-
export declare function useFavoriteSpot(options?: Omit<UseMutationOptions<{
|
|
56
|
-
isFavorite: boolean;
|
|
57
|
-
}, Error, string>, 'mutationFn'>): UseMutationResult<{
|
|
58
|
-
isFavorite: boolean;
|
|
59
|
-
}, Error, string>;
|
|
60
|
-
/**
|
|
61
|
-
* Rate a spot
|
|
62
|
-
*
|
|
63
|
-
* @endpoint POST /spots/{spotId}/rate
|
|
64
|
-
*/
|
|
65
|
-
export declare function useRateSpot(options?: Omit<UseMutationOptions<{
|
|
66
|
-
rating: number;
|
|
67
|
-
}, Error, {
|
|
68
|
-
spotId: string;
|
|
69
|
-
rating: number;
|
|
70
|
-
}>, 'mutationFn'>): UseMutationResult<{
|
|
71
|
-
rating: number;
|
|
72
|
-
}, Error, {
|
|
73
|
-
spotId: string;
|
|
74
|
-
rating: number;
|
|
75
|
-
}>;
|
|
76
|
-
/**
|
|
77
|
-
* Report a spot
|
|
78
|
-
*
|
|
79
|
-
* @endpoint POST /spots/{spotId}/report
|
|
80
|
-
*/
|
|
81
|
-
export declare function useReportSpot(options?: Omit<UseMutationOptions<{
|
|
82
|
-
success: boolean;
|
|
83
|
-
}, Error, {
|
|
84
|
-
spotId: string;
|
|
85
|
-
reason: string;
|
|
86
|
-
details?: string;
|
|
87
|
-
}>, 'mutationFn'>): UseMutationResult<{
|
|
88
|
-
success: boolean;
|
|
89
|
-
}, Error, {
|
|
90
|
-
spotId: string;
|
|
91
|
-
reason: string;
|
|
92
|
-
details?: string;
|
|
93
|
-
}>;
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Spots Mutation Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for spot mutation operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.useCreateSpot = useCreateSpot;
|
|
9
|
-
exports.useUpdateSpot = useUpdateSpot;
|
|
10
|
-
exports.useClaimSpot = useClaimSpot;
|
|
11
|
-
exports.useSubscribeToSpot = useSubscribeToSpot;
|
|
12
|
-
exports.useUnsubscribeFromSpot = useUnsubscribeFromSpot;
|
|
13
|
-
exports.useFavoriteSpot = useFavoriteSpot;
|
|
14
|
-
exports.useRateSpot = useRateSpot;
|
|
15
|
-
exports.useReportSpot = useReportSpot;
|
|
16
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
17
|
-
const client_1 = require("../client");
|
|
18
|
-
const spots_1 = require("../queries/spots");
|
|
19
|
-
const users_1 = require("../queries/users");
|
|
20
|
-
// ============================================================================
|
|
21
|
-
// MUTATION HOOKS
|
|
22
|
-
// ============================================================================
|
|
23
|
-
/**
|
|
24
|
-
* Create a new spot
|
|
25
|
-
*
|
|
26
|
-
* @endpoint POST /spots
|
|
27
|
-
*/
|
|
28
|
-
function useCreateSpot(options) {
|
|
29
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
30
|
-
return (0, react_query_1.useMutation)({
|
|
31
|
-
mutationFn: async (data) => {
|
|
32
|
-
const client = (0, client_1.getApiClient)();
|
|
33
|
-
const response = await client.post('/spots', data);
|
|
34
|
-
return response.data.data;
|
|
35
|
-
},
|
|
36
|
-
onSuccess: () => {
|
|
37
|
-
queryClient.invalidateQueries({ queryKey: spots_1.spotKeys.lists() });
|
|
38
|
-
},
|
|
39
|
-
...options,
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Update a spot
|
|
44
|
-
*
|
|
45
|
-
* @endpoint PUT /spots/{spotId}
|
|
46
|
-
*/
|
|
47
|
-
function useUpdateSpot(options) {
|
|
48
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
49
|
-
return (0, react_query_1.useMutation)({
|
|
50
|
-
mutationFn: async ({ spotId, ...data }) => {
|
|
51
|
-
const client = (0, client_1.getApiClient)();
|
|
52
|
-
const response = await client.put(`/spots/${spotId}`, data);
|
|
53
|
-
return response.data.data;
|
|
54
|
-
},
|
|
55
|
-
onSuccess: (data, variables) => {
|
|
56
|
-
queryClient.setQueryData(spots_1.spotKeys.detail(variables.spotId), data);
|
|
57
|
-
},
|
|
58
|
-
...options,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Claim a spot (for business owners)
|
|
63
|
-
*
|
|
64
|
-
* @endpoint POST /spots/{spotId}/claim
|
|
65
|
-
*/
|
|
66
|
-
function useClaimSpot(options) {
|
|
67
|
-
return (0, react_query_1.useMutation)({
|
|
68
|
-
mutationFn: async ({ spotId, ...data }) => {
|
|
69
|
-
const client = (0, client_1.getApiClient)();
|
|
70
|
-
const response = await client.post(`/spots/${spotId}/claim`, data);
|
|
71
|
-
return response.data.data;
|
|
72
|
-
},
|
|
73
|
-
...options,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Subscribe to a spot
|
|
78
|
-
*
|
|
79
|
-
* @endpoint POST /spots/{spotId}/subscribe
|
|
80
|
-
*/
|
|
81
|
-
function useSubscribeToSpot(options) {
|
|
82
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
83
|
-
return (0, react_query_1.useMutation)({
|
|
84
|
-
mutationFn: async (spotId) => {
|
|
85
|
-
const client = (0, client_1.getApiClient)();
|
|
86
|
-
await client.post(`/spots/${spotId}/subscribe`);
|
|
87
|
-
},
|
|
88
|
-
onSuccess: () => {
|
|
89
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.subscriptions() });
|
|
90
|
-
},
|
|
91
|
-
...options,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Unsubscribe from a spot
|
|
96
|
-
*
|
|
97
|
-
* @endpoint DELETE /spots/{spotId}/subscribe
|
|
98
|
-
*/
|
|
99
|
-
function useUnsubscribeFromSpot(options) {
|
|
100
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
101
|
-
return (0, react_query_1.useMutation)({
|
|
102
|
-
mutationFn: async (spotId) => {
|
|
103
|
-
const client = (0, client_1.getApiClient)();
|
|
104
|
-
await client.delete(`/spots/${spotId}/subscribe`);
|
|
105
|
-
},
|
|
106
|
-
onSuccess: () => {
|
|
107
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.subscriptions() });
|
|
108
|
-
},
|
|
109
|
-
...options,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Toggle favorite status on a spot
|
|
114
|
-
*
|
|
115
|
-
* @endpoint POST /spots/{spotId}/favorite
|
|
116
|
-
*/
|
|
117
|
-
function useFavoriteSpot(options) {
|
|
118
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
119
|
-
return (0, react_query_1.useMutation)({
|
|
120
|
-
mutationFn: async (spotId) => {
|
|
121
|
-
const client = (0, client_1.getApiClient)();
|
|
122
|
-
const response = await client.post(`/spots/${spotId}/favorite`);
|
|
123
|
-
return response.data.data;
|
|
124
|
-
},
|
|
125
|
-
onSuccess: () => {
|
|
126
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.favorites() });
|
|
127
|
-
},
|
|
128
|
-
...options,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Rate a spot
|
|
133
|
-
*
|
|
134
|
-
* @endpoint POST /spots/{spotId}/rate
|
|
135
|
-
*/
|
|
136
|
-
function useRateSpot(options) {
|
|
137
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
138
|
-
return (0, react_query_1.useMutation)({
|
|
139
|
-
mutationFn: async ({ spotId, rating, }) => {
|
|
140
|
-
const client = (0, client_1.getApiClient)();
|
|
141
|
-
const response = await client.post(`/spots/${spotId}/rate`, { rating });
|
|
142
|
-
return response.data.data;
|
|
143
|
-
},
|
|
144
|
-
onSuccess: (_, variables) => {
|
|
145
|
-
queryClient.invalidateQueries({
|
|
146
|
-
queryKey: spots_1.spotKeys.detail(variables.spotId),
|
|
147
|
-
});
|
|
148
|
-
},
|
|
149
|
-
...options,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Report a spot
|
|
154
|
-
*
|
|
155
|
-
* @endpoint POST /spots/{spotId}/report
|
|
156
|
-
*/
|
|
157
|
-
function useReportSpot(options) {
|
|
158
|
-
return (0, react_query_1.useMutation)({
|
|
159
|
-
mutationFn: async ({ spotId, reason, details, }) => {
|
|
160
|
-
const client = (0, client_1.getApiClient)();
|
|
161
|
-
const response = await client.post(`/spots/${spotId}/report`, { reason, details });
|
|
162
|
-
return response.data.data;
|
|
163
|
-
},
|
|
164
|
-
...options,
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9zcG90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUF1Qkgsc0NBZ0JDO0FBT0Qsc0NBc0JDO0FBT0Qsb0NBeUJDO0FBT0QsZ0RBZUM7QUFPRCx3REFlQztBQU9ELDBDQXFCQztBQU9ELGtDQXNDQztBQU9ELHNDQTZCQztBQTNQRCx1REFLOEI7QUFFOUIsc0NBQXNDO0FBQ3RDLDRDQUF5QztBQUN6Qyw0Q0FBeUM7QUFHekMsK0VBQStFO0FBQy9FLGlCQUFpQjtBQUNqQiwrRUFBK0U7QUFFL0U7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FDM0IsT0FBNEU7SUFFNUUsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFtQixFQUFpQixFQUFFO1lBQ3ZELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBb0IsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO1lBQ3JFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDN0QsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVB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QztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxHQUNSLEVBQStCLEVBQUU7WUFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUNoQyxVQUFVLE1BQU0sU0FBUyxFQUN6QixFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUMsQ0FDbEIsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwb3RzIE11dGF0aW9uIEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIHNwb3QgbXV0YXRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VNdXRhdGlvbixcbiAgdHlwZSBVc2VNdXRhdGlvbk9wdGlvbnMsXG4gIHR5cGUgVXNlTXV0YXRpb25SZXN1bHQsXG4gIHVzZVF1ZXJ5Q2xpZW50LFxufSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknXG5cbmltcG9ydCB7Z2V0QXBpQ2xpZW50fSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQge3Nwb3RLZXlzfSBmcm9tICcuLi9xdWVyaWVzL3Nwb3RzJ1xuaW1wb3J0IHt1c2VyS2V5c30gZnJvbSAnLi4vcXVlcmllcy91c2VycydcbmltcG9ydCB7dHlwZSBBcGlSZXNwb25zZSwgdHlwZSBDbGFpbVNwb3RSZXF1ZXN0LCB0eXBlIFNwb3R9IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBNVVRBVElPTiBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBzcG90XG4gKlxuICogQGVuZHBvaW50IFBPU1QgL3Nwb3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVTcG90KFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8U3BvdCwgRXJyb3IsIFBhcnRpYWw8U3BvdD4+LCAnbXV0YXRpb25Gbic+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8U3BvdCwgRXJyb3IsIFBhcnRpYWw8U3BvdD4+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogUGFydGlhbDxTcG90Pik6IFByb21pc2U8U3BvdD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8U3BvdD4+KCcvc3BvdHMnLCBkYXRhKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IHNwb3RLZXlzLmxpc3RzKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBVcGRhdGUgYSBzcG90XG4gKlxuICogQGVuZHBvaW50IFBVVCAvc3BvdHMve3Nwb3RJZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZVNwb3QoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxTcG90LCBFcnJvciwge3Nwb3RJZDogc3RyaW5nfSAmIFBhcnRpYWw8U3BvdD4+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8U3BvdCwgRXJyb3IsIHtzcG90SWQ6IHN0cmluZ30gJiBQYXJ0aWFsPFNwb3Q+PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKVxuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtzcG90SWQsIC4uLmRhdGF9KTogUHJvbWlzZTxTcG90PiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PEFwaVJlc3BvbnNlPFNwb3Q+PihcbiAgICAgICAgYC9zcG90cy8ke3Nwb3RJZH1gLFxuICAgICAgICBkYXRhLFxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoZGF0YSwgdmFyaWFibGVzKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5zZXRRdWVyeURhdGEoc3BvdEtleXMuZGV0YWlsKHZhcmlhYmxlcy5zcG90SWQpLCBkYXRhKVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBDbGFpbSBhIHNwb3QgKGZvciBidXNpbmVzcyBvd25lcnMpXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL3Nwb3RzL3tzcG90SWR9L2NsYWltXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDbGFpbVNwb3QoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxcbiAgICAgIHtjbGFpbUlkOiBzdHJpbmd9LFxuICAgICAgRXJyb3IsXG4gICAgICB7c3BvdElkOiBzdHJpbmd9ICYgQ2xhaW1TcG90UmVxdWVzdFxuICAgID4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxcbiAge2NsYWltSWQ6IHN0cmluZ30sXG4gIEVycm9yLFxuICB7c3BvdElkOiBzdHJpbmd9ICYgQ2xhaW1TcG90UmVxdWVzdFxuPiB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtzcG90SWQsIC4uLmRhdGF9KTogUHJvbWlzZTx7Y2xhaW1JZDogc3RyaW5nfT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8e2NsYWltSWQ6IHN0cmluZ30+PihcbiAgICAgICAgYC9zcG90cy8ke3Nwb3RJZH0vY2xhaW1gLFxuICAgICAgICBkYXRhLFxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBTdWJzY3JpYmUgdG8gYSBzcG90XG4gKlxuICogQGVuZHBvaW50IFBPU1QgL3Nwb3RzL3tzcG90SWR9L3N1YnNjcmliZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU3Vic2NyaWJlVG9TcG90KFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8dm9pZCwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDx2b2lkLCBFcnJvciwgc3RyaW5nPiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKVxuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHNwb3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgYXdhaXQgY2xpZW50LnBvc3QoYC9zcG90cy8ke3Nwb3RJZH0vc3Vic2NyaWJlYClcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiB1c2VyS2V5cy5zdWJzY3JpcHRpb25zKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBVbnN1YnNjcmliZSBmcm9tIGEgc3BvdFxuICpcbiAqIEBlbmRwb2ludCBERUxFVEUgL3Nwb3RzL3tzcG90SWR9L3N1YnNjcmliZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVW5zdWJzY3JpYmVGcm9tU3BvdChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8dm9pZCwgRXJyb3IsIHN0cmluZz4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChzcG90SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9zcG90cy8ke3Nwb3RJZH0vc3Vic2NyaWJlYClcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiB1c2VyS2V5cy5zdWJzY3JpcHRpb25zKCl9KVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBUb2dnbGUgZmF2b3JpdGUgc3RhdHVzIG9uIGEgc3BvdFxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC9zcG90cy97c3BvdElkfS9mYXZvcml0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRmF2b3JpdGVTcG90KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8e2lzRmF2b3JpdGU6IGJvb2xlYW59LCBFcnJvciwgc3RyaW5nPixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHtpc0Zhdm9yaXRlOiBib29sZWFufSwgRXJyb3IsIHN0cmluZz4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChzcG90SWQ6IHN0cmluZyk6IFByb21pc2U8e2lzRmF2b3JpdGU6IGJvb2xlYW59PiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTx7aXNGYXZvcml0ZTogYm9vbGVhbn0+PihcbiAgICAgICAgYC9zcG90cy8ke3Nwb3RJZH0vZmF2b3JpdGVgLFxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IHVzZXJLZXlzLmZhdm9yaXRlcygpfSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogUmF0ZSBhIHNwb3RcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvc3BvdHMve3Nwb3RJZH0vcmF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUmF0ZVNwb3QoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxcbiAgICAgIHtyYXRpbmc6IG51bWJlcn0sXG4gICAgICBFcnJvcixcbiAgICAgIHtzcG90SWQ6IHN0cmluZzsgcmF0aW5nOiBudW1iZXJ9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PFxuICB7cmF0aW5nOiBudW1iZXJ9LFxuICBFcnJvcixcbiAge3Nwb3RJZDogc3RyaW5nOyByYXRpbmc6IG51bWJlcn1cbj4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh7XG4gICAgICBzcG90SWQsXG4gICAgICByYXRpbmcsXG4gICAgfToge1xuICAgICAgc3BvdElkOiBzdHJpbmdcbiAgICAgIHJhdGluZzogbnVtYmVyXG4gICAgfSk6IFByb21pc2U8e3JhdGluZzogbnVtYmVyfT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8QXBpUmVzcG9uc2U8e3JhdGluZzogbnVtYmVyfT4+KFxuICAgICAgICBgL3Nwb3RzLyR7c3BvdElkfS9yYXRlYCxcbiAgICAgICAge3JhdGluZ30sXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChfLCB2YXJpYWJsZXMpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtcbiAgICAgICAgcXVlcnlLZXk6IHNwb3RLZXlzLmRldGFpbCh2YXJpYWJsZXMuc3BvdElkKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIFJlcG9ydCBhIHNwb3RcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvc3BvdHMve3Nwb3RJZH0vcmVwb3J0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZXBvcnRTcG90KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICB7c3VjY2VzczogYm9vbGVhbn0sXG4gICAgICBFcnJvcixcbiAgICAgIHtzcG90SWQ6IHN0cmluZzsgcmVhc29uOiBzdHJpbmc7IGRldGFpbHM/OiBzdHJpbmd9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PFxuICB7c3VjY2VzczogYm9vbGVhbn0sXG4gIEVycm9yLFxuICB7c3BvdElkOiBzdHJpbmc7IHJlYXNvbjogc3RyaW5nOyBkZXRhaWxzPzogc3RyaW5nfVxuPiB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIHNwb3RJZCxcbiAgICAgIHJlYXNvbixcbiAgICAgIGRldGFpbHMsXG4gICAgfSk6IFByb21pc2U8e3N1Y2Nlc3M6IGJvb2xlYW59PiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxBcGlSZXNwb25zZTx7c3VjY2VzczogYm9vbGVhbn0+PihcbiAgICAgICAgYC9zcG90cy8ke3Nwb3RJZH0vcmVwb3J0YCxcbiAgICAgICAge3JlYXNvbiwgZGV0YWlsc30sXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Users Mutation Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for user mutation operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
7
|
-
import { type UpdateProfileRequest, type User } from '../types';
|
|
8
|
-
/**
|
|
9
|
-
* Update current user's profile
|
|
10
|
-
*
|
|
11
|
-
* @endpoint PUT /users/me
|
|
12
|
-
*/
|
|
13
|
-
export declare function useUpdateProfile(options?: Omit<UseMutationOptions<User, Error, UpdateProfileRequest>, 'mutationFn'>): UseMutationResult<User, Error, UpdateProfileRequest>;
|
|
14
|
-
/**
|
|
15
|
-
* Upload avatar
|
|
16
|
-
*
|
|
17
|
-
* Uploads avatar file and updates user profile in one request.
|
|
18
|
-
*
|
|
19
|
-
* @endpoint POST /users/me/avatar
|
|
20
|
-
*/
|
|
21
|
-
export declare function useUploadAvatar(options?: Omit<UseMutationOptions<{
|
|
22
|
-
avatarUrl: string;
|
|
23
|
-
}, Error, FormData>, 'mutationFn'>): UseMutationResult<{
|
|
24
|
-
avatarUrl: string;
|
|
25
|
-
}, Error, FormData>;
|
|
26
|
-
/**
|
|
27
|
-
* Delete current user's account
|
|
28
|
-
*
|
|
29
|
-
* @endpoint DELETE /users/me
|
|
30
|
-
*/
|
|
31
|
-
export declare function useDeleteAccount(options?: Omit<UseMutationOptions<void, Error, void>, 'mutationFn'>): UseMutationResult<void, Error, void>;
|
|
32
|
-
/**
|
|
33
|
-
* Update user vibes
|
|
34
|
-
*
|
|
35
|
-
* @endpoint PUT /users/me/vibes
|
|
36
|
-
*/
|
|
37
|
-
export declare function useUpdateVibes(options?: Omit<UseMutationOptions<User, Error, {
|
|
38
|
-
vibes: string[];
|
|
39
|
-
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
40
|
-
vibes: string[];
|
|
41
|
-
}>;
|
|
42
|
-
/**
|
|
43
|
-
* Update user interests
|
|
44
|
-
*
|
|
45
|
-
* @endpoint PUT /user/me/interests
|
|
46
|
-
*/
|
|
47
|
-
export declare function useUpdateInterests(options?: Omit<UseMutationOptions<User, Error, {
|
|
48
|
-
interests: string[];
|
|
49
|
-
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
50
|
-
interests: string[];
|
|
51
|
-
}>;
|
|
52
|
-
/**
|
|
53
|
-
* Complete onboarding step
|
|
54
|
-
*
|
|
55
|
-
* @endpoint POST /user/me/onboarding-step
|
|
56
|
-
*/
|
|
57
|
-
export declare function useCompleteOnboardingStep(options?: Omit<UseMutationOptions<User, Error, {
|
|
58
|
-
step: number;
|
|
59
|
-
}>, 'mutationFn'>): UseMutationResult<User, Error, {
|
|
60
|
-
step: number;
|
|
61
|
-
}>;
|
|
62
|
-
/**
|
|
63
|
-
* Block a user
|
|
64
|
-
*
|
|
65
|
-
* @endpoint POST /users/{id}/block
|
|
66
|
-
*/
|
|
67
|
-
export declare function useBlockUser(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
68
|
-
/**
|
|
69
|
-
* Unblock a user
|
|
70
|
-
*
|
|
71
|
-
* @endpoint DELETE /users/{id}/block
|
|
72
|
-
*/
|
|
73
|
-
export declare function useUnblockUser(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Users Mutation Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for user mutation operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.useUpdateProfile = useUpdateProfile;
|
|
9
|
-
exports.useUploadAvatar = useUploadAvatar;
|
|
10
|
-
exports.useDeleteAccount = useDeleteAccount;
|
|
11
|
-
exports.useUpdateVibes = useUpdateVibes;
|
|
12
|
-
exports.useUpdateInterests = useUpdateInterests;
|
|
13
|
-
exports.useCompleteOnboardingStep = useCompleteOnboardingStep;
|
|
14
|
-
exports.useBlockUser = useBlockUser;
|
|
15
|
-
exports.useUnblockUser = useUnblockUser;
|
|
16
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
17
|
-
const client_1 = require("../client");
|
|
18
|
-
const users_1 = require("../queries/users");
|
|
19
|
-
// ============================================================================
|
|
20
|
-
// MUTATION HOOKS
|
|
21
|
-
// ============================================================================
|
|
22
|
-
/**
|
|
23
|
-
* Update current user's profile
|
|
24
|
-
*
|
|
25
|
-
* @endpoint PUT /users/me
|
|
26
|
-
*/
|
|
27
|
-
function useUpdateProfile(options) {
|
|
28
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
29
|
-
return (0, react_query_1.useMutation)({
|
|
30
|
-
mutationFn: async (data) => {
|
|
31
|
-
const client = (0, client_1.getApiClient)();
|
|
32
|
-
const response = await client.put('/users/me', data);
|
|
33
|
-
return response.data.data;
|
|
34
|
-
},
|
|
35
|
-
onSuccess: data => {
|
|
36
|
-
queryClient.setQueryData(users_1.userKeys.me(), data);
|
|
37
|
-
},
|
|
38
|
-
...options,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Upload avatar
|
|
43
|
-
*
|
|
44
|
-
* Uploads avatar file and updates user profile in one request.
|
|
45
|
-
*
|
|
46
|
-
* @endpoint POST /users/me/avatar
|
|
47
|
-
*/
|
|
48
|
-
function useUploadAvatar(options) {
|
|
49
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
50
|
-
return (0, react_query_1.useMutation)({
|
|
51
|
-
mutationFn: async (formData) => {
|
|
52
|
-
const client = (0, client_1.getApiClient)();
|
|
53
|
-
const response = await client.post('/users/me/avatar', formData, {
|
|
54
|
-
headers: { 'Content-Type': 'multipart/form-data' },
|
|
55
|
-
});
|
|
56
|
-
return response.data.data;
|
|
57
|
-
},
|
|
58
|
-
onSuccess: () => {
|
|
59
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.me() });
|
|
60
|
-
},
|
|
61
|
-
...options,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Delete current user's account
|
|
66
|
-
*
|
|
67
|
-
* @endpoint DELETE /users/me
|
|
68
|
-
*/
|
|
69
|
-
function useDeleteAccount(options) {
|
|
70
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
71
|
-
return (0, react_query_1.useMutation)({
|
|
72
|
-
mutationFn: async () => {
|
|
73
|
-
const client = (0, client_1.getApiClient)();
|
|
74
|
-
await client.delete('/users/me');
|
|
75
|
-
},
|
|
76
|
-
onSuccess: () => {
|
|
77
|
-
queryClient.clear();
|
|
78
|
-
},
|
|
79
|
-
...options,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Update user vibes
|
|
84
|
-
*
|
|
85
|
-
* @endpoint PUT /users/me/vibes
|
|
86
|
-
*/
|
|
87
|
-
function useUpdateVibes(options) {
|
|
88
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
89
|
-
return (0, react_query_1.useMutation)({
|
|
90
|
-
mutationFn: async (data) => {
|
|
91
|
-
const client = (0, client_1.getApiClient)();
|
|
92
|
-
const response = await client.put('/users/me/vibes', data);
|
|
93
|
-
return response.data.data;
|
|
94
|
-
},
|
|
95
|
-
onSuccess: () => {
|
|
96
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.me() });
|
|
97
|
-
},
|
|
98
|
-
...options,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Update user interests
|
|
103
|
-
*
|
|
104
|
-
* @endpoint PUT /user/me/interests
|
|
105
|
-
*/
|
|
106
|
-
function useUpdateInterests(options) {
|
|
107
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
108
|
-
return (0, react_query_1.useMutation)({
|
|
109
|
-
mutationFn: async (data) => {
|
|
110
|
-
const client = (0, client_1.getApiClient)();
|
|
111
|
-
const response = await client.put('/user/me/interests', data);
|
|
112
|
-
return response.data.data;
|
|
113
|
-
},
|
|
114
|
-
onSuccess: () => {
|
|
115
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.me() });
|
|
116
|
-
},
|
|
117
|
-
...options,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Complete onboarding step
|
|
122
|
-
*
|
|
123
|
-
* @endpoint POST /user/me/onboarding-step
|
|
124
|
-
*/
|
|
125
|
-
function useCompleteOnboardingStep(options) {
|
|
126
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
127
|
-
return (0, react_query_1.useMutation)({
|
|
128
|
-
mutationFn: async (data) => {
|
|
129
|
-
const client = (0, client_1.getApiClient)();
|
|
130
|
-
const response = await client.post('/user/me/onboarding-step', data);
|
|
131
|
-
return response.data.data;
|
|
132
|
-
},
|
|
133
|
-
onSuccess: () => {
|
|
134
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.me() });
|
|
135
|
-
},
|
|
136
|
-
...options,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Block a user
|
|
141
|
-
*
|
|
142
|
-
* @endpoint POST /users/{id}/block
|
|
143
|
-
*/
|
|
144
|
-
function useBlockUser(options) {
|
|
145
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
146
|
-
return (0, react_query_1.useMutation)({
|
|
147
|
-
mutationFn: async (userId) => {
|
|
148
|
-
const client = (0, client_1.getApiClient)();
|
|
149
|
-
await client.post(`/users/${userId}/block`);
|
|
150
|
-
},
|
|
151
|
-
onSuccess: () => {
|
|
152
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.blocked() });
|
|
153
|
-
},
|
|
154
|
-
...options,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Unblock a user
|
|
159
|
-
*
|
|
160
|
-
* @endpoint DELETE /users/{id}/block
|
|
161
|
-
*/
|
|
162
|
-
function useUnblockUser(options) {
|
|
163
|
-
const queryClient = (0, react_query_1.useQueryClient)();
|
|
164
|
-
return (0, react_query_1.useMutation)({
|
|
165
|
-
mutationFn: async (userId) => {
|
|
166
|
-
const client = (0, client_1.getApiClient)();
|
|
167
|
-
await client.delete(`/users/${userId}/block`);
|
|
168
|
-
},
|
|
169
|
-
onSuccess: () => {
|
|
170
|
-
queryClient.invalidateQueries({ queryKey: users_1.userKeys.blocked() });
|
|
171
|
-
},
|
|
172
|
-
...options,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy91c2Vycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7QUFzQkgsNENBbUJDO0FBU0QsMENBeUJDO0FBT0QsNENBZUM7QUFPRCx3Q0FzQkM7QUFPRCxnREFzQkM7QUFPRCw4REFtQkM7QUFPRCxvQ0FlQztBQU9ELHdDQWVDO0FBL05ELHVEQUs4QjtBQUU5QixzQ0FBc0M7QUFDdEMsNENBQXlDO0FBR3pDLCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FHQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFBO0lBRXBDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBMEIsRUFBaUIsRUFBRTtZQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQW9CLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUN2RSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQzNCLENBQUM7UUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDaEIsV0FBVyxDQUFDLFlBQVksQ0FBQyxnQkFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFrQixFQUFnQyxFQUFFO1lBQ3JFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDaEMsa0JBQWtCLEVBQ2xCLFFBQVEsRUFDUjtnQkFDRSxPQUFPLEVBQUUsRUFBQyxjQUFjLEVBQUUscUJBQXFCLEVBQUM7YUFDakQsQ0FDRixDQUFBO1lBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMzQixDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxnQkFBUSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBbUU7SUFFbkUsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssSUFBbUIsRUFBRTtZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDbEMsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDckIsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUF1QixFQUFpQixFQUFFO1lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsaUJBQWlCLEVBQ2pCLElBQUksQ0FDTCxDQUFBO1lBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMzQixDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxnQkFBUSxDQUFDLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQTtRQUMxRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsT0FHQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFBO0lBRXBDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBMkIsRUFBaUIsRUFBRTtZQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLG9CQUFvQixFQUNwQixJQUFJLENBQ0wsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLE9BQTZFO0lBRTdFLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFBO0lBRXBDLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBb0IsRUFBaUIsRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLDBCQUEwQixFQUMxQixJQUFJLENBQ0wsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBQyxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUE7UUFDMUQsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixPQUFxRTtJQUVyRSxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQTtJQUVwQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQWMsRUFBaUIsRUFBRTtZQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxNQUFNLFFBQVEsQ0FBQyxDQUFBO1FBQzdDLENBQUM7UUFDRCxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEVBQUMsUUFBUSxFQUFFLGdCQUFRLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFBO1FBQy9ELENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsT0FBcUU7SUFFckUsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUE7SUFFcEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFjLEVBQWlCLEVBQUU7WUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsTUFBTSxRQUFRLENBQUMsQ0FBQTtRQUMvQyxDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFFBQVEsRUFBRSxnQkFBUSxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlcnMgTXV0YXRpb24gSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgdXNlciBtdXRhdGlvbiBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7XG4gIHVzZU11dGF0aW9uLFxuICB0eXBlIFVzZU11dGF0aW9uT3B0aW9ucyxcbiAgdHlwZSBVc2VNdXRhdGlvblJlc3VsdCxcbiAgdXNlUXVlcnlDbGllbnQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7dXNlcktleXN9IGZyb20gJy4uL3F1ZXJpZXMvdXNlcnMnXG5pbXBvcnQge3R5cGUgQXBpUmVzcG9uc2UsIHR5cGUgVXBkYXRlUHJvZmlsZVJlcXVlc3QsIHR5cGUgVXNlcn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVXBkYXRlIGN1cnJlbnQgdXNlcidzIHByb2ZpbGVcbiAqXG4gKiBAZW5kcG9pbnQgUFVUIC91c2Vycy9tZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlUHJvZmlsZShcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPFVzZXIsIEVycm9yLCBVcGRhdGVQcm9maWxlUmVxdWVzdD4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxVc2VyLCBFcnJvciwgVXBkYXRlUHJvZmlsZVJlcXVlc3Q+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogVXBkYXRlUHJvZmlsZVJlcXVlc3QpOiBQcm9taXNlPFVzZXI+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wdXQ8QXBpUmVzcG9uc2U8VXNlcj4+KCcvdXNlcnMvbWUnLCBkYXRhKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiBkYXRhID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LnNldFF1ZXJ5RGF0YSh1c2VyS2V5cy5tZSgpLCBkYXRhKVxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBVcGxvYWQgYXZhdGFyXG4gKlxuICogVXBsb2FkcyBhdmF0YXIgZmlsZSBhbmQgdXBkYXRlcyB1c2VyIHByb2ZpbGUgaW4gb25lIHJlcXVlc3QuXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL3VzZXJzL21lL2F2YXRhclxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBsb2FkQXZhdGFyKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8e2F2YXRhclVybDogc3RyaW5nfSwgRXJyb3IsIEZvcm1EYXRhPixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHthdmF0YXJVcmw6IHN0cmluZ30sIEVycm9yLCBGb3JtRGF0YT4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPHthdmF0YXJVcmw6IHN0cmluZ30+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPHthdmF0YXJVcmw6IHN0cmluZ30+PihcbiAgICAgICAgJy91c2Vycy9tZS9hdmF0YXInLFxuICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAge1xuICAgICAgICAgIGhlYWRlcnM6IHsnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnfSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoe3F1ZXJ5S2V5OiB1c2VyS2V5cy5tZSgpfSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogRGVsZXRlIGN1cnJlbnQgdXNlcidzIGFjY291bnRcbiAqXG4gKiBAZW5kcG9pbnQgREVMRVRFIC91c2Vycy9tZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRGVsZXRlQWNjb3VudChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCB2b2lkPiwgJ211dGF0aW9uRm4nPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCB2b2lkPiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKVxuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoJy91c2Vycy9tZScpXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmNsZWFyKClcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogVXBkYXRlIHVzZXIgdmliZXNcbiAqXG4gKiBAZW5kcG9pbnQgUFVUIC91c2Vycy9tZS92aWJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlVmliZXMoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxVc2VyLCBFcnJvciwge3ZpYmVzOiBzdHJpbmdbXX0+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8VXNlciwgRXJyb3IsIHt2aWJlczogc3RyaW5nW119PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKVxuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IHt2aWJlczogc3RyaW5nW119KTogUHJvbWlzZTxVc2VyPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PEFwaVJlc3BvbnNlPFVzZXI+PihcbiAgICAgICAgJy91c2Vycy9tZS92aWJlcycsXG4gICAgICAgIGRhdGEsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogdXNlcktleXMubWUoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIFVwZGF0ZSB1c2VyIGludGVyZXN0c1xuICpcbiAqIEBlbmRwb2ludCBQVVQgL3VzZXIvbWUvaW50ZXJlc3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVcGRhdGVJbnRlcmVzdHMoXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczxVc2VyLCBFcnJvciwge2ludGVyZXN0czogc3RyaW5nW119PixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PFVzZXIsIEVycm9yLCB7aW50ZXJlc3RzOiBzdHJpbmdbXX0+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YToge2ludGVyZXN0czogc3RyaW5nW119KTogUHJvbWlzZTxVc2VyPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PEFwaVJlc3BvbnNlPFVzZXI+PihcbiAgICAgICAgJy91c2VyL21lL2ludGVyZXN0cycsXG4gICAgICAgIGRhdGEsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogdXNlcktleXMubWUoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIENvbXBsZXRlIG9uYm9hcmRpbmcgc3RlcFxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC91c2VyL21lL29uYm9hcmRpbmctc3RlcFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ29tcGxldGVPbmJvYXJkaW5nU3RlcChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPFVzZXIsIEVycm9yLCB7c3RlcDogbnVtYmVyfT4sICdtdXRhdGlvbkZuJz4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxVc2VyLCBFcnJvciwge3N0ZXA6IG51bWJlcn0+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YToge3N0ZXA6IG51bWJlcn0pOiBQcm9taXNlPFVzZXI+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPFVzZXI+PihcbiAgICAgICAgJy91c2VyL21lL29uYm9hcmRpbmctc3RlcCcsXG4gICAgICAgIGRhdGEsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogdXNlcktleXMubWUoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEJsb2NrIGEgdXNlclxuICpcbiAqIEBlbmRwb2ludCBQT1NUIC91c2Vycy97aWR9L2Jsb2NrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VCbG9ja1VzZXIoXG4gIG9wdGlvbnM/OiBPbWl0PFVzZU11dGF0aW9uT3B0aW9uczx2b2lkLCBFcnJvciwgc3RyaW5nPiwgJ211dGF0aW9uRm4nPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHZvaWQsIEVycm9yLCBzdHJpbmc+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpXG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBhd2FpdCBjbGllbnQucG9zdChgL3VzZXJzLyR7dXNlcklkfS9ibG9ja2ApXG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHtxdWVyeUtleTogdXNlcktleXMuYmxvY2tlZCgpfSlcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogVW5ibG9jayBhIHVzZXJcbiAqXG4gKiBAZW5kcG9pbnQgREVMRVRFIC91c2Vycy97aWR9L2Jsb2NrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VVbmJsb2NrVXNlcihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+LFxuKTogVXNlTXV0YXRpb25SZXN1bHQ8dm9pZCwgRXJyb3IsIHN0cmluZz4ge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KClcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC91c2Vycy8ke3VzZXJJZH0vYmxvY2tgKVxuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7cXVlcnlLZXk6IHVzZXJLZXlzLmJsb2NrZWQoKX0pXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auth Mutation Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for authentication operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseMutationOptions, type UseMutationResult } from '@tanstack/react-query';
|
|
7
|
-
import { type ApiResponse, type AuthResponse, type SendOtpRequest, type VerifyOtpRequest } from '../types';
|
|
8
|
-
/**
|
|
9
|
-
* Send OTP to phone number
|
|
10
|
-
*
|
|
11
|
-
* @endpoint POST /auth/send-otp
|
|
12
|
-
*/
|
|
13
|
-
export declare function useSendOtp(options?: Omit<UseMutationOptions<ApiResponse<{
|
|
14
|
-
sent: boolean;
|
|
15
|
-
}>, Error, SendOtpRequest>, 'mutationFn'>): UseMutationResult<ApiResponse<{
|
|
16
|
-
sent: boolean;
|
|
17
|
-
}>, Error, SendOtpRequest>;
|
|
18
|
-
/**
|
|
19
|
-
* Verify OTP and authenticate
|
|
20
|
-
*
|
|
21
|
-
* @endpoint POST /auth/verify-otp
|
|
22
|
-
*/
|
|
23
|
-
export declare function useVerifyOtp(options?: Omit<UseMutationOptions<AuthResponse, Error, VerifyOtpRequest>, 'mutationFn'>): UseMutationResult<AuthResponse, Error, VerifyOtpRequest>;
|
|
24
|
-
/**
|
|
25
|
-
* Refresh access token
|
|
26
|
-
*
|
|
27
|
-
* @endpoint POST /auth/refresh
|
|
28
|
-
*/
|
|
29
|
-
export declare function useRefreshToken(options?: Omit<UseMutationOptions<{
|
|
30
|
-
accessToken: string;
|
|
31
|
-
}, Error, {
|
|
32
|
-
refreshToken: string;
|
|
33
|
-
}>, 'mutationFn'>): UseMutationResult<{
|
|
34
|
-
accessToken: string;
|
|
35
|
-
}, Error, {
|
|
36
|
-
refreshToken: string;
|
|
37
|
-
}>;
|
package/dist/api/queries/auth.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Auth Mutation Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for authentication operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.useSendOtp = useSendOtp;
|
|
9
|
-
exports.useVerifyOtp = useVerifyOtp;
|
|
10
|
-
exports.useRefreshToken = useRefreshToken;
|
|
11
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
12
|
-
const client_1 = require("../client");
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// MUTATION HOOKS
|
|
15
|
-
// ============================================================================
|
|
16
|
-
/**
|
|
17
|
-
* Send OTP to phone number
|
|
18
|
-
*
|
|
19
|
-
* @endpoint POST /auth/send-otp
|
|
20
|
-
*/
|
|
21
|
-
function useSendOtp(options) {
|
|
22
|
-
return (0, react_query_1.useMutation)({
|
|
23
|
-
mutationFn: async (data) => {
|
|
24
|
-
const client = (0, client_1.getApiClient)();
|
|
25
|
-
const response = await client.post('/auth/send-otp', data);
|
|
26
|
-
return response.data;
|
|
27
|
-
},
|
|
28
|
-
...options,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Verify OTP and authenticate
|
|
33
|
-
*
|
|
34
|
-
* @endpoint POST /auth/verify-otp
|
|
35
|
-
*/
|
|
36
|
-
function useVerifyOtp(options) {
|
|
37
|
-
return (0, react_query_1.useMutation)({
|
|
38
|
-
mutationFn: async (data) => {
|
|
39
|
-
const client = (0, client_1.getApiClient)();
|
|
40
|
-
const response = await client.post('/auth/verify-otp', data);
|
|
41
|
-
return response.data;
|
|
42
|
-
},
|
|
43
|
-
...options,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Refresh access token
|
|
48
|
-
*
|
|
49
|
-
* @endpoint POST /auth/refresh
|
|
50
|
-
*/
|
|
51
|
-
function useRefreshToken(options) {
|
|
52
|
-
return (0, react_query_1.useMutation)({
|
|
53
|
-
mutationFn: async (data) => {
|
|
54
|
-
const client = (0, client_1.getApiClient)();
|
|
55
|
-
const response = await client.post('/auth/refresh', data);
|
|
56
|
-
return response.data;
|
|
57
|
-
},
|
|
58
|
-
...options,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOztBQXlCSCxnQ0FpQkM7QUFPRCxvQ0FjQztBQU9ELDBDQWlCQztBQXJGRCx1REFJOEI7QUFFOUIsc0NBQXNDO0FBUXRDLCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQ3hCLE9BR0M7SUFFRCxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLElBQW9CLEVBQUUsRUFBRTtZQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQ2hDLGdCQUFnQixFQUNoQixJQUFJLENBQ0wsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQTtRQUN0QixDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixZQUFZLENBQzFCLE9BR0M7SUFFRCxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLElBQXNCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQWUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDMUUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFBO1FBQ3RCLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsT0FHQztJQUVELE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBNEIsRUFBRSxFQUFFO1lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FDaEMsZUFBZSxFQUNmLElBQUksQ0FDTCxDQUFBO1lBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFBO1FBQ3RCLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBdXRoIE11dGF0aW9uIEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIGF1dGhlbnRpY2F0aW9uIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHtcbiAgdXNlTXV0YXRpb24sXG4gIHR5cGUgVXNlTXV0YXRpb25PcHRpb25zLFxuICB0eXBlIFVzZU11dGF0aW9uUmVzdWx0LFxufSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknXG5cbmltcG9ydCB7Z2V0QXBpQ2xpZW50fSBmcm9tICcuLi9jbGllbnQnXG5pbXBvcnQge1xuICB0eXBlIEFwaVJlc3BvbnNlLFxuICB0eXBlIEF1dGhSZXNwb25zZSxcbiAgdHlwZSBTZW5kT3RwUmVxdWVzdCxcbiAgdHlwZSBWZXJpZnlPdHBSZXF1ZXN0LFxufSBmcm9tICcuLi90eXBlcydcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTVVUQVRJT04gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTZW5kIE9UUCB0byBwaG9uZSBudW1iZXJcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvYXV0aC9zZW5kLW90cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VuZE90cChcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPEFwaVJlc3BvbnNlPHtzZW50OiBib29sZWFufT4sIEVycm9yLCBTZW5kT3RwUmVxdWVzdD4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxBcGlSZXNwb25zZTx7c2VudDogYm9vbGVhbn0+LCBFcnJvciwgU2VuZE90cFJlcXVlc3Q+IHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogU2VuZE90cFJlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPHtzZW50OiBib29sZWFufT4+KFxuICAgICAgICAnL2F1dGgvc2VuZC1vdHAnLFxuICAgICAgICBkYXRhLFxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogVmVyaWZ5IE9UUCBhbmQgYXV0aGVudGljYXRlXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2F1dGgvdmVyaWZ5LW90cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVmVyaWZ5T3RwKFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8QXV0aFJlc3BvbnNlLCBFcnJvciwgVmVyaWZ5T3RwUmVxdWVzdD4sXG4gICAgJ211dGF0aW9uRm4nXG4gID4sXG4pOiBVc2VNdXRhdGlvblJlc3VsdDxBdXRoUmVzcG9uc2UsIEVycm9yLCBWZXJpZnlPdHBSZXF1ZXN0PiB7XG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IFZlcmlmeU90cFJlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEF1dGhSZXNwb25zZT4oJy9hdXRoL3ZlcmlmeS1vdHAnLCBkYXRhKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogUmVmcmVzaCBhY2Nlc3MgdG9rZW5cbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvYXV0aC9yZWZyZXNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZWZyZXNoVG9rZW4oXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZU11dGF0aW9uT3B0aW9uczx7YWNjZXNzVG9rZW46IHN0cmluZ30sIEVycm9yLCB7cmVmcmVzaFRva2VuOiBzdHJpbmd9PixcbiAgICAnbXV0YXRpb25GbidcbiAgPixcbik6IFVzZU11dGF0aW9uUmVzdWx0PHthY2Nlc3NUb2tlbjogc3RyaW5nfSwgRXJyb3IsIHtyZWZyZXNoVG9rZW46IHN0cmluZ30+IHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YToge3JlZnJlc2hUb2tlbjogc3RyaW5nfSkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8e2FjY2Vzc1Rva2VuOiBzdHJpbmd9PihcbiAgICAgICAgJy9hdXRoL3JlZnJlc2gnLFxuICAgICAgICBkYXRhLFxuICAgICAgKVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
|