@timardex/cluemart-shared 1.6.112 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/ad-CVkVX_z5.d.ts +296 -0
  2. package/dist/ad-DA9ECAhK.d.mts +296 -0
  3. package/dist/affiliate-1RtkLnLP.d.ts +35 -0
  4. package/dist/affiliate-Cos2Syz5.d.mts +35 -0
  5. package/dist/{chunk-R6PCFOYO.mjs → chunk-HZMP7GXC.mjs} +2628 -948
  6. package/dist/chunk-HZMP7GXC.mjs.map +1 -0
  7. package/dist/{chunk-X3OLM35T.mjs → chunk-KZTOISPA.mjs} +8 -14
  8. package/dist/chunk-KZTOISPA.mjs.map +1 -0
  9. package/dist/{chunk-ILILH7E2.mjs → chunk-MVQ3CFQR.mjs} +23 -12
  10. package/dist/chunk-MVQ3CFQR.mjs.map +1 -0
  11. package/dist/{chunk-AYO3E4DM.mjs → chunk-RKIRWZCH.mjs} +183 -39
  12. package/dist/chunk-RKIRWZCH.mjs.map +1 -0
  13. package/dist/{chunk-LBEJECG3.mjs → chunk-TAECMXM4.mjs} +219 -249
  14. package/dist/{chunk-LBEJECG3.mjs.map → chunk-TAECMXM4.mjs.map} +1 -1
  15. package/dist/{chunk-BIJ5NDXW.mjs → chunk-ZZJSCYJK.mjs} +42 -46
  16. package/dist/chunk-ZZJSCYJK.mjs.map +1 -0
  17. package/dist/{contactUs-CBWzefUS.d.mts → contactUs-DGrDzJaM.d.mts} +1 -1
  18. package/dist/{contactUs--NoohZBu.d.ts → contactUs-H7799pWe.d.ts} +1 -1
  19. package/dist/enums/index.cjs +7 -13
  20. package/dist/enums/index.cjs.map +1 -1
  21. package/dist/enums/index.d.mts +9 -15
  22. package/dist/enums/index.d.ts +9 -15
  23. package/dist/enums/index.mjs +1 -1
  24. package/dist/formFields/index.cjs +73 -136
  25. package/dist/formFields/index.cjs.map +1 -1
  26. package/dist/formFields/index.d.mts +2 -3
  27. package/dist/formFields/index.d.ts +2 -3
  28. package/dist/formFields/index.mjs +4 -9
  29. package/dist/{global-DePDtOFt.d.mts → global-BUUfmCo7.d.mts} +11 -12
  30. package/dist/{global-CUYYxpy2.d.ts → global-fKbMmluy.d.ts} +11 -12
  31. package/dist/graphql/index.cjs +1251 -694
  32. package/dist/graphql/index.cjs.map +1 -1
  33. package/dist/graphql/index.d.mts +173 -423
  34. package/dist/graphql/index.d.ts +173 -423
  35. package/dist/graphql/index.mjs +21 -33
  36. package/dist/hooks/index.cjs +306 -936
  37. package/dist/hooks/index.cjs.map +1 -1
  38. package/dist/hooks/index.d.mts +4 -10
  39. package/dist/hooks/index.d.ts +4 -10
  40. package/dist/hooks/index.mjs +58 -170
  41. package/dist/hooks/index.mjs.map +1 -1
  42. package/dist/images/apple-maps-icon.webp.d.ts +1 -8
  43. package/dist/images/banner-horizontal.webp.d.ts +1 -8
  44. package/dist/images/banner-vertical.webp.d.ts +1 -8
  45. package/dist/images/cluiTui.webp.d.ts +1 -8
  46. package/dist/images/corporate.webp.d.ts +1 -8
  47. package/dist/images/facebook.webp.d.ts +1 -8
  48. package/dist/images/gazebo-top.webp.d.ts +1 -8
  49. package/dist/images/google-maps-icon.webp.d.ts +1 -8
  50. package/dist/images/googleMaps-logo-dark.webp.d.ts +1 -8
  51. package/dist/images/googleMaps-logo-light.webp.d.ts +1 -8
  52. package/dist/images/instagram.webp.d.ts +1 -8
  53. package/dist/images/logo-atr.webp.d.ts +1 -8
  54. package/dist/images/logo-dark.webp.d.ts +1 -8
  55. package/dist/images/logo.webp.d.ts +1 -8
  56. package/dist/images/meet.webp.d.ts +1 -8
  57. package/dist/images/mini-market1.webp.d.ts +1 -8
  58. package/dist/images/mini-market2.webp.d.ts +1 -8
  59. package/dist/images/mini-market3.webp.d.ts +1 -8
  60. package/dist/images/mini-market4.webp.d.ts +1 -8
  61. package/dist/images/mini-market5.webp.d.ts +1 -8
  62. package/dist/images/poll.webp.d.ts +1 -8
  63. package/dist/images/poster1.webp.d.ts +1 -8
  64. package/dist/images/poster2.webp.d.ts +1 -8
  65. package/dist/images/poster3.webp.d.ts +1 -8
  66. package/dist/images/poster4.webp.d.ts +1 -8
  67. package/dist/images/private.webp.d.ts +1 -8
  68. package/dist/images/qr-code.webp.d.ts +1 -8
  69. package/dist/images/school.webp.d.ts +1 -8
  70. package/dist/images/sima.webp.d.ts +1 -8
  71. package/dist/images/store-android.webp.d.ts +1 -8
  72. package/dist/images/store-ios.webp.d.ts +1 -8
  73. package/dist/images/tablas.webp.d.ts +1 -8
  74. package/dist/images/telefonos.webp.d.ts +1 -8
  75. package/dist/images/tiktok.webp.d.ts +1 -8
  76. package/dist/images/tip.webp.d.ts +1 -8
  77. package/dist/images/ugralos.webp.d.ts +1 -8
  78. package/dist/images/waze-maps-icon.webp.d.ts +1 -8
  79. package/dist/images/website.webp.d.ts +1 -8
  80. package/dist/images/youtube.webp.d.ts +1 -8
  81. package/dist/index.cjs +1673 -1623
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.mts +240 -654
  84. package/dist/index.d.ts +240 -654
  85. package/dist/index.mjs +1672 -1585
  86. package/dist/index.mjs.map +1 -1
  87. package/dist/map/index.cjs +9 -14
  88. package/dist/map/index.cjs.map +1 -1
  89. package/dist/map/index.d.mts +13 -16
  90. package/dist/map/index.d.ts +13 -16
  91. package/dist/map/index.mjs +9 -14
  92. package/dist/map/index.mjs.map +1 -1
  93. package/dist/{resourceActivities-CMUcn2P7.d.ts → resourceActivities-BL_12IAo.d.ts} +4 -9
  94. package/dist/{resourceActivities-CwbJFGIp.d.mts → resourceActivities-zczOntNk.d.mts} +4 -9
  95. package/dist/sharing/index.cjs +1252 -39
  96. package/dist/sharing/index.cjs.map +1 -1
  97. package/dist/sharing/index.d.mts +5 -17
  98. package/dist/sharing/index.d.ts +5 -17
  99. package/dist/sharing/index.mjs +30 -34
  100. package/dist/types/index.cjs +2 -15
  101. package/dist/types/index.cjs.map +1 -1
  102. package/dist/types/index.d.mts +23 -10
  103. package/dist/types/index.d.ts +23 -10
  104. package/dist/types/index.mjs +5 -9
  105. package/dist/utils/index.cjs +136 -355
  106. package/dist/utils/index.cjs.map +1 -1
  107. package/dist/utils/index.d.mts +35 -87
  108. package/dist/utils/index.d.ts +35 -87
  109. package/dist/utils/index.mjs +15 -42
  110. package/package.json +10 -31
  111. package/dist/ad-BUYzE6zx.d.ts +0 -181
  112. package/dist/ad-BhLoEul3.d.mts +0 -181
  113. package/dist/affiliate-BbtjeUP4.d.mts +0 -73
  114. package/dist/affiliate-C51nzKsw.d.ts +0 -73
  115. package/dist/apollo/index.cjs +0 -1383
  116. package/dist/apollo/index.cjs.map +0 -1
  117. package/dist/apollo/index.d.mts +0 -323
  118. package/dist/apollo/index.d.ts +0 -323
  119. package/dist/apollo/index.mjs +0 -1295
  120. package/dist/apollo/index.mjs.map +0 -1
  121. package/dist/auth/index.cjs +0 -1727
  122. package/dist/auth/index.cjs.map +0 -1
  123. package/dist/auth/index.d.mts +0 -166
  124. package/dist/auth/index.d.ts +0 -166
  125. package/dist/auth/index.mjs +0 -380
  126. package/dist/auth/index.mjs.map +0 -1
  127. package/dist/chunk-32MKHJTX.mjs +0 -1207
  128. package/dist/chunk-32MKHJTX.mjs.map +0 -1
  129. package/dist/chunk-AYO3E4DM.mjs.map +0 -1
  130. package/dist/chunk-BIJ5NDXW.mjs.map +0 -1
  131. package/dist/chunk-DQ7ZHIXW.mjs +0 -26
  132. package/dist/chunk-DQ7ZHIXW.mjs.map +0 -1
  133. package/dist/chunk-ILILH7E2.mjs.map +0 -1
  134. package/dist/chunk-R6PCFOYO.mjs.map +0 -1
  135. package/dist/chunk-RAYUJODN.mjs +0 -45
  136. package/dist/chunk-RAYUJODN.mjs.map +0 -1
  137. package/dist/chunk-SD42WIMV.mjs +0 -297
  138. package/dist/chunk-SD42WIMV.mjs.map +0 -1
  139. package/dist/chunk-VPANTTZI.mjs +0 -262
  140. package/dist/chunk-VPANTTZI.mjs.map +0 -1
  141. package/dist/chunk-X3OLM35T.mjs.map +0 -1
  142. package/dist/subscription-BU8GvH2K.d.ts +0 -12
  143. package/dist/subscription-bmAdrnfi.d.mts +0 -12
  144. package/dist/user-D47MLFyH.d.ts +0 -134
  145. package/dist/user-DE8edl3u.d.mts +0 -134
@@ -1,97 +1,20 @@
1
- import {
2
- dateFormat,
3
- formatDate,
4
- isIsoDateString,
5
- mapArrayToOptions,
6
- nzStartOfDay,
7
- sortDatesChronologically,
8
- stripOverlaySubtitleSpecialChars
9
- } from "./chunk-SD42WIMV.mjs";
10
1
  import {
11
2
  PROMO_CODE_PREFIX,
12
3
  gameScreenIdentifierList
13
- } from "./chunk-ILILH7E2.mjs";
14
- import {
15
- isTransientNetworkError
16
- } from "./chunk-RAYUJODN.mjs";
4
+ } from "./chunk-MVQ3CFQR.mjs";
17
5
  import {
6
+ EnumEventDateStatus,
18
7
  EnumInviteStatus,
19
8
  EnumPaymentMethod,
20
9
  EnumRegions
21
- } from "./chunk-X3OLM35T.mjs";
10
+ } from "./chunk-KZTOISPA.mjs";
22
11
 
23
- // src/utils/dailyClueGame.ts
24
- function createSeededRng(seed) {
25
- let t = seed >>> 0;
26
- return function random() {
27
- t += 1831565813;
28
- let x = t;
29
- x = Math.imul(x ^ x >>> 15, x | 1);
30
- x ^= x + Math.imul(x ^ x >>> 7, x | 61);
31
- return ((x ^ x >>> 14) >>> 0) / 4294967296;
32
- };
33
- }
34
- function hashStringToNumber(seed) {
35
- let hash = 2166136261;
36
- for (let i = 0; i < seed.length; i++) {
37
- hash ^= seed.codePointAt(i) ?? 0;
38
- hash = Math.imul(hash, 16777619);
39
- }
40
- return hash >>> 0;
41
- }
42
- function seededShuffle(array, seed) {
43
- const rng = createSeededRng(hashStringToNumber(seed));
44
- const result = [...array];
45
- for (let i = result.length - 1; i > 0; i--) {
46
- const j = Math.floor(rng() * (i + 1));
47
- [result[i], result[j]] = [result[j], result[i]];
48
- }
49
- return result;
50
- }
51
- function getDayIndex(start, today) {
52
- return today.diff(start, "day");
53
- }
54
- function computeDailyClueState(dailyClue) {
55
- const { startDate, endDate } = dailyClue.gameFields.gameDate;
56
- const { solutionShuffled, collected } = dailyClue.letterInfo;
57
- const today = nzStartOfDay();
58
- const start = nzStartOfDay(startDate);
59
- const end = nzStartOfDay(endDate);
60
- if (today.isBefore(start)) {
61
- return null;
62
- }
63
- const shuffledPlacements = seededShuffle(
64
- gameScreenIdentifierList,
65
- start.toISOString()
66
- );
67
- const index = getDayIndex(start, today);
68
- if (today.isAfter(end)) {
69
- return {
70
- todaysClue: null,
71
- todaysLetter: null,
72
- todaysPlacement: null
73
- };
74
- }
75
- if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
76
- return null;
77
- }
78
- const letterToday = solutionShuffled[index];
79
- const placement = shuffledPlacements[index];
80
- if (!letterToday || !placement) return null;
81
- const alreadyCollectedToday = (collected ?? []).includes(letterToday);
82
- if (alreadyCollectedToday) {
83
- return {
84
- todaysClue: null,
85
- todaysLetter: null,
86
- todaysPlacement: null
87
- };
88
- }
89
- return {
90
- todaysClue: placement.clue,
91
- todaysLetter: letterToday,
92
- todaysPlacement: placement.id
93
- };
94
- }
12
+ // src/utils/date.ts
13
+ import dayjs from "dayjs";
14
+ import customParseFormat from "dayjs/plugin/customParseFormat.js";
15
+ import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js";
16
+ import timezone from "dayjs/plugin/timezone.js";
17
+ import utc from "dayjs/plugin/utc.js";
95
18
 
96
19
  // src/utils/utils.ts
97
20
  var removeTypename = (obj) => {
@@ -117,9 +40,12 @@ var removeTypename = (obj) => {
117
40
  return obj;
118
41
  };
119
42
  var truncateText = (text, maxLength = 30) => {
120
- const result = stripOverlaySubtitleSpecialChars(text);
121
- return result.length > maxLength ? result.substring(0, maxLength) + "..." : result;
43
+ return text.length > maxLength ? text.substring(0, maxLength) + "..." : text;
122
44
  };
45
+ var mapArrayToOptions = (items) => items.map((item) => ({
46
+ label: item,
47
+ value: item
48
+ }));
123
49
  var capitalizeFirstLetter = (str) => {
124
50
  return str.split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
125
51
  };
@@ -136,8 +62,10 @@ var paymentMethodOptions = mapArrayToOptions(
136
62
  Object.values(EnumPaymentMethod)
137
63
  );
138
64
  function normalizeUrl(url) {
139
- const withProtocol = !url.startsWith("http://") && !url.startsWith("https://") ? `https://${url}` : url;
140
- return withProtocol.replace(/\/+$/, "");
65
+ if (!url.startsWith("http://") && !url.startsWith("https://")) {
66
+ return `https://${url}`;
67
+ }
68
+ return url;
141
69
  }
142
70
  var licenseNiceNames = {
143
71
  ["pro_event" /* PRO_EVENT */]: "Pro Event",
@@ -146,9 +74,7 @@ var licenseNiceNames = {
146
74
  ["standard_vendor" /* STANDARD_VENDOR */]: "Standard Stallholder",
147
75
  ["pro_plus_event" /* PRO_PLUS_EVENT */]: "Pro+Ads Event",
148
76
  ["pro_plus_vendor" /* PRO_PLUS_VENDOR */]: "Pro+Ads Stallholder",
149
- ["standard_partner" /* STANDARD_PARTNER */]: "Partner",
150
- ["standard_affiliate" /* STANDARD_AFFILIATE */]: "Affiliate",
151
- ["standard_school" /* STANDARD_SCHOOL */]: "School"
77
+ ["standard_partner" /* STANDARD_PARTNER */]: "Partner"
152
78
  };
153
79
  var cluemartSocialMedia = [
154
80
  {
@@ -194,14 +120,184 @@ var PostTypeLabels = {
194
120
  };
195
121
  var CM_SCHOOL_PROMO_CODE = `${PROMO_CODE_PREFIX}SCHOOL`;
196
122
  var CM_AFFILIATE_PROMO_CODE = `${PROMO_CODE_PREFIX}AFFILIATE`;
197
- function formatNZBankAccount(input) {
198
- const digitsOnly = input.replaceAll(/\D/g, "");
199
- const parts = [];
200
- if (digitsOnly.length > 0) parts.push(digitsOnly.slice(0, 2));
201
- if (digitsOnly.length > 2) parts.push(digitsOnly.slice(2, 6));
202
- if (digitsOnly.length > 6) parts.push(digitsOnly.slice(6, 13));
203
- if (digitsOnly.length > 13) parts.push(digitsOnly.slice(13, 15));
204
- return parts.join("-");
123
+
124
+ // src/utils/date.ts
125
+ var dateFormat = "DD-MM-YYYY";
126
+ var timeFormat = "HH:mm";
127
+ dayjs.extend(customParseFormat);
128
+ dayjs.extend(utc);
129
+ dayjs.extend(timezone);
130
+ dayjs.extend(isSameOrAfter);
131
+ var NZ_TZ = "Pacific/Auckland";
132
+ function toNZTime(date) {
133
+ return date ? dayjs(date).tz(NZ_TZ) : dayjs().tz(NZ_TZ);
134
+ }
135
+ function nzStartOfDay(input) {
136
+ if (input == null) {
137
+ return dayjs().tz(NZ_TZ).startOf("day");
138
+ }
139
+ return dayjs.tz(input, NZ_TZ).startOf("day");
140
+ }
141
+ var formatDate = (dateStr, display = "datetime", timeStr) => {
142
+ const dateTimeStr = timeStr ? `${dateStr} ${timeStr}` : dateStr;
143
+ const dateTime = timeStr ? dayjs(dateTimeStr, `${dateFormat} ${timeFormat}`) : dayjs(dateStr, dateFormat);
144
+ const formattedDate = dateTime.format("dddd, D MMMM, YYYY");
145
+ const formattedTime = dateTime.format("h:mm a");
146
+ switch (display) {
147
+ case "date":
148
+ return formattedDate;
149
+ case "time":
150
+ return formattedTime;
151
+ case "datetime":
152
+ return `${formattedDate} at ${formattedTime}`;
153
+ default:
154
+ return formattedDate;
155
+ }
156
+ };
157
+ var getCurrentAndFutureDates = (dates) => {
158
+ const now = dayjs();
159
+ return dates.filter((dateObj) => {
160
+ const dateTime = dayjs(
161
+ `${dateObj.startDate} ${dateObj.startTime}`,
162
+ `${dateFormat} ${timeFormat}`
163
+ );
164
+ return dateTime.isSameOrAfter(now);
165
+ });
166
+ };
167
+ var isFutureDatesBeforeThreshold = (date, minHoursFromNow) => {
168
+ const threshold = minHoursFromNow ? dayjs().add(minHoursFromNow, "hour") : dayjs().startOf("day");
169
+ const dateTime = dayjs(
170
+ `${date.startDate} ${date.startTime}`,
171
+ `${dateFormat} ${timeFormat}`
172
+ );
173
+ return dateTime.isSameOrAfter(threshold);
174
+ };
175
+ var formatTimestamp = (timestamp) => {
176
+ const formattedDate = toNZTime(timestamp).format(dateFormat);
177
+ return formatDate(formattedDate, "date");
178
+ };
179
+ var isIsoDateString = (value) => {
180
+ return typeof value === "string" && !Number.isNaN(Date.parse(value));
181
+ };
182
+ function sortDatesChronologically(dates) {
183
+ if (!dates?.length) {
184
+ return [];
185
+ }
186
+ return [...dates].sort((a, b) => {
187
+ const dateTimeFormat = `${dateFormat} ${timeFormat}`;
188
+ const dateA = dayjs(`${a.startDate} ${a.startTime}`, dateTimeFormat);
189
+ const dateB = dayjs(`${b.startDate} ${b.startTime}`, dateTimeFormat);
190
+ return dateA.valueOf() - dateB.valueOf();
191
+ });
192
+ }
193
+ var futureTimePeriods = mapArrayToOptions(
194
+ Object.values(EnumEventDateStatus)
195
+ ).filter(
196
+ (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 */
197
+ ).map((period) => ({
198
+ label: period.value.replaceAll("_", " "),
199
+ value: period.value
200
+ }));
201
+
202
+ // src/utils/dailyClueGame.ts
203
+ function createSeededRng(seed) {
204
+ let t = seed >>> 0;
205
+ return function random() {
206
+ t += 1831565813;
207
+ let x = t;
208
+ x = Math.imul(x ^ x >>> 15, x | 1);
209
+ x ^= x + Math.imul(x ^ x >>> 7, x | 61);
210
+ return ((x ^ x >>> 14) >>> 0) / 4294967296;
211
+ };
212
+ }
213
+ function hashStringToNumber(seed) {
214
+ let hash = 2166136261;
215
+ for (let i = 0; i < seed.length; i++) {
216
+ hash ^= seed.codePointAt(i) ?? 0;
217
+ hash = Math.imul(hash, 16777619);
218
+ }
219
+ return hash >>> 0;
220
+ }
221
+ function seededShuffle(array, seed) {
222
+ const rng = createSeededRng(hashStringToNumber(seed));
223
+ const result = [...array];
224
+ for (let i = result.length - 1; i > 0; i--) {
225
+ const j = Math.floor(rng() * (i + 1));
226
+ [result[i], result[j]] = [result[j], result[i]];
227
+ }
228
+ return result;
229
+ }
230
+ function getDayIndex(start, today) {
231
+ return today.diff(start, "day");
232
+ }
233
+ function computeDailyClueState(dailyClue) {
234
+ const { startDate, endDate } = dailyClue.gameFields.gameDate;
235
+ const { solutionShuffled, collected } = dailyClue.letterInfo;
236
+ const today = nzStartOfDay();
237
+ const start = nzStartOfDay(startDate);
238
+ const end = nzStartOfDay(endDate);
239
+ if (today.isBefore(start)) {
240
+ return null;
241
+ }
242
+ const shuffledPlacements = seededShuffle(
243
+ gameScreenIdentifierList,
244
+ start.toISOString()
245
+ );
246
+ const index = getDayIndex(start, today);
247
+ if (today.isAfter(end)) {
248
+ return {
249
+ todaysClue: null,
250
+ todaysLetter: null,
251
+ todaysPlacement: null
252
+ };
253
+ }
254
+ if (index < 0 || index >= solutionShuffled.length || index >= shuffledPlacements.length) {
255
+ return null;
256
+ }
257
+ const letterToday = solutionShuffled[index];
258
+ const placement = shuffledPlacements[index];
259
+ if (!letterToday || !placement) return null;
260
+ const alreadyCollectedToday = (collected ?? []).includes(letterToday);
261
+ if (alreadyCollectedToday) {
262
+ return {
263
+ todaysClue: null,
264
+ todaysLetter: null,
265
+ todaysPlacement: null
266
+ };
267
+ }
268
+ return {
269
+ todaysClue: placement.clue,
270
+ todaysLetter: letterToday,
271
+ todaysPlacement: placement.id
272
+ };
273
+ }
274
+
275
+ // src/utils/affiliate.ts
276
+ var AFFILIATE_REWARDS = {
277
+ ["NEW_EVENT_REGISTRATION" /* NEW_EVENT_REGISTRATION */]: {
278
+ description: "10 points for new event registration (one-time reward)",
279
+ value: 10
280
+ },
281
+ ["NEW_VENDOR_REGISTRATION" /* NEW_VENDOR_REGISTRATION */]: {
282
+ description: "5 points for new vendor registration (one-time reward)",
283
+ value: 5
284
+ },
285
+ ["NEW_PARTNER_REGISTRATION" /* NEW_PARTNER_REGISTRATION */]: {
286
+ description: "",
287
+ value: 0
288
+ }
289
+ };
290
+ function createAffiliateReward(rewardType, createdAt) {
291
+ const reward = AFFILIATE_REWARDS[rewardType];
292
+ return {
293
+ createdAt,
294
+ deletedAt: null,
295
+ redeemedAt: null,
296
+ rewardDescription: reward.description,
297
+ rewardType,
298
+ rewardValue: reward.value,
299
+ updatedAt: null
300
+ };
205
301
  }
206
302
 
207
303
  // src/utils/resourceImage.ts
@@ -255,18 +351,18 @@ function filterEventsByDateStatusPeriod(events, period) {
255
351
  }
256
352
 
257
353
  // src/calendar/eventCalendar.ts
258
- import dayjs from "dayjs";
354
+ import dayjs2 from "dayjs";
259
355
  var KNOWN_EVENT_SCHEDULE_STATUSES = /* @__PURE__ */ new Set([
260
356
  "Started" /* STARTED */,
261
357
  "Starting_Soon" /* STARTING_SOON */,
262
358
  "Ended" /* ENDED */
263
359
  ]);
264
360
  function toCalendarIsoDate(startDate) {
265
- const formatted = dayjs(startDate, dateFormat).format("YYYY-MM-DD");
266
- return dayjs(formatted, "YYYY-MM-DD", true).isValid() ? formatted : null;
361
+ const formatted = dayjs2(startDate, dateFormat).format("YYYY-MM-DD");
362
+ return dayjs2(formatted, "YYYY-MM-DD", true).isValid() ? formatted : null;
267
363
  }
268
364
  function fromCalendarIsoDate(isoDate) {
269
- return dayjs(isoDate, "YYYY-MM-DD").format(dateFormat);
365
+ return dayjs2(isoDate, "YYYY-MM-DD").format(dateFormat);
270
366
  }
271
367
  function getEventCalendarIsoDates(dateTimes) {
272
368
  return dateTimes?.map((dateTime) => toCalendarIsoDate(dateTime.startDate)).filter((date) => Boolean(date)) ?? [];
@@ -1488,139 +1584,10 @@ function getVendorEventsEmptyMessage() {
1488
1584
  return "No events found.";
1489
1585
  }
1490
1586
 
1491
- // src/utils/affiliate.ts
1492
- var AFFILIATE_PARTICIPANT_TYPE_LABELS = {
1493
- ["INDIVIDUAL" /* INDIVIDUAL */]: "Individual",
1494
- ["SOLE_TRADER" /* SOLE_TRADER */]: "Sole Trader",
1495
- ["COMPANY" /* COMPANY */]: "Company"
1496
- };
1497
- var AFFILIATE_REWARDS = {
1498
- ["NEW_EVENT_REGISTRATION" /* NEW_EVENT_REGISTRATION */]: {
1499
- description: "10 points for new event registration (one-time reward)",
1500
- value: 10
1501
- },
1502
- ["NEW_VENDOR_REGISTRATION" /* NEW_VENDOR_REGISTRATION */]: {
1503
- description: "5 points for new vendor registration (one-time reward)",
1504
- value: 5
1505
- },
1506
- ["ACTIVE_VENDOR_PRO_SUBSCRIPTION" /* ACTIVE_VENDOR_PRO_SUBSCRIPTION */]: {
1507
- description: "3 points for active vendor pro subscription (monthly reward)",
1508
- value: 3
1509
- },
1510
- ["ACTIVE_VENDOR_STANDARD_SUBSCRIPTION" /* ACTIVE_VENDOR_STANDARD_SUBSCRIPTION */]: {
1511
- description: "1 point for active vendor standard subscription (monthly reward)",
1512
- value: 1
1513
- },
1514
- ["ACTIVE_VENDOR_BONUS_REWARD" /* ACTIVE_VENDOR_BONUS_REWARD */]: {
1515
- description: "5 bonus points for every 10th active vendor (one-time reward)",
1516
- value: 5
1517
- },
1518
- ["ACTIVE_EVENT_WITH_VENDOR_REGISTRATIONS" /* ACTIVE_EVENT_WITH_VENDOR_REGISTRATIONS */]: {
1519
- description: "40 points for active event with vendor registrations (one-time reward)",
1520
- value: 40
1521
- }
1522
- };
1523
- function createAffiliateReward(rewardType, createdAt) {
1524
- const reward = AFFILIATE_REWARDS[rewardType];
1525
- return {
1526
- createdAt,
1527
- redeemedAt: null,
1528
- rewardDescription: reward.description,
1529
- rewardType,
1530
- rewardValue: reward.value
1531
- };
1532
- }
1533
-
1534
- // src/utils/irdNumber.ts
1535
- var PRIMARY_WEIGHTS = [3, 2, 7, 6, 5, 4, 3, 2];
1536
- var SECONDARY_WEIGHTS = [7, 4, 3, 2, 5, 2, 7, 6];
1537
- var IRD_MIN = 1e7;
1538
- var IRD_MAX = 2e8;
1539
- function calculateCheckDigit(baseDigits, weights) {
1540
- const sum = [...baseDigits].reduce(
1541
- (acc, digit, index) => acc + Number(digit) * weights[index],
1542
- 0
1543
- );
1544
- const remainder = sum % 11;
1545
- return remainder === 0 ? 0 : 11 - remainder;
1546
- }
1547
- function normalizeIrdNumber(value) {
1548
- return value.replace(/\D/g, "");
1549
- }
1550
- function formatIrdNumber(input) {
1551
- const digitsOnly = normalizeIrdNumber(input).slice(0, 9);
1552
- const parts = [];
1553
- if (digitsOnly.length > 0) parts.push(digitsOnly.slice(0, 3));
1554
- if (digitsOnly.length > 3) parts.push(digitsOnly.slice(3, 6));
1555
- if (digitsOnly.length > 6) parts.push(digitsOnly.slice(6, 9));
1556
- return parts.join("-");
1557
- }
1558
- function isValidIrdNumber(value) {
1559
- const digits = normalizeIrdNumber(value);
1560
- if (!/^\d{8,9}$/.test(digits)) {
1561
- return false;
1562
- }
1563
- const ird = Number(digits);
1564
- if (ird < IRD_MIN || ird > IRD_MAX) {
1565
- return false;
1566
- }
1567
- const padded = digits.padStart(9, "0");
1568
- const baseDigits = padded.slice(0, -1);
1569
- const checkDigit = Number(padded.slice(-1));
1570
- let calculated = calculateCheckDigit(baseDigits, PRIMARY_WEIGHTS);
1571
- if (calculated === 10) {
1572
- calculated = calculateCheckDigit(baseDigits, SECONDARY_WEIGHTS);
1573
- if (calculated === 10) {
1574
- return false;
1575
- }
1576
- }
1577
- return calculated === checkDigit;
1578
- }
1579
-
1580
- // src/utils/toUserFacingErrorMessage.ts
1581
- var DEFAULT_USER_FACING_ERROR = "Something went wrong. Please try again.";
1582
- var NETWORK_USER_FACING_ERROR = "Unable to connect. Please check your internet connection and try again.";
1583
- var INTERNAL_ERROR_PATTERNS = [
1584
- /connection\s*<monitor>/i,
1585
- /\bmongo/i,
1586
- /\b\d{1,3}(?:\.\d{1,3}){3}(?::\d+)?\b/,
1587
- /\beconn(?:refused|reset|aborted)\b/i,
1588
- /\betimedout\b/i,
1589
- /\benotfound\b/i,
1590
- /\bsocket hang up\b/i,
1591
- /\binternal server error\b/i,
1592
- /received status code 5\d\d/i,
1593
- /\bat\s+\S+\s+\([^)]+:\d+:\d+\)/
1594
- ];
1595
- function isInternalErrorMessage(message) {
1596
- return INTERNAL_ERROR_PATTERNS.some((pattern) => pattern.test(message));
1597
- }
1598
- function toUserFacingErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
1599
- const message = (error ?? "").trim();
1600
- if (!message) return fallback;
1601
- if (isTransientNetworkError(message)) {
1602
- return NETWORK_USER_FACING_ERROR;
1603
- }
1604
- if (isInternalErrorMessage(message)) {
1605
- return fallback;
1606
- }
1607
- return message;
1608
- }
1609
- function getErrorMessage(error, fallback = DEFAULT_USER_FACING_ERROR) {
1610
- let raw;
1611
- if (error instanceof Error) {
1612
- raw = error.message;
1613
- } else if (typeof error === "string") {
1614
- raw = error;
1615
- }
1616
- return toUserFacingErrorMessage(raw, fallback);
1617
- }
1618
-
1619
1587
  export {
1620
- seededShuffle,
1621
- computeDailyClueState,
1622
1588
  removeTypename,
1623
1589
  truncateText,
1590
+ mapArrayToOptions,
1624
1591
  capitalizeFirstLetter,
1625
1592
  statusOptions,
1626
1593
  availableRegionTypes,
@@ -1638,7 +1605,21 @@ export {
1638
1605
  PostTypeLabels,
1639
1606
  CM_SCHOOL_PROMO_CODE,
1640
1607
  CM_AFFILIATE_PROMO_CODE,
1641
- formatNZBankAccount,
1608
+ dateFormat,
1609
+ timeFormat,
1610
+ toNZTime,
1611
+ nzStartOfDay,
1612
+ formatDate,
1613
+ getCurrentAndFutureDates,
1614
+ isFutureDatesBeforeThreshold,
1615
+ formatTimestamp,
1616
+ isIsoDateString,
1617
+ sortDatesChronologically,
1618
+ futureTimePeriods,
1619
+ seededShuffle,
1620
+ computeDailyClueState,
1621
+ AFFILIATE_REWARDS,
1622
+ createAffiliateReward,
1642
1623
  resolveResourceImageActive,
1643
1624
  normalizeResourceImage,
1644
1625
  isResourceImageActive,
@@ -1683,17 +1664,6 @@ export {
1683
1664
  collectVendorEventRelationDateTimes,
1684
1665
  getVendorEventRelationStartDates,
1685
1666
  getVendorEventRelationDateOptions,
1686
- getVendorEventsEmptyMessage,
1687
- AFFILIATE_PARTICIPANT_TYPE_LABELS,
1688
- AFFILIATE_REWARDS,
1689
- createAffiliateReward,
1690
- normalizeIrdNumber,
1691
- formatIrdNumber,
1692
- isValidIrdNumber,
1693
- DEFAULT_USER_FACING_ERROR,
1694
- NETWORK_USER_FACING_ERROR,
1695
- isInternalErrorMessage,
1696
- toUserFacingErrorMessage,
1697
- getErrorMessage
1667
+ getVendorEventsEmptyMessage
1698
1668
  };
1699
- //# sourceMappingURL=chunk-LBEJECG3.mjs.map
1669
+ //# sourceMappingURL=chunk-TAECMXM4.mjs.map