@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
@@ -10,20 +10,29 @@ export declare const ACTIVE_ORG_SUBSCRIPTION_STATUSES: readonly ["Active", "Tria
10
10
  export interface OrganizationEntitlementInput {
11
11
  subscriptionTier?: string | null;
12
12
  subscriptionStatus?: string | null;
13
+ /**
14
+ * True only when ops provisioned Enterprise via a signed deal (admin
15
+ * enterprise-provisioning endpoint). Self-serve Stripe checkout can also set
16
+ * subscriptionTier="Enterprise" but never sets this. Optional/undefined is
17
+ * treated as false so legacy call sites that don't select this field fail
18
+ * closed on the sales-gated surface rather than open.
19
+ */
20
+ enterpriseSalesProvisioned?: boolean | null;
13
21
  }
14
22
  /**
15
- * Vanity subdomains ({slug}.bash.community) are an Enterprise-only perk. All other
16
- * orgs use the canonical path URL (bash.community/org/{slug}). Requires an active
17
- * (or trialing) subscription so a lapsed Enterprise org falls back to the path.
23
+ * Vanity subdomains ({slug}.bash.community) and custom domains (white-label)
24
+ * are self-serve-eligible Enterprise perks available whether Enterprise was
25
+ * bought via self-serve Stripe checkout or a sales-negotiated deal.
18
26
  */
19
27
  export declare function organizationHasVanitySubdomain(org: OrganizationEntitlementInput | null | undefined): boolean;
20
28
  /**
21
29
  * Shared gate for the enterprise platform surface: org-scoped audit logs,
22
30
  * SSO/identity setup, procurement approval policy, API keys, webhooks, and
23
- * third-party integrations (Mailchimp/Salesforce). All are Enterprise-tier
24
- * perks today same predicate as {@link organizationHasVanitySubdomain}, kept
25
- * as a distinct name so the two can diverge later (e.g. Growth gets audit
26
- * logs before SSO) without touching every call site.
31
+ * third-party integrations (Mailchimp/Salesforce). Unlike the white-label
32
+ * perks above, this surface requires a sales-negotiated deal
33
+ * (`enterpriseSalesProvisioned`) self-serve $495/mo checkout alone does not
34
+ * unlock SSO, compliance, procurement, or API access, since those typically
35
+ * involve a security review or contract terms sales owns.
27
36
  */
28
37
  export declare function organizationHasEnterprisePlatformAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
29
38
  /** Org-admin audit log viewer + CSV export. */
@@ -36,4 +45,15 @@ export declare function organizationHasProcurementAccess(org: OrganizationEntitl
36
45
  export declare function organizationHasApiAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
37
46
  /** Compliance docs (W-9 tax collection, certificate-of-insurance tracking). */
38
47
  export declare function organizationHasComplianceAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
48
+ /**
49
+ * Custom domains (white-label tier): real DNS (e.g. members.acme.com) provisioned
50
+ * via AWS CloudFront SaaS Manager Distribution Tenants, plus the "Powered by Bash"
51
+ * removal toggle. Same Enterprise + active/trialing gate as
52
+ * {@link organizationHasVanitySubdomain} for MVP — reuse the existing tier rather
53
+ * than invent a new pricing tier now. A dedicated "White-label" tier is a
54
+ * fast-follow if sales needs separate pricing. Self-serve-eligible: does NOT
55
+ * require {@link organizationHasEnterprisePlatformAccess}'s
56
+ * `enterpriseSalesProvisioned` flag.
57
+ */
58
+ export declare function organizationHasCustomDomainAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
39
59
  //# sourceMappingURL=organizationEntitlements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"organizationEntitlements.d.ts","sourceRoot":"","sources":["../../src/utils/organizationEntitlements.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,iCAGnC,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+CAA+C;AAC/C,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,0BAA0B;AAC1B,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+DAA+D;AAC/D,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET"}
1
+ {"version":3,"file":"organizationEntitlements.d.ts","sourceRoot":"","sources":["../../src/utils/organizationEntitlements.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,iCAGnC,CAAC;AAEX,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;AAgBD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED;;;;;;;;GAQG;AACH,wBAAgB,uCAAuC,CACrD,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+CAA+C;AAC/C,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,0BAA0B;AAC1B,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+DAA+D;AAC/D,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET"}
@@ -10,12 +10,7 @@ export const ACTIVE_ORG_SUBSCRIPTION_STATUSES = [
10
10
  "Active",
11
11
  "Trialing",
12
12
  ];
13
- /**
14
- * Vanity subdomains ({slug}.bash.community) are an Enterprise-only perk. All other
15
- * orgs use the canonical path URL (bash.community/org/{slug}). Requires an active
16
- * (or trialing) subscription so a lapsed Enterprise org falls back to the path.
17
- */
18
- export function organizationHasVanitySubdomain(org) {
13
+ function hasActiveEnterpriseTier(org) {
19
14
  if (!org)
20
15
  return false;
21
16
  if (org.subscriptionTier !== "Enterprise")
@@ -27,16 +22,25 @@ export function organizationHasVanitySubdomain(org) {
27
22
  return true;
28
23
  return ACTIVE_ORG_SUBSCRIPTION_STATUSES.includes(org.subscriptionStatus);
29
24
  }
25
+ /**
26
+ * Vanity subdomains ({slug}.bash.community) and custom domains (white-label)
27
+ * are self-serve-eligible Enterprise perks — available whether Enterprise was
28
+ * bought via self-serve Stripe checkout or a sales-negotiated deal.
29
+ */
30
+ export function organizationHasVanitySubdomain(org) {
31
+ return hasActiveEnterpriseTier(org);
32
+ }
30
33
  /**
31
34
  * Shared gate for the enterprise platform surface: org-scoped audit logs,
32
35
  * SSO/identity setup, procurement approval policy, API keys, webhooks, and
33
- * third-party integrations (Mailchimp/Salesforce). All are Enterprise-tier
34
- * perks today same predicate as {@link organizationHasVanitySubdomain}, kept
35
- * as a distinct name so the two can diverge later (e.g. Growth gets audit
36
- * logs before SSO) without touching every call site.
36
+ * third-party integrations (Mailchimp/Salesforce). Unlike the white-label
37
+ * perks above, this surface requires a sales-negotiated deal
38
+ * (`enterpriseSalesProvisioned`) self-serve $495/mo checkout alone does not
39
+ * unlock SSO, compliance, procurement, or API access, since those typically
40
+ * involve a security review or contract terms sales owns.
37
41
  */
38
42
  export function organizationHasEnterprisePlatformAccess(org) {
39
- return organizationHasVanitySubdomain(org);
43
+ return hasActiveEnterpriseTier(org) && org?.enterpriseSalesProvisioned === true;
40
44
  }
41
45
  /** Org-admin audit log viewer + CSV export. */
42
46
  export function organizationHasAuditLogAccess(org) {
@@ -58,4 +62,17 @@ export function organizationHasApiAccess(org) {
58
62
  export function organizationHasComplianceAccess(org) {
59
63
  return organizationHasEnterprisePlatformAccess(org);
60
64
  }
65
+ /**
66
+ * Custom domains (white-label tier): real DNS (e.g. members.acme.com) provisioned
67
+ * via AWS CloudFront SaaS Manager Distribution Tenants, plus the "Powered by Bash"
68
+ * removal toggle. Same Enterprise + active/trialing gate as
69
+ * {@link organizationHasVanitySubdomain} for MVP — reuse the existing tier rather
70
+ * than invent a new pricing tier now. A dedicated "White-label" tier is a
71
+ * fast-follow if sales needs separate pricing. Self-serve-eligible: does NOT
72
+ * require {@link organizationHasEnterprisePlatformAccess}'s
73
+ * `enterpriseSalesProvisioned` flag.
74
+ */
75
+ export function organizationHasCustomDomainAccess(org) {
76
+ return organizationHasVanitySubdomain(org);
77
+ }
61
78
  //# sourceMappingURL=organizationEntitlements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"organizationEntitlements.js","sourceRoot":"","sources":["../../src/utils/organizationEntitlements.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,QAAQ;IACR,UAAU;CACF,CAAC;AAOX;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAoD;IAEpD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,CAAC,gBAAgB,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACxD,+EAA+E;IAC/E,4EAA4E;IAC5E,4BAA4B;IAC5B,IAAI,GAAG,CAAC,kBAAkB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChD,OAAQ,gCAAsD,CAAC,QAAQ,CACrE,GAAG,CAAC,kBAAkB,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uCAAuC,CACrD,GAAoD;IAEpD,OAAO,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,6BAA6B,CAC3C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,wBAAwB,CACtC,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gCAAgC,CAC9C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,wBAAwB,CACtC,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,+BAA+B,CAC7C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"organizationEntitlements.js","sourceRoot":"","sources":["../../src/utils/organizationEntitlements.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,QAAQ;IACR,UAAU;CACF,CAAC;AAeX,SAAS,uBAAuB,CAC9B,GAAoD;IAEpD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,IAAI,GAAG,CAAC,gBAAgB,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACxD,+EAA+E;IAC/E,4EAA4E;IAC5E,4BAA4B;IAC5B,IAAI,GAAG,CAAC,kBAAkB,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAChD,OAAQ,gCAAsD,CAAC,QAAQ,CACrE,GAAG,CAAC,kBAAkB,CACvB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAoD;IAEpD,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uCAAuC,CACrD,GAAoD;IAEpD,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,0BAA0B,KAAK,IAAI,CAAC;AAClF,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,6BAA6B,CAC3C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,wBAAwB,CACtC,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,gCAAgC,CAC9C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,wBAAwB,CACtC,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,+BAA+B,CAC7C,GAAoD;IAEpD,OAAO,uCAAuC,CAAC,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iCAAiC,CAC/C,GAAoD;IAEpD,OAAO,8BAA8B,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC"}
@@ -85,3 +85,4 @@ export function generatePromotionBlastConfirmationCode() {
85
85
  export function promotionBlastDeepLinkPath(bashEventId, blastId) {
86
86
  return `/bash/${encodeURIComponent(bashEventId)}?tab=promotions&blast=${encodeURIComponent(blastId)}`;
87
87
  }
88
+ //# sourceMappingURL=promotionBlastUtils.js.map
@@ -57,3 +57,4 @@ export function getServiceListingReputation(service) {
57
57
  sourceLabel,
58
58
  };
59
59
  }
60
+ //# sourceMappingURL=reputationUtils.js.map
@@ -32,3 +32,4 @@ export function percentTrue(values) {
32
32
  const yes = defined.filter(Boolean).length;
33
33
  return Math.round((yes / defined.length) * 100);
34
34
  }
35
+ //# sourceMappingURL=reviewDimensionUtils.js.map
@@ -6,3 +6,4 @@ export const serviceAttendeeOptions = [
6
6
  { label: "46 - 60 people", personRange: { start: 46, end: 60 }, rate: 400 },
7
7
  { label: "61 - 75 people", personRange: { start: 61, end: 75 }, rate: 500 },
8
8
  ];
9
+ //# sourceMappingURL=attendeeOptionUtils.js.map
@@ -93,3 +93,4 @@ export function isFlatPricingModel(model) {
93
93
  return false;
94
94
  return FLAT_PRICING_MODELS.includes(model);
95
95
  }
96
+ //# sourceMappingURL=billingCapUtils.js.map
@@ -369,3 +369,4 @@ export function resolveBashPointsPayoutSources(input) {
369
369
  walletDebited: fromWalletBp > 0,
370
370
  };
371
371
  }
372
+ //# sourceMappingURL=eventPromoterUtils.js.map
@@ -46,3 +46,4 @@ export const DEFAULT_PRICING_MODEL_ALLOW_LIST_BY_SERVICE_TYPE = {
46
46
  Volunteers: ["FLAT_FEE"],
47
47
  Organizations: ["FLAT_FEE"],
48
48
  };
49
+ //# sourceMappingURL=offerAllowListUtils.js.map
@@ -107,3 +107,4 @@ export function computeOfferComparisonBands(input) {
107
107
  }
108
108
  }
109
109
  }
110
+ //# sourceMappingURL=offerComparisonUtils.js.map
@@ -13,3 +13,4 @@ export function isUrlInputtingProtocol(str) {
13
13
  export function isUrl(str) {
14
14
  return /(?:^https?:\/\/[^\s\/$?#;&=@:]*$)|(?:^https?:\/{0,2}$)|(?:^[^\s\/$?#;&=@:]*$)/.test(str);
15
15
  }
16
+ //# sourceMappingURL=regexUtils.js.map
@@ -130,3 +130,4 @@ export function summarizeServiceBookingExposures(inputs) {
130
130
  byBooking,
131
131
  };
132
132
  }
133
+ //# sourceMappingURL=serviceBookingExposureUtils.js.map
@@ -62,3 +62,4 @@ export function compareFeaturedServices(now = new Date()) {
62
62
  }
63
63
  /** Minimum number of active featured services required for the homepage / browse "Featured Services" carousel to render. Below this floor the section feels sparse. */
64
64
  export const MIN_FEATURED_SERVICES_FOR_SECTION = 3;
65
+ //# sourceMappingURL=serviceFeaturedSortUtils.js.map
@@ -72,3 +72,4 @@ export function resolveUnifiedPricingBlock(c) {
72
72
  }
73
73
  return EMPTY;
74
74
  }
75
+ //# sourceMappingURL=unifiedPricingResolver.js.map
@@ -114,3 +114,4 @@ export function defaultFBCarryoverExpiresAt(issuedAt = new Date(), days = DEFAUL
114
114
  const ms = issuedAt.getTime() + Math.max(1, Math.floor(days)) * 86_400_000;
115
115
  return new Date(ms);
116
116
  }
117
+ //# sourceMappingURL=venueSettlementUtils.js.map
@@ -85,3 +85,4 @@ export function volunteerCompensationSummary(args) {
85
85
  * detail. Kept here so wizard, api, and docs cite the exact same wording.
86
86
  */
87
87
  export const VOLUNTEER_COMPENSATION_DISCLAIMER = "Volunteers are not employees or contractors. BashPoints stipends are platform credit redeemable on Bash, not wages, and don't count toward employment or 1099 reporting.";
88
+ //# sourceMappingURL=volunteerCompensationUtils.js.map
@@ -140,3 +140,4 @@ export function computeEarliestOpenDate(params) {
140
140
  }
141
141
  return null;
142
142
  }
143
+ //# sourceMappingURL=serviceAvailabilityDisplay.js.map
@@ -23,3 +23,4 @@ export function sortTiers(a, b) {
23
23
  function getTierValueToCompare(tier) {
24
24
  return tier.sortOrder?.toString() ?? tier.price?.toString();
25
25
  }
26
+ //# sourceMappingURL=sortUtils.js.map
@@ -3,3 +3,4 @@ export function formatString(template, data) {
3
3
  return data[key] !== undefined ? data[key].toString() : "";
4
4
  });
5
5
  }
6
+ //# sourceMappingURL=stringUtils.js.map
@@ -26,3 +26,4 @@ export function getTicketCheckInDisplayLabel(checkedInAt, checkedInMethod, ticke
26
26
  }
27
27
  return "Checked in";
28
28
  }
29
+ //# sourceMappingURL=ticketCheckInDisplay.js.map
@@ -96,3 +96,4 @@ export function trustScoreFromReviewAverage(actorType, averageRating, totalRatin
96
96
  });
97
97
  return result.score;
98
98
  }
99
+ //# sourceMappingURL=trustScoreUtils.js.map
@@ -5,3 +5,4 @@ export function createAllTrueObject(keys) {
5
5
  return acc;
6
6
  }, {});
7
7
  }
8
+ //# sourceMappingURL=typeUtils.js.map
@@ -10,3 +10,4 @@ export const USER_PROMO_CODES = {
10
10
  },
11
11
  };
12
12
  Object.entries(USER_PROMO_CODES).forEach((promoCode) => (promoCode[1].code = promoCode[0]));
13
+ //# sourceMappingURL=userPromoCodeUtils.js.map
@@ -57,3 +57,4 @@ export function getSocialEventCadenceDisplay(cadence) {
57
57
  return null;
58
58
  return SOCIAL_EVENT_CADENCE_PROFILE_LABELS[cadence] ?? cadence;
59
59
  }
60
+ //# sourceMappingURL=userUtils.js.map
@@ -71,3 +71,4 @@ function defaultRandomBytes(length) {
71
71
  export const __testInternals = {
72
72
  REDEMPTION_CODE_ALPHABET,
73
73
  };
74
+ //# sourceMappingURL=redemptionCodeUtils.js.map
@@ -22,3 +22,4 @@ export function formatVenueTypes(venueTypes, maxDisplay = 2) {
22
22
  }
23
23
  return formatted.join(', ');
24
24
  }
25
+ //# sourceMappingURL=venueTypeFormatter.js.map
@@ -121,3 +121,4 @@ export function getStoredUtmFields() {
121
121
  }
122
122
  return out;
123
123
  }
124
+ //# sourceMappingURL=utmAttribution.js.map
@@ -65,3 +65,4 @@ export const VENUE_MATCH_MODES = [
65
65
  "marketplace_only",
66
66
  "marketplace_and_google",
67
67
  ];
68
+ //# sourceMappingURL=venueMatch.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.368.0",
3
+ "version": "30.371.0",
4
4
  "description": "Common data and scripts to use on the frontend and backend",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",