@timardex/cluemart-shared 1.5.740 → 1.5.742

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/{ad-CqfSmtG_.d.ts → ad-DTOtubs3.d.ts} +1 -1
  2. package/dist/{ad-sgD-lSbO.d.mts → ad-DpwV6VZX.d.mts} +1 -1
  3. package/dist/{chunk-6OBMKN7F.mjs → chunk-64ZADXXH.mjs} +2 -2
  4. package/dist/{chunk-XWFE6U3E.mjs → chunk-K5OWNJY5.mjs} +131 -119
  5. package/dist/chunk-K5OWNJY5.mjs.map +1 -0
  6. package/dist/{chunk-6YISZ3OD.mjs → chunk-KXQLOILF.mjs} +2 -2
  7. package/dist/{chunk-7VNXO63T.mjs → chunk-LNIT5OS3.mjs} +1 -1
  8. package/dist/chunk-LNIT5OS3.mjs.map +1 -0
  9. package/dist/{chunk-3AI2ROPT.mjs → chunk-TIXEG66V.mjs} +19 -1
  10. package/dist/chunk-TIXEG66V.mjs.map +1 -0
  11. package/dist/{contactUs-DA3p41Uq.d.ts → contactUs-BK5MKYPx.d.ts} +1 -1
  12. package/dist/{contactUs-B6lQQq-x.d.mts → contactUs-CRypzI-A.d.mts} +1 -1
  13. package/dist/formFields/index.cjs +28 -4
  14. package/dist/formFields/index.cjs.map +1 -1
  15. package/dist/formFields/index.d.mts +1 -1
  16. package/dist/formFields/index.d.ts +1 -1
  17. package/dist/formFields/index.mjs +3 -3
  18. package/dist/{global-BEUzBSyY.d.mts → global-q9JjONd1.d.mts} +280 -1
  19. package/dist/{global-585slmSH.d.ts → global-vWzQNI8w.d.ts} +280 -1
  20. package/dist/graphql/index.cjs +18 -0
  21. package/dist/graphql/index.cjs.map +1 -1
  22. package/dist/graphql/index.d.mts +3 -4
  23. package/dist/graphql/index.d.ts +3 -4
  24. package/dist/graphql/index.mjs +1 -1
  25. package/dist/hooks/index.cjs +34 -6
  26. package/dist/hooks/index.cjs.map +1 -1
  27. package/dist/hooks/index.d.mts +3 -4
  28. package/dist/hooks/index.d.ts +3 -4
  29. package/dist/hooks/index.mjs +5 -5
  30. package/dist/index.cjs +171 -141
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.mts +922 -914
  33. package/dist/index.d.ts +922 -914
  34. package/dist/index.mjs +170 -141
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/{resourceActivities-CZqXBve8.d.mts → resourceActivities-CpjJeH23.d.mts} +1 -1
  37. package/dist/{resourceActivities-CjJdhVR7.d.ts → resourceActivities-DtxRUlrT.d.ts} +1 -1
  38. package/dist/sharing/index.cjs +82 -58
  39. package/dist/sharing/index.cjs.map +1 -1
  40. package/dist/sharing/index.d.mts +1 -1
  41. package/dist/sharing/index.d.ts +1 -1
  42. package/dist/sharing/index.mjs +3 -3
  43. package/dist/types/index.cjs.map +1 -1
  44. package/dist/types/index.d.mts +5 -6
  45. package/dist/types/index.d.ts +5 -6
  46. package/dist/types/index.mjs +1 -1
  47. package/dist/utils/index.cjs +167 -141
  48. package/dist/utils/index.cjs.map +1 -1
  49. package/dist/utils/index.d.mts +6 -3
  50. package/dist/utils/index.d.ts +6 -3
  51. package/dist/utils/index.mjs +4 -2
  52. package/package.json +1 -1
  53. package/dist/chunk-3AI2ROPT.mjs.map +0 -1
  54. package/dist/chunk-7VNXO63T.mjs.map +0 -1
  55. package/dist/chunk-XWFE6U3E.mjs.map +0 -1
  56. package/dist/post-CdLrXuH1.d.mts +0 -279
  57. package/dist/post-D6n4Vszs.d.ts +0 -279
  58. /package/dist/{chunk-6OBMKN7F.mjs.map → chunk-64ZADXXH.mjs.map} +0 -0
  59. /package/dist/{chunk-6YISZ3OD.mjs.map → chunk-KXQLOILF.mjs.map} +0 -0
package/dist/index.d.mts CHANGED
@@ -322,1025 +322,1029 @@ 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;
486
- };
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;
509
- };
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;
519
- };
520
- type LocationGeoType = {
521
- coordinates: number[];
522
- type: "Point";
523
- };
524
- type LocationType = {
525
- city: string;
526
- country: string;
527
- fullAddress: string;
528
- geo: LocationGeoType;
529
- latitude: number;
530
- longitude: number;
531
- region: 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;
532
422
  };
533
- type DateTimeType = {
534
- dateStatus: EnumEventDateStatus;
535
- endDate: string;
536
- endTime: string;
537
- startDate: string;
538
- startTime: string;
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
+ };
539
433
  };
540
- type Region = {
541
- latitude: number;
542
- latitudeDelta: number;
543
- longitude: number;
544
- longitudeDelta: number;
434
+
435
+ type PuzzleAnswer = {
436
+ answerId: string;
437
+ answer: string;
438
+ correct: boolean;
545
439
  };
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;
440
+ type PuzzleQuestion = {
441
+ answers: PuzzleAnswer[];
442
+ question: string;
443
+ questionId: string;
556
444
  };
557
- type GeocodeLocation = Pick<LocationType, "latitude" | "longitude">;
558
- type EventStatusType = {
559
- claimed: boolean;
560
- eventType: EnumEventType;
561
- googlePlaceId?: string | null;
445
+ /**
446
+ * Stores only the answerId and the questionId of the selected answer.
447
+ */
448
+ type PuzzleAnsweredQuestion = {
449
+ selectedAnswerId: string;
450
+ questionId: string;
562
451
  };
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[];
595
- }
596
- type OptionItem = {
597
- value: string;
598
- label: string;
452
+ type PuzzleBaseGame = {
453
+ questions: PuzzleQuestion[];
599
454
  };
600
- type ImageObjectType = {
601
- uri: string;
602
- type: string;
603
- name: string;
455
+ type PuzzleGameData = GlobalGameData & {
456
+ gameFields: PuzzleBaseGame;
457
+ /**
458
+ * Stores user answers only.
459
+ * Never store correctness from client.
460
+ */
461
+ answeredQuestions: PuzzleAnsweredQuestion[];
604
462
  };
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
463
 
641
- interface AdminUpdateResourceType {
642
- active: boolean;
643
- resourceId: string;
644
- resourceType: EnumResourceType;
464
+ type BaseGameMap = {
465
+ [EnumGameType.DAILY_CLUE]: DailyClueBaseGame;
466
+ [EnumGameType.MINI_QUIZ]: PuzzleBaseGame;
467
+ [EnumGameType.ODD_ONE_OUT]: PuzzleBaseGame;
468
+ };
469
+ type BaseGameType = {
470
+ gameType: EnumGameType;
471
+ gameTypeId: string;
472
+ gameTitle: string;
473
+ } & {
474
+ [K in keyof BaseGameMap]?: BaseGameMap[K] | null;
475
+ };
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"
645
481
  }
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;
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;
663
490
  };
664
- type CreateUserFormData = CreateFormData<UserFormData>;
665
- type UserActivityEvent = {
666
- resourceId: string;
667
- dateTime: DateTimeType;
491
+ type GameDataMap = {
492
+ [EnumGameType.DAILY_CLUE]: DailyClueGameData;
493
+ [EnumGameType.MINI_QUIZ]: PuzzleGameData;
494
+ [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
668
495
  };
669
- type StripeSubscription = {
670
- customerId?: string;
671
- subscriptionId?: string;
672
- status?: EnumSubscriptionStatus;
673
- currentPlan?: EnumUserLicence;
674
- startDate?: string;
675
- endDate?: string;
496
+ type GameDataType = {
497
+ [K in keyof GameDataMap]?: GameDataMap[K] | null;
676
498
  };
677
- type SubscriptionStatusData = {
678
- subscriptionId: string | null;
679
- status: EnumSubscriptionStatus;
680
- priceId: string | null;
681
- currentPlan: EnumUserLicence | null;
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;
682
506
  };
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;
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;
692
516
  };
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;
517
+ type GameLeaderboard = {
518
+ gameHistory: GameHistory[] | null;
519
+ overallPoints: number;
520
+ owner: OwnerType;
702
521
  };
703
- type SubscriptionPlansResponse = {
704
- plans: SubscriptionPlanData[];
705
- isNewUser: boolean;
706
- isTester: boolean;
707
- appliedDiscountType: string;
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;
708
538
  };
709
- type UserActivity = {
710
- favourites: {
711
- events: string[];
712
- vendors: string[];
713
- partners: string[];
714
- };
715
- going: {
716
- events: UserActivityEvent[];
539
+ type PostContentTextarea = {
540
+ textarea: {
541
+ title?: string;
542
+ data: string;
717
543
  };
718
- interested: {
719
- events: UserActivityEvent[];
544
+ };
545
+ type PostContentImage = {
546
+ images: ResourceImageType[] | null;
547
+ imagesUpload?: PostFileInput[] | null;
548
+ };
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;
801
715
  };
802
- type CreateValidateVerificationTokenFormData = CreateFormData<ValidateVerificationTokenFormData>;
803
- type AuthPayloadType = {
804
- message: string;
805
- token: string;
806
- refreshToken: string | null;
807
- user: SafeUserType;
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;
808
728
  };
809
- type RefreshTokenPayloadType = {
810
- refreshToken: string;
811
- token: string;
729
+ type TermsAgreement = DeviceInfo & {
730
+ termVersion: string;
812
731
  };
813
-
814
- type ParticipantType = {
815
- active: boolean;
816
- isAssociate?: boolean | null;
817
- userAvatar: string | null;
818
- userEmail: string;
819
- userId: string;
820
- userName: string;
732
+ type ResourceContactDetailsType = {
733
+ email?: string | null;
734
+ landlinePhone?: string | null;
735
+ mobilePhone?: string | null;
821
736
  };
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;
737
+ type ResourceImageType = {
738
+ active?: boolean | null;
739
+ source: string;
740
+ title: string;
831
741
  };
832
- type ChatMessageReaction = {
833
- userId: string;
834
- createdAt: Date;
742
+ type SocialMediaType = {
743
+ name?: EnumSocialMedia;
744
+ link?: string;
835
745
  };
836
- type ChatMessageSeen = {
746
+ type UserLicenceType = {
747
+ expiryDate: Date;
748
+ issuedDate: Date;
749
+ licenceType: EnumUserLicence;
750
+ prevLicenceType?: EnumUserLicence | null;
751
+ };
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 BaseResourceType = Omit<BaseResourceTypeFormData, "_id" | "coverUpload" | "imagesUpload" | "logoUpload"> & {
865
786
  _id: string;
866
- chatId: string;
787
+ adIds?: string[] | null;
867
788
  createdAt: Date;
868
- reason: {
869
- reasonType: EnumChatReportReason;
870
- details: string | null;
871
- };
872
- reportedUserId: string;
873
- reporterUserId: string;
874
- resolved: boolean;
789
+ deletedAt: Date | null;
790
+ posterUsage?: PosterUsageType | null;
791
+ rating?: number | null;
792
+ reviewCount?: number | null;
875
793
  updatedAt: Date | null;
876
- }
877
-
878
- type ContactUsFormData = {
879
- email: string;
880
- firstName: string;
881
- lastName: string;
882
- message: string;
794
+ relatedPost?: {
795
+ postId: string;
796
+ postType: EnumPostType;
797
+ } | null;
883
798
  };
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;
799
+ type LocationGeoType = {
800
+ coordinates: number[];
801
+ type: "Point";
901
802
  };
902
- type NotificationCount = {
903
- total: number;
904
- unread: number;
803
+ type LocationType = {
804
+ city: string;
805
+ country: string;
806
+ fullAddress: string;
807
+ geo: LocationGeoType;
808
+ latitude: number;
809
+ longitude: number;
810
+ region: string;
905
811
  };
906
- type CreateBulkNotificationInput = {
907
- data: NotificationDataType | null;
908
- message: string;
909
- title: string;
910
- type: EnumNotificationType;
911
- userIds: string[];
812
+ type DateTimeType = {
813
+ dateStatus: EnumEventDateStatus;
814
+ endDate: string;
815
+ endTime: string;
816
+ startDate: string;
817
+ startTime: string;
912
818
  };
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;
973
- resourceId: string;
974
- resourceType: EnumResourceType;
975
- }
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"
982
- }
983
- declare enum EnumAdStatus {
984
- ACTIVE = "Active",
985
- PAUSED = "Paused",
986
- EXPIRED = "Expired"
987
- }
988
- declare enum EnumAdType {
989
- SPONSORED = "Sponsored",
990
- FREE = "Free"
991
- }
992
- declare enum EnumAdStyle {
993
- BLOOM = "Bloom",
994
- RISE = "Rise"
995
- }
996
- type AdResource = {
997
- adDescription: string;
998
- adImage: string;
999
- adStyle: EnumAdStyle;
1000
- adTitle: string;
1001
- adType: EnumAdType;
819
+ type Region = {
820
+ latitude: number;
821
+ latitudeDelta: number;
822
+ longitude: number;
823
+ longitudeDelta: number;
824
+ };
825
+ type ResourceDetails = {
826
+ dateTime: DateTimeType[] | null;
827
+ description: string | null;
828
+ eventStatus?: EventStatusType | null;
829
+ location: LocationType | null;
830
+ resourceCover: ResourceImageType | null;
1002
831
  resourceId: string;
832
+ resourceLogo: ResourceImageType | null;
1003
833
  resourceName: string;
1004
- resourceRegion: string;
1005
834
  resourceType: EnumResourceType;
1006
835
  };
1007
- interface AdFormData {
1008
- active: boolean;
1009
- end: Date;
1010
- resource: AdResource;
1011
- showOn: EnumAdShowOn[];
1012
- start?: Date;
1013
- status: EnumAdStatus;
1014
- targetRegion: string[];
836
+ type GeocodeLocation = Pick<LocationType, "latitude" | "longitude">;
837
+ type EventStatusType = {
838
+ claimed: boolean;
839
+ eventType: EnumEventType;
840
+ googlePlaceId?: string | null;
841
+ };
842
+ interface FormField {
843
+ disabled?: boolean;
844
+ helperText?: string;
845
+ isTextArea?: boolean;
846
+ keyboardType?: "default" | "email-address" | "number-pad" | "url" | "decimal-pad" | "phone-pad";
847
+ name: string;
848
+ placeholder: string;
849
+ required?: boolean;
850
+ secureTextEntry?: boolean;
1015
851
  }
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;
852
+ interface FormDateField {
853
+ dateMode: "date" | "time";
854
+ helperText?: string;
855
+ name: "endDate" | "endTime" | "startDate" | "startTime";
856
+ placeholder: string;
1026
857
  }
1027
-
1028
- declare enum EnumActivity {
1029
- FAVORITE = "FAVORITE",
1030
- GOING = "GOING",
1031
- INTERESTED = "INTERESTED",
1032
- PRESENT = "PRESENT",
1033
- VIEW = "VIEW"
858
+ interface SubcategoryItems {
859
+ id: string;
860
+ name: string;
861
+ description?: string | null;
1034
862
  }
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;
1044
- };
1045
- type ResourceActivityType = {
1046
- _id: string;
1047
- resourceType: EnumResourceType;
1048
- resourceId: string;
1049
- activity: ResourceActivityEntry[];
863
+ interface Subcategory {
864
+ id: string;
865
+ name: string;
866
+ items?: SubcategoryItems[] | null;
867
+ }
868
+ interface Category {
869
+ color?: string | null;
870
+ description?: string | null;
871
+ id: string;
872
+ name: string;
873
+ subcategories: Subcategory[];
874
+ }
875
+ type OptionItem = {
876
+ value: string;
877
+ label: string;
1050
878
  };
1051
- type ResourceActivityInputType = {
1052
- resourceId: string;
1053
- resourceType: EnumResourceType;
1054
- activity: Omit<ResourceActivityEntry, "timestamp">;
879
+ type ImageObjectType = {
880
+ uri: string;
881
+ type: string;
882
+ name: string;
1055
883
  };
1056
-
1057
- interface PartnerFormData extends BaseResourceTypeFormData {
1058
- location: LocationType;
1059
- nzbn: string;
1060
- partnerType: EnumPartnerType;
884
+ interface ResourceConnectionsType {
885
+ events: EventListItemType[] | null;
886
+ vendors: VendorType[] | null;
1061
887
  }
1062
- type CreatePartnerFormData = CreateFormData<PartnerFormData>;
1063
- interface PartnerType extends BaseResourceType {
1064
- location: LocationType;
1065
- nzbn: string;
1066
- partnerType: EnumPartnerType;
888
+ interface CreateFormData<T extends FieldValues> {
889
+ control: Control<T, any>;
890
+ fields: T;
891
+ formState: FormState<T>;
892
+ handleSubmit: UseFormHandleSubmit<T, any>;
893
+ reset: UseFormReset<T>;
894
+ setValue: UseFormSetValue<T>;
895
+ watch: UseFormWatch<T>;
896
+ getValues: UseFormGetValues<T>;
897
+ }
898
+ interface UseGetResourcesByRegionOptions {
899
+ onlyClaimed?: boolean;
900
+ limit?: number;
901
+ offset?: number;
1067
902
  }
1068
903
 
1069
- declare enum EnumGameType {
1070
- DAILY_CLUE = "dailyClue",
1071
- MINI_QUIZ = "miniQuiz",
1072
- ODD_ONE_OUT = "oddOneOut"
904
+ declare const vendorBasicInfoFields: FormField[];
905
+ declare const vendorFullAddress: FormField;
906
+ declare const vendorStartDateFields: FormDateField[];
907
+ declare const vendorEndDateFields: FormDateField[];
908
+ declare const vendorAvailability: FormField[];
909
+ declare const vendorLocationDescription: FormField;
910
+ declare const vendorMenuFields: FormField[];
911
+ declare const productLabelGroups: {
912
+ category: string;
913
+ items: {
914
+ abbreviation: string;
915
+ fullName: string;
916
+ }[];
917
+ }[];
918
+ declare const priceUnits: OptionItem[];
919
+
920
+ interface AdminUpdateResourceType {
921
+ active: boolean;
922
+ resourceId: string;
923
+ resourceType: EnumResourceType;
1073
924
  }
1074
- type GameDate = {
1075
- startDate: Date;
1076
- endDate: Date;
925
+
926
+ type UserFormData = {
927
+ _id?: string;
928
+ active: boolean;
929
+ avatar?: ResourceImageType | null;
930
+ avatarUpload?: ResourceImageType | null;
931
+ confirmPassword?: string | null;
932
+ email: string;
933
+ firstName: string;
934
+ isTester: boolean;
935
+ lastName: string;
936
+ location?: LocationType | null;
937
+ password?: string | null;
938
+ platform?: EnumOSPlatform;
939
+ preferredRegion: string;
940
+ role: EnumUserRole;
941
+ termsAgreement?: TermsAgreement | null;
942
+ };
943
+ type CreateUserFormData = CreateFormData<UserFormData>;
944
+ type UserActivityEvent = {
945
+ resourceId: string;
946
+ dateTime: DateTimeType;
947
+ };
948
+ type StripeSubscription = {
949
+ customerId?: string;
950
+ subscriptionId?: string;
951
+ status?: EnumSubscriptionStatus;
952
+ currentPlan?: EnumUserLicence;
953
+ startDate?: string;
954
+ endDate?: string;
955
+ };
956
+ type SubscriptionStatusData = {
957
+ subscriptionId: string | null;
958
+ status: EnumSubscriptionStatus;
959
+ priceId: string | null;
960
+ currentPlan: EnumUserLicence | null;
961
+ };
962
+ type SubscriptionPricingData = {
963
+ basePrice: number;
964
+ discountedPrice: number | null;
965
+ hasDiscount: boolean;
966
+ discountPercent: number | null;
967
+ discountAmount: number | null;
968
+ currency: string;
969
+ formattedBasePrice: string;
970
+ formattedDiscountedPrice: string | null;
971
+ };
972
+ type SubscriptionPlanData = {
973
+ name: string;
974
+ description: string | null;
975
+ licenceType: EnumUserLicence;
976
+ billingPeriod: string;
977
+ stripeProductId: string;
978
+ stripePriceId: string;
979
+ isEligibleForDiscount: boolean;
980
+ pricing: SubscriptionPricingData;
981
+ };
982
+ type SubscriptionPlansResponse = {
983
+ plans: SubscriptionPlanData[];
984
+ isNewUser: boolean;
985
+ isTester: boolean;
986
+ appliedDiscountType: string;
987
+ };
988
+ type UserActivity = {
989
+ favourites: {
990
+ events: string[];
991
+ vendors: string[];
992
+ partners: string[];
993
+ };
994
+ going: {
995
+ events: UserActivityEvent[];
996
+ };
997
+ interested: {
998
+ events: UserActivityEvent[];
999
+ };
1000
+ present: {
1001
+ events: UserActivityEvent[];
1002
+ };
1003
+ };
1004
+ type RedeemRewardInput = {
1005
+ reward: EnumReward;
1006
+ };
1007
+ type RedeemRewardResponse = {
1008
+ userId: string;
1009
+ message: string;
1010
+ };
1011
+ type RedeemedReward = {
1012
+ name: EnumReward;
1013
+ pointsUsed: number;
1014
+ redeemedAt: Date;
1015
+ };
1016
+ type UserType = Omit<UserFormData, "confirmPassword" | "avatarUpload" | "_id"> & {
1017
+ _id: string;
1018
+ associates?: AssociateType[] | null;
1019
+ createdAt: Date;
1020
+ deletedAt: Date | null;
1021
+ events: string[] | null;
1022
+ game: string | null;
1023
+ licences: UserLicenceType[] | null;
1024
+ overallPoints: number | null;
1025
+ partner: string | null;
1026
+ promoCodes?: PromoCodeType[] | null;
1027
+ redeemedRewards?: RedeemedReward[] | null;
1028
+ refreshToken: string | null;
1029
+ school: string | null;
1030
+ stripe?: StripeSubscription;
1031
+ updatedAt: Date | null;
1032
+ userActivity: UserActivity | null;
1033
+ vendor: string | null;
1077
1034
  };
1078
- declare const gameTypeToDisplayName: Record<EnumGameType, string>;
1079
- type GlobalGameData = {
1080
- points: number;
1081
- streak: number;
1035
+ type SafeUserType = Omit<UserType, "password" | "refreshToken">;
1036
+ type ResourceByUser = {
1037
+ _id: string;
1038
+ active: boolean;
1039
+ logo: string;
1040
+ name: string;
1041
+ resourceType: EnumResourceType;
1082
1042
  };
1083
1043
 
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;
1044
+ declare enum EnumVerificationType {
1045
+ REGISTER = "register",
1046
+ RESET_PASSWORD = "resetPassword"
1047
+ }
1048
+ type LoginFormData = {
1049
+ email: string;
1050
+ isAdminPage?: boolean;
1051
+ password: string;
1052
+ platform?: EnumOSPlatform;
1166
1053
  };
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
- };
1054
+ type CreateLoginFormData = CreateFormData<LoginFormData>;
1055
+ type RegisterFormData = {
1056
+ email: string;
1057
+ firstName: string;
1058
+ lastName: string;
1059
+ password: string;
1060
+ platform?: EnumOSPlatform;
1061
+ preferredRegion: string;
1062
+ promoCode?: PromoCodeType | null;
1063
+ termsAgreement?: TermsAgreement | null;
1177
1064
  };
1178
-
1179
- type PuzzleAnswer = {
1180
- answerId: string;
1181
- answer: string;
1182
- correct: boolean;
1065
+ type CreateRegisterFormData = CreateFormData<RegisterFormData>;
1066
+ type RequestPasswordResetFormData = {
1067
+ email: string;
1183
1068
  };
1184
- type PuzzleQuestion = {
1185
- answers: PuzzleAnswer[];
1186
- question: string;
1187
- questionId: string;
1069
+ type CreateRequestPasswordResetFormData = CreateFormData<RequestPasswordResetFormData>;
1070
+ type ResetPasswordFormData = {
1071
+ confirmPassword: string;
1072
+ email: string;
1073
+ password: string;
1188
1074
  };
1189
- /**
1190
- * Stores only the answerId and the questionId of the selected answer.
1191
- */
1192
- type PuzzleAnsweredQuestion = {
1193
- selectedAnswerId: string;
1194
- questionId: string;
1075
+ type CreateResetPasswordFormData = CreateFormData<ResetPasswordFormData>;
1076
+ type ValidateVerificationTokenFormData = {
1077
+ email: string;
1078
+ verificationToken: string;
1079
+ verificationType?: EnumVerificationType;
1195
1080
  };
1196
- type PuzzleBaseGame = {
1197
- questions: PuzzleQuestion[];
1081
+ type CreateValidateVerificationTokenFormData = CreateFormData<ValidateVerificationTokenFormData>;
1082
+ type AuthPayloadType = {
1083
+ message: string;
1084
+ token: string;
1085
+ refreshToken: string | null;
1086
+ user: SafeUserType;
1198
1087
  };
1199
- type PuzzleGameData = GlobalGameData & {
1200
- gameFields: PuzzleBaseGame;
1201
- /**
1202
- * Stores user answers only.
1203
- * Never store correctness from client.
1204
- */
1205
- answeredQuestions: PuzzleAnsweredQuestion[];
1088
+ type RefreshTokenPayloadType = {
1089
+ refreshToken: string;
1090
+ token: string;
1206
1091
  };
1207
1092
 
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;
1093
+ type ParticipantType = {
1094
+ active: boolean;
1095
+ isAssociate?: boolean | null;
1096
+ userAvatar: string | null;
1097
+ userEmail: string;
1098
+ userId: string;
1099
+ userName: string;
1219
1100
  };
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"
1101
+ interface ChatMessageInput {
1102
+ content: string;
1103
+ replyToMessageId?: string | null;
1104
+ senderId: string;
1225
1105
  }
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;
1106
+ type ChatMessageReplyPreview = {
1107
+ senderId: string;
1108
+ senderName: string;
1109
+ contentPreview: string;
1234
1110
  };
1235
- type GameDataMap = {
1236
- [EnumGameType.DAILY_CLUE]: DailyClueGameData;
1237
- [EnumGameType.MINI_QUIZ]: PuzzleGameData;
1238
- [EnumGameType.ODD_ONE_OUT]: PuzzleGameData;
1111
+ type ChatMessageReaction = {
1112
+ userId: string;
1113
+ createdAt: Date;
1239
1114
  };
1240
- type GameDataType = {
1241
- [K in keyof GameDataMap]?: GameDataMap[K] | null;
1115
+ type ChatMessageSeen = {
1116
+ userId: string;
1117
+ seenAt: Date;
1242
1118
  };
1243
- type GameType = Pick<BaseGameType, "gameTitle" | "gameType" | "gameTypeId"> & {
1119
+ interface ChatMessageType {
1120
+ _id?: string;
1121
+ content: string;
1122
+ createdAt?: Date;
1123
+ replyToMessageId?: string | null;
1124
+ replyPreview?: ChatMessageReplyPreview | null;
1125
+ likedBy?: ChatMessageReaction[];
1126
+ senderId: string;
1127
+ seenBy?: ChatMessageSeen[];
1128
+ updatedAt?: Date;
1129
+ }
1130
+ interface ChatType {
1244
1131
  _id: string;
1245
1132
  active: boolean;
1133
+ chatDescription?: string | null;
1134
+ chatName: string;
1135
+ chatType: EnumChatType;
1246
1136
  createdAt: Date;
1247
- gameData: GameDataType;
1248
- gameHistory: GameHistory[] | null;
1137
+ deletedAt: Date | null;
1138
+ messages: ChatMessageType[];
1139
+ participants: ParticipantType[];
1140
+ region: string | null;
1141
+ updatedAt: Date | null;
1142
+ }
1143
+ interface ReportChatUser {
1144
+ _id: string;
1145
+ chatId: string;
1146
+ createdAt: Date;
1147
+ reason: {
1148
+ reasonType: EnumChatReportReason;
1149
+ details: string | null;
1150
+ };
1151
+ reportedUserId: string;
1152
+ reporterUserId: string;
1153
+ resolved: boolean;
1249
1154
  updatedAt: Date | null;
1155
+ }
1156
+
1157
+ type ContactUsFormData = {
1158
+ email: string;
1159
+ firstName: string;
1160
+ lastName: string;
1161
+ message: string;
1250
1162
  };
1251
- type GameDocType = {
1163
+ type CreateContactUsFormData = CreateFormData<ContactUsFormData>;
1164
+
1165
+ interface NotificationDataType {
1166
+ resourceId: string;
1167
+ resourceName: string;
1168
+ resourceType: EnumNotificationResourceType;
1169
+ }
1170
+ type NotificationType = {
1252
1171
  _id: string;
1253
- active: boolean;
1172
+ userId: string;
1173
+ title: string;
1174
+ message: string;
1175
+ isRead: boolean;
1176
+ type: EnumNotificationType;
1177
+ data: NotificationDataType | null;
1254
1178
  createdAt: Date;
1255
- deletedAt: Date | null;
1256
- games: GameType[] | null;
1257
- owner: OwnerType;
1258
- points: number;
1259
- updatedAt: Date | null;
1179
+ updatedAt: Date;
1260
1180
  };
1261
- type GameLeaderboard = {
1262
- gameHistory: GameHistory[] | null;
1263
- overallPoints: number;
1264
- owner: OwnerType;
1181
+ type NotificationCount = {
1182
+ total: number;
1183
+ unread: number;
1184
+ };
1185
+ type CreateBulkNotificationInput = {
1186
+ data: NotificationDataType | null;
1187
+ message: string;
1188
+ title: string;
1189
+ type: EnumNotificationType;
1190
+ userIds: string[];
1265
1191
  };
1266
1192
 
1267
- declare enum EnumPostType {
1268
- MARKET_FACES = "market_faces",
1269
- CLUE_BITES = "clue_bites",
1270
- PLAY_AND_WIN = "play_and_win"
1193
+ declare const PKG: "@timardex/cluemart-shared";
1194
+ declare const IMAGE_EXTENSION: ".webp";
1195
+ /**
1196
+ * Basenames under the shared images directory — use with `getSharedImagePath` from `@timardex/cluemart-shared/images/node` (Express / Node).
1197
+ * 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.
1198
+ * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
1199
+ */
1200
+ declare const posterIds: readonly ["mini-market1", "mini-market2", "mini-market3", "mini-market4", "mini-market5", "poster1", "poster2", "poster3", "poster4"];
1201
+ declare const posterFiles: { readonly [K in (typeof posterIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1202
+ /**
1203
+ * Basenames for assets under `src/images/clui/` in source; they are copied flat into `dist/images/` (same as posters).
1204
+ * `images/node` reads this at runtime for `getSharedImagePath` allow-listing.
1205
+ */
1206
+ declare const cluiIds: readonly ["cluiTui", "sima", "tablas", "telefonos", "ugralos"];
1207
+ declare const cluiFiles: { readonly [K in (typeof cluiIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1208
+ declare const iconIds: readonly ["apple-maps-icon", "facebook", "google-maps-icon", "instagram", "meet", "poll", "tiktok", "tip", "waze-maps-icon", "website", "youtube"];
1209
+ declare const iconFiles: { readonly [K in (typeof iconIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1210
+ declare const badgeIds: readonly ["corporate", "private", "school"];
1211
+ declare const badgeFiles: { readonly [K in (typeof badgeIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1212
+ declare const logoIds: readonly ["googleMaps-logo-dark", "googleMaps-logo-light", "logo-atr", "logo-dark", "logo"];
1213
+ declare const logoFiles: { readonly [K in (typeof logoIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1214
+ declare const otherImagesIds: readonly ["banner-horizontal", "banner-vertical", "gazebo-top", "qr-code", "store-android", "store-ios"];
1215
+ declare const otherImagesFiles: { readonly [K in (typeof otherImagesIds)[number]]: `${K}${typeof IMAGE_EXTENSION}`; };
1216
+ /**
1217
+ * Module specifiers for each poster (not resolved file URLs). Use a static import or require with these paths
1218
+ * so your bundler resolves the file, e.g.
1219
+ * `import poster1 from "@timardex/cluemart-shared/images/poster1.webp"`
1220
+ * or `require("@timardex/cluemart-shared/images/poster1.webp")` (React Native / Metro).
1221
+ *
1222
+ * Derived from `posterFiles` so keys and filenames stay aligned.
1223
+ */
1224
+ declare const posters: { readonly [K in keyof typeof posterFiles]: `${typeof PKG}/images/${(typeof posterFiles)[K]}`; };
1225
+ /**
1226
+ * Module specifiers for Clui assets (same flat `@…/images/<file>.webp` pattern as posters), e.g.
1227
+ * `import clui from "@timardex/cluemart-shared/images/cluiTui.webp"`.
1228
+ */
1229
+ declare const cluiImages: { readonly [K in keyof typeof cluiFiles]: `${typeof PKG}/images/${(typeof cluiFiles)[K]}`; };
1230
+ declare const icons: { readonly [K in keyof typeof iconFiles]: `${typeof PKG}/images/${(typeof iconFiles)[K]}`; };
1231
+ declare const badges: { readonly [K in keyof typeof badgeFiles]: `${typeof PKG}/images/${(typeof badgeFiles)[K]}`; };
1232
+ declare const logos: { readonly [K in keyof typeof logoFiles]: `${typeof PKG}/images/${(typeof logoFiles)[K]}`; };
1233
+ declare const otherImages: { readonly [K in keyof typeof otherImagesFiles]: `${typeof PKG}/images/${(typeof otherImagesFiles)[K]}`; };
1234
+ type PosterAssetId = keyof typeof posters;
1235
+ /** A single filename under the shared images directory (values of `posterFiles`). */
1236
+ type PosterImageBasename = (typeof posterFiles)[PosterAssetId];
1237
+ type CluiImageId = keyof typeof cluiImages;
1238
+ /** Basename under the shared images directory (values of `cluiFiles`). */
1239
+ type CluiImageBasename = (typeof cluiFiles)[CluiImageId];
1240
+ type IconId = keyof typeof icons;
1241
+ type IconBasename = (typeof iconFiles)[IconId];
1242
+ type BadgeId = keyof typeof badges;
1243
+ type BadgeBasename = (typeof badgeFiles)[BadgeId];
1244
+ type LogoId = keyof typeof logos;
1245
+ type LogoBasename = (typeof logoFiles)[LogoId];
1246
+ type OtherImagesId = keyof typeof otherImages;
1247
+ type OtherImagesBasename = (typeof otherImagesFiles)[OtherImagesId];
1248
+
1249
+ interface PosterInputType {
1250
+ description: string;
1251
+ posterName: PosterAssetId;
1252
+ resourceId: string;
1253
+ resourceType: EnumResourceType;
1271
1254
  }
1272
- declare enum EnumPostContentType {
1273
- GAME = "game",
1274
- IMAGE = "image",
1275
- LIST = "list",
1276
- TEXTAREA = "textarea",
1277
- VIDEO = "video"
1255
+
1256
+ declare enum EnumAdShowOn {
1257
+ EVENTS_PAGE = "Events_page",
1258
+ FRONT_PAGE = "Front_page",
1259
+ PARTNERS_PAGE = "Partners_page",
1260
+ VENDORS_PAGE = "Vendors_page"
1278
1261
  }
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;
1262
+ declare enum EnumAdStatus {
1263
+ ACTIVE = "Active",
1264
+ PAUSED = "Paused",
1265
+ EXPIRED = "Expired"
1266
+ }
1267
+ declare enum EnumAdType {
1268
+ SPONSORED = "Sponsored",
1269
+ FREE = "Free"
1270
+ }
1271
+ declare enum EnumAdStyle {
1272
+ BLOOM = "Bloom",
1273
+ RISE = "Rise"
1274
+ }
1275
+ type AdResource = {
1276
+ adDescription: string;
1277
+ adImage: string;
1278
+ adStyle: EnumAdStyle;
1279
+ adTitle: string;
1280
+ adType: EnumAdType;
1281
+ resourceId: string;
1282
+ resourceName: string;
1283
+ resourceRegion: string;
1284
+ resourceType: EnumResourceType;
1315
1285
  };
1316
- interface PostFormData {
1286
+ interface AdFormData {
1317
1287
  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;
1288
+ end: Date;
1289
+ resource: AdResource;
1290
+ showOn: EnumAdShowOn[];
1291
+ start?: Date;
1292
+ status: EnumAdStatus;
1293
+ targetRegion: string[];
1331
1294
  }
1332
- type CreatePostFormData = CreateFormData<PostFormData>;
1333
- type PostContentType = Omit<PostContentFormData, "contentData"> & {
1334
- contentData: Omit<PostContentData, "imagesUpload">;
1335
- };
1336
- type PostType = Omit<PostFormData, "content" | "coverUpload"> & {
1295
+ type AdFormState = AdFormData;
1296
+ type CreateAdFormData = CreateFormData<AdFormData>;
1297
+ type CreateAdFormState = CreateFormData<AdFormState>;
1298
+ interface AdType extends AdFormData {
1337
1299
  _id: string;
1338
- content: PostContentType[];
1300
+ clicks?: number;
1339
1301
  createdAt: Date;
1340
- deletedAt: Date | null;
1302
+ impressions?: number;
1303
+ start: Date;
1341
1304
  updatedAt: Date | null;
1305
+ }
1306
+
1307
+ declare enum EnumActivity {
1308
+ FAVORITE = "FAVORITE",
1309
+ GOING = "GOING",
1310
+ INTERESTED = "INTERESTED",
1311
+ PRESENT = "PRESENT",
1312
+ VIEW = "VIEW"
1313
+ }
1314
+ type ResourceActivityEntry = {
1315
+ activityType: EnumActivity;
1316
+ location: LocationGeoType | null;
1317
+ dateStatus?: EnumEventDateStatus | null;
1318
+ startDate?: string | null;
1319
+ startTime?: string | null;
1320
+ timestamp: Date;
1321
+ userAgent: EnumOSPlatform;
1322
+ userId?: string | null;
1323
+ };
1324
+ type ResourceActivityType = {
1325
+ _id: string;
1326
+ resourceType: EnumResourceType;
1327
+ resourceId: string;
1328
+ activity: ResourceActivityEntry[];
1329
+ };
1330
+ type ResourceActivityInputType = {
1331
+ resourceId: string;
1332
+ resourceType: EnumResourceType;
1333
+ activity: Omit<ResourceActivityEntry, "timestamp">;
1342
1334
  };
1343
1335
 
1336
+ interface PartnerFormData extends BaseResourceTypeFormData {
1337
+ location: LocationType;
1338
+ nzbn: string;
1339
+ partnerType: EnumPartnerType;
1340
+ }
1341
+ type CreatePartnerFormData = CreateFormData<PartnerFormData>;
1342
+ interface PartnerType extends BaseResourceType {
1343
+ location: LocationType;
1344
+ nzbn: string;
1345
+ partnerType: EnumPartnerType;
1346
+ }
1347
+
1344
1348
  type PushTokenType = {
1345
1349
  _id: string;
1346
1350
  createdAt: Date;
@@ -2887,6 +2891,10 @@ declare function sortDatesChronologically<T extends {
2887
2891
  startDate: string;
2888
2892
  startTime: string;
2889
2893
  }>(dates: T[]): T[];
2894
+ declare const futureTimePeriods: {
2895
+ label: string;
2896
+ value: string;
2897
+ }[];
2890
2898
 
2891
2899
  declare const removeTypename: (obj: any) => any;
2892
2900
  /**
@@ -2934,4 +2942,4 @@ declare function filterEventsByDateStatusPeriod<T extends {
2934
2942
  dateTime?: Pick<DateTimeType, "dateStatus">[] | null;
2935
2943
  }>(events: T[], period: EnumEventDateStatus): T[];
2936
2944
 
2937
- 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, 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 };
2945
+ 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 };