@timardex/cluemart-shared 1.5.741 → 1.5.743

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 (57) hide show
  1. package/dist/{ad-CqfSmtG_.d.ts → ad-D3RF-B6B.d.ts} +1 -1
  2. package/dist/{ad-sgD-lSbO.d.mts → ad-DQV7gLkZ.d.mts} +1 -1
  3. package/dist/{chunk-7VNXO63T.mjs → chunk-GSOQZF6M.mjs} +1 -1
  4. package/dist/chunk-GSOQZF6M.mjs.map +1 -0
  5. package/dist/{chunk-L5BYCXXP.mjs → chunk-IMQU3E2F.mjs} +2 -2
  6. package/dist/{chunk-VPYYAF3L.mjs → chunk-KZLKBUMF.mjs} +3 -3
  7. package/dist/chunk-KZLKBUMF.mjs.map +1 -0
  8. package/dist/{chunk-3AI2ROPT.mjs → chunk-TIXEG66V.mjs} +19 -1
  9. package/dist/chunk-TIXEG66V.mjs.map +1 -0
  10. package/dist/{chunk-7JDAKGGH.mjs → chunk-W2VBRPCV.mjs} +2 -2
  11. package/dist/{contactUs-DA3p41Uq.d.ts → contactUs-Cx5VP74u.d.ts} +1 -1
  12. package/dist/{contactUs-B6lQQq-x.d.mts → contactUs-nkrkwqAR.d.mts} +1 -1
  13. package/dist/formFields/index.cjs.map +1 -1
  14. package/dist/formFields/index.d.mts +1 -1
  15. package/dist/formFields/index.d.ts +1 -1
  16. package/dist/formFields/index.mjs +3 -3
  17. package/dist/{global-BEUzBSyY.d.mts → global-BqC8u5sn.d.mts} +281 -1
  18. package/dist/{global-585slmSH.d.ts → global-DugYyRyU.d.ts} +281 -1
  19. package/dist/graphql/index.cjs +18 -0
  20. package/dist/graphql/index.cjs.map +1 -1
  21. package/dist/graphql/index.d.mts +3 -4
  22. package/dist/graphql/index.d.ts +3 -4
  23. package/dist/graphql/index.mjs +1 -1
  24. package/dist/hooks/index.cjs +18 -0
  25. package/dist/hooks/index.cjs.map +1 -1
  26. package/dist/hooks/index.d.mts +3 -4
  27. package/dist/hooks/index.d.ts +3 -4
  28. package/dist/hooks/index.mjs +5 -5
  29. package/dist/index.cjs +19 -1
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.mts +914 -909
  32. package/dist/index.d.ts +914 -909
  33. package/dist/index.mjs +19 -1
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/{resourceActivities-CZqXBve8.d.mts → resourceActivities-BA_feTbb.d.mts} +1 -1
  36. package/dist/{resourceActivities-CjJdhVR7.d.ts → resourceActivities-CEixbvCy.d.ts} +1 -1
  37. package/dist/sharing/index.cjs.map +1 -1
  38. package/dist/sharing/index.d.mts +1 -1
  39. package/dist/sharing/index.d.ts +1 -1
  40. package/dist/sharing/index.mjs +3 -3
  41. package/dist/types/index.cjs.map +1 -1
  42. package/dist/types/index.d.mts +5 -6
  43. package/dist/types/index.d.ts +5 -6
  44. package/dist/types/index.mjs +1 -1
  45. package/dist/utils/index.cjs +1 -1
  46. package/dist/utils/index.cjs.map +1 -1
  47. package/dist/utils/index.d.mts +1 -2
  48. package/dist/utils/index.d.ts +1 -2
  49. package/dist/utils/index.mjs +2 -2
  50. package/package.json +1 -1
  51. package/dist/chunk-3AI2ROPT.mjs.map +0 -1
  52. package/dist/chunk-7VNXO63T.mjs.map +0 -1
  53. package/dist/chunk-VPYYAF3L.mjs.map +0 -1
  54. package/dist/post-CdLrXuH1.d.mts +0 -279
  55. package/dist/post-D6n4Vszs.d.ts +0 -279
  56. /package/dist/{chunk-L5BYCXXP.mjs.map → chunk-IMQU3E2F.mjs.map} +0 -0
  57. /package/dist/{chunk-7JDAKGGH.mjs.map → chunk-W2VBRPCV.mjs.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -322,1025 +322,1030 @@ type EventInfoType = Omit<EventInfoFormData, "_id"> & {
322
322
  active?: boolean;
323
323
  };
324
324
 
325
- type VendorCalendarData = Omit<ResourceDetails, "dateTime" | "eventStatus"> & {
326
- dateTime: DateTimeType;
327
- };
328
- type VendorProductList = {
329
- description?: string | null;
330
- name: string;
331
- price: number;
332
- priceUnit: string;
333
- productGroups?: string[] | null;
334
- };
335
- interface VendorFormData extends BaseResourceTypeFormData {
336
- availability?: {
337
- school: boolean;
338
- private: boolean;
339
- corporate: boolean;
340
- };
341
- claimed?: boolean;
342
- calendar?: {
343
- active?: boolean | null;
344
- calendarData?: VendorCalendarData[] | null;
345
- } | null;
346
- categories: Category[];
347
- foodTruck: boolean;
348
- products?: {
349
- active?: boolean | null;
350
- productsList?: VendorProductList[] | null;
351
- } | null;
352
- unregisteredVendorId?: string | null;
353
- vendorType: EnumVendorType;
354
- }
355
- type CreateVendorFormData = CreateFormData<VendorFormData>;
356
- type VendorAttributes = {
357
- details?: string | null;
358
- isRequired: boolean;
359
- };
360
- type VendorInfoFormData = {
361
- _id?: string;
362
- compliance?: {
363
- liabilityInsurance: boolean;
364
- foodBeverageLicense: boolean;
365
- };
366
- documents?: ResourceImageType[] | null;
367
- documentsUpload?: ResourceImageType[] | null;
368
- product: {
369
- foodFlavors: EnumFoodFlavor[];
370
- packaging: string[];
371
- priceRange: {
372
- max: string;
373
- min: string;
374
- };
375
- producedIn: string[];
376
- };
377
- requirements?: {
378
- electricity: VendorAttributes;
379
- gazebo: VendorAttributes;
380
- table: VendorAttributes;
381
- };
382
- stallInfo: {
383
- size: {
384
- depth: string;
385
- width: string;
386
- };
387
- };
388
- vendorId: string;
389
- };
390
- type CreateVendorInfoFormData = CreateFormData<VendorInfoFormData>;
391
- interface VendorType extends BaseResourceType {
392
- availability?: {
393
- school: boolean;
394
- private: boolean;
395
- corporate: boolean;
396
- };
397
- claimed: boolean;
398
- calendar: VendorFormData["calendar"] | null;
399
- categories: VendorFormData["categories"];
400
- foodTruck: boolean;
401
- products: VendorFormData["products"] | null;
402
- vendorInfoId: string;
403
- vendorType: EnumVendorType;
404
- relations: {
405
- relationId: string | null;
406
- relationDates: RelationDate[] | null;
407
- }[] | null;
408
- unregisteredVendorId?: string | null;
325
+ declare enum EnumGameType {
326
+ DAILY_CLUE = "dailyClue",
327
+ MINI_QUIZ = "miniQuiz",
328
+ ODD_ONE_OUT = "oddOneOut"
409
329
  }
410
- type VendorInfoType = Omit<VendorInfoFormData, "_id" | "documentsUpload"> & {
411
- _id: string;
412
- active?: boolean;
330
+ type GameDate = {
331
+ startDate: Date;
332
+ endDate: Date;
413
333
  };
414
- interface UnregisteredVendorFormData {
415
- categoryIds: string[];
416
- dateTime: DateTimeType[];
417
- email?: string | null;
418
- inviterId: string;
419
- name: string;
420
- region: string;
421
- }
422
- type CreateUnregisteredVendorFormData = CreateFormData<UnregisteredVendorFormData>;
423
- type UnregisteredVendorInvitationType = Pick<UnregisteredVendorFormData, "dateTime" | "inviterId">;
424
- type UnregisteredVendorType = Omit<UnregisteredVendorFormData, "dateTime" | "inviterId"> & {
425
- _id: string;
426
- active: boolean;
427
- claimed: boolean;
428
- claimedAt?: Date;
429
- claimedByUserId?: string;
430
- createdAt: Date;
431
- deletedAt: Date | null;
432
- invitations: UnregisteredVendorInvitationType[];
433
- updatedAt: Date | null;
334
+ declare const gameTypeToDisplayName: Record<EnumGameType, string>;
335
+ type GlobalGameData = {
336
+ points: number;
337
+ streak: number;
434
338
  };
435
339
 
436
- declare const PROMO_CODE_PREFIX = "CM-";
437
- type PromoCodeType = `${typeof PROMO_CODE_PREFIX}${string}`;
438
- type Nullable<T> = {
439
- [K in keyof T]: T[K] | null | undefined;
440
- };
441
- type DeviceInfo = {
442
- appBuildNumber: string;
443
- appId: string;
444
- appVersion: string;
445
- brand: string;
446
- deviceName: string;
447
- installationId: string;
448
- manufacturer: string;
449
- modelName: string;
450
- osName: string;
451
- osVersion: string;
452
- timestamp: string;
453
- };
454
- type TermsAgreement = DeviceInfo & {
455
- termVersion: string;
456
- };
457
- type ResourceContactDetailsType = {
458
- email?: string | null;
459
- landlinePhone?: string | null;
460
- mobilePhone?: string | null;
461
- };
462
- type ResourceImageType = {
463
- active?: boolean | null;
464
- source: string;
465
- title: string;
466
- };
467
- type SocialMediaType = {
468
- name?: EnumSocialMedia;
469
- link?: string;
470
- };
471
- type UserLicenceType = {
472
- expiryDate: Date;
473
- issuedDate: Date;
474
- licenceType: EnumUserLicence;
475
- prevLicenceType?: EnumUserLicence | null;
476
- };
477
- type AssociateType = {
478
- email: string;
479
- resourceId: string;
480
- resourceType: EnumResourceType;
481
- licence: UserLicenceType;
482
- };
483
- type OwnerType = {
484
- email: string;
485
- userId: string;
340
+ declare const gameScreenIdentifierList: readonly [{
341
+ readonly clue: "Where your actions turn into a timeline.";
342
+ readonly id: "activities";
343
+ readonly match: "/profile/activities";
344
+ }, {
345
+ readonly clue: "Where conversations happen without speaking.";
346
+ readonly id: "chat";
347
+ readonly match: "/profile/chat";
348
+ }, {
349
+ readonly clue: "The place to redefine who you are.";
350
+ readonly id: "edit-profile";
351
+ readonly match: "/profile/edit-profile";
352
+ }, {
353
+ readonly clue: "A single moment worth showing up for.";
354
+ readonly id: "single-event";
355
+ readonly match: RegExp;
356
+ }, {
357
+ readonly clue: "What’s happening around you, right now.";
358
+ readonly id: "events-near-me";
359
+ readonly match: "/events/events-near-me";
360
+ }, {
361
+ readonly clue: "Where events appear as pins on a map.";
362
+ readonly id: "events-map";
363
+ readonly match: "/events/events-map";
364
+ }, {
365
+ readonly clue: "A collection of events worth attending.";
366
+ readonly id: "events";
367
+ readonly match: "/events";
368
+ }, {
369
+ readonly clue: "What’s happening in a wider area — not just nearby.";
370
+ readonly id: "events-region";
371
+ readonly match: RegExp;
372
+ }, {
373
+ readonly clue: "Where fun becomes a challenge.";
374
+ readonly id: "games";
375
+ readonly match: "/games";
376
+ }, {
377
+ readonly clue: "Your starting point for everything.";
378
+ readonly id: "home";
379
+ readonly match: "/";
380
+ }, {
381
+ readonly clue: "Where the app whispers what you shouldn’t miss.";
382
+ readonly id: "notifications";
383
+ readonly match: "/notifications";
384
+ }, {
385
+ readonly clue: "Where you fine-tune your experience.";
386
+ readonly id: "options";
387
+ readonly match: "/options";
388
+ }, {
389
+ readonly clue: "An organisation or creator supporting the community.";
390
+ readonly id: "single-partner";
391
+ readonly match: RegExp;
392
+ }, {
393
+ readonly clue: "Organisations and creators supporting the community.";
394
+ readonly id: "partners";
395
+ readonly match: "/partners";
396
+ }, {
397
+ readonly clue: "A single published post in full view.";
398
+ readonly id: "single-visitor-post";
399
+ readonly match: RegExp;
400
+ }, {
401
+ readonly clue: "Your identity, on display.";
402
+ readonly id: "profile";
403
+ readonly match: "/profile";
404
+ }, {
405
+ readonly clue: "One stallholder offering something valuable.";
406
+ readonly id: "single-vendor";
407
+ readonly match: RegExp;
408
+ }, {
409
+ readonly clue: "Where every stallholder waits under the right category.";
410
+ readonly id: "vendors";
411
+ readonly match: "/vendors";
412
+ }, {
413
+ readonly clue: "Where you browse articles and posts from around the platform.";
414
+ readonly id: "visitors";
415
+ readonly match: "/visitors";
416
+ }];
417
+ type GamePlacement = (typeof gameScreenIdentifierList)[number]["id"];
418
+ type GamePlacementClue = (typeof gameScreenIdentifierList)[number]["clue"];
419
+ type DailyClueBaseGame = {
420
+ gameDate: GameDate;
421
+ gameSolution: string;
486
422
  };
487
- interface BaseResourceTypeFormData {
488
- _id?: string;
489
- active: boolean;
490
- associates: AssociateType[] | null;
491
- contactDetails: ResourceContactDetailsType | null;
492
- cover: ResourceImageType;
493
- coverUpload?: ResourceImageType | null;
494
- description: string;
495
- images?: ResourceImageType[] | null;
496
- imagesUpload?: ResourceImageType[] | null;
497
- logo?: ResourceImageType | null;
498
- logoUpload?: ResourceImageType | null;
499
- name: string;
500
- owner?: OwnerType | null;
501
- promoCodes?: PromoCodeType[] | null;
502
- region: string;
503
- socialMedia: SocialMediaType[] | null;
504
- termsAgreement?: TermsAgreement | null;
505
- }
506
- type PosterUsageType = {
507
- month: string;
508
- count: number;
423
+ type DailyClueGameData = GlobalGameData & {
424
+ gameFields: DailyClueBaseGame;
425
+ lastFoundDate: Date | null;
426
+ letterInfo: {
427
+ collected: string[] | null;
428
+ solutionShuffled: string[];
429
+ todaysClue: GamePlacementClue | null;
430
+ todaysLetter: string | null;
431
+ todaysPlacement: GamePlacement | null;
432
+ };
509
433
  };
510
- type BaseResourceType = Omit<BaseResourceTypeFormData, "_id" | "coverUpload" | "imagesUpload" | "logoUpload"> & {
511
- _id: string;
512
- adIds?: string[] | null;
513
- createdAt: Date;
514
- deletedAt: Date | null;
515
- posterUsage?: PosterUsageType | null;
516
- rating?: number | null;
517
- reviewCount?: number | null;
518
- updatedAt: Date | null;
434
+
435
+ type PuzzleAnswer = {
436
+ answerId: string;
437
+ answer: string;
438
+ correct: boolean;
519
439
  };
520
- type LocationGeoType = {
521
- coordinates: number[];
522
- type: "Point";
440
+ type PuzzleQuestion = {
441
+ answers: PuzzleAnswer[];
442
+ question: string;
443
+ questionId: string;
523
444
  };
524
- type LocationType = {
525
- city: string;
526
- country: string;
527
- fullAddress: string;
528
- geo: LocationGeoType;
529
- latitude: number;
530
- longitude: number;
531
- region: string;
445
+ /**
446
+ * Stores only the answerId and the questionId of the selected answer.
447
+ */
448
+ type PuzzleAnsweredQuestion = {
449
+ selectedAnswerId: string;
450
+ questionId: string;
532
451
  };
533
- type DateTimeType = {
534
- dateStatus: EnumEventDateStatus;
535
- endDate: string;
536
- endTime: string;
537
- startDate: string;
538
- startTime: string;
452
+ type PuzzleBaseGame = {
453
+ questions: PuzzleQuestion[];
539
454
  };
540
- type Region = {
541
- latitude: number;
542
- latitudeDelta: number;
543
- longitude: number;
544
- longitudeDelta: number;
455
+ type PuzzleGameData = GlobalGameData & {
456
+ gameFields: PuzzleBaseGame;
457
+ /**
458
+ * Stores user answers only.
459
+ * Never store correctness from client.
460
+ */
461
+ answeredQuestions: PuzzleAnsweredQuestion[];
545
462
  };
546
- type ResourceDetails = {
547
- dateTime: DateTimeType[] | null;
548
- description: string | null;
549
- eventStatus?: EventStatusType | null;
550
- location: LocationType | null;
551
- resourceCover: ResourceImageType | null;
552
- resourceId: string;
553
- resourceLogo: ResourceImageType | null;
554
- resourceName: string;
555
- resourceType: EnumResourceType;
463
+
464
+ type BaseGameMap = {
465
+ [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;
466
+ [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;
467
+ [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;
556
468
  };
557
- type GeocodeLocation = Pick<LocationType, "latitude" | "longitude">;
558
- type EventStatusType = {
559
- claimed: boolean;
560
- eventType: EnumEventType;
561
- googlePlaceId?: string | null;
469
+ type BaseGameType = {
470
+ gameType: EnumGameType;
471
+ gameTypeId: string;
472
+ gameTitle: string;
473
+ } & {
474
+ [K in keyof BaseGameMap]?: BaseGameMap[K] | null;
562
475
  };
563
- interface FormField {
564
- disabled?: boolean;
565
- helperText?: string;
566
- isTextArea?: boolean;
567
- keyboardType?: "default" | "email-address" | "number-pad" | "url" | "decimal-pad" | "phone-pad";
568
- name: string;
569
- placeholder: string;
570
- required?: boolean;
571
- secureTextEntry?: boolean;
572
- }
573
- interface FormDateField {
574
- dateMode: "date" | "time";
575
- helperText?: string;
576
- name: "endDate" | "endTime" | "startDate" | "startTime";
577
- placeholder: string;
578
- }
579
- interface SubcategoryItems {
580
- id: string;
581
- name: string;
582
- description?: string | null;
583
- }
584
- interface Subcategory {
585
- id: string;
586
- name: string;
587
- items?: SubcategoryItems[] | null;
588
- }
589
- interface Category {
590
- color?: string | null;
591
- description?: string | null;
592
- id: string;
593
- name: string;
594
- subcategories: Subcategory[];
476
+ declare enum EnumGameStatus {
477
+ GAME_COMPLETED = "GAME_COMPLETED",
478
+ GAME_IN_PROGRESS = "GAME_IN_PROGRESS",
479
+ GAME_LEFT = "GAME_LEFT",
480
+ GAME_STARTED = "GAME_STARTED"
595
481
  }
596
- type OptionItem = {
597
- value: string;
598
- label: string;
482
+ type GameHistory = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
483
+ createdAt: Date;
484
+ gameDate: GameDate;
485
+ gameStatus: EnumGameStatus;
486
+ /** Per-event delta. Not persisted for overallGamePoints (computed at read time). */
487
+ pointsEarned: number;
488
+ /** Running total for this game instance; computed at read time, not stored in Mongo. */
489
+ overallGamePoints?: number;
599
490
  };
600
- type ImageObjectType = {
601
- uri: string;
602
- type: string;
603
- name: string;
491
+ type GameDataMap = {
492
+ [EnumGameType.DAILY_CLUE]: DailyClueGameData;
493
+ [EnumGameType.MINI_QUIZ]: PuzzleGameData;
494
+ [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
604
495
  };
605
- interface ResourceConnectionsType {
606
- events: EventListItemType[] | null;
607
- vendors: VendorType[] | null;
608
- }
609
- interface CreateFormData<T extends FieldValues> {
610
- control: Control<T, any>;
611
- fields: T;
612
- formState: FormState<T>;
613
- handleSubmit: UseFormHandleSubmit<T, any>;
614
- reset: UseFormReset<T>;
615
- setValue: UseFormSetValue<T>;
616
- watch: UseFormWatch<T>;
617
- getValues: UseFormGetValues<T>;
618
- }
619
- interface UseGetResourcesByRegionOptions {
620
- onlyClaimed?: boolean;
621
- limit?: number;
622
- offset?: number;
623
- }
624
-
625
- declare const vendorBasicInfoFields: FormField[];
626
- declare const vendorFullAddress: FormField;
627
- declare const vendorStartDateFields: FormDateField[];
628
- declare const vendorEndDateFields: FormDateField[];
629
- declare const vendorAvailability: FormField[];
630
- declare const vendorLocationDescription: FormField;
631
- declare const vendorMenuFields: FormField[];
632
- declare const productLabelGroups: {
633
- category: string;
634
- items: {
635
- abbreviation: string;
636
- fullName: string;
637
- }[];
638
- }[];
639
- declare const priceUnits: OptionItem[];
640
-
641
- interface AdminUpdateResourceType {
642
- active: boolean;
643
- resourceId: string;
644
- resourceType: EnumResourceType;
645
- }
646
-
647
- type UserFormData = {
648
- _id?: string;
649
- active: boolean;
650
- avatar?: ResourceImageType | null;
651
- avatarUpload?: ResourceImageType | null;
652
- confirmPassword?: string | null;
653
- email: string;
654
- firstName: string;
655
- isTester: boolean;
656
- lastName: string;
657
- location?: LocationType | null;
658
- password?: string | null;
659
- platform?: EnumOSPlatform;
660
- preferredRegion: string;
661
- role: EnumUserRole;
662
- termsAgreement?: TermsAgreement | null;
496
+ type GameDataType = {
497
+ [K in keyof GameDataMap]?: GameDataMap[K] | null;
663
498
  };
664
- type CreateUserFormData = CreateFormData<UserFormData>;
665
- type UserActivityEvent = {
666
- resourceId: string;
667
- dateTime: DateTimeType;
499
+ type GameType = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
500
+ _id: string;
501
+ active: boolean;
502
+ createdAt: Date;
503
+ gameData: GameDataType;
504
+ gameHistory: GameHistory[] | null;
505
+ updatedAt: Date | null;
668
506
  };
669
- type StripeSubscription = {
670
- customerId?: string;
671
- subscriptionId?: string;
672
- status?: EnumSubscriptionStatus;
673
- currentPlan?: EnumUserLicence;
674
- startDate?: string;
675
- endDate?: string;
507
+ type GameDocType = {
508
+ _id: string;
509
+ active: boolean;
510
+ createdAt: Date;
511
+ deletedAt: Date | null;
512
+ games: GameType[] | null;
513
+ owner: OwnerType;
514
+ points: number;
515
+ updatedAt: Date | null;
676
516
  };
677
- type SubscriptionStatusData = {
678
- subscriptionId: string | null;
679
- status: EnumSubscriptionStatus;
680
- priceId: string | null;
681
- currentPlan: EnumUserLicence | null;
517
+ type GameLeaderboard = {
518
+ gameHistory: GameHistory[] | null;
519
+ overallPoints: number;
520
+ owner: OwnerType;
682
521
  };
683
- type SubscriptionPricingData = {
684
- basePrice: number;
685
- discountedPrice: number | null;
686
- hasDiscount: boolean;
687
- discountPercent: number | null;
688
- discountAmount: number | null;
689
- currency: string;
690
- formattedBasePrice: string;
691
- formattedDiscountedPrice: string | null;
522
+
523
+ declare enum EnumPostType {
524
+ MARKET_FACES = "market_faces",
525
+ CLUE_BITES = "clue_bites",
526
+ PLAY_AND_WIN = "play_and_win"
527
+ }
528
+ declare enum EnumPostContentType {
529
+ GAME = "game",
530
+ IMAGE = "image",
531
+ LIST = "list",
532
+ TEXTAREA = "textarea",
533
+ VIDEO = "video"
534
+ }
535
+ type PostFileInput = {
536
+ source: File;
537
+ title?: string;
692
538
  };
693
- type SubscriptionPlanData = {
694
- name: string;
695
- description: string | null;
696
- licenceType: EnumUserLicence;
697
- billingPeriod: string;
698
- stripeProductId: string;
699
- stripePriceId: string;
700
- isEligibleForDiscount: boolean;
701
- pricing: SubscriptionPricingData;
539
+ type PostContentTextarea = {
540
+ textarea: {
541
+ title?: string;
542
+ data: string;
543
+ };
702
544
  };
703
- type SubscriptionPlansResponse = {
704
- plans: SubscriptionPlanData[];
705
- isNewUser: boolean;
706
- isTester: boolean;
707
- appliedDiscountType: string;
545
+ type PostContentImage = {
546
+ images: ResourceImageType[] | null;
547
+ imagesUpload?: PostFileInput[] | null;
708
548
  };
709
- type UserActivity = {
710
- favourites: {
711
- events: string[];
712
- vendors: string[];
713
- partners: string[];
714
- };
715
- going: {
716
- events: UserActivityEvent[];
717
- };
718
- interested: {
719
- events: UserActivityEvent[];
549
+ type PostContentVideo = {
550
+ video: {
551
+ source: string;
552
+ title?: string;
720
553
  };
721
- present: {
722
- events: UserActivityEvent[];
554
+ };
555
+ type PostContentList = {
556
+ list: {
557
+ title?: string;
558
+ items: {
559
+ text: string;
560
+ }[];
723
561
  };
724
562
  };
725
- type RedeemRewardInput = {
726
- reward: EnumReward;
563
+ type PostContentGame = {
564
+ game: BaseGameType;
727
565
  };
728
- type RedeemRewardResponse = {
729
- userId: string;
730
- message: string;
566
+ type PostContentData = PostContentGame | PostContentTextarea | PostContentImage | PostContentVideo | PostContentList;
567
+ type PostContentFormData = {
568
+ contentData?: PostContentData | null;
569
+ contentOrder?: number | null;
570
+ contentType?: EnumPostContentType | null;
731
571
  };
732
- type RedeemedReward = {
733
- name: EnumReward;
734
- pointsUsed: number;
735
- redeemedAt: Date;
572
+ interface PostFormData {
573
+ active: boolean;
574
+ caption: string;
575
+ content: PostContentFormData[];
576
+ cover?: ResourceImageType | null;
577
+ coverUpload?: PostFileInput | null;
578
+ postType: EnumPostType;
579
+ resource?: {
580
+ resourceId: string;
581
+ resourceType: EnumResourceType;
582
+ resourceRegion: string;
583
+ } | null;
584
+ tags?: string[] | null;
585
+ title: string;
586
+ notifyUsers?: boolean | null;
587
+ }
588
+ type CreatePostFormData = CreateFormData<PostFormData>;
589
+ type PostContentType = Omit<PostContentFormData, "contentData"> & {
590
+ contentData: Omit<PostContentData, "imagesUpload">;
736
591
  };
737
- type UserType = Omit<UserFormData, "confirmPassword" | "avatarUpload" | "_id"> & {
592
+ type PostType = Omit<PostFormData, "content" | "coverUpload"> & {
738
593
  _id: string;
739
- associates?: AssociateType[] | null;
594
+ content: PostContentType[];
740
595
  createdAt: Date;
741
596
  deletedAt: Date | null;
742
- events: string[] | null;
743
- game: string | null;
744
- licences: UserLicenceType[] | null;
745
- overallPoints: number | null;
746
- partner: string | null;
747
- promoCodes?: PromoCodeType[] | null;
748
- redeemedRewards?: RedeemedReward[] | null;
749
- refreshToken: string | null;
750
- school: string | null;
751
- stripe?: StripeSubscription;
752
597
  updatedAt: Date | null;
753
- userActivity: UserActivity | null;
754
- vendor: string | null;
755
598
  };
756
- type SafeUserType = Omit<UserType, "password" | "refreshToken">;
757
- type ResourceByUser = {
758
- _id: string;
759
- active: boolean;
760
- logo: string;
599
+
600
+ type VendorCalendarData = Omit<ResourceDetails, "dateTime" | "eventStatus"> & {
601
+ dateTime: DateTimeType;
602
+ };
603
+ type VendorProductList = {
604
+ description?: string | null;
761
605
  name: string;
762
- resourceType: EnumResourceType;
606
+ price: number;
607
+ priceUnit: string;
608
+ productGroups?: string[] | null;
763
609
  };
764
-
765
- declare enum EnumVerificationType {
766
- REGISTER = "register",
767
- RESET_PASSWORD = "resetPassword"
610
+ interface VendorFormData extends BaseResourceTypeFormData {
611
+ availability?: {
612
+ school: boolean;
613
+ private: boolean;
614
+ corporate: boolean;
615
+ };
616
+ claimed?: boolean;
617
+ calendar?: {
618
+ active?: boolean | null;
619
+ calendarData?: VendorCalendarData[] | null;
620
+ } | null;
621
+ categories: Category[];
622
+ foodTruck: boolean;
623
+ products?: {
624
+ active?: boolean | null;
625
+ productsList?: VendorProductList[] | null;
626
+ } | null;
627
+ unregisteredVendorId?: string | null;
628
+ vendorType: EnumVendorType;
768
629
  }
769
- type LoginFormData = {
770
- email: string;
771
- isAdminPage?: boolean;
772
- password: string;
773
- platform?: EnumOSPlatform;
630
+ type CreateVendorFormData = CreateFormData<VendorFormData>;
631
+ type VendorAttributes = {
632
+ details?: string | null;
633
+ isRequired: boolean;
774
634
  };
775
- type CreateLoginFormData = CreateFormData<LoginFormData>;
776
- type RegisterFormData = {
777
- email: string;
778
- firstName: string;
779
- lastName: string;
780
- password: string;
781
- platform?: EnumOSPlatform;
782
- preferredRegion: string;
783
- promoCode?: PromoCodeType | null;
784
- termsAgreement?: TermsAgreement | null;
635
+ type VendorInfoFormData = {
636
+ _id?: string;
637
+ compliance?: {
638
+ liabilityInsurance: boolean;
639
+ foodBeverageLicense: boolean;
640
+ };
641
+ documents?: ResourceImageType[] | null;
642
+ documentsUpload?: ResourceImageType[] | null;
643
+ product: {
644
+ foodFlavors: EnumFoodFlavor[];
645
+ packaging: string[];
646
+ priceRange: {
647
+ max: string;
648
+ min: string;
649
+ };
650
+ producedIn: string[];
651
+ };
652
+ requirements?: {
653
+ electricity: VendorAttributes;
654
+ gazebo: VendorAttributes;
655
+ table: VendorAttributes;
656
+ };
657
+ stallInfo: {
658
+ size: {
659
+ depth: string;
660
+ width: string;
661
+ };
662
+ };
663
+ vendorId: string;
785
664
  };
786
- type CreateRegisterFormData = CreateFormData<RegisterFormData>;
787
- type RequestPasswordResetFormData = {
788
- email: string;
665
+ type CreateVendorInfoFormData = CreateFormData<VendorInfoFormData>;
666
+ interface VendorType extends BaseResourceType {
667
+ availability?: {
668
+ school: boolean;
669
+ private: boolean;
670
+ corporate: boolean;
671
+ };
672
+ claimed: boolean;
673
+ calendar: VendorFormData["calendar"] | null;
674
+ categories: VendorFormData["categories"];
675
+ foodTruck: boolean;
676
+ products: VendorFormData["products"] | null;
677
+ vendorInfoId: string;
678
+ vendorType: EnumVendorType;
679
+ relations: {
680
+ relationId: string | null;
681
+ relationDates: RelationDate[] | null;
682
+ }[] | null;
683
+ unregisteredVendorId?: string | null;
684
+ }
685
+ type VendorInfoType = Omit<VendorInfoFormData, "_id" | "documentsUpload"> & {
686
+ _id: string;
687
+ active?: boolean;
789
688
  };
790
- type CreateRequestPasswordResetFormData = CreateFormData<RequestPasswordResetFormData>;
791
- type ResetPasswordFormData = {
792
- confirmPassword: string;
793
- email: string;
794
- password: string;
689
+ interface UnregisteredVendorFormData {
690
+ categoryIds: string[];
691
+ dateTime: DateTimeType[];
692
+ email?: string | null;
693
+ inviterId: string;
694
+ name: string;
695
+ region: string;
696
+ }
697
+ type CreateUnregisteredVendorFormData = CreateFormData<UnregisteredVendorFormData>;
698
+ type UnregisteredVendorInvitationType = Pick<UnregisteredVendorFormData, "dateTime" | "inviterId">;
699
+ type UnregisteredVendorType = Omit<UnregisteredVendorFormData, "dateTime" | "inviterId"> & {
700
+ _id: string;
701
+ active: boolean;
702
+ claimed: boolean;
703
+ claimedAt?: Date;
704
+ claimedByUserId?: string;
705
+ createdAt: Date;
706
+ deletedAt: Date | null;
707
+ invitations: UnregisteredVendorInvitationType[];
708
+ updatedAt: Date | null;
795
709
  };
796
- type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;
797
- type ValidateVerificationTokenFormData = {
798
- email: string;
799
- verificationToken: string;
800
- verificationType?: EnumVerificationType;
710
+
711
+ declare const PROMO_CODE_PREFIX = "CM-";
712
+ type PromoCodeType = `${typeof PROMO_CODE_PREFIX}${string}`;
713
+ type Nullable<T> = {
714
+ [K in keyof T]: T[K] | null | undefined;
715
+ };
716
+ type DeviceInfo = {
717
+ appBuildNumber: string;
718
+ appId: string;
719
+ appVersion: string;
720
+ brand: string;
721
+ deviceName: string;
722
+ installationId: string;
723
+ manufacturer: string;
724
+ modelName: string;
725
+ osName: string;
726
+ osVersion: string;
727
+ timestamp: string;
801
728
  };
802
- type CreateValidateVerificationTokenFormData = CreateFormData<ValidateVerificationTokenFormData>;
803
- type AuthPayloadType = {
804
- message: string;
805
- token: string;
806
- refreshToken: string | null;
807
- user: SafeUserType;
729
+ type TermsAgreement = DeviceInfo & {
730
+ termVersion: string;
808
731
  };
809
- type RefreshTokenPayloadType = {
810
- refreshToken: string;
811
- token: string;
732
+ type ResourceContactDetailsType = {
733
+ email?: string | null;
734
+ landlinePhone?: string | null;
735
+ mobilePhone?: string | null;
812
736
  };
813
-
814
- type ParticipantType = {
815
- active: boolean;
816
- isAssociate?: boolean | null;
817
- userAvatar: string | null;
818
- userEmail: string;
819
- userId: string;
820
- userName: string;
737
+ type ResourceImageType = {
738
+ active?: boolean | null;
739
+ source: string;
740
+ title: string;
821
741
  };
822
- interface ChatMessageInput {
823
- content: string;
824
- replyToMessageId?: string | null;
825
- senderId: string;
826
- }
827
- type ChatMessageReplyPreview = {
828
- senderId: string;
829
- senderName: string;
830
- contentPreview: string;
742
+ type SocialMediaType = {
743
+ name?: EnumSocialMedia;
744
+ link?: string;
831
745
  };
832
- type ChatMessageReaction = {
833
- userId: string;
834
- createdAt: Date;
746
+ type UserLicenceType = {
747
+ expiryDate: Date;
748
+ issuedDate: Date;
749
+ licenceType: EnumUserLicence;
750
+ prevLicenceType?: EnumUserLicence | null;
835
751
  };
836
- type ChatMessageSeen = {
752
+ type AssociateType = {
753
+ email: string;
754
+ resourceId: string;
755
+ resourceType: EnumResourceType;
756
+ licence: UserLicenceType;
757
+ };
758
+ type OwnerType = {
759
+ email: string;
837
760
  userId: string;
838
- seenAt: Date;
839
761
  };
840
- interface ChatMessageType {
762
+ interface BaseResourceTypeFormData {
841
763
  _id?: string;
842
- content: string;
843
- createdAt?: Date;
844
- replyToMessageId?: string | null;
845
- replyPreview?: ChatMessageReplyPreview | null;
846
- likedBy?: ChatMessageReaction[];
847
- senderId: string;
848
- seenBy?: ChatMessageSeen[];
849
- updatedAt?: Date;
850
- }
851
- interface ChatType {
852
- _id: string;
853
764
  active: boolean;
854
- chatDescription?: string | null;
855
- chatName: string;
856
- chatType: EnumChatType;
857
- createdAt: Date;
858
- deletedAt: Date | null;
859
- messages: ChatMessageType[];
860
- participants: ParticipantType[];
861
- region: string | null;
862
- updatedAt: Date | null;
765
+ associates: AssociateType[] | null;
766
+ contactDetails: ResourceContactDetailsType | null;
767
+ cover: ResourceImageType;
768
+ coverUpload?: ResourceImageType | null;
769
+ description: string;
770
+ images?: ResourceImageType[] | null;
771
+ imagesUpload?: ResourceImageType[] | null;
772
+ logo?: ResourceImageType | null;
773
+ logoUpload?: ResourceImageType | null;
774
+ name: string;
775
+ owner?: OwnerType | null;
776
+ promoCodes?: PromoCodeType[] | null;
777
+ region: string;
778
+ socialMedia: SocialMediaType[] | null;
779
+ termsAgreement?: TermsAgreement | null;
863
780
  }
864
- interface ReportChatUser {
781
+ type PosterUsageType = {
782
+ month: string;
783
+ count: number;
784
+ };
785
+ type RelatedPostType = {
786
+ postId: string;
787
+ postType: EnumPostType;
788
+ };
789
+ type BaseResourceType = Omit<BaseResourceTypeFormData, "_id" | "coverUpload" | "imagesUpload" | "logoUpload"> & {
865
790
  _id: string;
866
- chatId: string;
791
+ adIds?: string[] | null;
867
792
  createdAt: Date;
868
- reason: {
869
- reasonType: EnumChatReportReason;
870
- details: string | null;
871
- };
872
- reportedUserId: string;
873
- reporterUserId: string;
874
- resolved: boolean;
793
+ deletedAt: Date | null;
794
+ posterUsage?: PosterUsageType | null;
795
+ rating?: number | null;
796
+ reviewCount?: number | null;
875
797
  updatedAt: Date | null;
876
- }
877
-
878
- type ContactUsFormData = {
879
- email: string;
880
- firstName: string;
881
- lastName: string;
882
- message: string;
798
+ relatedPost?: RelatedPostType | null;
883
799
  };
884
- type CreateContactUsFormData = CreateFormData<ContactUsFormData>;
885
-
886
- interface NotificationDataType {
887
- resourceId: string;
888
- resourceName: string;
889
- resourceType: EnumNotificationResourceType;
890
- }
891
- type NotificationType = {
892
- _id: string;
893
- userId: string;
894
- title: string;
895
- message: string;
896
- isRead: boolean;
897
- type: EnumNotificationType;
898
- data: NotificationDataType | null;
899
- createdAt: Date;
900
- updatedAt: Date;
800
+ type LocationGeoType = {
801
+ coordinates: number[];
802
+ type: "Point";
901
803
  };
902
- type NotificationCount = {
903
- total: number;
904
- unread: number;
804
+ type LocationType = {
805
+ city: string;
806
+ country: string;
807
+ fullAddress: string;
808
+ geo: LocationGeoType;
809
+ latitude: number;
810
+ longitude: number;
811
+ region: string;
905
812
  };
906
- type CreateBulkNotificationInput = {
907
- data: NotificationDataType | null;
908
- message: string;
909
- title: string;
910
- type: EnumNotificationType;
911
- userIds: string[];
813
+ type DateTimeType = {
814
+ dateStatus: EnumEventDateStatus;
815
+ endDate: string;
816
+ endTime: string;
817
+ startDate: string;
818
+ startTime: string;
912
819
  };
913
-
914
- declare const PKG: "@timardex/cluemart-shared";
915
- declare const IMAGE_EXTENSION: ".webp";
916
- /**
917
- * Basenames under the shared images directory — use with `getSharedImagePath` from `@timardex/cluemart-shared/images/node` (Express / Node).
918
- * This object is the single source of poster keys; `posters` is derived from it. Add an image with `IMAGE_EXTENSION` under `src/images/posters/` when adding an entry.
919
- * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
920
- */
921
- declare const posterIds: readonly ["mini-market1", "mini-market2", "mini-market3", "mini-market4", "mini-market5", "poster1", "poster2", "poster3", "poster4"];
922
- declare const posterFiles: { readonly [K in (typeof posterIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
923
- /**
924
- * Basenames for assets under `src/images/clui/` in source; they are copied flat into `dist/images/` (same as posters).
925
- * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
926
- */
927
- declare const cluiIds: readonly ["cluiTui", "sima", "tablas", "telefonos", "ugralos"];
928
- declare const cluiFiles: { readonly [K in (typeof cluiIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
929
- declare const iconIds: readonly ["apple-maps-icon", "facebook", "google-maps-icon", "instagram", "meet", "poll", "tiktok", "tip", "waze-maps-icon", "website", "youtube"];
930
- declare const iconFiles: { readonly [K in (typeof iconIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
931
- declare const badgeIds: readonly ["corporate", "private", "school"];
932
- declare const badgeFiles: { readonly [K in (typeof badgeIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
933
- declare const logoIds: readonly ["googleMaps-logo-dark", "googleMaps-logo-light", "logo-atr", "logo-dark", "logo"];
934
- declare const logoFiles: { readonly [K in (typeof logoIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
935
- declare const otherImagesIds: readonly ["banner-horizontal", "banner-vertical", "gazebo-top", "qr-code", "store-android", "store-ios"];
936
- declare const otherImagesFiles: { readonly [K in (typeof otherImagesIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
937
- /**
938
- * Module specifiers for each poster (not resolved file URLs). Use a static import or require with these paths
939
- * so your bundler resolves the file, e.g.
940
- * `import poster1 from "@timardex/cluemart-shared/images/poster1.webp"`
941
- * or `require("@timardex/cluemart-shared/images/poster1.webp")` (React Native / Metro).
942
- *
943
- * Derived from `posterFiles` so keys and filenames stay aligned.
944
- */
945
- declare const posters: { readonly [K in keyof typeof posterFiles]: `${typeof PKG}/images/${(typeof posterFiles)[K]}`; };
946
- /**
947
- * Module specifiers for Clui assets (same flat `@…/images/<file>.webp` pattern as posters), e.g.
948
- * `import clui from "@timardex/cluemart-shared/images/cluiTui.webp"`.
949
- */
950
- declare const cluiImages: { readonly [K in keyof typeof cluiFiles]: `${typeof PKG}/images/${(typeof cluiFiles)[K]}`; };
951
- declare const icons: { readonly [K in keyof typeof iconFiles]: `${typeof PKG}/images/${(typeof iconFiles)[K]}`; };
952
- declare const badges: { readonly [K in keyof typeof badgeFiles]: `${typeof PKG}/images/${(typeof badgeFiles)[K]}`; };
953
- declare const logos: { readonly [K in keyof typeof logoFiles]: `${typeof PKG}/images/${(typeof logoFiles)[K]}`; };
954
- declare const otherImages: { readonly [K in keyof typeof otherImagesFiles]: `${typeof PKG}/images/${(typeof otherImagesFiles)[K]}`; };
955
- type PosterAssetId = keyof typeof posters;
956
- /** A single filename under the shared images directory (values of `posterFiles`). */
957
- type PosterImageBasename = (typeof posterFiles)[PosterAssetId];
958
- type CluiImageId = keyof typeof cluiImages;
959
- /** Basename under the shared images directory (values of `cluiFiles`). */
960
- type CluiImageBasename = (typeof cluiFiles)[CluiImageId];
961
- type IconId = keyof typeof icons;
962
- type IconBasename = (typeof iconFiles)[IconId];
963
- type BadgeId = keyof typeof badges;
964
- type BadgeBasename = (typeof badgeFiles)[BadgeId];
965
- type LogoId = keyof typeof logos;
966
- type LogoBasename = (typeof logoFiles)[LogoId];
967
- type OtherImagesId = keyof typeof otherImages;
968
- type OtherImagesBasename = (typeof otherImagesFiles)[OtherImagesId];
969
-
970
- interface PosterInputType {
971
- description: string;
972
- posterName: PosterAssetId;
820
+ type Region = {
821
+ latitude: number;
822
+ latitudeDelta: number;
823
+ longitude: number;
824
+ longitudeDelta: number;
825
+ };
826
+ type ResourceDetails = {
827
+ dateTime: DateTimeType[] | null;
828
+ description: string | null;
829
+ eventStatus?: EventStatusType | null;
830
+ location: LocationType | null;
831
+ resourceCover: ResourceImageType | null;
973
832
  resourceId: string;
833
+ resourceLogo: ResourceImageType | null;
834
+ resourceName: string;
974
835
  resourceType: EnumResourceType;
836
+ };
837
+ type GeocodeLocation = Pick<LocationType, "latitude" | "longitude">;
838
+ type EventStatusType = {
839
+ claimed: boolean;
840
+ eventType: EnumEventType;
841
+ googlePlaceId?: string | null;
842
+ };
843
+ interface FormField {
844
+ disabled?: boolean;
845
+ helperText?: string;
846
+ isTextArea?: boolean;
847
+ keyboardType?: "default" | "email-address" | "number-pad" | "url" | "decimal-pad" | "phone-pad";
848
+ name: string;
849
+ placeholder: string;
850
+ required?: boolean;
851
+ secureTextEntry?: boolean;
975
852
  }
976
-
977
- declare enum EnumAdShowOn {
978
- EVENTS_PAGE = "Events_page",
979
- FRONT_PAGE = "Front_page",
980
- PARTNERS_PAGE = "Partners_page",
981
- VENDORS_PAGE = "Vendors_page"
853
+ interface FormDateField {
854
+ dateMode: "date" | "time";
855
+ helperText?: string;
856
+ name: "endDate" | "endTime" | "startDate" | "startTime";
857
+ placeholder: string;
982
858
  }
983
- declare enum EnumAdStatus {
984
- ACTIVE = "Active",
985
- PAUSED = "Paused",
986
- EXPIRED = "Expired"
859
+ interface SubcategoryItems {
860
+ id: string;
861
+ name: string;
862
+ description?: string | null;
987
863
  }
988
- declare enum EnumAdType {
989
- SPONSORED = "Sponsored",
990
- FREE = "Free"
864
+ interface Subcategory {
865
+ id: string;
866
+ name: string;
867
+ items?: SubcategoryItems[] | null;
991
868
  }
992
- declare enum EnumAdStyle {
993
- BLOOM = "Bloom",
994
- RISE = "Rise"
869
+ interface Category {
870
+ color?: string | null;
871
+ description?: string | null;
872
+ id: string;
873
+ name: string;
874
+ subcategories: Subcategory[];
995
875
  }
996
- type AdResource = {
997
- adDescription: string;
998
- adImage: string;
999
- adStyle: EnumAdStyle;
1000
- adTitle: string;
1001
- adType: EnumAdType;
1002
- resourceId: string;
1003
- resourceName: string;
1004
- resourceRegion: string;
1005
- resourceType: EnumResourceType;
876
+ type OptionItem = {
877
+ value: string;
878
+ label: string;
1006
879
  };
1007
- interface AdFormData {
1008
- active: boolean;
1009
- end: Date;
1010
- resource: AdResource;
1011
- showOn: EnumAdShowOn[];
1012
- start?: Date;
1013
- status: EnumAdStatus;
1014
- targetRegion: string[];
880
+ type ImageObjectType = {
881
+ uri: string;
882
+ type: string;
883
+ name: string;
884
+ };
885
+ interface ResourceConnectionsType {
886
+ events: EventListItemType[] | null;
887
+ vendors: VendorType[] | null;
1015
888
  }
1016
- type AdFormState = AdFormData;
1017
- type CreateAdFormData = CreateFormData<AdFormData>;
1018
- type CreateAdFormState = CreateFormData<AdFormState>;
1019
- interface AdType extends AdFormData {
1020
- _id: string;
1021
- clicks?: number;
1022
- createdAt: Date;
1023
- impressions?: number;
1024
- start: Date;
1025
- updatedAt: Date | null;
889
+ interface CreateFormData<T extends FieldValues> {
890
+ control: Control<T, any>;
891
+ fields: T;
892
+ formState: FormState<T>;
893
+ handleSubmit: UseFormHandleSubmit<T, any>;
894
+ reset: UseFormReset<T>;
895
+ setValue: UseFormSetValue<T>;
896
+ watch: UseFormWatch<T>;
897
+ getValues: UseFormGetValues<T>;
898
+ }
899
+ interface UseGetResourcesByRegionOptions {
900
+ onlyClaimed?: boolean;
901
+ limit?: number;
902
+ offset?: number;
1026
903
  }
1027
904
 
1028
- declare enum EnumActivity {
1029
- FAVORITE = "FAVORITE",
1030
- GOING = "GOING",
1031
- INTERESTED = "INTERESTED",
1032
- PRESENT = "PRESENT",
1033
- VIEW = "VIEW"
905
+ declare const vendorBasicInfoFields: FormField[];
906
+ declare const vendorFullAddress: FormField;
907
+ declare const vendorStartDateFields: FormDateField[];
908
+ declare const vendorEndDateFields: FormDateField[];
909
+ declare const vendorAvailability: FormField[];
910
+ declare const vendorLocationDescription: FormField;
911
+ declare const vendorMenuFields: FormField[];
912
+ declare const productLabelGroups: {
913
+ category: string;
914
+ items: {
915
+ abbreviation: string;
916
+ fullName: string;
917
+ }[];
918
+ }[];
919
+ declare const priceUnits: OptionItem[];
920
+
921
+ interface AdminUpdateResourceType {
922
+ active: boolean;
923
+ resourceId: string;
924
+ resourceType: EnumResourceType;
1034
925
  }
1035
- type ResourceActivityEntry = {
1036
- activityType: EnumActivity;
1037
- location: LocationGeoType | null;
1038
- dateStatus?: EnumEventDateStatus | null;
1039
- startDate?: string | null;
1040
- startTime?: string | null;
1041
- timestamp: Date;
1042
- userAgent: EnumOSPlatform;
1043
- userId?: string | null;
926
+
927
+ type UserFormData = {
928
+ _id?: string;
929
+ active: boolean;
930
+ avatar?: ResourceImageType | null;
931
+ avatarUpload?: ResourceImageType | null;
932
+ confirmPassword?: string | null;
933
+ email: string;
934
+ firstName: string;
935
+ isTester: boolean;
936
+ lastName: string;
937
+ location?: LocationType | null;
938
+ password?: string | null;
939
+ platform?: EnumOSPlatform;
940
+ preferredRegion: string;
941
+ role: EnumUserRole;
942
+ termsAgreement?: TermsAgreement | null;
1044
943
  };
1045
- type ResourceActivityType = {
1046
- _id: string;
1047
- resourceType: EnumResourceType;
944
+ type CreateUserFormData = CreateFormData<UserFormData>;
945
+ type UserActivityEvent = {
1048
946
  resourceId: string;
1049
- activity: ResourceActivityEntry[];
947
+ dateTime: DateTimeType;
1050
948
  };
1051
- type ResourceActivityInputType = {
1052
- resourceId: string;
1053
- resourceType: EnumResourceType;
1054
- activity: Omit<ResourceActivityEntry, "timestamp">;
949
+ type StripeSubscription = {
950
+ customerId?: string;
951
+ subscriptionId?: string;
952
+ status?: EnumSubscriptionStatus;
953
+ currentPlan?: EnumUserLicence;
954
+ startDate?: string;
955
+ endDate?: string;
1055
956
  };
1056
-
1057
- interface PartnerFormData extends BaseResourceTypeFormData {
1058
- location: LocationType;
1059
- nzbn: string;
1060
- partnerType: EnumPartnerType;
1061
- }
1062
- type CreatePartnerFormData = CreateFormData<PartnerFormData>;
1063
- interface PartnerType extends BaseResourceType {
1064
- location: LocationType;
1065
- nzbn: string;
1066
- partnerType: EnumPartnerType;
1067
- }
1068
-
1069
- declare enum EnumGameType {
1070
- DAILY_CLUE = "dailyClue",
1071
- MINI_QUIZ = "miniQuiz",
1072
- ODD_ONE_OUT = "oddOneOut"
1073
- }
1074
- type GameDate = {
1075
- startDate: Date;
1076
- endDate: Date;
957
+ type SubscriptionStatusData = {
958
+ subscriptionId: string | null;
959
+ status: EnumSubscriptionStatus;
960
+ priceId: string | null;
961
+ currentPlan: EnumUserLicence | null;
962
+ };
963
+ type SubscriptionPricingData = {
964
+ basePrice: number;
965
+ discountedPrice: number | null;
966
+ hasDiscount: boolean;
967
+ discountPercent: number | null;
968
+ discountAmount: number | null;
969
+ currency: string;
970
+ formattedBasePrice: string;
971
+ formattedDiscountedPrice: string | null;
972
+ };
973
+ type SubscriptionPlanData = {
974
+ name: string;
975
+ description: string | null;
976
+ licenceType: EnumUserLicence;
977
+ billingPeriod: string;
978
+ stripeProductId: string;
979
+ stripePriceId: string;
980
+ isEligibleForDiscount: boolean;
981
+ pricing: SubscriptionPricingData;
982
+ };
983
+ type SubscriptionPlansResponse = {
984
+ plans: SubscriptionPlanData[];
985
+ isNewUser: boolean;
986
+ isTester: boolean;
987
+ appliedDiscountType: string;
988
+ };
989
+ type UserActivity = {
990
+ favourites: {
991
+ events: string[];
992
+ vendors: string[];
993
+ partners: string[];
994
+ };
995
+ going: {
996
+ events: UserActivityEvent[];
997
+ };
998
+ interested: {
999
+ events: UserActivityEvent[];
1000
+ };
1001
+ present: {
1002
+ events: UserActivityEvent[];
1003
+ };
1004
+ };
1005
+ type RedeemRewardInput = {
1006
+ reward: EnumReward;
1007
+ };
1008
+ type RedeemRewardResponse = {
1009
+ userId: string;
1010
+ message: string;
1011
+ };
1012
+ type RedeemedReward = {
1013
+ name: EnumReward;
1014
+ pointsUsed: number;
1015
+ redeemedAt: Date;
1016
+ };
1017
+ type UserType = Omit<UserFormData, "confirmPassword" | "avatarUpload" | "_id"> & {
1018
+ _id: string;
1019
+ associates?: AssociateType[] | null;
1020
+ createdAt: Date;
1021
+ deletedAt: Date | null;
1022
+ events: string[] | null;
1023
+ game: string | null;
1024
+ licences: UserLicenceType[] | null;
1025
+ overallPoints: number | null;
1026
+ partner: string | null;
1027
+ promoCodes?: PromoCodeType[] | null;
1028
+ redeemedRewards?: RedeemedReward[] | null;
1029
+ refreshToken: string | null;
1030
+ school: string | null;
1031
+ stripe?: StripeSubscription;
1032
+ updatedAt: Date | null;
1033
+ userActivity: UserActivity | null;
1034
+ vendor: string | null;
1077
1035
  };
1078
- declare const gameTypeToDisplayName: Record<EnumGameType, string>;
1079
- type GlobalGameData = {
1080
- points: number;
1081
- streak: number;
1036
+ type SafeUserType = Omit<UserType, "password" | "refreshToken">;
1037
+ type ResourceByUser = {
1038
+ _id: string;
1039
+ active: boolean;
1040
+ logo: string;
1041
+ name: string;
1042
+ resourceType: EnumResourceType;
1082
1043
  };
1083
1044
 
1084
- declare const gameScreenIdentifierList: readonly [{
1085
- readonly clue: "Where your actions turn into a timeline.";
1086
- readonly id: "activities";
1087
- readonly match: "/profile/activities";
1088
- }, {
1089
- readonly clue: "Where conversations happen without speaking.";
1090
- readonly id: "chat";
1091
- readonly match: "/profile/chat";
1092
- }, {
1093
- readonly clue: "The place to redefine who you are.";
1094
- readonly id: "edit-profile";
1095
- readonly match: "/profile/edit-profile";
1096
- }, {
1097
- readonly clue: "A single moment worth showing up for.";
1098
- readonly id: "single-event";
1099
- readonly match: RegExp;
1100
- }, {
1101
- readonly clue: "What’s happening around you, right now.";
1102
- readonly id: "events-near-me";
1103
- readonly match: "/events/events-near-me";
1104
- }, {
1105
- readonly clue: "Where events appear as pins on a map.";
1106
- readonly id: "events-map";
1107
- readonly match: "/events/events-map";
1108
- }, {
1109
- readonly clue: "A collection of events worth attending.";
1110
- readonly id: "events";
1111
- readonly match: "/events";
1112
- }, {
1113
- readonly clue: "What’s happening in a wider area — not just nearby.";
1114
- readonly id: "events-region";
1115
- readonly match: RegExp;
1116
- }, {
1117
- readonly clue: "Where fun becomes a challenge.";
1118
- readonly id: "games";
1119
- readonly match: "/games";
1120
- }, {
1121
- readonly clue: "Your starting point for everything.";
1122
- readonly id: "home";
1123
- readonly match: "/";
1124
- }, {
1125
- readonly clue: "Where the app whispers what you shouldn’t miss.";
1126
- readonly id: "notifications";
1127
- readonly match: "/notifications";
1128
- }, {
1129
- readonly clue: "Where you fine-tune your experience.";
1130
- readonly id: "options";
1131
- readonly match: "/options";
1132
- }, {
1133
- readonly clue: "An organisation or creator supporting the community.";
1134
- readonly id: "single-partner";
1135
- readonly match: RegExp;
1136
- }, {
1137
- readonly clue: "Organisations and creators supporting the community.";
1138
- readonly id: "partners";
1139
- readonly match: "/partners";
1140
- }, {
1141
- readonly clue: "A single published post in full view.";
1142
- readonly id: "single-visitor-post";
1143
- readonly match: RegExp;
1144
- }, {
1145
- readonly clue: "Your identity, on display.";
1146
- readonly id: "profile";
1147
- readonly match: "/profile";
1148
- }, {
1149
- readonly clue: "One stallholder offering something valuable.";
1150
- readonly id: "single-vendor";
1151
- readonly match: RegExp;
1152
- }, {
1153
- readonly clue: "Where every stallholder waits under the right category.";
1154
- readonly id: "vendors";
1155
- readonly match: "/vendors";
1156
- }, {
1157
- readonly clue: "Where you browse articles and posts from around the platform.";
1158
- readonly id: "visitors";
1159
- readonly match: "/visitors";
1160
- }];
1161
- type GamePlacement = (typeof gameScreenIdentifierList)[number]["id"];
1162
- type GamePlacementClue = (typeof gameScreenIdentifierList)[number]["clue"];
1163
- type DailyClueBaseGame = {
1164
- gameDate: GameDate;
1165
- gameSolution: string;
1045
+ declare enum EnumVerificationType {
1046
+ REGISTER = "register",
1047
+ RESET_PASSWORD = "resetPassword"
1048
+ }
1049
+ type LoginFormData = {
1050
+ email: string;
1051
+ isAdminPage?: boolean;
1052
+ password: string;
1053
+ platform?: EnumOSPlatform;
1166
1054
  };
1167
- type DailyClueGameData = GlobalGameData & {
1168
- gameFields: DailyClueBaseGame;
1169
- lastFoundDate: Date | null;
1170
- letterInfo: {
1171
- collected: string[] | null;
1172
- solutionShuffled: string[];
1173
- todaysClue: GamePlacementClue | null;
1174
- todaysLetter: string | null;
1175
- todaysPlacement: GamePlacement | null;
1176
- };
1055
+ type CreateLoginFormData = CreateFormData<LoginFormData>;
1056
+ type RegisterFormData = {
1057
+ email: string;
1058
+ firstName: string;
1059
+ lastName: string;
1060
+ password: string;
1061
+ platform?: EnumOSPlatform;
1062
+ preferredRegion: string;
1063
+ promoCode?: PromoCodeType | null;
1064
+ termsAgreement?: TermsAgreement | null;
1177
1065
  };
1178
-
1179
- type PuzzleAnswer = {
1180
- answerId: string;
1181
- answer: string;
1182
- correct: boolean;
1066
+ type CreateRegisterFormData = CreateFormData<RegisterFormData>;
1067
+ type RequestPasswordResetFormData = {
1068
+ email: string;
1183
1069
  };
1184
- type PuzzleQuestion = {
1185
- answers: PuzzleAnswer[];
1186
- question: string;
1187
- questionId: string;
1070
+ type CreateRequestPasswordResetFormData = CreateFormData<RequestPasswordResetFormData>;
1071
+ type ResetPasswordFormData = {
1072
+ confirmPassword: string;
1073
+ email: string;
1074
+ password: string;
1188
1075
  };
1189
- /**
1190
- * Stores only the answerId and the questionId of the selected answer.
1191
- */
1192
- type PuzzleAnsweredQuestion = {
1193
- selectedAnswerId: string;
1194
- questionId: string;
1076
+ type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;
1077
+ type ValidateVerificationTokenFormData = {
1078
+ email: string;
1079
+ verificationToken: string;
1080
+ verificationType?: EnumVerificationType;
1195
1081
  };
1196
- type PuzzleBaseGame = {
1197
- questions: PuzzleQuestion[];
1082
+ type CreateValidateVerificationTokenFormData = CreateFormData<ValidateVerificationTokenFormData>;
1083
+ type AuthPayloadType = {
1084
+ message: string;
1085
+ token: string;
1086
+ refreshToken: string | null;
1087
+ user: SafeUserType;
1198
1088
  };
1199
- type PuzzleGameData = GlobalGameData & {
1200
- gameFields: PuzzleBaseGame;
1201
- /**
1202
- * Stores user answers only.
1203
- * Never store correctness from client.
1204
- */
1205
- answeredQuestions: PuzzleAnsweredQuestion[];
1089
+ type RefreshTokenPayloadType = {
1090
+ refreshToken: string;
1091
+ token: string;
1206
1092
  };
1207
1093
 
1208
- type BaseGameMap = {
1209
- [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;
1210
- [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;
1211
- [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;
1212
- };
1213
- type BaseGameType = {
1214
- gameType: EnumGameType;
1215
- gameTypeId: string;
1216
- gameTitle: string;
1217
- } & {
1218
- [K in keyof BaseGameMap]?: BaseGameMap[K] | null;
1094
+ type ParticipantType = {
1095
+ active: boolean;
1096
+ isAssociate?: boolean | null;
1097
+ userAvatar: string | null;
1098
+ userEmail: string;
1099
+ userId: string;
1100
+ userName: string;
1219
1101
  };
1220
- declare enum EnumGameStatus {
1221
- GAME_COMPLETED = "GAME_COMPLETED",
1222
- GAME_IN_PROGRESS = "GAME_IN_PROGRESS",
1223
- GAME_LEFT = "GAME_LEFT",
1224
- GAME_STARTED = "GAME_STARTED"
1102
+ interface ChatMessageInput {
1103
+ content: string;
1104
+ replyToMessageId?: string | null;
1105
+ senderId: string;
1225
1106
  }
1226
- type GameHistory = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
1227
- createdAt: Date;
1228
- gameDate: GameDate;
1229
- gameStatus: EnumGameStatus;
1230
- /** Per-event delta. Not persisted for overallGamePoints (computed at read time). */
1231
- pointsEarned: number;
1232
- /** Running total for this game instance; computed at read time, not stored in Mongo. */
1233
- overallGamePoints?: number;
1107
+ type ChatMessageReplyPreview = {
1108
+ senderId: string;
1109
+ senderName: string;
1110
+ contentPreview: string;
1234
1111
  };
1235
- type GameDataMap = {
1236
- [EnumGameType.DAILY_CLUE]: DailyClueGameData;
1237
- [EnumGameType.MINI_QUIZ]: PuzzleGameData;
1238
- [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
1112
+ type ChatMessageReaction = {
1113
+ userId: string;
1114
+ createdAt: Date;
1239
1115
  };
1240
- type GameDataType = {
1241
- [K in keyof GameDataMap]?: GameDataMap[K] | null;
1116
+ type ChatMessageSeen = {
1117
+ userId: string;
1118
+ seenAt: Date;
1242
1119
  };
1243
- type GameType = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
1120
+ interface ChatMessageType {
1121
+ _id?: string;
1122
+ content: string;
1123
+ createdAt?: Date;
1124
+ replyToMessageId?: string | null;
1125
+ replyPreview?: ChatMessageReplyPreview | null;
1126
+ likedBy?: ChatMessageReaction[];
1127
+ senderId: string;
1128
+ seenBy?: ChatMessageSeen[];
1129
+ updatedAt?: Date;
1130
+ }
1131
+ interface ChatType {
1244
1132
  _id: string;
1245
1133
  active: boolean;
1134
+ chatDescription?: string | null;
1135
+ chatName: string;
1136
+ chatType: EnumChatType;
1246
1137
  createdAt: Date;
1247
- gameData: GameDataType;
1248
- gameHistory: GameHistory[] | null;
1138
+ deletedAt: Date | null;
1139
+ messages: ChatMessageType[];
1140
+ participants: ParticipantType[];
1141
+ region: string | null;
1142
+ updatedAt: Date | null;
1143
+ }
1144
+ interface ReportChatUser {
1145
+ _id: string;
1146
+ chatId: string;
1147
+ createdAt: Date;
1148
+ reason: {
1149
+ reasonType: EnumChatReportReason;
1150
+ details: string | null;
1151
+ };
1152
+ reportedUserId: string;
1153
+ reporterUserId: string;
1154
+ resolved: boolean;
1249
1155
  updatedAt: Date | null;
1156
+ }
1157
+
1158
+ type ContactUsFormData = {
1159
+ email: string;
1160
+ firstName: string;
1161
+ lastName: string;
1162
+ message: string;
1250
1163
  };
1251
- type GameDocType = {
1164
+ type CreateContactUsFormData = CreateFormData<ContactUsFormData>;
1165
+
1166
+ interface NotificationDataType {
1167
+ resourceId: string;
1168
+ resourceName: string;
1169
+ resourceType: EnumNotificationResourceType;
1170
+ }
1171
+ type NotificationType = {
1252
1172
  _id: string;
1253
- active: boolean;
1173
+ userId: string;
1174
+ title: string;
1175
+ message: string;
1176
+ isRead: boolean;
1177
+ type: EnumNotificationType;
1178
+ data: NotificationDataType | null;
1254
1179
  createdAt: Date;
1255
- deletedAt: Date | null;
1256
- games: GameType[] | null;
1257
- owner: OwnerType;
1258
- points: number;
1259
- updatedAt: Date | null;
1180
+ updatedAt: Date;
1260
1181
  };
1261
- type GameLeaderboard = {
1262
- gameHistory: GameHistory[] | null;
1263
- overallPoints: number;
1264
- owner: OwnerType;
1182
+ type NotificationCount = {
1183
+ total: number;
1184
+ unread: number;
1185
+ };
1186
+ type CreateBulkNotificationInput = {
1187
+ data: NotificationDataType | null;
1188
+ message: string;
1189
+ title: string;
1190
+ type: EnumNotificationType;
1191
+ userIds: string[];
1265
1192
  };
1266
1193
 
1267
- declare enum EnumPostType {
1268
- MARKET_FACES = "market_faces",
1269
- CLUE_BITES = "clue_bites",
1270
- PLAY_AND_WIN = "play_and_win"
1194
+ declare const PKG: "@timardex/cluemart-shared";
1195
+ declare const IMAGE_EXTENSION: ".webp";
1196
+ /**
1197
+ * Basenames under the shared images directory — use with `getSharedImagePath` from `@timardex/cluemart-shared/images/node` (Express / Node).
1198
+ * This object is the single source of poster keys; `posters` is derived from it. Add an image with `IMAGE_EXTENSION` under `src/images/posters/` when adding an entry.
1199
+ * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
1200
+ */
1201
+ declare const posterIds: readonly ["mini-market1", "mini-market2", "mini-market3", "mini-market4", "mini-market5", "poster1", "poster2", "poster3", "poster4"];
1202
+ declare const posterFiles: { readonly [K in (typeof posterIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1203
+ /**
1204
+ * Basenames for assets under `src/images/clui/` in source; they are copied flat into `dist/images/` (same as posters).
1205
+ * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
1206
+ */
1207
+ declare const cluiIds: readonly ["cluiTui", "sima", "tablas", "telefonos", "ugralos"];
1208
+ declare const cluiFiles: { readonly [K in (typeof cluiIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1209
+ declare const iconIds: readonly ["apple-maps-icon", "facebook", "google-maps-icon", "instagram", "meet", "poll", "tiktok", "tip", "waze-maps-icon", "website", "youtube"];
1210
+ declare const iconFiles: { readonly [K in (typeof iconIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1211
+ declare const badgeIds: readonly ["corporate", "private", "school"];
1212
+ declare const badgeFiles: { readonly [K in (typeof badgeIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1213
+ declare const logoIds: readonly ["googleMaps-logo-dark", "googleMaps-logo-light", "logo-atr", "logo-dark", "logo"];
1214
+ declare const logoFiles: { readonly [K in (typeof logoIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1215
+ declare const otherImagesIds: readonly ["banner-horizontal", "banner-vertical", "gazebo-top", "qr-code", "store-android", "store-ios"];
1216
+ declare const otherImagesFiles: { readonly [K in (typeof otherImagesIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1217
+ /**
1218
+ * Module specifiers for each poster (not resolved file URLs). Use a static import or require with these paths
1219
+ * so your bundler resolves the file, e.g.
1220
+ * `import poster1 from "@timardex/cluemart-shared/images/poster1.webp"`
1221
+ * or `require("@timardex/cluemart-shared/images/poster1.webp")` (React Native / Metro).
1222
+ *
1223
+ * Derived from `posterFiles` so keys and filenames stay aligned.
1224
+ */
1225
+ declare const posters: { readonly [K in keyof typeof posterFiles]: `${typeof PKG}/images/${(typeof posterFiles)[K]}`; };
1226
+ /**
1227
+ * Module specifiers for Clui assets (same flat `@…/images/<file>.webp` pattern as posters), e.g.
1228
+ * `import clui from "@timardex/cluemart-shared/images/cluiTui.webp"`.
1229
+ */
1230
+ declare const cluiImages: { readonly [K in keyof typeof cluiFiles]: `${typeof PKG}/images/${(typeof cluiFiles)[K]}`; };
1231
+ declare const icons: { readonly [K in keyof typeof iconFiles]: `${typeof PKG}/images/${(typeof iconFiles)[K]}`; };
1232
+ declare const badges: { readonly [K in keyof typeof badgeFiles]: `${typeof PKG}/images/${(typeof badgeFiles)[K]}`; };
1233
+ declare const logos: { readonly [K in keyof typeof logoFiles]: `${typeof PKG}/images/${(typeof logoFiles)[K]}`; };
1234
+ declare const otherImages: { readonly [K in keyof typeof otherImagesFiles]: `${typeof PKG}/images/${(typeof otherImagesFiles)[K]}`; };
1235
+ type PosterAssetId = keyof typeof posters;
1236
+ /** A single filename under the shared images directory (values of `posterFiles`). */
1237
+ type PosterImageBasename = (typeof posterFiles)[PosterAssetId];
1238
+ type CluiImageId = keyof typeof cluiImages;
1239
+ /** Basename under the shared images directory (values of `cluiFiles`). */
1240
+ type CluiImageBasename = (typeof cluiFiles)[CluiImageId];
1241
+ type IconId = keyof typeof icons;
1242
+ type IconBasename = (typeof iconFiles)[IconId];
1243
+ type BadgeId = keyof typeof badges;
1244
+ type BadgeBasename = (typeof badgeFiles)[BadgeId];
1245
+ type LogoId = keyof typeof logos;
1246
+ type LogoBasename = (typeof logoFiles)[LogoId];
1247
+ type OtherImagesId = keyof typeof otherImages;
1248
+ type OtherImagesBasename = (typeof otherImagesFiles)[OtherImagesId];
1249
+
1250
+ interface PosterInputType {
1251
+ description: string;
1252
+ posterName: PosterAssetId;
1253
+ resourceId: string;
1254
+ resourceType: EnumResourceType;
1271
1255
  }
1272
- declare enum EnumPostContentType {
1273
- GAME = "game",
1274
- IMAGE = "image",
1275
- LIST = "list",
1276
- TEXTAREA = "textarea",
1277
- VIDEO = "video"
1256
+
1257
+ declare enum EnumAdShowOn {
1258
+ EVENTS_PAGE = "Events_page",
1259
+ FRONT_PAGE = "Front_page",
1260
+ PARTNERS_PAGE = "Partners_page",
1261
+ VENDORS_PAGE = "Vendors_page"
1278
1262
  }
1279
- type PostFileInput = {
1280
- source: File;
1281
- title?: string;
1282
- };
1283
- type PostContentTextarea = {
1284
- textarea: {
1285
- title?: string;
1286
- data: string;
1287
- };
1288
- };
1289
- type PostContentImage = {
1290
- images: ResourceImageType[] | null;
1291
- imagesUpload?: PostFileInput[] | null;
1292
- };
1293
- type PostContentVideo = {
1294
- video: {
1295
- source: string;
1296
- title?: string;
1297
- };
1298
- };
1299
- type PostContentList = {
1300
- list: {
1301
- title?: string;
1302
- items: {
1303
- text: string;
1304
- }[];
1305
- };
1306
- };
1307
- type PostContentGame = {
1308
- game: BaseGameType;
1309
- };
1310
- type PostContentData = PostContentGame | PostContentTextarea | PostContentImage | PostContentVideo | PostContentList;
1311
- type PostContentFormData = {
1312
- contentData?: PostContentData | null;
1313
- contentOrder?: number | null;
1314
- contentType?: EnumPostContentType | null;
1263
+ declare enum EnumAdStatus {
1264
+ ACTIVE = "Active",
1265
+ PAUSED = "Paused",
1266
+ EXPIRED = "Expired"
1267
+ }
1268
+ declare enum EnumAdType {
1269
+ SPONSORED = "Sponsored",
1270
+ FREE = "Free"
1271
+ }
1272
+ declare enum EnumAdStyle {
1273
+ BLOOM = "Bloom",
1274
+ RISE = "Rise"
1275
+ }
1276
+ type AdResource = {
1277
+ adDescription: string;
1278
+ adImage: string;
1279
+ adStyle: EnumAdStyle;
1280
+ adTitle: string;
1281
+ adType: EnumAdType;
1282
+ resourceId: string;
1283
+ resourceName: string;
1284
+ resourceRegion: string;
1285
+ resourceType: EnumResourceType;
1315
1286
  };
1316
- interface PostFormData {
1287
+ interface AdFormData {
1317
1288
  active: boolean;
1318
- caption: string;
1319
- content: PostContentFormData[];
1320
- cover?: ResourceImageType | null;
1321
- coverUpload?: PostFileInput | null;
1322
- postType: EnumPostType;
1323
- resource?: {
1324
- resourceId: string;
1325
- resourceType: EnumResourceType;
1326
- resourceRegion: string;
1327
- } | null;
1328
- tags?: string[] | null;
1329
- title: string;
1330
- notifyUsers?: boolean | null;
1289
+ end: Date;
1290
+ resource: AdResource;
1291
+ showOn: EnumAdShowOn[];
1292
+ start?: Date;
1293
+ status: EnumAdStatus;
1294
+ targetRegion: string[];
1331
1295
  }
1332
- type CreatePostFormData = CreateFormData<PostFormData>;
1333
- type PostContentType = Omit<PostContentFormData, "contentData"> & {
1334
- contentData: Omit<PostContentData, "imagesUpload">;
1335
- };
1336
- type PostType = Omit<PostFormData, "content" | "coverUpload"> & {
1296
+ type AdFormState = AdFormData;
1297
+ type CreateAdFormData = CreateFormData<AdFormData>;
1298
+ type CreateAdFormState = CreateFormData<AdFormState>;
1299
+ interface AdType extends AdFormData {
1337
1300
  _id: string;
1338
- content: PostContentType[];
1301
+ clicks?: number;
1339
1302
  createdAt: Date;
1340
- deletedAt: Date | null;
1303
+ impressions?: number;
1304
+ start: Date;
1341
1305
  updatedAt: Date | null;
1306
+ }
1307
+
1308
+ declare enum EnumActivity {
1309
+ FAVORITE = "FAVORITE",
1310
+ GOING = "GOING",
1311
+ INTERESTED = "INTERESTED",
1312
+ PRESENT = "PRESENT",
1313
+ VIEW = "VIEW"
1314
+ }
1315
+ type ResourceActivityEntry = {
1316
+ activityType: EnumActivity;
1317
+ location: LocationGeoType | null;
1318
+ dateStatus?: EnumEventDateStatus | null;
1319
+ startDate?: string | null;
1320
+ startTime?: string | null;
1321
+ timestamp: Date;
1322
+ userAgent: EnumOSPlatform;
1323
+ userId?: string | null;
1324
+ };
1325
+ type ResourceActivityType = {
1326
+ _id: string;
1327
+ resourceType: EnumResourceType;
1328
+ resourceId: string;
1329
+ activity: ResourceActivityEntry[];
1330
+ };
1331
+ type ResourceActivityInputType = {
1332
+ resourceId: string;
1333
+ resourceType: EnumResourceType;
1334
+ activity: Omit<ResourceActivityEntry, "timestamp">;
1342
1335
  };
1343
1336
 
1337
+ interface PartnerFormData extends BaseResourceTypeFormData {
1338
+ location: LocationType;
1339
+ nzbn: string;
1340
+ partnerType: EnumPartnerType;
1341
+ }
1342
+ type CreatePartnerFormData = CreateFormData<PartnerFormData>;
1343
+ interface PartnerType extends BaseResourceType {
1344
+ location: LocationType;
1345
+ nzbn: string;
1346
+ partnerType: EnumPartnerType;
1347
+ }
1348
+
1344
1349
  type PushTokenType = {
1345
1350
  _id: string;
1346
1351
  createdAt: Date;
@@ -2938,4 +2943,4 @@ declare function filterEventsByDateStatusPeriod<T extends {
2938
2943
  dateTime?: Pick<DateTimeType, "dateStatus">[] | null;
2939
2944
  }>(events: T[], period: EnumEventDateStatus): T[];
2940
2945
 
2941
- export { ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAdFormState, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_RESOURCES_RETURN_LIMIT, DEFAULT_RESOURCES_RETURN_OFFSET, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumReward, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, PostTypeLabels, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, type PushTokenType, type PuzzleAnswer, type PuzzleAnsweredQuestion, type PuzzleBaseGame, type PuzzleGameData, type PuzzleQuestion, RELATION_OVERLAY_LAYOUT_VERSION, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_APPLICATION_DEADLINE_PREFIX, SHARE_CALENDAR_ICON, SHARE_CATEGORIES_SECTION_HEADING, SHARE_CATEGORY_ICON, SHARE_CHECKMARK_ICON, SHARE_CLOCK_ICON, SHARE_COMPLIANCE_PREFIX, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DOLLAR_ICON, SHARE_FOOD_TRUCK_LINE, SHARE_INFO_ICON, SHARE_MARKET_DATES_SECTION_HEADING, SHARE_MORE_INFO_LINE, SHARE_PRICE_RANGE_PREFIX, SHARE_RAIN_OR_SHINE_LINE, SHARE_REQUIREMENTS_SECTION_HEADING, SHARE_RESOURCE_LABEL, SHARE_RULER_ICON, SHARE_SITE_URL, SHARE_STALL_SIZE_PREFIX, SHARE_TAGS_SECTION_HEADING, SHARE_TYPE_PATH_REGEX, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, type SafeUserType, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventForInvitation, type ShareEventForPublic, type ShareEventInfoForInvitation, type ShareMessageFooterPlacement, type ShareResourceType, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, TIERS_BY_PRIORITY, TIER_DISPLAY_LABELS, TIER_FROM_LICENCE, type TermsAgreement, type Tier, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetResourcesByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, appendShareMoreInfoLine, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, filterEventsByDateStatusPeriod, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useCancelSubscription, useContactUs, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLogin, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdatePartner, useUpdatePost, useUpdatePuzzleGame, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useValidateVerificationToken, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };
2946
+ export { ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, type Category, type ChatMessageInput, type ChatMessageReaction, type ChatMessageReplyPreview, type ChatMessageSeen, type ChatMessageType, type ChatType, type CluiImageBasename, type CluiImageId, type ContactUsFormData, type CreateAdFormData, type CreateAdFormState, type CreateAppSettingsFormData, type CreateBulkNotificationInput, type CreateContactUsFormData, type CreateEventFormData, type CreateEventInfoFormData, type CreateFormData, type CreateLoginFormData, type CreatePartnerFormData, type CreatePostFormData, type CreateRegisterFormData, type CreateRequestPasswordResetFormData, type CreateResetPasswordFormData, type CreateSchoolFormData, type CreateUnregisteredVendorFormData, type CreateUserFormData, type CreateValidateVerificationTokenFormData, type CreateVendorFormData, type CreateVendorInfoFormData, DEFAULT_RESOURCES_RETURN_LIMIT, DEFAULT_RESOURCES_RETURN_OFFSET, DEFAULT_SHARE_OG_IMAGE, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumBillingPeriod, EnumChatReportReason, EnumChatType, EnumEventDateStatus, EnumEventType, EnumFoodFlavor, EnumFoodType, EnumGameStatus, EnumGameType, EnumInviteStatus, EnumNotificationResourceType, EnumNotificationType, EnumOSPlatform, EnumPartnerType, EnumPaymentMethod, EnumPostContentType, EnumPostType, EnumRegions, EnumRelationResource, EnumResourceType, EnumReward, EnumSocialMedia, EnumSubscriptionStatus, EnumUserLicence, EnumUserRole, EnumVendorType, EnumVerificationType, type EventFormData, type EventInfoFormData, type EventInfoType, type EventListItemType, type EventStatusType, type EventType, type FormDateField, type FormField, type GameDate, type GameDocType, type GameHistory, type GameLeaderboard, type GamePlacement, type GamePlacementClue, type GameType, type GeocodeLocation, type GlobalGameData, type GoogleAddressComponent, type GoogleImportedMarket, IMAGE_EXTENSION, IOS_URL, type IconBasename, type IconId, type ImageObjectType, ImageTypeEnum, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostShareResourceType, type PostType, PostTypeLabels, type PosterAssetId, type PosterImageBasename, type PosterInputType, type PosterUsageType, type PromoCodeType, type PublicSharePathType, type PushTokenType, type PuzzleAnswer, type PuzzleAnsweredQuestion, type PuzzleBaseGame, type PuzzleGameData, type PuzzleQuestion, RELATION_OVERLAY_LAYOUT_VERSION, RELATION_SHARE_APPLICATION, RELATION_SHARE_INVITATION, RELATION_SHARE_RESOURCE_TYPES, RESOURCE_SHARE_TYPES, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelatedPostType, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType, type ReportChatUser, type RequestPasswordResetFormData, type Requirement, type ResetPasswordFormData, type ResourceActivityEntry, type ResourceActivityInputType, type ResourceActivityType, type ResourceByUser, type ResourceConnectionsType, type ResourceContactDetailsType, type ResourceDetails, type ResourceImageType, type ResourceShareType, SAVED_EMAIL_KEY, SAVED_PASSWORD_KEY, SAVED_REFRESH_TOKEN_KEY, SAVED_TOKEN_KEY, SCHOOL_MAX_STUDENT_COUNT, SCHOOL_MIN_STUDENT_COUNT, SHARE_APPLICATION_DEADLINE_PREFIX, SHARE_CALENDAR_ICON, SHARE_CATEGORIES_SECTION_HEADING, SHARE_CATEGORY_ICON, SHARE_CHECKMARK_ICON, SHARE_CLOCK_ICON, SHARE_COMPLIANCE_PREFIX, SHARE_DESCRIPTION_SECTION_BREAK, SHARE_DOLLAR_ICON, SHARE_FOOD_TRUCK_LINE, SHARE_INFO_ICON, SHARE_MARKET_DATES_SECTION_HEADING, SHARE_MORE_INFO_LINE, SHARE_PRICE_RANGE_PREFIX, SHARE_RAIN_OR_SHINE_LINE, SHARE_REQUIREMENTS_SECTION_HEADING, SHARE_RESOURCE_LABEL, SHARE_RULER_ICON, SHARE_SITE_URL, SHARE_STALL_SIZE_PREFIX, SHARE_TAGS_SECTION_HEADING, SHARE_TYPE_PATH_REGEX, SOCIAL_IMAGE_HEIGHT, SOCIAL_IMAGE_WIDTH, type SafeUserType, type SchoolCampaignType, type SchoolFormData, type SchoolRegisteredUserType, type SchoolReturnType, type SchoolType, type ShareEventForInvitation, type ShareEventForPublic, type ShareEventInfoForInvitation, type ShareMessageFooterPlacement, type ShareResourceType, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type StallType, type StripeSubscription, type Subcategory, type SubcategoryItems, type SubscriptionPlanData, type SubscriptionPlansResponse, type SubscriptionPricingData, type SubscriptionStatusData, TIERS_BY_PRIORITY, TIER_DISPLAY_LABELS, TIER_FROM_LICENCE, type TermsAgreement, type Tier, USER_STORAGE_KEY, type UnregisteredVendorFormData, type UnregisteredVendorInvitationType, type UnregisteredVendorType, type UseGetResourcesByRegionOptions, type UserActivity, type UserActivityEvent, type UserFormData, type UserLicenceType, type UserType, type ValidateVerificationTokenFormData, type VendorAttributes, type VendorCalendarData, type VendorFormData, type VendorInfoFormData, type VendorInfoType, type VendorProductList, type VendorType, appendShareMoreInfoLine, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, buildApplicationShareDescription, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, filterEventsByDateStatusPeriod, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, tagOptions, timeFormat, toNZTime, truncateText, useAddParticipantToChat, useAddUserFavouriteResource, useAddUserGoingResource, useAddUserInterestResource, useAddUserPresentResource, useAdminPermanentlyDeleteResource, useAdminResendUserVerificationEmail, useAdminUpdateResourceType, useCancelSubscription, useContactUs, useCrawlGoogleMarkets, useCreateAd, useCreateBulkNotifications, useCreateCheckoutSession, useCreateCustomerPortal, useCreateEvent, useCreateEventInfo, useCreatePartner, useCreatePost, useCreatePoster, useCreatePrivateChat, useCreatePushToken, useCreateRelation, useCreateResourceActivity, useCreateSchool, useCreateUnregisteredVendor, useCreateUser, useCreateVendor, useCreateVendorInfo, useDeleteAd, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAppSettings, useGetChat, useGetChatSubscription, useGetChatsByRegion, useGetEvent, useGetEventByPlaceId, useGetEventInfo, useGetEventRelations, useGetEvents, useGetEventsByRegion, useGetEventsNearMe, useGetGame, useGetGameLeaderboard, useGetGames, useGetNotificationCount, useGetNotificationCountSubscription, useGetPartner, useGetPartners, useGetPartnersByRegion, useGetPost, useGetPosts, useGetPostsByType, useGetRelation, useGetRelationByEventAndVendor, useGetReportedChatUsers, useGetResourceActivity, useGetResourceConnections, useGetSchool, useGetSchools, useGetSubscriptionPlans, useGetSubscriptionStatus, useGetUnregisteredVendor, useGetUnregisteredVendors, useGetUnregisteredVendorsByInviterId, useGetUser, useGetUserActivities, useGetUserChats, useGetUserEvents, useGetUserNotifications, useGetUserNotificationsSubscription, useGetUserPartners, useGetUserResources, useGetUserVendors, useGetUsers, useGetVendor, useGetVendorInfo, useGetVendorRelations, useGetVendors, useGetVendorsByRegion, useLeaveGame, useLogin, useLogout, useMarkAllNotificationsRead, useMarkChatMessagesSeen, useMarkNotificationRead, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAppSettings, useUpdateDailyClueGame, useUpdateEvent, useUpdateEventInfo, useUpdateGoogleImportedMarkets, useUpdatePartner, useUpdatePost, useUpdatePuzzleGame, useUpdateRelation, useUpdateSchool, useUpdateSubscriptionPlan, useUpdateUnregisteredVendor, useUpdateUser, useUpdateVendor, useUpdateVendorInfo, useValidateVerificationToken, validateVerificationTokenFields, vendorAvailability, vendorBasicInfoFields, vendorCompliance, vendorElectricity, vendorEndDateFields, vendorFoodFlavour, vendorFullAddress, vendorGazebo, vendorLocationDescription, vendorMenuFields, vendorPackaging, vendorPriceRange, vendorProducedIn, vendorStallSize, vendorStartDateFields, vendorTable };