@bash-app/bash-common 30.285.0 → 30.289.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/accessScreening.test.d.ts +2 -0
- package/dist/__tests__/accessScreening.test.d.ts.map +1 -0
- package/dist/__tests__/accessScreening.test.js +19 -0
- package/dist/__tests__/accessScreening.test.js.map +1 -0
- package/dist/__tests__/bookingIntent.test.d.ts +2 -0
- package/dist/__tests__/bookingIntent.test.d.ts.map +1 -0
- package/dist/__tests__/bookingIntent.test.js +36 -0
- package/dist/__tests__/bookingIntent.test.js.map +1 -0
- package/dist/__tests__/entertainmentNotableVenues.test.d.ts +2 -0
- package/dist/__tests__/entertainmentNotableVenues.test.d.ts.map +1 -0
- package/dist/__tests__/entertainmentNotableVenues.test.js +78 -0
- package/dist/__tests__/entertainmentNotableVenues.test.js.map +1 -0
- package/dist/__tests__/influencerAudience.test.d.ts +2 -0
- package/dist/__tests__/influencerAudience.test.d.ts.map +1 -0
- package/dist/__tests__/influencerAudience.test.js +22 -0
- package/dist/__tests__/influencerAudience.test.js.map +1 -0
- package/dist/__tests__/productLaunch.test.d.ts +2 -0
- package/dist/__tests__/productLaunch.test.d.ts.map +1 -0
- package/dist/__tests__/productLaunch.test.js +39 -0
- package/dist/__tests__/productLaunch.test.js.map +1 -0
- package/dist/__typecheck_probe__.d.ts +2 -0
- package/dist/__typecheck_probe__.d.ts.map +1 -0
- package/dist/__typecheck_probe__.js +2 -0
- package/dist/__typecheck_probe__.js.map +1 -0
- package/dist/accessScreening.d.ts +8 -0
- package/dist/accessScreening.d.ts.map +1 -0
- package/dist/accessScreening.js +18 -0
- package/dist/accessScreening.js.map +1 -0
- package/dist/aiEventPlan.d.ts +18 -0
- package/dist/aiEventPlan.d.ts.map +1 -0
- package/dist/aiEventPlan.js +59 -0
- package/dist/aiEventPlan.js.map +1 -0
- package/dist/bookingIntent.d.ts +23 -0
- package/dist/bookingIntent.d.ts.map +1 -0
- package/dist/bookingIntent.js +40 -0
- package/dist/bookingIntent.js.map +1 -0
- package/dist/definitions.d.ts +2 -0
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js.map +1 -1
- package/dist/dist/__tests__/accessScreening.test.d.ts +2 -0
- package/dist/dist/__tests__/accessScreening.test.d.ts.map +1 -0
- package/dist/dist/__tests__/accessScreening.test.js +16 -0
- package/dist/dist/__tests__/accessScreening.test.js.map +1 -0
- package/dist/dist/__tests__/agePolicy.test.d.ts +2 -0
- package/dist/dist/__tests__/agePolicy.test.d.ts.map +1 -0
- package/dist/dist/__tests__/agePolicy.test.js +203 -0
- package/dist/dist/__tests__/agePolicy.test.js.map +1 -0
- package/dist/dist/__tests__/bashSectionTitleForBashType.test.d.ts +2 -0
- package/dist/dist/__tests__/bashSectionTitleForBashType.test.d.ts.map +1 -0
- package/dist/dist/__tests__/bashSectionTitleForBashType.test.js +106 -0
- package/dist/dist/__tests__/bashSectionTitleForBashType.test.js.map +1 -0
- package/dist/dist/__tests__/bookingIntent.test.d.ts +2 -0
- package/dist/dist/__tests__/bookingIntent.test.d.ts.map +1 -0
- package/dist/dist/__tests__/bookingIntent.test.js +36 -0
- package/dist/dist/__tests__/bookingIntent.test.js.map +1 -0
- package/dist/dist/__tests__/definitionsHelpers.test.d.ts +2 -0
- package/dist/dist/__tests__/definitionsHelpers.test.d.ts.map +1 -0
- package/dist/dist/__tests__/definitionsHelpers.test.js +85 -0
- package/dist/dist/__tests__/definitionsHelpers.test.js.map +1 -0
- package/dist/dist/__tests__/entertainmentNotableVenues.test.d.ts +2 -0
- package/dist/dist/__tests__/entertainmentNotableVenues.test.d.ts.map +1 -0
- package/dist/dist/__tests__/entertainmentNotableVenues.test.js +78 -0
- package/dist/dist/__tests__/entertainmentNotableVenues.test.js.map +1 -0
- package/dist/dist/__tests__/extendedSchemas.test.d.ts +2 -0
- package/dist/dist/__tests__/extendedSchemas.test.d.ts.map +1 -0
- package/dist/dist/__tests__/extendedSchemas.test.js +40 -0
- package/dist/dist/__tests__/extendedSchemas.test.js.map +1 -0
- package/dist/dist/__tests__/getDisplayGender.test.d.ts +2 -0
- package/dist/dist/__tests__/getDisplayGender.test.d.ts.map +1 -0
- package/dist/dist/__tests__/getDisplayGender.test.js +34 -0
- package/dist/dist/__tests__/getDisplayGender.test.js.map +1 -0
- package/dist/dist/__tests__/groupTicketUtils.test.d.ts +2 -0
- package/dist/dist/__tests__/groupTicketUtils.test.d.ts.map +1 -0
- package/dist/dist/__tests__/groupTicketUtils.test.js +38 -0
- package/dist/dist/__tests__/groupTicketUtils.test.js.map +1 -0
- package/dist/dist/__tests__/influencerAudience.test.d.ts +2 -0
- package/dist/dist/__tests__/influencerAudience.test.d.ts.map +1 -0
- package/dist/dist/__tests__/influencerAudience.test.js +22 -0
- package/dist/dist/__tests__/influencerAudience.test.js.map +1 -0
- package/dist/dist/__tests__/membershipDefinitions.test.d.ts +2 -0
- package/dist/dist/__tests__/membershipDefinitions.test.d.ts.map +1 -0
- package/dist/dist/__tests__/membershipDefinitions.test.js +95 -0
- package/dist/dist/__tests__/membershipDefinitions.test.js.map +1 -0
- package/dist/dist/__tests__/requestAuthUser.test.d.ts +2 -0
- package/dist/dist/__tests__/requestAuthUser.test.d.ts.map +1 -0
- package/dist/dist/__tests__/requestAuthUser.test.js +84 -0
- package/dist/dist/__tests__/requestAuthUser.test.js.map +1 -0
- package/dist/dist/__tests__/serviceCheckoutPaymentMethods.test.d.ts +2 -0
- package/dist/dist/__tests__/serviceCheckoutPaymentMethods.test.d.ts.map +1 -0
- package/dist/dist/__tests__/serviceCheckoutPaymentMethods.test.js +41 -0
- package/dist/dist/__tests__/serviceCheckoutPaymentMethods.test.js.map +1 -0
- package/dist/dist/__tests__/statusEnums.test.d.ts +2 -0
- package/dist/dist/__tests__/statusEnums.test.d.ts.map +1 -0
- package/dist/dist/__tests__/statusEnums.test.js +106 -0
- package/dist/dist/__tests__/statusEnums.test.js.map +1 -0
- package/dist/dist/__tests__/storePrintArtworkUtils.test.d.ts +2 -0
- package/dist/dist/__tests__/storePrintArtworkUtils.test.d.ts.map +1 -0
- package/dist/dist/__tests__/storePrintArtworkUtils.test.js +35 -0
- package/dist/dist/__tests__/storePrintArtworkUtils.test.js.map +1 -0
- package/dist/dist/__tests__/stripeListingSubscriptionMessages.test.d.ts +2 -0
- package/dist/dist/__tests__/stripeListingSubscriptionMessages.test.d.ts.map +1 -0
- package/dist/dist/__tests__/stripeListingSubscriptionMessages.test.js +18 -0
- package/dist/dist/__tests__/stripeListingSubscriptionMessages.test.js.map +1 -0
- package/dist/dist/__tests__/ticketAdmission.test.d.ts +5 -0
- package/dist/dist/__tests__/ticketAdmission.test.d.ts.map +1 -0
- package/dist/dist/__tests__/ticketAdmission.test.js +42 -0
- package/dist/dist/__tests__/ticketAdmission.test.js.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.bankTransfer.test.d.ts +2 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.bankTransfer.test.d.ts.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.bankTransfer.test.js +30 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.bankTransfer.test.js.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.cashapp.test.d.ts +2 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.cashapp.test.d.ts.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.cashapp.test.js +33 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.cashapp.test.js.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.test.d.ts +2 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.test.d.ts.map +1 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.test.js +46 -0
- package/dist/dist/__tests__/ticketBnplPaymentMethods.test.js.map +1 -0
- package/dist/dist/__tests__/userReportTypes.test.d.ts +2 -0
- package/dist/dist/__tests__/userReportTypes.test.d.ts.map +1 -0
- package/dist/dist/__tests__/userReportTypes.test.js +81 -0
- package/dist/dist/__tests__/userReportTypes.test.js.map +1 -0
- package/dist/dist/__tests__/utmAttribution.test.d.ts +2 -0
- package/dist/dist/__tests__/utmAttribution.test.d.ts.map +1 -0
- package/dist/dist/__tests__/utmAttribution.test.js +92 -0
- package/dist/dist/__tests__/utmAttribution.test.js.map +1 -0
- package/dist/dist/accessScreening.d.ts +8 -0
- package/dist/dist/accessScreening.d.ts.map +1 -0
- package/dist/dist/accessScreening.js +18 -0
- package/dist/dist/accessScreening.js.map +1 -0
- package/dist/dist/aiApproval.d.ts +89 -0
- package/dist/dist/aiApproval.d.ts.map +1 -0
- package/dist/dist/aiApproval.js +82 -0
- package/dist/dist/aiApproval.js.map +1 -0
- package/dist/dist/aiEventPlan.d.ts +18 -0
- package/dist/dist/aiEventPlan.d.ts.map +1 -0
- package/dist/dist/aiEventPlan.js +59 -0
- package/dist/dist/aiEventPlan.js.map +1 -0
- package/dist/dist/bashFeedTypes.d.ts +208 -0
- package/dist/dist/bashFeedTypes.d.ts.map +1 -0
- package/dist/dist/bashFeedTypes.js +2 -0
- package/dist/dist/bashFeedTypes.js.map +1 -0
- package/dist/dist/bookingIntent.d.ts +23 -0
- package/dist/dist/bookingIntent.d.ts.map +1 -0
- package/dist/dist/bookingIntent.js +40 -0
- package/dist/dist/bookingIntent.js.map +1 -0
- package/dist/dist/competitionIdeas.d.ts +19 -0
- package/dist/dist/competitionIdeas.d.ts.map +1 -0
- package/dist/dist/competitionIdeas.js +405 -0
- package/dist/dist/competitionIdeas.js.map +1 -0
- package/dist/dist/competitionValidation.d.ts +10 -0
- package/dist/dist/competitionValidation.d.ts.map +1 -0
- package/dist/dist/competitionValidation.js +29 -0
- package/dist/dist/competitionValidation.js.map +1 -0
- package/dist/dist/definitions.d.ts +1045 -0
- package/dist/dist/definitions.d.ts.map +1 -0
- package/dist/dist/definitions.js +1047 -0
- package/dist/dist/definitions.js.map +1 -0
- package/dist/dist/entertainmentNotableVenues.d.ts +53 -0
- package/dist/dist/entertainmentNotableVenues.d.ts.map +1 -0
- package/dist/dist/entertainmentNotableVenues.js +101 -0
- package/dist/dist/entertainmentNotableVenues.js.map +1 -0
- package/dist/dist/extendedSchemas.d.ts +5834 -0
- package/dist/dist/extendedSchemas.d.ts.map +1 -0
- package/dist/dist/extendedSchemas.js +744 -0
- package/dist/dist/extendedSchemas.js.map +1 -0
- package/dist/dist/groupTicketUtils.d.ts +19 -0
- package/dist/dist/groupTicketUtils.d.ts.map +1 -0
- package/dist/dist/groupTicketUtils.js +74 -0
- package/dist/dist/groupTicketUtils.js.map +1 -0
- package/dist/dist/icebreakerPrompts.d.ts +9 -0
- package/dist/dist/icebreakerPrompts.d.ts.map +1 -0
- package/dist/dist/icebreakerPrompts.js +77 -0
- package/dist/dist/icebreakerPrompts.js.map +1 -0
- package/dist/dist/index.d.ts +110 -0
- package/dist/dist/index.d.ts.map +1 -0
- package/dist/dist/index.js +115 -0
- package/dist/dist/index.js.map +1 -0
- package/dist/dist/influencerAudience.d.ts +24 -0
- package/dist/dist/influencerAudience.d.ts.map +1 -0
- package/dist/dist/influencerAudience.js +112 -0
- package/dist/dist/influencerAudience.js.map +1 -0
- package/dist/dist/legalTemplates.d.ts +11 -0
- package/dist/dist/legalTemplates.d.ts.map +1 -0
- package/dist/dist/legalTemplates.js +19 -0
- package/dist/dist/legalTemplates.js.map +1 -0
- package/dist/dist/membershipDefinitions.d.ts +399 -0
- package/dist/dist/membershipDefinitions.d.ts.map +1 -0
- package/dist/dist/membershipDefinitions.js +765 -0
- package/dist/dist/membershipDefinitions.js.map +1 -0
- package/dist/dist/mirroredPrismaEnums.d.ts +160 -0
- package/dist/dist/mirroredPrismaEnums.d.ts.map +1 -0
- package/dist/dist/mirroredPrismaEnums.js +150 -0
- package/dist/dist/mirroredPrismaEnums.js.map +1 -0
- package/dist/dist/onSaleCapabilityRecommendations.d.ts +30 -0
- package/dist/dist/onSaleCapabilityRecommendations.d.ts.map +1 -0
- package/dist/dist/onSaleCapabilityRecommendations.js +92 -0
- package/dist/dist/onSaleCapabilityRecommendations.js.map +1 -0
- package/dist/dist/partnerStoreTypes.d.ts +127 -0
- package/dist/dist/partnerStoreTypes.d.ts.map +1 -0
- package/dist/dist/partnerStoreTypes.js +40 -0
- package/dist/dist/partnerStoreTypes.js.map +1 -0
- package/dist/dist/productLaunch.d.ts +17 -0
- package/dist/dist/productLaunch.d.ts.map +1 -0
- package/dist/dist/productLaunch.js +50 -0
- package/dist/dist/productLaunch.js.map +1 -0
- package/dist/dist/requestAuthUser.d.ts +36 -0
- package/dist/dist/requestAuthUser.d.ts.map +1 -0
- package/dist/dist/requestAuthUser.js +76 -0
- package/dist/dist/requestAuthUser.js.map +1 -0
- package/dist/dist/sms/smsTemplates.d.ts +27 -0
- package/dist/dist/sms/smsTemplates.d.ts.map +1 -0
- package/dist/dist/sms/smsTemplates.js +11 -0
- package/dist/dist/sms/smsTemplates.js.map +1 -0
- package/dist/dist/storePrintArtworkUtils.d.ts +22 -0
- package/dist/dist/storePrintArtworkUtils.d.ts.map +1 -0
- package/dist/dist/storePrintArtworkUtils.js +74 -0
- package/dist/dist/storePrintArtworkUtils.js.map +1 -0
- package/dist/dist/storeTypes.d.ts +81 -0
- package/dist/dist/storeTypes.d.ts.map +1 -0
- package/dist/dist/storeTypes.js +20 -0
- package/dist/dist/storeTypes.js.map +1 -0
- package/dist/dist/stripeListingSubscriptionMessages.d.ts +13 -0
- package/dist/dist/stripeListingSubscriptionMessages.d.ts.map +1 -0
- package/dist/dist/stripeListingSubscriptionMessages.js +21 -0
- package/dist/dist/stripeListingSubscriptionMessages.js.map +1 -0
- package/dist/dist/templates/eventTemplates.d.ts +45 -0
- package/dist/dist/templates/eventTemplates.d.ts.map +1 -0
- package/dist/dist/templates/eventTemplates.js +1191 -0
- package/dist/dist/templates/eventTemplates.js.map +1 -0
- package/dist/dist/ticketBnplPaymentMethods.d.ts +61 -0
- package/dist/dist/ticketBnplPaymentMethods.d.ts.map +1 -0
- package/dist/dist/ticketBnplPaymentMethods.js +83 -0
- package/dist/dist/ticketBnplPaymentMethods.js.map +1 -0
- package/dist/dist/userReportTypes.d.ts +117 -0
- package/dist/dist/userReportTypes.d.ts.map +1 -0
- package/dist/dist/userReportTypes.js +99 -0
- package/dist/dist/userReportTypes.js.map +1 -0
- package/dist/dist/utils/__tests__/addressUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/addressUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/addressUtils.test.js +138 -0
- package/dist/dist/utils/__tests__/addressUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/apiUtils.test.d.ts +5 -0
- package/dist/dist/utils/__tests__/apiUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/apiUtils.test.js +161 -0
- package/dist/dist/utils/__tests__/apiUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/arrayUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/arrayUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/arrayUtils.test.js +23 -0
- package/dist/dist/utils/__tests__/arrayUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/badgeUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/badgeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/badgeUtils.test.js +157 -0
- package/dist/dist/utils/__tests__/badgeUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/bashPointsPaymentUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/bashPointsPaymentUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/bashPointsPaymentUtils.test.js +114 -0
- package/dist/dist/utils/__tests__/bashPointsPaymentUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/birthdayExperienceQuality.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/birthdayExperienceQuality.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/birthdayExperienceQuality.test.js +22 -0
- package/dist/dist/utils/__tests__/birthdayExperienceQuality.test.js.map +1 -0
- package/dist/dist/utils/__tests__/blogUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/blogUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/blogUtils.test.js +102 -0
- package/dist/dist/utils/__tests__/blogUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/contentFilterUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/contentFilterUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/contentFilterUtils.test.js +443 -0
- package/dist/dist/utils/__tests__/contentFilterUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/dateTimeUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/dateTimeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/dateTimeUtils.test.js +180 -0
- package/dist/dist/utils/__tests__/dateTimeUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/discountEngine/discountCalculator.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/discountEngine/discountCalculator.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/discountEngine/discountCalculator.test.js +356 -0
- package/dist/dist/utils/__tests__/discountEngine/discountCalculator.test.js.map +1 -0
- package/dist/dist/utils/__tests__/displayDateUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/displayDateUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/displayDateUtils.test.js +105 -0
- package/dist/dist/utils/__tests__/displayDateUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/entertainmentDrawFit.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/entertainmentDrawFit.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/entertainmentDrawFit.test.js +86 -0
- package/dist/dist/utils/__tests__/entertainmentDrawFit.test.js.map +1 -0
- package/dist/dist/utils/__tests__/eventCitySlug.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/eventCitySlug.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/eventCitySlug.test.js +12 -0
- package/dist/dist/utils/__tests__/eventCitySlug.test.js.map +1 -0
- package/dist/dist/utils/__tests__/eventTimezoneIana.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/eventTimezoneIana.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/eventTimezoneIana.test.js +80 -0
- package/dist/dist/utils/__tests__/eventTimezoneIana.test.js.map +1 -0
- package/dist/dist/utils/__tests__/featuredDiscoveryGeo.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/featuredDiscoveryGeo.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/featuredDiscoveryGeo.test.js +98 -0
- package/dist/dist/utils/__tests__/featuredDiscoveryGeo.test.js.map +1 -0
- package/dist/dist/utils/__tests__/flyerUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/flyerUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/flyerUtils.test.js +109 -0
- package/dist/dist/utils/__tests__/flyerUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/generalDateTimeUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/generalDateTimeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/generalDateTimeUtils.test.js +26 -0
- package/dist/dist/utils/__tests__/generalDateTimeUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/getBackendHost.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/getBackendHost.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/getBackendHost.test.js +167 -0
- package/dist/dist/utils/__tests__/getBackendHost.test.js.map +1 -0
- package/dist/dist/utils/__tests__/getFrontendHost.native.test.d.ts +14 -0
- package/dist/dist/utils/__tests__/getFrontendHost.native.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/getFrontendHost.native.test.js +51 -0
- package/dist/dist/utils/__tests__/getFrontendHost.native.test.js.map +1 -0
- package/dist/dist/utils/__tests__/getFrontendHost.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/getFrontendHost.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/getFrontendHost.test.js +207 -0
- package/dist/dist/utils/__tests__/getFrontendHost.test.js.map +1 -0
- package/dist/dist/utils/__tests__/guestSurface.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/guestSurface.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/guestSurface.test.js +112 -0
- package/dist/dist/utils/__tests__/guestSurface.test.js.map +1 -0
- package/dist/dist/utils/__tests__/lobFlyerUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/lobFlyerUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/lobFlyerUtils.test.js +39 -0
- package/dist/dist/utils/__tests__/lobFlyerUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/localPartnerHours.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/localPartnerHours.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/localPartnerHours.test.js +35 -0
- package/dist/dist/utils/__tests__/localPartnerHours.test.js.map +1 -0
- package/dist/dist/utils/__tests__/locationVisibility.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/locationVisibility.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/locationVisibility.test.js +183 -0
- package/dist/dist/utils/__tests__/locationVisibility.test.js.map +1 -0
- package/dist/dist/utils/__tests__/luxonUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/luxonUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/luxonUtils.test.js +139 -0
- package/dist/dist/utils/__tests__/luxonUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/mathUtils.test.d.ts +5 -0
- package/dist/dist/utils/__tests__/mathUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/mathUtils.test.js +26 -0
- package/dist/dist/utils/__tests__/mathUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/nonprofitUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/nonprofitUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/nonprofitUtils.test.js +84 -0
- package/dist/dist/utils/__tests__/nonprofitUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/objUtils.test.d.ts +5 -0
- package/dist/dist/utils/__tests__/objUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/objUtils.test.js +41 -0
- package/dist/dist/utils/__tests__/objUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/orgPromotionalPackageUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/orgPromotionalPackageUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/orgPromotionalPackageUtils.test.js +88 -0
- package/dist/dist/utils/__tests__/orgPromotionalPackageUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/organizationEntitlements.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/organizationEntitlements.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/organizationEntitlements.test.js +42 -0
- package/dist/dist/utils/__tests__/organizationEntitlements.test.js.map +1 -0
- package/dist/dist/utils/__tests__/paymentUtils.test.d.ts +6 -0
- package/dist/dist/utils/__tests__/paymentUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/paymentUtils.test.js +527 -0
- package/dist/dist/utils/__tests__/paymentUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/promoCodesUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/promoCodesUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/promoCodesUtils.test.js +183 -0
- package/dist/dist/utils/__tests__/promoCodesUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/qrCodeUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/qrCodeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/qrCodeUtils.test.js +114 -0
- package/dist/dist/utils/__tests__/qrCodeUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/recurrenceUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/recurrenceUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/recurrenceUtils.test.js +146 -0
- package/dist/dist/utils/__tests__/recurrenceUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/reputationUtils.serviceListing.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/reputationUtils.serviceListing.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/reputationUtils.serviceListing.test.js +28 -0
- package/dist/dist/utils/__tests__/reputationUtils.serviceListing.test.js.map +1 -0
- package/dist/dist/utils/__tests__/reviewUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/reviewUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/reviewUtils.test.js +49 -0
- package/dist/dist/utils/__tests__/reviewUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/serviceAvailabilityDisplay.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/serviceAvailabilityDisplay.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/serviceAvailabilityDisplay.test.js +121 -0
- package/dist/dist/utils/__tests__/serviceAvailabilityDisplay.test.js.map +1 -0
- package/dist/dist/utils/__tests__/slugUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/slugUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/slugUtils.test.js +103 -0
- package/dist/dist/utils/__tests__/slugUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/socialEventCadence.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/socialEventCadence.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/socialEventCadence.test.js +26 -0
- package/dist/dist/utils/__tests__/socialEventCadence.test.js.map +1 -0
- package/dist/dist/utils/__tests__/sortUtils.test.d.ts +5 -0
- package/dist/dist/utils/__tests__/sortUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/sortUtils.test.js +28 -0
- package/dist/dist/utils/__tests__/sortUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/stringUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/stringUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/stringUtils.test.js +27 -0
- package/dist/dist/utils/__tests__/stringUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/stripeAccountUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/stripeAccountUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/stripeAccountUtils.test.js +75 -0
- package/dist/dist/utils/__tests__/stripeAccountUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/ticketCheckInDisplay.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/ticketCheckInDisplay.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/ticketCheckInDisplay.test.js +29 -0
- package/dist/dist/utils/__tests__/ticketCheckInDisplay.test.js.map +1 -0
- package/dist/dist/utils/__tests__/ticketListUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/ticketListUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/ticketListUtils.test.js +95 -0
- package/dist/dist/utils/__tests__/ticketListUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/ticketTierSchedule.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/ticketTierSchedule.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/ticketTierSchedule.test.js +84 -0
- package/dist/dist/utils/__tests__/ticketTierSchedule.test.js.map +1 -0
- package/dist/dist/utils/__tests__/typeUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/typeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/typeUtils.test.js +11 -0
- package/dist/dist/utils/__tests__/typeUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/urlUtils.externalLink.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/urlUtils.externalLink.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/urlUtils.externalLink.test.js +29 -0
- package/dist/dist/utils/__tests__/urlUtils.externalLink.test.js.map +1 -0
- package/dist/dist/utils/__tests__/userSubscriptionUtils.test.d.ts +5 -0
- package/dist/dist/utils/__tests__/userSubscriptionUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/userSubscriptionUtils.test.js +66 -0
- package/dist/dist/utils/__tests__/userSubscriptionUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/userUtils.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/userUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/userUtils.test.js +34 -0
- package/dist/dist/utils/__tests__/userUtils.test.js.map +1 -0
- package/dist/dist/utils/__tests__/venueTypeFormatter.test.d.ts +2 -0
- package/dist/dist/utils/__tests__/venueTypeFormatter.test.d.ts.map +1 -0
- package/dist/dist/utils/__tests__/venueTypeFormatter.test.js +25 -0
- package/dist/dist/utils/__tests__/venueTypeFormatter.test.js.map +1 -0
- package/dist/dist/utils/addressUtils.d.ts +30 -0
- package/dist/dist/utils/addressUtils.d.ts.map +1 -0
- package/dist/dist/utils/addressUtils.js +288 -0
- package/dist/dist/utils/addressUtils.js.map +1 -0
- package/dist/dist/utils/apiUtils.d.ts +14 -0
- package/dist/dist/utils/apiUtils.d.ts.map +1 -0
- package/dist/dist/utils/apiUtils.js +97 -0
- package/dist/dist/utils/apiUtils.js.map +1 -0
- package/dist/dist/utils/arrayUtils.d.ts +2 -0
- package/dist/dist/utils/arrayUtils.d.ts.map +1 -0
- package/dist/dist/utils/arrayUtils.js +5 -0
- package/dist/dist/utils/arrayUtils.js.map +1 -0
- package/dist/dist/utils/awsS3Utils.d.ts +10 -0
- package/dist/dist/utils/awsS3Utils.d.ts.map +1 -0
- package/dist/dist/utils/awsS3Utils.js +89 -0
- package/dist/dist/utils/awsS3Utils.js.map +1 -0
- package/dist/dist/utils/badgeUtils.d.ts +33 -0
- package/dist/dist/utils/badgeUtils.d.ts.map +1 -0
- package/dist/dist/utils/badgeUtils.js +57 -0
- package/dist/dist/utils/badgeUtils.js.map +1 -0
- package/dist/dist/utils/bashPointsPaymentUtils.d.ts +55 -0
- package/dist/dist/utils/bashPointsPaymentUtils.d.ts.map +1 -0
- package/dist/dist/utils/bashPointsPaymentUtils.js +79 -0
- package/dist/dist/utils/bashPointsPaymentUtils.js.map +1 -0
- package/dist/dist/utils/birthdayExperienceQuality.d.ts +21 -0
- package/dist/dist/utils/birthdayExperienceQuality.d.ts.map +1 -0
- package/dist/dist/utils/birthdayExperienceQuality.js +33 -0
- package/dist/dist/utils/birthdayExperienceQuality.js.map +1 -0
- package/dist/dist/utils/blog/__tests__/getRelatedBlogPosts.test.d.ts +2 -0
- package/dist/dist/utils/blog/__tests__/getRelatedBlogPosts.test.d.ts.map +1 -0
- package/dist/dist/utils/blog/__tests__/getRelatedBlogPosts.test.js +233 -0
- package/dist/dist/utils/blog/__tests__/getRelatedBlogPosts.test.js.map +1 -0
- package/dist/dist/utils/blog/blogCommentDbUtils.d.ts +163 -0
- package/dist/dist/utils/blog/blogCommentDbUtils.d.ts.map +1 -0
- package/dist/dist/utils/blog/blogCommentDbUtils.js +111 -0
- package/dist/dist/utils/blog/blogCommentDbUtils.js.map +1 -0
- package/dist/dist/utils/blog/blogDbUtils.d.ts +58 -0
- package/dist/dist/utils/blog/blogDbUtils.d.ts.map +1 -0
- package/dist/dist/utils/blog/blogDbUtils.js +293 -0
- package/dist/dist/utils/blog/blogDbUtils.js.map +1 -0
- package/dist/dist/utils/blogUtils.d.ts +19 -0
- package/dist/dist/utils/blogUtils.d.ts.map +1 -0
- package/dist/dist/utils/blogUtils.js +118 -0
- package/dist/dist/utils/blogUtils.js.map +1 -0
- package/dist/dist/utils/contentFilterUtils.d.ts +46 -0
- package/dist/dist/utils/contentFilterUtils.d.ts.map +1 -0
- package/dist/dist/utils/contentFilterUtils.js +247 -0
- package/dist/dist/utils/contentFilterUtils.js.map +1 -0
- package/dist/dist/utils/dateTimeUtils.d.ts +24 -0
- package/dist/dist/utils/dateTimeUtils.d.ts.map +1 -0
- package/dist/dist/utils/dateTimeUtils.js +112 -0
- package/dist/dist/utils/dateTimeUtils.js.map +1 -0
- package/dist/dist/utils/discountEngine/__tests__/bestPriceResolver.test.d.ts +2 -0
- package/dist/dist/utils/discountEngine/__tests__/bestPriceResolver.test.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/__tests__/bestPriceResolver.test.js +458 -0
- package/dist/dist/utils/discountEngine/__tests__/bestPriceResolver.test.js.map +1 -0
- package/dist/dist/utils/discountEngine/__tests__/eligibilityValidator.test.d.ts +2 -0
- package/dist/dist/utils/discountEngine/__tests__/eligibilityValidator.test.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/__tests__/eligibilityValidator.test.js +484 -0
- package/dist/dist/utils/discountEngine/__tests__/eligibilityValidator.test.js.map +1 -0
- package/dist/dist/utils/discountEngine/bestPriceResolver.d.ts +31 -0
- package/dist/dist/utils/discountEngine/bestPriceResolver.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/bestPriceResolver.js +147 -0
- package/dist/dist/utils/discountEngine/bestPriceResolver.js.map +1 -0
- package/dist/dist/utils/discountEngine/discountCalculator.d.ts +62 -0
- package/dist/dist/utils/discountEngine/discountCalculator.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/discountCalculator.js +221 -0
- package/dist/dist/utils/discountEngine/discountCalculator.js.map +1 -0
- package/dist/dist/utils/discountEngine/eligibilityValidator.d.ts +36 -0
- package/dist/dist/utils/discountEngine/eligibilityValidator.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/eligibilityValidator.js +189 -0
- package/dist/dist/utils/discountEngine/eligibilityValidator.js.map +1 -0
- package/dist/dist/utils/discountEngine/index.d.ts +4 -0
- package/dist/dist/utils/discountEngine/index.d.ts.map +1 -0
- package/dist/dist/utils/discountEngine/index.js +5 -0
- package/dist/dist/utils/discountEngine/index.js.map +1 -0
- package/dist/dist/utils/displayDateUtils.d.ts +10 -0
- package/dist/dist/utils/displayDateUtils.d.ts.map +1 -0
- package/dist/dist/utils/displayDateUtils.js +32 -0
- package/dist/dist/utils/displayDateUtils.js.map +1 -0
- package/dist/dist/utils/entertainmentDrawFit.d.ts +27 -0
- package/dist/dist/utils/entertainmentDrawFit.d.ts.map +1 -0
- package/dist/dist/utils/entertainmentDrawFit.js +119 -0
- package/dist/dist/utils/entertainmentDrawFit.js.map +1 -0
- package/dist/dist/utils/entityUtils.d.ts +5 -0
- package/dist/dist/utils/entityUtils.d.ts.map +1 -0
- package/dist/dist/utils/entityUtils.js +5 -0
- package/dist/dist/utils/entityUtils.js.map +1 -0
- package/dist/dist/utils/eventCitySlug.d.ts +11 -0
- package/dist/dist/utils/eventCitySlug.d.ts.map +1 -0
- package/dist/dist/utils/eventCitySlug.js +20 -0
- package/dist/dist/utils/eventCitySlug.js.map +1 -0
- package/dist/dist/utils/eventTimezoneIana.d.ts +41 -0
- package/dist/dist/utils/eventTimezoneIana.d.ts.map +1 -0
- package/dist/dist/utils/eventTimezoneIana.js +282 -0
- package/dist/dist/utils/eventTimezoneIana.js.map +1 -0
- package/dist/dist/utils/featuredDiscoveryGeo.d.ts +30 -0
- package/dist/dist/utils/featuredDiscoveryGeo.d.ts.map +1 -0
- package/dist/dist/utils/featuredDiscoveryGeo.js +47 -0
- package/dist/dist/utils/featuredDiscoveryGeo.js.map +1 -0
- package/dist/dist/utils/flyerUtils.d.ts +66 -0
- package/dist/dist/utils/flyerUtils.d.ts.map +1 -0
- package/dist/dist/utils/flyerUtils.js +166 -0
- package/dist/dist/utils/flyerUtils.js.map +1 -0
- package/dist/dist/utils/generalDateTimeUtils.d.ts +15 -0
- package/dist/dist/utils/generalDateTimeUtils.d.ts.map +1 -0
- package/dist/dist/utils/generalDateTimeUtils.js +38 -0
- package/dist/dist/utils/generalDateTimeUtils.js.map +1 -0
- package/dist/dist/utils/groupTicketCartUtils.d.ts +12 -0
- package/dist/dist/utils/groupTicketCartUtils.d.ts.map +1 -0
- package/dist/dist/utils/groupTicketCartUtils.js +30 -0
- package/dist/dist/utils/groupTicketCartUtils.js.map +1 -0
- package/dist/dist/utils/guestSurface.d.ts +133 -0
- package/dist/dist/utils/guestSurface.d.ts.map +1 -0
- package/dist/dist/utils/guestSurface.js +172 -0
- package/dist/dist/utils/guestSurface.js.map +1 -0
- package/dist/dist/utils/index.d.ts +42 -0
- package/dist/dist/utils/index.d.ts.map +1 -0
- package/dist/dist/utils/index.js +42 -0
- package/dist/dist/utils/index.js.map +1 -0
- package/dist/dist/utils/lobFlyerUtils.d.ts +41 -0
- package/dist/dist/utils/lobFlyerUtils.d.ts.map +1 -0
- package/dist/dist/utils/lobFlyerUtils.js +68 -0
- package/dist/dist/utils/lobFlyerUtils.js.map +1 -0
- package/dist/dist/utils/localPartnerHours.d.ts +12 -0
- package/dist/dist/utils/localPartnerHours.d.ts.map +1 -0
- package/dist/dist/utils/localPartnerHours.js +92 -0
- package/dist/dist/utils/localPartnerHours.js.map +1 -0
- package/dist/dist/utils/locationVisibility.d.ts +71 -0
- package/dist/dist/utils/locationVisibility.d.ts.map +1 -0
- package/dist/dist/utils/locationVisibility.js +116 -0
- package/dist/dist/utils/locationVisibility.js.map +1 -0
- package/dist/dist/utils/luxonUtils.d.ts +106 -0
- package/dist/dist/utils/luxonUtils.d.ts.map +1 -0
- package/dist/dist/utils/luxonUtils.js +579 -0
- package/dist/dist/utils/luxonUtils.js.map +1 -0
- package/dist/dist/utils/mathUtils.d.ts +2 -0
- package/dist/dist/utils/mathUtils.d.ts.map +1 -0
- package/dist/dist/utils/mathUtils.js +4 -0
- package/dist/dist/utils/mathUtils.js.map +1 -0
- package/dist/dist/utils/mediaClientDefaults.d.ts +7 -0
- package/dist/dist/utils/mediaClientDefaults.d.ts.map +1 -0
- package/dist/dist/utils/mediaClientDefaults.js +7 -0
- package/dist/dist/utils/mediaClientDefaults.js.map +1 -0
- package/dist/dist/utils/nonprofitUtils.d.ts +21 -0
- package/dist/dist/utils/nonprofitUtils.d.ts.map +1 -0
- package/dist/dist/utils/nonprofitUtils.js +29 -0
- package/dist/dist/utils/nonprofitUtils.js.map +1 -0
- package/dist/dist/utils/objUtils.d.ts +3 -0
- package/dist/dist/utils/objUtils.d.ts.map +1 -0
- package/dist/dist/utils/objUtils.js +29 -0
- package/dist/dist/utils/objUtils.js.map +1 -0
- package/dist/dist/utils/orgPromotionalPackageUtils.d.ts +100 -0
- package/dist/dist/utils/orgPromotionalPackageUtils.d.ts.map +1 -0
- package/dist/dist/utils/orgPromotionalPackageUtils.js +201 -0
- package/dist/dist/utils/orgPromotionalPackageUtils.js.map +1 -0
- package/dist/dist/utils/organizationEntitlements.d.ts +20 -0
- package/dist/dist/utils/organizationEntitlements.d.ts.map +1 -0
- package/dist/dist/utils/organizationEntitlements.js +30 -0
- package/dist/dist/utils/organizationEntitlements.js.map +1 -0
- package/dist/dist/utils/paymentUtils.d.ts +234 -0
- package/dist/dist/utils/paymentUtils.d.ts.map +1 -0
- package/dist/dist/utils/paymentUtils.js +405 -0
- package/dist/dist/utils/paymentUtils.js.map +1 -0
- package/dist/dist/utils/promoCodesUtils.d.ts +6 -0
- package/dist/dist/utils/promoCodesUtils.d.ts.map +1 -0
- package/dist/dist/utils/promoCodesUtils.js +23 -0
- package/dist/dist/utils/promoCodesUtils.js.map +1 -0
- package/dist/dist/utils/promotionBlastUtils.d.ts +38 -0
- package/dist/dist/utils/promotionBlastUtils.d.ts.map +1 -0
- package/dist/dist/utils/promotionBlastUtils.js +88 -0
- package/dist/dist/utils/promotionBlastUtils.js.map +1 -0
- package/dist/dist/utils/qrCodeUtils.d.ts +5 -0
- package/dist/dist/utils/qrCodeUtils.d.ts.map +1 -0
- package/dist/dist/utils/qrCodeUtils.js +23 -0
- package/dist/dist/utils/qrCodeUtils.js.map +1 -0
- package/dist/dist/utils/recurrenceUtils.d.ts +45 -0
- package/dist/dist/utils/recurrenceUtils.d.ts.map +1 -0
- package/dist/dist/utils/recurrenceUtils.js +363 -0
- package/dist/dist/utils/recurrenceUtils.js.map +1 -0
- package/dist/dist/utils/reputationUtils.d.ts +44 -0
- package/dist/dist/utils/reputationUtils.d.ts.map +1 -0
- package/dist/dist/utils/reputationUtils.js +54 -0
- package/dist/dist/utils/reputationUtils.js.map +1 -0
- package/dist/dist/utils/reviewUtils.d.ts +29 -0
- package/dist/dist/utils/reviewUtils.d.ts.map +1 -0
- package/dist/dist/utils/reviewUtils.js +65 -0
- package/dist/dist/utils/reviewUtils.js.map +1 -0
- package/dist/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.js +101 -0
- package/dist/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/billingCapUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/billingCapUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/billingCapUtils.test.js +120 -0
- package/dist/dist/utils/service/__tests__/billingCapUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/cancellationPolicyRefundResolver.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/cancellationPolicyRefundResolver.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/cancellationPolicyRefundResolver.test.js +125 -0
- package/dist/dist/utils/service/__tests__/cancellationPolicyRefundResolver.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/defaultOfferAmountUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/defaultOfferAmountUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/defaultOfferAmountUtils.test.js +65 -0
- package/dist/dist/utils/service/__tests__/defaultOfferAmountUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/eventPromoterPhase3.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/eventPromoterPhase3.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/eventPromoterPhase3.test.js +243 -0
- package/dist/dist/utils/service/__tests__/eventPromoterPhase3.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/eventPromoterUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/eventPromoterUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/eventPromoterUtils.test.js +333 -0
- package/dist/dist/utils/service/__tests__/eventPromoterUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/offerAllowListUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/offerAllowListUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/offerAllowListUtils.test.js +52 -0
- package/dist/dist/utils/service/__tests__/offerAllowListUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/offerComparisonUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/offerComparisonUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/offerComparisonUtils.test.js +111 -0
- package/dist/dist/utils/service/__tests__/offerComparisonUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.js +18 -0
- package/dist/dist/utils/service/__tests__/partnerServiceProfileWizardPaymentMethod.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/regexUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/regexUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/regexUtils.test.js +51 -0
- package/dist/dist/utils/service/__tests__/regexUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceBookingExposureUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceBookingExposureUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceBookingExposureUtils.test.js +155 -0
- package/dist/dist/utils/service/__tests__/serviceBookingExposureUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceBookingStatusUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceBookingStatusUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceBookingStatusUtils.test.js +226 -0
- package/dist/dist/utils/service/__tests__/serviceBookingStatusUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceDBUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceDBUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceDBUtils.test.js +17 -0
- package/dist/dist/utils/service/__tests__/serviceDBUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceFeaturedSortUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceFeaturedSortUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceFeaturedSortUtils.test.js +60 -0
- package/dist/dist/utils/service/__tests__/serviceFeaturedSortUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceRateUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceRateUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceRateUtils.test.js +237 -0
- package/dist/dist/utils/service/__tests__/serviceRateUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/serviceUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/serviceUtils.test.js +135 -0
- package/dist/dist/utils/service/__tests__/serviceUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/unifiedPricingResolver.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/unifiedPricingResolver.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/unifiedPricingResolver.test.js +77 -0
- package/dist/dist/utils/service/__tests__/unifiedPricingResolver.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/venueFBSettlementUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/venueFBSettlementUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/venueFBSettlementUtils.test.js +157 -0
- package/dist/dist/utils/service/__tests__/venueFBSettlementUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/venueSettlementUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/venueSettlementUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/venueSettlementUtils.test.js +175 -0
- package/dist/dist/utils/service/__tests__/venueSettlementUtils.test.js.map +1 -0
- package/dist/dist/utils/service/__tests__/volunteerCompensationUtils.test.d.ts +2 -0
- package/dist/dist/utils/service/__tests__/volunteerCompensationUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/service/__tests__/volunteerCompensationUtils.test.js +118 -0
- package/dist/dist/utils/service/__tests__/volunteerCompensationUtils.test.js.map +1 -0
- package/dist/dist/utils/service/apiServiceBookingApiUtils.d.ts +33 -0
- package/dist/dist/utils/service/apiServiceBookingApiUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/apiServiceBookingApiUtils.js +170 -0
- package/dist/dist/utils/service/apiServiceBookingApiUtils.js.map +1 -0
- package/dist/dist/utils/service/attendeeOptionUtils.d.ts +11 -0
- package/dist/dist/utils/service/attendeeOptionUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/attendeeOptionUtils.js +9 -0
- package/dist/dist/utils/service/attendeeOptionUtils.js.map +1 -0
- package/dist/dist/utils/service/billingCapUtils.d.ts +86 -0
- package/dist/dist/utils/service/billingCapUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/billingCapUtils.js +96 -0
- package/dist/dist/utils/service/billingCapUtils.js.map +1 -0
- package/dist/dist/utils/service/cancellationPolicyRefundResolver.d.ts +30 -0
- package/dist/dist/utils/service/cancellationPolicyRefundResolver.d.ts.map +1 -0
- package/dist/dist/utils/service/cancellationPolicyRefundResolver.js +82 -0
- package/dist/dist/utils/service/cancellationPolicyRefundResolver.js.map +1 -0
- package/dist/dist/utils/service/defaultOfferAmountUtils.d.ts +32 -0
- package/dist/dist/utils/service/defaultOfferAmountUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/defaultOfferAmountUtils.js +115 -0
- package/dist/dist/utils/service/defaultOfferAmountUtils.js.map +1 -0
- package/dist/dist/utils/service/eventPromoterUtils.d.ts +319 -0
- package/dist/dist/utils/service/eventPromoterUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/eventPromoterUtils.js +372 -0
- package/dist/dist/utils/service/eventPromoterUtils.js.map +1 -0
- package/dist/dist/utils/service/frontendServiceBookingUtils.d.ts +60 -0
- package/dist/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/frontendServiceBookingUtils.js +182 -0
- package/dist/dist/utils/service/frontendServiceBookingUtils.js.map +1 -0
- package/dist/dist/utils/service/offerAllowListUtils.d.ts +42 -0
- package/dist/dist/utils/service/offerAllowListUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/offerAllowListUtils.js +49 -0
- package/dist/dist/utils/service/offerAllowListUtils.js.map +1 -0
- package/dist/dist/utils/service/offerComparisonUtils.d.ts +69 -0
- package/dist/dist/utils/service/offerComparisonUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/offerComparisonUtils.js +110 -0
- package/dist/dist/utils/service/offerComparisonUtils.js.map +1 -0
- package/dist/dist/utils/service/regexUtils.d.ts +6 -0
- package/dist/dist/utils/service/regexUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/regexUtils.js +16 -0
- package/dist/dist/utils/service/regexUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceBookingExposureUtils.d.ts +111 -0
- package/dist/dist/utils/service/serviceBookingExposureUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceBookingExposureUtils.js +133 -0
- package/dist/dist/utils/service/serviceBookingExposureUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceBookingStatusUtils.d.ts +21 -0
- package/dist/dist/utils/service/serviceBookingStatusUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceBookingStatusUtils.js +130 -0
- package/dist/dist/utils/service/serviceBookingStatusUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceBookingTypes.d.ts +21 -0
- package/dist/dist/utils/service/serviceBookingTypes.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceBookingTypes.js +2 -0
- package/dist/dist/utils/service/serviceBookingTypes.js.map +1 -0
- package/dist/dist/utils/service/serviceDBUtils.d.ts +12 -0
- package/dist/dist/utils/service/serviceDBUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceDBUtils.js +14 -0
- package/dist/dist/utils/service/serviceDBUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceFeaturedSortUtils.d.ts +26 -0
- package/dist/dist/utils/service/serviceFeaturedSortUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceFeaturedSortUtils.js +65 -0
- package/dist/dist/utils/service/serviceFeaturedSortUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceRateTypes.d.ts +9 -0
- package/dist/dist/utils/service/serviceRateTypes.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceRateTypes.js +2 -0
- package/dist/dist/utils/service/serviceRateTypes.js.map +1 -0
- package/dist/dist/utils/service/serviceRateUtils.d.ts +24 -0
- package/dist/dist/utils/service/serviceRateUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceRateUtils.js +183 -0
- package/dist/dist/utils/service/serviceRateUtils.js.map +1 -0
- package/dist/dist/utils/service/serviceUtils.d.ts +109 -0
- package/dist/dist/utils/service/serviceUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/serviceUtils.js +651 -0
- package/dist/dist/utils/service/serviceUtils.js.map +1 -0
- package/dist/dist/utils/service/unifiedPricingResolver.d.ts +67 -0
- package/dist/dist/utils/service/unifiedPricingResolver.d.ts.map +1 -0
- package/dist/dist/utils/service/unifiedPricingResolver.js +75 -0
- package/dist/dist/utils/service/unifiedPricingResolver.js.map +1 -0
- package/dist/dist/utils/service/venueFBSettlementUtils.d.ts +122 -0
- package/dist/dist/utils/service/venueFBSettlementUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/venueFBSettlementUtils.js +106 -0
- package/dist/dist/utils/service/venueFBSettlementUtils.js.map +1 -0
- package/dist/dist/utils/service/venueSettlementUtils.d.ts +107 -0
- package/dist/dist/utils/service/venueSettlementUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/venueSettlementUtils.js +117 -0
- package/dist/dist/utils/service/venueSettlementUtils.js.map +1 -0
- package/dist/dist/utils/service/volunteerCompensationUtils.d.ts +75 -0
- package/dist/dist/utils/service/volunteerCompensationUtils.d.ts.map +1 -0
- package/dist/dist/utils/service/volunteerCompensationUtils.js +88 -0
- package/dist/dist/utils/service/volunteerCompensationUtils.js.map +1 -0
- package/dist/dist/utils/serviceAvailabilityDisplay.d.ts +58 -0
- package/dist/dist/utils/serviceAvailabilityDisplay.d.ts.map +1 -0
- package/dist/dist/utils/serviceAvailabilityDisplay.js +143 -0
- package/dist/dist/utils/serviceAvailabilityDisplay.js.map +1 -0
- package/dist/dist/utils/slugUtils.d.ts +18 -0
- package/dist/dist/utils/slugUtils.d.ts.map +1 -0
- package/dist/dist/utils/slugUtils.js +67 -0
- package/dist/dist/utils/slugUtils.js.map +1 -0
- package/dist/dist/utils/sortUtils.d.ts +7 -0
- package/dist/dist/utils/sortUtils.d.ts.map +1 -0
- package/dist/dist/utils/sortUtils.js +26 -0
- package/dist/dist/utils/sortUtils.js.map +1 -0
- package/dist/dist/utils/stringUtils.d.ts +2 -0
- package/dist/dist/utils/stringUtils.d.ts.map +1 -0
- package/dist/dist/utils/stringUtils.js +6 -0
- package/dist/dist/utils/stringUtils.js.map +1 -0
- package/dist/dist/utils/stripeAccountUtils.d.ts +3 -0
- package/dist/dist/utils/stripeAccountUtils.d.ts.map +1 -0
- package/dist/dist/utils/stripeAccountUtils.js +8 -0
- package/dist/dist/utils/stripeAccountUtils.js.map +1 -0
- package/dist/dist/utils/ticketCheckInDisplay.d.ts +8 -0
- package/dist/dist/utils/ticketCheckInDisplay.d.ts.map +1 -0
- package/dist/dist/utils/ticketCheckInDisplay.js +29 -0
- package/dist/dist/utils/ticketCheckInDisplay.js.map +1 -0
- package/dist/dist/utils/ticketListUtils.d.ts +13 -0
- package/dist/dist/utils/ticketListUtils.d.ts.map +1 -0
- package/dist/dist/utils/ticketListUtils.js +145 -0
- package/dist/dist/utils/ticketListUtils.js.map +1 -0
- package/dist/dist/utils/ticketTierSchedule.d.ts +58 -0
- package/dist/dist/utils/ticketTierSchedule.d.ts.map +1 -0
- package/dist/dist/utils/ticketTierSchedule.js +279 -0
- package/dist/dist/utils/ticketTierSchedule.js.map +1 -0
- package/dist/dist/utils/typeUtils.d.ts +16 -0
- package/dist/dist/utils/typeUtils.d.ts.map +1 -0
- package/dist/dist/utils/typeUtils.js +8 -0
- package/dist/dist/utils/typeUtils.js.map +1 -0
- package/dist/dist/utils/urlUtils.d.ts +65 -0
- package/dist/dist/utils/urlUtils.d.ts.map +1 -0
- package/dist/dist/utils/urlUtils.js +255 -0
- package/dist/dist/utils/urlUtils.js.map +1 -0
- package/dist/dist/utils/userPromoCodeUtils.d.ts +21 -0
- package/dist/dist/utils/userPromoCodeUtils.d.ts.map +1 -0
- package/dist/dist/utils/userPromoCodeUtils.js +13 -0
- package/dist/dist/utils/userPromoCodeUtils.js.map +1 -0
- package/dist/dist/utils/userSubscriptionUtils.d.ts +28 -0
- package/dist/dist/utils/userSubscriptionUtils.d.ts.map +1 -0
- package/dist/dist/utils/userSubscriptionUtils.js +49 -0
- package/dist/dist/utils/userSubscriptionUtils.js.map +1 -0
- package/dist/dist/utils/userUtils.d.ts +49 -0
- package/dist/dist/utils/userUtils.d.ts.map +1 -0
- package/dist/dist/utils/userUtils.js +60 -0
- package/dist/dist/utils/userUtils.js.map +1 -0
- package/dist/dist/utils/venueLoyalty/__tests__/eligibilityUtils.test.d.ts +2 -0
- package/dist/dist/utils/venueLoyalty/__tests__/eligibilityUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/venueLoyalty/__tests__/eligibilityUtils.test.js +67 -0
- package/dist/dist/utils/venueLoyalty/__tests__/eligibilityUtils.test.js.map +1 -0
- package/dist/dist/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.d.ts +2 -0
- package/dist/dist/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.d.ts.map +1 -0
- package/dist/dist/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.js +71 -0
- package/dist/dist/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.js.map +1 -0
- package/dist/dist/utils/venueLoyalty/eligibilityUtils.d.ts +33 -0
- package/dist/dist/utils/venueLoyalty/eligibilityUtils.d.ts.map +1 -0
- package/dist/dist/utils/venueLoyalty/eligibilityUtils.js +49 -0
- package/dist/dist/utils/venueLoyalty/eligibilityUtils.js.map +1 -0
- package/dist/dist/utils/venueLoyalty/redemptionCodeUtils.d.ts +35 -0
- package/dist/dist/utils/venueLoyalty/redemptionCodeUtils.d.ts.map +1 -0
- package/dist/dist/utils/venueLoyalty/redemptionCodeUtils.js +74 -0
- package/dist/dist/utils/venueLoyalty/redemptionCodeUtils.js.map +1 -0
- package/dist/dist/utils/venueTypeFormatter.d.ts +10 -0
- package/dist/dist/utils/venueTypeFormatter.d.ts.map +1 -0
- package/dist/dist/utils/venueTypeFormatter.js +25 -0
- package/dist/dist/utils/venueTypeFormatter.js.map +1 -0
- package/dist/dist/utmAttribution.d.ts +29 -0
- package/dist/dist/utmAttribution.d.ts.map +1 -0
- package/dist/dist/utmAttribution.js +124 -0
- package/dist/dist/utmAttribution.js.map +1 -0
- package/dist/dist/venueLoyaltyRedemption.d.ts +166 -0
- package/dist/dist/venueLoyaltyRedemption.d.ts.map +1 -0
- package/dist/dist/venueLoyaltyRedemption.js +21 -0
- package/dist/dist/venueLoyaltyRedemption.js.map +1 -0
- package/dist/dist/venueMatch.d.ts +165 -0
- package/dist/dist/venueMatch.d.ts.map +1 -0
- package/dist/dist/venueMatch.js +68 -0
- package/dist/dist/venueMatch.js.map +1 -0
- package/dist/entertainmentNotableVenues.d.ts +53 -0
- package/dist/entertainmentNotableVenues.d.ts.map +1 -0
- package/dist/entertainmentNotableVenues.js +101 -0
- package/dist/entertainmentNotableVenues.js.map +1 -0
- package/dist/extendedSchemas.d.ts +293 -1
- package/dist/extendedSchemas.d.ts.map +1 -1
- package/dist/extendedSchemas.js +65 -0
- package/dist/extendedSchemas.js.map +1 -1
- package/dist/index.d.ts +15 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/influencerAudience.d.ts +24 -0
- package/dist/influencerAudience.d.ts.map +1 -0
- package/dist/influencerAudience.js +112 -0
- package/dist/influencerAudience.js.map +1 -0
- package/dist/productLaunch.d.ts +17 -0
- package/dist/productLaunch.d.ts.map +1 -0
- package/dist/productLaunch.js +50 -0
- package/dist/productLaunch.js.map +1 -0
- package/dist/utils/__tests__/agencyBookingCheckoutCopy.test.d.ts +2 -0
- package/dist/utils/__tests__/agencyBookingCheckoutCopy.test.d.ts.map +1 -0
- package/dist/utils/__tests__/agencyBookingCheckoutCopy.test.js +25 -0
- package/dist/utils/__tests__/agencyBookingCheckoutCopy.test.js.map +1 -0
- package/dist/utils/__tests__/entertainmentDrawFit.test.d.ts +2 -0
- package/dist/utils/__tests__/entertainmentDrawFit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/entertainmentDrawFit.test.js +86 -0
- package/dist/utils/__tests__/entertainmentDrawFit.test.js.map +1 -0
- package/dist/utils/__tests__/guestSurface.test.js +6 -0
- package/dist/utils/__tests__/guestSurface.test.js.map +1 -1
- package/dist/utils/__tests__/locationVisibility.test.js +11 -0
- package/dist/utils/__tests__/locationVisibility.test.js.map +1 -1
- package/dist/utils/__tests__/organizationEntitlements.test.d.ts +2 -0
- package/dist/utils/__tests__/organizationEntitlements.test.d.ts.map +1 -0
- package/dist/utils/__tests__/organizationEntitlements.test.js +42 -0
- package/dist/utils/__tests__/organizationEntitlements.test.js.map +1 -0
- package/dist/utils/__tests__/reputationUtils.bayesian.test.d.ts +2 -0
- package/dist/utils/__tests__/reputationUtils.bayesian.test.d.ts.map +1 -0
- package/dist/utils/__tests__/reputationUtils.bayesian.test.js +39 -0
- package/dist/utils/__tests__/reputationUtils.bayesian.test.js.map +1 -0
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.d.ts +2 -0
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.d.ts.map +1 -0
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.js +28 -0
- package/dist/utils/__tests__/reputationUtils.serviceListing.test.js.map +1 -0
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.d.ts +2 -0
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.d.ts.map +1 -0
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.js +121 -0
- package/dist/utils/__tests__/serviceAvailabilityDisplay.test.js.map +1 -0
- package/dist/utils/__tests__/socialEventCadence.test.d.ts +2 -0
- package/dist/utils/__tests__/socialEventCadence.test.d.ts.map +1 -0
- package/dist/utils/__tests__/socialEventCadence.test.js +26 -0
- package/dist/utils/__tests__/socialEventCadence.test.js.map +1 -0
- package/dist/utils/__tests__/ticketCheckInDisplay.test.d.ts +2 -0
- package/dist/utils/__tests__/ticketCheckInDisplay.test.d.ts.map +1 -0
- package/dist/utils/__tests__/ticketCheckInDisplay.test.js +29 -0
- package/dist/utils/__tests__/ticketCheckInDisplay.test.js.map +1 -0
- package/dist/utils/agencyBookingCheckoutCopy.d.ts +15 -0
- package/dist/utils/agencyBookingCheckoutCopy.d.ts.map +1 -0
- package/dist/utils/agencyBookingCheckoutCopy.js +29 -0
- package/dist/utils/agencyBookingCheckoutCopy.js.map +1 -0
- package/dist/utils/blog/blogCommentDbUtils.d.ts +2 -0
- package/dist/utils/blog/blogCommentDbUtils.d.ts.map +1 -1
- package/dist/utils/entertainmentDrawFit.d.ts +27 -0
- package/dist/utils/entertainmentDrawFit.d.ts.map +1 -0
- package/dist/utils/entertainmentDrawFit.js +119 -0
- package/dist/utils/entertainmentDrawFit.js.map +1 -0
- package/dist/utils/guestSurface.d.ts +11 -1
- package/dist/utils/guestSurface.d.ts.map +1 -1
- package/dist/utils/guestSurface.js +1 -1
- package/dist/utils/guestSurface.js.map +1 -1
- package/dist/utils/locationVisibility.d.ts +5 -0
- package/dist/utils/locationVisibility.d.ts.map +1 -1
- package/dist/utils/locationVisibility.js +4 -2
- package/dist/utils/locationVisibility.js.map +1 -1
- package/dist/utils/organizationEntitlements.d.ts +20 -0
- package/dist/utils/organizationEntitlements.d.ts.map +1 -0
- package/dist/utils/organizationEntitlements.js +30 -0
- package/dist/utils/organizationEntitlements.js.map +1 -0
- package/dist/utils/reputationUtils.d.ts +44 -0
- package/dist/utils/reputationUtils.d.ts.map +1 -0
- package/dist/utils/reputationUtils.js +54 -0
- package/dist/utils/reputationUtils.js.map +1 -0
- package/dist/utils/service/serviceUtils.d.ts +4 -1
- package/dist/utils/service/serviceUtils.d.ts.map +1 -1
- package/dist/utils/service/serviceUtils.js.map +1 -1
- package/dist/utils/serviceAvailabilityDisplay.d.ts +58 -0
- package/dist/utils/serviceAvailabilityDisplay.d.ts.map +1 -0
- package/dist/utils/serviceAvailabilityDisplay.js +143 -0
- package/dist/utils/serviceAvailabilityDisplay.js.map +1 -0
- package/dist/utils/ticketCheckInDisplay.d.ts +8 -0
- package/dist/utils/ticketCheckInDisplay.d.ts.map +1 -0
- package/dist/utils/ticketCheckInDisplay.js +29 -0
- package/dist/utils/ticketCheckInDisplay.js.map +1 -0
- package/dist/utils/userUtils.d.ts +16 -1
- package/dist/utils/userUtils.d.ts.map +1 -1
- package/dist/utils/userUtils.js +31 -0
- package/dist/utils/userUtils.js.map +1 -1
- package/package.json +1 -1
- package/prisma/prisma/COMPREHENSIVE-MIGRATION-README.md +295 -0
- package/prisma/prisma/MIGRATION-CHECKLIST.md +198 -0
- package/prisma/prisma/MIGRATION-FILES-GUIDE.md +76 -0
- package/prisma/prisma/comprehensive-migration-20260120.sql +5751 -0
- package/prisma/prisma/delta-migration-20260120.sql +302 -0
- package/prisma/prisma/manual-migration-add-missing-columns.sql +182 -0
- package/prisma/prisma/migrations/competition-prize-catalog-entry-tier.sql +39 -0
- package/prisma/prisma/quick-migration.sql +47 -0
- package/prisma/prisma/schema.prisma +10850 -0
- package/prisma/prisma/verify-migration.sql +132 -0
- package/prisma/schema.prisma +980 -3
- package/src/__tests__/accessScreening.test.ts +29 -0
- package/src/__tests__/bookingIntent.test.ts +50 -0
- package/src/__tests__/entertainmentNotableVenues.test.ts +110 -0
- package/src/__tests__/influencerAudience.test.ts +38 -0
- package/src/__tests__/productLaunch.test.ts +52 -0
- package/src/accessScreening.ts +23 -0
- package/src/aiEventPlan.ts +75 -0
- package/src/bookingIntent.ts +54 -0
- package/src/definitions.ts +2 -0
- package/src/entertainmentNotableVenues.ts +137 -0
- package/src/extendedSchemas.ts +111 -1
- package/src/index.ts +44 -1
- package/src/influencerAudience.ts +156 -0
- package/src/productLaunch.ts +68 -0
- package/src/utils/__tests__/agencyBookingCheckoutCopy.test.ts +27 -0
- package/src/utils/__tests__/entertainmentDrawFit.test.ts +122 -0
- package/src/utils/__tests__/guestSurface.test.ts +9 -0
- package/src/utils/__tests__/locationVisibility.test.ts +14 -0
- package/src/utils/__tests__/organizationEntitlements.test.ts +59 -0
- package/src/utils/__tests__/reputationUtils.bayesian.test.ts +48 -0
- package/src/utils/__tests__/reputationUtils.serviceListing.test.ts +36 -0
- package/src/utils/__tests__/serviceAvailabilityDisplay.test.ts +152 -0
- package/src/utils/__tests__/socialEventCadence.test.ts +37 -0
- package/src/utils/__tests__/ticketCheckInDisplay.test.ts +49 -0
- package/src/utils/agencyBookingCheckoutCopy.ts +50 -0
- package/src/utils/entertainmentDrawFit.ts +180 -0
- package/src/utils/guestSurface.ts +20 -3
- package/src/utils/locationVisibility.ts +11 -2
- package/src/utils/organizationEntitlements.ts +37 -0
- package/src/utils/reputationUtils.ts +94 -0
- package/src/utils/service/serviceUtils.ts +6 -2
- package/src/utils/serviceAvailabilityDisplay.ts +199 -0
- package/src/utils/ticketCheckInDisplay.ts +37 -0
- package/src/utils/userUtils.ts +36 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure eligibility evaluator — same logic runs on API + bash-app, so this
|
|
3
|
+
* suite locks the truth table for both call sites.
|
|
4
|
+
*/
|
|
5
|
+
import { evaluateEligibility, evaluateOffersEligibility, } from "../eligibilityUtils.js";
|
|
6
|
+
const baseMetrics = { ticketedEventsAttended: 2, bookingsAsHost: 0 };
|
|
7
|
+
describe("evaluateEligibility", () => {
|
|
8
|
+
test("offer with no gates and no cooldown is eligible", () => {
|
|
9
|
+
const result = evaluateEligibility(baseMetrics, {
|
|
10
|
+
id: "o1",
|
|
11
|
+
minTicketedEventsAttended: null,
|
|
12
|
+
minBookingsAsHost: null,
|
|
13
|
+
});
|
|
14
|
+
expect(result.eligible).toBe(true);
|
|
15
|
+
expect(result.missing.ticketedEventsShort).toBeNull();
|
|
16
|
+
expect(result.missing.bookingsAsHostShort).toBeNull();
|
|
17
|
+
expect(result.onCooldownUntil).toBeNull();
|
|
18
|
+
});
|
|
19
|
+
test("guest meets ticketed gate exactly is eligible", () => {
|
|
20
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 3, bookingsAsHost: 0 }, { id: "o2", minTicketedEventsAttended: 3, minBookingsAsHost: null });
|
|
21
|
+
expect(result.eligible).toBe(true);
|
|
22
|
+
expect(result.missing.ticketedEventsShort).toBeNull();
|
|
23
|
+
});
|
|
24
|
+
test("guest one short on ticketed gate surfaces shortfall + locked state", () => {
|
|
25
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 2, bookingsAsHost: 0 }, { id: "o3", minTicketedEventsAttended: 3, minBookingsAsHost: null });
|
|
26
|
+
expect(result.eligible).toBe(false);
|
|
27
|
+
expect(result.missing.ticketedEventsShort).toBe(1);
|
|
28
|
+
expect(result.missing.bookingsAsHostShort).toBeNull();
|
|
29
|
+
});
|
|
30
|
+
test("guest short on both gates surfaces both shortfalls", () => {
|
|
31
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 1, bookingsAsHost: 0 }, { id: "o4", minTicketedEventsAttended: 4, minBookingsAsHost: 2 });
|
|
32
|
+
expect(result.eligible).toBe(false);
|
|
33
|
+
expect(result.missing.ticketedEventsShort).toBe(3);
|
|
34
|
+
expect(result.missing.bookingsAsHostShort).toBe(2);
|
|
35
|
+
});
|
|
36
|
+
test("gates met but cooldown active surfaces onCooldownUntil + ineligible", () => {
|
|
37
|
+
const futureDate = new Date(Date.now() + 86400_000);
|
|
38
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 5, bookingsAsHost: 5 }, { id: "o5", minTicketedEventsAttended: 1, minBookingsAsHost: 1 }, futureDate);
|
|
39
|
+
expect(result.eligible).toBe(false);
|
|
40
|
+
expect(result.onCooldownUntil).toBe(futureDate.toISOString());
|
|
41
|
+
});
|
|
42
|
+
test("gates met and cooldown elapsed flips back to eligible", () => {
|
|
43
|
+
const pastDate = new Date(Date.now() - 86400_000);
|
|
44
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 5, bookingsAsHost: 5 }, { id: "o6", minTicketedEventsAttended: 1, minBookingsAsHost: 1 }, pastDate);
|
|
45
|
+
expect(result.eligible).toBe(true);
|
|
46
|
+
expect(result.onCooldownUntil).toBeNull();
|
|
47
|
+
});
|
|
48
|
+
test("cooldown accepts ISO string input", () => {
|
|
49
|
+
const futureIso = new Date(Date.now() + 3600_000).toISOString();
|
|
50
|
+
const result = evaluateEligibility({ ticketedEventsAttended: 5, bookingsAsHost: 5 }, { id: "o7", minTicketedEventsAttended: null, minBookingsAsHost: null }, futureIso);
|
|
51
|
+
expect(result.eligible).toBe(false);
|
|
52
|
+
expect(result.onCooldownUntil).toBe(futureIso);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
describe("evaluateOffersEligibility", () => {
|
|
56
|
+
test("maps each offer with the right cooldown from the keyed map", () => {
|
|
57
|
+
const future = new Date(Date.now() + 86400_000).toISOString();
|
|
58
|
+
const result = evaluateOffersEligibility({ ticketedEventsAttended: 2, bookingsAsHost: 1 }, [
|
|
59
|
+
{ id: "a", minTicketedEventsAttended: null, minBookingsAsHost: null },
|
|
60
|
+
{ id: "b", minTicketedEventsAttended: 3, minBookingsAsHost: null },
|
|
61
|
+
{ id: "c", minTicketedEventsAttended: 1, minBookingsAsHost: 1 },
|
|
62
|
+
], { c: future });
|
|
63
|
+
expect(result.map((r) => r.eligible)).toEqual([true, false, false]);
|
|
64
|
+
expect(result[2].onCooldownUntil).toBe(future);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=eligibilityUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibilityUtils.test.js","sourceRoot":"","sources":["../../../../src/utils/venueLoyalty/__tests__/eligibilityUtils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redemptionCodeUtils.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pin the redemption code alphabet, length, normalization, and uniqueness
|
|
3
|
+
* retry loop. Hosts type these codes from a phone — fat-finger characters
|
|
4
|
+
* (I, O, 0, 1) must never appear.
|
|
5
|
+
*/
|
|
6
|
+
import { REDEMPTION_CODE_LENGTH, __testInternals, generateRedemptionCode, generateUniqueRedemptionCode, isValidRedemptionCodeShape, normalizeRedemptionCode, } from "../redemptionCodeUtils.js";
|
|
7
|
+
describe("redemption code shape", () => {
|
|
8
|
+
test("alphabet excludes ambiguous characters", () => {
|
|
9
|
+
const alphabet = __testInternals.REDEMPTION_CODE_ALPHABET;
|
|
10
|
+
expect(alphabet).not.toMatch(/[IO01]/);
|
|
11
|
+
expect(alphabet).toHaveLength(32);
|
|
12
|
+
});
|
|
13
|
+
test("isValidRedemptionCodeShape accepts canonical codes", () => {
|
|
14
|
+
expect(isValidRedemptionCodeShape("ABCDEF23")).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
test("isValidRedemptionCodeShape rejects wrong length", () => {
|
|
17
|
+
expect(isValidRedemptionCodeShape("ABCDEF2")).toBe(false);
|
|
18
|
+
expect(isValidRedemptionCodeShape("ABCDEF234")).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
test("isValidRedemptionCodeShape rejects ambiguous chars", () => {
|
|
21
|
+
expect(isValidRedemptionCodeShape("ABCDEFI2")).toBe(false);
|
|
22
|
+
expect(isValidRedemptionCodeShape("ABCDEFO2")).toBe(false);
|
|
23
|
+
expect(isValidRedemptionCodeShape("ABCDEF02")).toBe(false);
|
|
24
|
+
expect(isValidRedemptionCodeShape("ABCDEF12")).toBe(false);
|
|
25
|
+
});
|
|
26
|
+
test("isValidRedemptionCodeShape rejects lowercase", () => {
|
|
27
|
+
expect(isValidRedemptionCodeShape("abcdef23")).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe("normalizeRedemptionCode", () => {
|
|
31
|
+
test("strips whitespace + dashes and uppercases", () => {
|
|
32
|
+
expect(normalizeRedemptionCode("ab12-cd34")).toBe("AB12CD34");
|
|
33
|
+
expect(normalizeRedemptionCode(" abcdef23 ")).toBe("ABCDEF23");
|
|
34
|
+
expect(normalizeRedemptionCode("a b\tc-d\n2 3 4 5")).toBe("ABCD2345");
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("generateRedemptionCode", () => {
|
|
38
|
+
test("produces 8-char codes from the alphabet", () => {
|
|
39
|
+
const code = generateRedemptionCode();
|
|
40
|
+
expect(code).toHaveLength(REDEMPTION_CODE_LENGTH);
|
|
41
|
+
expect(isValidRedemptionCodeShape(code)).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
test("respects injected random bytes", () => {
|
|
44
|
+
const bytes = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]);
|
|
45
|
+
const code = generateRedemptionCode(() => bytes);
|
|
46
|
+
const alphabet = __testInternals.REDEMPTION_CODE_ALPHABET;
|
|
47
|
+
expect(code).toBe(Array.from(bytes)
|
|
48
|
+
.map((b) => alphabet[b % alphabet.length])
|
|
49
|
+
.join(""));
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe("generateUniqueRedemptionCode", () => {
|
|
53
|
+
test("returns the first non-colliding candidate", async () => {
|
|
54
|
+
const seen = new Set();
|
|
55
|
+
const code = await generateUniqueRedemptionCode(async (c) => seen.has(c));
|
|
56
|
+
expect(isValidRedemptionCodeShape(code)).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
test("retries until one succeeds", async () => {
|
|
59
|
+
let calls = 0;
|
|
60
|
+
const code = await generateUniqueRedemptionCode(async () => {
|
|
61
|
+
calls += 1;
|
|
62
|
+
return calls < 3;
|
|
63
|
+
});
|
|
64
|
+
expect(calls).toBe(3);
|
|
65
|
+
expect(isValidRedemptionCodeShape(code)).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
test("throws after exhausting attempts", async () => {
|
|
68
|
+
await expect(generateUniqueRedemptionCode(async () => true, { maxAttempts: 4 })).rejects.toThrow(/Could not generate a unique/);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=redemptionCodeUtils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redemptionCodeUtils.test.js","sourceRoot":"","sources":["../../../../src/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure (no Prisma, no `bash-app` imports) eligibility evaluator for venue
|
|
3
|
+
* loyalty offers. Runs identically on the server (gating claim creation) and
|
|
4
|
+
* the client (rendering locked / progress states on the public loyalty
|
|
5
|
+
* section).
|
|
6
|
+
*
|
|
7
|
+
* The actual metric collection lives in
|
|
8
|
+
* `api/src/utils/venueLoyalty/eligibilityCalculator.ts` for the server and
|
|
9
|
+
* comes pre-computed from the eligibility endpoint for the client.
|
|
10
|
+
*/
|
|
11
|
+
import type { VenueLoyaltyEligibilitySnapshot, VenueLoyaltyOfferDto, VenueLoyaltyOfferEligibility } from "../../venueLoyaltyRedemption.js";
|
|
12
|
+
/**
|
|
13
|
+
* Subset of `VenueLoyaltyOfferDto` the evaluator needs. Kept narrow so callers
|
|
14
|
+
* can pass in the Prisma row directly without remapping.
|
|
15
|
+
*/
|
|
16
|
+
export interface OfferGates {
|
|
17
|
+
id: string;
|
|
18
|
+
minTicketedEventsAttended: number | null;
|
|
19
|
+
minBookingsAsHost: number | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Evaluate one offer against one guest's metric snapshot. Optional
|
|
23
|
+
* `onCooldownUntil` (already computed from the latest non-active redemption +
|
|
24
|
+
* `offer.cooldownDays`) shadows eligibility so the UI shows "available in N
|
|
25
|
+
* days" instead of unlock progress.
|
|
26
|
+
*/
|
|
27
|
+
export declare function evaluateEligibility(metrics: VenueLoyaltyEligibilitySnapshot, offer: OfferGates, onCooldownUntil?: Date | string | null): VenueLoyaltyOfferEligibility;
|
|
28
|
+
/**
|
|
29
|
+
* Batch helper for rendering a venue's full offer list with eligibility in
|
|
30
|
+
* one pass. `cooldownMap` is keyed by `offerId`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function evaluateOffersEligibility(metrics: VenueLoyaltyEligibilitySnapshot, offers: ReadonlyArray<Pick<VenueLoyaltyOfferDto, "id" | "minTicketedEventsAttended" | "minBookingsAsHost">>, cooldownMap?: Record<string, Date | string | null>): VenueLoyaltyOfferEligibility[];
|
|
33
|
+
//# sourceMappingURL=eligibilityUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibilityUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/venueLoyalty/eligibilityUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,+BAA+B,EAC/B,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,iCAAiC,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,+BAA+B,EACxC,KAAK,EAAE,UAAU,EACjB,eAAe,GAAE,IAAI,GAAG,MAAM,GAAG,IAAW,GAC3C,4BAA4B,CAgC9B;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,+BAA+B,EACxC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,2BAA2B,GAAG,mBAAmB,CAAC,CAAC,EAC3G,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAM,GACrD,4BAA4B,EAAE,CAIhC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure (no Prisma, no `bash-app` imports) eligibility evaluator for venue
|
|
3
|
+
* loyalty offers. Runs identically on the server (gating claim creation) and
|
|
4
|
+
* the client (rendering locked / progress states on the public loyalty
|
|
5
|
+
* section).
|
|
6
|
+
*
|
|
7
|
+
* The actual metric collection lives in
|
|
8
|
+
* `api/src/utils/venueLoyalty/eligibilityCalculator.ts` for the server and
|
|
9
|
+
* comes pre-computed from the eligibility endpoint for the client.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Evaluate one offer against one guest's metric snapshot. Optional
|
|
13
|
+
* `onCooldownUntil` (already computed from the latest non-active redemption +
|
|
14
|
+
* `offer.cooldownDays`) shadows eligibility so the UI shows "available in N
|
|
15
|
+
* days" instead of unlock progress.
|
|
16
|
+
*/
|
|
17
|
+
export function evaluateEligibility(metrics, offer, onCooldownUntil = null) {
|
|
18
|
+
const ticketedEventsShort = offer.minTicketedEventsAttended !== null &&
|
|
19
|
+
offer.minTicketedEventsAttended > metrics.ticketedEventsAttended
|
|
20
|
+
? offer.minTicketedEventsAttended - metrics.ticketedEventsAttended
|
|
21
|
+
: null;
|
|
22
|
+
const bookingsAsHostShort = offer.minBookingsAsHost !== null &&
|
|
23
|
+
offer.minBookingsAsHost > metrics.bookingsAsHost
|
|
24
|
+
? offer.minBookingsAsHost - metrics.bookingsAsHost
|
|
25
|
+
: null;
|
|
26
|
+
const cooldownIso = onCooldownUntil instanceof Date
|
|
27
|
+
? onCooldownUntil.toISOString()
|
|
28
|
+
: onCooldownUntil;
|
|
29
|
+
const cooldownActive = cooldownIso !== null && new Date(cooldownIso) > new Date();
|
|
30
|
+
const gatesMet = ticketedEventsShort === null && bookingsAsHostShort === null;
|
|
31
|
+
return {
|
|
32
|
+
offerId: offer.id,
|
|
33
|
+
eligible: gatesMet && !cooldownActive,
|
|
34
|
+
missing: {
|
|
35
|
+
ticketedEventsShort,
|
|
36
|
+
bookingsAsHostShort,
|
|
37
|
+
},
|
|
38
|
+
onCooldownUntil: cooldownActive ? cooldownIso : null,
|
|
39
|
+
metrics,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Batch helper for rendering a venue's full offer list with eligibility in
|
|
44
|
+
* one pass. `cooldownMap` is keyed by `offerId`.
|
|
45
|
+
*/
|
|
46
|
+
export function evaluateOffersEligibility(metrics, offers, cooldownMap = {}) {
|
|
47
|
+
return offers.map((offer) => evaluateEligibility(metrics, offer, cooldownMap[offer.id] ?? null));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=eligibilityUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eligibilityUtils.js","sourceRoot":"","sources":["../../../src/utils/venueLoyalty/eligibilityUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAwC,EACxC,KAAiB,EACjB,kBAAwC,IAAI;IAE5C,MAAM,mBAAmB,GACvB,KAAK,CAAC,yBAAyB,KAAK,IAAI;QACxC,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,sBAAsB;QAC9D,CAAC,CAAC,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,sBAAsB;QAClE,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,mBAAmB,GACvB,KAAK,CAAC,iBAAiB,KAAK,IAAI;QAChC,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,cAAc;QAC9C,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC,cAAc;QAClD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,WAAW,GACf,eAAe,YAAY,IAAI;QAC7B,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE;QAC/B,CAAC,CAAC,eAAe,CAAC;IAEtB,MAAM,cAAc,GAAG,WAAW,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IAElF,MAAM,QAAQ,GAAG,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,IAAI,CAAC;IAE9E,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,QAAQ,IAAI,CAAC,cAAc;QACrC,OAAO,EAAE;YACP,mBAAmB;YACnB,mBAAmB;SACpB;QACD,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QACpD,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAwC,EACxC,MAA2G,EAC3G,cAAoD,EAAE;IAEtD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CACnE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redemption code generation + validation for venue loyalty claims.
|
|
3
|
+
*
|
|
4
|
+
* Codes are 8 characters from a 32-letter alphabet that excludes the visually
|
|
5
|
+
* ambiguous `I`, `O`, `0`, `1` so a host typing the code from a phone screen
|
|
6
|
+
* doesn't fat-finger it. Collisions are scoped per-venue (see the unique
|
|
7
|
+
* constraint on `VenueLoyaltyRedemption(venueId, redemptionCode)`), so the
|
|
8
|
+
* 32^8 ≈ 1.1 trillion keyspace is enormous overkill — the retry loop in
|
|
9
|
+
* `generateUniqueRedemptionCode` exists to be defensive, not because we
|
|
10
|
+
* expect contention.
|
|
11
|
+
*/
|
|
12
|
+
export declare const REDEMPTION_CODE_LENGTH = 8;
|
|
13
|
+
/** True iff `code` matches the canonical 8-char alphabet. */
|
|
14
|
+
export declare function isValidRedemptionCodeShape(code: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Normalize user input — uppercase, strip whitespace + dashes — before
|
|
17
|
+
* validation or DB lookup. Lets us accept "ab12-cd34" from a phone keyboard.
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizeRedemptionCode(input: string): string;
|
|
20
|
+
/** Single 8-char code, sampled from a CSPRNG when available. */
|
|
21
|
+
export declare function generateRedemptionCode(randomBytes?: (length: number) => Uint8Array): string;
|
|
22
|
+
/**
|
|
23
|
+
* Sample fresh codes until `existsInVenue(code)` returns false. Bounded to
|
|
24
|
+
* `maxAttempts` so a misbehaving uniqueness probe can't spin forever. Throws
|
|
25
|
+
* after exhausting attempts — caller should surface a 5xx, this would mean
|
|
26
|
+
* the keyspace is exhausted (impossible in practice) or the DB is unhealthy.
|
|
27
|
+
*/
|
|
28
|
+
export declare function generateUniqueRedemptionCode(existsInVenue: (code: string) => Promise<boolean>, options?: {
|
|
29
|
+
randomBytes?: (length: number) => Uint8Array;
|
|
30
|
+
maxAttempts?: number;
|
|
31
|
+
}): Promise<string>;
|
|
32
|
+
export declare const __testInternals: {
|
|
33
|
+
REDEMPTION_CODE_ALPHABET: string;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=redemptionCodeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redemptionCodeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/venueLoyalty/redemptionCodeUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAMxC,6DAA6D;AAC7D,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CACpC,WAAW,GAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAA+B,GAC/D,MAAM,CAOR;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EACjD,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,GACL,OAAO,CAAC,MAAM,CAAC,CAYjB;AAuBD,eAAO,MAAM,eAAe;;CAE3B,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redemption code generation + validation for venue loyalty claims.
|
|
3
|
+
*
|
|
4
|
+
* Codes are 8 characters from a 32-letter alphabet that excludes the visually
|
|
5
|
+
* ambiguous `I`, `O`, `0`, `1` so a host typing the code from a phone screen
|
|
6
|
+
* doesn't fat-finger it. Collisions are scoped per-venue (see the unique
|
|
7
|
+
* constraint on `VenueLoyaltyRedemption(venueId, redemptionCode)`), so the
|
|
8
|
+
* 32^8 ≈ 1.1 trillion keyspace is enormous overkill — the retry loop in
|
|
9
|
+
* `generateUniqueRedemptionCode` exists to be defensive, not because we
|
|
10
|
+
* expect contention.
|
|
11
|
+
*/
|
|
12
|
+
const REDEMPTION_CODE_ALPHABET = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
|
|
13
|
+
export const REDEMPTION_CODE_LENGTH = 8;
|
|
14
|
+
const REDEMPTION_CODE_REGEX = new RegExp(`^[${REDEMPTION_CODE_ALPHABET}]{${REDEMPTION_CODE_LENGTH}}$`);
|
|
15
|
+
/** True iff `code` matches the canonical 8-char alphabet. */
|
|
16
|
+
export function isValidRedemptionCodeShape(code) {
|
|
17
|
+
return REDEMPTION_CODE_REGEX.test(code);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Normalize user input — uppercase, strip whitespace + dashes — before
|
|
21
|
+
* validation or DB lookup. Lets us accept "ab12-cd34" from a phone keyboard.
|
|
22
|
+
*/
|
|
23
|
+
export function normalizeRedemptionCode(input) {
|
|
24
|
+
return input.replace(/[\s-]/g, "").toUpperCase();
|
|
25
|
+
}
|
|
26
|
+
/** Single 8-char code, sampled from a CSPRNG when available. */
|
|
27
|
+
export function generateRedemptionCode(randomBytes = defaultRandomBytes) {
|
|
28
|
+
const bytes = randomBytes(REDEMPTION_CODE_LENGTH);
|
|
29
|
+
let out = "";
|
|
30
|
+
for (let i = 0; i < REDEMPTION_CODE_LENGTH; i += 1) {
|
|
31
|
+
out += REDEMPTION_CODE_ALPHABET[bytes[i] % REDEMPTION_CODE_ALPHABET.length];
|
|
32
|
+
}
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Sample fresh codes until `existsInVenue(code)` returns false. Bounded to
|
|
37
|
+
* `maxAttempts` so a misbehaving uniqueness probe can't spin forever. Throws
|
|
38
|
+
* after exhausting attempts — caller should surface a 5xx, this would mean
|
|
39
|
+
* the keyspace is exhausted (impossible in practice) or the DB is unhealthy.
|
|
40
|
+
*/
|
|
41
|
+
export async function generateUniqueRedemptionCode(existsInVenue, options = {}) {
|
|
42
|
+
const maxAttempts = options.maxAttempts ?? 10;
|
|
43
|
+
const randomBytes = options.randomBytes ?? defaultRandomBytes;
|
|
44
|
+
for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
|
|
45
|
+
const candidate = generateRedemptionCode(randomBytes);
|
|
46
|
+
if (!(await existsInVenue(candidate))) {
|
|
47
|
+
return candidate;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
throw new Error(`Could not generate a unique venue loyalty redemption code after ${maxAttempts} attempts`);
|
|
51
|
+
}
|
|
52
|
+
function defaultRandomBytes(length) {
|
|
53
|
+
const cryptoObj = typeof globalThis !== "undefined" &&
|
|
54
|
+
globalThis.crypto
|
|
55
|
+
? globalThis.crypto
|
|
56
|
+
: undefined;
|
|
57
|
+
if (cryptoObj?.getRandomValues) {
|
|
58
|
+
const buf = new Uint8Array(length);
|
|
59
|
+
cryptoObj.getRandomValues(buf);
|
|
60
|
+
return buf;
|
|
61
|
+
}
|
|
62
|
+
// Last-resort fallback for environments without WebCrypto (legacy tests).
|
|
63
|
+
// Not security-critical because redemption codes are scoped per-venue
|
|
64
|
+
// behind auth, but still tries to spread entropy across the buffer.
|
|
65
|
+
const buf = new Uint8Array(length);
|
|
66
|
+
for (let i = 0; i < length; i += 1) {
|
|
67
|
+
buf[i] = Math.floor(Math.random() * 256);
|
|
68
|
+
}
|
|
69
|
+
return buf;
|
|
70
|
+
}
|
|
71
|
+
export const __testInternals = {
|
|
72
|
+
REDEMPTION_CODE_ALPHABET,
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=redemptionCodeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redemptionCodeUtils.js","sourceRoot":"","sources":["../../../src/utils/venueLoyalty/redemptionCodeUtils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,wBAAwB,GAAG,kCAAkC,CAAC;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,qBAAqB,GAAG,IAAI,MAAM,CACtC,KAAK,wBAAwB,KAAK,sBAAsB,IAAI,CAC7D,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACnD,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,sBAAsB,CACpC,cAA8C,kBAAkB;IAEhE,MAAM,KAAK,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAClD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,GAAG,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,aAAiD,EACjD,UAGI,EAAE;IAEN,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,mEAAmE,WAAW,WAAW,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,SAAS,GACb,OAAO,UAAU,KAAK,WAAW;QAChC,UAAkC,CAAC,MAAM;QACxC,CAAC,CAAE,UAAkC,CAAC,MAAM;QAC5C,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,SAAS,EAAE,eAAe,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,0EAA0E;IAC1E,sEAAsE;IACtE,oEAAoE;IACpE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,wBAAwB;CACzB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats venue type enum values into human-readable display names
|
|
3
|
+
* Example: "OutdoorSpace" -> "Outdoor Space", "WeddingVenue" -> "Wedding Venue"
|
|
4
|
+
*/
|
|
5
|
+
export declare function formatVenueType(venueType: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Formats an array of venue types into a human-readable string
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatVenueTypes(venueTypes: string[], maxDisplay?: number): string;
|
|
10
|
+
//# sourceMappingURL=venueTypeFormatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venueTypeFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/venueTypeFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,MAAM,CAarF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats venue type enum values into human-readable display names
|
|
3
|
+
* Example: "OutdoorSpace" -> "Outdoor Space", "WeddingVenue" -> "Wedding Venue"
|
|
4
|
+
*/
|
|
5
|
+
export function formatVenueType(venueType) {
|
|
6
|
+
if (!venueType)
|
|
7
|
+
return '';
|
|
8
|
+
// Insert space before capital letters (but not at the start)
|
|
9
|
+
return venueType.replace(/([A-Z])/g, ' $1').trim();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Formats an array of venue types into a human-readable string
|
|
13
|
+
*/
|
|
14
|
+
export function formatVenueTypes(venueTypes, maxDisplay = 2) {
|
|
15
|
+
if (!Array.isArray(venueTypes) || venueTypes.length === 0) {
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const formatted = venueTypes.slice(0, maxDisplay).map(formatVenueType);
|
|
19
|
+
const remaining = venueTypes.length - maxDisplay;
|
|
20
|
+
if (remaining > 0) {
|
|
21
|
+
return `${formatted.join(', ')} +${remaining} more`;
|
|
22
|
+
}
|
|
23
|
+
return formatted.join(', ');
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=venueTypeFormatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venueTypeFormatter.js","sourceRoot":"","sources":["../../src/utils/venueTypeFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,6DAA6D;IAC7D,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAoB,EAAE,aAAqB,CAAC;IAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;IAEjD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,OAAO,CAAC;IACtD,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UTM / marketing attribution: first-touch capture in sessionStorage, Stripe metadata keys,
|
|
3
|
+
* and persistence on Ticket rows.
|
|
4
|
+
*/
|
|
5
|
+
export interface UtmFields {
|
|
6
|
+
utmSource?: string;
|
|
7
|
+
utmMedium?: string;
|
|
8
|
+
utmCampaign?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Normalize optional UTM strings from API args (Stripe checkout / payment intent body). */
|
|
11
|
+
export declare function utmFieldsFromCheckoutArgs(args: UtmFields): UtmFields | undefined;
|
|
12
|
+
/** Stripe Checkout / PaymentIntent metadata (snake_case keys). */
|
|
13
|
+
export declare function utmFieldsToStripeMetadata(utm: UtmFields | undefined): Record<string, string>;
|
|
14
|
+
/** Prisma `Ticket` columns for persisted UTM (omit empty). */
|
|
15
|
+
export declare function utmFieldsToTicketColumns(utm: UtmFields): {
|
|
16
|
+
utmSource?: string;
|
|
17
|
+
utmMedium?: string;
|
|
18
|
+
utmCampaign?: string;
|
|
19
|
+
};
|
|
20
|
+
/** Read UTM from Stripe object metadata into Prisma Ticket field names. */
|
|
21
|
+
export declare function utmFieldsFromStripeMetadata(md: Record<string, string | undefined> | null | undefined): UtmFields;
|
|
22
|
+
/**
|
|
23
|
+
* First-touch per session: store each UTM component the first time it appears in the URL.
|
|
24
|
+
* Call on route changes so client-side navigations to ?utm_*= still capture.
|
|
25
|
+
*/
|
|
26
|
+
export declare function captureFirstTouchUtmFromUrlSearchParams(search: string): void;
|
|
27
|
+
/** Values previously captured for this tab session (for checkout API bodies). */
|
|
28
|
+
export declare function getStoredUtmFields(): UtmFields;
|
|
29
|
+
//# sourceMappingURL=utmAttribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utmAttribution.d.ts","sourceRoot":"","sources":["../src/utmAttribution.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAkBhF;AAED,kEAAkE;AAClE,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAe5F;AAED,8DAA8D;AAC9D,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,SAAS,GAAG;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAYA;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,GACxD,SAAS,CAkBX;AAED;;;GAGG;AACH,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB5E;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,IAAI,SAAS,CAkB9C"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UTM / marketing attribution: first-touch capture in sessionStorage, Stripe metadata keys,
|
|
3
|
+
* and persistence on Ticket rows.
|
|
4
|
+
*/
|
|
5
|
+
const SESSION_KEYS = {
|
|
6
|
+
utmSource: "bash_utm_source",
|
|
7
|
+
utmMedium: "bash_utm_medium",
|
|
8
|
+
utmCampaign: "bash_utm_campaign",
|
|
9
|
+
};
|
|
10
|
+
/** Normalize optional UTM strings from API args (Stripe checkout / payment intent body). */
|
|
11
|
+
export function utmFieldsFromCheckoutArgs(args) {
|
|
12
|
+
const s = args.utmSource?.trim();
|
|
13
|
+
const m = args.utmMedium?.trim();
|
|
14
|
+
const c = args.utmCampaign?.trim();
|
|
15
|
+
if (!s && !m && !c) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const out = {};
|
|
19
|
+
if (s) {
|
|
20
|
+
out.utmSource = s.slice(0, 500);
|
|
21
|
+
}
|
|
22
|
+
if (m) {
|
|
23
|
+
out.utmMedium = m.slice(0, 500);
|
|
24
|
+
}
|
|
25
|
+
if (c) {
|
|
26
|
+
out.utmCampaign = c.slice(0, 500);
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
30
|
+
/** Stripe Checkout / PaymentIntent metadata (snake_case keys). */
|
|
31
|
+
export function utmFieldsToStripeMetadata(utm) {
|
|
32
|
+
if (!utm) {
|
|
33
|
+
return {};
|
|
34
|
+
}
|
|
35
|
+
const out = {};
|
|
36
|
+
if (utm.utmSource) {
|
|
37
|
+
out.utm_source = utm.utmSource;
|
|
38
|
+
}
|
|
39
|
+
if (utm.utmMedium) {
|
|
40
|
+
out.utm_medium = utm.utmMedium;
|
|
41
|
+
}
|
|
42
|
+
if (utm.utmCampaign) {
|
|
43
|
+
out.utm_campaign = utm.utmCampaign;
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/** Prisma `Ticket` columns for persisted UTM (omit empty). */
|
|
48
|
+
export function utmFieldsToTicketColumns(utm) {
|
|
49
|
+
const out = {};
|
|
50
|
+
if (utm.utmSource) {
|
|
51
|
+
out.utmSource = utm.utmSource;
|
|
52
|
+
}
|
|
53
|
+
if (utm.utmMedium) {
|
|
54
|
+
out.utmMedium = utm.utmMedium;
|
|
55
|
+
}
|
|
56
|
+
if (utm.utmCampaign) {
|
|
57
|
+
out.utmCampaign = utm.utmCampaign;
|
|
58
|
+
}
|
|
59
|
+
return out;
|
|
60
|
+
}
|
|
61
|
+
/** Read UTM from Stripe object metadata into Prisma Ticket field names. */
|
|
62
|
+
export function utmFieldsFromStripeMetadata(md) {
|
|
63
|
+
if (!md) {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
const s = md.utm_source?.trim();
|
|
67
|
+
const m = md.utm_medium?.trim();
|
|
68
|
+
const c = md.utm_campaign?.trim();
|
|
69
|
+
const out = {};
|
|
70
|
+
if (s) {
|
|
71
|
+
out.utmSource = s.slice(0, 500);
|
|
72
|
+
}
|
|
73
|
+
if (m) {
|
|
74
|
+
out.utmMedium = m.slice(0, 500);
|
|
75
|
+
}
|
|
76
|
+
if (c) {
|
|
77
|
+
out.utmCampaign = c.slice(0, 500);
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* First-touch per session: store each UTM component the first time it appears in the URL.
|
|
83
|
+
* Call on route changes so client-side navigations to ?utm_*= still capture.
|
|
84
|
+
*/
|
|
85
|
+
export function captureFirstTouchUtmFromUrlSearchParams(search) {
|
|
86
|
+
if (typeof window === "undefined" || typeof sessionStorage === "undefined") {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const q = search.startsWith("?") ? search.slice(1) : search;
|
|
90
|
+
const params = new URLSearchParams(q);
|
|
91
|
+
const pairs = [
|
|
92
|
+
["utmSource", "utm_source"],
|
|
93
|
+
["utmMedium", "utm_medium"],
|
|
94
|
+
["utmCampaign", "utm_campaign"],
|
|
95
|
+
];
|
|
96
|
+
for (const [storageField, paramName] of pairs) {
|
|
97
|
+
const v = params.get(paramName)?.trim();
|
|
98
|
+
const key = SESSION_KEYS[storageField];
|
|
99
|
+
if (v && !sessionStorage.getItem(key)) {
|
|
100
|
+
sessionStorage.setItem(key, v.slice(0, 500));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Values previously captured for this tab session (for checkout API bodies). */
|
|
105
|
+
export function getStoredUtmFields() {
|
|
106
|
+
if (typeof sessionStorage === "undefined") {
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
const s = sessionStorage.getItem(SESSION_KEYS.utmSource)?.trim();
|
|
110
|
+
const m = sessionStorage.getItem(SESSION_KEYS.utmMedium)?.trim();
|
|
111
|
+
const c = sessionStorage.getItem(SESSION_KEYS.utmCampaign)?.trim();
|
|
112
|
+
const out = {};
|
|
113
|
+
if (s) {
|
|
114
|
+
out.utmSource = s;
|
|
115
|
+
}
|
|
116
|
+
if (m) {
|
|
117
|
+
out.utmMedium = m;
|
|
118
|
+
}
|
|
119
|
+
if (c) {
|
|
120
|
+
out.utmCampaign = c;
|
|
121
|
+
}
|
|
122
|
+
return out;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=utmAttribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utmAttribution.js","sourceRoot":"","sources":["../src/utmAttribution.ts"],"names":[],"mappings":"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"}
|