@timardex/cluemart-shared 1.5.740 → 1.5.742

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 (59) hide show
  1. package/dist/{ad-CqfSmtG_.d.ts → ad-DTOtubs3.d.ts} +1 -1
  2. package/dist/{ad-sgD-lSbO.d.mts → ad-DpwV6VZX.d.mts} +1 -1
  3. package/dist/{chunk-6OBMKN7F.mjs → chunk-64ZADXXH.mjs} +2 -2
  4. package/dist/{chunk-XWFE6U3E.mjs → chunk-K5OWNJY5.mjs} +131 -119
  5. package/dist/chunk-K5OWNJY5.mjs.map +1 -0
  6. package/dist/{chunk-6YISZ3OD.mjs → chunk-KXQLOILF.mjs} +2 -2
  7. package/dist/{chunk-7VNXO63T.mjs → chunk-LNIT5OS3.mjs} +1 -1
  8. package/dist/chunk-LNIT5OS3.mjs.map +1 -0
  9. package/dist/{chunk-3AI2ROPT.mjs → chunk-TIXEG66V.mjs} +19 -1
  10. package/dist/chunk-TIXEG66V.mjs.map +1 -0
  11. package/dist/{contactUs-DA3p41Uq.d.ts → contactUs-BK5MKYPx.d.ts} +1 -1
  12. package/dist/{contactUs-B6lQQq-x.d.mts → contactUs-CRypzI-A.d.mts} +1 -1
  13. package/dist/formFields/index.cjs +28 -4
  14. package/dist/formFields/index.cjs.map +1 -1
  15. package/dist/formFields/index.d.mts +1 -1
  16. package/dist/formFields/index.d.ts +1 -1
  17. package/dist/formFields/index.mjs +3 -3
  18. package/dist/{global-BEUzBSyY.d.mts → global-q9JjONd1.d.mts} +280 -1
  19. package/dist/{global-585slmSH.d.ts → global-vWzQNI8w.d.ts} +280 -1
  20. package/dist/graphql/index.cjs +18 -0
  21. package/dist/graphql/index.cjs.map +1 -1
  22. package/dist/graphql/index.d.mts +3 -4
  23. package/dist/graphql/index.d.ts +3 -4
  24. package/dist/graphql/index.mjs +1 -1
  25. package/dist/hooks/index.cjs +34 -6
  26. package/dist/hooks/index.cjs.map +1 -1
  27. package/dist/hooks/index.d.mts +3 -4
  28. package/dist/hooks/index.d.ts +3 -4
  29. package/dist/hooks/index.mjs +5 -5
  30. package/dist/index.cjs +171 -141
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.mts +922 -914
  33. package/dist/index.d.ts +922 -914
  34. package/dist/index.mjs +170 -141
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/{resourceActivities-CZqXBve8.d.mts → resourceActivities-CpjJeH23.d.mts} +1 -1
  37. package/dist/{resourceActivities-CjJdhVR7.d.ts → resourceActivities-DtxRUlrT.d.ts} +1 -1
  38. package/dist/sharing/index.cjs +82 -58
  39. package/dist/sharing/index.cjs.map +1 -1
  40. package/dist/sharing/index.d.mts +1 -1
  41. package/dist/sharing/index.d.ts +1 -1
  42. package/dist/sharing/index.mjs +3 -3
  43. package/dist/types/index.cjs.map +1 -1
  44. package/dist/types/index.d.mts +5 -6
  45. package/dist/types/index.d.ts +5 -6
  46. package/dist/types/index.mjs +1 -1
  47. package/dist/utils/index.cjs +167 -141
  48. package/dist/utils/index.cjs.map +1 -1
  49. package/dist/utils/index.d.mts +6 -3
  50. package/dist/utils/index.d.ts +6 -3
  51. package/dist/utils/index.mjs +4 -2
  52. package/package.json +1 -1
  53. package/dist/chunk-3AI2ROPT.mjs.map +0 -1
  54. package/dist/chunk-7VNXO63T.mjs.map +0 -1
  55. package/dist/chunk-XWFE6U3E.mjs.map +0 -1
  56. package/dist/post-CdLrXuH1.d.mts +0 -279
  57. package/dist/post-D6n4Vszs.d.ts +0 -279
  58. /package/dist/{chunk-6OBMKN7F.mjs.map → chunk-64ZADXXH.mjs.map} +0 -0
  59. /package/dist/{chunk-6YISZ3OD.mjs.map → chunk-KXQLOILF.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { EnumOSPlatform, EnumUserRole, EnumReward, EnumSubscriptionStatus, EnumUserLicence, EnumResourceType, EnumPartnerType } from './enums/index.js';
2
- import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, W as ResourceContactDetailsType, Z as SocialMediaType, z as OwnerType } from './global-585slmSH.js';
2
+ import { at as ResourceImageType, L as LocationType, ax as TermsAgreement, A as AssociateType, i as UserLicenceType, ai as PromoCodeType, J as DateTimeType, D as CreateFormData, z as BaseResourceType, B as BaseResourceTypeFormData, ar as ResourceContactDetailsType, au as SocialMediaType, a5 as OwnerType } from './global-vWzQNI8w.js';
3
3
  import { PosterAssetId } from './images/index.js';
4
4
 
5
5
  type UserFormData = {
@@ -1,5 +1,5 @@
1
1
  import { EnumOSPlatform, EnumUserRole, EnumReward, EnumSubscriptionStatus, EnumUserLicence, EnumResourceType, EnumPartnerType } from './enums/index.mjs';
2
- import { Y as ResourceImageType, L as LocationType, a0 as TermsAgreement, A as AssociateType, i as UserLicenceType, K as PromoCodeType, D as DateTimeType, u as CreateFormData, t as BaseResourceType, B as BaseResourceTypeFormData, W as ResourceContactDetailsType, Z as SocialMediaType, z as OwnerType } from './global-BEUzBSyY.mjs';
2
+ import { at as ResourceImageType, L as LocationType, ax as TermsAgreement, A as AssociateType, i as UserLicenceType, ai as PromoCodeType, J as DateTimeType, D as CreateFormData, z as BaseResourceType, B as BaseResourceTypeFormData, ar as ResourceContactDetailsType, au as SocialMediaType, a5 as OwnerType } from './global-q9JjONd1.mjs';
3
3
  import { PosterAssetId } from './images/index.mjs';
4
4
 
5
5
  type UserFormData = {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CLUEMART_MAIN_DOMAIN_URL,
3
3
  formatDate
4
- } from "./chunk-XWFE6U3E.mjs";
4
+ } from "./chunk-K5OWNJY5.mjs";
5
5
 
6
6
  // src/sharing/relationShareTypes.ts
7
7
  var RELATION_SHARE_INVITATION = "invitation";
@@ -361,4 +361,4 @@ export {
361
361
  normalizeShareRouteId,
362
362
  buildSharePagePath
363
363
  };
364
- //# sourceMappingURL=chunk-6OBMKN7F.mjs.map
364
+ //# sourceMappingURL=chunk-64ZADXXH.mjs.map
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  gameScreenIdentifierList
3
- } from "./chunk-7VNXO63T.mjs";
3
+ } from "./chunk-LNIT5OS3.mjs";
4
4
  import {
5
+ EnumEventDateStatus,
5
6
  EnumInviteStatus,
6
7
  EnumPaymentMethod,
7
8
  EnumRegions
@@ -13,6 +14,111 @@ import customParseFormat from "dayjs/plugin/customParseFormat.js";
13
14
  import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js";
14
15
  import timezone from "dayjs/plugin/timezone.js";
15
16
  import utc from "dayjs/plugin/utc.js";
17
+
18
+ // src/utils/utils.ts
19
+ var removeTypename = (obj) => {
20
+ if (obj instanceof Date) {
21
+ return obj;
22
+ }
23
+ if (obj instanceof File) {
24
+ return obj;
25
+ }
26
+ if (isIsoDateString(obj)) {
27
+ return obj;
28
+ }
29
+ if (Array.isArray(obj)) {
30
+ return obj.map(removeTypename);
31
+ }
32
+ if (obj !== null && typeof obj === "object") {
33
+ const { __typename, ...cleanedObj } = obj;
34
+ return Object.keys(cleanedObj).reduce((acc, key) => {
35
+ acc[key] = removeTypename(cleanedObj[key]);
36
+ return acc;
37
+ }, {});
38
+ }
39
+ return obj;
40
+ };
41
+ var truncateText = (text, maxLength = 30) => {
42
+ return text.length > maxLength ? text.substring(0, maxLength) + "..." : text;
43
+ };
44
+ var mapArrayToOptions = (items) => items.map((item) => ({
45
+ label: item,
46
+ value: item
47
+ }));
48
+ var capitalizeFirstLetter = (str) => {
49
+ return str.split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
50
+ };
51
+ var statusOptions = [
52
+ ...Object.values(EnumInviteStatus).map((status) => ({
53
+ label: status,
54
+ value: status
55
+ })).sort((a, b) => a.label.localeCompare(b.label))
56
+ // Sort the options alphabetically
57
+ ];
58
+ var availableRegionTypes = Object.values(EnumRegions);
59
+ var availableRegionOptions = mapArrayToOptions(availableRegionTypes);
60
+ var paymentMethodOptions = mapArrayToOptions(
61
+ Object.values(EnumPaymentMethod)
62
+ );
63
+ function normalizeUrl(url) {
64
+ if (!url.startsWith("http://") && !url.startsWith("https://")) {
65
+ return `https://${url}`;
66
+ }
67
+ return url;
68
+ }
69
+ var licenseNiceNames = {
70
+ ["pro_event" /* PRO_EVENT */]: "Pro Event",
71
+ ["pro_vendor" /* PRO_VENDOR */]: "Pro Stallholder",
72
+ ["standard_event" /* STANDARD_EVENT */]: "Standard Event",
73
+ ["standard_vendor" /* STANDARD_VENDOR */]: "Standard Stallholder",
74
+ ["pro_plus_event" /* PRO_PLUS_EVENT */]: "Pro+Ads Event",
75
+ ["pro_plus_vendor" /* PRO_PLUS_VENDOR */]: "Pro+Ads Stallholder",
76
+ ["standard_partner" /* STANDARD_PARTNER */]: "Partner"
77
+ };
78
+ var cluemartSocialMedia = [
79
+ {
80
+ link: "https://www.facebook.com/ClueMartApp",
81
+ name: "facebook" /* FACEBOOK */
82
+ },
83
+ {
84
+ link: "https://www.instagram.com/cluemart_app",
85
+ name: "instagram" /* INSTAGRAM */
86
+ },
87
+ {
88
+ link: "https://www.tiktok.com/@cluemart",
89
+ name: "tiktok" /* TIKTOK */
90
+ },
91
+ {
92
+ link: "https://www.youtube.com/@ClueMart-App-NZ",
93
+ name: "youtube" /* YOUTUBE */
94
+ }
95
+ ];
96
+ var IOS_URL = "https://apps.apple.com/nz/app/cluemart/id6747251008";
97
+ var ANDROID_URL = "https://play.google.com/store/apps/details?id=com.timardex.cluemart";
98
+ var DEFAULT_RESOURCES_RETURN_LIMIT = 1e3;
99
+ var DEFAULT_RESOURCES_RETURN_OFFSET = 0;
100
+ var CLUEMART_MAIN_DOMAIN_URL = "https://cluemart.co.nz";
101
+ var rewardNiceNames = {
102
+ ["mystery_joy_box" /* MYSTERY_JOY_BOX */]: {
103
+ name: "Mystery Joy Box",
104
+ points: 250
105
+ },
106
+ ["mystery_squeeze_box" /* MYSTERY_SQUEEZE_BOX */]: {
107
+ name: "Mystery Squeeze Box",
108
+ points: 350
109
+ },
110
+ ["mystery_deluxe_box" /* MYSTERY_DELUXE_BOX */]: {
111
+ name: "Mystery Deluxe Box",
112
+ points: 500
113
+ }
114
+ };
115
+ var PostTypeLabels = {
116
+ ["market_faces" /* MARKET_FACES */]: "Market Faces",
117
+ ["clue_bites" /* CLUE_BITES */]: "Clue Bites",
118
+ ["play_and_win" /* PLAY_AND_WIN */]: "Play & Win"
119
+ };
120
+
121
+ // src/utils/date.ts
16
122
  var dateFormat = "DD-MM-YYYY";
17
123
  var timeFormat = "HH:mm";
18
124
  dayjs.extend(customParseFormat);
@@ -68,10 +174,10 @@ var formatTimestamp = (timestamp) => {
68
174
  return formatDate(formattedDate, "date");
69
175
  };
70
176
  var isIsoDateString = (value) => {
71
- return typeof value === "string" && !isNaN(Date.parse(value));
177
+ return typeof value === "string" && !Number.isNaN(Date.parse(value));
72
178
  };
73
179
  function sortDatesChronologically(dates) {
74
- if (!dates || !dates.length) {
180
+ if (!dates?.length) {
75
181
  return [];
76
182
  }
77
183
  return [...dates].sort((a, b) => {
@@ -81,6 +187,14 @@ function sortDatesChronologically(dates) {
81
187
  return dateA.valueOf() - dateB.valueOf();
82
188
  });
83
189
  }
190
+ var futureTimePeriods = mapArrayToOptions(
191
+ Object.values(EnumEventDateStatus)
192
+ ).filter(
193
+ (period) => period.value !== "Starting_Soon" /* STARTING_SOON */ && period.value !== "Canceled" /* CANCELED */ && period.value !== "Rescheduled" /* RE_SCHEDULED */ && period.value !== "Started" /* STARTED */ && period.value !== "Ended" /* ENDED */ && period.value !== "Invalid" /* INVALID */
194
+ ).map((period) => ({
195
+ label: period.value.replaceAll("_", " "),
196
+ value: period.value
197
+ }));
84
198
 
85
199
  // src/utils/dailyClueGame.ts
86
200
  function createSeededRng(seed) {
@@ -155,109 +269,6 @@ function computeDailyClueState(dailyClue) {
155
269
  };
156
270
  }
157
271
 
158
- // src/utils/utils.ts
159
- var removeTypename = (obj) => {
160
- if (obj instanceof Date) {
161
- return obj;
162
- }
163
- if (obj instanceof File) {
164
- return obj;
165
- }
166
- if (isIsoDateString(obj)) {
167
- return obj;
168
- }
169
- if (Array.isArray(obj)) {
170
- return obj.map(removeTypename);
171
- }
172
- if (obj !== null && typeof obj === "object") {
173
- const { __typename, ...cleanedObj } = obj;
174
- return Object.keys(cleanedObj).reduce((acc, key) => {
175
- acc[key] = removeTypename(cleanedObj[key]);
176
- return acc;
177
- }, {});
178
- }
179
- return obj;
180
- };
181
- var truncateText = (text, maxLength = 30) => {
182
- return text.length > maxLength ? text.substring(0, maxLength) + "..." : text;
183
- };
184
- var mapArrayToOptions = (items) => items.map((item) => ({
185
- label: item,
186
- value: item
187
- }));
188
- var capitalizeFirstLetter = (str) => {
189
- return str.split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
190
- };
191
- var statusOptions = [
192
- ...Object.values(EnumInviteStatus).map((status) => ({
193
- label: status,
194
- value: status
195
- })).sort((a, b) => a.label.localeCompare(b.label))
196
- // Sort the options alphabetically
197
- ];
198
- var availableRegionTypes = Object.values(EnumRegions);
199
- var availableRegionOptions = mapArrayToOptions(availableRegionTypes);
200
- var paymentMethodOptions = mapArrayToOptions(
201
- Object.values(EnumPaymentMethod)
202
- );
203
- function normalizeUrl(url) {
204
- if (!url.startsWith("http://") && !url.startsWith("https://")) {
205
- return `https://${url}`;
206
- }
207
- return url;
208
- }
209
- var licenseNiceNames = {
210
- ["pro_event" /* PRO_EVENT */]: "Pro Event",
211
- ["pro_vendor" /* PRO_VENDOR */]: "Pro Stallholder",
212
- ["standard_event" /* STANDARD_EVENT */]: "Standard Event",
213
- ["standard_vendor" /* STANDARD_VENDOR */]: "Standard Stallholder",
214
- ["pro_plus_event" /* PRO_PLUS_EVENT */]: "Pro+Ads Event",
215
- ["pro_plus_vendor" /* PRO_PLUS_VENDOR */]: "Pro+Ads Stallholder",
216
- ["standard_partner" /* STANDARD_PARTNER */]: "Partner"
217
- };
218
- var cluemartSocialMedia = [
219
- {
220
- link: "https://www.facebook.com/ClueMartApp",
221
- name: "facebook" /* FACEBOOK */
222
- },
223
- {
224
- link: "https://www.instagram.com/cluemart_app",
225
- name: "instagram" /* INSTAGRAM */
226
- },
227
- {
228
- link: "https://www.tiktok.com/@cluemart",
229
- name: "tiktok" /* TIKTOK */
230
- },
231
- {
232
- link: "https://www.youtube.com/@ClueMart-App-NZ",
233
- name: "youtube" /* YOUTUBE */
234
- }
235
- ];
236
- var IOS_URL = "https://apps.apple.com/nz/app/cluemart/id6747251008";
237
- var ANDROID_URL = "https://play.google.com/store/apps/details?id=com.timardex.cluemart";
238
- var DEFAULT_RESOURCES_RETURN_LIMIT = 1e3;
239
- var DEFAULT_RESOURCES_RETURN_OFFSET = 0;
240
- var CLUEMART_MAIN_DOMAIN_URL = "https://cluemart.co.nz";
241
- var rewardNiceNames = {
242
- ["mystery_joy_box" /* MYSTERY_JOY_BOX */]: {
243
- name: "Mystery Joy Box",
244
- points: 250
245
- },
246
- ["mystery_squeeze_box" /* MYSTERY_SQUEEZE_BOX */]: {
247
- name: "Mystery Squeeze Box",
248
- points: 350
249
- },
250
- ["mystery_deluxe_box" /* MYSTERY_DELUXE_BOX */]: {
251
- name: "Mystery Deluxe Box",
252
- points: 500
253
- }
254
- };
255
- var PostTypeLabels = {
256
- ["market_faces" /* MARKET_FACES */]: "Market Faces",
257
- ["clue_bites" /* CLUE_BITES */]: "Clue Bites",
258
- ["play_and_win" /* PLAY_AND_WIN */]: "Play & Win"
259
- };
260
-
261
272
  // src/utils/school.ts
262
273
  var SCHOOL_MIN_STUDENT_COUNT = 300;
263
274
  var SCHOOL_MAX_STUDENT_COUNT = 0;
@@ -291,18 +302,6 @@ function filterEventsByDateStatusPeriod(events, period) {
291
302
  }
292
303
 
293
304
  export {
294
- dateFormat,
295
- timeFormat,
296
- toNZTime,
297
- nzStartOfDay,
298
- formatDate,
299
- getCurrentAndFutureDates,
300
- isFutureDatesBeforeThreshold,
301
- formatTimestamp,
302
- isIsoDateString,
303
- sortDatesChronologically,
304
- seededShuffle,
305
- computeDailyClueState,
306
305
  removeTypename,
307
306
  truncateText,
308
307
  mapArrayToOptions,
@@ -321,6 +320,19 @@ export {
321
320
  CLUEMART_MAIN_DOMAIN_URL,
322
321
  rewardNiceNames,
323
322
  PostTypeLabels,
323
+ dateFormat,
324
+ timeFormat,
325
+ toNZTime,
326
+ nzStartOfDay,
327
+ formatDate,
328
+ getCurrentAndFutureDates,
329
+ isFutureDatesBeforeThreshold,
330
+ formatTimestamp,
331
+ isIsoDateString,
332
+ sortDatesChronologically,
333
+ futureTimePeriods,
334
+ seededShuffle,
335
+ computeDailyClueState,
324
336
  SCHOOL_MIN_STUDENT_COUNT,
325
337
  SCHOOL_MAX_STUDENT_COUNT,
326
338
  EVENT_DATE_STATUS_PERIOD_MAP,
@@ -328,4 +340,4 @@ export {
328
340
  eventMatchesDateStatusPeriod,
329
341
  filterEventsByDateStatusPeriod
330
342
  };
331
- //# sourceMappingURL=chunk-XWFE6U3E.mjs.map
343
+ //# sourceMappingURL=chunk-K5OWNJY5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/date.ts","../src/utils/utils.ts","../src/utils/dailyClueGame.ts","../src/utils/school.ts","../src/utils/eventDateStatus.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter.js\";\nimport timezone from \"dayjs/plugin/timezone.js\";\nimport utc from \"dayjs/plugin/utc.js\";\n\nimport { EnumEventDateStatus } from \"src/enums\";\n\nimport { mapArrayToOptions } from \"./utils\";\n\nexport const dateFormat = \"DD-MM-YYYY\";\nexport const timeFormat = \"HH:mm\";\n\n// Enable custom format parsing\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\ndayjs.extend(timezone);\ndayjs.extend(isSameOrAfter);\n\nconst NZ_TZ = \"Pacific/Auckland\";\n\nexport function toNZTime(date?: Date | string) {\n return date ? dayjs(date).tz(NZ_TZ) : dayjs().tz(NZ_TZ);\n}\n\n/** Start of the calendar day in Pacific/Auckland (daily games, streaks, etc.). */\nexport function nzStartOfDay(\n input?: Date | string | number | null,\n): dayjs.Dayjs {\n if (input == null) {\n return dayjs().tz(NZ_TZ).startOf(\"day\");\n }\n return dayjs.tz(input, NZ_TZ).startOf(\"day\");\n}\n\ntype DateFormat = \"date\" | \"time\" | \"datetime\";\n\n/**\n * Format a date string to a more readable format.\n * @param dateStr - the date string\n * @param timeStr - optional time string\n * @param display - 'date' | 'time' | 'datetime'\n * @returns formatted string based on display option\n */\nexport const formatDate = (\n dateStr: string,\n display: DateFormat = \"datetime\",\n timeStr?: string,\n) => {\n // Combine date and time into a single string if time is provided\n const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;\n\n // Parse with formats\n const dateTime = timeStr\n ? dayjs(dateTimeStr, `${dateFormat} ${timeFormat}`)\n : dayjs(dateStr, dateFormat);\n\n // Format parts\n const formattedDate = dateTime.format(\"dddd, D MMMM, YYYY\");\n const formattedTime = dateTime.format(\"h:mm a\");\n\n // Return based on display option\n switch (display) {\n case \"date\":\n return formattedDate;\n case \"time\":\n return formattedTime;\n case \"datetime\":\n return `${formattedDate} at ${formattedTime}`;\n default:\n return formattedDate;\n }\n};\n\nexport const getCurrentAndFutureDates = <\n T extends { startDate: string; startTime: string },\n>(\n dates: T[],\n): T[] => {\n const now = dayjs(); // current date and time\n\n return dates.filter((dateObj) => {\n const dateTime = dayjs(\n `${dateObj.startDate} ${dateObj.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n return dateTime.isSameOrAfter(now);\n });\n};\n\nexport const isFutureDatesBeforeThreshold = (\n date: {\n startDate: string;\n startTime: string;\n },\n minHoursFromNow: number,\n): boolean => {\n const threshold = minHoursFromNow\n ? dayjs().add(minHoursFromNow, \"hour\")\n : dayjs().startOf(\"day\");\n\n const dateTime = dayjs(\n `${date.startDate} ${date.startTime}`,\n `${dateFormat} ${timeFormat}`,\n );\n\n return dateTime.isSameOrAfter(threshold);\n};\n\nexport const formatTimestamp = (timestamp: string) => {\n const formattedDate = toNZTime(timestamp).format(dateFormat);\n\n return formatDate(formattedDate, \"date\");\n};\n\nexport const isIsoDateString = (value: unknown): value is string => {\n return typeof value === \"string\" && !Number.isNaN(Date.parse(value));\n};\n\n/**\n * Sort an array of date strings by their proximity to the current date.\n * @param dates - The array of date strings to sort.\n * @returns - The sorted array of date strings.\n */\nexport function sortDatesChronologically<\n T extends { startDate: string; startTime: string },\n>(dates: T[]): T[] {\n if (!dates?.length) {\n return [];\n }\n\n return [...dates].sort((a, b) => {\n const dateTimeFormat = `${dateFormat} ${timeFormat}`;\n const dateA = dayjs(`${a.startDate} ${a.startTime}`, dateTimeFormat);\n const dateB = dayjs(`${b.startDate} ${b.startTime}`, dateTimeFormat);\n return dateA.valueOf() - dateB.valueOf(); // chronological order\n });\n}\n\nexport const futureTimePeriods = mapArrayToOptions(\n Object.values(EnumEventDateStatus),\n)\n .filter(\n (period) =>\n period.value !== EnumEventDateStatus.STARTING_SOON &&\n period.value !== EnumEventDateStatus.CANCELED &&\n period.value !== EnumEventDateStatus.RE_SCHEDULED &&\n period.value !== EnumEventDateStatus.STARTED &&\n period.value !== EnumEventDateStatus.ENDED &&\n period.value !== EnumEventDateStatus.INVALID,\n )\n .map((period) => ({\n label: period.value.replaceAll(\"_\", \" \"),\n value: period.value,\n }));\n","import {\n EnumInviteStatus,\n EnumPaymentMethod,\n EnumRegions,\n EnumReward,\n EnumSocialMedia,\n EnumUserLicence,\n} from \"src/enums\";\nimport { EnumPostType, OptionItem, SocialMediaType } from \"src/types\";\n\nimport { isIsoDateString } from \"./date\";\n\nexport const removeTypename = (obj: any): any => {\n // Preserve Date objects\n if (obj instanceof Date) {\n return obj;\n }\n\n // Preserve File objects (for apollo-upload-client)\n if (obj instanceof File) {\n return obj;\n }\n\n // Preserve ISO date strings\n if (isIsoDateString(obj)) {\n return obj;\n }\n\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map(removeTypename);\n }\n\n // Handle plain objects only\n if (obj !== null && typeof obj === \"object\") {\n const { __typename, ...cleanedObj } = obj;\n\n return Object.keys(cleanedObj).reduce((acc: any, key) => {\n acc[key] = removeTypename(cleanedObj[key]);\n return acc;\n }, {});\n }\n\n // Primitives\n return obj;\n};\n\n/**\n * Truncate text to a specified length and append ellipsis if necessary.\n * @param text\n * @param maxLength\n * @returns\n */\nexport const truncateText = (text: string, maxLength: number = 30): string => {\n return text.length > maxLength ? text.substring(0, maxLength) + \"...\" : text;\n};\n\n/**\n * Convert an array of strings to an array of objects with label and value properties.\n * @param items - The array of strings to convert.\n * @returns - The converted array of objects.\n */\nexport const mapArrayToOptions = (items: string[]): OptionItem[] =>\n items.map((item) => ({\n label: item,\n value: item,\n }));\n\nexport const capitalizeFirstLetter = (str: string): string => {\n return str\n .split(\" \")\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \");\n};\n\nexport const statusOptions = [\n ...Object.values(EnumInviteStatus)\n .map((status) => ({\n label: status,\n value: status,\n }))\n .sort((a, b) => a.label.localeCompare(b.label)), // Sort the options alphabetically\n];\n\nexport const availableRegionTypes = Object.values(EnumRegions);\nexport const availableRegionOptions: OptionItem[] =\n mapArrayToOptions(availableRegionTypes);\n\nexport const paymentMethodOptions: OptionItem[] = mapArrayToOptions(\n Object.values(EnumPaymentMethod),\n);\n\nexport function normalizeUrl(url: string): string {\n if (!url.startsWith(\"http://\") && !url.startsWith(\"https://\")) {\n return `https://${url}`;\n }\n return url;\n}\n\nexport const licenseNiceNames: Record<EnumUserLicence, string> = {\n [EnumUserLicence.PRO_EVENT]: \"Pro Event\",\n [EnumUserLicence.PRO_VENDOR]: \"Pro Stallholder\",\n [EnumUserLicence.STANDARD_EVENT]: \"Standard Event\",\n [EnumUserLicence.STANDARD_VENDOR]: \"Standard Stallholder\",\n [EnumUserLicence.PRO_PLUS_EVENT]: \"Pro+Ads Event\",\n [EnumUserLicence.PRO_PLUS_VENDOR]: \"Pro+Ads Stallholder\",\n [EnumUserLicence.STANDARD_PARTNER]: \"Partner\",\n};\n\nexport const cluemartSocialMedia: SocialMediaType[] = [\n {\n link: \"https://www.facebook.com/ClueMartApp\",\n name: EnumSocialMedia.FACEBOOK,\n },\n {\n link: \"https://www.instagram.com/cluemart_app\",\n name: EnumSocialMedia.INSTAGRAM,\n },\n {\n link: \"https://www.tiktok.com/@cluemart\",\n name: EnumSocialMedia.TIKTOK,\n },\n {\n link: \"https://www.youtube.com/@ClueMart-App-NZ\",\n name: EnumSocialMedia.YOUTUBE,\n },\n];\n\nexport const IOS_URL = \"https://apps.apple.com/nz/app/cluemart/id6747251008\";\nexport const ANDROID_URL =\n \"https://play.google.com/store/apps/details?id=com.timardex.cluemart\";\n\nexport const DEFAULT_RESOURCES_RETURN_LIMIT = 1000;\nexport const DEFAULT_RESOURCES_RETURN_OFFSET = 0;\nexport const CLUEMART_MAIN_DOMAIN_URL = \"https://cluemart.co.nz\";\n\nexport const rewardNiceNames: Record<\n EnumReward,\n { name: string; points: number }\n> = {\n [EnumReward.MYSTERY_JOY_BOX]: {\n name: \"Mystery Joy Box\",\n points: 250,\n },\n [EnumReward.MYSTERY_SQUEEZE_BOX]: {\n name: \"Mystery Squeeze Box\",\n points: 350,\n },\n [EnumReward.MYSTERY_DELUXE_BOX]: {\n name: \"Mystery Deluxe Box\",\n points: 500,\n },\n};\n\nexport const PostTypeLabels: Record<EnumPostType, string> = {\n [EnumPostType.MARKET_FACES]: \"Market Faces\",\n [EnumPostType.CLUE_BITES]: \"Clue Bites\",\n [EnumPostType.PLAY_AND_WIN]: \"Play & Win\",\n};\n","import type { Dayjs } from \"dayjs\";\n\nimport {\n DailyClueGameData,\n GamePlacement,\n GamePlacementClue,\n gameScreenIdentifierList,\n} from \"../types/game/dailyClue\";\n\nimport { nzStartOfDay } from \"./date\";\n\nfunction createSeededRng(seed: number) {\n let t = seed >>> 0;\n\n return function random() {\n t += 0x6d2b79f5;\n let x = t;\n\n x = Math.imul(x ^ (x >>> 15), x | 1);\n x ^= x + Math.imul(x ^ (x >>> 7), x | 61);\n\n return ((x ^ (x >>> 14)) >>> 0) / 4294967296;\n };\n}\n\nfunction hashStringToNumber(seed: string): number {\n let hash = 2166136261;\n\n for (let i = 0; i < seed.length; i++) {\n hash ^= seed.codePointAt(i) ?? 0;\n hash = Math.imul(hash, 16777619);\n }\n\n return hash >>> 0;\n}\n\n/** Seeded shuffle so all players see the same letter order / placements for a game. */\nexport function seededShuffle<T>(array: readonly T[], seed: string): T[] {\n const rng = createSeededRng(hashStringToNumber(seed));\n const result = [...array];\n\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(rng() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n\n return result;\n}\n\nfunction getDayIndex(start: Dayjs, today: Dayjs): number {\n return today.diff(start, \"day\");\n}\n\nexport function computeDailyClueState(dailyClue: DailyClueGameData): {\n todaysClue: GamePlacementClue | null;\n todaysLetter: string | null;\n todaysPlacement: GamePlacement | null;\n} | null {\n const { startDate, endDate } = dailyClue.gameFields.gameDate;\n const { solutionShuffled, collected } = dailyClue.letterInfo;\n\n const today = nzStartOfDay();\n const start = nzStartOfDay(startDate);\n const end = nzStartOfDay(endDate);\n\n // Before game starts\n if (today.isBefore(start)) {\n return null;\n }\n\n const shuffledPlacements = seededShuffle(\n gameScreenIdentifierList,\n start.toISOString(),\n );\n\n const index = getDayIndex(start, today);\n\n // After game ends\n if (today.isAfter(end)) {\n return {\n todaysClue: null,\n todaysLetter: null,\n todaysPlacement: null,\n };\n }\n\n // Safety: index must exist in BOTH arrays\n if (\n index < 0 ||\n index >= solutionShuffled.length ||\n index >= shuffledPlacements.length\n ) {\n return null;\n }\n\n const letterToday = solutionShuffled[index];\n const placement = shuffledPlacements[index];\n\n if (!letterToday || !placement) return null;\n\n const alreadyCollectedToday = (collected ?? []).includes(letterToday);\n\n // Already completed today\n if (alreadyCollectedToday) {\n return {\n todaysClue: null,\n todaysLetter: null,\n todaysPlacement: null,\n };\n }\n\n // Active state\n return {\n todaysClue: placement.clue,\n todaysLetter: letterToday,\n todaysPlacement: placement.id,\n };\n}\n","export const SCHOOL_MIN_STUDENT_COUNT = 300;\nexport const SCHOOL_MAX_STUDENT_COUNT = 0;\n","import { EnumEventDateStatus } from \"../enums\";\nimport type { DateTimeType } from \"../types/global\";\n\nexport const EVENT_DATE_STATUS_PERIOD_MAP: Partial<\n Record<EnumEventDateStatus, EnumEventDateStatus[]>\n> = {\n [EnumEventDateStatus.TODAY]: [\n EnumEventDateStatus.STARTED,\n EnumEventDateStatus.STARTING_SOON,\n EnumEventDateStatus.TODAY,\n ],\n [EnumEventDateStatus.THIS_WEEK]: [\n EnumEventDateStatus.STARTED,\n EnumEventDateStatus.STARTING_SOON,\n EnumEventDateStatus.THIS_WEEK,\n EnumEventDateStatus.TODAY,\n EnumEventDateStatus.TOMORROW,\n ],\n};\n\nexport function getAllowedEventDateStatuses(\n period: EnumEventDateStatus,\n): EnumEventDateStatus[] {\n return EVENT_DATE_STATUS_PERIOD_MAP[period] ?? [period];\n}\n\nexport function eventMatchesDateStatusPeriod(\n dateTime: Pick<DateTimeType, \"dateStatus\">[] | null | undefined,\n period: EnumEventDateStatus,\n): boolean {\n const allowedStatuses = getAllowedEventDateStatuses(period);\n\n return (\n dateTime?.some((dt) => allowedStatuses.includes(dt.dateStatus)) ?? false\n );\n}\n\nexport function filterEventsByDateStatusPeriod<\n T extends { dateTime?: Pick<DateTimeType, \"dateStatus\">[] | null },\n>(events: T[], period: EnumEventDateStatus): T[] {\n return events.filter((event) =>\n eventMatchesDateStatusPeriod(event.dateTime, period),\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mapArrayToOptions
3
- } from "./chunk-XWFE6U3E.mjs";
3
+ } from "./chunk-K5OWNJY5.mjs";
4
4
  import {
5
5
  EnumFoodFlavor
6
6
  } from "./chunk-4SNW63TJ.mjs";
@@ -1952,4 +1952,4 @@ export {
1952
1952
  contactUsFields,
1953
1953
  partnerBasicInfoFields
1954
1954
  };
1955
- //# sourceMappingURL=chunk-6YISZ3OD.mjs.map
1955
+ //# sourceMappingURL=chunk-KXQLOILF.mjs.map
@@ -218,4 +218,4 @@ export {
218
218
  TIER_DISPLAY_LABELS,
219
219
  TIER_FROM_LICENCE
220
220
  };
221
- //# sourceMappingURL=chunk-7VNXO63T.mjs.map
221
+ //# sourceMappingURL=chunk-LNIT5OS3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/auth.ts","../src/types/global.ts","../src/types/ad.ts","../src/types/resourceActivities.ts","../src/types/post.ts","../src/types/game/index.ts","../src/types/game/dailyClue.ts","../src/types/game/global.ts","../src/types/subscription.ts"],"sourcesContent":["import {\n CreateFormData,\n EnumOSPlatform,\n PromoCodeType,\n TermsAgreement,\n} from \"src\";\n\nimport { SafeUserType } from \"./user\";\n\nexport enum EnumVerificationType {\n REGISTER = \"register\",\n RESET_PASSWORD = \"resetPassword\",\n}\n\nexport type LoginFormData = {\n email: string;\n isAdminPage?: boolean;\n password: string;\n platform?: EnumOSPlatform;\n};\n\nexport type CreateLoginFormData = CreateFormData<LoginFormData>;\n\nexport type RegisterFormData = {\n email: string;\n firstName: string;\n lastName: string;\n password: string;\n platform?: EnumOSPlatform;\n preferredRegion: string;\n promoCode?: PromoCodeType | null;\n termsAgreement?: TermsAgreement | null;\n};\n\nexport type CreateRegisterFormData = CreateFormData<RegisterFormData>;\n\nexport type RequestPasswordResetFormData = {\n email: string;\n};\n\nexport type CreateRequestPasswordResetFormData =\n CreateFormData<RequestPasswordResetFormData>;\n\nexport type ResetPasswordFormData = {\n confirmPassword: string;\n email: string;\n password: string;\n};\n\nexport type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;\n\nexport type ValidateVerificationTokenFormData = {\n email: string;\n verificationToken: string;\n verificationType?: EnumVerificationType;\n};\n\nexport type CreateValidateVerificationTokenFormData =\n CreateFormData<ValidateVerificationTokenFormData>;\n\nexport type AuthPayloadType = {\n message: string;\n token: string;\n refreshToken: string | null;\n user: SafeUserType;\n};\n\nexport type RefreshTokenPayloadType = {\n refreshToken: string;\n token: string;\n};\n","import {\n Control,\n FieldValues,\n FormState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormReset,\n UseFormSetValue,\n UseFormWatch,\n} from \"react-hook-form\";\n\nimport {\n EnumEventDateStatus,\n EnumEventType,\n EnumResourceType,\n EnumSocialMedia,\n EnumUserLicence,\n} from \"../enums\";\n\nimport { EventListItemType } from \"./event\";\nimport { EnumPostType } from \"./post\";\nimport { VendorType } from \"./vendor\";\n\nexport const PROMO_CODE_PREFIX = \"CM-\";\n\nexport type PromoCodeType = `${typeof PROMO_CODE_PREFIX}${string}`;\n\nexport type Nullable<T> = {\n [K in keyof T]: T[K] | null | undefined;\n};\n\nexport type DeviceInfo = {\n appBuildNumber: string;\n appId: string;\n appVersion: string;\n brand: string;\n deviceName: string;\n installationId: string;\n manufacturer: string;\n modelName: string;\n osName: string;\n osVersion: string;\n timestamp: string;\n};\n\nexport type TermsAgreement = DeviceInfo & {\n termVersion: string;\n};\n\nexport type ResourceContactDetailsType = {\n email?: string | null;\n landlinePhone?: string | null;\n mobilePhone?: string | null;\n};\n\nexport type ResourceImageType = {\n active?: boolean | null;\n source: string;\n title: string;\n};\n\nexport type SocialMediaType = {\n name?: EnumSocialMedia;\n link?: string;\n};\n\nexport type UserLicenceType = {\n expiryDate: Date;\n issuedDate: Date;\n licenceType: EnumUserLicence;\n prevLicenceType?: EnumUserLicence | null;\n};\n\nexport type AssociateType = {\n email: string;\n resourceId: string;\n resourceType: EnumResourceType;\n licence: UserLicenceType;\n};\n\nexport type OwnerType = {\n email: string;\n userId: string;\n};\n\nexport interface BaseResourceTypeFormData {\n _id?: string;\n active: boolean;\n associates: AssociateType[] | null;\n contactDetails: ResourceContactDetailsType | null;\n cover: ResourceImageType;\n coverUpload?: ResourceImageType | null;\n description: string;\n images?: ResourceImageType[] | null;\n imagesUpload?: ResourceImageType[] | null;\n logo?: ResourceImageType | null;\n logoUpload?: ResourceImageType | null;\n name: string;\n owner?: OwnerType | null;\n promoCodes?: PromoCodeType[] | null;\n region: string;\n socialMedia: SocialMediaType[] | null;\n termsAgreement?: TermsAgreement | null;\n}\n\nexport type PosterUsageType = {\n month: string;\n count: number;\n};\n\nexport type BaseResourceType = Omit<\n BaseResourceTypeFormData,\n \"_id\" | \"coverUpload\" | \"imagesUpload\" | \"logoUpload\"\n> & {\n _id: string;\n adIds?: string[] | null;\n createdAt: Date;\n deletedAt: Date | null;\n posterUsage?: PosterUsageType | null;\n rating?: number | null;\n reviewCount?: number | null;\n updatedAt: Date | null;\n relatedPost?: {\n postId: string;\n postType: EnumPostType;\n } | null;\n};\n\nexport type LocationGeoType = {\n coordinates: number[]; // [longitude, latitude]\n type: \"Point\"; // Mongoose GeoJSON type\n};\n\nexport type LocationType = {\n city: string;\n country: string;\n fullAddress: string;\n geo: LocationGeoType;\n latitude: number;\n longitude: number;\n region: string;\n};\n\nexport type DateTimeType = {\n dateStatus: EnumEventDateStatus;\n endDate: string;\n endTime: string;\n startDate: string;\n startTime: string;\n};\n\nexport type Region = {\n latitude: number;\n latitudeDelta: number;\n longitude: number;\n longitudeDelta: number;\n};\n\nexport type ResourceDetails = {\n dateTime: DateTimeType[] | null;\n description: string | null;\n eventStatus?: EventStatusType | null;\n location: LocationType | null;\n resourceCover: ResourceImageType | null;\n resourceId: string;\n resourceLogo: ResourceImageType | null;\n resourceName: string;\n resourceType: EnumResourceType;\n};\n\nexport type GeocodeLocation = Pick<LocationType, \"latitude\" | \"longitude\">;\n\nexport type EventStatusType = {\n claimed: boolean;\n eventType: EnumEventType;\n googlePlaceId?: string | null;\n};\n\nexport interface FormField {\n disabled?: boolean;\n helperText?: string;\n isTextArea?: boolean;\n keyboardType?:\n | \"default\"\n | \"email-address\"\n | \"number-pad\"\n | \"url\"\n | \"decimal-pad\"\n | \"phone-pad\";\n name: string;\n placeholder: string;\n required?: boolean;\n secureTextEntry?: boolean;\n}\n\nexport interface FormDateField {\n dateMode: \"date\" | \"time\";\n helperText?: string;\n name: \"endDate\" | \"endTime\" | \"startDate\" | \"startTime\";\n placeholder: string;\n}\n\nexport interface SubcategoryItems {\n id: string;\n name: string;\n description?: string | null;\n}\n\nexport interface Subcategory {\n id: string;\n name: string;\n items?: SubcategoryItems[] | null;\n}\n\nexport interface Category {\n color?: string | null;\n description?: string | null;\n id: string;\n name: string;\n subcategories: Subcategory[];\n}\n\nexport type OptionItem = {\n value: string;\n label: string;\n};\n\nexport type ImageObjectType = {\n uri: string;\n type: string;\n name: string;\n};\n\nexport interface ResourceConnectionsType {\n events: EventListItemType[] | null;\n vendors: VendorType[] | null;\n}\n\nexport interface CreateFormData<T extends FieldValues> {\n control: Control<T, any>;\n fields: T;\n formState: FormState<T>;\n handleSubmit: UseFormHandleSubmit<T, any>;\n reset: UseFormReset<T>;\n setValue: UseFormSetValue<T>;\n watch: UseFormWatch<T>;\n getValues: UseFormGetValues<T>;\n}\n\nexport interface UseGetResourcesByRegionOptions {\n onlyClaimed?: boolean;\n limit?: number;\n offset?: number;\n}\n","import { EnumResourceType } from \"src/enums\";\n\nimport { CreateFormData } from \"./global\";\n\nexport enum EnumAdShowOn {\n EVENTS_PAGE = \"Events_page\",\n FRONT_PAGE = \"Front_page\",\n PARTNERS_PAGE = \"Partners_page\",\n VENDORS_PAGE = \"Vendors_page\",\n}\n\nexport enum EnumAdStatus {\n ACTIVE = \"Active\",\n PAUSED = \"Paused\",\n EXPIRED = \"Expired\",\n}\n\nexport enum EnumAdType {\n SPONSORED = \"Sponsored\",\n FREE = \"Free\",\n}\n\nexport enum EnumAdStyle {\n BLOOM = \"Bloom\",\n RISE = \"Rise\",\n}\n\nexport type AdResource = {\n adDescription: string;\n adImage: string;\n adStyle: EnumAdStyle;\n adTitle: string;\n adType: EnumAdType;\n resourceId: string;\n resourceName: string;\n resourceRegion: string;\n resourceType: EnumResourceType;\n};\n\nexport interface AdFormData {\n active: boolean;\n end: Date; // ISO date string\n resource: AdResource;\n showOn: EnumAdShowOn[];\n start?: Date; // ISO date string\n status: EnumAdStatus;\n targetRegion: string[];\n}\n\n// Form state matches the validation schema: all resource fields are present.\n// Use empty strings / explicit enum defaults in `defaultValues` for \"create\" flows.\nexport type AdFormState = AdFormData;\n\nexport type CreateAdFormData = CreateFormData<AdFormData>;\nexport type CreateAdFormState = CreateFormData<AdFormState>;\n\nexport interface AdType extends AdFormData {\n _id: string;\n clicks?: number; // How many times the ad was clicked\n createdAt: Date;\n impressions?: number; // How often the ad was seen\n start: Date; // ISO date string\n updatedAt: Date | null;\n}\n","import {\n EnumEventDateStatus,\n EnumOSPlatform,\n EnumResourceType,\n} from \"src/enums\";\n\nimport { LocationGeoType } from \"./global\";\n\nexport enum EnumActivity {\n FAVORITE = \"FAVORITE\",\n GOING = \"GOING\",\n INTERESTED = \"INTERESTED\",\n PRESENT = \"PRESENT\",\n VIEW = \"VIEW\",\n}\n\nexport type ResourceActivityEntry = {\n activityType: EnumActivity;\n location: LocationGeoType | null;\n dateStatus?: EnumEventDateStatus | null;\n startDate?: string | null;\n startTime?: string | null;\n timestamp: Date;\n userAgent: EnumOSPlatform;\n userId?: string | null;\n};\n\nexport type ResourceActivityType = {\n _id: string;\n resourceType: EnumResourceType;\n resourceId: string;\n activity: ResourceActivityEntry[];\n};\n\nexport type ResourceActivityInputType = {\n resourceId: string;\n resourceType: EnumResourceType;\n activity: Omit<ResourceActivityEntry, \"timestamp\">;\n};\n","import { EnumResourceType } from \"src/enums\";\n\nimport { BaseGameType } from \"./game\";\nimport { CreateFormData, ResourceImageType } from \"./global\";\n\nexport enum EnumPostType {\n MARKET_FACES = \"market_faces\",\n CLUE_BITES = \"clue_bites\",\n PLAY_AND_WIN = \"play_and_win\",\n}\n\nexport enum EnumPostContentType {\n GAME = \"game\",\n IMAGE = \"image\",\n LIST = \"list\",\n TEXTAREA = \"textarea\",\n VIDEO = \"video\",\n}\n\nexport type PostFileInput = {\n source: File;\n title?: string;\n};\n\nexport type PostContentTextarea = {\n textarea: {\n title?: string;\n data: string;\n };\n};\n\nexport type PostContentImage = {\n images: ResourceImageType[] | null;\n imagesUpload?: PostFileInput[] | null;\n};\n\nexport type PostContentVideo = {\n video: {\n source: string;\n title?: string;\n };\n};\n\nexport type PostContentList = {\n list: {\n title?: string;\n items: {\n text: string;\n }[];\n };\n};\n\nexport type PostContentGame = {\n game: BaseGameType;\n};\n\nexport type PostContentData =\n | PostContentGame\n | PostContentTextarea\n | PostContentImage\n | PostContentVideo\n | PostContentList;\n\nexport type PostContentFormData = {\n contentData?: PostContentData | null;\n contentOrder?: number | null;\n contentType?: EnumPostContentType | null;\n};\n\nexport interface PostFormData {\n active: boolean;\n caption: string;\n content: PostContentFormData[];\n cover?: ResourceImageType | null;\n coverUpload?: PostFileInput | null;\n postType: EnumPostType;\n resource?: {\n resourceId: string;\n resourceType: EnumResourceType;\n resourceRegion: string;\n } | null;\n tags?: string[] | null;\n title: string;\n notifyUsers?: boolean | null;\n}\n\nexport type CreatePostFormData = CreateFormData<PostFormData>;\n\nexport type PostContentType = Omit<PostContentFormData, \"contentData\"> & {\n contentData: Omit<PostContentData, \"imagesUpload\">;\n};\n\nexport type PostType = Omit<PostFormData, \"content\" | \"coverUpload\"> & {\n _id: string;\n content: PostContentType[];\n createdAt: Date;\n deletedAt: Date | null;\n updatedAt: Date | null;\n};\n","import { OwnerType } from \"../global\";\n\nimport { DailyClueBaseGame, DailyClueGameData } from \"./dailyClue\";\nimport { EnumGameType, GameDate } from \"./global\";\nimport { PuzzleBaseGame, PuzzleGameData } from \"./puzzleGame\";\n\nexport type BaseGameMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;\n [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;\n [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;\n};\n\nexport type BaseGameType = {\n gameType: EnumGameType;\n gameTypeId: string;\n gameTitle: string;\n} & {\n [K in keyof BaseGameMap]?: BaseGameMap[K] | null;\n};\n\nexport enum EnumGameStatus {\n GAME_COMPLETED = \"GAME_COMPLETED\",\n GAME_IN_PROGRESS = \"GAME_IN_PROGRESS\",\n GAME_LEFT = \"GAME_LEFT\",\n GAME_STARTED = \"GAME_STARTED\",\n}\n\nexport type GameHistory = Pick<\n BaseGameType,\n \"gameTitle\" | \"gameType\" | \"gameTypeId\"\n> & {\n createdAt: Date;\n gameDate: GameDate;\n gameStatus: EnumGameStatus;\n /** Per-event delta. Not persisted for overallGamePoints (computed at read time). */\n pointsEarned: number;\n /** Running total for this game instance; computed at read time, not stored in Mongo. */\n overallGamePoints?: number;\n};\n\ntype GameDataMap = {\n [EnumGameType.DAILY_CLUE]: DailyClueGameData;\n [EnumGameType.MINI_QUIZ]: PuzzleGameData;\n [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;\n};\ntype GameDataType = {\n [K in keyof GameDataMap]?: GameDataMap[K] | null;\n};\n\nexport type GameType = Pick<\n BaseGameType,\n \"gameTitle\" | \"gameType\" | \"gameTypeId\"\n> & {\n _id: string;\n active: boolean;\n createdAt: Date;\n gameData: GameDataType;\n gameHistory: GameHistory[] | null;\n updatedAt: Date | null;\n};\n\nexport type GameDocType = {\n _id: string;\n active: boolean;\n createdAt: Date;\n deletedAt: Date | null;\n games: GameType[] | null;\n owner: OwnerType;\n points: number;\n updatedAt: Date | null;\n};\n\nexport type GameLeaderboard = {\n gameHistory: GameHistory[] | null;\n overallPoints: number;\n owner: OwnerType;\n};\n","import { GameDate, GlobalGameData } from \"./global\";\n\nconst OBJECT_ID_PATH_SEGMENT = \"[a-f0-9]{24}\";\nconst OBJECT_ID_PATH_SEGMENT_END = `${OBJECT_ID_PATH_SEGMENT}$`;\n\nexport const gameScreenIdentifierList = [\n {\n clue: \"Where your actions turn into a timeline.\",\n id: \"activities\",\n match: \"/profile/activities\",\n },\n {\n clue: \"Where conversations happen without speaking.\",\n id: \"chat\",\n match: \"/profile/chat\",\n },\n {\n clue: \"The place to redefine who you are.\",\n id: \"edit-profile\",\n match: \"/profile/edit-profile\",\n },\n {\n clue: \"A single moment worth showing up for.\",\n id: \"single-event\",\n match: new RegExp(`^/events/${OBJECT_ID_PATH_SEGMENT_END}`),\n },\n {\n clue: \"What’s happening around you, right now.\",\n id: \"events-near-me\",\n match: \"/events/events-near-me\",\n },\n {\n clue: \"Where events appear as pins on a map.\",\n id: \"events-map\",\n match: \"/events/events-map\",\n },\n {\n clue: \"A collection of events worth attending.\",\n id: \"events\",\n match: \"/events\",\n },\n {\n clue: \"What’s happening in a wider area — not just nearby.\",\n id: \"events-region\",\n match: /^\\/events\\/region\\/[^/]+$/,\n },\n {\n clue: \"Where fun becomes a challenge.\",\n id: \"games\",\n match: \"/games\",\n },\n {\n clue: \"Your starting point for everything.\",\n id: \"home\",\n match: \"/\",\n },\n {\n clue: \"Where the app whispers what you shouldn’t miss.\",\n id: \"notifications\",\n match: \"/notifications\",\n },\n {\n clue: \"Where you fine-tune your experience.\",\n id: \"options\",\n match: \"/options\",\n },\n {\n clue: \"An organisation or creator supporting the community.\",\n id: \"single-partner\",\n match: new RegExp(`^/partners/${OBJECT_ID_PATH_SEGMENT_END}`),\n },\n {\n clue: \"Organisations and creators supporting the community.\",\n id: \"partners\",\n match: \"/partners\",\n },\n {\n clue: \"A single published post in full view.\",\n id: \"single-visitor-post\",\n match: new RegExp(`^/visitors/post/${OBJECT_ID_PATH_SEGMENT_END}`),\n },\n {\n clue: \"Your identity, on display.\",\n id: \"profile\",\n match: \"/profile\",\n },\n {\n clue: \"One stallholder offering something valuable.\",\n id: \"single-vendor\",\n match: new RegExp(`^/vendors/${OBJECT_ID_PATH_SEGMENT_END}`),\n },\n {\n clue: \"Where every stallholder waits under the right category.\",\n id: \"vendors\",\n match: \"/vendors\",\n },\n {\n clue: \"Where you browse articles and posts from around the platform.\",\n id: \"visitors\",\n match: \"/visitors\",\n },\n] as const;\n\nexport type GamePlacement = (typeof gameScreenIdentifierList)[number][\"id\"];\nexport type GamePlacementClue =\n (typeof gameScreenIdentifierList)[number][\"clue\"];\n\nexport type DailyClueBaseGame = {\n gameDate: GameDate;\n gameSolution: string;\n};\n\nexport type DailyClueGameData = GlobalGameData & {\n gameFields: DailyClueBaseGame;\n lastFoundDate: Date | null;\n letterInfo: {\n collected: string[] | null; // The letters the user has found, e.g. [\"C\", \"L\", \"U\"]\n solutionShuffled: string[]; // The letters of the solution, but shuffled, e.g. [\"L\", \"C\", \"U\"]\n todaysClue: GamePlacementClue | null; // The clue for user to find the letter, e.g. related to {todaysPlacement}\n todaysLetter: string | null; // The letter the user has to find today, e.g. \"C\"\n todaysPlacement: GamePlacement | null; // The screen where the user has to find the clue, e.g. \"HomeScreen\"\n };\n};\n","export enum EnumGameType {\n DAILY_CLUE = \"dailyClue\",\n MINI_QUIZ = \"miniQuiz\",\n ODD_ONE_OUT = \"oddOneOut\",\n}\n\nexport type GameDate = {\n startDate: Date;\n endDate: Date;\n};\n\nexport const gameTypeToDisplayName: Record<EnumGameType, string> = {\n [EnumGameType.DAILY_CLUE]: \"Daily Clue\",\n [EnumGameType.MINI_QUIZ]: \"Mini Quiz\",\n [EnumGameType.ODD_ONE_OUT]: \"Odd One Out\",\n};\n\nexport type GlobalGameData = {\n points: number;\n // User has found the clue 3 days in a row, this is incrementing if the user finds the clue and decrements if user misses a day\n streak: number;\n};\n","import { EnumUserLicence } from \"../enums\";\n\n/** Tier keys in descending priority (highest first) for licence resolution. */\nexport const TIERS_BY_PRIORITY = [\"pro_plus\", \"pro\", \"standard\"] as const;\n\n/** Canonical subscription tier keys — matches Stripe/server tier identifiers. */\nexport type Tier = (typeof TIERS_BY_PRIORITY)[number];\n\n/** User-facing tier labels (decoupled from the Tier discriminant). */\nexport const TIER_DISPLAY_LABELS: Record<Tier, string> = {\n pro: \"Pro\",\n // eslint-disable-next-line camelcase\n pro_plus: \"Pro+ Ads\",\n standard: \"Standard\",\n};\n\n/** Maps licence enums to their canonical tier key. */\nexport const TIER_FROM_LICENCE: Record<EnumUserLicence, Tier> = {\n [EnumUserLicence.PRO_EVENT]: \"pro\",\n [EnumUserLicence.PRO_PLUS_EVENT]: \"pro_plus\",\n [EnumUserLicence.PRO_PLUS_VENDOR]: \"pro_plus\",\n [EnumUserLicence.PRO_VENDOR]: \"pro\",\n [EnumUserLicence.STANDARD_EVENT]: \"standard\",\n [EnumUserLicence.STANDARD_PARTNER]: \"standard\",\n [EnumUserLicence.STANDARD_VENDOR]: \"standard\",\n};\n"],"mappings":"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","names":["EnumVerificationType","EnumAdShowOn","EnumAdStatus","EnumAdType","EnumAdStyle","EnumActivity","EnumPostType","EnumPostContentType","EnumGameStatus","EnumGameType"]}
@@ -307,6 +307,12 @@ var EVENT_LIST_ITEM = gql2`
307
307
  ${RESOURCE_IMAGE_FIELDS_FRAGMENT}
308
308
  ${RELATION_DATES_FRAGMENT}
309
309
  `;
310
+ var RELATED_POST_FIELDS_FRAGMENT = gql2`
311
+ fragment RelatedPostFields on RelatedPostType {
312
+ postId
313
+ postType
314
+ }
315
+ `;
310
316
 
311
317
  // src/graphql/queries/event.ts
312
318
  var EVENT_INFO = gql3`
@@ -398,6 +404,9 @@ var EVENT = gql3`
398
404
  rating
399
405
  reviewCount
400
406
  rainOrShine
407
+ relatedPost {
408
+ ...RelatedPostFields
409
+ }
401
410
  socialMedia {
402
411
  ...SocialMediaFields
403
412
  }
@@ -417,6 +426,7 @@ var EVENT = gql3`
417
426
  ${CONTACT_DETAILS_FIELDS_FRAGMENT}
418
427
  ${TERMS_AGREEMENT_FIELDS_FRAGMENT}
419
428
  ${RELATION_DATES_FRAGMENT}
429
+ ${RELATED_POST_FIELDS_FRAGMENT}
420
430
  `;
421
431
  var GET_EVENTS = gql3`
422
432
  query getEvents($dateStatus: EventDateStatusEnumType) {
@@ -586,6 +596,9 @@ var VENDOR = gql4`
586
596
  rating
587
597
  region
588
598
  reviewCount
599
+ relatedPost {
600
+ ...RelatedPostFields
601
+ }
589
602
  relations {
590
603
  relationId
591
604
  relationDates {
@@ -614,6 +627,7 @@ var VENDOR = gql4`
614
627
  ${CONTACT_DETAILS_FIELDS_FRAGMENT}
615
628
  ${TERMS_AGREEMENT_FIELDS_FRAGMENT}
616
629
  ${RELATION_DATES_FRAGMENT}
630
+ ${RELATED_POST_FIELDS_FRAGMENT}
617
631
  `;
618
632
  var VENDOR_ATTRIBUTES_FRAGMENT = gql4`
619
633
  fragment VendorAttributesFields on VendorAttributesType {
@@ -1346,6 +1360,9 @@ var PARTNER = gql11`
1346
1360
  rating
1347
1361
  region
1348
1362
  reviewCount
1363
+ relatedPost {
1364
+ ...RelatedPostFields
1365
+ }
1349
1366
  socialMedia {
1350
1367
  ...SocialMediaFields
1351
1368
  }
@@ -1362,6 +1379,7 @@ var PARTNER = gql11`
1362
1379
  ${POSTER_USAGE_FIELDS_FRAGMENT}
1363
1380
  ${SOCIAL_MEDIA_FIELDS_FRAGMENT}
1364
1381
  ${CONTACT_DETAILS_FIELDS_FRAGMENT}
1382
+ ${RELATED_POST_FIELDS_FRAGMENT}
1365
1383
  `;
1366
1384
  var GET_PARTNERS = gql11`
1367
1385
  query getPartners {
@@ -4269,4 +4287,4 @@ export {
4269
4287
  useGetSchools,
4270
4288
  useGetSchool
4271
4289
  };
4272
- //# sourceMappingURL=chunk-3AI2ROPT.mjs.map
4290
+ //# sourceMappingURL=chunk-TIXEG66V.mjs.map