@growsober/sdk 1.0.5 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/e2e.test.d.ts +30 -0
- package/dist/__tests__/e2e.test.js +959 -63
- package/dist/api/mutations/badges.d.ts +116 -0
- package/dist/api/mutations/badges.js +177 -0
- package/dist/api/mutations/brands.d.ts +251 -0
- package/dist/api/mutations/brands.js +242 -0
- package/dist/api/mutations/creators.d.ts +131 -0
- package/dist/api/mutations/creators.js +129 -0
- package/dist/api/mutations/event-chat.d.ts +2 -2
- package/dist/api/mutations/event-chat.js +9 -9
- package/dist/api/mutations/index.d.ts +4 -0
- package/dist/api/mutations/index.js +5 -1
- package/dist/api/mutations/jack.d.ts +29 -0
- package/dist/api/mutations/jack.js +41 -1
- package/dist/api/mutations/products.d.ts +175 -0
- package/dist/api/mutations/products.js +226 -0
- package/dist/api/mutations/support.d.ts +20 -1
- package/dist/api/mutations/support.js +36 -1
- package/dist/api/queries/badges.d.ts +221 -0
- package/dist/api/queries/badges.js +290 -0
- package/dist/api/queries/bookings.d.ts +1 -1
- package/dist/api/queries/brands.d.ts +248 -0
- package/dist/api/queries/brands.js +226 -0
- package/dist/api/queries/businesses.d.ts +61 -1
- package/dist/api/queries/businesses.js +27 -1
- package/dist/api/queries/creators.d.ts +332 -0
- package/dist/api/queries/creators.js +249 -0
- package/dist/api/queries/event-chat.d.ts +1 -1
- package/dist/api/queries/event-chat.js +4 -4
- package/dist/api/queries/events.d.ts +45 -0
- package/dist/api/queries/index.d.ts +5 -0
- package/dist/api/queries/index.js +6 -1
- package/dist/api/queries/jack.d.ts +80 -0
- package/dist/api/queries/jack.js +98 -1
- package/dist/api/queries/library.d.ts +8 -0
- package/dist/api/queries/products.d.ts +185 -0
- package/dist/api/queries/products.js +203 -0
- package/dist/api/queries/support.d.ts +46 -1
- package/dist/api/queries/support.js +48 -1
- package/dist/api/queries/venues.d.ts +304 -0
- package/dist/api/queries/venues.js +211 -0
- package/dist/api/types.d.ts +245 -0
- package/dist/api/types.js +6 -1
- package/dist/api/utils/eventGrouping.d.ts +104 -0
- package/dist/api/utils/eventGrouping.js +155 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -1
- package/package.json +5 -2
- package/src/__tests__/e2e.test.ts +996 -64
- package/src/api/mutations/badges.ts +228 -0
- package/src/api/mutations/brands.ts +376 -0
- package/src/api/mutations/creators.ts +171 -0
- package/src/api/mutations/event-chat.ts +8 -8
- package/src/api/mutations/index.ts +4 -0
- package/src/api/mutations/jack.ts +50 -1
- package/src/api/mutations/products.ts +336 -0
- package/src/api/mutations/support.ts +44 -0
- package/src/api/queries/badges.ts +385 -0
- package/src/api/queries/brands.ts +281 -0
- package/src/api/queries/businesses.ts +30 -1
- package/src/api/queries/creators.ts +308 -0
- package/src/api/queries/event-chat.ts +3 -3
- package/src/api/queries/index.ts +5 -0
- package/src/api/queries/jack.ts +139 -1
- package/src/api/queries/products.ts +312 -0
- package/src/api/queries/support.ts +54 -0
- package/src/api/queries/venues.ts +271 -0
- package/src/api/types.ts +317 -1
- package/src/api/utils/eventGrouping.ts +181 -0
- package/src/index.ts +6 -0
|
@@ -28,7 +28,7 @@ function useEventChat(eventId) {
|
|
|
28
28
|
if (!eventId)
|
|
29
29
|
throw new Error('Event ID is required');
|
|
30
30
|
const client = (0, client_1.getApiClient)();
|
|
31
|
-
const response = await client.get(`/events/${eventId}/chat`);
|
|
31
|
+
const response = await client.get(`/api/v1/events/${eventId}/chat`);
|
|
32
32
|
return response.data;
|
|
33
33
|
},
|
|
34
34
|
enabled: !!eventId,
|
|
@@ -44,7 +44,7 @@ function useEventChatMembers(eventId) {
|
|
|
44
44
|
if (!eventId)
|
|
45
45
|
throw new Error('Event ID is required');
|
|
46
46
|
const client = (0, client_1.getApiClient)();
|
|
47
|
-
const response = await client.get(`/events/${eventId}/chat/members`);
|
|
47
|
+
const response = await client.get(`/api/v1/events/${eventId}/chat/members`);
|
|
48
48
|
return response.data;
|
|
49
49
|
},
|
|
50
50
|
enabled: !!eventId,
|
|
@@ -64,7 +64,7 @@ function useEventChatMessages(eventId, limit = 50) {
|
|
|
64
64
|
if (pageParam) {
|
|
65
65
|
params.append('cursor', pageParam);
|
|
66
66
|
}
|
|
67
|
-
const response = await client.get(`/events/${eventId}/chat/messages?${params.toString()}`);
|
|
67
|
+
const response = await client.get(`/api/v1/events/${eventId}/chat/messages?${params.toString()}`);
|
|
68
68
|
return response.data;
|
|
69
69
|
},
|
|
70
70
|
initialPageParam: undefined,
|
|
@@ -72,4 +72,4 @@ function useEventChatMessages(eventId, limit = 50) {
|
|
|
72
72
|
enabled: !!eventId,
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9ldmVudC1jaGF0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBCQSxvQ0FXQztBQUtELGtEQVdDO0FBS0Qsb0RBbUJDO0FBN0VELHVEQUFtRTtBQUNuRSxzQ0FBeUM7QUFPekMsK0VBQStFO0FBQy9FLGFBQWE7QUFDYiwrRUFBK0U7QUFFbEUsUUFBQSxhQUFhLEdBQUc7SUFDM0IsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFVO0lBQzVCLElBQUksRUFBRSxDQUFDLE9BQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLHFCQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQVU7SUFDM0UsT0FBTyxFQUFFLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcscUJBQWEsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBVTtJQUNqRixRQUFRLEVBQUUsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxxQkFBYSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFVO0NBQ3BGLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsUUFBUTtBQUNSLCtFQUErRTtBQUUvRTs7R0FFRztBQUNILFNBQWdCLFlBQVksQ0FBQyxPQUEyQjtJQUN0RCxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSxxQkFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzNDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFvQixrQkFBa0IsT0FBTyxPQUFPLENBQUMsQ0FBQztZQUN2RixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxPQUEyQjtJQUM3RCxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSxxQkFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsT0FBTztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUF1QixrQkFBa0IsT0FBTyxlQUFlLENBQUMsQ0FBQztZQUNsRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxPQUEyQixFQUFFLEtBQUssR0FBRyxFQUFFO0lBQzFFLE9BQU8sSUFBQSw4QkFBZ0IsRUFBQztRQUN0QixRQUFRLEVBQUUscUJBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGtCQUFrQixPQUFPLGtCQUFrQixNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDL0QsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsZ0JBQWdCLEVBQUUsU0FBK0I7UUFDakQsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVO1FBQ25ELE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztLQUNuQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlUXVlcnksIHVzZUluZmluaXRlUXVlcnkgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHtcbiAgRXZlbnRDaGF0UmVzcG9uc2UsXG4gIENoYXRNZW1iZXJSZXNwb25zZSxcbiAgUGFnaW5hdGVkTWVzc2FnZXNSZXNwb25zZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBldmVudENoYXRLZXlzID0ge1xuICBhbGw6IFsnZXZlbnQtY2hhdCddIGFzIGNvbnN0LFxuICBjaGF0OiAoZXZlbnRJZDogc3RyaW5nKSA9PiBbLi4uZXZlbnRDaGF0S2V5cy5hbGwsICdjaGF0JywgZXZlbnRJZF0gYXMgY29uc3QsXG4gIG1lbWJlcnM6IChldmVudElkOiBzdHJpbmcpID0+IFsuLi5ldmVudENoYXRLZXlzLmFsbCwgJ21lbWJlcnMnLCBldmVudElkXSBhcyBjb25zdCxcbiAgbWVzc2FnZXM6IChldmVudElkOiBzdHJpbmcpID0+IFsuLi5ldmVudENoYXRLZXlzLmFsbCwgJ21lc3NhZ2VzJywgZXZlbnRJZF0gYXMgY29uc3QsXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIT09LU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldCBvciBjcmVhdGUgY2hhdCBmb3IgYW4gZXZlbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUV2ZW50Q2hhdChldmVudElkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5jaGF0KGV2ZW50SWQgfHwgJycpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpID0+IHtcbiAgICAgIGlmICghZXZlbnRJZCkgdGhyb3cgbmV3IEVycm9yKCdFdmVudCBJRCBpcyByZXF1aXJlZCcpO1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8RXZlbnRDaGF0UmVzcG9uc2U+KGAvYXBpL3YxL2V2ZW50cy8ke2V2ZW50SWR9L2NoYXRgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFldmVudElkLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgY2hhdCBtZW1iZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VFdmVudENoYXRNZW1iZXJzKGV2ZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBldmVudENoYXRLZXlzLm1lbWJlcnMoZXZlbnRJZCB8fCAnJyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKCFldmVudElkKSB0aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IElEIGlzIHJlcXVpcmVkJyk7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxDaGF0TWVtYmVyUmVzcG9uc2VbXT4oYC9hcGkvdjEvZXZlbnRzLyR7ZXZlbnRJZH0vY2hhdC9tZW1iZXJzYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6ICEhZXZlbnRJZCxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IGNoYXQgbWVzc2FnZXMgd2l0aCBpbmZpbml0ZSBzY3JvbGwgcGFnaW5hdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlRXZlbnRDaGF0TWVzc2FnZXMoZXZlbnRJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBsaW1pdCA9IDUwKSB7XG4gIHJldHVybiB1c2VJbmZpbml0ZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5tZXNzYWdlcyhldmVudElkIHx8ICcnKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoeyBwYWdlUGFyYW0gfSkgPT4ge1xuICAgICAgaWYgKCFldmVudElkKSB0aHJvdyBuZXcgRXJyb3IoJ0V2ZW50IElEIGlzIHJlcXVpcmVkJyk7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoeyBsaW1pdDogU3RyaW5nKGxpbWl0KSB9KTtcbiAgICAgIGlmIChwYWdlUGFyYW0pIHtcbiAgICAgICAgcGFyYW1zLmFwcGVuZCgnY3Vyc29yJywgcGFnZVBhcmFtKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxQYWdpbmF0ZWRNZXNzYWdlc1Jlc3BvbnNlPihcbiAgICAgICAgYC9hcGkvdjEvZXZlbnRzLyR7ZXZlbnRJZH0vY2hhdC9tZXNzYWdlcz8ke3BhcmFtcy50b1N0cmluZygpfWBcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGluaXRpYWxQYWdlUGFyYW06IHVuZGVmaW5lZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZ2V0TmV4dFBhZ2VQYXJhbTogKGxhc3RQYWdlKSA9PiBsYXN0UGFnZS5uZXh0Q3Vyc29yLFxuICAgIGVuYWJsZWQ6ICEhZXZlbnRJZCxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -87,6 +87,10 @@ export declare function useEvent(id: string, options?: Omit<UseQueryOptions<Even
|
|
|
87
87
|
price?: Record<string, never>;
|
|
88
88
|
currency: string;
|
|
89
89
|
hubId?: Record<string, never>;
|
|
90
|
+
venueId?: Record<string, never>;
|
|
91
|
+
creatorId?: Record<string, never>;
|
|
92
|
+
sponsorBrandId?: Record<string, never>;
|
|
93
|
+
gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
|
|
90
94
|
visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
|
|
91
95
|
requiresApproval: boolean;
|
|
92
96
|
allowWaitlist: boolean;
|
|
@@ -97,6 +101,11 @@ export declare function useEvent(id: string, options?: Omit<UseQueryOptions<Even
|
|
|
97
101
|
isCancelled: boolean;
|
|
98
102
|
isAmbient: boolean;
|
|
99
103
|
ambientCategory?: Record<string, never>;
|
|
104
|
+
vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
|
|
105
|
+
city?: import("@growsober/types/dist/generated").components["schemas"]["EventCityDto"];
|
|
106
|
+
venue?: import("@growsober/types/dist/generated").components["schemas"]["EventVenueDto"];
|
|
107
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["EventCreatorDto"];
|
|
108
|
+
sponsorBrand?: import("@growsober/types/dist/generated").components["schemas"]["EventBrandDto"];
|
|
100
109
|
bookingCount: number;
|
|
101
110
|
checkinCount: number;
|
|
102
111
|
createdAt: string;
|
|
@@ -137,6 +146,10 @@ export declare function useEventBySlug(slug: string, options?: Omit<UseQueryOpti
|
|
|
137
146
|
price?: Record<string, never>;
|
|
138
147
|
currency: string;
|
|
139
148
|
hubId?: Record<string, never>;
|
|
149
|
+
venueId?: Record<string, never>;
|
|
150
|
+
creatorId?: Record<string, never>;
|
|
151
|
+
sponsorBrandId?: Record<string, never>;
|
|
152
|
+
gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
|
|
140
153
|
visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
|
|
141
154
|
requiresApproval: boolean;
|
|
142
155
|
allowWaitlist: boolean;
|
|
@@ -147,6 +160,11 @@ export declare function useEventBySlug(slug: string, options?: Omit<UseQueryOpti
|
|
|
147
160
|
isCancelled: boolean;
|
|
148
161
|
isAmbient: boolean;
|
|
149
162
|
ambientCategory?: Record<string, never>;
|
|
163
|
+
vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
|
|
164
|
+
city?: import("@growsober/types/dist/generated").components["schemas"]["EventCityDto"];
|
|
165
|
+
venue?: import("@growsober/types/dist/generated").components["schemas"]["EventVenueDto"];
|
|
166
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["EventCreatorDto"];
|
|
167
|
+
sponsorBrand?: import("@growsober/types/dist/generated").components["schemas"]["EventBrandDto"];
|
|
150
168
|
bookingCount: number;
|
|
151
169
|
checkinCount: number;
|
|
152
170
|
createdAt: string;
|
|
@@ -187,6 +205,10 @@ export declare function useUpcomingEvents(limit?: number, options?: Omit<UseQuer
|
|
|
187
205
|
price?: Record<string, never>;
|
|
188
206
|
currency: string;
|
|
189
207
|
hubId?: Record<string, never>;
|
|
208
|
+
venueId?: Record<string, never>;
|
|
209
|
+
creatorId?: Record<string, never>;
|
|
210
|
+
sponsorBrandId?: Record<string, never>;
|
|
211
|
+
gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
|
|
190
212
|
visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
|
|
191
213
|
requiresApproval: boolean;
|
|
192
214
|
allowWaitlist: boolean;
|
|
@@ -197,6 +219,11 @@ export declare function useUpcomingEvents(limit?: number, options?: Omit<UseQuer
|
|
|
197
219
|
isCancelled: boolean;
|
|
198
220
|
isAmbient: boolean;
|
|
199
221
|
ambientCategory?: Record<string, never>;
|
|
222
|
+
vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
|
|
223
|
+
city?: import("@growsober/types/dist/generated").components["schemas"]["EventCityDto"];
|
|
224
|
+
venue?: import("@growsober/types/dist/generated").components["schemas"]["EventVenueDto"];
|
|
225
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["EventCreatorDto"];
|
|
226
|
+
sponsorBrand?: import("@growsober/types/dist/generated").components["schemas"]["EventBrandDto"];
|
|
200
227
|
bookingCount: number;
|
|
201
228
|
checkinCount: number;
|
|
202
229
|
createdAt: string;
|
|
@@ -239,6 +266,10 @@ export declare function useFeaturedEvents(limit?: number, options?: Omit<UseQuer
|
|
|
239
266
|
price?: Record<string, never>;
|
|
240
267
|
currency: string;
|
|
241
268
|
hubId?: Record<string, never>;
|
|
269
|
+
venueId?: Record<string, never>;
|
|
270
|
+
creatorId?: Record<string, never>;
|
|
271
|
+
sponsorBrandId?: Record<string, never>;
|
|
272
|
+
gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
|
|
242
273
|
visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
|
|
243
274
|
requiresApproval: boolean;
|
|
244
275
|
allowWaitlist: boolean;
|
|
@@ -249,6 +280,11 @@ export declare function useFeaturedEvents(limit?: number, options?: Omit<UseQuer
|
|
|
249
280
|
isCancelled: boolean;
|
|
250
281
|
isAmbient: boolean;
|
|
251
282
|
ambientCategory?: Record<string, never>;
|
|
283
|
+
vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
|
|
284
|
+
city?: import("@growsober/types/dist/generated").components["schemas"]["EventCityDto"];
|
|
285
|
+
venue?: import("@growsober/types/dist/generated").components["schemas"]["EventVenueDto"];
|
|
286
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["EventCreatorDto"];
|
|
287
|
+
sponsorBrand?: import("@growsober/types/dist/generated").components["schemas"]["EventBrandDto"];
|
|
252
288
|
bookingCount: number;
|
|
253
289
|
checkinCount: number;
|
|
254
290
|
createdAt: string;
|
|
@@ -289,6 +325,10 @@ export declare function useAmbientEvents(filters?: AmbientEventFilters, options?
|
|
|
289
325
|
price?: Record<string, never>;
|
|
290
326
|
currency: string;
|
|
291
327
|
hubId?: Record<string, never>;
|
|
328
|
+
venueId?: Record<string, never>;
|
|
329
|
+
creatorId?: Record<string, never>;
|
|
330
|
+
sponsorBrandId?: Record<string, never>;
|
|
331
|
+
gatheringType?: "FACILITATOR_LED" | "COMMUNITY" | "SOCIAL" | "ONLINE";
|
|
292
332
|
visibility: "PUBLIC" | "MEMBERS_ONLY" | "INVITE_ONLY";
|
|
293
333
|
requiresApproval: boolean;
|
|
294
334
|
allowWaitlist: boolean;
|
|
@@ -299,6 +339,11 @@ export declare function useAmbientEvents(filters?: AmbientEventFilters, options?
|
|
|
299
339
|
isCancelled: boolean;
|
|
300
340
|
isAmbient: boolean;
|
|
301
341
|
ambientCategory?: Record<string, never>;
|
|
342
|
+
vibe?: "CHILL" | "ACTIVE" | "SOCIAL" | "CREATIVE" | "DEEP_TALK" | "ADVENTURE";
|
|
343
|
+
city?: import("@growsober/types/dist/generated").components["schemas"]["EventCityDto"];
|
|
344
|
+
venue?: import("@growsober/types/dist/generated").components["schemas"]["EventVenueDto"];
|
|
345
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["EventCreatorDto"];
|
|
346
|
+
sponsorBrand?: import("@growsober/types/dist/generated").components["schemas"]["EventBrandDto"];
|
|
302
347
|
bookingCount: number;
|
|
303
348
|
checkinCount: number;
|
|
304
349
|
createdAt: string;
|
|
@@ -23,3 +23,8 @@ export * from './grow90';
|
|
|
23
23
|
export * from './matching';
|
|
24
24
|
export * from './event-chat';
|
|
25
25
|
export * from './user-pins';
|
|
26
|
+
export * from './badges';
|
|
27
|
+
export * from './venues';
|
|
28
|
+
export * from './creators';
|
|
29
|
+
export * from './brands';
|
|
30
|
+
export * from './products';
|
|
@@ -39,4 +39,9 @@ __exportStar(require("./grow90"), exports);
|
|
|
39
39
|
__exportStar(require("./matching"), exports);
|
|
40
40
|
__exportStar(require("./event-chat"), exports);
|
|
41
41
|
__exportStar(require("./user-pins"), exports);
|
|
42
|
-
|
|
42
|
+
__exportStar(require("./badges"), exports);
|
|
43
|
+
__exportStar(require("./venues"), exports);
|
|
44
|
+
__exportStar(require("./creators"), exports);
|
|
45
|
+
__exportStar(require("./brands"), exports);
|
|
46
|
+
__exportStar(require("./products"), exports);
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLHdDQUFzQjtBQUN0QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6Qiw2Q0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFF1ZXJ5IEhvb2tzXG4gKlxuICogUmUtZXhwb3J0cyBhbGwgcXVlcnkgaG9va3MgZm9yIEFQSSBlbmRwb2ludHMuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZG1pbic7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgnO1xuZXhwb3J0ICogZnJvbSAnLi9ib29raW5ncyc7XG5leHBvcnQgKiBmcm9tICcuL2J1c2luZXNzZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaXRpZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9odWJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlicmFyeSc7XG5leHBvcnQgKiBmcm9tICcuL21hcCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9vZmZlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3VwcG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vamFjayc7XG5leHBvcnQgKiBmcm9tICcuL2FtYmFzc2Fkb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdzkwJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0Y2hpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1waW5zJztcbmV4cG9ydCAqIGZyb20gJy4vYmFkZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdmVudWVzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9icmFuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0cyc7XG4iXX0=
|
|
@@ -4,6 +4,8 @@ export declare const jackKeys: {
|
|
|
4
4
|
conversations: () => readonly ["jack", "conversations"];
|
|
5
5
|
conversation: (id: string) => readonly ["jack", "conversation", string];
|
|
6
6
|
history: () => readonly ["jack", "history"];
|
|
7
|
+
timeline: (cursor?: string) => readonly ["jack", "timeline", string | undefined];
|
|
8
|
+
stats: (days?: number) => readonly ["jack", "stats", number | undefined];
|
|
7
9
|
};
|
|
8
10
|
export interface JackConversation {
|
|
9
11
|
id: string;
|
|
@@ -23,6 +25,31 @@ export interface JackMessage {
|
|
|
23
25
|
completionTokens?: number;
|
|
24
26
|
createdAt: string;
|
|
25
27
|
}
|
|
28
|
+
export type JackEntryType = 'MESSAGE' | 'CHECK_IN' | 'REFLECTION' | 'MOOD_LOG' | 'WIN' | 'JOURNAL' | 'HABIT';
|
|
29
|
+
export interface JackTimelineEntry {
|
|
30
|
+
id: string;
|
|
31
|
+
role: string;
|
|
32
|
+
content: string;
|
|
33
|
+
entryType: JackEntryType;
|
|
34
|
+
metadata: Record<string, any> | null;
|
|
35
|
+
createdAt: string;
|
|
36
|
+
}
|
|
37
|
+
export interface JackTimelineResponse {
|
|
38
|
+
entries: JackTimelineEntry[];
|
|
39
|
+
hasMore: boolean;
|
|
40
|
+
nextCursor?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface JackStats {
|
|
43
|
+
totalMessages: number;
|
|
44
|
+
checkInsCount: number;
|
|
45
|
+
reflectionsCount: number;
|
|
46
|
+
moodLogsCount: number;
|
|
47
|
+
winsCount: number;
|
|
48
|
+
journalsCount: number;
|
|
49
|
+
habitsCount: number;
|
|
50
|
+
checkInStreak: number;
|
|
51
|
+
lastCheckInDate: string | null;
|
|
52
|
+
}
|
|
26
53
|
export interface JackConversationWithMessages extends JackConversation {
|
|
27
54
|
messages: JackMessage[];
|
|
28
55
|
}
|
|
@@ -61,3 +88,56 @@ export declare function useJackConversation(conversationId: string, options?: Om
|
|
|
61
88
|
* ```
|
|
62
89
|
*/
|
|
63
90
|
export declare function useJackHistory(options?: Omit<UseQueryOptions<JackConversationWithMessages | null>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<JackConversationWithMessages | null, Error>;
|
|
91
|
+
/**
|
|
92
|
+
* Get paginated timeline entries (messages, check-ins, reflections, etc.)
|
|
93
|
+
*
|
|
94
|
+
* @param limit - Number of entries to return (default: 20)
|
|
95
|
+
* @param before - Cursor for pagination (entry ID to fetch before)
|
|
96
|
+
* @param options - TanStack Query options
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```tsx
|
|
100
|
+
* const { data: timeline, fetchNextPage } = useJackTimeline();
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare function useJackTimeline(limit?: number, before?: string, options?: Omit<UseQueryOptions<JackTimelineResponse>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<JackTimelineResponse, Error>;
|
|
104
|
+
/**
|
|
105
|
+
* Get paginated timeline entries with infinite scroll support
|
|
106
|
+
*
|
|
107
|
+
* @param limit - Number of entries per page (default: 20)
|
|
108
|
+
* @param options - TanStack Query infinite query options
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* const {
|
|
113
|
+
* data,
|
|
114
|
+
* fetchNextPage,
|
|
115
|
+
* hasNextPage,
|
|
116
|
+
* isFetchingNextPage,
|
|
117
|
+
* } = useInfiniteJackTimeline(20);
|
|
118
|
+
*
|
|
119
|
+
* // Flatten all pages into single array
|
|
120
|
+
* const entries = data?.pages.flatMap(page => page.entries) ?? [];
|
|
121
|
+
*
|
|
122
|
+
* // Load more when user scrolls to top
|
|
123
|
+
* const onEndReached = () => {
|
|
124
|
+
* if (hasNextPage && !isFetchingNextPage) {
|
|
125
|
+
* fetchNextPage();
|
|
126
|
+
* }
|
|
127
|
+
* };
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
export declare function useInfiniteJackTimeline(limit?: number): import("@tanstack/react-query").UseInfiniteQueryResult<import("@tanstack/react-query").InfiniteData<JackTimelineResponse, unknown>, Error>;
|
|
131
|
+
/**
|
|
132
|
+
* Get stats for rewards tracking
|
|
133
|
+
*
|
|
134
|
+
* @param days - Number of days to include in stats (default: 30)
|
|
135
|
+
* @param options - TanStack Query options
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```tsx
|
|
139
|
+
* const { data: stats } = useJackStats();
|
|
140
|
+
* console.log('Check-in streak:', stats?.checkInStreak);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export declare function useJackStats(days?: number, options?: Omit<UseQueryOptions<JackStats>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<JackStats, Error>;
|
package/dist/api/queries/jack.js
CHANGED
|
@@ -4,6 +4,9 @@ exports.jackKeys = void 0;
|
|
|
4
4
|
exports.useJackConversations = useJackConversations;
|
|
5
5
|
exports.useJackConversation = useJackConversation;
|
|
6
6
|
exports.useJackHistory = useJackHistory;
|
|
7
|
+
exports.useJackTimeline = useJackTimeline;
|
|
8
|
+
exports.useInfiniteJackTimeline = useInfiniteJackTimeline;
|
|
9
|
+
exports.useJackStats = useJackStats;
|
|
7
10
|
const react_query_1 = require("@tanstack/react-query");
|
|
8
11
|
const client_1 = require("../client");
|
|
9
12
|
// ============================================================================
|
|
@@ -14,6 +17,8 @@ exports.jackKeys = {
|
|
|
14
17
|
conversations: () => [...exports.jackKeys.all, 'conversations'],
|
|
15
18
|
conversation: (id) => [...exports.jackKeys.all, 'conversation', id],
|
|
16
19
|
history: () => [...exports.jackKeys.all, 'history'],
|
|
20
|
+
timeline: (cursor) => [...exports.jackKeys.all, 'timeline', cursor],
|
|
21
|
+
stats: (days) => [...exports.jackKeys.all, 'stats', days],
|
|
17
22
|
};
|
|
18
23
|
// ============================================================================
|
|
19
24
|
// QUERY HOOKS
|
|
@@ -89,4 +94,96 @@ function useJackHistory(options) {
|
|
|
89
94
|
...options,
|
|
90
95
|
});
|
|
91
96
|
}
|
|
92
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Get paginated timeline entries (messages, check-ins, reflections, etc.)
|
|
99
|
+
*
|
|
100
|
+
* @param limit - Number of entries to return (default: 20)
|
|
101
|
+
* @param before - Cursor for pagination (entry ID to fetch before)
|
|
102
|
+
* @param options - TanStack Query options
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* const { data: timeline, fetchNextPage } = useJackTimeline();
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
function useJackTimeline(limit = 20, before, options) {
|
|
110
|
+
return (0, react_query_1.useQuery)({
|
|
111
|
+
queryKey: exports.jackKeys.timeline(before),
|
|
112
|
+
queryFn: async () => {
|
|
113
|
+
const client = (0, client_1.getApiClient)();
|
|
114
|
+
const params = { limit };
|
|
115
|
+
if (before)
|
|
116
|
+
params.before = before;
|
|
117
|
+
const response = await client.get('/api/v1/support/jack/timeline', { params });
|
|
118
|
+
return response.data?.data || response.data;
|
|
119
|
+
},
|
|
120
|
+
...options,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get paginated timeline entries with infinite scroll support
|
|
125
|
+
*
|
|
126
|
+
* @param limit - Number of entries per page (default: 20)
|
|
127
|
+
* @param options - TanStack Query infinite query options
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```tsx
|
|
131
|
+
* const {
|
|
132
|
+
* data,
|
|
133
|
+
* fetchNextPage,
|
|
134
|
+
* hasNextPage,
|
|
135
|
+
* isFetchingNextPage,
|
|
136
|
+
* } = useInfiniteJackTimeline(20);
|
|
137
|
+
*
|
|
138
|
+
* // Flatten all pages into single array
|
|
139
|
+
* const entries = data?.pages.flatMap(page => page.entries) ?? [];
|
|
140
|
+
*
|
|
141
|
+
* // Load more when user scrolls to top
|
|
142
|
+
* const onEndReached = () => {
|
|
143
|
+
* if (hasNextPage && !isFetchingNextPage) {
|
|
144
|
+
* fetchNextPage();
|
|
145
|
+
* }
|
|
146
|
+
* };
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
function useInfiniteJackTimeline(limit = 20) {
|
|
150
|
+
return (0, react_query_1.useInfiniteQuery)({
|
|
151
|
+
queryKey: [...exports.jackKeys.all, 'timeline-infinite', limit],
|
|
152
|
+
queryFn: async ({ pageParam }) => {
|
|
153
|
+
const client = (0, client_1.getApiClient)();
|
|
154
|
+
const params = { limit };
|
|
155
|
+
if (pageParam)
|
|
156
|
+
params.before = pageParam;
|
|
157
|
+
const response = await client.get('/api/v1/support/jack/timeline', { params });
|
|
158
|
+
return response.data?.data || response.data;
|
|
159
|
+
},
|
|
160
|
+
initialPageParam: undefined,
|
|
161
|
+
getNextPageParam: (lastPage) => lastPage.hasMore ? lastPage.nextCursor : undefined,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get stats for rewards tracking
|
|
166
|
+
*
|
|
167
|
+
* @param days - Number of days to include in stats (default: 30)
|
|
168
|
+
* @param options - TanStack Query options
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```tsx
|
|
172
|
+
* const { data: stats } = useJackStats();
|
|
173
|
+
* console.log('Check-in streak:', stats?.checkInStreak);
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
function useJackStats(days = 30, options) {
|
|
177
|
+
return (0, react_query_1.useQuery)({
|
|
178
|
+
queryKey: exports.jackKeys.stats(days),
|
|
179
|
+
queryFn: async () => {
|
|
180
|
+
const client = (0, client_1.getApiClient)();
|
|
181
|
+
const response = await client.get('/api/v1/support/jack/stats', {
|
|
182
|
+
params: { days },
|
|
183
|
+
});
|
|
184
|
+
return response.data?.data || response.data;
|
|
185
|
+
},
|
|
186
|
+
...options,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9qYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQStGQSxvREFnQkM7QUFhRCxrREFlQztBQVlELHdDQWFDO0FBY0QsMENBZ0JDO0FBNEJELDBEQWFDO0FBY0Qsb0NBZUM7QUF4UUQsdURBQTZHO0FBQzdHLHNDQUF5QztBQUV6QywrRUFBK0U7QUFDL0Usb0JBQW9CO0FBQ3BCLCtFQUErRTtBQUVsRSxRQUFBLFFBQVEsR0FBRztJQUN0QixHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQVU7SUFDdEIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxnQkFBUSxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQVU7SUFDaEUsWUFBWSxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQVEsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBVTtJQUM1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBVTtJQUNwRCxRQUFRLEVBQUUsQ0FBQyxNQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxnQkFBUSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFVO0lBQzdFLEtBQUssRUFBRSxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQVU7Q0FDcEUsQ0FBQztBQWtFRiwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLEtBQUssR0FBRyxFQUFFLEVBQ1YsT0FBMkU7SUFFM0UsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxhQUFh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LEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VRdWVyeSwgdXNlSW5maW5pdGVRdWVyeSwgVXNlUXVlcnlPcHRpb25zLCBVc2VJbmZpbml0ZVF1ZXJ5T3B0aW9ucyB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVkgRkFDVE9SWVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3QgamFja0tleXMgPSB7XG4gIGFsbDogWydqYWNrJ10gYXMgY29uc3QsXG4gIGNvbnZlcnNhdGlvbnM6ICgpID0+IFsuLi5qYWNrS2V5cy5hbGwsICdjb252ZXJzYXRpb25zJ10gYXMgY29uc3QsXG4gIGNvbnZlcnNhdGlvbjogKGlkOiBzdHJpbmcpID0+IFsuLi5qYWNrS2V5cy5hbGwsICdjb252ZXJzYXRpb24nLCBpZF0gYXMgY29uc3QsXG4gIGhpc3Rvcnk6ICgpID0+IFsuLi5qYWNrS2V5cy5hbGwsICdoaXN0b3J5J10gYXMgY29uc3QsXG4gIHRpbWVsaW5lOiAoY3Vyc29yPzogc3RyaW5nKSA9PiBbLi4uamFja0tleXMuYWxsLCAndGltZWxpbmUnLCBjdXJzb3JdIGFzIGNvbnN0LFxuICBzdGF0czogKGRheXM/OiBudW1iZXIpID0+IFsuLi5qYWNrS2V5cy5hbGwsICdzdGF0cycsIGRheXNdIGFzIGNvbnN0LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVFlQRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBKYWNrQ29udmVyc2F0aW9uIHtcbiAgaWQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVzc2FnZUNvdW50OiBudW1iZXI7XG4gIGxhc3RNZXNzYWdlQXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuICBpc0FyY2hpdmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEphY2tNZXNzYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZztcbiAgcm9sZTogJ1VTRVInIHwgJ0FTU0lTVEFOVCcgfCAnU1lTVEVNJztcbiAgY29udGVudDogc3RyaW5nO1xuICBtb2RlbD86IHN0cmluZztcbiAgcHJvbXB0VG9rZW5zPzogbnVtYmVyO1xuICBjb21wbGV0aW9uVG9rZW5zPzogbnVtYmVyO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSmFja0VudHJ5VHlwZSA9XG4gIHwgJ01FU1NBR0UnXG4gIHwgJ0NIRUNLX0lOJ1xuICB8ICdSRUZMRUNUSU9OJ1xuICB8ICdNT09EX0xPRydcbiAgfCAnV0lOJ1xuICB8ICdKT1VSTkFMJ1xuICB8ICdIQUJJVCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmFja1RpbWVsaW5lRW50cnkge1xuICBpZDogc3RyaW5nO1xuICByb2xlOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZztcbiAgZW50cnlUeXBlOiBKYWNrRW50cnlUeXBlO1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEphY2tUaW1lbGluZVJlc3BvbnNlIHtcbiAgZW50cmllczogSmFja1RpbWVsaW5lRW50cnlbXTtcbiAgaGFzTW9yZTogYm9vbGVhbjtcbiAgbmV4dEN1cnNvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKYWNrU3RhdHMge1xuICB0b3RhbE1lc3NhZ2VzOiBudW1iZXI7XG4gIGNoZWNrSW5zQ291bnQ6IG51bWJlcjtcbiAgcmVmbGVjdGlvbnNDb3VudDogbnVtYmVyO1xuICBtb29kTG9nc0NvdW50OiBudW1iZXI7XG4gIHdpbnNDb3VudDogbnVtYmVyO1xuICBqb3VybmFsc0NvdW50OiBudW1iZXI7XG4gIGhhYml0c0NvdW50OiBudW1iZXI7XG4gIGNoZWNrSW5TdHJlYWs6IG51bWJlcjtcbiAgbGFzdENoZWNrSW5EYXRlOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEphY2tDb252ZXJzYXRpb25XaXRoTWVzc2FnZXMgZXh0ZW5kcyBKYWNrQ29udmVyc2F0aW9uIHtcbiAgbWVzc2FnZXM6IEphY2tNZXNzYWdlW107XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IGFsbCBjb252ZXJzYXRpb25zIHdpdGggSmFja1xuICpcbiAqIEBwYXJhbSBsaW1pdCAtIE1heGltdW0gY29udmVyc2F0aW9ucyB0byByZXR1cm4gKGRlZmF1bHQ6IDIwKVxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhOiBjb252ZXJzYXRpb25zIH0gPSB1c2VKYWNrQ29udmVyc2F0aW9ucygpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VKYWNrQ29udmVyc2F0aW9ucyhcbiAgbGltaXQgPSAyMCxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEphY2tDb252ZXJzYXRpb25bXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogamFja0tleXMuY29udmVyc2F0aW9ucygpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEphY2tDb252ZXJzYXRpb25bXT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9qYWNrL2NvbnZlcnNhdGlvbnMnLCB7XG4gICAgICAgIHBhcmFtczogeyBsaW1pdCB9LFxuICAgICAgfSk7XG4gICAgICAvLyBBUEkgd3JhcHMgcmVzcG9uc2UgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIHNwZWNpZmljIGNvbnZlcnNhdGlvbiB3aXRoIG1lc3NhZ2VzXG4gKlxuICogQHBhcmFtIGNvbnZlcnNhdGlvbklkIC0gVGhlIGNvbnZlcnNhdGlvbiBJRFxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhOiBjb252ZXJzYXRpb24gfSA9IHVzZUphY2tDb252ZXJzYXRpb24oJ2NvbnYtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUphY2tDb252ZXJzYXRpb24oXG4gIGNvbnZlcnNhdGlvbklkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBPbWl0PFVzZVF1ZXJ5T3B0aW9uczxKYWNrQ29udmVyc2F0aW9uV2l0aE1lc3NhZ2VzIHwgbnVsbD4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogamFja0tleXMuY29udmVyc2F0aW9uKGNvbnZlcnNhdGlvbklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxKYWNrQ29udmVyc2F0aW9uV2l0aE1lc3NhZ2VzIHwgbnVsbD4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoYC9hcGkvdjEvc3VwcG9ydC9qYWNrL2NvbnZlcnNhdGlvbnMvJHtjb252ZXJzYXRpb25JZH1gKTtcbiAgICAgIC8vIEFQSSB3cmFwcyByZXNwb25zZSBpbiB7IGRhdGE6IHsuLi59LCBtZXRhOiB7Li4ufSB9XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgZW5hYmxlZDogISFjb252ZXJzYXRpb25JZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG1vc3QgcmVjZW50IGFjdGl2ZSBjb252ZXJzYXRpb24gd2l0aCBKYWNrXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBkYXRhOiBoaXN0b3J5IH0gPSB1c2VKYWNrSGlzdG9yeSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VKYWNrSGlzdG9yeShcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEphY2tDb252ZXJzYXRpb25XaXRoTWVzc2FnZXMgfCBudWxsPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBqYWNrS2V5cy5oaXN0b3J5KCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8SmFja0NvbnZlcnNhdGlvbldpdGhNZXNzYWdlcyB8IG51bGw+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvamFjay9oaXN0b3J5Jyk7XG4gICAgICAvLyBBUEkgd3JhcHMgcmVzcG9uc2UgaW4geyBkYXRhOiB7Li4ufSwgbWV0YTogey4uLn0gfVxuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBwYWdpbmF0ZWQgdGltZWxpbmUgZW50cmllcyAobWVzc2FnZXMsIGNoZWNrLWlucywgcmVmbGVjdGlvbnMsIGV0Yy4pXG4gKlxuICogQHBhcmFtIGxpbWl0IC0gTnVtYmVyIG9mIGVudHJpZXMgdG8gcmV0dXJuIChkZWZhdWx0OiAyMClcbiAqIEBwYXJhbSBiZWZvcmUgLSBDdXJzb3IgZm9yIHBhZ2luYXRpb24gKGVudHJ5IElEIHRvIGZldGNoIGJlZm9yZSlcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgZGF0YTogdGltZWxpbmUsIGZldGNoTmV4dFBhZ2UgfSA9IHVzZUphY2tUaW1lbGluZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VKYWNrVGltZWxpbmUoXG4gIGxpbWl0ID0gMjAsXG4gIGJlZm9yZT86IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEphY2tUaW1lbGluZVJlc3BvbnNlPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz5cbikge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBqYWNrS2V5cy50aW1lbGluZShiZWZvcmUpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPEphY2tUaW1lbGluZVJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHsgbGltaXQgfTtcbiAgICAgIGlmIChiZWZvcmUpIHBhcmFtcy5iZWZvcmUgPSBiZWZvcmU7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQoJy9hcGkvdjEvc3VwcG9ydC9qYWNrL3RpbWVsaW5lJywgeyBwYXJhbXMgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YT8uZGF0YSB8fCByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHBhZ2luYXRlZCB0aW1lbGluZSBlbnRyaWVzIHdpdGggaW5maW5pdGUgc2Nyb2xsIHN1cHBvcnRcbiAqXG4gKiBAcGFyYW0gbGltaXQgLSBOdW1iZXIgb2YgZW50cmllcyBwZXIgcGFnZSAoZGVmYXVsdDogMjApXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IGluZmluaXRlIHF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7XG4gKiAgIGRhdGEsXG4gKiAgIGZldGNoTmV4dFBhZ2UsXG4gKiAgIGhhc05leHRQYWdlLFxuICogICBpc0ZldGNoaW5nTmV4dFBhZ2UsXG4gKiB9ID0gdXNlSW5maW5pdGVKYWNrVGltZWxpbmUoMjApO1xuICpcbiAqIC8vIEZsYXR0ZW4gYWxsIHBhZ2VzIGludG8gc2luZ2xlIGFycmF5XG4gKiBjb25zdCBlbnRyaWVzID0gZGF0YT8ucGFnZXMuZmxhdE1hcChwYWdlID0+IHBhZ2UuZW50cmllcykgPz8gW107XG4gKlxuICogLy8gTG9hZCBtb3JlIHdoZW4gdXNlciBzY3JvbGxzIHRvIHRvcFxuICogY29uc3Qgb25FbmRSZWFjaGVkID0gKCkgPT4ge1xuICogICBpZiAoaGFzTmV4dFBhZ2UgJiYgIWlzRmV0Y2hpbmdOZXh0UGFnZSkge1xuICogICAgIGZldGNoTmV4dFBhZ2UoKTtcbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlSW5maW5pdGVKYWNrVGltZWxpbmUobGltaXQgPSAyMCkge1xuICByZXR1cm4gdXNlSW5maW5pdGVRdWVyeSh7XG4gICAgcXVlcnlLZXk6IFsuLi5qYWNrS2V5cy5hbGwsICd0aW1lbGluZS1pbmZpbml0ZScsIGxpbWl0XSBhcyBjb25zdCxcbiAgICBxdWVyeUZuOiBhc3luYyAoeyBwYWdlUGFyYW0gfTogeyBwYWdlUGFyYW06IHN0cmluZyB8IHVuZGVmaW5lZCB9KTogUHJvbWlzZTxKYWNrVGltZWxpbmVSZXNwb25zZT4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7IGxpbWl0IH07XG4gICAgICBpZiAocGFnZVBhcmFtKSBwYXJhbXMuYmVmb3JlID0gcGFnZVBhcmFtO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0KCcvYXBpL3YxL3N1cHBvcnQvamFjay90aW1lbGluZScsIHsgcGFyYW1zIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE/LmRhdGEgfHwgcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGluaXRpYWxQYWdlUGFyYW06IHVuZGVmaW5lZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgZ2V0TmV4dFBhZ2VQYXJhbTogKGxhc3RQYWdlOiBKYWNrVGltZWxpbmVSZXNwb25zZSkgPT4gbGFzdFBhZ2UuaGFzTW9yZSA/IGxhc3RQYWdlLm5leHRDdXJzb3IgOiB1bmRlZmluZWQsXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBzdGF0cyBmb3IgcmV3YXJkcyB0cmFja2luZ1xuICpcbiAqIEBwYXJhbSBkYXlzIC0gTnVtYmVyIG9mIGRheXMgdG8gaW5jbHVkZSBpbiBzdGF0cyAoZGVmYXVsdDogMzApXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IGRhdGE6IHN0YXRzIH0gPSB1c2VKYWNrU3RhdHMoKTtcbiAqIGNvbnNvbGUubG9nKCdDaGVjay1pbiBzdHJlYWs6Jywgc3RhdHM/LmNoZWNrSW5TdHJlYWspO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VKYWNrU3RhdHMoXG4gIGRheXMgPSAzMCxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPEphY2tTdGF0cz4sICdxdWVyeUtleScgfCAncXVlcnlGbic+XG4pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogamFja0tleXMuc3RhdHMoZGF5cyksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8SmFja1N0YXRzPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldCgnL2FwaS92MS9zdXBwb3J0L2phY2svc3RhdHMnLCB7XG4gICAgICAgIHBhcmFtczogeyBkYXlzIH0sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhPy5kYXRhIHx8IHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -81,6 +81,10 @@ export declare function useFeaturedContent(options?: Omit<UseQueryOptions<Librar
|
|
|
81
81
|
likeCount: number;
|
|
82
82
|
authorName?: Record<string, never>;
|
|
83
83
|
authorImage?: Record<string, never>;
|
|
84
|
+
creatorId?: Record<string, never>;
|
|
85
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["ContentCreatorDto"];
|
|
86
|
+
contentStatus: "DRAFT" | "PENDING_REVIEW" | "APPROVED" | "PUBLISHED" | "REJECTED";
|
|
87
|
+
rejectionReason?: Record<string, never>;
|
|
84
88
|
createdAt: string;
|
|
85
89
|
updatedAt: string;
|
|
86
90
|
publishedAt?: Record<string, never>;
|
|
@@ -125,6 +129,10 @@ export declare function useLibraryItem(id: string, options?: Omit<UseQueryOption
|
|
|
125
129
|
likeCount: number;
|
|
126
130
|
authorName?: Record<string, never>;
|
|
127
131
|
authorImage?: Record<string, never>;
|
|
132
|
+
creatorId?: Record<string, never>;
|
|
133
|
+
creator?: import("@growsober/types/dist/generated").components["schemas"]["ContentCreatorDto"];
|
|
134
|
+
contentStatus: "DRAFT" | "PENDING_REVIEW" | "APPROVED" | "PUBLISHED" | "REJECTED";
|
|
135
|
+
rejectionReason?: Record<string, never>;
|
|
128
136
|
createdAt: string;
|
|
129
137
|
updatedAt: string;
|
|
130
138
|
publishedAt?: Record<string, never>;
|