@timardex/cluemart-shared 1.5.825 → 1.5.827

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 (60) hide show
  1. package/dist/{ad-CoAxqdwK.d.ts → ad-CCm6QYXb.d.ts} +1 -1
  2. package/dist/{ad-Ds-PlS5A.d.mts → ad-CZBOdoLr.d.mts} +1 -1
  3. package/dist/auth/index.cjs +202 -9
  4. package/dist/auth/index.cjs.map +1 -1
  5. package/dist/auth/index.d.mts +28 -3
  6. package/dist/auth/index.d.ts +28 -3
  7. package/dist/auth/index.mjs +49 -10
  8. package/dist/auth/index.mjs.map +1 -1
  9. package/dist/{chunk-N7KENXCS.mjs → chunk-4NGXTQWT.mjs} +3 -3
  10. package/dist/{chunk-IREUJYMR.mjs → chunk-AQR53ECY.mjs} +3 -3
  11. package/dist/chunk-GHW3ZGBY.mjs +168 -0
  12. package/dist/chunk-GHW3ZGBY.mjs.map +1 -0
  13. package/dist/{chunk-WZPKYUSX.mjs → chunk-MOB5R5BF.mjs} +2 -2
  14. package/dist/{chunk-MIDSLTUJ.mjs → chunk-UOFI3LKZ.mjs} +3 -2
  15. package/dist/chunk-UOFI3LKZ.mjs.map +1 -0
  16. package/dist/{chunk-UHDYJBIX.mjs → chunk-VNF22ITY.mjs} +2 -2
  17. package/dist/{chunk-D33VEY7Q.mjs → chunk-VR3TDBJL.mjs} +6 -6
  18. package/dist/chunk-VR3TDBJL.mjs.map +1 -0
  19. package/dist/{chunk-EUOLQ7SS.mjs → chunk-Y62E7JLT.mjs} +2 -2
  20. package/dist/enums/index.cjs +5 -5
  21. package/dist/enums/index.cjs.map +1 -1
  22. package/dist/enums/index.d.mts +6 -6
  23. package/dist/enums/index.d.ts +6 -6
  24. package/dist/enums/index.mjs +1 -1
  25. package/dist/formFields/index.cjs.map +1 -1
  26. package/dist/formFields/index.mjs +4 -4
  27. package/dist/graphql/index.cjs +2 -1
  28. package/dist/graphql/index.cjs.map +1 -1
  29. package/dist/graphql/index.d.mts +2 -2
  30. package/dist/graphql/index.d.ts +2 -2
  31. package/dist/graphql/index.mjs +3 -3
  32. package/dist/hooks/index.cjs +50 -1
  33. package/dist/hooks/index.cjs.map +1 -1
  34. package/dist/hooks/index.d.mts +2 -2
  35. package/dist/hooks/index.d.ts +2 -2
  36. package/dist/hooks/index.mjs +8 -7
  37. package/dist/hooks/index.mjs.map +1 -1
  38. package/dist/index.cjs +182 -6
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.d.mts +39 -8
  41. package/dist/index.d.ts +39 -8
  42. package/dist/index.mjs +172 -6
  43. package/dist/index.mjs.map +1 -1
  44. package/dist/sharing/index.cjs.map +1 -1
  45. package/dist/sharing/index.mjs +3 -3
  46. package/dist/types/index.d.mts +2 -2
  47. package/dist/types/index.d.ts +2 -2
  48. package/dist/types/index.mjs +1 -1
  49. package/dist/{user-D27cEk4K.d.ts → user-IVhCYYTM.d.ts} +12 -2
  50. package/dist/{user-CRJN9GQF.d.mts → user-duZdr5Nn.d.mts} +12 -2
  51. package/dist/utils/index.cjs.map +1 -1
  52. package/dist/utils/index.mjs +3 -3
  53. package/package.json +1 -1
  54. package/dist/chunk-D33VEY7Q.mjs.map +0 -1
  55. package/dist/chunk-MIDSLTUJ.mjs.map +0 -1
  56. /package/dist/{chunk-N7KENXCS.mjs.map → chunk-4NGXTQWT.mjs.map} +0 -0
  57. /package/dist/{chunk-IREUJYMR.mjs.map → chunk-AQR53ECY.mjs.map} +0 -0
  58. /package/dist/{chunk-WZPKYUSX.mjs.map → chunk-MOB5R5BF.mjs.map} +0 -0
  59. /package/dist/{chunk-UHDYJBIX.mjs.map → chunk-VNF22ITY.mjs.map} +0 -0
  60. /package/dist/{chunk-EUOLQ7SS.mjs.map → chunk-Y62E7JLT.mjs.map} +0 -0
package/dist/index.d.mts CHANGED
@@ -186,13 +186,13 @@ declare enum EnumUserLicence {
186
186
  }
187
187
  declare enum EnumUserRole {
188
188
  ADMIN = "admin",
189
- SUPER_ADMIN = "super_admin",
190
- CUSTOMER = "customer",
191
- MARKETING = "marketing",
192
- MODERATOR = "moderator",
193
- SUPPORT = "support",
194
189
  AFFILIATE = "affiliate",
195
- SCHOOL = "school"
190
+ CUSTOMER = "customer",
191
+ EVENT = "event",
192
+ PARTNER = "partner",
193
+ SCHOOL = "school",
194
+ SUPER_ADMIN = "super_admin",
195
+ VENDOR = "vendor"
196
196
  }
197
197
  declare enum EnumSocialMedia {
198
198
  FACEBOOK = "facebook",
@@ -953,6 +953,35 @@ interface AdminUpdateResourceType {
953
953
  resourceType: EnumResourceType;
954
954
  }
955
955
 
956
+ /**
957
+ * Canonical permission IDs. Add new permissions here first, then map them in
958
+ * ROLE_PERMISSIONS. Prefer resource.action names (e.g. users.read).
959
+ */
960
+ declare const PERMISSIONS: readonly ["*", "dashboard.admin", "dashboard.affiliate", "dashboard.customer", "dashboard.event", "dashboard.partner", "dashboard.school", "dashboard.vendor", "users.delete", "users.read", "users.update", "events.create", "events.delete", "events.read", "events.update", "vendors.create", "vendors.delete", "vendors.read", "vendors.update", "partners.create", "partners.delete", "partners.read", "partners.update", "schools.create", "schools.delete", "schools.read", "schools.update", "affiliates.create", "affiliates.delete", "affiliates.read", "affiliates.update", "ads.create", "ads.delete", "ads.read", "ads.update", "posts.create", "posts.delete", "posts.read", "posts.update", "settings.read", "settings.update", "affiliates.manage_own", "events.manage_own", "partners.manage_own", "schools.manage_own", "vendors.manage_own"];
961
+ type Permission = (typeof PERMISSIONS)[number];
962
+ declare const WILDCARD_PERMISSION: Permission;
963
+
964
+ /**
965
+ * Union of permissions for the given roles (deduped, stable order).
966
+ */
967
+ declare function getPermissionsForRoles(roles: EnumUserRole[] | null | undefined): Permission[];
968
+ /**
969
+ * Check a concrete permission list (e.g. authUser.permissions) for a grant.
970
+ * Honours the "*" wildcard.
971
+ */
972
+ declare function permissionListIncludes(permissions: readonly Permission[] | null | undefined, permission: Permission): boolean;
973
+ declare function hasPermission(roles: EnumUserRole[] | null | undefined, permission: Permission): boolean;
974
+ declare function hasAnyPermission(roles: EnumUserRole[] | null | undefined, permissions: readonly Permission[]): boolean;
975
+ declare function hasAllPermissions(roles: EnumUserRole[] | null | undefined, permissions: readonly Permission[]): boolean;
976
+ declare function hasRole(roles: EnumUserRole[] | null | undefined, role: EnumUserRole): boolean;
977
+ declare function hasAnyRole(roles: EnumUserRole[] | null | undefined, checkRoles: readonly EnumUserRole[]): boolean;
978
+
979
+ /**
980
+ * Static role → permissions map. Source of truth for access.
981
+ * Permissions for a user = union of all their roles' lists.
982
+ */
983
+ declare const ROLE_PERMISSIONS: Record<EnumUserRole, readonly Permission[]>;
984
+
956
985
  type UserFormData = {
957
986
  _id?: string;
958
987
  active: boolean;
@@ -1053,10 +1082,12 @@ type UserType = Omit<UserFormData, "confirmPassword" | "avatarUpload" | "_id"> &
1053
1082
  licences: UserLicenceType[] | null;
1054
1083
  overallPoints: number | null;
1055
1084
  partner: string | null;
1085
+ /** Computed from roles via ROLE_PERMISSIONS — not stored in Mongo. */
1086
+ permissions: Permission[];
1056
1087
  promoCodes?: PromoCodeType[] | null;
1057
1088
  redeemedRewards?: RedeemedReward[] | null;
1058
1089
  refreshToken: string | null;
1059
- role: EnumUserRole;
1090
+ roles: EnumUserRole[];
1060
1091
  school: string | null;
1061
1092
  stripe?: StripeSubscription;
1062
1093
  updatedAt: Date | null;
@@ -3230,4 +3261,4 @@ declare function toUserFacingErrorMessage(error: string | null | undefined, fall
3230
3261
  /** Extracts and sanitizes an unknown catch/Apollo error for toasts and alerts. */
3231
3262
  declare function getErrorMessage(error: unknown, fallback?: string): string;
3232
3263
 
3233
- export { AFFILIATE_PARTICIPANT_TYPE_LABELS, ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AffiliateBankAccountDetailsType, type AffiliateContactDetails, type AffiliateDetailsType, type AffiliateFormData, type AffiliateResourceType, type AffiliateRewardType, type AffiliateType, type AffiliateUserDefaultFields, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, CM_AFFILIATE_PROMO_CODE, CM_SCHOOL_PROMO_CODE, type CalendarSheetContentData, 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 CreateAffiliateFormData, 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, DEFAULT_USER_FACING_ERROR, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumAffiliateParticipantType, EnumAffiliateRewardType, 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 EventScheduleStatusPresentation, type EventScheduleStatusTone, type EventStatusType, type EventType, type FormDateField, type FormField, GET_EVENT, GET_EVENT_BY_SLUG, GET_EVENT_INFO, GET_PARTNER, GET_PARTNER_BY_SLUG, GET_POST, GET_POST_BY_SLUG, GET_RESOURCE_CONNECTIONS, GET_VENDOR, GET_VENDOR_BY_SLUG, GET_VENDOR_INFO, 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, KNOWN_EVENT_SCHEDULE_STATUSES, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, NETWORK_USER_FACING_ERROR, 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 PostResource, 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 RedeemHistoryType, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelatedPostType, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType$1 as 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 ShareSlugResource, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type SocialShareResourceType, type StallType, type StallholderFilterOption, 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, bankAccountDetailsFields, buildApplicationShareDescription, buildCalendarSheetContentData, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, collectStallholderStartDates, collectVendorEventRelationDateTimes, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventHasSelectedDate, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, eventStartDatesSet, filterEventsByDateStatusPeriod, filterRegisteredVendorsByEventDatesOnly, filterRegisteredVendorsForEvent, filterUnregisteredVendorsByEventDatesOnly, filterUnregisteredVendorsForEvent, filterVendorEventsBySelectedDate, findEventDateTimeByIsoDate, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatIrdNumber, formatNZBankAccount, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, fromCalendarIsoDate, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, getErrorMessage, getEventCalendarIsoDates, getEventDatesWithStallholders, getEventScheduleStatusLabel, getEventScheduleStatusPresentation, getEventScheduleStatusTone, getEventStallholderEmptyMessage, getRegisteredVendorCategoryNames, getRegisteredVendorStartDates, getStallholderCategoryNames, getStallholderCategoryOptions, getUnregisteredVendorCategoryNames, getUnregisteredVendorStartDates, getVendorEventRelationDateOptions, getVendorEventRelationStartDates, getVendorEventsEmptyMessage, hasMatchingEventDate, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isInternalErrorMessage, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, isResourceImageActive, isTransientNetworkError, isValidIrdNumber, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, matchesCategory, matchesSelectedDate, normalizeIrdNumber, normalizeResourceImage, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, relationHasSelectedDate, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, resolveResourceImageActive, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, shareSlugResourceId, shouldShowEventActionsWithWeather, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, stripOverlaySubtitleSpecialChars, tagOptions, timeFormat, toCalendarIsoDate, toGraphqlQueryString, toNZTime, toShareSocialImageCacheVersion, toUserFacingErrorMessage, 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, useDeleteAffiliate, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAffiliate, useGetAffiliates, 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, useRedeemAffiliateReward, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAffiliateDetails, 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 };
3264
+ export { AFFILIATE_PARTICIPANT_TYPE_LABELS, ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AffiliateBankAccountDetailsType, type AffiliateContactDetails, type AffiliateDetailsType, type AffiliateFormData, type AffiliateResourceType, type AffiliateRewardType, type AffiliateType, type AffiliateUserDefaultFields, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, CM_AFFILIATE_PROMO_CODE, CM_SCHOOL_PROMO_CODE, type CalendarSheetContentData, 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 CreateAffiliateFormData, 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, DEFAULT_USER_FACING_ERROR, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumAffiliateParticipantType, EnumAffiliateRewardType, 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 EventScheduleStatusPresentation, type EventScheduleStatusTone, type EventStatusType, type EventType, type FormDateField, type FormField, GET_EVENT, GET_EVENT_BY_SLUG, GET_EVENT_INFO, GET_PARTNER, GET_PARTNER_BY_SLUG, GET_POST, GET_POST_BY_SLUG, GET_RESOURCE_CONNECTIONS, GET_VENDOR, GET_VENDOR_BY_SLUG, GET_VENDOR_INFO, 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, KNOWN_EVENT_SCHEDULE_STATUSES, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, NETWORK_USER_FACING_ERROR, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, PERMISSIONS, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type Permission, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostResource, 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, ROLE_PERMISSIONS, type RedeemHistoryType, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelatedPostType, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType$1 as 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 ShareSlugResource, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type SocialShareResourceType, type StallType, type StallholderFilterOption, 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, WILDCARD_PERMISSION, appendShareMoreInfoLine, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, bankAccountDetailsFields, buildApplicationShareDescription, buildCalendarSheetContentData, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, collectStallholderStartDates, collectVendorEventRelationDateTimes, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventHasSelectedDate, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, eventStartDatesSet, filterEventsByDateStatusPeriod, filterRegisteredVendorsByEventDatesOnly, filterRegisteredVendorsForEvent, filterUnregisteredVendorsByEventDatesOnly, filterUnregisteredVendorsForEvent, filterVendorEventsBySelectedDate, findEventDateTimeByIsoDate, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatIrdNumber, formatNZBankAccount, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, fromCalendarIsoDate, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, getErrorMessage, getEventCalendarIsoDates, getEventDatesWithStallholders, getEventScheduleStatusLabel, getEventScheduleStatusPresentation, getEventScheduleStatusTone, getEventStallholderEmptyMessage, getPermissionsForRoles, getRegisteredVendorCategoryNames, getRegisteredVendorStartDates, getStallholderCategoryNames, getStallholderCategoryOptions, getUnregisteredVendorCategoryNames, getUnregisteredVendorStartDates, getVendorEventRelationDateOptions, getVendorEventRelationStartDates, getVendorEventsEmptyMessage, hasAllPermissions, hasAnyPermission, hasAnyRole, hasMatchingEventDate, hasPermission, hasRole, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isInternalErrorMessage, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, isResourceImageActive, isTransientNetworkError, isValidIrdNumber, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, matchesCategory, matchesSelectedDate, normalizeIrdNumber, normalizeResourceImage, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, permissionListIncludes, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, relationHasSelectedDate, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, resolveResourceImageActive, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, shareSlugResourceId, shouldShowEventActionsWithWeather, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, stripOverlaySubtitleSpecialChars, tagOptions, timeFormat, toCalendarIsoDate, toGraphqlQueryString, toNZTime, toShareSocialImageCacheVersion, toUserFacingErrorMessage, 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, useDeleteAffiliate, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAffiliate, useGetAffiliates, 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, useRedeemAffiliateReward, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAffiliateDetails, 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 };
package/dist/index.d.ts CHANGED
@@ -186,13 +186,13 @@ declare enum EnumUserLicence {
186
186
  }
187
187
  declare enum EnumUserRole {
188
188
  ADMIN = "admin",
189
- SUPER_ADMIN = "super_admin",
190
- CUSTOMER = "customer",
191
- MARKETING = "marketing",
192
- MODERATOR = "moderator",
193
- SUPPORT = "support",
194
189
  AFFILIATE = "affiliate",
195
- SCHOOL = "school"
190
+ CUSTOMER = "customer",
191
+ EVENT = "event",
192
+ PARTNER = "partner",
193
+ SCHOOL = "school",
194
+ SUPER_ADMIN = "super_admin",
195
+ VENDOR = "vendor"
196
196
  }
197
197
  declare enum EnumSocialMedia {
198
198
  FACEBOOK = "facebook",
@@ -953,6 +953,35 @@ interface AdminUpdateResourceType {
953
953
  resourceType: EnumResourceType;
954
954
  }
955
955
 
956
+ /**
957
+ * Canonical permission IDs. Add new permissions here first, then map them in
958
+ * ROLE_PERMISSIONS. Prefer resource.action names (e.g. users.read).
959
+ */
960
+ declare const PERMISSIONS: readonly ["*", "dashboard.admin", "dashboard.affiliate", "dashboard.customer", "dashboard.event", "dashboard.partner", "dashboard.school", "dashboard.vendor", "users.delete", "users.read", "users.update", "events.create", "events.delete", "events.read", "events.update", "vendors.create", "vendors.delete", "vendors.read", "vendors.update", "partners.create", "partners.delete", "partners.read", "partners.update", "schools.create", "schools.delete", "schools.read", "schools.update", "affiliates.create", "affiliates.delete", "affiliates.read", "affiliates.update", "ads.create", "ads.delete", "ads.read", "ads.update", "posts.create", "posts.delete", "posts.read", "posts.update", "settings.read", "settings.update", "affiliates.manage_own", "events.manage_own", "partners.manage_own", "schools.manage_own", "vendors.manage_own"];
961
+ type Permission = (typeof PERMISSIONS)[number];
962
+ declare const WILDCARD_PERMISSION: Permission;
963
+
964
+ /**
965
+ * Union of permissions for the given roles (deduped, stable order).
966
+ */
967
+ declare function getPermissionsForRoles(roles: EnumUserRole[] | null | undefined): Permission[];
968
+ /**
969
+ * Check a concrete permission list (e.g. authUser.permissions) for a grant.
970
+ * Honours the "*" wildcard.
971
+ */
972
+ declare function permissionListIncludes(permissions: readonly Permission[] | null | undefined, permission: Permission): boolean;
973
+ declare function hasPermission(roles: EnumUserRole[] | null | undefined, permission: Permission): boolean;
974
+ declare function hasAnyPermission(roles: EnumUserRole[] | null | undefined, permissions: readonly Permission[]): boolean;
975
+ declare function hasAllPermissions(roles: EnumUserRole[] | null | undefined, permissions: readonly Permission[]): boolean;
976
+ declare function hasRole(roles: EnumUserRole[] | null | undefined, role: EnumUserRole): boolean;
977
+ declare function hasAnyRole(roles: EnumUserRole[] | null | undefined, checkRoles: readonly EnumUserRole[]): boolean;
978
+
979
+ /**
980
+ * Static role → permissions map. Source of truth for access.
981
+ * Permissions for a user = union of all their roles' lists.
982
+ */
983
+ declare const ROLE_PERMISSIONS: Record<EnumUserRole, readonly Permission[]>;
984
+
956
985
  type UserFormData = {
957
986
  _id?: string;
958
987
  active: boolean;
@@ -1053,10 +1082,12 @@ type UserType = Omit<UserFormData, "confirmPassword" | "avatarUpload" | "_id"> &
1053
1082
  licences: UserLicenceType[] | null;
1054
1083
  overallPoints: number | null;
1055
1084
  partner: string | null;
1085
+ /** Computed from roles via ROLE_PERMISSIONS — not stored in Mongo. */
1086
+ permissions: Permission[];
1056
1087
  promoCodes?: PromoCodeType[] | null;
1057
1088
  redeemedRewards?: RedeemedReward[] | null;
1058
1089
  refreshToken: string | null;
1059
- role: EnumUserRole;
1090
+ roles: EnumUserRole[];
1060
1091
  school: string | null;
1061
1092
  stripe?: StripeSubscription;
1062
1093
  updatedAt: Date | null;
@@ -3230,4 +3261,4 @@ declare function toUserFacingErrorMessage(error: string | null | undefined, fall
3230
3261
  /** Extracts and sanitizes an unknown catch/Apollo error for toasts and alerts. */
3231
3262
  declare function getErrorMessage(error: unknown, fallback?: string): string;
3232
3263
 
3233
- export { AFFILIATE_PARTICIPANT_TYPE_LABELS, ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AffiliateBankAccountDetailsType, type AffiliateContactDetails, type AffiliateDetailsType, type AffiliateFormData, type AffiliateResourceType, type AffiliateRewardType, type AffiliateType, type AffiliateUserDefaultFields, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, CM_AFFILIATE_PROMO_CODE, CM_SCHOOL_PROMO_CODE, type CalendarSheetContentData, 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 CreateAffiliateFormData, 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, DEFAULT_USER_FACING_ERROR, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumAffiliateParticipantType, EnumAffiliateRewardType, 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 EventScheduleStatusPresentation, type EventScheduleStatusTone, type EventStatusType, type EventType, type FormDateField, type FormField, GET_EVENT, GET_EVENT_BY_SLUG, GET_EVENT_INFO, GET_PARTNER, GET_PARTNER_BY_SLUG, GET_POST, GET_POST_BY_SLUG, GET_RESOURCE_CONNECTIONS, GET_VENDOR, GET_VENDOR_BY_SLUG, GET_VENDOR_INFO, 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, KNOWN_EVENT_SCHEDULE_STATUSES, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, NETWORK_USER_FACING_ERROR, 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 PostResource, 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 RedeemHistoryType, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelatedPostType, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType$1 as 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 ShareSlugResource, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type SocialShareResourceType, type StallType, type StallholderFilterOption, 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, bankAccountDetailsFields, buildApplicationShareDescription, buildCalendarSheetContentData, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, collectStallholderStartDates, collectVendorEventRelationDateTimes, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventHasSelectedDate, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, eventStartDatesSet, filterEventsByDateStatusPeriod, filterRegisteredVendorsByEventDatesOnly, filterRegisteredVendorsForEvent, filterUnregisteredVendorsByEventDatesOnly, filterUnregisteredVendorsForEvent, filterVendorEventsBySelectedDate, findEventDateTimeByIsoDate, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatIrdNumber, formatNZBankAccount, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, fromCalendarIsoDate, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, getErrorMessage, getEventCalendarIsoDates, getEventDatesWithStallholders, getEventScheduleStatusLabel, getEventScheduleStatusPresentation, getEventScheduleStatusTone, getEventStallholderEmptyMessage, getRegisteredVendorCategoryNames, getRegisteredVendorStartDates, getStallholderCategoryNames, getStallholderCategoryOptions, getUnregisteredVendorCategoryNames, getUnregisteredVendorStartDates, getVendorEventRelationDateOptions, getVendorEventRelationStartDates, getVendorEventsEmptyMessage, hasMatchingEventDate, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isInternalErrorMessage, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, isResourceImageActive, isTransientNetworkError, isValidIrdNumber, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, matchesCategory, matchesSelectedDate, normalizeIrdNumber, normalizeResourceImage, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, relationHasSelectedDate, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, resolveResourceImageActive, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, shareSlugResourceId, shouldShowEventActionsWithWeather, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, stripOverlaySubtitleSpecialChars, tagOptions, timeFormat, toCalendarIsoDate, toGraphqlQueryString, toNZTime, toShareSocialImageCacheVersion, toUserFacingErrorMessage, 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, useDeleteAffiliate, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAffiliate, useGetAffiliates, 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, useRedeemAffiliateReward, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAffiliateDetails, 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 };
3264
+ export { AFFILIATE_PARTICIPANT_TYPE_LABELS, ANDROID_URL, type AdFormData, type AdFormState, type AdResource, type AdType, type AdminUpdateResourceType, type AffiliateBankAccountDetailsType, type AffiliateContactDetails, type AffiliateDetailsType, type AffiliateFormData, type AffiliateResourceType, type AffiliateRewardType, type AffiliateType, type AffiliateUserDefaultFields, type AppSettingsFormData, type AppSettingsType, type AssociateType, type AuthPayloadType, type BadgeBasename, type BadgeId, type BaseGameMap, type BaseGameType, type BaseResourceType, type BaseResourceTypeFormData, CLUEMART_MAIN_DOMAIN_URL, CM_AFFILIATE_PROMO_CODE, CM_SCHOOL_PROMO_CODE, type CalendarSheetContentData, 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 CreateAffiliateFormData, 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, DEFAULT_USER_FACING_ERROR, type DailyClueBaseGame, type DailyClueGameData, type DateTimeType, type DateTimeWithPriceType, type DeviceInfo, EVENT_DATE_STATUS_PERIOD_MAP, EnumActivity, EnumAdShowOn, EnumAdStatus, EnumAdStyle, EnumAdType, EnumAffiliateParticipantType, EnumAffiliateRewardType, 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 EventScheduleStatusPresentation, type EventScheduleStatusTone, type EventStatusType, type EventType, type FormDateField, type FormField, GET_EVENT, GET_EVENT_BY_SLUG, GET_EVENT_INFO, GET_PARTNER, GET_PARTNER_BY_SLUG, GET_POST, GET_POST_BY_SLUG, GET_RESOURCE_CONNECTIONS, GET_VENDOR, GET_VENDOR_BY_SLUG, GET_VENDOR_INFO, 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, KNOWN_EVENT_SCHEDULE_STATUSES, type LocationGeoType, type LocationType, type LoginFormData, type LogoBasename, type LogoId, type MarketingMaterialRequestInputType, NETWORK_USER_FACING_ERROR, type NotificationCount, type NotificationDataType, type NotificationType, type Nullable, OG_DESCRIPTION_LINE_BREAK, type OptionItem, type OtherImagesBasename, type OtherImagesId, type OwnerType, PERMISSIONS, POST_SHARE_RESOURCE_TYPES, PROMO_CODE_PREFIX, PUBLIC_SHARE_PATH_TYPES, type ParticipantType, type PartnerFormData, type PartnerType, type PaymentInfoType, type Permission, type PostContentData, type PostContentFormData, type PostContentGame, type PostContentImage, type PostContentList, type PostContentTextarea, type PostContentType, type PostContentVideo, type PostFileInput, type PostFormData, type PostResource, 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, ROLE_PERMISSIONS, type RedeemHistoryType, type RedeemRewardInput, type RedeemRewardResponse, type RedeemedReward, type RefreshTokenPayloadType, type RefundPolicy, type Region, type RegisterFormData, type RelatedPostType, type RelationDate, type RelationInputType, type RelationSharePathType, type RelationShareResourceType, type RelationType$1 as 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 ShareSlugResource, type ShareType, type ShareVendorForApplication, type ShareVendorForPublic, type ShareVendorInfoForApplication, type SocialMediaType, type SocialShareResourceType, type StallType, type StallholderFilterOption, 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, WILDCARD_PERMISSION, appendShareMoreInfoLine, availableCategories, availableRegionOptions, availableRegionTypes, availableTagTypes, badgeFiles, badgeIds, badges, bankAccountDetailsFields, buildApplicationShareDescription, buildCalendarSheetContentData, buildFacebookShareQuote, buildInvitationShareDescription, buildPublicEventShareDescription, buildPublicVendorShareDescription, buildShareMessageSections, buildShareOgDescription, buildShareOgDescriptionFromSections, buildSharePagePath, buildShareUrl, capitalizeFirstLetter, categoryColors, cluemartSocialMedia, cluiFiles, cluiIds, cluiImages, collectStallholderStartDates, collectVendorEventRelationDateTimes, companyContactFields, computeDailyClueState, contactUsFields, darkColors, dateFormat, emailField, eventBasicInfoFields, eventEndDateFields, eventHasSelectedDate, eventInfo, eventInfoPaymentInfo, eventMatchesDateStatusPeriod, eventStartDateFields, eventStartDatesSet, filterEventsByDateStatusPeriod, filterRegisteredVendorsByEventDatesOnly, filterRegisteredVendorsForEvent, filterUnregisteredVendorsByEventDatesOnly, filterUnregisteredVendorsForEvent, filterVendorEventsBySelectedDate, findEventDateTimeByIsoDate, fonts, foodFlavourOptions, formatCategoryLabel, formatDate, formatIrdNumber, formatNZBankAccount, formatShareApplicationCategoriesSection, formatShareApplicationComplianceSection, formatShareApplicationPriceRangeLine, formatShareApplicationStallSizeLine, formatShareInvitationApplicationDeadlineLine, formatShareInvitationMarketDatesSection, formatShareInvitationRequirementsSection, formatShareIsFoodTrueLine, formatShareMarketDate, formatShareRainOrShineLine, formatShareStallLine, formatShareTagsSection, formatStallCapacityLabel, formatTimestamp, fromCalendarIsoDate, futureTimePeriods, gameScreenIdentifierList, gameTypeToDisplayName, getAllowedEventDateStatuses, getCurrentAndFutureDates, getErrorMessage, getEventCalendarIsoDates, getEventDatesWithStallholders, getEventScheduleStatusLabel, getEventScheduleStatusPresentation, getEventScheduleStatusTone, getEventStallholderEmptyMessage, getPermissionsForRoles, getRegisteredVendorCategoryNames, getRegisteredVendorStartDates, getStallholderCategoryNames, getStallholderCategoryOptions, getUnregisteredVendorCategoryNames, getUnregisteredVendorStartDates, getVendorEventRelationDateOptions, getVendorEventRelationStartDates, getVendorEventsEmptyMessage, hasAllPermissions, hasAnyPermission, hasAnyRole, hasMatchingEventDate, hasPermission, hasRole, iconFiles, iconIds, icons, isFutureDatesBeforeThreshold, isInternalErrorMessage, isIsoDateString, isPostShareResourceType, isRelationShareResourceType, isResourceImageActive, isTransientNetworkError, isValidIrdNumber, joinShareDescriptionSections, joinShareOgDescriptionSections, licenseNiceNames, lightColors, loginFields, logoFiles, logoIds, logos, mapArrayToOptions, matchesCategory, matchesSelectedDate, normalizeIrdNumber, normalizeResourceImage, normalizeShareOgDescription, normalizeShareRouteId, normalizeShareText, normalizeUrl, nzStartOfDay, otherImages, otherImagesFiles, otherImagesIds, packagingOptions, partnerBasicInfoFields, paymentMethodOptions, permissionListIncludes, posterFiles, posterIds, posters, priceUnits, producedIngOptions, productLabelGroups, profileFields, refundPolicyOptions, registerFields, relationHasSelectedDate, removeTypename, requestPasswordResetFields, requirementsOptions, resetPasswordFields, resolveResourceImageActive, rewardNiceNames, seededShuffle, shareMessageFooterPlacementForType, shareSlugResourceId, shouldShowEventActionsWithWeather, socialMediaFields, sortDatesChronologically, splitShareDescriptionSections, stallTypeOptions, statusOptions, stripOverlaySubtitleSpecialChars, tagOptions, timeFormat, toCalendarIsoDate, toGraphqlQueryString, toNZTime, toShareSocialImageCacheVersion, toUserFacingErrorMessage, 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, useDeleteAffiliate, useDeleteAllNotifications, useDeleteChat, useDeleteEvent, useDeleteNotification, useDeletePartner, useDeletePost, useDeleteRelation, useDeleteSchool, useDeleteUnregisteredVendor, useDeleteUser, useDeleteVendor, useGetAd, useGetAds, useGetAdsByRegion, useGetAffiliate, useGetAffiliates, 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, useRedeemAffiliateReward, useRedeemReward, useRefreshToken, useRegister, useRemoveParticipantFromChat, useRemoveUserFavouriteResource, useRemoveUserGoingResource, useRemoveUserInterestResource, useRemoveUserPresentResource, useReportChatUser, useRequestMarketingMaterial, useRequestPasswordReset, useResetPassword, useSearchEvents, useSearchPartners, useSearchVendors, useSelectPackage, useSelectStandardPackage, useSendChatMessage, useStartGame, useToggleChatMessageLike, useUnlinkUnregisteredVendorByInviterId, useUpdateAd, useUpdateAffiliateDetails, 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 };
package/dist/index.mjs CHANGED
@@ -199,13 +199,13 @@ var EnumUserLicence = /* @__PURE__ */ ((EnumUserLicence2) => {
199
199
  })(EnumUserLicence || {});
200
200
  var EnumUserRole = /* @__PURE__ */ ((EnumUserRole2) => {
201
201
  EnumUserRole2["ADMIN"] = "admin";
202
- EnumUserRole2["SUPER_ADMIN"] = "super_admin";
203
- EnumUserRole2["CUSTOMER"] = "customer";
204
- EnumUserRole2["MARKETING"] = "marketing";
205
- EnumUserRole2["MODERATOR"] = "moderator";
206
- EnumUserRole2["SUPPORT"] = "support";
207
202
  EnumUserRole2["AFFILIATE"] = "affiliate";
203
+ EnumUserRole2["CUSTOMER"] = "customer";
204
+ EnumUserRole2["EVENT"] = "event";
205
+ EnumUserRole2["PARTNER"] = "partner";
208
206
  EnumUserRole2["SCHOOL"] = "school";
207
+ EnumUserRole2["SUPER_ADMIN"] = "super_admin";
208
+ EnumUserRole2["VENDOR"] = "vendor";
209
209
  return EnumUserRole2;
210
210
  })(EnumUserRole || {});
211
211
  var EnumSocialMedia = /* @__PURE__ */ ((EnumSocialMedia2) => {
@@ -3397,8 +3397,9 @@ var USER_FIELDS_FRAGMENT = gql`
3397
3397
  overallPoints
3398
3398
  platform
3399
3399
  preferredRegion
3400
+ permissions
3400
3401
  promoCodes
3401
- role
3402
+ roles
3402
3403
  redeemedRewards {
3403
3404
  ...RedeemedRewardFields
3404
3405
  }
@@ -7971,6 +7972,161 @@ var fonts = {
7971
7972
  fontWeight: "400"
7972
7973
  }
7973
7974
  };
7975
+
7976
+ // src/auth/permissions/permissions.ts
7977
+ var PERMISSIONS = [
7978
+ "*",
7979
+ // Dashboards
7980
+ "dashboard.admin",
7981
+ "dashboard.affiliate",
7982
+ "dashboard.customer",
7983
+ "dashboard.event",
7984
+ "dashboard.partner",
7985
+ "dashboard.school",
7986
+ "dashboard.vendor",
7987
+ // Admin: users
7988
+ "users.delete",
7989
+ "users.read",
7990
+ "users.update",
7991
+ // Admin: events
7992
+ "events.create",
7993
+ "events.delete",
7994
+ "events.read",
7995
+ "events.update",
7996
+ // Admin: vendors
7997
+ "vendors.create",
7998
+ "vendors.delete",
7999
+ "vendors.read",
8000
+ "vendors.update",
8001
+ // Admin: partners
8002
+ "partners.create",
8003
+ "partners.delete",
8004
+ "partners.read",
8005
+ "partners.update",
8006
+ // Admin: schools
8007
+ "schools.create",
8008
+ "schools.delete",
8009
+ "schools.read",
8010
+ "schools.update",
8011
+ // Admin: affiliates
8012
+ "affiliates.create",
8013
+ "affiliates.delete",
8014
+ "affiliates.read",
8015
+ "affiliates.update",
8016
+ // Admin: ads / posts / settings
8017
+ "ads.create",
8018
+ "ads.delete",
8019
+ "ads.read",
8020
+ "ads.update",
8021
+ "posts.create",
8022
+ "posts.delete",
8023
+ "posts.read",
8024
+ "posts.update",
8025
+ "settings.read",
8026
+ "settings.update",
8027
+ // Product: own-resource management
8028
+ "affiliates.manage_own",
8029
+ "events.manage_own",
8030
+ "partners.manage_own",
8031
+ "schools.manage_own",
8032
+ "vendors.manage_own"
8033
+ ];
8034
+ var WILDCARD_PERMISSION = "*";
8035
+
8036
+ // src/auth/permissions/rolePermissions.ts
8037
+ var ADMIN_PERMISSIONS = [
8038
+ "dashboard.admin",
8039
+ "users.read",
8040
+ "users.update",
8041
+ "users.delete",
8042
+ "events.read",
8043
+ "events.create",
8044
+ "events.update",
8045
+ "events.delete",
8046
+ "vendors.read",
8047
+ "vendors.create",
8048
+ "vendors.update",
8049
+ "vendors.delete",
8050
+ "partners.read",
8051
+ "partners.create",
8052
+ "partners.update",
8053
+ "partners.delete",
8054
+ "schools.read",
8055
+ "schools.create",
8056
+ "schools.update",
8057
+ "schools.delete",
8058
+ "affiliates.read",
8059
+ "affiliates.create",
8060
+ "affiliates.update",
8061
+ "affiliates.delete",
8062
+ "ads.read",
8063
+ "ads.create",
8064
+ "ads.update",
8065
+ "ads.delete",
8066
+ "posts.read",
8067
+ "posts.create",
8068
+ "posts.update",
8069
+ "posts.delete",
8070
+ "settings.read",
8071
+ "settings.update"
8072
+ ];
8073
+ var ROLE_PERMISSIONS = {
8074
+ ["super_admin" /* SUPER_ADMIN */]: ["*"],
8075
+ ["admin" /* ADMIN */]: ADMIN_PERMISSIONS,
8076
+ ["customer" /* CUSTOMER */]: ["dashboard.customer"],
8077
+ ["event" /* EVENT */]: ["dashboard.event", "events.manage_own"],
8078
+ ["vendor" /* VENDOR */]: ["dashboard.vendor", "vendors.manage_own"],
8079
+ ["partner" /* PARTNER */]: ["dashboard.partner", "partners.manage_own"],
8080
+ ["school" /* SCHOOL */]: ["dashboard.school", "schools.manage_own"],
8081
+ ["affiliate" /* AFFILIATE */]: ["dashboard.affiliate", "affiliates.manage_own"]
8082
+ };
8083
+
8084
+ // src/auth/permissions/helpers.ts
8085
+ function normalizeRoles(roles) {
8086
+ if (!roles?.length) return [];
8087
+ return roles;
8088
+ }
8089
+ function getPermissionsForRoles(roles) {
8090
+ const seen = /* @__PURE__ */ new Set();
8091
+ const result = [];
8092
+ for (const role of normalizeRoles(roles)) {
8093
+ const perms = ROLE_PERMISSIONS[role] ?? [];
8094
+ for (const perm of perms) {
8095
+ if (!seen.has(perm)) {
8096
+ seen.add(perm);
8097
+ result.push(perm);
8098
+ }
8099
+ }
8100
+ }
8101
+ return result;
8102
+ }
8103
+ function permissionListIncludes(permissions, permission) {
8104
+ if (!permissions?.length) return false;
8105
+ const set = new Set(permissions);
8106
+ if (set.has(WILDCARD_PERMISSION)) return true;
8107
+ return set.has(permission);
8108
+ }
8109
+ function hasPermission(roles, permission) {
8110
+ return permissionListIncludes(getPermissionsForRoles(roles), permission);
8111
+ }
8112
+ function hasAnyPermission(roles, permissions) {
8113
+ if (permissions.length === 0) return false;
8114
+ const granted = getPermissionsForRoles(roles);
8115
+ return permissions.some((p) => permissionListIncludes(granted, p));
8116
+ }
8117
+ function hasAllPermissions(roles, permissions) {
8118
+ if (permissions.length === 0) return true;
8119
+ const granted = getPermissionsForRoles(roles);
8120
+ return permissions.every((p) => permissionListIncludes(granted, p));
8121
+ }
8122
+ function hasRole(roles, role) {
8123
+ return normalizeRoles(roles).includes(role);
8124
+ }
8125
+ function hasAnyRole(roles, checkRoles) {
8126
+ if (checkRoles.length === 0) return false;
8127
+ const set = new Set(normalizeRoles(roles));
8128
+ return checkRoles.some((r) => set.has(r));
8129
+ }
7974
8130
  export {
7975
8131
  AFFILIATE_PARTICIPANT_TYPE_LABELS,
7976
8132
  ANDROID_URL,
@@ -8033,6 +8189,7 @@ export {
8033
8189
  KNOWN_EVENT_SCHEDULE_STATUSES,
8034
8190
  NETWORK_USER_FACING_ERROR,
8035
8191
  OG_DESCRIPTION_LINE_BREAK,
8192
+ PERMISSIONS,
8036
8193
  POST_SHARE_RESOURCE_TYPES,
8037
8194
  PROMO_CODE_PREFIX,
8038
8195
  PUBLIC_SHARE_PATH_TYPES,
@@ -8042,6 +8199,7 @@ export {
8042
8199
  RELATION_SHARE_INVITATION,
8043
8200
  RELATION_SHARE_RESOURCE_TYPES,
8044
8201
  RESOURCE_SHARE_TYPES,
8202
+ ROLE_PERMISSIONS,
8045
8203
  SAVED_EMAIL_KEY,
8046
8204
  SAVED_PASSWORD_KEY,
8047
8205
  SAVED_REFRESH_TOKEN_KEY,
@@ -8076,6 +8234,7 @@ export {
8076
8234
  TIER_DISPLAY_LABELS,
8077
8235
  TIER_FROM_LICENCE,
8078
8236
  USER_STORAGE_KEY,
8237
+ WILDCARD_PERMISSION,
8079
8238
  appendShareMoreInfoLine,
8080
8239
  availableCategories,
8081
8240
  availableRegionOptions,
@@ -8158,6 +8317,7 @@ export {
8158
8317
  getEventScheduleStatusPresentation,
8159
8318
  getEventScheduleStatusTone,
8160
8319
  getEventStallholderEmptyMessage,
8320
+ getPermissionsForRoles,
8161
8321
  getRegisteredVendorCategoryNames,
8162
8322
  getRegisteredVendorStartDates,
8163
8323
  getStallholderCategoryNames,
@@ -8167,7 +8327,12 @@ export {
8167
8327
  getVendorEventRelationDateOptions,
8168
8328
  getVendorEventRelationStartDates,
8169
8329
  getVendorEventsEmptyMessage,
8330
+ hasAllPermissions,
8331
+ hasAnyPermission,
8332
+ hasAnyRole,
8170
8333
  hasMatchingEventDate,
8334
+ hasPermission,
8335
+ hasRole,
8171
8336
  iconFiles,
8172
8337
  iconIds,
8173
8338
  icons,
@@ -8203,6 +8368,7 @@ export {
8203
8368
  packagingOptions,
8204
8369
  partnerBasicInfoFields,
8205
8370
  paymentMethodOptions,
8371
+ permissionListIncludes,
8206
8372
  posterFiles,
8207
8373
  posterIds,
8208
8374
  posters,