@timardex/cluemart-shared 2.2.29 → 2.2.40

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 (83) hide show
  1. package/dist/{ad-C4L_-r-4.d.ts → ad-CdehhMyb.d.ts} +2 -2
  2. package/dist/{ad-XtBAH4rD.d.mts → ad-Drhn_Azy.d.mts} +2 -2
  3. package/dist/{affiliate-CxZHVZb2.d.ts → affiliate-Cd78p2Fz.d.mts} +3 -3
  4. package/dist/{affiliate-D-L_UtL8.d.mts → affiliate-CdIL0r2o.d.ts} +3 -3
  5. package/dist/auth/index.cjs +10 -1
  6. package/dist/auth/index.cjs.map +1 -1
  7. package/dist/auth/index.d.mts +3 -3
  8. package/dist/auth/index.d.ts +3 -3
  9. package/dist/auth/index.mjs +2 -2
  10. package/dist/{chunk-IKRXLKJ3.mjs → chunk-5AAYX364.mjs} +1 -1
  11. package/dist/{chunk-IKRXLKJ3.mjs.map → chunk-5AAYX364.mjs.map} +1 -1
  12. package/dist/{chunk-NRNLARYC.mjs → chunk-BCMBTEGJ.mjs} +13 -4
  13. package/dist/chunk-BCMBTEGJ.mjs.map +1 -0
  14. package/dist/{chunk-LLP7OWX5.mjs → chunk-MKHXXZWF.mjs} +2 -2
  15. package/dist/{chunk-MQHX5BD6.mjs → chunk-NMJ2CR2F.mjs} +2 -2
  16. package/dist/{chunk-YFFCHTJS.mjs → chunk-T5ZOYS3L.mjs} +5 -23
  17. package/dist/{chunk-YFFCHTJS.mjs.map → chunk-T5ZOYS3L.mjs.map} +1 -1
  18. package/dist/{chunk-BR4XNXE7.mjs → chunk-TKSBCN3N.mjs} +11 -2
  19. package/dist/chunk-TKSBCN3N.mjs.map +1 -0
  20. package/dist/{chunk-J5N3IEGR.mjs → chunk-VL275KFW.mjs} +3 -3
  21. package/dist/{chunk-U3KUTQ43.mjs → chunk-XGGFB7HY.mjs} +11 -2
  22. package/dist/{chunk-U3KUTQ43.mjs.map → chunk-XGGFB7HY.mjs.map} +1 -1
  23. package/dist/{contactUs-CwHKoGEt.d.mts → contactUs-BJPQ5nKc.d.mts} +1 -1
  24. package/dist/{contactUs-CR-nghbk.d.ts → contactUs-ITiB1XV4.d.ts} +1 -1
  25. package/dist/enums/index.cjs +10 -0
  26. package/dist/enums/index.cjs.map +1 -1
  27. package/dist/enums/index.d.mts +8 -1
  28. package/dist/enums/index.d.ts +8 -1
  29. package/dist/enums/index.mjs +3 -1
  30. package/dist/formFields/index.cjs +4 -4
  31. package/dist/formFields/index.cjs.map +1 -1
  32. package/dist/formFields/index.d.mts +1 -1
  33. package/dist/formFields/index.d.ts +1 -1
  34. package/dist/formFields/index.mjs +5 -5
  35. package/dist/{global-B4mmQo6R.d.ts → global-DlC7W4p7.d.ts} +9 -0
  36. package/dist/{global-D1r5ZuQO.d.mts → global-XUBcgjNc.d.mts} +9 -0
  37. package/dist/graphql/index.cjs +10 -1
  38. package/dist/graphql/index.cjs.map +1 -1
  39. package/dist/graphql/index.d.mts +5 -5
  40. package/dist/graphql/index.d.ts +5 -5
  41. package/dist/graphql/index.mjs +3 -3
  42. package/dist/hooks/index.cjs +320 -285
  43. package/dist/hooks/index.cjs.map +1 -1
  44. package/dist/hooks/index.d.mts +5 -5
  45. package/dist/hooks/index.d.ts +5 -5
  46. package/dist/hooks/index.mjs +314 -288
  47. package/dist/hooks/index.mjs.map +1 -1
  48. package/dist/index.cjs +34 -26
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.mts +44 -22
  51. package/dist/index.d.ts +44 -22
  52. package/dist/index.mjs +32 -23
  53. package/dist/index.mjs.map +1 -1
  54. package/dist/map/index.d.mts +1 -1
  55. package/dist/map/index.d.ts +1 -1
  56. package/dist/region/index.cjs.map +1 -1
  57. package/dist/region/index.d.mts +1 -1
  58. package/dist/region/index.d.ts +1 -1
  59. package/dist/region/index.mjs +1 -1
  60. package/dist/{resourceActivities-Uz9uavhK.d.ts → resourceActivities-C8eIfpKl.d.ts} +1 -1
  61. package/dist/{resourceActivities-DUReu_jD.d.mts → resourceActivities-Ci12UkJU.d.mts} +1 -1
  62. package/dist/sharing/index.cjs +4 -25
  63. package/dist/sharing/index.cjs.map +1 -1
  64. package/dist/sharing/index.d.mts +3 -22
  65. package/dist/sharing/index.d.ts +3 -22
  66. package/dist/sharing/index.mjs +3 -9
  67. package/dist/types/index.cjs.map +1 -1
  68. package/dist/types/index.d.mts +7 -7
  69. package/dist/types/index.d.ts +7 -7
  70. package/dist/types/index.mjs +2 -2
  71. package/dist/{user-BpR-FTW2.d.mts → user-BSFExFvl.d.ts} +18 -4
  72. package/dist/{user-IR0bHKFb.d.ts → user-D31zAVuz.d.mts} +18 -4
  73. package/dist/utils/index.cjs +14 -4
  74. package/dist/utils/index.cjs.map +1 -1
  75. package/dist/utils/index.d.mts +15 -4
  76. package/dist/utils/index.d.ts +15 -4
  77. package/dist/utils/index.mjs +6 -4
  78. package/package.json +1 -1
  79. package/dist/chunk-BR4XNXE7.mjs.map +0 -1
  80. package/dist/chunk-NRNLARYC.mjs.map +0 -1
  81. /package/dist/{chunk-LLP7OWX5.mjs.map → chunk-MKHXXZWF.mjs.map} +0 -0
  82. /package/dist/{chunk-MQHX5BD6.mjs.map → chunk-NMJ2CR2F.mjs.map} +0 -0
  83. /package/dist/{chunk-J5N3IEGR.mjs.map → chunk-VL275KFW.mjs.map} +0 -0
@@ -1,18 +1,18 @@
1
- import "../chunk-MQHX5BD6.mjs";
1
+ import "../chunk-NMJ2CR2F.mjs";
2
2
  import "../chunk-VA5YN2K3.mjs";
3
3
  import "../chunk-VPANTTZI.mjs";
4
4
  import "../chunk-DWO35OY4.mjs";
5
- import "../chunk-J5N3IEGR.mjs";
5
+ import "../chunk-VL275KFW.mjs";
6
6
  import {
7
7
  SCHOOL_MIN_STUDENT_COUNT,
8
8
  isValidIrdNumber,
9
9
  normalizeUrl
10
- } from "../chunk-NRNLARYC.mjs";
10
+ } from "../chunk-BCMBTEGJ.mjs";
11
11
  import "../chunk-RE4NZPYY.mjs";
12
12
  import {
13
13
  dateFormat,
14
14
  timeFormat
15
- } from "../chunk-YFFCHTJS.mjs";
15
+ } from "../chunk-T5ZOYS3L.mjs";
16
16
  import {
17
17
  EnumAdShowOn,
18
18
  EnumAdStatus,
@@ -21,11 +21,11 @@ import {
21
21
  EnumAffiliateParticipantType,
22
22
  EnumPostContentType,
23
23
  EnumPostType
24
- } from "../chunk-IKRXLKJ3.mjs";
24
+ } from "../chunk-5AAYX364.mjs";
25
25
  import "../chunk-RAYUJODN.mjs";
26
26
  import "../chunk-DQ7ZHIXW.mjs";
27
- import "../chunk-LLP7OWX5.mjs";
28
- import "../chunk-BR4XNXE7.mjs";
27
+ import "../chunk-MKHXXZWF.mjs";
28
+ import "../chunk-TKSBCN3N.mjs";
29
29
  import "../chunk-7DQBUZXY.mjs";
30
30
  import {
31
31
  EnumEventDateStatus,
@@ -36,7 +36,7 @@ import {
36
36
  EnumResourceType,
37
37
  EnumSocialMedia,
38
38
  EnumVendorType
39
- } from "../chunk-U3KUTQ43.mjs";
39
+ } from "../chunk-XGGFB7HY.mjs";
40
40
  import "../chunk-NPFJ2CN2.mjs";
41
41
 
42
42
  // src/hooks/useLocationSearch.ts
@@ -145,9 +145,6 @@ import * as React from "react";
145
145
  import { useForm } from "react-hook-form";
146
146
 
147
147
  // src/yupSchema/global.ts
148
- import dayjs from "dayjs";
149
- import customParseFormat from "dayjs/plugin/customParseFormat.js";
150
- import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js";
151
148
  import * as yup from "yup";
152
149
  var nzBankAccountRegex = /^\d{2}-\d{4}-\d{7}-\d{2}$/;
153
150
  var nzIrdNumberRegex = /^\d{3}-\d{3}-\d{2,3}$/;
@@ -187,8 +184,6 @@ var toOptionalNumber = (originalValue) => {
187
184
  }
188
185
  return Number.isNaN(parsed) ? void 0 : parsed;
189
186
  };
190
- dayjs.extend(isSameOrAfter);
191
- dayjs.extend(customParseFormat);
192
187
  var emailRequiredSchema = yup.string().email("Invalid email address").required("Email is required").label("Email").transform(
193
188
  (value) => typeof value === "string" ? value.trim().toLowerCase() : value
194
189
  );
@@ -218,32 +213,98 @@ var contactDetailsSchema = yup.object({
218
213
  mobilePhone: mobilePhoneSchema,
219
214
  landlinePhone: landlinePhoneSchema
220
215
  }).nullable().default(void 0);
221
- var endDateNotInPastTest = yup.string().test("not-in-past", "End date cannot be in the past", (value) => {
216
+ var locationSchema = yup.object().shape({
217
+ city: yup.string().label("City").required("City is required"),
218
+ country: yup.string().label("Country").required("Country is required"),
219
+ fullAddress: yup.string().label("Address").required("Address is required"),
220
+ geo: yup.object().shape({
221
+ coordinates: yup.array().of(yup.number().required("Coordinates must be numbers")).length(
222
+ 2,
223
+ "Coordinates must contain exactly two numbers (longitude, latitude)"
224
+ ).required("Coordinates are required"),
225
+ type: yup.string().oneOf(["Point"], "Type must be 'Point'").default("Point").required("Type is required")
226
+ }),
227
+ latitude: yup.number().label("Latitude").required("Latitude is required"),
228
+ longitude: yup.number().label("Longitude").required("Longitude is required"),
229
+ region: yup.string().label("Region").required("Region is required")
230
+ });
231
+ var passwordSchema = yup.string().trim().label("Password").min(8, "Password must be at least 8 characters long").required("Password is required");
232
+ var socialMediaSchema = yup.object({
233
+ name: yup.mixed().oneOf(Object.values(EnumSocialMedia)).label("Social Media Name").optional(),
234
+ link: yup.string().when("name", {
235
+ is: (name) => !!name,
236
+ // If name has a value
237
+ then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
238
+ otherwise: (schema) => schema.notRequired()
239
+ })
240
+ });
241
+ var globalResourceSchema = yup.object().shape({
242
+ active: yup.boolean().required("Active is required"),
243
+ cover: yup.object({
244
+ active: yup.boolean().default(true),
245
+ source: yup.string().label("Cover").required("Cover Image is required"),
246
+ title: yup.string().label("Cover Title").required("Cover Title is required")
247
+ }),
248
+ contactDetails: contactDetailsSchema,
249
+ description: yup.string().label("Description").trim().min(50).required("Description is required"),
250
+ name: yup.string().label("Name").trim().min(3).required("Name is required"),
251
+ region: yup.string().label("Region").required("Region is required"),
252
+ socialMedia: yup.array().of(socialMediaSchema).nullable().default(null)
253
+ });
254
+ var categorySchema = yup.array().of(
255
+ yup.object().shape({
256
+ id: yup.string().required("Category id is required"),
257
+ name: yup.string().required("Category name is required"),
258
+ subcategories: yup.array().of(
259
+ yup.object().shape({
260
+ id: yup.string().defined(),
261
+ items: yup.array().of(
262
+ yup.object().shape({
263
+ id: yup.string().defined(),
264
+ name: yup.string().defined()
265
+ })
266
+ ).nullable(),
267
+ name: yup.string().defined()
268
+ })
269
+ ).min(1, "At least one subcategory is required").required("Subcategories are required")
270
+ })
271
+ );
272
+
273
+ // src/yupSchema/date.ts
274
+ import dayjs from "dayjs";
275
+ import customParseFormat from "dayjs/plugin/customParseFormat.js";
276
+ import isSameOrAfter from "dayjs/plugin/isSameOrAfter.js";
277
+ import * as yup2 from "yup";
278
+ dayjs.extend(isSameOrAfter);
279
+ dayjs.extend(customParseFormat);
280
+ var endDateNotInPastTest = yup2.string().test("not-in-past", "End date cannot be in the past", (value) => {
281
+ if (!value) return true;
222
282
  const now = dayjs();
223
- return value ? dayjs(value, dateFormat, true).isSameOrAfter(now, "day") : false;
283
+ return dayjs(value, dateFormat, true).isSameOrAfter(now, "day");
224
284
  });
225
- var startDateNotInPastTest = yup.string().test("not-in-past", "Start date cannot be in the past", (value) => {
285
+ var startDateNotInPastTest = yup2.string().test("not-in-past", "Start date cannot be in the past", (value) => {
286
+ if (!value) return true;
226
287
  const now = dayjs();
227
- return value ? dayjs(value, dateFormat, true).isSameOrAfter(now, "day") : false;
288
+ return dayjs(value, dateFormat, true).isSameOrAfter(now, "day");
228
289
  });
229
- var endDateAfterStartDateTest = yup.string().test(
290
+ var endDateAfterStartDateTest = yup2.string().test(
230
291
  "end-after-start",
231
292
  "End date cannot be before start date",
232
293
  function(value) {
233
294
  const { startDate } = this.parent;
234
- if (!startDate || !value) return false;
295
+ if (!startDate || !value) return true;
235
296
  return dayjs(value, dateFormat, true).isSameOrAfter(
236
297
  dayjs(startDate, dateFormat, true),
237
298
  "day"
238
299
  );
239
300
  }
240
301
  );
241
- var endTimeMustBeAfterStartTimeTest = yup.string().test(
302
+ var endTimeMustBeAfterStartTimeTest = yup2.string().test(
242
303
  "valid-end-time",
243
304
  "End time must be after start time",
244
305
  function(value) {
245
306
  const { startDate, endDate, startTime } = this.parent;
246
- if (!startDate || !endDate || !startTime || !value) return false;
307
+ if (!startDate || !endDate || !startTime || !value) return true;
247
308
  const startDateTime = dayjs(
248
309
  `${startDate} ${startTime}`,
249
310
  `${dateFormat} ${timeFormat}`,
@@ -257,13 +318,13 @@ var endTimeMustBeAfterStartTimeTest = yup.string().test(
257
318
  return endDateTime.isAfter(startDateTime);
258
319
  }
259
320
  );
260
- var startTimeCannotBeInPastTest = yup.string().test(
321
+ var startTimeCannotBeInPastTest = yup2.string().test(
261
322
  "valid-start-time",
262
323
  "Start time cannot be in the past",
263
324
  function(value) {
264
325
  const now = dayjs();
265
326
  const { startDate } = this.parent;
266
- if (!startDate || !value) return false;
327
+ if (!startDate || !value) return true;
267
328
  const startDateTime = dayjs(
268
329
  `${startDate} ${value}`,
269
330
  `${dateFormat} ${timeFormat}`,
@@ -272,102 +333,67 @@ var startTimeCannotBeInPastTest = yup.string().test(
272
333
  return startDateTime.isSameOrAfter(now);
273
334
  }
274
335
  );
275
- var dateTimeSchema = yup.object().shape({
276
- dateStatus: yup.mixed().oneOf(Object.values(EnumEventDateStatus)).required("Date status is required"),
277
- endDate: yup.string().label("End Date").when("dateStatus", {
278
- is: (status) => status !== "Canceled" /* CANCELED */,
279
- then: (schema) => schema.concat(endDateNotInPastTest).concat(endDateAfterStartDateTest).required("End date is required"),
280
- otherwise: (schema) => schema.notRequired()
336
+ var resolveWhenDateStatus = (values) => Array.isArray(values) ? values[0] : values;
337
+ var SKIP_SCHEDULE_STATUSES = /* @__PURE__ */ new Set([
338
+ "Canceled" /* CANCELED */,
339
+ "Invalid" /* INVALID */
340
+ ]);
341
+ var SKIP_START_PAST_STATUSES = /* @__PURE__ */ new Set([
342
+ "Started" /* STARTED */,
343
+ "Ended" /* ENDED */
344
+ ]);
345
+ var SKIP_END_PAST_STATUSES = /* @__PURE__ */ new Set([
346
+ "Ended" /* ENDED */
347
+ ]);
348
+ var dateTimeSchema = yup2.object().shape({
349
+ dateStatus: yup2.mixed().oneOf(Object.values(EnumEventDateStatus)).required("Date status is required"),
350
+ endDate: yup2.string().label("End Date").when("dateStatus", (values, schema) => {
351
+ const dateStatus = resolveWhenDateStatus(values);
352
+ if (SKIP_SCHEDULE_STATUSES.has(dateStatus)) return schema.notRequired();
353
+ const rules = schema.required("End date is required").concat(endDateAfterStartDateTest);
354
+ return SKIP_END_PAST_STATUSES.has(dateStatus) ? rules : rules.concat(endDateNotInPastTest);
281
355
  }),
282
- endTime: yup.string().label("End Time").when("dateStatus", {
283
- is: (status) => status !== "Canceled" /* CANCELED */,
284
- then: (schema) => schema.concat(endTimeMustBeAfterStartTimeTest).required("End time is required"),
285
- otherwise: (schema) => schema.notRequired()
356
+ endTime: yup2.string().label("End Time").when("dateStatus", (values, schema) => {
357
+ const dateStatus = resolveWhenDateStatus(values);
358
+ if (SKIP_SCHEDULE_STATUSES.has(dateStatus)) return schema.notRequired();
359
+ return schema.required("End time is required").concat(endTimeMustBeAfterStartTimeTest);
286
360
  }),
287
- startDate: yup.string().label("Start Date").when("dateStatus", {
288
- is: (status) => status !== "Canceled" /* CANCELED */,
289
- then: (schema) => schema.concat(startDateNotInPastTest).required("Start date is required"),
290
- otherwise: (schema) => schema.notRequired()
361
+ startDate: yup2.string().label("Start Date").when("dateStatus", (values, schema) => {
362
+ const dateStatus = resolveWhenDateStatus(values);
363
+ if (SKIP_SCHEDULE_STATUSES.has(dateStatus)) return schema.notRequired();
364
+ const rules = schema.required("Start date is required");
365
+ return SKIP_START_PAST_STATUSES.has(dateStatus) ? rules : rules.concat(startDateNotInPastTest);
291
366
  }),
292
- startTime: yup.string().label("Start Time").when("dateStatus", {
293
- is: (status) => status !== "Canceled" /* CANCELED */,
294
- then: (schema) => schema.concat(startTimeCannotBeInPastTest).required("Start time is required"),
295
- otherwise: (schema) => schema.notRequired()
367
+ startTime: yup2.string().label("Start Time").when("dateStatus", (values, schema) => {
368
+ const dateStatus = resolveWhenDateStatus(values);
369
+ if (SKIP_SCHEDULE_STATUSES.has(dateStatus)) return schema.notRequired();
370
+ const rules = schema.required("Start time is required");
371
+ return SKIP_START_PAST_STATUSES.has(dateStatus) ? rules : rules.concat(startTimeCannotBeInPastTest);
296
372
  })
297
373
  });
298
- var stallTypesSchema = yup.object({
299
- label: yup.string().trim().label("Stall Type").required("Stall type is required"),
300
- price: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Price").min(0.1, "Stall price must be at least 0.1").required("Stall price is required").test(
374
+ var stallTypesSchema = yup2.object({
375
+ label: yup2.string().trim().label("Stall Type").required("Stall type is required"),
376
+ price: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Price").min(0.1, "Stall price must be at least 0.1").required("Stall price is required").test(
301
377
  "no-leading-zeros",
302
378
  "",
303
379
  noLeadingZeros("Stall price", { allowDecimal: true })
304
380
  ),
305
- stallCapacity: yup.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Capacity").typeError("Stall capacity must be a number").min(0, "Stall capacity cannot be negative").integer("Stall capacity must be a whole number").required("Stall capacity is required").test("no-leading-zeros", "", noLeadingZeros("Stall capacity"))
381
+ stallCapacity: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Stall Capacity").typeError("Stall capacity must be a number").min(0, "Stall capacity cannot be negative").integer("Stall capacity must be a whole number").required("Stall capacity is required").test("no-leading-zeros", "", noLeadingZeros("Stall capacity"))
306
382
  });
307
383
  var dateTimeWithPriceSchema = dateTimeSchema.shape({
308
- stallTypes: yup.array().of(stallTypesSchema).min(1, "At least one stall type is required").required("Stall types are required")
309
- });
310
- var locationSchema = yup.object().shape({
311
- city: yup.string().label("City").required("City is required"),
312
- country: yup.string().label("Country").required("Country is required"),
313
- fullAddress: yup.string().label("Address").required("Address is required"),
314
- geo: yup.object().shape({
315
- coordinates: yup.array().of(yup.number().required("Coordinates must be numbers")).length(
316
- 2,
317
- "Coordinates must contain exactly two numbers (longitude, latitude)"
318
- ).required("Coordinates are required"),
319
- type: yup.string().oneOf(["Point"], "Type must be 'Point'").default("Point").required("Type is required")
320
- }),
321
- latitude: yup.number().label("Latitude").required("Latitude is required"),
322
- longitude: yup.number().label("Longitude").required("Longitude is required"),
323
- region: yup.string().label("Region").required("Region is required")
324
- });
325
- var passwordSchema = yup.string().trim().label("Password").min(8, "Password must be at least 8 characters long").required("Password is required");
326
- var socialMediaSchema = yup.object({
327
- name: yup.mixed().oneOf(Object.values(EnumSocialMedia)).label("Social Media Name").optional(),
328
- link: yup.string().when("name", {
329
- is: (name) => !!name,
330
- // If name has a value
331
- then: () => normalizedUrlTransform().required("Link is required when name is set").url("Link must be a valid URL").label("Social Media Link"),
332
- otherwise: (schema) => schema.notRequired()
384
+ // Keep `required` unconditionally so the static type stays `StallType[]`
385
+ // (matching `DateTimeWithPriceFormValue`); only the min-count rule is
386
+ // conditional. Skipped statuses may carry an empty stallTypes array.
387
+ stallTypes: yup2.array().of(stallTypesSchema).required("Stall types are required").when("dateStatus", (values, schema) => {
388
+ const dateStatus = resolveWhenDateStatus(values);
389
+ return SKIP_SCHEDULE_STATUSES.has(dateStatus) ? schema : schema.min(1, "At least one stall type is required");
333
390
  })
334
391
  });
335
- var globalResourceSchema = yup.object().shape({
336
- active: yup.boolean().required("Active is required"),
337
- cover: yup.object({
338
- active: yup.boolean().default(true),
339
- source: yup.string().label("Cover").required("Cover Image is required"),
340
- title: yup.string().label("Cover Title").required("Cover Title is required")
341
- }),
342
- contactDetails: contactDetailsSchema,
343
- description: yup.string().label("Description").trim().min(50).required("Description is required"),
344
- name: yup.string().label("Name").trim().min(3).required("Name is required"),
345
- region: yup.string().label("Region").required("Region is required"),
346
- socialMedia: yup.array().of(socialMediaSchema).nullable().default(null)
347
- });
348
- var categorySchema = yup.array().of(
349
- yup.object().shape({
350
- id: yup.string().required("Category id is required"),
351
- name: yup.string().required("Category name is required"),
352
- subcategories: yup.array().of(
353
- yup.object().shape({
354
- id: yup.string().defined(),
355
- items: yup.array().of(
356
- yup.object().shape({
357
- id: yup.string().defined(),
358
- name: yup.string().defined()
359
- })
360
- ).nullable(),
361
- name: yup.string().defined()
362
- })
363
- ).min(1, "At least one subcategory is required").required("Subcategories are required")
364
- })
365
- );
366
392
 
367
393
  // src/yupSchema/event.ts
368
- import * as yup2 from "yup";
394
+ import * as yup3 from "yup";
369
395
  var eventSchema = globalResourceSchema.shape({
370
- dateTime: yup2.array().of(dateTimeSchema).min(1, "At least one Event date required").max(50, "You can only add up to 50 Event dates").required("DateTime is required").test(
396
+ dateTime: yup3.array().of(dateTimeSchema).min(1, "At least one Event date required").max(50, "You can only add up to 50 Event dates").required("DateTime is required").test(
371
397
  "unique-start-date-time",
372
398
  "Start Date and Start Time must be unique",
373
399
  function(value) {
@@ -384,23 +410,23 @@ var eventSchema = globalResourceSchema.shape({
384
410
  return true;
385
411
  }
386
412
  ),
387
- eventType: yup2.mixed().oneOf(Object.values(EnumEventType), "Please select a valid Event type").required("Please select an Event type"),
413
+ eventType: yup3.mixed().oneOf(Object.values(EnumEventType), "Please select a valid Event type").required("Please select an Event type"),
388
414
  location: locationSchema,
389
- nzbn: yup2.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
390
- rainOrShine: yup2.boolean().label("Rain or Shine").required("Please specify if the event is rain or shine"),
391
- tags: yup2.array().of(yup2.string().defined()).min(1, "Tags are required").required("Tags are required")
415
+ nzbn: yup3.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
416
+ rainOrShine: yup3.boolean().label("Rain or Shine").required("Please specify if the event is rain or shine"),
417
+ tags: yup3.array().of(yup3.string().defined()).min(1, "Tags are required").required("Tags are required")
392
418
  });
393
- var paymentInfoSchema = yup2.object({
394
- paymentMethod: yup2.mixed().oneOf(
419
+ var paymentInfoSchema = yup3.object({
420
+ paymentMethod: yup3.mixed().oneOf(
395
421
  Object.values(EnumPaymentMethod),
396
422
  "Please select a valid Payment method"
397
423
  ).required("Please select a Payment method"),
398
- accountHolderName: yup2.string().when("paymentMethod", {
424
+ accountHolderName: yup3.string().when("paymentMethod", {
399
425
  is: "bank_transfer" /* BANK_TRANSFER */,
400
426
  then: (schema) => schema.required("Account holder name is required for bank transfer").trim(),
401
427
  otherwise: (schema) => schema.notRequired()
402
428
  }),
403
- accountNumber: yup2.string().when("paymentMethod", {
429
+ accountNumber: yup3.string().when("paymentMethod", {
404
430
  is: "bank_transfer" /* BANK_TRANSFER */,
405
431
  then: (schema) => schema.required("Account number is required for bank transfer").matches(
406
432
  nzBankAccountRegex,
@@ -408,18 +434,18 @@ var paymentInfoSchema = yup2.object({
408
434
  ).trim(),
409
435
  otherwise: (schema) => schema.notRequired()
410
436
  }),
411
- link: yup2.string().when("paymentMethod", {
437
+ link: yup3.string().when("paymentMethod", {
412
438
  is: (val) => val === "paypal" /* PAYPAL */ || val === "stripe" /* STRIPE */,
413
439
  then: () => normalizedUrlTransform().url("Link must be a valid URL").required("Link is required for PayPal/Stripe"),
414
440
  otherwise: (schema) => schema.notRequired()
415
441
  })
416
442
  });
417
- var eventInfoSchema = yup2.object().shape({
418
- applicationDeadlineHours: yup2.number().label("Application Deadline Hours").nullable().transform((value, originalValue) => originalValue === "" ? null : value).typeError("Application deadline hours must be a number").min(1, "Application deadline hours must be at least 1").required("Application deadline hours is required").test("no-leading-zeros", "", noLeadingZeros("Application deadline hours")),
419
- dateTime: yup2.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
420
- eventId: yup2.string().trim().required("Event ID is required"),
421
- packInTime: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Pack In Time").typeError("Pack in time must be a number").min(1, "Pack in time must be at least 1").required("Pack in time is required").test("no-leading-zeros", "", noLeadingZeros("Pack in time")),
422
- paymentDueHours: yup2.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Payment Due Hours").typeError("Payment due hours must be a number").min(1, "Payment due hours must be at least 1").required("Payment due hours is required").test("no-leading-zeros", "", noLeadingZeros("Payment due hours")).test(
443
+ var eventInfoSchema = yup3.object().shape({
444
+ applicationDeadlineHours: yup3.number().label("Application Deadline Hours").nullable().transform((value, originalValue) => originalValue === "" ? null : value).typeError("Application deadline hours must be a number").min(1, "Application deadline hours must be at least 1").required("Application deadline hours is required").test("no-leading-zeros", "", noLeadingZeros("Application deadline hours")),
445
+ dateTime: yup3.array().of(dateTimeWithPriceSchema).required("DateTime is required"),
446
+ eventId: yup3.string().trim().required("Event ID is required"),
447
+ packInTime: yup3.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Pack In Time").typeError("Pack in time must be a number").min(1, "Pack in time must be at least 1").required("Pack in time is required").test("no-leading-zeros", "", noLeadingZeros("Pack in time")),
448
+ paymentDueHours: yup3.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Payment Due Hours").typeError("Payment due hours must be a number").min(1, "Payment due hours must be at least 1").required("Payment due hours is required").test("no-leading-zeros", "", noLeadingZeros("Payment due hours")).test(
423
449
  "payment-before-deadline",
424
450
  "Payment due hours must be less than application deadline hours",
425
451
  function(value) {
@@ -427,12 +453,12 @@ var eventInfoSchema = yup2.object().shape({
427
453
  return value < applicationDeadlineHours;
428
454
  }
429
455
  ),
430
- paymentInfo: yup2.array().of(paymentInfoSchema).min(1, "At least one payment method is required").required("Payment info is required"),
431
- refundPolicy: yup2.array().of(
432
- yup2.object({
433
- category: yup2.mixed().required("Category is required"),
434
- label: yup2.string().required("Label is required"),
435
- value: yup2.boolean().required("Value is required")
456
+ paymentInfo: yup3.array().of(paymentInfoSchema).min(1, "At least one payment method is required").required("Payment info is required"),
457
+ refundPolicy: yup3.array().of(
458
+ yup3.object({
459
+ category: yup3.mixed().required("Category is required"),
460
+ label: yup3.string().required("Label is required"),
461
+ value: yup3.boolean().required("Value is required")
436
462
  })
437
463
  ).min(1, "At least one refund policy item is required").test(
438
464
  "at-least-one-true",
@@ -445,12 +471,12 @@ var eventInfoSchema = yup2.object().shape({
445
471
  });
446
472
 
447
473
  // src/yupSchema/vendor.ts
448
- import * as yup3 from "yup";
449
- var vendorMenuSchema = yup3.object({
450
- description: yup3.string().trim().nullable().optional(),
451
- name: yup3.string().trim().nullable().min(3, "Product name must be at least 3 characters").required("Product name is required"),
452
- price: yup3.number().transform((v, o) => o === "" ? null : v).min(1, "Product price must be greater than 0").required("Product price is required"),
453
- priceMax: yup3.number().transform((v, o) => o === "" ? null : v).min(1, "Product max price must be greater than 0").nullable().optional().test(
474
+ import * as yup4 from "yup";
475
+ var vendorMenuSchema = yup4.object({
476
+ description: yup4.string().trim().nullable().optional(),
477
+ name: yup4.string().trim().nullable().min(3, "Product name must be at least 3 characters").required("Product name is required"),
478
+ price: yup4.number().transform((v, o) => o === "" ? null : v).min(1, "Product price must be greater than 0").required("Product price is required"),
479
+ priceMax: yup4.number().transform((v, o) => o === "" ? null : v).min(1, "Product max price must be greater than 0").nullable().optional().test(
454
480
  "is-greater",
455
481
  "Max price must be greater than Product price",
456
482
  function(priceMaxValue) {
@@ -462,33 +488,33 @@ var vendorMenuSchema = yup3.object({
462
488
  return maxNum > priceNum;
463
489
  }
464
490
  ),
465
- priceUnit: yup3.string().required("Product unit is required")
491
+ priceUnit: yup4.string().required("Product unit is required")
466
492
  });
467
493
  var vendorSchema = globalResourceSchema.shape({
468
494
  categories: categorySchema.min(1, "Category list must contain at least one item").required("Categories are required"),
469
- foodTruck: yup3.boolean().label("Food Truck").required("Please specify if the vendor is a food truck"),
470
- products: yup3.object().shape({
471
- active: yup3.boolean().nullable().optional(),
472
- productsList: yup3.array().of(vendorMenuSchema).nullable().optional()
495
+ foodTruck: yup4.boolean().label("Food Truck").required("Please specify if the vendor is a food truck"),
496
+ products: yup4.object().shape({
497
+ active: yup4.boolean().nullable().optional(),
498
+ productsList: yup4.array().of(vendorMenuSchema).nullable().optional()
473
499
  }).nullable().optional(),
474
- vendorType: yup3.mixed().oneOf(Object.values(EnumVendorType)).required("Please select a Vendor type")
500
+ vendorType: yup4.mixed().oneOf(Object.values(EnumVendorType)).required("Please select a Vendor type")
475
501
  });
476
- var unregisteredVendorSchema = yup3.object().shape({
477
- categoryIds: yup3.array().of(yup3.string().defined()).min(1, "Category list must contain at least one item").required("Categories are required"),
478
- dateTime: yup3.array().of(dateTimeSchema).min(1, "Select at least one event date").required("DateTime is required"),
502
+ var unregisteredVendorSchema = yup4.object().shape({
503
+ categoryIds: yup4.array().of(yup4.string().defined()).min(1, "Category list must contain at least one item").required("Categories are required"),
504
+ dateTime: yup4.array().of(dateTimeSchema).min(1, "Select at least one event date").required("DateTime is required"),
479
505
  email: emailRequiredSchema,
480
- inviterId: yup3.string().required("Inviter ID is required"),
481
- name: yup3.string().label("Stallholder Name").trim().min(3, "Name must be at least 3 characters").required("Name is required"),
482
- region: yup3.string().label("Region").required("Region is required")
506
+ inviterId: yup4.string().required("Inviter ID is required"),
507
+ name: yup4.string().label("Stallholder Name").trim().min(3, "Name must be at least 3 characters").required("Name is required"),
508
+ region: yup4.string().label("Region").required("Region is required")
483
509
  });
484
- var vendorInfoSchema = yup3.object().shape({
485
- product: yup3.object().shape({
486
- foodFlavors: yup3.array().of(
487
- yup3.mixed().oneOf(Object.values(EnumFoodFlavor), "Invalid flavor selected").required("Flavor is required")
510
+ var vendorInfoSchema = yup4.object().shape({
511
+ product: yup4.object().shape({
512
+ foodFlavors: yup4.array().of(
513
+ yup4.mixed().oneOf(Object.values(EnumFoodFlavor), "Invalid flavor selected").required("Flavor is required")
488
514
  ).min(1, "Food flavors list must contain at least one item").required("Food flavors are required"),
489
- packaging: yup3.array().of(yup3.string().defined()).min(1, "Packaging list must contain at least one item").required("Packaging is required"),
490
- priceRange: yup3.object().shape({
491
- max: yup3.string().required("Max price is required").test(
515
+ packaging: yup4.array().of(yup4.string().defined()).min(1, "Packaging list must contain at least one item").required("Packaging is required"),
516
+ priceRange: yup4.object().shape({
517
+ max: yup4.string().required("Max price is required").test(
492
518
  "is-number",
493
519
  "Max price must be a valid number",
494
520
  (value) => value !== void 0 && value !== "" && !Number.isNaN(Number(value))
@@ -504,49 +530,49 @@ var vendorInfoSchema = yup3.object().shape({
504
530
  return maxNum >= minNum;
505
531
  }
506
532
  ),
507
- min: yup3.string().required("Min price is required").test(
533
+ min: yup4.string().required("Min price is required").test(
508
534
  "is-number",
509
535
  "Min price must be a valid number",
510
536
  (value) => value !== void 0 && value !== "" && !Number.isNaN(Number(value))
511
537
  )
512
538
  }),
513
- producedIn: yup3.array().of(yup3.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required")
539
+ producedIn: yup4.array().of(yup4.string().defined()).min(1, "Produced in list must contain at least one item").required("Produced in is required")
514
540
  }),
515
- requirements: yup3.object().shape({
516
- electricity: yup3.object().shape({
517
- details: yup3.string().trim().test(
541
+ requirements: yup4.object().shape({
542
+ electricity: yup4.object().shape({
543
+ details: yup4.string().trim().test(
518
544
  "details-required",
519
545
  "Please add electricity details",
520
546
  function(value) {
521
547
  return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
522
548
  }
523
549
  ).nullable(),
524
- isRequired: yup3.boolean().required("Electricity requirement is required")
550
+ isRequired: yup4.boolean().required("Electricity requirement is required")
525
551
  }),
526
- gazebo: yup3.object().shape({
527
- details: yup3.string().trim().test(
552
+ gazebo: yup4.object().shape({
553
+ details: yup4.string().trim().test(
528
554
  "details-required",
529
555
  "Please add gazebo details",
530
556
  function(value) {
531
557
  return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
532
558
  }
533
559
  ).nullable(),
534
- isRequired: yup3.boolean().required("Gazebo requirement is required")
560
+ isRequired: yup4.boolean().required("Gazebo requirement is required")
535
561
  }),
536
- table: yup3.object().shape({
537
- details: yup3.string().trim().test(
562
+ table: yup4.object().shape({
563
+ details: yup4.string().trim().test(
538
564
  "details-required",
539
565
  "Please add table details",
540
566
  function(value) {
541
567
  return !this.parent?.isRequired || (value?.trim().length ?? 0) > 0;
542
568
  }
543
569
  ).nullable(),
544
- isRequired: yup3.boolean().required("Table requirement is required")
570
+ isRequired: yup4.boolean().required("Table requirement is required")
545
571
  })
546
572
  }).optional(),
547
- stallInfo: yup3.object().shape({
548
- size: yup3.object().shape({
549
- depth: yup3.string().required("Depth is required").test(
573
+ stallInfo: yup4.object().shape({
574
+ size: yup4.object().shape({
575
+ depth: yup4.string().required("Depth is required").test(
550
576
  "is-number",
551
577
  "Depth must be a valid number",
552
578
  (value) => value !== void 0 && value !== "" && !Number.isNaN(Number(value))
@@ -555,7 +581,7 @@ var vendorInfoSchema = yup3.object().shape({
555
581
  "Depth must be greater than 0",
556
582
  (value) => value !== void 0 && value !== "" && Number(value) > 0
557
583
  ),
558
- width: yup3.string().required("Width is required").test(
584
+ width: yup4.string().required("Width is required").test(
559
585
  "is-number",
560
586
  "Width must be a valid number",
561
587
  (value) => value !== void 0 && value !== "" && !Number.isNaN(Number(value))
@@ -566,79 +592,79 @@ var vendorInfoSchema = yup3.object().shape({
566
592
  )
567
593
  })
568
594
  }),
569
- vendorId: yup3.string().trim().required("Vendor ID is required")
595
+ vendorId: yup4.string().trim().required("Vendor ID is required")
570
596
  });
571
597
 
572
598
  // src/yupSchema/user.ts
573
- import * as yup4 from "yup";
574
- var userSchema = yup4.object().shape({
575
- active: yup4.boolean().required("Active is required"),
599
+ import * as yup5 from "yup";
600
+ var userSchema = yup5.object().shape({
601
+ active: yup5.boolean().required("Active is required"),
576
602
  email: emailRequiredSchema,
577
- firstName: yup4.string().label("First Name").trim().required("First name is required"),
578
- lastName: yup4.string().label("Last Name").trim().required("Last name is required"),
579
- nickName: yup4.string().nullable().label("Nickname").trim().notRequired(),
580
- isTester: yup4.boolean().required("Tester status is required"),
581
- password: yup4.string().nullable().trim().label("Password").min(8, "Password must be at least 8 characters long").notRequired(),
582
- preferredRegion: yup4.string().label("Preferred Region").required("Preferred region is required"),
583
- confirmPassword: yup4.string().nullable().trim().label("Confirm Password").when("password", {
603
+ firstName: yup5.string().label("First Name").trim().required("First name is required"),
604
+ lastName: yup5.string().label("Last Name").trim().required("Last name is required"),
605
+ nickName: yup5.string().nullable().label("Nickname").trim().notRequired(),
606
+ isTester: yup5.boolean().required("Tester status is required"),
607
+ password: yup5.string().nullable().trim().label("Password").min(8, "Password must be at least 8 characters long").notRequired(),
608
+ preferredRegion: yup5.string().label("Preferred Region").required("Preferred region is required"),
609
+ confirmPassword: yup5.string().nullable().trim().label("Confirm Password").when("password", {
584
610
  is: (val) => !!val,
585
611
  // only necessary if password typed
586
- then: (schema) => schema.required("Confirm Password is required").oneOf([yup4.ref("password")], "Passwords must match"),
612
+ then: (schema) => schema.required("Confirm Password is required").oneOf([yup5.ref("password")], "Passwords must match"),
587
613
  otherwise: (schema) => schema.notRequired()
588
614
  })
589
615
  });
590
616
 
591
617
  // src/yupSchema/auth.ts
592
- import * as yup5 from "yup";
593
- var loginSchema = yup5.object().shape({
618
+ import * as yup6 from "yup";
619
+ var loginSchema = yup6.object().shape({
594
620
  email: emailRequiredSchema,
595
621
  password: passwordSchema
596
622
  });
597
- var registerSchema = yup5.object().shape({
623
+ var registerSchema = yup6.object().shape({
598
624
  email: emailRequiredSchema,
599
- firstName: yup5.string().label("First Name").required("First Name is required"),
600
- interests: yup5.array().of(
601
- yup5.mixed().oneOf(
625
+ firstName: yup6.string().label("First Name").required("First Name is required"),
626
+ interests: yup6.array().of(
627
+ yup6.mixed().oneOf(
602
628
  Object.values(EnumResourceType),
603
629
  "Please select a valid interest"
604
630
  ).defined()
605
631
  ).label("Who will you be on ClueMart?").min(1, "Select at least one interest").required("Interests are required"),
606
- lastName: yup5.string().label("Last Name").required("Last Name is required"),
607
- nickName: yup5.string().nullable().label("Nickname").trim().notRequired(),
632
+ lastName: yup6.string().label("Last Name").required("Last Name is required"),
633
+ nickName: yup6.string().nullable().label("Nickname").trim().notRequired(),
608
634
  password: passwordSchema,
609
- preferredRegion: yup5.string().label("Preferred Region").required("Preferred Region is required")
635
+ preferredRegion: yup6.string().label("Preferred Region").required("Preferred Region is required")
610
636
  });
611
- var requestPasswordResetSchema = yup5.object().shape({
637
+ var requestPasswordResetSchema = yup6.object().shape({
612
638
  email: emailRequiredSchema
613
639
  });
614
- var resetPasswordSchema = yup5.object().shape({
640
+ var resetPasswordSchema = yup6.object().shape({
615
641
  email: emailRequiredSchema,
616
642
  password: passwordSchema,
617
643
  // eslint-disable-next-line sort-keys
618
- confirmPassword: yup5.string().oneOf([yup5.ref("password")], "Passwords must match").required("Confirm Password is required")
644
+ confirmPassword: yup6.string().oneOf([yup6.ref("password")], "Passwords must match").required("Confirm Password is required")
619
645
  });
620
- var validateVerificationTokenSchema = yup5.object().shape({
646
+ var validateVerificationTokenSchema = yup6.object().shape({
621
647
  email: emailRequiredSchema,
622
- verificationToken: yup5.string().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
648
+ verificationToken: yup6.string().required("Verification code is required").matches(/^\d{6}$/, "Verification code must be exactly 6 digits")
623
649
  });
624
650
 
625
651
  // src/yupSchema/ad.ts
626
- import * as yup6 from "yup";
627
- var adResourceSchema = yup6.object({
628
- adDescription: yup6.string().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
629
- adImage: yup6.string().required("Ad image is required"),
630
- adStyle: yup6.mixed().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
631
- adTitle: yup6.string().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
632
- adType: yup6.mixed().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
633
- resourceId: yup6.string().required("Resource ID is required"),
634
- resourceName: yup6.string().required("Resource name is required"),
635
- resourceRegion: yup6.string().required("Resource region is required"),
636
- resourceType: yup6.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required"),
637
- resourceSlug: yup6.string().required("Resource slug is required")
652
+ import * as yup7 from "yup";
653
+ var adResourceSchema = yup7.object({
654
+ adDescription: yup7.string().trim().required("Ad description is required").max(150, "Ad description must be at most 150 characters"),
655
+ adImage: yup7.string().required("Ad image is required"),
656
+ adStyle: yup7.mixed().oneOf(Object.values(EnumAdStyle), "Please select a valid ad style").required("Ad style is required"),
657
+ adTitle: yup7.string().trim().required("Ad title is required").max(30, "Ad title must be at most 30 characters"),
658
+ adType: yup7.mixed().oneOf(Object.values(EnumAdType), "Please select a valid ad type").required("Ad type is required"),
659
+ resourceId: yup7.string().required("Resource ID is required"),
660
+ resourceName: yup7.string().required("Resource name is required"),
661
+ resourceRegion: yup7.string().required("Resource region is required"),
662
+ resourceType: yup7.mixed().oneOf(Object.values(EnumResourceType), "Please select Event or Vendor").required("Resource type is required"),
663
+ resourceSlug: yup7.string().required("Resource slug is required")
638
664
  });
639
- var adSchema = yup6.object().shape({
640
- active: yup6.boolean().required("Active status is required"),
641
- end: yup6.date().required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
665
+ var adSchema = yup7.object().shape({
666
+ active: yup7.boolean().required("Active status is required"),
667
+ end: yup7.date().required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
642
668
  if (!value) return false;
643
669
  const endDate = new Date(value);
644
670
  const now = /* @__PURE__ */ new Date();
@@ -656,93 +682,93 @@ var adSchema = yup6.object().shape({
656
682
  )
657
683
  }),
658
684
  resource: adResourceSchema.required("Resource information is required"),
659
- showOn: yup6.array().of(yup6.mixed().oneOf(Object.values(EnumAdShowOn)).required()).min(1, "At least one display location is required").required("Display location is required"),
660
- status: yup6.mixed().oneOf(Object.values(EnumAdStatus)).required("Ad status is required"),
661
- start: yup6.date().when("status", {
685
+ showOn: yup7.array().of(yup7.mixed().oneOf(Object.values(EnumAdShowOn)).required()).min(1, "At least one display location is required").required("Display location is required"),
686
+ status: yup7.mixed().oneOf(Object.values(EnumAdStatus)).required("Ad status is required"),
687
+ start: yup7.date().when("status", {
662
688
  is: (status) => status !== "Active" /* ACTIVE */,
663
- then: () => yup6.date().required("Start date is required").test("is-future-date", "Start date must be in the future", (value) => {
689
+ then: () => yup7.date().required("Start date is required").test("is-future-date", "Start date must be in the future", (value) => {
664
690
  if (!value) return false;
665
691
  return value > /* @__PURE__ */ new Date();
666
692
  }),
667
693
  // Keep `start` optional (not null) when ACTIVE to match TS type `start?: Date`.
668
- otherwise: () => yup6.date().notRequired()
694
+ otherwise: () => yup7.date().notRequired()
669
695
  }),
670
- targetRegion: yup6.array().of(yup6.string().required()).min(1, "At least one target region is required").required("Target region is required")
696
+ targetRegion: yup7.array().of(yup7.string().required()).min(1, "At least one target region is required").required("Target region is required")
671
697
  });
672
698
 
673
699
  // src/yupSchema/partner.ts
674
- import * as yup7 from "yup";
700
+ import * as yup8 from "yup";
675
701
  var partnerSchema = globalResourceSchema.shape({
676
702
  location: locationSchema,
677
- nzbn: yup7.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
678
- partnerType: yup7.mixed().oneOf(Object.values(EnumPartnerType), "Please select a valid Partner type").required("Please select a Partner type")
703
+ nzbn: yup8.string().required("NZBN is required").matches(nzbnRegex, "NZBN must be 13 digits and start with 94"),
704
+ partnerType: yup8.mixed().oneOf(Object.values(EnumPartnerType), "Please select a valid Partner type").required("Please select a Partner type")
679
705
  });
680
706
 
681
707
  // src/yupSchema/post.ts
682
- import * as yup8 from "yup";
683
- var postContentSchema = yup8.object().shape({
684
- contentData: yup8.mixed().optional().nullable(),
685
- contentOrder: yup8.number().nullable(),
686
- contentType: yup8.mixed().oneOf(Object.values(EnumPostContentType)).nullable()
708
+ import * as yup9 from "yup";
709
+ var postContentSchema = yup9.object().shape({
710
+ contentData: yup9.mixed().optional().nullable(),
711
+ contentOrder: yup9.number().nullable(),
712
+ contentType: yup9.mixed().oneOf(Object.values(EnumPostContentType)).nullable()
687
713
  });
688
- var postSchema = yup8.object().shape({
689
- active: yup8.boolean().required(),
690
- caption: yup8.string().required(),
691
- content: yup8.array().of(postContentSchema).required(),
692
- postType: yup8.mixed().oneOf(Object.values(EnumPostType)).required(),
693
- resource: yup8.object({
694
- resourceId: yup8.string().required(),
695
- resourceRegion: yup8.string().required(),
696
- resourceSlug: yup8.string().required(),
697
- resourceType: yup8.mixed().oneOf(Object.values(EnumResourceType)).required()
714
+ var postSchema = yup9.object().shape({
715
+ active: yup9.boolean().required(),
716
+ caption: yup9.string().required(),
717
+ content: yup9.array().of(postContentSchema).required(),
718
+ postType: yup9.mixed().oneOf(Object.values(EnumPostType)).required(),
719
+ resource: yup9.object({
720
+ resourceId: yup9.string().required(),
721
+ resourceRegion: yup9.string().required(),
722
+ resourceSlug: yup9.string().required(),
723
+ resourceType: yup9.mixed().oneOf(Object.values(EnumResourceType)).required()
698
724
  }).nullable().optional(),
699
- tags: yup8.array().of(yup8.string().required()).nullable().optional(),
700
- title: yup8.string().required()
725
+ tags: yup9.array().of(yup9.string().required()).nullable().optional(),
726
+ title: yup9.string().required()
701
727
  });
702
728
 
703
729
  // src/yupSchema/appSettings.ts
704
- import * as yup9 from "yup";
705
- var appSettingsSchema = yup9.object({
706
- adSettings: yup9.object({
707
- mobileDisplayEnabled: yup9.boolean().label("Mobile Ad Display").required("Mobile Ad Display is required"),
708
- webDisplayEnabled: yup9.boolean().label("Web Ad Display").required("Web Ad Display is required")
730
+ import * as yup10 from "yup";
731
+ var appSettingsSchema = yup10.object({
732
+ adSettings: yup10.object({
733
+ mobileDisplayEnabled: yup10.boolean().label("Mobile Ad Display").required("Mobile Ad Display is required"),
734
+ webDisplayEnabled: yup10.boolean().label("Web Ad Display").required("Web Ad Display is required")
709
735
  }).label("Ad Settings").required("Ad Settings is required"),
710
- appVersion: yup9.string().trim().label("App Version").matches(
736
+ appVersion: yup10.string().trim().label("App Version").matches(
711
737
  /^\d+\.\d+\.\d+$/,
712
738
  "App Version must be in the format X.Y.Z (e.g. 1.12.50)"
713
739
  ).required("App Version is required"),
714
- isOfflineMode: yup9.boolean().label("Is Offline Mode").required("Is Offline Mode is required"),
715
- minimumRedeemableAffiliatePoints: yup9.number().label("Minimum Redeemable Affiliate Points").min(0, "Minimum Redeemable Affiliate Points must be greater than 0").required("Minimum Redeemable Affiliate Points is required")
740
+ isOfflineMode: yup10.boolean().label("Is Offline Mode").required("Is Offline Mode is required"),
741
+ minimumRedeemableAffiliatePoints: yup10.number().label("Minimum Redeemable Affiliate Points").min(0, "Minimum Redeemable Affiliate Points must be greater than 0").required("Minimum Redeemable Affiliate Points is required")
716
742
  });
717
743
 
718
744
  // src/yupSchema/coupon.ts
719
- import * as yup10 from "yup";
720
- var couponPurchaseOptionSchema = yup10.object().shape({
721
- buy: yup10.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("How many do they need to buy?").typeError("Buy must be a number").integer("Buy must be a whole number").min(1, "Buy must be at least 1").max(15, "Buy must be at most 15").required("Buy is required"),
722
- get: yup10.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("How many do they get?").typeError("Get must be a number").integer("Get must be a whole number").min(1, "Get must be at least 1").required("Get is required").test("get-less-than-buy", "Get must be less than Buy", function(value) {
745
+ import * as yup11 from "yup";
746
+ var couponPurchaseOptionSchema = yup11.object().shape({
747
+ buy: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("How many do they need to buy?").typeError("Buy must be a number").integer("Buy must be a whole number").min(1, "Buy must be at least 1").max(15, "Buy must be at most 15").required("Buy is required"),
748
+ get: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("How many do they get?").typeError("Get must be a number").integer("Get must be a whole number").min(1, "Get must be at least 1").required("Get is required").test("get-less-than-buy", "Get must be less than Buy", function(value) {
723
749
  const { buy } = this.parent;
724
750
  if (value === void 0 || buy === void 0) return true;
725
751
  return value < buy;
726
752
  }),
727
- maxRewardCount: yup10.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Max coupon count").typeError("Max coupon count must be a number").integer("Max coupon count must be a whole number").min(20, "Max coupon count must be at least 20").max(200, "Max coupon count cannot exceed 200").required("Max coupon count is required"),
728
- type: yup10.mixed().oneOf(["PURCHASE" /* PURCHASE */], "Type must be PURCHASE").required("Type is required"),
729
- unit: yup10.string().label("Unit").trim().required("Unit is required")
753
+ maxRewardCount: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Max coupon count").typeError("Max coupon count must be a number").integer("Max coupon count must be a whole number").min(20, "Max coupon count must be at least 20").max(200, "Max coupon count cannot exceed 200").required("Max coupon count is required"),
754
+ type: yup11.mixed().oneOf(["PURCHASE" /* PURCHASE */], "Type must be PURCHASE").required("Type is required"),
755
+ unit: yup11.string().label("Unit").trim().required("Unit is required")
730
756
  }).nullable().defined("Coupon option is required");
731
- var couponMarketVisitOptionSchema = yup10.object().shape({
732
- type: yup10.mixed().oneOf(
757
+ var couponMarketVisitOptionSchema = yup11.object().shape({
758
+ type: yup11.mixed().oneOf(
733
759
  ["MARKET_VISIT" /* MARKET_VISIT */],
734
760
  "Type must be MARKET_VISIT"
735
761
  ).required("Type is required"),
736
- visits: yup10.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Visits").typeError("Visits must be a number").integer("Visits must be a whole number").min(1, "Visits must be at least 1").required("Visits is required")
762
+ visits: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Visits").typeError("Visits must be a number").integer("Visits must be a whole number").min(1, "Visits must be at least 1").required("Visits is required")
737
763
  }).nullable().defined("Coupon option is required");
738
- var couponMarketPassportOptionSchema = yup10.object().shape({
739
- type: yup10.mixed().oneOf(
764
+ var couponMarketPassportOptionSchema = yup11.object().shape({
765
+ type: yup11.mixed().oneOf(
740
766
  ["MARKET_PASSPORT" /* MARKET_PASSPORT */],
741
767
  "Type must be MARKET_PASSPORT"
742
768
  ).required("Type is required"),
743
- visits: yup10.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Visits").typeError("Visits must be a number").integer("Visits must be a whole number").min(1, "Visits must be at least 1").required("Visits is required")
769
+ visits: yup11.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Visits").typeError("Visits must be a number").integer("Visits must be a whole number").min(1, "Visits must be at least 1").required("Visits is required")
744
770
  }).nullable().defined("Coupon option is required");
745
- var couponOptionSchema = yup10.lazy((value) => {
771
+ var couponOptionSchema = yup11.lazy((value) => {
746
772
  const type = value?.type;
747
773
  if (type === "MARKET_VISIT" /* MARKET_VISIT */) {
748
774
  return couponMarketVisitOptionSchema;
@@ -752,16 +778,16 @@ var couponOptionSchema = yup10.lazy((value) => {
752
778
  }
753
779
  return couponPurchaseOptionSchema;
754
780
  });
755
- var couponVendorProductSchema = yup10.object().shape({
756
- couponId: yup10.string().label("Coupon").trim().required("Coupon is required"),
757
- productId: yup10.string().label("Product").trim().required("Product is required"),
758
- vendorCouponId: yup10.string().label("Vendor Coupon").trim().nullable().optional(),
759
- vendorId: yup10.string().label("Vendor").trim().required("Vendor is required")
781
+ var couponVendorProductSchema = yup11.object().shape({
782
+ couponId: yup11.string().label("Coupon").trim().required("Coupon is required"),
783
+ productId: yup11.string().label("Product").trim().required("Product is required"),
784
+ vendorCouponId: yup11.string().label("Vendor Coupon").trim().nullable().optional(),
785
+ vendorId: yup11.string().label("Vendor").trim().required("Vendor is required")
760
786
  });
761
787
  var createCouponSchema = ({
762
788
  enforceFutureStartDate
763
789
  }) => {
764
- let startDateSchema = yup10.date().label("Start Date").typeError("Start date is required").required("Start date is required");
790
+ let startDateSchema = yup11.date().label("Start Date").typeError("Start date is required").required("Start date is required");
765
791
  if (enforceFutureStartDate) {
766
792
  startDateSchema = startDateSchema.test(
767
793
  "is-future-date",
@@ -772,11 +798,11 @@ var createCouponSchema = ({
772
798
  }
773
799
  );
774
800
  }
775
- return yup10.object().shape({
776
- couponDescription: yup10.string().label("Description").trim().required("Description is required"),
801
+ return yup11.object().shape({
802
+ couponDescription: yup11.string().label("Description").trim().required("Description is required"),
777
803
  couponOption: couponOptionSchema,
778
- couponVendorProducts: yup10.array().of(couponVendorProductSchema).optional(),
779
- endDate: yup10.date().label("End Date").typeError("End date is required").required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
804
+ couponVendorProducts: yup11.array().of(couponVendorProductSchema).optional(),
805
+ endDate: yup11.date().label("End Date").typeError("End date is required").required("End date is required").test("is-future-date", "End date must be in the future", (value) => {
780
806
  if (!value) return false;
781
807
  return new Date(value) > /* @__PURE__ */ new Date();
782
808
  }).when("startDate", {
@@ -791,8 +817,8 @@ var createCouponSchema = ({
791
817
  }
792
818
  )
793
819
  }),
794
- resourceId: yup10.string().label("Resource ID").trim().required("Resource ID is required"),
795
- resourceType: yup10.mixed().oneOf(
820
+ resourceId: yup11.string().label("Resource ID").trim().required("Resource ID is required"),
821
+ resourceType: yup11.mixed().oneOf(
796
822
  Object.values(EnumResourceType),
797
823
  "Resource type must be a valid EnumResourceType"
798
824
  ).required("Resource type is required"),
@@ -1643,12 +1669,12 @@ import React7 from "react";
1643
1669
  import { useForm as useForm12 } from "react-hook-form";
1644
1670
 
1645
1671
  // src/yupSchema/contactUs.ts
1646
- import * as yup11 from "yup";
1647
- var contactUsSchema = yup11.object().shape({
1672
+ import * as yup12 from "yup";
1673
+ var contactUsSchema = yup12.object().shape({
1648
1674
  email: emailRequiredSchema,
1649
- firstName: yup11.string().label("First Name").required("First name is required"),
1650
- lastName: yup11.string().label("Last Name").required("Last name is required"),
1651
- message: yup11.string().label("Message").required("Message is required")
1675
+ firstName: yup12.string().label("First Name").required("First name is required"),
1676
+ lastName: yup12.string().label("Last Name").required("Last name is required"),
1677
+ message: yup12.string().label("Message").required("Message is required")
1652
1678
  });
1653
1679
 
1654
1680
  // src/hooks/useContactUsForm.ts
@@ -2004,15 +2030,15 @@ import { useEffect as useEffect8 } from "react";
2004
2030
  import { useForm as useForm17 } from "react-hook-form";
2005
2031
 
2006
2032
  // src/yupSchema/school.ts
2007
- import * as yup12 from "yup";
2008
- var schoolSchema = yup12.object().shape({
2009
- active: yup12.boolean().required("Active is required"),
2033
+ import * as yup13 from "yup";
2034
+ var schoolSchema = yup13.object().shape({
2035
+ active: yup13.boolean().required("Active is required"),
2010
2036
  contactDetails: contactDetailsSchema,
2011
2037
  location: locationSchema,
2012
- name: yup12.string().trim().required("Name is required"),
2013
- region: yup12.string().trim().required("Region is required"),
2014
- socialMedia: yup12.array().of(socialMediaSchema).nullable().default(null),
2015
- studentCount: yup12.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Student Count").nullable().typeError("Student count must be a number").min(
2038
+ name: yup13.string().trim().required("Name is required"),
2039
+ region: yup13.string().trim().required("Region is required"),
2040
+ socialMedia: yup13.array().of(socialMediaSchema).nullable().default(null),
2041
+ studentCount: yup13.number().transform((_, originalValue) => toOptionalNumber(originalValue)).label("Student Count").nullable().typeError("Student count must be a number").min(
2016
2042
  SCHOOL_MIN_STUDENT_COUNT,
2017
2043
  `Student count must be at least ${SCHOOL_MIN_STUDENT_COUNT}`
2018
2044
  ).required("Student count is required").test("no-leading-zeros", "", noLeadingZeros("Student Count"))
@@ -2107,29 +2133,29 @@ import { useEffect as useEffect9 } from "react";
2107
2133
  import { useForm as useForm18 } from "react-hook-form";
2108
2134
 
2109
2135
  // src/yupSchema/affiliate.ts
2110
- import * as yup13 from "yup";
2111
- var affiliateContactDetailsSchema = yup13.object({
2112
- mobilePhone: yup13.string().trim().required("Mobile phone is required").test(
2136
+ import * as yup14 from "yup";
2137
+ var affiliateContactDetailsSchema = yup14.object({
2138
+ mobilePhone: yup14.string().trim().required("Mobile phone is required").test(
2113
2139
  "mobile-phone",
2114
2140
  "Mobile must start with 02 and be 9\u201311 digits",
2115
2141
  (value) => mobileRegex.test(value)
2116
2142
  )
2117
2143
  });
2118
- var bankAccountDetailsSchema = yup13.object({
2119
- accountHolderName: yup13.string().required("Account holder name is required"),
2120
- accountNumber: yup13.string().required("Account number is required for bank transfer").matches(
2144
+ var bankAccountDetailsSchema = yup14.object({
2145
+ accountHolderName: yup14.string().required("Account holder name is required"),
2146
+ accountNumber: yup14.string().required("Account number is required for bank transfer").matches(
2121
2147
  nzBankAccountRegex,
2122
2148
  "Account number must be in format: XX-XXXX-XXXXXXX-XX"
2123
2149
  ).trim()
2124
2150
  });
2125
- var affiliateSchema = yup13.object().shape({
2151
+ var affiliateSchema = yup14.object().shape({
2126
2152
  bankAccountDetails: bankAccountDetailsSchema.required(
2127
2153
  "Bank account details are required"
2128
2154
  ),
2129
2155
  contactDetails: affiliateContactDetailsSchema.required(
2130
2156
  "Contact details are required"
2131
2157
  ),
2132
- irdNumber: yup13.string().trim().required("IRD number is required").matches(
2158
+ irdNumber: yup14.string().trim().required("IRD number is required").matches(
2133
2159
  nzIrdNumberRegex,
2134
2160
  "IRD number must be in format: XXX-XXX-XX or XXX-XXX-XXX"
2135
2161
  ).test(
@@ -2138,11 +2164,11 @@ var affiliateSchema = yup13.object().shape({
2138
2164
  (value) => !!value && isValidIrdNumber(value)
2139
2165
  ),
2140
2166
  location: locationSchema.required("Location is required"),
2141
- participantType: yup13.mixed().oneOf(
2167
+ participantType: yup14.mixed().oneOf(
2142
2168
  Object.values(EnumAffiliateParticipantType),
2143
2169
  "Please select a valid participant type"
2144
2170
  ).required("Participant type is required"),
2145
- socialMedia: yup13.array().of(socialMediaSchema).nullable().default(null)
2171
+ socialMedia: yup14.array().of(socialMediaSchema).nullable().default(null)
2146
2172
  });
2147
2173
 
2148
2174
  // src/hooks/useAffiliateForm.ts