@bash-app/bash-common 30.368.0 → 30.371.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 (96) hide show
  1. package/dist/accessScreening.js +1 -0
  2. package/dist/aiApproval.js +1 -0
  3. package/dist/aiEventPlan.js +1 -0
  4. package/dist/bashFeedTypes.js +1 -0
  5. package/dist/bookingIntent.js +1 -0
  6. package/dist/causeTags.js +1 -0
  7. package/dist/entertainmentNotableVenues.js +1 -0
  8. package/dist/groupTicketUtils.js +1 -0
  9. package/dist/guestPartySize.js +1 -0
  10. package/dist/hostCrmAutomation.js +1 -0
  11. package/dist/hostCrmConstants.js +1 -0
  12. package/dist/hostCrmInsights.js +1 -0
  13. package/dist/hostCrmSegments.js +1 -0
  14. package/dist/icebreakerPrompts.js +1 -0
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/influencerAudience.js +1 -0
  20. package/dist/legalTemplates.js +1 -0
  21. package/dist/liveActivity/liveActivityTypes.d.ts +59 -0
  22. package/dist/liveActivity/liveActivityTypes.d.ts.map +1 -0
  23. package/dist/liveActivity/liveActivityTypes.js +27 -0
  24. package/dist/liveActivity/liveActivityTypes.js.map +1 -0
  25. package/dist/membershipDefinitions.js +1 -0
  26. package/dist/mirroredPrismaEnums.js +1 -0
  27. package/dist/onSaleCapabilityRecommendations.js +1 -0
  28. package/dist/partnerStoreTypes.js +1 -0
  29. package/dist/productLaunch.js +1 -0
  30. package/dist/relationshipHealth.js +1 -0
  31. package/dist/requestAuthUser.js +1 -0
  32. package/dist/sideQuestIdeas.js +1 -0
  33. package/dist/storePrintArtworkUtils.js +1 -0
  34. package/dist/storeTypes.js +1 -0
  35. package/dist/stripeListingSubscriptionMessages.js +1 -0
  36. package/dist/templates/eventTemplates.js +1 -0
  37. package/dist/ticketBnplPaymentMethods.js +1 -0
  38. package/dist/userReportTypes.js +1 -0
  39. package/dist/utils/__tests__/organizationEntitlements.test.js +42 -9
  40. package/dist/utils/__tests__/organizationEntitlements.test.js.map +1 -1
  41. package/dist/utils/agencyBookingCheckoutCopy.js +1 -0
  42. package/dist/utils/arrayUtils.js +1 -0
  43. package/dist/utils/bashPointsPaymentUtils.js +1 -0
  44. package/dist/utils/birthdayExperienceQuality.js +1 -0
  45. package/dist/utils/contentFilterUtils.js +1 -0
  46. package/dist/utils/discountEngine/eligibilityValidator.js +1 -0
  47. package/dist/utils/displayDateUtils.js +1 -0
  48. package/dist/utils/entertainmentDrawFit.js +1 -0
  49. package/dist/utils/entityUtils.js +1 -0
  50. package/dist/utils/featuredDiscoveryGeo.js +1 -0
  51. package/dist/utils/flyerUtils.js +1 -0
  52. package/dist/utils/generalDateTimeUtils.js +1 -0
  53. package/dist/utils/lobFlyerUtils.js +1 -0
  54. package/dist/utils/localPartnerHours.js +1 -0
  55. package/dist/utils/luxonUtils.js +1 -0
  56. package/dist/utils/mathUtils.js +1 -0
  57. package/dist/utils/mediaClientDefaults.js +1 -0
  58. package/dist/utils/nonprofitUtils.js +1 -0
  59. package/dist/utils/objUtils.js +1 -0
  60. package/dist/utils/orgPromotionalPackageUtils.js +1 -0
  61. package/dist/utils/organizationEntitlements.d.ts +27 -7
  62. package/dist/utils/organizationEntitlements.d.ts.map +1 -1
  63. package/dist/utils/organizationEntitlements.js +28 -11
  64. package/dist/utils/organizationEntitlements.js.map +1 -1
  65. package/dist/utils/promotionBlastUtils.js +1 -0
  66. package/dist/utils/reputationUtils.js +1 -0
  67. package/dist/utils/reviewDimensionUtils.js +1 -0
  68. package/dist/utils/service/attendeeOptionUtils.js +1 -0
  69. package/dist/utils/service/billingCapUtils.js +1 -0
  70. package/dist/utils/service/eventPromoterUtils.js +1 -0
  71. package/dist/utils/service/offerAllowListUtils.js +1 -0
  72. package/dist/utils/service/offerComparisonUtils.js +1 -0
  73. package/dist/utils/service/regexUtils.js +1 -0
  74. package/dist/utils/service/serviceBookingExposureUtils.js +1 -0
  75. package/dist/utils/service/serviceFeaturedSortUtils.js +1 -0
  76. package/dist/utils/service/unifiedPricingResolver.js +1 -0
  77. package/dist/utils/service/venueSettlementUtils.js +1 -0
  78. package/dist/utils/service/volunteerCompensationUtils.js +1 -0
  79. package/dist/utils/serviceAvailabilityDisplay.js +1 -0
  80. package/dist/utils/sortUtils.js +1 -0
  81. package/dist/utils/stringUtils.js +1 -0
  82. package/dist/utils/ticketCheckInDisplay.js +1 -0
  83. package/dist/utils/trustScoreUtils.js +1 -0
  84. package/dist/utils/typeUtils.js +1 -0
  85. package/dist/utils/userPromoCodeUtils.js +1 -0
  86. package/dist/utils/userUtils.js +1 -0
  87. package/dist/utils/venueLoyalty/redemptionCodeUtils.js +1 -0
  88. package/dist/utils/venueTypeFormatter.js +1 -0
  89. package/dist/utmAttribution.js +1 -0
  90. package/dist/venueMatch.js +1 -0
  91. package/package.json +1 -1
  92. package/prisma/schema.prisma +377 -0
  93. package/src/index.ts +1 -0
  94. package/src/liveActivity/liveActivityTypes.ts +75 -0
  95. package/src/utils/__tests__/organizationEntitlements.test.ts +47 -8
  96. package/src/utils/organizationEntitlements.ts +42 -11
@@ -15,14 +15,17 @@ export const ACTIVE_ORG_SUBSCRIPTION_STATUSES = [
15
15
  export interface OrganizationEntitlementInput {
16
16
  subscriptionTier?: string | null;
17
17
  subscriptionStatus?: string | null;
18
+ /**
19
+ * True only when ops provisioned Enterprise via a signed deal (admin
20
+ * enterprise-provisioning endpoint). Self-serve Stripe checkout can also set
21
+ * subscriptionTier="Enterprise" but never sets this. Optional/undefined is
22
+ * treated as false so legacy call sites that don't select this field fail
23
+ * closed on the sales-gated surface rather than open.
24
+ */
25
+ enterpriseSalesProvisioned?: boolean | null;
18
26
  }
19
27
 
20
- /**
21
- * Vanity subdomains ({slug}.bash.community) are an Enterprise-only perk. All other
22
- * orgs use the canonical path URL (bash.community/org/{slug}). Requires an active
23
- * (or trialing) subscription so a lapsed Enterprise org falls back to the path.
24
- */
25
- export function organizationHasVanitySubdomain(
28
+ function hasActiveEnterpriseTier(
26
29
  org: OrganizationEntitlementInput | null | undefined
27
30
  ): boolean {
28
31
  if (!org) return false;
@@ -36,18 +39,30 @@ export function organizationHasVanitySubdomain(
36
39
  );
37
40
  }
38
41
 
42
+ /**
43
+ * Vanity subdomains ({slug}.bash.community) and custom domains (white-label)
44
+ * are self-serve-eligible Enterprise perks — available whether Enterprise was
45
+ * bought via self-serve Stripe checkout or a sales-negotiated deal.
46
+ */
47
+ export function organizationHasVanitySubdomain(
48
+ org: OrganizationEntitlementInput | null | undefined
49
+ ): boolean {
50
+ return hasActiveEnterpriseTier(org);
51
+ }
52
+
39
53
  /**
40
54
  * Shared gate for the enterprise platform surface: org-scoped audit logs,
41
55
  * SSO/identity setup, procurement approval policy, API keys, webhooks, and
42
- * third-party integrations (Mailchimp/Salesforce). All are Enterprise-tier
43
- * perks today same predicate as {@link organizationHasVanitySubdomain}, kept
44
- * as a distinct name so the two can diverge later (e.g. Growth gets audit
45
- * logs before SSO) without touching every call site.
56
+ * third-party integrations (Mailchimp/Salesforce). Unlike the white-label
57
+ * perks above, this surface requires a sales-negotiated deal
58
+ * (`enterpriseSalesProvisioned`) self-serve $495/mo checkout alone does not
59
+ * unlock SSO, compliance, procurement, or API access, since those typically
60
+ * involve a security review or contract terms sales owns.
46
61
  */
47
62
  export function organizationHasEnterprisePlatformAccess(
48
63
  org: OrganizationEntitlementInput | null | undefined
49
64
  ): boolean {
50
- return organizationHasVanitySubdomain(org);
65
+ return hasActiveEnterpriseTier(org) && org?.enterpriseSalesProvisioned === true;
51
66
  }
52
67
 
53
68
  /** Org-admin audit log viewer + CSV export. */
@@ -84,3 +99,19 @@ export function organizationHasComplianceAccess(
84
99
  ): boolean {
85
100
  return organizationHasEnterprisePlatformAccess(org);
86
101
  }
102
+
103
+ /**
104
+ * Custom domains (white-label tier): real DNS (e.g. members.acme.com) provisioned
105
+ * via AWS CloudFront SaaS Manager Distribution Tenants, plus the "Powered by Bash"
106
+ * removal toggle. Same Enterprise + active/trialing gate as
107
+ * {@link organizationHasVanitySubdomain} for MVP — reuse the existing tier rather
108
+ * than invent a new pricing tier now. A dedicated "White-label" tier is a
109
+ * fast-follow if sales needs separate pricing. Self-serve-eligible: does NOT
110
+ * require {@link organizationHasEnterprisePlatformAccess}'s
111
+ * `enterpriseSalesProvisioned` flag.
112
+ */
113
+ export function organizationHasCustomDomainAccess(
114
+ org: OrganizationEntitlementInput | null | undefined
115
+ ): boolean {
116
+ return organizationHasVanitySubdomain(org);
117
+ }