@bash-app/bash-common 30.424.0 → 30.427.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.
Files changed (472) hide show
  1. package/dist/__tests__/agePolicy.test.js +6 -6
  2. package/dist/__tests__/agePolicy.test.js.map +1 -1
  3. package/dist/__tests__/bashEventCancellationPolicy.test.js +2 -2
  4. package/dist/__tests__/bashEventCancellationPolicy.test.js.map +1 -1
  5. package/dist/__tests__/bashSectionTitleForBashType.test.js +3 -3
  6. package/dist/__tests__/definitionsHelpers.test.js +1 -1
  7. package/dist/__tests__/definitionsHelpers.test.js.map +1 -1
  8. package/dist/__tests__/entertainmentNotableVenues.test.js +1 -1
  9. package/dist/__tests__/entertainmentNotableVenues.test.js.map +1 -1
  10. package/dist/__tests__/hostCrmCrowdPulse.test.js +1 -1
  11. package/dist/__tests__/hostCrmSegments.test.js +2 -2
  12. package/dist/__tests__/hostCrmSegments.test.js.map +1 -1
  13. package/dist/__tests__/hostPromoter.test.js +1 -1
  14. package/dist/__tests__/influencerAudience.test.js +1 -1
  15. package/dist/__tests__/influencerAudience.test.js.map +1 -1
  16. package/dist/__tests__/promoterCompetitionUtils.test.js +3 -3
  17. package/dist/__tests__/promoterCompetitionUtils.test.js.map +1 -1
  18. package/dist/__tests__/scenePulse.test.js +1 -1
  19. package/dist/__tests__/seatMap.test.js +1 -1
  20. package/dist/__tests__/seatMap.test.js.map +1 -1
  21. package/dist/__tests__/ticketAdmission.test.d.ts +1 -1
  22. package/dist/__tests__/ticketAdmission.test.js +1 -1
  23. package/dist/accessScreening.js +1 -1
  24. package/dist/aiApproval.d.ts +3 -3
  25. package/dist/aiApproval.js +3 -3
  26. package/dist/appleIapProducts.d.ts +1 -1
  27. package/dist/appleIapProducts.d.ts.map +1 -1
  28. package/dist/appleIapProducts.js +1 -1
  29. package/dist/appleIapProducts.js.map +1 -1
  30. package/dist/applicationFunnel.d.ts +1 -1
  31. package/dist/applicationFunnel.js +1 -1
  32. package/dist/audienceImport.d.ts +2 -2
  33. package/dist/audienceImport.d.ts.map +1 -1
  34. package/dist/audienceImport.js +2 -2
  35. package/dist/audienceImport.js.map +1 -1
  36. package/dist/bashEventCancellationPolicy.js +3 -3
  37. package/dist/bashEventCancellationPolicy.js.map +1 -1
  38. package/dist/budgetApproval.d.ts +1 -1
  39. package/dist/budgetApproval.js +1 -1
  40. package/dist/causeTags.js +4 -4
  41. package/dist/causeTags.js.map +1 -1
  42. package/dist/competitionIdeas.js +12 -12
  43. package/dist/competitionIdeas.js.map +1 -1
  44. package/dist/competitionValidation.d.ts +1 -1
  45. package/dist/competitionValidation.d.ts.map +1 -1
  46. package/dist/competitionValidation.js +1 -1
  47. package/dist/competitionValidation.js.map +1 -1
  48. package/dist/definitions.d.ts +35 -35
  49. package/dist/definitions.d.ts.map +1 -1
  50. package/dist/definitions.js +30 -30
  51. package/dist/definitions.js.map +1 -1
  52. package/dist/discoveryScope.d.ts +2 -2
  53. package/dist/discoveryScope.js +2 -2
  54. package/dist/entertainmentNotableVenues.js +1 -1
  55. package/dist/entertainmentNotableVenues.js.map +1 -1
  56. package/dist/extendedSchemas.d.ts +150 -150
  57. package/dist/extendedSchemas.d.ts.map +1 -1
  58. package/dist/extendedSchemas.js +11 -11
  59. package/dist/extendedSchemas.js.map +1 -1
  60. package/dist/fundingMeter.d.ts +1 -1
  61. package/dist/fundingMeter.js +1 -1
  62. package/dist/giveaway.d.ts +2 -2
  63. package/dist/giveaway.d.ts.map +1 -1
  64. package/dist/giveaway.js +2 -2
  65. package/dist/giveaway.js.map +1 -1
  66. package/dist/guestPartySize.js +3 -3
  67. package/dist/guestPartySize.js.map +1 -1
  68. package/dist/home.d.ts +1 -1
  69. package/dist/homepageSyntheticRows.d.ts +2 -2
  70. package/dist/homepageSyntheticRows.d.ts.map +1 -1
  71. package/dist/homepageSyntheticRows.js +2 -2
  72. package/dist/homepageSyntheticRows.js.map +1 -1
  73. package/dist/hostCrmAutomation.d.ts +11 -11
  74. package/dist/hostCrmAutomation.d.ts.map +1 -1
  75. package/dist/hostCrmAutomation.js +9 -9
  76. package/dist/hostCrmAutomation.js.map +1 -1
  77. package/dist/hostCrmConstants.d.ts +1 -1
  78. package/dist/hostCrmConstants.d.ts.map +1 -1
  79. package/dist/hostCrmConstants.js +1 -1
  80. package/dist/hostCrmConstants.js.map +1 -1
  81. package/dist/hostCrmCrowdPulse.d.ts +2 -2
  82. package/dist/hostCrmCrowdPulse.d.ts.map +1 -1
  83. package/dist/hostCrmCrowdPulse.js +1 -1
  84. package/dist/hostCrmInsights.d.ts +3 -3
  85. package/dist/hostCrmLastBashProof.d.ts +2 -2
  86. package/dist/hostCrmLastBashProof.d.ts.map +1 -1
  87. package/dist/hostCrmLastBashProof.js +1 -1
  88. package/dist/hostCrmSegments.d.ts +10 -10
  89. package/dist/hostCrmSegments.d.ts.map +1 -1
  90. package/dist/hostCrmSegments.js +2 -2
  91. package/dist/hostCrmSegments.js.map +1 -1
  92. package/dist/hostPromoter.d.ts +1 -1
  93. package/dist/hostPromoter.d.ts.map +1 -1
  94. package/dist/hostPromoter.js +1 -1
  95. package/dist/hostPromoter.js.map +1 -1
  96. package/dist/icebreakerPrompts.js +2 -2
  97. package/dist/icebreakerPrompts.js.map +1 -1
  98. package/dist/index.js +1 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/influencerAudience.js +3 -3
  101. package/dist/influencerAudience.js.map +1 -1
  102. package/dist/liveActivity/liveActivityTypes.d.ts +10 -10
  103. package/dist/liveActivity/liveActivityTypes.d.ts.map +1 -1
  104. package/dist/liveActivity/liveActivityTypes.js +2 -2
  105. package/dist/liveActivity/liveActivityTypes.js.map +1 -1
  106. package/dist/locationShare.d.ts +2 -2
  107. package/dist/locationShare.d.ts.map +1 -1
  108. package/dist/locationShare.js +2 -2
  109. package/dist/locationShare.js.map +1 -1
  110. package/dist/membershipDefinitions.d.ts +5 -5
  111. package/dist/membershipDefinitions.d.ts.map +1 -1
  112. package/dist/membershipDefinitions.js +21 -21
  113. package/dist/membershipDefinitions.js.map +1 -1
  114. package/dist/mirroredPrismaEnums.d.ts +6 -6
  115. package/dist/mirroredPrismaEnums.js +6 -6
  116. package/dist/onSaleCapabilityRecommendations.d.ts +1 -1
  117. package/dist/onSaleCapabilityRecommendations.js +1 -1
  118. package/dist/partnerStoreTypes.d.ts +1 -1
  119. package/dist/partnerStoreTypes.d.ts.map +1 -1
  120. package/dist/productLaunch.d.ts +2 -2
  121. package/dist/productLaunch.d.ts.map +1 -1
  122. package/dist/productLaunch.js +2 -2
  123. package/dist/productLaunch.js.map +1 -1
  124. package/dist/relationshipHealth.d.ts +3 -3
  125. package/dist/relationshipHealth.d.ts.map +1 -1
  126. package/dist/relationshipHealth.js +3 -3
  127. package/dist/relationshipHealth.js.map +1 -1
  128. package/dist/scenePulse.d.ts +2 -2
  129. package/dist/scenePulse.js +1 -1
  130. package/dist/seatMap.d.ts +1 -1
  131. package/dist/seatMap.d.ts.map +1 -1
  132. package/dist/seatMap.js +2 -2
  133. package/dist/seatMap.js.map +1 -1
  134. package/dist/seatMapBestAvailable.js +2 -2
  135. package/dist/seatMapBestAvailable.js.map +1 -1
  136. package/dist/serviceTypeLabels.d.ts +3 -3
  137. package/dist/serviceTypeLabels.js +3 -3
  138. package/dist/sideQuestIdeas.js +8 -8
  139. package/dist/sideQuestIdeas.js.map +1 -1
  140. package/dist/sideQuestTypes.js +2 -2
  141. package/dist/sideQuestTypes.js.map +1 -1
  142. package/dist/sms/smsTemplates.d.ts +1 -1
  143. package/dist/sms/smsTemplates.js +1 -1
  144. package/dist/stripeListingSubscriptionMessages.d.ts +1 -1
  145. package/dist/stripeListingSubscriptionMessages.js +1 -1
  146. package/dist/targetAudienceLabels.d.ts +1 -1
  147. package/dist/targetAudienceLabels.js +1 -1
  148. package/dist/ticketBnplPaymentMethods.d.ts +3 -3
  149. package/dist/ticketBnplPaymentMethods.d.ts.map +1 -1
  150. package/dist/ticketBnplPaymentMethods.js +2 -2
  151. package/dist/userReportTypes.d.ts +1 -1
  152. package/dist/userReportTypes.d.ts.map +1 -1
  153. package/dist/userReportTypes.js +1 -1
  154. package/dist/userReportTypes.js.map +1 -1
  155. package/dist/userTaste.d.ts +2 -2
  156. package/dist/userTaste.d.ts.map +1 -1
  157. package/dist/userTaste.js +2 -2
  158. package/dist/userTaste.js.map +1 -1
  159. package/dist/utils/__tests__/badgeUtils.test.js +5 -5
  160. package/dist/utils/__tests__/badgeUtils.test.js.map +1 -1
  161. package/dist/utils/__tests__/bashPointsPaymentUtils.test.js +4 -4
  162. package/dist/utils/__tests__/bashPointsPaymentUtils.test.js.map +1 -1
  163. package/dist/utils/__tests__/contentFilterUtils.test.js +23 -23
  164. package/dist/utils/__tests__/contentFilterUtils.test.js.map +1 -1
  165. package/dist/utils/__tests__/dateTimeUtils.test.js +1 -1
  166. package/dist/utils/__tests__/displayDateUtils.test.js +1 -1
  167. package/dist/utils/__tests__/flyerUtils.test.js +1 -1
  168. package/dist/utils/__tests__/flyerUtils.test.js.map +1 -1
  169. package/dist/utils/__tests__/getBackendHost.test.js +8 -8
  170. package/dist/utils/__tests__/getBackendHost.test.js.map +1 -1
  171. package/dist/utils/__tests__/getFrontendHost.native.test.js +1 -1
  172. package/dist/utils/__tests__/getFrontendHost.native.test.js.map +1 -1
  173. package/dist/utils/__tests__/getFrontendHost.test.js +9 -9
  174. package/dist/utils/__tests__/getFrontendHost.test.js.map +1 -1
  175. package/dist/utils/__tests__/guestSurface.test.js +1 -0
  176. package/dist/utils/__tests__/guestSurface.test.js.map +1 -1
  177. package/dist/utils/__tests__/organizationEntitlements.test.js +1 -1
  178. package/dist/utils/__tests__/organizationEntitlements.test.js.map +1 -1
  179. package/dist/utils/__tests__/paymentUtils.test.js +7 -7
  180. package/dist/utils/__tests__/paymentUtils.test.js.map +1 -1
  181. package/dist/utils/__tests__/promoCodesUtils.test.js +2 -2
  182. package/dist/utils/__tests__/promoCodesUtils.test.js.map +1 -1
  183. package/dist/utils/__tests__/qrCodeUtils.test.js +4 -4
  184. package/dist/utils/__tests__/qrCodeUtils.test.js.map +1 -1
  185. package/dist/utils/__tests__/recurrenceUtils.test.js +18 -0
  186. package/dist/utils/__tests__/recurrenceUtils.test.js.map +1 -1
  187. package/dist/utils/__tests__/reviewDimensionUtils.test.js +1 -1
  188. package/dist/utils/__tests__/reviewDimensionUtils.test.js.map +1 -1
  189. package/dist/utils/__tests__/stripeAccountUtils.test.js +1 -1
  190. package/dist/utils/__tests__/ticketPrintPostageUtils.test.js +1 -1
  191. package/dist/utils/__tests__/ticketPrintPostageUtils.test.js.map +1 -1
  192. package/dist/utils/addressUtils.js +1 -1
  193. package/dist/utils/addressUtils.js.map +1 -1
  194. package/dist/utils/apiUtils.js +1 -1
  195. package/dist/utils/apiUtils.js.map +1 -1
  196. package/dist/utils/birthdayExperienceQuality.d.ts +1 -1
  197. package/dist/utils/birthdayExperienceQuality.js +4 -4
  198. package/dist/utils/birthdayExperienceQuality.js.map +1 -1
  199. package/dist/utils/blogUtils.d.ts +1 -1
  200. package/dist/utils/blogUtils.d.ts.map +1 -1
  201. package/dist/utils/blogUtils.js +2 -2
  202. package/dist/utils/blogUtils.js.map +1 -1
  203. package/dist/utils/discountEngine/discountCalculator.js +1 -1
  204. package/dist/utils/discountEngine/discountCalculator.js.map +1 -1
  205. package/dist/utils/displayDateUtils.d.ts +2 -2
  206. package/dist/utils/displayDateUtils.d.ts.map +1 -1
  207. package/dist/utils/displayDateUtils.js +2 -2
  208. package/dist/utils/displayDateUtils.js.map +1 -1
  209. package/dist/utils/entertainmentDrawFit.d.ts +1 -1
  210. package/dist/utils/entertainmentDrawFit.js +1 -1
  211. package/dist/utils/eventTimezoneIana.d.ts +1 -1
  212. package/dist/utils/eventTimezoneIana.js +4 -4
  213. package/dist/utils/eventTimezoneIana.js.map +1 -1
  214. package/dist/utils/flyerUtils.d.ts +2 -2
  215. package/dist/utils/flyerUtils.d.ts.map +1 -1
  216. package/dist/utils/flyerUtils.js +3 -3
  217. package/dist/utils/flyerUtils.js.map +1 -1
  218. package/dist/utils/groupTicketCartUtils.js +1 -1
  219. package/dist/utils/groupTicketCartUtils.js.map +1 -1
  220. package/dist/utils/guestSurface.d.ts +2 -2
  221. package/dist/utils/guestSurface.d.ts.map +1 -1
  222. package/dist/utils/guestSurface.js +8 -5
  223. package/dist/utils/guestSurface.js.map +1 -1
  224. package/dist/utils/lobFlyerUtils.d.ts +2 -2
  225. package/dist/utils/lobFlyerUtils.js +2 -2
  226. package/dist/utils/luxonUtils.d.ts +4 -4
  227. package/dist/utils/luxonUtils.js +5 -5
  228. package/dist/utils/luxonUtils.js.map +1 -1
  229. package/dist/utils/moodTrackUtils.d.ts +1 -1
  230. package/dist/utils/moodTrackUtils.js +1 -1
  231. package/dist/utils/nonprofitUtils.d.ts +3 -3
  232. package/dist/utils/nonprofitUtils.js +2 -2
  233. package/dist/utils/orgPromotionalPackageUtils.d.ts +1 -1
  234. package/dist/utils/orgPromotionalPackageUtils.js +1 -1
  235. package/dist/utils/organizationEntitlements.d.ts +4 -4
  236. package/dist/utils/organizationEntitlements.js +3 -3
  237. package/dist/utils/paymentUtils.d.ts +10 -10
  238. package/dist/utils/paymentUtils.js +9 -9
  239. package/dist/utils/promoterCompetitionUtils.d.ts +4 -4
  240. package/dist/utils/promoterCompetitionUtils.d.ts.map +1 -1
  241. package/dist/utils/promoterCompetitionUtils.js +7 -7
  242. package/dist/utils/promoterCompetitionUtils.js.map +1 -1
  243. package/dist/utils/promotionBlastUtils.d.ts +1 -1
  244. package/dist/utils/promotionBlastUtils.js +4 -4
  245. package/dist/utils/promotionBlastUtils.js.map +1 -1
  246. package/dist/utils/qrCodeUtils.d.ts +3 -3
  247. package/dist/utils/qrCodeUtils.d.ts.map +1 -1
  248. package/dist/utils/qrCodeUtils.js +3 -3
  249. package/dist/utils/qrCodeUtils.js.map +1 -1
  250. package/dist/utils/recurrenceUtils.d.ts +7 -4
  251. package/dist/utils/recurrenceUtils.d.ts.map +1 -1
  252. package/dist/utils/recurrenceUtils.js +32 -5
  253. package/dist/utils/recurrenceUtils.js.map +1 -1
  254. package/dist/utils/reputationUtils.d.ts +2 -2
  255. package/dist/utils/reputationUtils.d.ts.map +1 -1
  256. package/dist/utils/reputationUtils.js +1 -1
  257. package/dist/utils/reputationUtils.js.map +1 -1
  258. package/dist/utils/reviewDimensionUtils.d.ts +2 -2
  259. package/dist/utils/reviewDimensionUtils.d.ts.map +1 -1
  260. package/dist/utils/reviewDimensionUtils.js +1 -1
  261. package/dist/utils/reviewDimensionUtils.js.map +1 -1
  262. package/dist/utils/service/__tests__/billingCapUtils.test.js +3 -3
  263. package/dist/utils/service/__tests__/billingCapUtils.test.js.map +1 -1
  264. package/dist/utils/service/__tests__/eventPromoterPhase3.test.js +1 -1
  265. package/dist/utils/service/__tests__/eventPromoterUtils.test.js +1 -1
  266. package/dist/utils/service/__tests__/eventPromoterUtils.test.js.map +1 -1
  267. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.js +2 -2
  268. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.js.map +1 -1
  269. package/dist/utils/service/__tests__/serviceBookingExposureUtils.test.js +1 -1
  270. package/dist/utils/service/__tests__/serviceBookingExposureUtils.test.js.map +1 -1
  271. package/dist/utils/service/__tests__/serviceBookingStatusUtils.test.js +2 -2
  272. package/dist/utils/service/__tests__/serviceBookingStatusUtils.test.js.map +1 -1
  273. package/dist/utils/service/__tests__/serviceRateUtils.test.js +6 -6
  274. package/dist/utils/service/__tests__/serviceRateUtils.test.js.map +1 -1
  275. package/dist/utils/service/apiServiceBookingApiUtils.js +1 -1
  276. package/dist/utils/service/apiServiceBookingApiUtils.js.map +1 -1
  277. package/dist/utils/service/billingCapUtils.d.ts +5 -5
  278. package/dist/utils/service/billingCapUtils.js +5 -5
  279. package/dist/utils/service/cancellationPolicyRefundResolver.d.ts +1 -1
  280. package/dist/utils/service/cancellationPolicyRefundResolver.d.ts.map +1 -1
  281. package/dist/utils/service/eventPromoterUtils.d.ts +17 -17
  282. package/dist/utils/service/eventPromoterUtils.d.ts.map +1 -1
  283. package/dist/utils/service/eventPromoterUtils.js +11 -11
  284. package/dist/utils/service/eventPromoterUtils.js.map +1 -1
  285. package/dist/utils/service/foodAndBeverageQuote.d.ts +8 -8
  286. package/dist/utils/service/foodAndBeverageQuote.js +8 -8
  287. package/dist/utils/service/offerAllowListUtils.d.ts +1 -1
  288. package/dist/utils/service/offerComparisonUtils.d.ts +6 -6
  289. package/dist/utils/service/offerComparisonUtils.js +2 -2
  290. package/dist/utils/service/offerComparisonUtils.js.map +1 -1
  291. package/dist/utils/service/serviceBookingExposureUtils.d.ts +7 -7
  292. package/dist/utils/service/serviceBookingExposureUtils.js +5 -5
  293. package/dist/utils/service/serviceBookingExposureUtils.js.map +1 -1
  294. package/dist/utils/service/serviceFeaturedSortUtils.js +2 -2
  295. package/dist/utils/service/serviceFeaturedSortUtils.js.map +1 -1
  296. package/dist/utils/service/serviceListingMediaUtils.d.ts +2 -2
  297. package/dist/utils/service/serviceListingMediaUtils.d.ts.map +1 -1
  298. package/dist/utils/service/serviceListingMediaUtils.js +2 -2
  299. package/dist/utils/service/serviceListingMediaUtils.js.map +1 -1
  300. package/dist/utils/service/serviceUtils.js +2 -2
  301. package/dist/utils/service/serviceUtils.js.map +1 -1
  302. package/dist/utils/service/unifiedPricingResolver.d.ts +5 -5
  303. package/dist/utils/service/unifiedPricingResolver.d.ts.map +1 -1
  304. package/dist/utils/service/venueSettlementUtils.d.ts +2 -2
  305. package/dist/utils/service/venueSettlementUtils.js +3 -3
  306. package/dist/utils/service/venueSettlementUtils.js.map +1 -1
  307. package/dist/utils/service/volunteerCompensationUtils.d.ts +2 -2
  308. package/dist/utils/service/volunteerCompensationUtils.js +1 -1
  309. package/dist/utils/service/volunteerCompensationUtils.js.map +1 -1
  310. package/dist/utils/slugUtils.d.ts +1 -1
  311. package/dist/utils/slugUtils.js +1 -1
  312. package/dist/utils/ticketPrintPostageUtils.d.ts +4 -4
  313. package/dist/utils/ticketPrintPostageUtils.js +5 -5
  314. package/dist/utils/ticketPrintPostageUtils.js.map +1 -1
  315. package/dist/utils/ticketTierSchedule.d.ts +1 -1
  316. package/dist/utils/ticketTierSchedule.js +4 -4
  317. package/dist/utils/ticketTierSchedule.js.map +1 -1
  318. package/dist/utils/trustScoreUtils.d.ts +1 -1
  319. package/dist/utils/trustScoreUtils.js +1 -1
  320. package/dist/utils/urlUtils.d.ts +2 -2
  321. package/dist/utils/urlUtils.js +2 -2
  322. package/dist/utils/userUtils.d.ts +4 -4
  323. package/dist/utils/userUtils.js +3 -3
  324. package/dist/utils/venueLoyalty/__tests__/eligibilityUtils.test.js +1 -1
  325. package/dist/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.js +1 -1
  326. package/dist/utils/venueLoyalty/redemptionCodeUtils.d.ts +3 -3
  327. package/dist/utils/venueLoyalty/redemptionCodeUtils.js +3 -3
  328. package/dist/venueLoyaltyRedemption.d.ts +2 -2
  329. package/dist/venueLoyaltyRedemption.js +1 -1
  330. package/dist/venueMatch.d.ts +4 -4
  331. package/dist/venueMatch.d.ts.map +1 -1
  332. package/dist/venueMatch.js +1 -1
  333. package/dist/venueMatch.js.map +1 -1
  334. package/package.json +1 -1
  335. package/prisma/schema.prisma +3 -3
  336. package/src/__tests__/agePolicy.test.ts +6 -6
  337. package/src/__tests__/bashEventCancellationPolicy.test.ts +2 -2
  338. package/src/__tests__/bashSectionTitleForBashType.test.ts +3 -3
  339. package/src/__tests__/definitionsHelpers.test.ts +1 -1
  340. package/src/__tests__/entertainmentNotableVenues.test.ts +1 -1
  341. package/src/__tests__/hostCrmCrowdPulse.test.ts +1 -1
  342. package/src/__tests__/hostCrmSegments.test.ts +2 -2
  343. package/src/__tests__/hostPromoter.test.ts +1 -1
  344. package/src/__tests__/influencerAudience.test.ts +1 -1
  345. package/src/__tests__/promoterCompetitionUtils.test.ts +3 -3
  346. package/src/__tests__/scenePulse.test.ts +1 -1
  347. package/src/__tests__/seatMap.test.ts +1 -1
  348. package/src/__tests__/ticketAdmission.test.ts +1 -1
  349. package/src/accessScreening.ts +1 -1
  350. package/src/aiApproval.ts +3 -3
  351. package/src/appleIapProducts.ts +1 -1
  352. package/src/applicationFunnel.ts +1 -1
  353. package/src/audienceImport.ts +2 -2
  354. package/src/bashEventCancellationPolicy.ts +3 -3
  355. package/src/budgetApproval.ts +1 -1
  356. package/src/causeTags.ts +4 -4
  357. package/src/competitionIdeas.ts +12 -12
  358. package/src/competitionValidation.ts +1 -1
  359. package/src/definitions.ts +42 -42
  360. package/src/discoveryScope.ts +2 -2
  361. package/src/entertainmentNotableVenues.ts +1 -1
  362. package/src/extendedSchemas.ts +41 -41
  363. package/src/fundingMeter.ts +1 -1
  364. package/src/giveaway.ts +2 -2
  365. package/src/guestPartySize.ts +3 -3
  366. package/src/home.ts +1 -1
  367. package/src/homepageSyntheticRows.ts +2 -2
  368. package/src/hostCrmAutomation.ts +11 -11
  369. package/src/hostCrmConstants.ts +1 -1
  370. package/src/hostCrmCrowdPulse.ts +2 -2
  371. package/src/hostCrmInsights.ts +3 -3
  372. package/src/hostCrmLastBashProof.ts +2 -2
  373. package/src/hostCrmSegments.ts +12 -12
  374. package/src/hostPromoter.ts +1 -1
  375. package/src/icebreakerPrompts.ts +2 -2
  376. package/src/index.ts +1 -1
  377. package/src/influencerAudience.ts +3 -3
  378. package/src/liveActivity/liveActivityTypes.ts +10 -10
  379. package/src/locationShare.ts +2 -2
  380. package/src/membershipDefinitions.ts +21 -21
  381. package/src/mirroredPrismaEnums.ts +6 -6
  382. package/src/onSaleCapabilityRecommendations.ts +1 -1
  383. package/src/partnerStoreTypes.ts +1 -1
  384. package/src/productLaunch.ts +2 -2
  385. package/src/relationshipHealth.ts +5 -5
  386. package/src/scenePulse.ts +2 -2
  387. package/src/seatMap.ts +3 -3
  388. package/src/seatMapBestAvailable.ts +2 -2
  389. package/src/serviceTypeLabels.ts +3 -3
  390. package/src/sideQuestIdeas.ts +8 -8
  391. package/src/sideQuestTypes.ts +2 -2
  392. package/src/sms/smsTemplates.ts +1 -1
  393. package/src/stripeListingSubscriptionMessages.ts +1 -1
  394. package/src/targetAudienceLabels.ts +1 -1
  395. package/src/ticketBnplPaymentMethods.ts +3 -3
  396. package/src/userReportTypes.ts +1 -1
  397. package/src/userTaste.ts +2 -2
  398. package/src/utils/__tests__/badgeUtils.test.ts +5 -5
  399. package/src/utils/__tests__/bashPointsPaymentUtils.test.ts +4 -4
  400. package/src/utils/__tests__/contentFilterUtils.test.ts +23 -23
  401. package/src/utils/__tests__/dateTimeUtils.test.ts +1 -1
  402. package/src/utils/__tests__/displayDateUtils.test.ts +1 -1
  403. package/src/utils/__tests__/flyerUtils.test.ts +1 -1
  404. package/src/utils/__tests__/getBackendHost.test.ts +8 -8
  405. package/src/utils/__tests__/getFrontendHost.native.test.ts +1 -1
  406. package/src/utils/__tests__/getFrontendHost.test.ts +9 -9
  407. package/src/utils/__tests__/guestSurface.test.ts +1 -0
  408. package/src/utils/__tests__/organizationEntitlements.test.ts +1 -1
  409. package/src/utils/__tests__/paymentUtils.test.ts +7 -7
  410. package/src/utils/__tests__/promoCodesUtils.test.ts +2 -2
  411. package/src/utils/__tests__/qrCodeUtils.test.ts +4 -4
  412. package/src/utils/__tests__/recurrenceUtils.test.ts +26 -0
  413. package/src/utils/__tests__/reviewDimensionUtils.test.ts +1 -1
  414. package/src/utils/__tests__/stripeAccountUtils.test.ts +1 -1
  415. package/src/utils/__tests__/ticketPrintPostageUtils.test.ts +1 -1
  416. package/src/utils/addressUtils.ts +1 -1
  417. package/src/utils/apiUtils.ts +1 -1
  418. package/src/utils/birthdayExperienceQuality.ts +4 -4
  419. package/src/utils/blogUtils.ts +2 -2
  420. package/src/utils/discountEngine/discountCalculator.ts +1 -1
  421. package/src/utils/displayDateUtils.ts +2 -2
  422. package/src/utils/entertainmentDrawFit.ts +1 -1
  423. package/src/utils/eventTimezoneIana.ts +4 -4
  424. package/src/utils/flyerUtils.ts +3 -3
  425. package/src/utils/groupTicketCartUtils.ts +1 -1
  426. package/src/utils/guestSurface.ts +8 -6
  427. package/src/utils/lobFlyerUtils.ts +2 -2
  428. package/src/utils/luxonUtils.ts +5 -5
  429. package/src/utils/moodTrackUtils.ts +1 -1
  430. package/src/utils/nonprofitUtils.ts +3 -3
  431. package/src/utils/orgPromotionalPackageUtils.ts +1 -1
  432. package/src/utils/organizationEntitlements.ts +4 -4
  433. package/src/utils/paymentUtils.ts +10 -10
  434. package/src/utils/promoterCompetitionUtils.ts +8 -8
  435. package/src/utils/promotionBlastUtils.ts +4 -4
  436. package/src/utils/qrCodeUtils.ts +3 -3
  437. package/src/utils/recurrenceUtils.ts +33 -5
  438. package/src/utils/reputationUtils.ts +3 -3
  439. package/src/utils/reviewDimensionUtils.ts +2 -2
  440. package/src/utils/service/__tests__/billingCapUtils.test.ts +3 -3
  441. package/src/utils/service/__tests__/eventPromoterPhase3.test.ts +1 -1
  442. package/src/utils/service/__tests__/eventPromoterUtils.test.ts +1 -1
  443. package/src/utils/service/__tests__/frontendServiceBookingUtils.test.ts +2 -2
  444. package/src/utils/service/__tests__/serviceBookingExposureUtils.test.ts +1 -1
  445. package/src/utils/service/__tests__/serviceBookingStatusUtils.test.ts +2 -2
  446. package/src/utils/service/__tests__/serviceRateUtils.test.ts +6 -6
  447. package/src/utils/service/apiServiceBookingApiUtils.ts +1 -1
  448. package/src/utils/service/billingCapUtils.ts +5 -5
  449. package/src/utils/service/cancellationPolicyRefundResolver.ts +1 -1
  450. package/src/utils/service/eventPromoterUtils.ts +27 -27
  451. package/src/utils/service/foodAndBeverageQuote.ts +8 -8
  452. package/src/utils/service/offerAllowListUtils.ts +1 -1
  453. package/src/utils/service/offerComparisonUtils.ts +8 -8
  454. package/src/utils/service/serviceBookingExposureUtils.ts +8 -8
  455. package/src/utils/service/serviceBookingTypes.ts +2 -2
  456. package/src/utils/service/serviceFeaturedSortUtils.ts +2 -2
  457. package/src/utils/service/serviceListingMediaUtils.ts +2 -2
  458. package/src/utils/service/serviceUtils.ts +2 -2
  459. package/src/utils/service/unifiedPricingResolver.ts +5 -5
  460. package/src/utils/service/venueSettlementUtils.ts +3 -3
  461. package/src/utils/service/volunteerCompensationUtils.ts +3 -3
  462. package/src/utils/slugUtils.ts +1 -1
  463. package/src/utils/ticketPrintPostageUtils.ts +5 -5
  464. package/src/utils/ticketTierSchedule.ts +4 -4
  465. package/src/utils/trustScoreUtils.ts +1 -1
  466. package/src/utils/urlUtils.ts +2 -2
  467. package/src/utils/userUtils.ts +4 -4
  468. package/src/utils/venueLoyalty/__tests__/eligibilityUtils.test.ts +1 -1
  469. package/src/utils/venueLoyalty/__tests__/redemptionCodeUtils.test.ts +1 -1
  470. package/src/utils/venueLoyalty/redemptionCodeUtils.ts +3 -3
  471. package/src/venueLoyaltyRedemption.ts +2 -2
  472. package/src/venueMatch.ts +4 -4
@@ -109,7 +109,7 @@ import {
109
109
  SERVICE_LINK_DATA_TO_INCLUDE,
110
110
  } from "./definitions.js";
111
111
 
112
- /** Prisma model — re-exported for homepage filters and custom event type pickers. */
112
+ /** Prisma model. Re-exported for homepage filters and custom event type pickers. */
113
113
  export type { CustomBashEventType } from "@prisma/client";
114
114
 
115
115
  import {
@@ -193,7 +193,7 @@ export const FRONT_END_USER_DATA_TO_SELECT = {
193
193
  // documentID: true,
194
194
  /** Set when Stripe Identity verification completes (hosted flow). */
195
195
  idVerified: true,
196
- /** $1 card verification (Stripe PaymentIntent) — unlocks publish gate + 2x earn multiplier */
196
+ /** $1 card verification (Stripe PaymentIntent). Unlocks publish gate + 2x earn multiplier */
197
197
  paymentVerified: true,
198
198
  reviews: true,
199
199
  contacts: true,
@@ -225,7 +225,7 @@ export const FRONT_END_USER_DATA_TO_SELECT = {
225
225
  totalEventsHosted: true,
226
226
  /** Whether this account is suspended (superuser admin visibility). */
227
227
  isSuspended: true,
228
- /** Subscription summary for public surfaces — omit Stripe linkage fields (see PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT). */
228
+ /** Subscription summary for public surfaces. Omit Stripe linkage fields (see PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT). */
229
229
  userSubscription: {
230
230
  select: PUBLIC_USER_SUBSCRIPTION_DATA_TO_SELECT,
231
231
  },
@@ -276,9 +276,9 @@ export type PublicTeaserUser = Prisma.UserGetPayload<{
276
276
 
277
277
  export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
278
278
  ...FRONT_END_USER_DATA_TO_SELECT,
279
- /** Self session only — preferred payment rail (Stripe vs Square). */
279
+ /** Self session only. Preferred payment rail (Stripe vs Square). */
280
280
  paymentProvider: true,
281
- // Self-only sensitive demographics — re-added so /me can populate edit forms.
281
+ // Self-only sensitive demographics. Re-added so /me can populate edit forms.
282
282
  gender: true,
283
283
  genderIdentity: true,
284
284
  sex: true,
@@ -290,9 +290,9 @@ export const PRIVATE_USER_ACCOUNT_TO_SELECT = {
290
290
  zipCode: true,
291
291
  country: true,
292
292
  phone: true,
293
- /** SMS verification — self account only. */
293
+ /** SMS verification. Self account only. */
294
294
  phoneVerifiedAt: true,
295
- /** Opt-in SMS login codes — self account only. */
295
+ /** Opt-in SMS login codes. Self account only. */
296
296
  smsMfaEnabled: true,
297
297
  membershipExpiresAt: true,
298
298
  bashPassStripeSubscriptionId: true,
@@ -399,7 +399,7 @@ export interface PromoterMilestoneBase {
399
399
  competitionId: string;
400
400
  threshold: number | null;
401
401
  rank: number | null;
402
- rewardType: string; // PromoterRewardType — string union until client is regenerated
402
+ rewardType: string; // PromoterRewardType. String union until client is regenerated
403
403
  rewardAmountCents: number | null;
404
404
  rewardDescription: string | null;
405
405
  ticketTierId: string | null;
@@ -423,7 +423,7 @@ export interface PromoterRewardBase {
423
423
  milestoneId: string | null;
424
424
  rank: number | null;
425
425
  qualifiedSalesSnapshot: number;
426
- status: string; // PromoterRewardStatus — string union until client is regenerated
426
+ status: string; // PromoterRewardStatus. String union until client is regenerated
427
427
  earnedAt: Date | null;
428
428
  fulfilledAt: Date | null;
429
429
  revokedAt: Date | null;
@@ -490,9 +490,9 @@ export type BashEventHostMerchItem = {
490
490
 
491
491
  /** Host-controlled visibility of purchase options shown in the merch modal on the event detail page. */
492
492
  export type BashEventHostMerchSettings = {
493
- /** Show "Buy now — get it shipped" option in merch modal (default: true) */
493
+ /** Show "Buy now. Get it shipped" option in merch modal (default: true) */
494
494
  showShipping: boolean;
495
- /** Show "Pay in advance — pick up at event" option in merch modal (default: true) */
495
+ /** Show "Pay in advance. Pick up at event" option in merch modal (default: true) */
496
496
  showPreOrder: boolean;
497
497
  /** Show "Add to ticket checkout" option in merch modal (default: true) */
498
498
  showAddToCheckout: boolean;
@@ -558,7 +558,7 @@ export type BashEventMerchOrderExt = {
558
558
  export type ServiceMerchSettings = {
559
559
  showShipping: boolean;
560
560
  showPreOrder: boolean;
561
- /** Stripe ticket-cart bundle option for host merch flows—not used for hired-service Square checkout. */
561
+ /** Stripe ticket-cart bundle option for host merch flows. Not used for hired-service Square checkout. */
562
562
  showAddToCheckout: boolean;
563
563
  purchaseNote?: string | null;
564
564
  };
@@ -573,7 +573,7 @@ export type BashEventHiredServicePublic = {
573
573
  coverPhoto: string | null;
574
574
  /** When true, standalone Square checkout is available for merchandise SKUs below. */
575
575
  squareMerchCheckoutEnabled: boolean;
576
- /** Merch options from provider profile—Square hired-service checkout reads ship + pickup only. */
576
+ /** Merch options from provider profile. Square hired-service checkout reads ship + pickup only. */
577
577
  merchSettings: ServiceMerchSettings | null;
578
578
  merchandiseAddons: Array<{
579
579
  id: string;
@@ -588,7 +588,7 @@ export type BashEventHiredServicePublic = {
588
588
 
589
589
  /**
590
590
  * API/app bash shape. Declared as a `type` (not `interface extends Override`) so
591
- * Prisma scalar redeclares stay `T` rather than `T | undefined` — a TypeScript
591
+ * Prisma scalar redeclares stay `T` rather than `T | undefined`. A TypeScript
592
592
  * quirk when interfaces extend intersection/mapped types.
593
593
  *
594
594
  * Policy fields are applied in a final `Omit & { ... }` intersection so they stay
@@ -625,7 +625,7 @@ type BashEventExtBase = Override<
625
625
  ideaExpiresAt: Date | null;
626
626
  isAutoApprovable: boolean;
627
627
  ideaInterestThreshold: number | null;
628
- /** Venue seat chart JSON — typed for wizard/checkout (Prisma stores Json). */
628
+ /** Venue seat chart JSON. Typed for wizard/checkout (Prisma stores Json). */
629
629
  seatMap: import("./seatMap.js").SeatMapDocument | null;
630
630
  }
631
631
  > & {
@@ -641,7 +641,7 @@ type BashEventExtBase = Override<
641
641
  amountOfGuests?: AmountOfGuests;
642
642
  recurrence?: Recurrence;
643
643
  creator?: PublicUser;
644
- /** Co-hosts / organizers (AssociatedBash.isOrganizer), excluding the creator — GET /event/:id and public-event/:id when loaded */
644
+ /** Co-hosts / organizers (AssociatedBash.isOrganizer), excluding the creator. GET /event/:id and public-event/:id when loaded */
645
645
  organizers?: PublicUser[];
646
646
  /** Service bookings for this bash + enabled merchandise rows (public detail) */
647
647
  hiredServices?: BashEventHiredServicePublic[];
@@ -665,16 +665,16 @@ type BashEventExtBase = Override<
665
665
  competitions?: CompetitionExt[];
666
666
  interests?: (IdeaInterest & { responses?: IdeaInterestResponse[] })[];
667
667
  configurations?: IdeaConfiguration[];
668
- /** GET /event/:id when status=Idea and ideaDatePollEnabled — candidate datetimes for guest voting */
668
+ /** GET /event/:id when status=Idea and ideaDatePollEnabled. Candidate datetimes for guest voting */
669
669
  dateOptions?: IdeaDateOption[];
670
670
  /** Public aggregate when poll enabled (no PII) */
671
671
  datePollPublicSummary?: IdeaDatePollPublicSummary;
672
672
  hideCancellationPolicy?: boolean;
673
673
  hideGroupUp?: boolean;
674
674
  hideServicesOpenTo?: boolean;
675
- /** GET /event/:id — tickets sold (non-cancelled), for social proof */
675
+ /** GET /event/:id. Tickets sold (non-cancelled), for social proof */
676
676
  goingCount?: number;
677
- /** GET /event/:id — true when at least one Budget line has `showOnBashDetailPage` set. Drives the "View budget" reveal on the public bash page; never carries dollar amounts. */
677
+ /** GET /event/:id. True when at least one Budget line has `showOnBashDetailPage` set. Drives the "View budget" reveal on the public bash page; never carries dollar amounts. */
678
678
  hasVisibleBudget?: boolean;
679
679
  /** Public funding meter: value coming in toward included budget lines. */
680
680
  showFundingMeter?: boolean;
@@ -682,11 +682,11 @@ type BashEventExtBase = Override<
682
682
  showHostOnBashPage?: boolean;
683
683
  fundingAllowCommitments?: boolean;
684
684
  fundingShowPledgesOnMeter?: boolean;
685
- /** GET /event/:id when status=Idea — total IdeaInterest rows */
685
+ /** GET /event/:id when status=Idea. Total IdeaInterest rows */
686
686
  ideaInterestCount?: number;
687
687
  /** Feed/card alias for idea interest (some list payloads use this name). */
688
688
  interestedCount?: number;
689
- /** GET /event/:id — PublicBashRsvp counts (published / presale) */
689
+ /** GET /event/:id. PublicBashRsvp counts (published / presale) */
690
690
  publicRsvpCounts?: { going: number; interested: number; notGoing: number };
691
691
  /** Current viewer's soft RSVP (PublicBashRsvp), if any */
692
692
  myPublicRsvpStatus?: string | null;
@@ -708,15 +708,15 @@ type BashEventExtBase = Override<
708
708
  rsvpsDeclined: number;
709
709
  rsvpsPending: number;
710
710
  };
711
- /** GET /event/:id and GET /public-event/:id (authenticated) when accessScreeningEnabled — viewer's latest access request status */
711
+ /** GET /event/:id and GET /public-event/:id (authenticated) when accessScreeningEnabled. Viewer's latest access request status */
712
712
  myAccessRequestStatus?: "None" | "Pending" | "Approved" | "Denied" | null;
713
713
  /** Public pending + approved application / RSVP totals when Application is on. Hidden at 0. */
714
714
  applicationApplicantCount?: number;
715
- /** GET /event/:id when status=Idea — viewer's IdeaInterest row (matched by email) */
715
+ /** GET /event/:id when status=Idea. Viewer's IdeaInterest row (matched by email) */
716
716
  myIdeaInterest?:
717
717
  | (IdeaInterest & { responses: IdeaInterestResponse[] })
718
718
  | null;
719
- /** GET /event/:id when status=Idea — distinct service providers who sent a service-offer notification */
719
+ /** GET /event/:id when status=Idea. Distinct service providers who sent a service-offer notification */
720
720
  ideaServiceProviderInterestCount?: number;
721
721
  // Event page visual customisation (stored as scalar columns on BashEvent)
722
722
  backgroundImage: string | null;
@@ -725,7 +725,7 @@ type BashEventExtBase = Override<
725
725
  backgroundBlurEnabled: boolean;
726
726
  /**
727
727
  * Computed at request time from the host Organization's nonprofit verification.
728
- * Drives the buyer-facing fee breakdown ("Nonprofit — no Bash platform fee").
728
+ * Drives the buyer-facing fee breakdown ("Nonprofit. No Bash platform fee").
729
729
  * Optional because not every endpoint that returns BashEventExt resolves the host org.
730
730
  */
731
731
  isVerifiedNonprofitHost?: boolean;
@@ -831,7 +831,7 @@ export type BashEventUpsertWireInput = Override<
831
831
  }
832
832
  >;
833
833
 
834
- /** Minimal ticket-holder identity — narrower than PublicUser/PublicTeaserUser; used wherever a ticket
834
+ /** Minimal ticket-holder identity. Narrower than PublicUser/PublicTeaserUser; used wherever a ticket
835
835
  * relation just needs to identify who owns/holds it (not a full public profile). */
836
836
  export const TICKET_HOLDER_USER_SELECT = {
837
837
  id: true,
@@ -997,7 +997,7 @@ export const VENUE_DATA_TO_REMOVE: RemoveCommonProperties<
997
997
  // 'bashEvents',
998
998
  ] as const;
999
999
 
1000
- /** Shared by Vendor/EventService/EntertainmentService/Exhibitor/Sponsor includes — each model has
1000
+ /** Shared by Vendor/EventService/EntertainmentService/Exhibitor/Sponsor includes. Each model has
1001
1001
  * its own identically-shaped `crowdSize`/`serviceRange` relations (attendance preferences). */
1002
1002
  export const SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE = {
1003
1003
  crowdSize: true,
@@ -1236,7 +1236,7 @@ export const SERVICE_DATA_TO_INCLUDE = {
1236
1236
  sportsProfile: true,
1237
1237
  },
1238
1238
  }, // Include organization data with member counts
1239
- // Lightweight — just enough for the UI to know a complementary Vendor <-> EventServices
1239
+ // Lightweight. Just enough for the UI to know a complementary Vendor <-> EventServices
1240
1240
  // profile already exists (see Part B "also list as" flow) without a second fetch.
1241
1241
  complementaryProfiles: {
1242
1242
  select: { id: true, serviceType: true },
@@ -1428,7 +1428,7 @@ export const SERVICE_BOOKING_PRIVATE_DATA_TO_INCLUDE = {
1428
1428
  },
1429
1429
  } satisfies Prisma.ServiceBookingInclude;
1430
1430
 
1431
- // Narrowed reference types — match exactly what SERVICE_BOOKING_PRIVATE_DATA_TO_INCLUDE selects,
1431
+ // Narrowed reference types. Match exactly what SERVICE_BOOKING_PRIVATE_DATA_TO_INCLUDE selects,
1432
1432
  // so call sites can cast prisma.upsert/findUnique results without needing `as unknown`.
1433
1433
  export type ServiceBookingBashEventRef = Pick<
1434
1434
  BashEvent,
@@ -1490,7 +1490,7 @@ export interface ServiceExt extends Service {
1490
1490
 
1491
1491
  stripeAccount?: PublicStripeAccount | null;
1492
1492
 
1493
- /** Geo anchor — explicit on ext type for consumers before Prisma client catches up */
1493
+ /** Geo anchor. Explicit on ext type for consumers before Prisma client catches up */
1494
1494
  latitude: number | null;
1495
1495
  longitude: number | null;
1496
1496
 
@@ -1515,7 +1515,7 @@ export interface ServiceExt extends Service {
1515
1515
  associatedBashesReferencingMe?: AssociatedBashExt[];
1516
1516
  associatedServicesReferencingMe?: AssociatedServiceExt[];
1517
1517
 
1518
- /** Reverse side of `complementaryOfServiceId` — the "also list as" profile(s) this service already spawned. */
1518
+ /** Reverse side of `complementaryOfServiceId`. The "also list as" profile(s) this service already spawned. */
1519
1519
  complementaryProfiles?: Pick<Service, "id" | "serviceType">[];
1520
1520
 
1521
1521
  // googleReviews: GoogleReview[];
@@ -1580,7 +1580,7 @@ export type ServiceExtNoIds = Omit<
1580
1580
  | "serviceRatesAssociationId"
1581
1581
  | "serviceId"
1582
1582
  >;
1583
- /** Attendance-preference overlay shared by every bookable service subtype — mirrors
1583
+ /** Attendance-preference overlay shared by every bookable service subtype. Mirrors
1584
1584
  * SERVICE_SUBTYPE_CROWD_RANGE_INCLUDE so the type and the select/include it's derived from stay in sync. */
1585
1585
  export interface ServiceSubtypeCrowdRange {
1586
1586
  crowdSize?: AmountOfGuests;
@@ -1616,7 +1616,7 @@ export interface VendorExt extends Vendor, ServiceSubtypeCrowdRange {
1616
1616
  // Partner (Vendor/Exhibitor/Sponsor) booking requests
1617
1617
  //
1618
1618
  // VendorBookingRequest/ExhibitorBookingRequest/SponsorBookingRequest are three separate Prisma
1619
- // models (a real merge into one polymorphic table is a future schema migration — see the
1619
+ // models (a real merge into one polymorphic table is a future schema migration. See the
1620
1620
  // bash-common schema/type consolidation plan). Until then, these GetPayload-derived types give
1621
1621
  // the API and app a single shared, real contract instead of hand-typed hand-drift per package.
1622
1622
  //-------------------------------------------------------------------------------------------------------------------------------
@@ -1683,7 +1683,7 @@ export type SponsorBookingRequestExt = Prisma.SponsorBookingRequestGetPayload<{
1683
1683
  }>;
1684
1684
 
1685
1685
  /** Fields common to all three partner booking request models (same name + type on every model).
1686
- * `status` is intentionally excluded — Vendor/Exhibitor/SponsorBookingStatus are separate (if
1686
+ * `status` is intentionally excluded. Vendor/Exhibitor/SponsorBookingStatus are separate (if
1687
1687
  * byte-identical) enums, so each Ext type keeps its own nominal status field. */
1688
1688
  export type PartnerBookingRequestBase = Pick<
1689
1689
  VendorBookingRequestExt,
@@ -1714,7 +1714,7 @@ export type PartnerBookingRequestBase = Pick<
1714
1714
  | "bashEvent"
1715
1715
  >;
1716
1716
 
1717
- /** Discriminated union of the three partner booking request types — `partnerType` is attached
1717
+ /** Discriminated union of the three partner booking request types. `partnerType` is attached
1718
1718
  * by the API (it isn't a DB column) so callers can narrow without checking which service-ref key is present. */
1719
1719
  export type PartnerBookingRequest =
1720
1720
  | ({ partnerType: "vendor" } & VendorBookingRequestExt)
@@ -1987,7 +1987,7 @@ export type TicketFlexible = Ticket & {
1987
1987
 
1988
1988
  /**
1989
1989
  * Ticket row when `owner` and `forUser` were selected (host/admin / full ticket APIs).
1990
- * Strict refinement of {@link TicketFlexible} — prefer narrowing with {@link isTicketExt}.
1990
+ * Strict refinement of {@link TicketFlexible}. Prefer narrowing with {@link isTicketExt}.
1991
1991
  */
1992
1992
  export type TicketExt = TicketFlexible & {
1993
1993
  owner: PublicUser;
@@ -2023,7 +2023,7 @@ export const CHECKOUT_DATA_TO_INCLUDE = {
2023
2023
  },
2024
2024
  } satisfies Prisma.CheckoutInclude;
2025
2025
 
2026
- /** Checkout list for non-privileged viewers — buyer email omitted on `owner`. */
2026
+ /** Checkout list for non-privileged viewers. Buyer email omitted on `owner`. */
2027
2027
  export const CHECKOUT_DATA_TO_INCLUDE_TEASER_OWNER = {
2028
2028
  owner: {
2029
2029
  select: PUBLIC_TEASER_USER_DATA_TO_SELECT,
@@ -2142,11 +2142,11 @@ type PublicUserBase = Prisma.UserGetPayload<{
2142
2142
  select: typeof FRONT_END_USER_DATA_TO_SELECT;
2143
2143
  }>;
2144
2144
 
2145
- /** Real `User` select shape for public profile surfaces — derived via `GetPayload` (like `PublicTeaserUser`)
2145
+ /** Real `User` select shape for public profile surfaces. Derived via `GetPayload` (like `PublicTeaserUser`)
2146
2146
  * so relation/computed fields (e.g. `reviews`, `contacts`) can't silently drift from what
2147
2147
  * `FRONT_END_USER_DATA_TO_SELECT` actually queries. The four relation fields below stay optional (not
2148
- * required-but-nullable, as a strict `GetPayload` would make them) because some call sites — e.g. auth/session
2149
- * flows — legitimately pass a scalar-only `User` row through this type without ever including them.
2148
+ * required-but-nullable, as a strict `GetPayload` would make them) because some call sites. E.g. auth/session
2149
+ * flows. Legitimately pass a scalar-only `User` row through this type without ever including them.
2150
2150
  * `reviews` is additionally re-widened to a union since some call sites merge in
2151
2151
  * `USER_DATA_SELECT_REVIEWS_COMMENTS` for nested review comments. */
2152
2152
  export type PublicUser = Omit<
@@ -2162,7 +2162,7 @@ export type PublicUser = Omit<
2162
2162
  reviews?: (PublicUserPlainReview | PublicUserReviewWithComments)[] | null;
2163
2163
  };
2164
2164
 
2165
- /** Self-account (`/me`) select shape — derived via `GetPayload` the same way `PublicUser` is. */
2165
+ /** Self-account (`/me`) select shape. Derived via `GetPayload` the same way `PublicUser` is. */
2166
2166
  export type PrivateUser = Prisma.UserGetPayload<{
2167
2167
  select: typeof PRIVATE_USER_ACCOUNT_TO_SELECT;
2168
2168
  }>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Public funding meter contract — value coming in toward included budget lines.
2
+ * Public funding meter contract. Value coming in toward included budget lines.
3
3
  * Consumers may copy these types until this package is published with this module.
4
4
  */
5
5
 
package/src/giveaway.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Event giveaways — shared types, attendee identity, and guest-facing copy.
2
+ * Event giveaways. Shared types, attendee identity, and guest-facing copy.
3
3
  * Qualifying does not guarantee inventory (first-come among eligible people).
4
4
  */
5
5
 
@@ -173,7 +173,7 @@ export function matchesCompetitionParticipant(input: {
173
173
  });
174
174
  }
175
175
 
176
- /** Active outstanding inventory — not historical "ever distributed". */
176
+ /** Active outstanding inventory. Not historical "ever distributed". */
177
177
  export function giveawayActiveDistributedCount(
178
178
  quantityTotal: number,
179
179
  quantityRemaining: number
@@ -60,7 +60,7 @@ export function guestPartyPolicyLabel(
60
60
  export function rsvpPartyPolicyGuestCopy(
61
61
  maxAdditionalGuests: number | null | undefined
62
62
  ): string {
63
- if (maxAdditionalGuests === 0) return "Just you — no plus-ones";
63
+ if (maxAdditionalGuests === 0) return "Just you. No plus-ones";
64
64
  if (maxAdditionalGuests === 1) return "You can bring up to 1 guest";
65
65
  if (maxAdditionalGuests === 2) return "You can bring up to 2 guests";
66
66
  return `You can bring up to ${RSVP_PLUS_ONES_UI_SOFT_CAP} guests`;
@@ -78,6 +78,6 @@ export function ticketPartyPolicyGuestCopy(
78
78
 
79
79
  export function nearCapacityPartyError(spotsLeft: number): string {
80
80
  if (spotsLeft <= 0) return "This bash is at capacity.";
81
- if (spotsLeft === 1) return "Only 1 spot left — you can’t bring that many guests.";
82
- return `Only ${spotsLeft} spots left — you can’t bring that many guests.`;
81
+ if (spotsLeft === 1) return "Only 1 spot left. You can’t bring that many guests.";
82
+ return `Only ${spotsLeft} spots left. You can’t bring that many guests.`;
83
83
  }
package/src/home.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Lightweight entry for homepage / event card surfaces — avoids pulling the full
2
+ * Lightweight entry for homepage / event card surfaces. Avoids pulling the full
3
3
  * bash-common barrel (and its Prisma enum surface) into the mobile critical path.
4
4
  *
5
5
  * Re-exports only from canonical modules (definitions, extendedSchemas, geo utils),
@@ -1,6 +1,6 @@
1
1
  import { DISCOVERY_SCOPE_ROW_KEYS } from "./discoveryScope.js";
2
2
 
3
- /** Algorithm / geo / social rows — not host-picked `BashEventType` values. */
3
+ /** Algorithm / geo / social rows. Not host-picked `BashEventType` values. */
4
4
  export const HOMEPAGE_DISCOVERY_SYNTHETIC_ROW_KEYS = [
5
5
  "Featured",
6
6
  "Popular",
@@ -27,5 +27,5 @@ export function isHomepageSyntheticSectionRowKey(key: string): boolean {
27
27
  );
28
28
  }
29
29
 
30
- /** @deprecated Prefer `HOMEPAGE_DISCOVERY_SYNTHETIC_ROW_KEYS` — kept for app imports. */
30
+ /** @deprecated Prefer `HOMEPAGE_DISCOVERY_SYNTHETIC_ROW_KEYS`. Kept for app imports. */
31
31
  export const HOMEPAGE_DISCOVERY_ROW_KEYS = HOMEPAGE_DISCOVERY_SYNTHETIC_ROW_KEYS;
@@ -4,7 +4,7 @@ import type {
4
4
  HostCrmAutomationTrigger as HostCrmAutomationTriggerEnum,
5
5
  } from "@prisma/client";
6
6
 
7
- /** Mirrors Prisma `HostCrmAutomationTrigger` — `@prisma/client` browser bundle omits runtime enum exports. */
7
+ /** Mirrors Prisma `HostCrmAutomationTrigger`. `@prisma/client` browser bundle omits runtime enum exports. */
8
8
  export const HostCrmAutomationTrigger = {
9
9
  Recurring: "Recurring",
10
10
  NewlyAtRisk: "NewlyAtRisk",
@@ -13,7 +13,7 @@ export const HostCrmAutomationTrigger = {
13
13
 
14
14
  export type HostCrmAutomationTrigger = HostCrmAutomationTriggerEnum;
15
15
 
16
- /** Mirrors Prisma `HostCrmAutomationChannel` — `@prisma/client` browser bundle omits runtime enum exports. */
16
+ /** Mirrors Prisma `HostCrmAutomationChannel`. `@prisma/client` browser bundle omits runtime enum exports. */
17
17
  export const HostCrmAutomationChannel = {
18
18
  Email: "Email",
19
19
  Sms: "Sms",
@@ -21,7 +21,7 @@ export const HostCrmAutomationChannel = {
21
21
 
22
22
  export type HostCrmAutomationChannel = HostCrmAutomationChannelEnum;
23
23
 
24
- /** Mirrors Prisma `HostCrmAutomationAudienceType` — `@prisma/client` browser bundle omits runtime enum exports. */
24
+ /** Mirrors Prisma `HostCrmAutomationAudienceType`. `@prisma/client` browser bundle omits runtime enum exports. */
25
25
  export const HostCrmAutomationAudienceType = {
26
26
  Preset: "Preset",
27
27
  Segment: "Segment",
@@ -38,7 +38,7 @@ export const HOST_CRM_AUTOMATION_MIN_CADENCE_DAYS = 1;
38
38
  export const HOST_CRM_AUTOMATION_DEFAULT_CADENCE_DAYS = 30;
39
39
 
40
40
  /**
41
- * API/client shape of a `HostCrmAutomation` row — dates are ISO strings (as
41
+ * API/client shape of a `HostCrmAutomation` row. Dates are ISO strings (as
42
42
  * returned by the JSON API), not the raw Prisma `Date` type. See
43
43
  * `api/src/api/user/privateUser/hostCrmAutomationApi.ts` for the endpoints
44
44
  * that produce this shape and `bash-app/src/dataLayer/user/attendeeAudienceFetcher.ts`
@@ -50,7 +50,7 @@ export type HostCrmAutomation = {
50
50
  name: string;
51
51
  trigger: HostCrmAutomationTrigger;
52
52
  channel: HostCrmAutomationChannel;
53
- /** Ignored for PostEvent — audience there is implicit (that event's ticket holders). */
53
+ /** Ignored for PostEvent. Audience there is implicit (that event's ticket holders). */
54
54
  audienceType: HostCrmAutomationAudienceType | null;
55
55
  audiencePresetId: string | null;
56
56
  audienceSegmentId: string | null;
@@ -79,7 +79,7 @@ export type HostCrmAutomationInput = {
79
79
  };
80
80
 
81
81
  /**
82
- * "Growth pack" — the one-click Host CRM automation pair (win-back + post-event
82
+ * "Growth pack". The one-click Host CRM automation pair (win-back + post-event
83
83
  * thank-you). Specs live here so API enable, legacy backfill, and UI detection
84
84
  * cannot drift apart.
85
85
  */
@@ -87,9 +87,9 @@ export const HOST_CRM_GROWTH_PACK_WINBACK_PRESET_ID = "lapsed_180";
87
87
  export const HOST_CRM_GROWTH_PACK_WINBACK_NAME = "Win-back email";
88
88
  export const HOST_CRM_GROWTH_PACK_POST_EVENT_NAME = "Post-event thank-you";
89
89
 
90
- /** Shared with the live win-back blast defaults — keep in lockstep. */
90
+ /** Shared with the live win-back blast defaults. Keep in lockstep. */
91
91
  export const HOST_CRM_WINBACK_DEFAULT_SUBJECT =
92
- "We miss you — come back out with us";
92
+ "We miss you. Come back out with us";
93
93
  export const HOST_CRM_WINBACK_DEFAULT_BODY =
94
94
  "It's been a while since your last bash with us. We'd love to see you again.";
95
95
 
@@ -100,15 +100,15 @@ export const HOST_CRM_WINBACK_DEFAULT_BODY =
100
100
  export const HOST_CRM_GROWTH_PACK_POST_EVENT_SUBJECT =
101
101
  "Thank you for coming to {{eventTitle}}";
102
102
  export const HOST_CRM_GROWTH_PACK_POST_EVENT_BODY =
103
- "Hi {{firstName}},\n\nThanks so much for being part of {{eventTitle}} — it wouldn't have been the same without you. Got photos from the night? Save them to Memories, then post on BashFeed or drop them in the album:\n\nMemories: {{memoriesUrl}}\nBashFeed: {{bashFeedUrl}}\n\nHope to see you at the next one!";
103
+ "Hi {{firstName}},\n\nThanks so much for being part of {{eventTitle}}. It wouldn't have been the same without you. Got photos from the night? Save them to Memories, then post on BashFeed or drop them in the album:\n\nMemories: {{memoriesUrl}}\nBashFeed: {{bashFeedUrl}}\n\nHope to see you at the next one!";
104
104
 
105
105
  /** Recurring email to last-minute buyers (paid within 48h of start). */
106
106
  export const HOST_CRM_GROWTH_PACK_LATE_BUYER_PRESET_ID = "last_minute_buyer";
107
107
  export const HOST_CRM_GROWTH_PACK_LATE_BUYER_NAME = "Late-buyer logistics nudge";
108
108
  export const HOST_CRM_GROWTH_PACK_LATE_BUYER_SUBJECT =
109
- "You're in — here's how to make door day smooth";
109
+ "You're in. Here's how to make door day smooth";
110
110
  export const HOST_CRM_GROWTH_PACK_LATE_BUYER_BODY =
111
- "Hi {{firstName}},\n\nGlad you're coming. Since you grabbed tickets close to showtime, leave a few extra minutes for parking and check-in — doors can get busy.\n\nSee you there!";
111
+ "Hi {{firstName}},\n\nGlad you're coming. Since you grabbed tickets close to showtime, leave a few extra minutes for parking and check-in. Doors can get busy.\n\nSee you there!";
112
112
 
113
113
  type GrowthPackAutomationShape = {
114
114
  trigger: string;
@@ -1,4 +1,4 @@
1
- /** Per-recipient CRM email cooldown — matches SMS CRM_BLAST window. */
1
+ /** Per-recipient CRM email cooldown. Matches SMS CRM_BLAST window. */
2
2
  export const HOST_CRM_EMAIL_COOLDOWN_MS = 48 * 60 * 60 * 1000;
3
3
 
4
4
  export const HOST_CRM_EMAIL_TEMPLATE_KEYS = {
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Community Builder Crowd Pulse — overall + per-bash glance metrics.
2
+ * Community Builder Crowd Pulse. Overall + per-bash glance metrics.
3
3
  */
4
4
 
5
- /** Upcoming / live / past — same decision order as My Bashes guest phases. */
5
+ /** Upcoming / live / past. Same decision order as My Bashes guest phases. */
6
6
  export type HostCrmCrowdPulseHorizon = "upcoming" | "live" | "past";
7
7
 
8
8
  /** Same fallback as schedule rendering when end is missing or invalid. */
@@ -3,8 +3,8 @@ import type { MembershipTier } from "./membershipDefinitions.js";
3
3
  /**
4
4
  * One curated predictive-insight observation for the Attendee CRM's
5
5
  * Recommended-actions accordion. Deliberately a discriminated union of
6
- * discrete, computed facts (not prose) — same design choice already made for
7
- * `HostCrmTimelineEntry` — so the drawer/card renders each fact directly and
6
+ * discrete, computed facts (not prose). Same design choice already made for
7
+ * `HostCrmTimelineEntry`. So the drawer/card renders each fact directly and
8
8
  * a future AI layer can consume the same structured data without re-deriving it.
9
9
  */
10
10
  export type HostCrmInsight =
@@ -30,7 +30,7 @@ export type HostCrmInsight =
30
30
  };
31
31
 
32
32
  /**
33
- * Response shape for the Predictive Insights card. Gated server-side —
33
+ * Response shape for the Predictive Insights card. Gated server-side.
34
34
  * `locked: true` hosts never receive computed `insights`, so a Basic-tier
35
35
  * host can't see real data even by inspecting the network response.
36
36
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Last-bash proof — afterglow metrics for the host's most recently ended bash.
2
+ * Last-bash proof. Afterglow metrics for the host's most recently ended bash.
3
3
  * Composed on the Monday Morning response (no separate analytics product).
4
4
  */
5
5
 
@@ -19,7 +19,7 @@ export type HostCrmLastBashProof = {
19
19
  ticketPeopleCount: number;
20
20
  checkedInCount: number;
21
21
  reachable: HostCrmLastBashProofReachable;
22
- /** 0–100 among CRM members tied to that bash with eventCount >= 2. */
22
+ /** 0 to 100 among CRM members tied to that bash with eventCount >= 2. */
23
23
  repeatMemberRate: number;
24
24
  postEventMessageSent: boolean;
25
25
  postEventMessageSentAt: string | null;
@@ -29,17 +29,17 @@ export type HostCrmSegmentRules = {
29
29
  minTotalSpendCents?: number;
30
30
  /** Bought a ticket but never checked in to an ended bash */
31
31
  noShow?: boolean;
32
- /** UI label: "Uses Promo Codes" — redeemed a promo code on a host bash */
32
+ /** UI label: "Uses Promo Codes". Redeemed a promo code on a host bash */
33
33
  discountResponsive?: boolean;
34
- /** UI label: "Last-Minute Buyer" — typically buys within 48h of the event */
34
+ /** UI label: "Last-Minute Buyer". Typically buys within 48h of the event */
35
35
  fastDecider?: boolean;
36
- /** UI label: "Series Regular" — attended 2+ events in the same EventSeries */
36
+ /** UI label: "Series Regular". Attended 2+ events in the same EventSeries */
37
37
  seriesLoyalist?: boolean;
38
38
  /** Refunded/cancelled a ticket and hasn't been back since */
39
39
  refundChurn?: boolean;
40
- /** UI label: "Brings Friends" — buys multiple tickets per checkout or brings plus-ones */
40
+ /** UI label: "Brings Friends". Buys multiple tickets per checkout or brings plus-ones */
41
41
  bringsGuests?: boolean;
42
- /** Ticket buyers for any of these bash event ids (e.g. the host's 3 most recently ended bashes — see the last3Events preset) */
42
+ /** Ticket buyers for any of these bash event ids (e.g. the host's 3 most recently ended bashes. See the last3Events preset) */
43
43
  sourceEventIdIn?: string[];
44
44
  /** Guest taste: EventType value (own audience + hostsMayTargetTaste only). */
45
45
  tasteEventType?: string;
@@ -271,13 +271,13 @@ export type HostCrmAudienceMember = {
271
271
  noShowCount: number;
272
272
  /** UI label: "Uses Promo Codes" */
273
273
  discountResponsive: boolean;
274
- /** UI label: "Last-Minute Buyer" — majority of purchases within 48h of the event start */
274
+ /** UI label: "Last-Minute Buyer". Majority of purchases within 48h of the event start */
275
275
  fastDecider: boolean;
276
- /** UI label: "Series Regular" — attended 2+ events sharing an EventSeries */
276
+ /** UI label: "Series Regular". Attended 2+ events sharing an EventSeries */
277
277
  seriesLoyalist: boolean;
278
278
  /** Refunded/cancelled a ticket on a host bash and hasn't bought again since */
279
279
  refundChurn: boolean;
280
- /** UI label: "Brings Friends" — multi-ticket checkouts, group tiers, or RSVP plus-ones */
280
+ /** UI label: "Brings Friends". Multi-ticket checkouts, group tiers, or RSVP plus-ones */
281
281
  bringsGuests: boolean;
282
282
  /** How this attendee was attributed to the host's audience, when known. */
283
283
  discoverySource: HostCrmDiscoverySource;
@@ -291,7 +291,7 @@ export type HostCrmAudienceMember = {
291
291
  associationBreakdown: HostCrmAssociationBreakdown;
292
292
  communityStrengthScore: number;
293
293
  communityStrengthTier: CommunityStrengthTier;
294
- /** Rule-based suggested tags — never merged into host-editable `tags`. */
294
+ /** Rule-based suggested tags. Never merged into host-editable `tags`. */
295
295
  systemTags: string[];
296
296
  };
297
297
 
@@ -434,7 +434,7 @@ export const HOST_CRM_PRESET_SEGMENTS: Array<{
434
434
  id: "top_spenders",
435
435
  label: "Top spenders",
436
436
  description: "Your top quartile of attendees by lifetime spend",
437
- // Computed at query time from the full audience — see filterHostCrmAudience's presetId branch.
437
+ // Computed at query time from the full audience. See filterHostCrmAudience's presetId branch.
438
438
  rules: {},
439
439
  },
440
440
  {
@@ -477,7 +477,7 @@ export const HOST_CRM_PRESET_SEGMENTS: Array<{
477
477
  id: "last3Events",
478
478
  label: "Last 3 events",
479
479
  description: "People who came to any of your 3 most recently ended bashes",
480
- // Computed at query time from the host's finished events — see filterHostCrmAudience's presetId branch.
480
+ // Computed at query time from the host's finished events. See filterHostCrmAudience's presetId branch.
481
481
  rules: {},
482
482
  },
483
483
  ];
@@ -520,7 +520,7 @@ export type HostCrmAttendeeDetailBadges = {
520
520
  };
521
521
 
522
522
  /**
523
- * Full detail payload for one attendee's drawer — the response shape for
523
+ * Full detail payload for one attendee's drawer. The response shape for
524
524
  * `GET /attendee-audience/:attendeeUserId/detail`, built by the shared
525
525
  * `buildAttendeeCrmContext` function so a future AI compose endpoint can
526
526
  * reuse the same assembly without refactoring this contract.
@@ -62,7 +62,7 @@ export function hostPromoterKindFromEventServiceSubType(
62
62
  }
63
63
  }
64
64
 
65
- /** Inverse of sync mapping — PromoCode has no hireable EventService subtype. */
65
+ /** Inverse of sync mapping. PromoCode has no hireable EventService subtype. */
66
66
  export function eventServiceSubTypeFromHostPromoterKind(
67
67
  kind: HostPromoterKind | string | null | undefined
68
68
  ): HostPromoterSyncServiceSubType | null {
@@ -20,7 +20,7 @@ export const ICEBREAKER_PROMPTS: string[] = [
20
20
  "What are you most looking forward to at this event?",
21
21
  "If this bash had a theme song, what would it be?",
22
22
  "What’s one thing you hope to take away from tonight?",
23
- "Who here do you already know—and how did you meet?",
23
+ "Who here do you already know. And how did you meet?",
24
24
  "What’s your favorite thing about gatherings like this?",
25
25
  "If you could add one activity to this event, what would it be?",
26
26
  "What’s a memory from a past party you still think about?",
@@ -36,7 +36,7 @@ export const ICEBREAKER_PROMPTS: string[] = [
36
36
  "What’s a trend you don’t get but respect?",
37
37
  "What’s your go-to karaoke song (or what would it be)?",
38
38
  "What’s something everyone likes but you’re lukewarm on?",
39
- "What’s a nickname you’ve had—or wish you had?",
39
+ "What’s a nickname you’ve had. Or wish you had?",
40
40
  // Nostalgia
41
41
  "What’s a childhood snack or meal you still crave?",
42
42
  "What’s the first concert or live event you remember?",
package/src/index.ts CHANGED
@@ -471,7 +471,7 @@ export type {
471
471
  MakeRequired, Override, RemoveCommonProperties, UnionFromArray
472
472
  } from "./utils/typeUtils.js";
473
473
 
474
- // Promoter Competition utilities (pure — safe to import in bash-app and api)
474
+ // Promoter Competition utilities (pure. Safe to import in bash-app and api)
475
475
  export {
476
476
  computePromoterCompetitionEconomics,
477
477
  formatPromoterRewardLabel,