@spotsdev/sdk 1.0.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.
Files changed (79) hide show
  1. package/dist/api/client.d.ts +12 -0
  2. package/dist/api/client.js +68 -0
  3. package/dist/api/mutations/clubs.d.ts +47 -0
  4. package/dist/api/mutations/clubs.js +95 -0
  5. package/dist/api/mutations/conversations.d.ts +45 -0
  6. package/dist/api/mutations/conversations.js +110 -0
  7. package/dist/api/mutations/index.d.ts +13 -0
  8. package/dist/api/mutations/index.js +38 -0
  9. package/dist/api/mutations/notifications.d.ts +38 -0
  10. package/dist/api/mutations/notifications.js +64 -0
  11. package/dist/api/mutations/orders.d.ts +73 -0
  12. package/dist/api/mutations/orders.js +116 -0
  13. package/dist/api/mutations/posts.d.ts +123 -0
  14. package/dist/api/mutations/posts.js +229 -0
  15. package/dist/api/mutations/products.d.ts +81 -0
  16. package/dist/api/mutations/products.js +102 -0
  17. package/dist/api/mutations/spots.d.ts +59 -0
  18. package/dist/api/mutations/spots.js +129 -0
  19. package/dist/api/mutations/users.d.ts +71 -0
  20. package/dist/api/mutations/users.js +173 -0
  21. package/dist/api/queries/auth.d.ts +37 -0
  22. package/dist/api/queries/auth.js +61 -0
  23. package/dist/api/queries/clubs.d.ts +52 -0
  24. package/dist/api/queries/clubs.js +116 -0
  25. package/dist/api/queries/conversations.d.ts +52 -0
  26. package/dist/api/queries/conversations.js +83 -0
  27. package/dist/api/queries/index.d.ts +26 -0
  28. package/dist/api/queries/index.js +65 -0
  29. package/dist/api/queries/misc.d.ts +54 -0
  30. package/dist/api/queries/misc.js +129 -0
  31. package/dist/api/queries/notifications.d.ts +34 -0
  32. package/dist/api/queries/notifications.js +62 -0
  33. package/dist/api/queries/orders.d.ts +45 -0
  34. package/dist/api/queries/orders.js +93 -0
  35. package/dist/api/queries/posts.d.ts +55 -0
  36. package/dist/api/queries/posts.js +130 -0
  37. package/dist/api/queries/products.d.ts +52 -0
  38. package/dist/api/queries/products.js +89 -0
  39. package/dist/api/queries/spots.d.ts +78 -0
  40. package/dist/api/queries/spots.js +168 -0
  41. package/dist/api/queries/templates.d.ts +42 -0
  42. package/dist/api/queries/templates.js +86 -0
  43. package/dist/api/queries/users.d.ts +90 -0
  44. package/dist/api/queries/users.js +187 -0
  45. package/dist/api/services/index.d.ts +2 -0
  46. package/dist/api/services/index.js +8 -0
  47. package/dist/api/services/marketplace.d.ts +129 -0
  48. package/dist/api/services/marketplace.js +168 -0
  49. package/dist/api/types.d.ts +54 -0
  50. package/dist/api/types.js +34 -0
  51. package/dist/index.d.ts +38 -0
  52. package/dist/index.js +73 -0
  53. package/package.json +57 -0
  54. package/src/api/client.ts +78 -0
  55. package/src/api/mutations/clubs.ts +107 -0
  56. package/src/api/mutations/conversations.ts +124 -0
  57. package/src/api/mutations/index.ts +29 -0
  58. package/src/api/mutations/notifications.ts +70 -0
  59. package/src/api/mutations/orders.ts +174 -0
  60. package/src/api/mutations/posts.ts +278 -0
  61. package/src/api/mutations/products.ts +160 -0
  62. package/src/api/mutations/spots.ts +146 -0
  63. package/src/api/mutations/users.ts +197 -0
  64. package/src/api/queries/auth.ts +67 -0
  65. package/src/api/queries/clubs.ts +135 -0
  66. package/src/api/queries/conversations.ts +94 -0
  67. package/src/api/queries/index.ts +48 -0
  68. package/src/api/queries/misc.ts +140 -0
  69. package/src/api/queries/notifications.ts +66 -0
  70. package/src/api/queries/orders.ts +119 -0
  71. package/src/api/queries/posts.ts +142 -0
  72. package/src/api/queries/products.ts +123 -0
  73. package/src/api/queries/spots.ts +201 -0
  74. package/src/api/queries/templates.ts +95 -0
  75. package/src/api/queries/users.ts +206 -0
  76. package/src/api/services/index.ts +6 -0
  77. package/src/api/services/marketplace.ts +265 -0
  78. package/src/api/types.ts +144 -0
  79. package/src/index.ts +63 -0
@@ -0,0 +1,61 @@
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 /api/v1/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('/api/v1/auth/send-otp', data);
26
+ return response.data;
27
+ },
28
+ ...options,
29
+ });
30
+ }
31
+ /**
32
+ * Verify OTP and authenticate
33
+ *
34
+ * @endpoint POST /api/v1/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('/api/v1/auth/verify-otp', data);
41
+ return response.data;
42
+ },
43
+ ...options,
44
+ });
45
+ }
46
+ /**
47
+ * Refresh access token
48
+ *
49
+ * @endpoint POST /api/v1/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('/api/v1/auth/refresh', data);
56
+ return response.data;
57
+ },
58
+ ...options,
59
+ });
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOztBQWVILGdDQVdDO0FBT0Qsb0NBV0M7QUFPRCwwQ0FXQztBQTVERCx1REFBMkY7QUFDM0Ysc0NBQXlDO0FBR3pDLCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixVQUFVLENBQ3hCLE9BQXVHO0lBRXZHLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBb0IsRUFBRSxFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBaUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEcsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFlBQVksQ0FDMUIsT0FBdUY7SUFFdkYsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFzQixFQUFFLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFlLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixlQUFlLENBQzdCLE9BQTBHO0lBRTFHLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsSUFBOEIsRUFBRSxFQUFFO1lBQ25ELE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBMEIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBdXRoIE11dGF0aW9uIEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIGF1dGhlbnRpY2F0aW9uIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHsgdXNlTXV0YXRpb24sIFVzZU11dGF0aW9uT3B0aW9ucywgVXNlTXV0YXRpb25SZXN1bHQgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHsgU2VuZE90cFJlcXVlc3QsIFZlcmlmeU90cFJlcXVlc3QsIEF1dGhSZXNwb25zZSwgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU2VuZCBPVFAgdG8gcGhvbmUgbnVtYmVyXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9hdXRoL3NlbmQtb3RwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VTZW5kT3RwKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8QXBpUmVzcG9uc2U8eyBzZW50OiBib29sZWFuIH0+LCBFcnJvciwgU2VuZE90cFJlcXVlc3Q+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDxBcGlSZXNwb25zZTx7IHNlbnQ6IGJvb2xlYW4gfT4sIEVycm9yLCBTZW5kT3RwUmVxdWVzdD4ge1xuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBTZW5kT3RwUmVxdWVzdCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEFwaVJlc3BvbnNlPHsgc2VudDogYm9vbGVhbiB9Pj4oJy9hcGkvdjEvYXV0aC9zZW5kLW90cCcsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgT1RQIGFuZCBhdXRoZW50aWNhdGVcbiAqXG4gKiBAZW5kcG9pbnQgUE9TVCAvYXBpL3YxL2F1dGgvdmVyaWZ5LW90cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVmVyaWZ5T3RwKFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8QXV0aFJlc3BvbnNlLCBFcnJvciwgVmVyaWZ5T3RwUmVxdWVzdD4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PEF1dGhSZXNwb25zZSwgRXJyb3IsIFZlcmlmeU90cFJlcXVlc3Q+IHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogVmVyaWZ5T3RwUmVxdWVzdCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PEF1dGhSZXNwb25zZT4oJy9hcGkvdjEvYXV0aC92ZXJpZnktb3RwJywgZGF0YSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlZnJlc2ggYWNjZXNzIHRva2VuXG4gKlxuICogQGVuZHBvaW50IFBPU1QgL2FwaS92MS9hdXRoL3JlZnJlc2hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlZnJlc2hUb2tlbihcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9LCBFcnJvciwgeyByZWZyZXNoVG9rZW46IHN0cmluZyB9PiwgJ211dGF0aW9uRm4nPlxuKTogVXNlTXV0YXRpb25SZXN1bHQ8eyBhY2Nlc3NUb2tlbjogc3RyaW5nIH0sIEVycm9yLCB7IHJlZnJlc2hUb2tlbjogc3RyaW5nIH0+IHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoZGF0YTogeyByZWZyZXNoVG9rZW46IHN0cmluZyB9KSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8eyBhY2Nlc3NUb2tlbjogc3RyaW5nIH0+KCcvYXBpL3YxL2F1dGgvcmVmcmVzaCcsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Clubs Query Hooks
3
+ *
4
+ * TanStack Query hooks for club operations.
5
+ */
6
+ import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
7
+ import type { Club } from '../types';
8
+ export declare const clubKeys: {
9
+ all: readonly ["clubs"];
10
+ bySpot: (spotId: string) => readonly ["clubs", "spot", string];
11
+ details: () => readonly ["clubs", "detail"];
12
+ detail: (id: string) => readonly ["clubs", "detail", string];
13
+ bySlug: (slug: string) => readonly ["clubs", "slug", string];
14
+ byUser: (userId: string) => readonly ["clubs", "user", string];
15
+ membership: (clubId: string, userId: string) => readonly ["clubs", "detail", string, "membership", string];
16
+ };
17
+ /**
18
+ * Get clubs for a spot
19
+ *
20
+ * @endpoint GET /api/v1/clubs/spot/{spotId}
21
+ */
22
+ export declare function useClubsBySpot(spotId: string, options?: Omit<UseQueryOptions<Club[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Club[]>;
23
+ /**
24
+ * Get a club by ID
25
+ *
26
+ * @endpoint GET /api/v1/clubs/{id}
27
+ */
28
+ export declare function useClub(clubId: string, options?: Omit<UseQueryOptions<Club>, 'queryKey' | 'queryFn'>): UseQueryResult<Club>;
29
+ /**
30
+ * Get a club by slug
31
+ *
32
+ * @endpoint GET /api/v1/clubs/slug/{slug}
33
+ */
34
+ export declare function useClubBySlug(slug: string, options?: Omit<UseQueryOptions<Club>, 'queryKey' | 'queryFn'>): UseQueryResult<Club>;
35
+ /**
36
+ * Get clubs for a user
37
+ *
38
+ * @endpoint GET /api/v1/clubs/user/{userId}
39
+ */
40
+ export declare function useClubsByUser(userId: string, options?: Omit<UseQueryOptions<Club[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Club[]>;
41
+ /**
42
+ * Get membership status for a user in a club
43
+ *
44
+ * @endpoint GET /api/v1/clubs/{id}/membership/{userId}
45
+ */
46
+ export declare function useClubMembership(clubId: string, userId: string, options?: Omit<UseQueryOptions<{
47
+ isMember: boolean;
48
+ role?: string;
49
+ }>, 'queryKey' | 'queryFn'>): UseQueryResult<{
50
+ isMember: boolean;
51
+ role?: string;
52
+ }>;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ /**
3
+ * Clubs Query Hooks
4
+ *
5
+ * TanStack Query hooks for club operations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.clubKeys = void 0;
9
+ exports.useClubsBySpot = useClubsBySpot;
10
+ exports.useClub = useClub;
11
+ exports.useClubBySlug = useClubBySlug;
12
+ exports.useClubsByUser = useClubsByUser;
13
+ exports.useClubMembership = useClubMembership;
14
+ const react_query_1 = require("@tanstack/react-query");
15
+ const client_1 = require("../client");
16
+ // ============================================================================
17
+ // QUERY KEYS
18
+ // ============================================================================
19
+ exports.clubKeys = {
20
+ all: ['clubs'],
21
+ bySpot: (spotId) => [...exports.clubKeys.all, 'spot', spotId],
22
+ details: () => [...exports.clubKeys.all, 'detail'],
23
+ detail: (id) => [...exports.clubKeys.details(), id],
24
+ bySlug: (slug) => [...exports.clubKeys.all, 'slug', slug],
25
+ byUser: (userId) => [...exports.clubKeys.all, 'user', userId],
26
+ membership: (clubId, userId) => [...exports.clubKeys.detail(clubId), 'membership', userId],
27
+ };
28
+ // ============================================================================
29
+ // QUERY HOOKS
30
+ // ============================================================================
31
+ /**
32
+ * Get clubs for a spot
33
+ *
34
+ * @endpoint GET /api/v1/clubs/spot/{spotId}
35
+ */
36
+ function useClubsBySpot(spotId, options) {
37
+ return (0, react_query_1.useQuery)({
38
+ queryKey: exports.clubKeys.bySpot(spotId),
39
+ queryFn: async () => {
40
+ const client = (0, client_1.getApiClient)();
41
+ const response = await client.get(`/api/v1/clubs/spot/${spotId}`);
42
+ return response.data.data;
43
+ },
44
+ enabled: !!spotId,
45
+ ...options,
46
+ });
47
+ }
48
+ /**
49
+ * Get a club by ID
50
+ *
51
+ * @endpoint GET /api/v1/clubs/{id}
52
+ */
53
+ function useClub(clubId, options) {
54
+ return (0, react_query_1.useQuery)({
55
+ queryKey: exports.clubKeys.detail(clubId),
56
+ queryFn: async () => {
57
+ const client = (0, client_1.getApiClient)();
58
+ const response = await client.get(`/api/v1/clubs/${clubId}`);
59
+ return response.data.data;
60
+ },
61
+ enabled: !!clubId,
62
+ ...options,
63
+ });
64
+ }
65
+ /**
66
+ * Get a club by slug
67
+ *
68
+ * @endpoint GET /api/v1/clubs/slug/{slug}
69
+ */
70
+ function useClubBySlug(slug, options) {
71
+ return (0, react_query_1.useQuery)({
72
+ queryKey: exports.clubKeys.bySlug(slug),
73
+ queryFn: async () => {
74
+ const client = (0, client_1.getApiClient)();
75
+ const response = await client.get(`/api/v1/clubs/slug/${slug}`);
76
+ return response.data.data;
77
+ },
78
+ enabled: !!slug,
79
+ ...options,
80
+ });
81
+ }
82
+ /**
83
+ * Get clubs for a user
84
+ *
85
+ * @endpoint GET /api/v1/clubs/user/{userId}
86
+ */
87
+ function useClubsByUser(userId, options) {
88
+ return (0, react_query_1.useQuery)({
89
+ queryKey: exports.clubKeys.byUser(userId),
90
+ queryFn: async () => {
91
+ const client = (0, client_1.getApiClient)();
92
+ const response = await client.get(`/api/v1/clubs/user/${userId}`);
93
+ return response.data.data;
94
+ },
95
+ enabled: !!userId,
96
+ ...options,
97
+ });
98
+ }
99
+ /**
100
+ * Get membership status for a user in a club
101
+ *
102
+ * @endpoint GET /api/v1/clubs/{id}/membership/{userId}
103
+ */
104
+ function useClubMembership(clubId, userId, options) {
105
+ return (0, react_query_1.useQuery)({
106
+ queryKey: exports.clubKeys.membership(clubId, userId),
107
+ queryFn: async () => {
108
+ const client = (0, client_1.getApiClient)();
109
+ const response = await client.get(`/api/v1/clubs/${clubId}/membership/${userId}`);
110
+ return response.data.data;
111
+ },
112
+ enabled: !!clubId && !!userId,
113
+ ...options,
114
+ });
115
+ }
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1YnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvY2x1YnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQTZCSCx3Q0FjQztBQU9ELDBCQWNDO0FBT0Qsc0NBY0M7QUFPRCx3Q0FjQztBQU9ELDhDQWlCQztBQWhJRCx1REFBa0Y7QUFDbEYsc0NBQXlDO0FBR3pDLCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBVTtJQUN2QixNQUFNLEVBQUUsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxnQkFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFVO0lBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ25ELE1BQU0sRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFVO0lBQzVELE1BQU0sRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQVU7SUFDbEUsTUFBTSxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBVTtJQUN0RSxVQUFVLEVBQUUsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBVTtDQUM1RyxDQUFDO0FBRUYsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCwrRUFB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QztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGlCQUFpQixNQUFNLGVBQWUsTUFBTSxFQUFFLENBQy9DLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTTtRQUM3QixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbHVicyBRdWVyeSBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciBjbHViIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHsgdXNlUXVlcnksIFVzZVF1ZXJ5T3B0aW9ucywgVXNlUXVlcnlSZXN1bHQgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHsgQ2x1YiwgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IGNsdWJLZXlzID0ge1xuICBhbGw6IFsnY2x1YnMnXSBhcyBjb25zdCxcbiAgYnlTcG90OiAoc3BvdElkOiBzdHJpbmcpID0+IFsuLi5jbHViS2V5cy5hbGwsICdzcG90Jywgc3BvdElkXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLmNsdWJLZXlzLmFsbCwgJ2RldGFpbCddIGFzIGNvbnN0LFxuICBkZXRhaWw6IChpZDogc3RyaW5nKSA9PiBbLi4uY2x1YktleXMuZGV0YWlscygpLCBpZF0gYXMgY29uc3QsXG4gIGJ5U2x1ZzogKHNsdWc6IHN0cmluZykgPT4gWy4uLmNsdWJLZXlzLmFsbCwgJ3NsdWcnLCBzbHVnXSBhcyBjb25zdCxcbiAgYnlVc2VyOiAodXNlcklkOiBzdHJpbmcpID0+IFsuLi5jbHViS2V5cy5hbGwsICd1c2VyJywgdXNlcklkXSBhcyBjb25zdCxcbiAgbWVtYmVyc2hpcDogKGNsdWJJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZykgPT4gWy4uLmNsdWJLZXlzLmRldGFpbChjbHViSWQpLCAnbWVtYmVyc2hpcCcsIHVzZXJJZF0gYXMgY29uc3QsXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCBjbHVicyBmb3IgYSBzcG90XG4gKlxuICogQGVuZHBvaW50IEdFVCAvYXBpL3YxL2NsdWJzL3Nwb3Qve3Nwb3RJZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNsdWJzQnlTcG90KFxuICBzcG90SWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPENsdWJbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pOiBVc2VRdWVyeVJlc3VsdDxDbHViW10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY2x1YktleXMuYnlTcG90KHNwb3RJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2x1YltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxDbHViW10+PihgL2FwaS92MS9jbHVicy9zcG90LyR7c3BvdElkfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhc3BvdElkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIGNsdWIgYnkgSURcbiAqXG4gKiBAZW5kcG9pbnQgR0VUIC9hcGkvdjEvY2x1YnMve2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2x1YihcbiAgY2x1YklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxDbHViPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbik6IFVzZVF1ZXJ5UmVzdWx0PENsdWI+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY2x1YktleXMuZGV0YWlsKGNsdWJJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2x1Yj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8QXBpUmVzcG9uc2U8Q2x1Yj4+KGAvYXBpL3YxL2NsdWJzLyR7Y2x1YklkfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY2x1YklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIGNsdWIgYnkgc2x1Z1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL2FwaS92MS9jbHVicy9zbHVnL3tzbHVnfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2x1YkJ5U2x1ZyhcbiAgc2x1Zzogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2x1Yj4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pOiBVc2VRdWVyeVJlc3VsdDxDbHViPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNsdWJLZXlzLmJ5U2x1ZyhzbHVnKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxDbHViPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxDbHViPj4oYC9hcGkvdjEvY2x1YnMvc2x1Zy8ke3NsdWd9YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFzbHVnLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBjbHVicyBmb3IgYSB1c2VyXG4gKlxuICogQGVuZHBvaW50IEdFVCAvYXBpL3YxL2NsdWJzL3VzZXIve3VzZXJJZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNsdWJzQnlVc2VyKFxuICB1c2VySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPENsdWJbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pOiBVc2VRdWVyeVJlc3VsdDxDbHViW10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY2x1YktleXMuYnlVc2VyKHVzZXJJZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2x1YltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxDbHViW10+PihgL2FwaS92MS9jbHVicy91c2VyLyR7dXNlcklkfWApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhdXNlcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBtZW1iZXJzaGlwIHN0YXR1cyBmb3IgYSB1c2VyIGluIGEgY2x1YlxuICpcbiAqIEBlbmRwb2ludCBHRVQgL2FwaS92MS9jbHVicy97aWR9L21lbWJlcnNoaXAve3VzZXJJZH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNsdWJNZW1iZXJzaGlwKFxuICBjbHViSWQ6IHN0cmluZyxcbiAgdXNlcklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczx7IGlzTWVtYmVyOiBib29sZWFuOyByb2xlPzogc3RyaW5nIH0+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKTogVXNlUXVlcnlSZXN1bHQ8eyBpc01lbWJlcjogYm9vbGVhbjsgcm9sZT86IHN0cmluZyB9PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNsdWJLZXlzLm1lbWJlcnNoaXAoY2x1YklkLCB1c2VySWQpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHsgaXNNZW1iZXI6IGJvb2xlYW47IHJvbGU/OiBzdHJpbmcgfT4+KFxuICAgICAgICBgL2FwaS92MS9jbHVicy8ke2NsdWJJZH0vbWVtYmVyc2hpcC8ke3VzZXJJZH1gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhY2x1YklkICYmICEhdXNlcklkLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuIl19
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Conversations Query Hooks
3
+ *
4
+ * TanStack Query hooks for conversation/messaging operations.
5
+ */
6
+ import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
7
+ import type { Conversation, Message } from '../types';
8
+ export declare const conversationKeys: {
9
+ all: readonly ["conversations"];
10
+ lists: () => readonly ["conversations", "list"];
11
+ list: () => readonly ["conversations", "list"];
12
+ details: () => readonly ["conversations", "detail"];
13
+ detail: (id: string) => readonly ["conversations", "detail", string];
14
+ messages: (conversationId: string, params?: {
15
+ before?: string;
16
+ }) => readonly ["conversations", "detail", string, "messages", {
17
+ before?: string;
18
+ } | undefined];
19
+ };
20
+ /**
21
+ * Get all conversations for current user
22
+ *
23
+ * @endpoint GET /api/v1/conversations
24
+ */
25
+ export declare function useConversations(options?: Omit<UseQueryOptions<Conversation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Conversation[]>;
26
+ /**
27
+ * Get a single conversation with details
28
+ *
29
+ * @endpoint GET /api/v1/conversations/{id}
30
+ */
31
+ export declare function useConversation(conversationId: string, options?: Omit<UseQueryOptions<Conversation>, 'queryKey' | 'queryFn'>): UseQueryResult<Conversation>;
32
+ /**
33
+ * Get messages for a conversation
34
+ *
35
+ * @endpoint GET /api/v1/conversations/{id}/messages
36
+ */
37
+ export declare function useConversationMessages(conversationId: string, params?: {
38
+ limit?: number;
39
+ before?: string;
40
+ }, options?: Omit<UseQueryOptions<{
41
+ data: Message[];
42
+ meta: {
43
+ hasMore: boolean;
44
+ oldestMessageAt: string | null;
45
+ };
46
+ }>, 'queryKey' | 'queryFn'>): UseQueryResult<{
47
+ data: Message[];
48
+ meta: {
49
+ hasMore: boolean;
50
+ oldestMessageAt: string | null;
51
+ };
52
+ }>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Conversations Query Hooks
4
+ *
5
+ * TanStack Query hooks for conversation/messaging operations.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.conversationKeys = void 0;
9
+ exports.useConversations = useConversations;
10
+ exports.useConversation = useConversation;
11
+ exports.useConversationMessages = useConversationMessages;
12
+ const react_query_1 = require("@tanstack/react-query");
13
+ const client_1 = require("../client");
14
+ // ============================================================================
15
+ // QUERY KEYS
16
+ // ============================================================================
17
+ exports.conversationKeys = {
18
+ all: ['conversations'],
19
+ lists: () => [...exports.conversationKeys.all, 'list'],
20
+ list: () => [...exports.conversationKeys.lists()],
21
+ details: () => [...exports.conversationKeys.all, 'detail'],
22
+ detail: (id) => [...exports.conversationKeys.details(), id],
23
+ messages: (conversationId, params) => [...exports.conversationKeys.detail(conversationId), 'messages', params],
24
+ };
25
+ // ============================================================================
26
+ // QUERY HOOKS
27
+ // ============================================================================
28
+ /**
29
+ * Get all conversations for current user
30
+ *
31
+ * @endpoint GET /api/v1/conversations
32
+ */
33
+ function useConversations(options) {
34
+ return (0, react_query_1.useQuery)({
35
+ queryKey: exports.conversationKeys.list(),
36
+ queryFn: async () => {
37
+ const client = (0, client_1.getApiClient)();
38
+ const response = await client.get('/api/v1/conversations');
39
+ return response.data.data;
40
+ },
41
+ ...options,
42
+ });
43
+ }
44
+ /**
45
+ * Get a single conversation with details
46
+ *
47
+ * @endpoint GET /api/v1/conversations/{id}
48
+ */
49
+ function useConversation(conversationId, options) {
50
+ return (0, react_query_1.useQuery)({
51
+ queryKey: exports.conversationKeys.detail(conversationId),
52
+ queryFn: async () => {
53
+ const client = (0, client_1.getApiClient)();
54
+ const response = await client.get(`/api/v1/conversations/${conversationId}`);
55
+ return response.data.data;
56
+ },
57
+ enabled: !!conversationId,
58
+ ...options,
59
+ });
60
+ }
61
+ /**
62
+ * Get messages for a conversation
63
+ *
64
+ * @endpoint GET /api/v1/conversations/{id}/messages
65
+ */
66
+ function useConversationMessages(conversationId, params, options) {
67
+ return (0, react_query_1.useQuery)({
68
+ queryKey: exports.conversationKeys.messages(conversationId, params),
69
+ queryFn: async () => {
70
+ const client = (0, client_1.getApiClient)();
71
+ const queryParams = new URLSearchParams();
72
+ if (params?.limit)
73
+ queryParams.set('limit', String(params.limit));
74
+ if (params?.before)
75
+ queryParams.set('before', params.before);
76
+ const response = await client.get(`/api/v1/conversations/${conversationId}/messages?${queryParams}`);
77
+ return response.data;
78
+ },
79
+ enabled: !!conversationId,
80
+ ...options,
81
+ });
82
+ }
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9jb252ZXJzYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUE2QkgsNENBWUM7QUFPRCwwQ0FjQztBQU9ELDBEQW9CQztBQXZGRCx1REFBa0Y7QUFDbEYsc0NBQXlDO0FBR3pDLCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFVO0lBQy9CLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsd0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUN2RCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLHdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFVO0lBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsd0JBQWdCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBVTtJQUMzRCxNQUFNLEVBQUUsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQVU7SUFDcEUsUUFBUSxFQUFFLENBQUMsY0FBc0IsRUFBRSxNQUE0QixFQUFFLEVBQUUsQ0FDakUsQ0FBQyxHQUFHLHdCQUFnQixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFVO0NBQzVFLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE9BQXVFO0lBRXZFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLElBQUksRUFBRTtRQUNqQyxPQUFPLEVBQUUsS0FBSyxJQUE2QixFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBOEIsdUJBQXVCLENBQUMsQ0FBQztZQUN4RixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsY0FBc0IsRUFDdEIsT0FBcUU7SUFFckUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsd0JBQWdCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxPQUFPLEVBQUUsS0FBSyxJQUEyQixFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBNEIseUJBQXlCLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDeEcsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ3pCLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLGNBQXNCLEVBQ3RCLE1BQTRDLEVBQzVDLE9BQXdJO0lBRXhJLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDO1FBQzNELE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzFDLElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxFQUFFLE1BQU07Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IseUJBQXlCLGNBQWMsYUFBYSxXQUFXLEVBQUUsQ0FDbEUsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxjQUFjO1FBQ3pCLEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnNhdGlvbnMgUXVlcnkgSG9va3NcbiAqXG4gKiBUYW5TdGFjayBRdWVyeSBob29rcyBmb3IgY29udmVyc2F0aW9uL21lc3NhZ2luZyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IHVzZVF1ZXJ5LCBVc2VRdWVyeU9wdGlvbnMsIFVzZVF1ZXJ5UmVzdWx0IH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5pbXBvcnQgdHlwZSB7IENvbnZlcnNhdGlvbiwgTWVzc2FnZSwgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnNhdGlvbktleXMgPSB7XG4gIGFsbDogWydjb252ZXJzYXRpb25zJ10gYXMgY29uc3QsXG4gIGxpc3RzOiAoKSA9PiBbLi4uY29udmVyc2F0aW9uS2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6ICgpID0+IFsuLi5jb252ZXJzYXRpb25LZXlzLmxpc3RzKCldIGFzIGNvbnN0LFxuICBkZXRhaWxzOiAoKSA9PiBbLi4uY29udmVyc2F0aW9uS2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLmNvbnZlcnNhdGlvbktleXMuZGV0YWlscygpLCBpZF0gYXMgY29uc3QsXG4gIG1lc3NhZ2VzOiAoY29udmVyc2F0aW9uSWQ6IHN0cmluZywgcGFyYW1zPzogeyBiZWZvcmU/OiBzdHJpbmcgfSkgPT5cbiAgICBbLi4uY29udmVyc2F0aW9uS2V5cy5kZXRhaWwoY29udmVyc2F0aW9uSWQpLCAnbWVzc2FnZXMnLCBwYXJhbXNdIGFzIGNvbnN0LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgYWxsIGNvbnZlcnNhdGlvbnMgZm9yIGN1cnJlbnQgdXNlclxuICpcbiAqIEBlbmRwb2ludCBHRVQgL2FwaS92MS9jb252ZXJzYXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDb252ZXJzYXRpb25zKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q29udmVyc2F0aW9uW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPlxuKTogVXNlUXVlcnlSZXN1bHQ8Q29udmVyc2F0aW9uW10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogY29udmVyc2F0aW9uS2V5cy5saXN0KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q29udmVyc2F0aW9uW10+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPENvbnZlcnNhdGlvbltdPj4oJy9hcGkvdjEvY29udmVyc2F0aW9ucycpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIHNpbmdsZSBjb252ZXJzYXRpb24gd2l0aCBkZXRhaWxzXG4gKlxuICogQGVuZHBvaW50IEdFVCAvYXBpL3YxL2NvbnZlcnNhdGlvbnMve2lkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ29udmVyc2F0aW9uKFxuICBjb252ZXJzYXRpb25JZDogc3RyaW5nLFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q29udmVyc2F0aW9uPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbik6IFVzZVF1ZXJ5UmVzdWx0PENvbnZlcnNhdGlvbj4ge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBjb252ZXJzYXRpb25LZXlzLmRldGFpbChjb252ZXJzYXRpb25JZCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q29udmVyc2F0aW9uPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTxDb252ZXJzYXRpb24+PihgL2FwaS92MS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9YCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjb252ZXJzYXRpb25JZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgbWVzc2FnZXMgZm9yIGEgY29udmVyc2F0aW9uXG4gKlxuICogQGVuZHBvaW50IEdFVCAvYXBpL3YxL2NvbnZlcnNhdGlvbnMve2lkfS9tZXNzYWdlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ29udmVyc2F0aW9uTWVzc2FnZXMoXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIHBhcmFtcz86IHsgbGltaXQ/OiBudW1iZXI7IGJlZm9yZT86IHN0cmluZyB9LFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8eyBkYXRhOiBNZXNzYWdlW107IG1ldGE6IHsgaGFzTW9yZTogYm9vbGVhbjsgb2xkZXN0TWVzc2FnZUF0OiBzdHJpbmcgfCBudWxsIH0gfT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pOiBVc2VRdWVyeVJlc3VsdDx7IGRhdGE6IE1lc3NhZ2VbXTsgbWV0YTogeyBoYXNNb3JlOiBib29sZWFuOyBvbGRlc3RNZXNzYWdlQXQ6IHN0cmluZyB8IG51bGwgfSB9PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IGNvbnZlcnNhdGlvbktleXMubWVzc2FnZXMoY29udmVyc2F0aW9uSWQsIHBhcmFtcyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpO1xuICAgICAgaWYgKHBhcmFtcz8uYmVmb3JlKSBxdWVyeVBhcmFtcy5zZXQoJ2JlZm9yZScsIHBhcmFtcy5iZWZvcmUpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PHsgZGF0YTogTWVzc2FnZVtdOyBtZXRhOiB7IGhhc01vcmU6IGJvb2xlYW47IG9sZGVzdE1lc3NhZ2VBdDogc3RyaW5nIHwgbnVsbCB9IH0+KFxuICAgICAgICBgL2FwaS92MS9jb252ZXJzYXRpb25zLyR7Y29udmVyc2F0aW9uSWR9L21lc3NhZ2VzPyR7cXVlcnlQYXJhbXN9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjb252ZXJzYXRpb25JZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Spots SDK Query Hooks Index
3
+ *
4
+ * Re-exports all query hooks and keys.
5
+ */
6
+ export * from './auth';
7
+ export * from './users';
8
+ export { userKeys } from './users';
9
+ export * from './spots';
10
+ export { spotKeys } from './spots';
11
+ export * from './posts';
12
+ export { postKeys } from './posts';
13
+ export * from './conversations';
14
+ export { conversationKeys } from './conversations';
15
+ export * from './clubs';
16
+ export { clubKeys } from './clubs';
17
+ export * from './templates';
18
+ export { templateKeys } from './templates';
19
+ export * from './notifications';
20
+ export { notificationKeys } from './notifications';
21
+ export * from './misc';
22
+ export { miscKeys } from './misc';
23
+ export * from './products';
24
+ export { productKeys } from './products';
25
+ export * from './orders';
26
+ export { orderKeys } from './orders';
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * Spots SDK Query Hooks Index
4
+ *
5
+ * Re-exports all query hooks and keys.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.orderKeys = exports.productKeys = exports.miscKeys = exports.notificationKeys = exports.templateKeys = exports.clubKeys = exports.conversationKeys = exports.postKeys = exports.spotKeys = exports.userKeys = void 0;
23
+ // Auth (mutations, but grouped with queries for convenience)
24
+ __exportStar(require("./auth"), exports);
25
+ // Users
26
+ __exportStar(require("./users"), exports);
27
+ var users_1 = require("./users");
28
+ Object.defineProperty(exports, "userKeys", { enumerable: true, get: function () { return users_1.userKeys; } });
29
+ // Spots
30
+ __exportStar(require("./spots"), exports);
31
+ var spots_1 = require("./spots");
32
+ Object.defineProperty(exports, "spotKeys", { enumerable: true, get: function () { return spots_1.spotKeys; } });
33
+ // Posts
34
+ __exportStar(require("./posts"), exports);
35
+ var posts_1 = require("./posts");
36
+ Object.defineProperty(exports, "postKeys", { enumerable: true, get: function () { return posts_1.postKeys; } });
37
+ // Conversations
38
+ __exportStar(require("./conversations"), exports);
39
+ var conversations_1 = require("./conversations");
40
+ Object.defineProperty(exports, "conversationKeys", { enumerable: true, get: function () { return conversations_1.conversationKeys; } });
41
+ // Clubs
42
+ __exportStar(require("./clubs"), exports);
43
+ var clubs_1 = require("./clubs");
44
+ Object.defineProperty(exports, "clubKeys", { enumerable: true, get: function () { return clubs_1.clubKeys; } });
45
+ // Templates
46
+ __exportStar(require("./templates"), exports);
47
+ var templates_1 = require("./templates");
48
+ Object.defineProperty(exports, "templateKeys", { enumerable: true, get: function () { return templates_1.templateKeys; } });
49
+ // Notifications
50
+ __exportStar(require("./notifications"), exports);
51
+ var notifications_1 = require("./notifications");
52
+ Object.defineProperty(exports, "notificationKeys", { enumerable: true, get: function () { return notifications_1.notificationKeys; } });
53
+ // Misc (cities, vibes, events)
54
+ __exportStar(require("./misc"), exports);
55
+ var misc_1 = require("./misc");
56
+ Object.defineProperty(exports, "miscKeys", { enumerable: true, get: function () { return misc_1.miscKeys; } });
57
+ // Products (marketplace)
58
+ __exportStar(require("./products"), exports);
59
+ var products_1 = require("./products");
60
+ Object.defineProperty(exports, "productKeys", { enumerable: true, get: function () { return products_1.productKeys; } });
61
+ // Orders (marketplace)
62
+ __exportStar(require("./orders"), exports);
63
+ var orders_1 = require("./orders");
64
+ Object.defineProperty(exports, "orderKeys", { enumerable: true, get: function () { return orders_1.orderKeys; } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkRBQTZEO0FBQzdELHlDQUF1QjtBQUV2QixRQUFRO0FBQ1IsMENBQXdCO0FBQ3hCLGlDQUFtQztBQUExQixpR0FBQSxRQUFRLE9BQUE7QUFFakIsUUFBUTtBQUNSLDBDQUF3QjtBQUN4QixpQ0FBbUM7QUFBMUIsaUdBQUEsUUFBUSxPQUFBO0FBRWpCLFFBQVE7QUFDUiwwQ0FBd0I7QUFDeEIsaUNBQW1DO0FBQTFCLGlHQUFBLFFBQVEsT0FBQTtBQUVqQixnQkFBZ0I7QUFDaEIsa0RBQWdDO0FBQ2hDLGlEQUFtRDtBQUExQyxpSEFBQSxnQkFBZ0IsT0FBQTtBQUV6QixRQUFRO0FBQ1IsMENBQXdCO0FBQ3hCLGlDQUFtQztBQUExQixpR0FBQSxRQUFRLE9BQUE7QUFFakIsWUFBWTtBQUNaLDhDQUE0QjtBQUM1Qix5Q0FBMkM7QUFBbEMseUdBQUEsWUFBWSxPQUFBO0FBRXJCLGdCQUFnQjtBQUNoQixrREFBZ0M7QUFDaEMsaURBQW1EO0FBQTFDLGlIQUFBLGdCQUFnQixPQUFBO0FBRXpCLCtCQUErQjtBQUMvQix5Q0FBdUI7QUFDdkIsK0JBQWtDO0FBQXpCLGdHQUFBLFFBQVEsT0FBQTtBQUVqQix5QkFBeUI7QUFDekIsNkNBQTJCO0FBQzNCLHVDQUF5QztBQUFoQyx1R0FBQSxXQUFXLE9BQUE7QUFFcEIsdUJBQXVCO0FBQ3ZCLDJDQUF5QjtBQUN6QixtQ0FBcUM7QUFBNUIsbUdBQUEsU0FBUyxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTcG90cyBTREsgUXVlcnkgSG9va3MgSW5kZXhcbiAqXG4gKiBSZS1leHBvcnRzIGFsbCBxdWVyeSBob29rcyBhbmQga2V5cy5cbiAqL1xuXG4vLyBBdXRoIChtdXRhdGlvbnMsIGJ1dCBncm91cGVkIHdpdGggcXVlcmllcyBmb3IgY29udmVuaWVuY2UpXG5leHBvcnQgKiBmcm9tICcuL2F1dGgnO1xuXG4vLyBVc2Vyc1xuZXhwb3J0ICogZnJvbSAnLi91c2Vycyc7XG5leHBvcnQgeyB1c2VyS2V5cyB9IGZyb20gJy4vdXNlcnMnO1xuXG4vLyBTcG90c1xuZXhwb3J0ICogZnJvbSAnLi9zcG90cyc7XG5leHBvcnQgeyBzcG90S2V5cyB9IGZyb20gJy4vc3BvdHMnO1xuXG4vLyBQb3N0c1xuZXhwb3J0ICogZnJvbSAnLi9wb3N0cyc7XG5leHBvcnQgeyBwb3N0S2V5cyB9IGZyb20gJy4vcG9zdHMnO1xuXG4vLyBDb252ZXJzYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnO1xuZXhwb3J0IHsgY29udmVyc2F0aW9uS2V5cyB9IGZyb20gJy4vY29udmVyc2F0aW9ucyc7XG5cbi8vIENsdWJzXG5leHBvcnQgKiBmcm9tICcuL2NsdWJzJztcbmV4cG9ydCB7IGNsdWJLZXlzIH0gZnJvbSAnLi9jbHVicyc7XG5cbi8vIFRlbXBsYXRlc1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZXMnO1xuZXhwb3J0IHsgdGVtcGxhdGVLZXlzIH0gZnJvbSAnLi90ZW1wbGF0ZXMnO1xuXG4vLyBOb3RpZmljYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0IHsgbm90aWZpY2F0aW9uS2V5cyB9IGZyb20gJy4vbm90aWZpY2F0aW9ucyc7XG5cbi8vIE1pc2MgKGNpdGllcywgdmliZXMsIGV2ZW50cylcbmV4cG9ydCAqIGZyb20gJy4vbWlzYyc7XG5leHBvcnQgeyBtaXNjS2V5cyB9IGZyb20gJy4vbWlzYyc7XG5cbi8vIFByb2R1Y3RzIChtYXJrZXRwbGFjZSlcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHMnO1xuZXhwb3J0IHsgcHJvZHVjdEtleXMgfSBmcm9tICcuL3Byb2R1Y3RzJztcblxuLy8gT3JkZXJzIChtYXJrZXRwbGFjZSlcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzJztcbmV4cG9ydCB7IG9yZGVyS2V5cyB9IGZyb20gJy4vb3JkZXJzJztcbiJdfQ==
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Misc Query Hooks
3
+ *
4
+ * TanStack Query hooks for cities, vibes, and other reference data.
5
+ * All types come from @prisma/client (via ../types re-export).
6
+ *
7
+ * API Response Patterns:
8
+ * - Reference data (vibes, templates, interests): { success, data: T[], timestamp }
9
+ * - Large datasets (cities, spots, posts): { success, data: { data: T[], meta }, timestamp }
10
+ */
11
+ import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
12
+ import type { City, Vibe, LifeSituation, Interest, Intention } from '../types';
13
+ export declare const miscKeys: {
14
+ cities: () => readonly ["cities"];
15
+ vibes: () => readonly ["vibes"];
16
+ lifeSituations: () => readonly ["life-situations"];
17
+ interests: () => readonly ["interests"];
18
+ intentions: () => readonly ["intentions"];
19
+ };
20
+ /**
21
+ * Get all cities (paginated endpoint)
22
+ *
23
+ * @endpoint GET /api/v1/cities
24
+ * @returns PaginatedResponse with cities array
25
+ */
26
+ export declare function useCities(options?: Omit<UseQueryOptions<City[]>, 'queryKey' | 'queryFn'>): UseQueryResult<City[]>;
27
+ /**
28
+ * Get all vibes (flat array - reference data)
29
+ *
30
+ * @endpoint GET /api/v1/vibes
31
+ * @returns Flat array of vibes (not paginated)
32
+ */
33
+ export declare function useVibes(options?: Omit<UseQueryOptions<Vibe[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Vibe[]>;
34
+ /**
35
+ * Get all life situations (flat array - reference data for onboarding)
36
+ *
37
+ * @endpoint GET /api/v1/life-situations
38
+ * @returns Flat array of life situations (not paginated)
39
+ */
40
+ export declare function useLifeSituations(options?: Omit<UseQueryOptions<LifeSituation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<LifeSituation[]>;
41
+ /**
42
+ * Get all interests (flat array - reference data)
43
+ *
44
+ * @endpoint GET /api/v1/interests
45
+ * @returns Flat array of interests (not paginated)
46
+ */
47
+ export declare function useInterests(options?: Omit<UseQueryOptions<Interest[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Interest[]>;
48
+ /**
49
+ * Get all intentions (flat array - reference data)
50
+ *
51
+ * @endpoint GET /api/v1/intentions
52
+ * @returns Flat array of intentions (not paginated)
53
+ */
54
+ export declare function useIntentions(options?: Omit<UseQueryOptions<Intention[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Intention[]>;