@bash-app/bash-common 30.370.0 → 30.372.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 (109) 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/definitions.d.ts +6 -0
  8. package/dist/definitions.d.ts.map +1 -1
  9. package/dist/definitions.js.map +1 -1
  10. package/dist/entertainmentNotableVenues.js +1 -0
  11. package/dist/groupTicketUtils.js +1 -0
  12. package/dist/guestPartySize.js +1 -0
  13. package/dist/hostCrmAutomation.js +1 -0
  14. package/dist/hostCrmConstants.js +1 -0
  15. package/dist/hostCrmInsights.js +1 -0
  16. package/dist/hostCrmSegments.js +1 -0
  17. package/dist/icebreakerPrompts.js +1 -0
  18. package/dist/influencerAudience.js +1 -0
  19. package/dist/legalTemplates.js +1 -0
  20. package/dist/membershipDefinitions.js +1 -0
  21. package/dist/mirroredPrismaEnums.js +1 -0
  22. package/dist/onSaleCapabilityRecommendations.js +1 -0
  23. package/dist/partnerStoreTypes.js +1 -0
  24. package/dist/productLaunch.js +1 -0
  25. package/dist/relationshipHealth.js +1 -0
  26. package/dist/requestAuthUser.js +1 -0
  27. package/dist/sideQuestIdeas.js +1 -0
  28. package/dist/storePrintArtworkUtils.js +1 -0
  29. package/dist/storeTypes.js +1 -0
  30. package/dist/stripeListingSubscriptionMessages.js +1 -0
  31. package/dist/templates/eventTemplates.js +1 -0
  32. package/dist/ticketBnplPaymentMethods.js +1 -0
  33. package/dist/userReportTypes.js +1 -0
  34. package/dist/utils/agencyBookingCheckoutCopy.js +1 -0
  35. package/dist/utils/arrayUtils.js +1 -0
  36. package/dist/utils/bashPointsPaymentUtils.js +1 -0
  37. package/dist/utils/birthdayExperienceQuality.js +1 -0
  38. package/dist/utils/contentFilterUtils.js +1 -0
  39. package/dist/utils/discountEngine/eligibilityValidator.js +1 -0
  40. package/dist/utils/displayDateUtils.js +1 -0
  41. package/dist/utils/entertainmentDrawFit.js +1 -0
  42. package/dist/utils/entityUtils.js +1 -0
  43. package/dist/utils/featuredDiscoveryGeo.js +1 -0
  44. package/dist/utils/flyerUtils.js +1 -0
  45. package/dist/utils/generalDateTimeUtils.js +1 -0
  46. package/dist/utils/lobFlyerUtils.js +1 -0
  47. package/dist/utils/localPartnerHours.js +1 -0
  48. package/dist/utils/luxonUtils.d.ts +7 -7
  49. package/dist/utils/luxonUtils.d.ts.map +1 -1
  50. package/dist/utils/luxonUtils.js +1 -0
  51. package/dist/utils/mathUtils.js +1 -0
  52. package/dist/utils/mediaClientDefaults.js +1 -0
  53. package/dist/utils/nonprofitUtils.js +1 -0
  54. package/dist/utils/objUtils.js +1 -0
  55. package/dist/utils/orgPromotionalPackageUtils.js +1 -0
  56. package/dist/utils/organizationEntitlements.d.ts +17 -14
  57. package/dist/utils/organizationEntitlements.d.ts.map +1 -1
  58. package/dist/utils/organizationEntitlements.js +12 -10
  59. package/dist/utils/organizationEntitlements.js.map +1 -1
  60. package/dist/utils/promotionBlastUtils.js +1 -0
  61. package/dist/utils/reputationUtils.js +1 -0
  62. package/dist/utils/reviewDimensionUtils.js +1 -0
  63. package/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.js +66 -1
  64. package/dist/utils/service/__tests__/apiServiceBookingApiUtils.test.js.map +1 -1
  65. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.d.ts +2 -0
  66. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.d.ts.map +1 -0
  67. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.js +165 -0
  68. package/dist/utils/service/__tests__/frontendServiceBookingUtils.test.js.map +1 -0
  69. package/dist/utils/service/apiServiceBookingApiUtils.d.ts +5 -3
  70. package/dist/utils/service/apiServiceBookingApiUtils.d.ts.map +1 -1
  71. package/dist/utils/service/apiServiceBookingApiUtils.js +30 -1
  72. package/dist/utils/service/apiServiceBookingApiUtils.js.map +1 -1
  73. package/dist/utils/service/attendeeOptionUtils.js +1 -0
  74. package/dist/utils/service/billingCapUtils.js +1 -0
  75. package/dist/utils/service/eventPromoterUtils.js +1 -0
  76. package/dist/utils/service/frontendServiceBookingUtils.d.ts +10 -4
  77. package/dist/utils/service/frontendServiceBookingUtils.d.ts.map +1 -1
  78. package/dist/utils/service/frontendServiceBookingUtils.js +16 -3
  79. package/dist/utils/service/frontendServiceBookingUtils.js.map +1 -1
  80. package/dist/utils/service/offerAllowListUtils.js +1 -0
  81. package/dist/utils/service/offerComparisonUtils.js +1 -0
  82. package/dist/utils/service/regexUtils.js +1 -0
  83. package/dist/utils/service/serviceBookingExposureUtils.js +1 -0
  84. package/dist/utils/service/serviceBookingTypes.d.ts +2 -2
  85. package/dist/utils/service/serviceBookingTypes.d.ts.map +1 -1
  86. package/dist/utils/service/serviceFeaturedSortUtils.js +1 -0
  87. package/dist/utils/service/unifiedPricingResolver.js +1 -0
  88. package/dist/utils/service/venueSettlementUtils.js +1 -0
  89. package/dist/utils/service/volunteerCompensationUtils.js +1 -0
  90. package/dist/utils/serviceAvailabilityDisplay.js +1 -0
  91. package/dist/utils/sortUtils.js +1 -0
  92. package/dist/utils/stringUtils.js +1 -0
  93. package/dist/utils/ticketCheckInDisplay.js +1 -0
  94. package/dist/utils/trustScoreUtils.js +1 -0
  95. package/dist/utils/typeUtils.js +1 -0
  96. package/dist/utils/userPromoCodeUtils.js +1 -0
  97. package/dist/utils/userUtils.js +1 -0
  98. package/dist/utils/venueLoyalty/redemptionCodeUtils.js +1 -0
  99. package/dist/utils/venueTypeFormatter.js +1 -0
  100. package/dist/utmAttribution.js +1 -0
  101. package/dist/venueMatch.js +1 -0
  102. package/package.json +1 -1
  103. package/src/definitions.ts +7 -0
  104. package/src/utils/organizationEntitlements.ts +17 -14
  105. package/src/utils/service/__tests__/apiServiceBookingApiUtils.test.ts +102 -2
  106. package/src/utils/service/__tests__/frontendServiceBookingUtils.test.ts +217 -0
  107. package/src/utils/service/apiServiceBookingApiUtils.ts +53 -1
  108. package/src/utils/service/frontendServiceBookingUtils.ts +33 -2
  109. package/src/utils/service/serviceBookingTypes.ts +2 -1
@@ -21,19 +21,19 @@ export interface LuxonDateRangeN {
21
21
  export declare function dayOfWeekGetIdx(dayOfWeek: DayOfWeek | DayOfWeekIdx): DayOfWeekIdx;
22
22
  export declare function dayOfWeekFromIdx(dayOfWeek: DayOfWeek | DayOfWeekIdx): import(".prisma/client").$Enums.DayOfWeek;
23
23
  export declare function dateTimeFromDayTime(dayOfWeek: DayOfWeek | DayOfWeekIdx, hour?: number, minute?: number, interpretAsTimezone?: string, timezoneToConvertTo?: string): DateTime;
24
- export declare function dateTimeFromDate(date: string | Date, interpretAsTimezone?: string, timezoneToConvertTo?: string): DateTime<boolean>;
24
+ export declare function dateTimeFromDate(date: string | Date, interpretAsTimezone?: string, timezoneToConvertTo?: string): DateTime<true> | DateTime<false>;
25
25
  export type DateTimeTime = Pick<DateTime, "hour" | "minute">;
26
26
  export type DateTimeDate = Pick<DateTime, "year" | "month" | "day">;
27
27
  export declare function dateTimeToTimeComponents(dateTime: DateTime): DateTimeTime;
28
28
  export declare function dateTimeToDateComponents(dateTime: DateTime): DateTimeDate;
29
29
  export declare function dateTimeFromTime(time: string | Date, interpretAsTimezone?: string, timezoneToConvertTo?: string): DateTime | null;
30
30
  export declare function dateTimeFromComponents(date: DateTime | Date | string | null | undefined, time: DateTime | Date | string | null | undefined, interpretAsTimezone?: string, timezoneToConvertTo?: string): DateTime | null;
31
- export declare function dateTimeGetDateTimeTime(dateTime: DateTime): DateTime<boolean>;
31
+ export declare function dateTimeGetDateTimeTime(dateTime: DateTime): DateTime<true> | DateTime<false>;
32
32
  export declare function dateTimeSetTime(dateTime: DateTime, time?: DateTimeTime | DateTime): DateTime;
33
33
  export declare function dateTimeSetDate(dateTime: DateTime, date?: DateTimeDate | DateTime): DateTime;
34
34
  export declare function dateRangeGetDateTimeTIme(dateRange: LuxonDateRange): {
35
- start: DateTime<boolean>;
36
- end: DateTime<boolean>;
35
+ start: DateTime<true> | DateTime<false>;
36
+ end: DateTime<true> | DateTime<false>;
37
37
  };
38
38
  export declare function dateTimeFormat(dateTime?: DateTime | undefined | null): string;
39
39
  export declare function dateTimeFormatExt(dateTime?: DateTime | undefined | null): string;
@@ -61,8 +61,8 @@ export type LuxonDayOfWeekHours = {
61
61
  export declare function formatDayOfWeekHours(hours: LuxonDayOfWeekHours): string[];
62
62
  export declare function mergeCrossDayHours(hours: LuxonDateRange[]): LuxonDateRange[];
63
63
  export declare function dateTimeHoursByDay(hours: LuxonDateRange[]): LuxonDayOfWeekHours;
64
- export declare function normalizeLuxonInterval(interval: Interval): Interval<boolean>;
65
- export declare function dateRangeIntervalFromWeekdayTime(dateRange: LuxonDateRange): Interval<boolean>;
64
+ export declare function normalizeLuxonInterval(interval: Interval): Interval<true> | Interval<false>;
65
+ export declare function dateRangeIntervalFromWeekdayTime(dateRange: LuxonDateRange): Interval<true> | Interval<false>;
66
66
  export declare function dateTimeGetOverlappingHoursCommonHelper(weekHours: LuxonDayOfWeekHours, inputInterval: Interval): LuxonDateRange | null;
67
67
  export declare function dateTimeGetOverlappingHoursCommon(weekHours: LuxonDayOfWeekHours, inputHours: LuxonDateRange): LuxonDateRange | null;
68
68
  export declare function dateTimeGetOverlappingHoursContinuousHelper(weekHours: LuxonDayOfWeekHours, inputInterval: Interval): LuxonDateRange[] | null;
@@ -100,7 +100,7 @@ export declare function dateTimeRangeCrossesMidnight(range: LuxonDateRange): boo
100
100
  */
101
101
  export declare function splitRangeByInputTimes(range: LuxonDateRange): LuxonDateRange[];
102
102
  export declare function dateTimeRangeFromDates(startDate: Date | string, endDate: Date | string, interpretAsTimezone?: string, timezoneToConvertTo?: string): LuxonDateRange;
103
- export declare function dateTimeFromString(str: string): DateTime<boolean>;
103
+ export declare function dateTimeFromString(str: string): DateTime<true> | DateTime<false>;
104
104
  export declare function dateTimeToString(dateTime: DateTime): string | null;
105
105
  export declare function dateRangesFormat(dateRanges: LuxonDateRange[]): string;
106
106
  //# sourceMappingURL=luxonUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"luxonUtils.d.ts","sourceRoot":"","sources":["../../src/utils/luxonUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"luxonUtils.d.ts","sourceRoot":"","sources":["../../src/utils/luxonUtils.ts"],"names":[],"mappings":"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"}
@@ -588,3 +588,4 @@ export function dateRangesFormat(dateRanges) {
588
588
  .join(", ");
589
589
  return result;
590
590
  }
591
+ //# sourceMappingURL=luxonUtils.js.map
@@ -1,3 +1,4 @@
1
1
  export function roundToNearestDivisor(num, div) {
2
2
  return Math.round(num * div) / div;
3
3
  }
4
+ //# sourceMappingURL=mathUtils.js.map
@@ -4,3 +4,4 @@
4
4
  */
5
5
  export const CLIENT_IMAGE_COMPRESSION_MAX_WIDTH_OR_HEIGHT = 1920;
6
6
  export const CLIENT_IMAGE_COMPRESSION_USE_WEB_WORKER = true;
7
+ //# sourceMappingURL=mediaClientDefaults.js.map
@@ -26,3 +26,4 @@ export function isVerifiedNonprofitOrganization(org) {
26
26
  }
27
27
  return true;
28
28
  }
29
+ //# sourceMappingURL=nonprofitUtils.js.map
@@ -26,3 +26,4 @@ export function deepMerge(target, source, mergeArrays = false, mergeCommon = fal
26
26
  }
27
27
  return output;
28
28
  }
29
+ //# sourceMappingURL=objUtils.js.map
@@ -198,3 +198,4 @@ export function formatOrgPromoRatesForHost(rates, connected) {
198
198
  };
199
199
  });
200
200
  }
201
+ //# sourceMappingURL=orgPromotionalPackageUtils.js.map
@@ -12,27 +12,29 @@ export interface OrganizationEntitlementInput {
12
12
  subscriptionStatus?: string | null;
13
13
  /**
14
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.
15
+ * enterprise-provisioning endpoint) the only way to reach
16
+ * subscriptionTier="Enterprise" (see docs/ENTERPRISE-B2B-SALES-PLAYBOOK.md;
17
+ * self-serve checkout rejects Enterprise). Optional/undefined is treated as
18
+ * false so legacy call sites that don't select this field fail closed on the
19
+ * sales-gated surface rather than open.
19
20
  */
20
21
  enterpriseSalesProvisioned?: boolean | null;
21
22
  }
22
23
  /**
23
24
  * Vanity subdomains ({slug}.bash.community) and custom domains (white-label)
24
- * are self-serve-eligible Enterprise perksavailable whether Enterprise was
25
- * bought via self-serve Stripe checkout or a sales-negotiated deal.
25
+ * come bundled with any Enterprise planEnterprise is sales-led (custom
26
+ * quote), so this is always a sales-negotiated deal today, but the check
27
+ * intentionally doesn't require `enterpriseSalesProvisioned` in case self-serve
28
+ * Enterprise checkout returns as a fast-follow.
26
29
  */
27
30
  export declare function organizationHasVanitySubdomain(org: OrganizationEntitlementInput | null | undefined): boolean;
28
31
  /**
29
32
  * Shared gate for the enterprise platform surface: org-scoped audit logs,
30
33
  * SSO/identity setup, procurement approval policy, API keys, webhooks, and
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.
34
+ * third-party integrations (Mailchimp/Salesforce). Requires the explicit
35
+ * `enterpriseSalesProvisioned` flag set by ops after a signed deal, since SSO,
36
+ * compliance, procurement, and API access typically involve a security review
37
+ * or contract terms sales owns.
36
38
  */
37
39
  export declare function organizationHasEnterprisePlatformAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
38
40
  /** Org-admin audit log viewer + CSV export. */
@@ -51,9 +53,10 @@ export declare function organizationHasComplianceAccess(org: OrganizationEntitle
51
53
  * removal toggle. Same Enterprise + active/trialing gate as
52
54
  * {@link organizationHasVanitySubdomain} for MVP — reuse the existing tier rather
53
55
  * 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.
56
+ * fast-follow if sales needs separate pricing. Does NOT require
57
+ * {@link organizationHasEnterprisePlatformAccess}'s `enterpriseSalesProvisioned`
58
+ * flag, so a fast-follow self-serve Enterprise checkout could unlock this
59
+ * without the sales-gated platform surface.
57
60
  */
58
61
  export declare function organizationHasCustomDomainAccess(org: OrganizationEntitlementInput | null | undefined): boolean;
59
62
  //# 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;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"}
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;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;AAgBD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET;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;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACnD,OAAO,CAET"}
@@ -24,8 +24,10 @@ function hasActiveEnterpriseTier(org) {
24
24
  }
25
25
  /**
26
26
  * Vanity subdomains ({slug}.bash.community) and custom domains (white-label)
27
- * are self-serve-eligible Enterprise perksavailable whether Enterprise was
28
- * bought via self-serve Stripe checkout or a sales-negotiated deal.
27
+ * come bundled with any Enterprise planEnterprise is sales-led (custom
28
+ * quote), so this is always a sales-negotiated deal today, but the check
29
+ * intentionally doesn't require `enterpriseSalesProvisioned` in case self-serve
30
+ * Enterprise checkout returns as a fast-follow.
29
31
  */
30
32
  export function organizationHasVanitySubdomain(org) {
31
33
  return hasActiveEnterpriseTier(org);
@@ -33,11 +35,10 @@ export function organizationHasVanitySubdomain(org) {
33
35
  /**
34
36
  * Shared gate for the enterprise platform surface: org-scoped audit logs,
35
37
  * SSO/identity setup, procurement approval policy, API keys, webhooks, and
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.
38
+ * third-party integrations (Mailchimp/Salesforce). Requires the explicit
39
+ * `enterpriseSalesProvisioned` flag set by ops after a signed deal, since SSO,
40
+ * compliance, procurement, and API access typically involve a security review
41
+ * or contract terms sales owns.
41
42
  */
42
43
  export function organizationHasEnterprisePlatformAccess(org) {
43
44
  return hasActiveEnterpriseTier(org) && org?.enterpriseSalesProvisioned === true;
@@ -68,9 +69,10 @@ export function organizationHasComplianceAccess(org) {
68
69
  * removal toggle. Same Enterprise + active/trialing gate as
69
70
  * {@link organizationHasVanitySubdomain} for MVP — reuse the existing tier rather
70
71
  * 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.
72
+ * fast-follow if sales needs separate pricing. Does NOT require
73
+ * {@link organizationHasEnterprisePlatformAccess}'s `enterpriseSalesProvisioned`
74
+ * flag, so a fast-follow self-serve Enterprise checkout could unlock this
75
+ * without the sales-gated platform surface.
74
76
  */
75
77
  export function organizationHasCustomDomainAccess(org) {
76
78
  return organizationHasVanitySubdomain(org);
@@ -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;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"}
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;AAgBX,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;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC5C,GAAoD;IAEpD,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;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;;;;;;;;;;GAUG;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
@@ -1,4 +1,4 @@
1
- import { apiTransformAddOnsToAddonInputs, serviceBookingParamsToLuxon, } from "../apiServiceBookingApiUtils";
1
+ import { apiTransformAddOnsToAddonInputs, apiTransformPackagesToPackageInputs, servicePriceToBookToApiPackages, serviceBookingParamsToLuxon, } from "../apiServiceBookingApiUtils";
2
2
  // ---------------------------------------------------------------------------
3
3
  // apiTransformAddOnsToAddonInputs
4
4
  // ---------------------------------------------------------------------------
@@ -45,6 +45,71 @@ describe("apiTransformAddOnsToAddonInputs", () => {
45
45
  });
46
46
  });
47
47
  // ---------------------------------------------------------------------------
48
+ // apiTransformPackagesToPackageInputs
49
+ // ---------------------------------------------------------------------------
50
+ function makePackageExt(id, name = "Package") {
51
+ return {
52
+ id,
53
+ name,
54
+ description: "",
55
+ priceCents: 5000,
56
+ serviceAddons: [],
57
+ };
58
+ }
59
+ function makePackageParam(packageId, qty = 1) {
60
+ return { packageId, chosenQuantity: qty };
61
+ }
62
+ describe("apiTransformPackagesToPackageInputs", () => {
63
+ it("returns empty array when no packages are provided", () => {
64
+ expect(apiTransformPackagesToPackageInputs([], [])).toEqual([]);
65
+ });
66
+ it("maps package params to their matching ServicePackageExt", () => {
67
+ const servicePackages = [makePackageExt("p1"), makePackageExt("p2")];
68
+ const packagesApi = [makePackageParam("p1", 2)];
69
+ const result = apiTransformPackagesToPackageInputs(packagesApi, servicePackages);
70
+ expect(result).toHaveLength(1);
71
+ expect(result[0].id).toBe("p1");
72
+ expect(result[0].chosenQuantity).toBe(2);
73
+ });
74
+ it("merges package params over the ServicePackageExt fields (params win)", () => {
75
+ const servicePackages = [makePackageExt("p1")];
76
+ const packagesApi = [
77
+ { packageId: "p1", chosenQuantity: 5, extra: "field" },
78
+ ];
79
+ const result = apiTransformPackagesToPackageInputs(packagesApi, servicePackages);
80
+ expect(result[0].chosenQuantity).toBe(5);
81
+ });
82
+ it("throws when a packageId does not match any ServicePackageExt", () => {
83
+ const servicePackages = [makePackageExt("p1")];
84
+ const packagesApi = [makePackageParam("ghost-id")];
85
+ expect(() => apiTransformPackagesToPackageInputs(packagesApi, servicePackages)).toThrow(/Failed to match package with id: ghost-id/);
86
+ });
87
+ });
88
+ // ---------------------------------------------------------------------------
89
+ // servicePriceToBookToApiPackages
90
+ // ---------------------------------------------------------------------------
91
+ describe("servicePriceToBookToApiPackages", () => {
92
+ it("returns empty array when priceToBook has no packages", () => {
93
+ const priceToBook = {
94
+ packages: [],
95
+ };
96
+ expect(servicePriceToBookToApiPackages(priceToBook)).toEqual([]);
97
+ });
98
+ it("maps priceToBook packages to ApiServicePackageParams", () => {
99
+ const priceToBook = {
100
+ packages: [
101
+ { packageId: "p1", chosenQuantity: 2, costPQCents: 5000 },
102
+ { packageId: "p2", chosenQuantity: 1, costPQCents: 8000 },
103
+ ],
104
+ };
105
+ const result = servicePriceToBookToApiPackages(priceToBook);
106
+ expect(result).toEqual([
107
+ { packageId: "p1", chosenQuantity: 2 },
108
+ { packageId: "p2", chosenQuantity: 1 },
109
+ ]);
110
+ });
111
+ });
112
+ // ---------------------------------------------------------------------------
48
113
  // serviceBookingParamsToLuxon
49
114
  // ---------------------------------------------------------------------------
50
115
  function makeBookingParams(days) {
@@ -1 +1 @@
1
- {"version":3,"file":"apiServiceBookingApiUtils.test.js","sourceRoot":"","sources":["../../../../src/utils/service/__tests__/apiServiceBookingApiUtils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiServiceBookingApiUtils.test.js","sourceRoot":"","sources":["../../../../src/utils/service/__tests__/apiServiceBookingApiUtils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=frontendServiceBookingUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontendServiceBookingUtils.test.d.ts","sourceRoot":"","sources":["../../../../src/utils/service/__tests__/frontendServiceBookingUtils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,165 @@
1
+ import { DateTime } from "luxon";
2
+ import { frontendServiceGetPriceToBook, frontendServiceGetPriceToBookFees, } from "../frontendServiceBookingUtils";
3
+ function makeRange(startISO, endISO) {
4
+ return {
5
+ start: DateTime.fromISO(startISO, { zone: "utc" }),
6
+ end: DateTime.fromISO(endISO, { zone: "utc" }),
7
+ };
8
+ }
9
+ function makeFlatRateAssociation(flatRateCents = 20000) {
10
+ return {
11
+ serviceId: "svc-1",
12
+ serviceGeneralRates: {
13
+ flatRateCents,
14
+ hourlyRateCents: null,
15
+ dailyRateCents: null,
16
+ minimumTimeBlockHours: null,
17
+ cleaningFeePerBookingCents: 0,
18
+ },
19
+ serviceSpecialRates: [],
20
+ serviceDailyRates: [],
21
+ };
22
+ }
23
+ function makeTimeBasedAssociation(hourlyRateCents = 5000) {
24
+ return {
25
+ serviceId: "svc-1",
26
+ serviceGeneralRates: {
27
+ flatRateCents: null,
28
+ hourlyRateCents,
29
+ dailyRateCents: null,
30
+ minimumTimeBlockHours: null,
31
+ cleaningFeePerBookingCents: 0,
32
+ },
33
+ serviceSpecialRates: [],
34
+ serviceDailyRates: [],
35
+ };
36
+ }
37
+ function makePackageInput(overrides = {}) {
38
+ return {
39
+ id: "pkg-1",
40
+ name: "Gold DJ Package",
41
+ description: "",
42
+ priceCents: 10000,
43
+ serviceAddons: [],
44
+ chosenQuantity: 1,
45
+ ...overrides,
46
+ };
47
+ }
48
+ const ATTENDEE_OPTION = null;
49
+ const RANGE_2H = makeRange("2025-07-01T09:00:00Z", "2025-07-01T11:00:00Z");
50
+ describe("frontendServiceGetPriceToBookFees — packages", () => {
51
+ it("returns an empty packages array and adds nothing to the subtotal when no packages are given", () => {
52
+ const result = frontendServiceGetPriceToBookFees(makeFlatRateAssociation(20000), {
53
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
54
+ selectedAttendeeOption: ATTENDEE_OPTION,
55
+ additionalFees: [],
56
+ addOns: [],
57
+ timezone: "UTC",
58
+ });
59
+ expect(result.packages).toEqual([]);
60
+ expect(result.subtotalBeforeTaxesCents).toBe(20000);
61
+ });
62
+ it("folds a single package's cost into the subtotal", () => {
63
+ const result = frontendServiceGetPriceToBookFees(makeFlatRateAssociation(20000), {
64
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
65
+ selectedAttendeeOption: ATTENDEE_OPTION,
66
+ additionalFees: [],
67
+ addOns: [],
68
+ packages: [makePackageInput({ priceCents: 15000, chosenQuantity: 1 })],
69
+ timezone: "UTC",
70
+ });
71
+ expect(result.packages).toHaveLength(1);
72
+ expect(result.packages[0]).toMatchObject({
73
+ packageId: "pkg-1",
74
+ chosenQuantity: 1,
75
+ costPQCents: 15000,
76
+ });
77
+ expect(result.subtotalBeforeTaxesCents).toBe(20000 + 15000);
78
+ });
79
+ it("multiplies a package's cost by chosenQuantity", () => {
80
+ const result = frontendServiceGetPriceToBookFees(makeFlatRateAssociation(20000), {
81
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
82
+ selectedAttendeeOption: ATTENDEE_OPTION,
83
+ additionalFees: [],
84
+ addOns: [],
85
+ packages: [makePackageInput({ priceCents: 15000, chosenQuantity: 3 })],
86
+ timezone: "UTC",
87
+ });
88
+ expect(result.packages[0].chosenQuantity).toBe(3);
89
+ expect(result.subtotalBeforeTaxesCents).toBe(20000 + 15000 * 3);
90
+ });
91
+ it("sums multiple distinct packages into the subtotal", () => {
92
+ const result = frontendServiceGetPriceToBookFees(makeFlatRateAssociation(20000), {
93
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
94
+ selectedAttendeeOption: ATTENDEE_OPTION,
95
+ additionalFees: [],
96
+ addOns: [],
97
+ packages: [
98
+ makePackageInput({
99
+ id: "pkg-1",
100
+ priceCents: 15000,
101
+ chosenQuantity: 1,
102
+ }),
103
+ makePackageInput({
104
+ id: "pkg-2",
105
+ priceCents: 8000,
106
+ chosenQuantity: 2,
107
+ }),
108
+ ],
109
+ timezone: "UTC",
110
+ });
111
+ expect(result.packages).toHaveLength(2);
112
+ expect(result.subtotalBeforeTaxesCents).toBe(20000 + 15000 + 8000 * 2);
113
+ });
114
+ it("defaults chosenQuantity to 0 when not provided", () => {
115
+ const result = frontendServiceGetPriceToBookFees(makeFlatRateAssociation(20000), {
116
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
117
+ selectedAttendeeOption: ATTENDEE_OPTION,
118
+ additionalFees: [],
119
+ addOns: [],
120
+ packages: [
121
+ makePackageInput({ priceCents: 15000, chosenQuantity: undefined }),
122
+ ],
123
+ timezone: "UTC",
124
+ });
125
+ expect(result.packages[0].chosenQuantity).toBe(0);
126
+ expect(result.subtotalBeforeTaxesCents).toBe(20000);
127
+ });
128
+ it("applies package pricing on top of time-based (hourly) bookings too", () => {
129
+ const result = frontendServiceGetPriceToBookFees(makeTimeBasedAssociation(5000), {
130
+ daysToBookParams: [{ dateTimeRange: RANGE_2H, fees: [], addOns: [] }],
131
+ selectedAttendeeOption: ATTENDEE_OPTION,
132
+ additionalFees: [],
133
+ addOns: [],
134
+ packages: [makePackageInput({ priceCents: 12000, chosenQuantity: 1 })],
135
+ timezone: "UTC",
136
+ });
137
+ // 2 hours @ $50/hr = $100 in day totals, plus the $120 package.
138
+ expect(result.daysTotalBeforeTaxesCents).toBe(10000);
139
+ expect(result.subtotalBeforeTaxesCents).toBe(10000 + 12000);
140
+ });
141
+ });
142
+ describe("frontendServiceGetPriceToBook — packages", () => {
143
+ it("passes packages through to frontendServiceGetPriceToBookFees", () => {
144
+ const result = frontendServiceGetPriceToBook(makeFlatRateAssociation(20000), {
145
+ addOns: [],
146
+ packages: [makePackageInput({ priceCents: 5000, chosenQuantity: 2 })],
147
+ selectedAttendeeOption: ATTENDEE_OPTION,
148
+ bookingDateTimeRanges: [RANGE_2H],
149
+ timezone: "UTC",
150
+ });
151
+ expect(result.packages).toHaveLength(1);
152
+ expect(result.subtotalBeforeTaxesCents).toBe(20000 + 5000 * 2);
153
+ });
154
+ it("defaults to an empty packages array when packages is omitted", () => {
155
+ const result = frontendServiceGetPriceToBook(makeFlatRateAssociation(20000), {
156
+ addOns: [],
157
+ selectedAttendeeOption: ATTENDEE_OPTION,
158
+ bookingDateTimeRanges: [RANGE_2H],
159
+ timezone: "UTC",
160
+ });
161
+ expect(result.packages).toEqual([]);
162
+ expect(result.subtotalBeforeTaxesCents).toBe(20000);
163
+ });
164
+ });
165
+ //# sourceMappingURL=frontendServiceBookingUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontendServiceBookingUtils.test.js","sourceRoot":"","sources":["../../../../src/utils/service/__tests__/frontendServiceBookingUtils.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ServiceBookingStatus, ServiceBookingType } from "@prisma/client";
2
- import { ApiBookingParamsLuxon, ApiServiceAddonParams, ApiServiceBookedDayParams, ApiServiceBookingParams, ApiServicePriceToBookResult } from "../../definitions.js";
3
- import { ServiceAddonExt, ServiceBookingDayExt, ServiceBookingExt, ServiceExt } from "../../extendedSchemas.js";
4
- import { FrontendServiceGetPriceToBookResult, ServiceAddonInput } from "./frontendServiceBookingUtils.js";
2
+ import { ApiBookingParamsLuxon, ApiServiceAddonParams, ApiServiceBookedDayParams, ApiServiceBookingParams, ApiServicePackageParams, ApiServicePriceToBookResult } from "../../definitions.js";
3
+ import { ServiceAddonExt, ServiceBookingDayExt, ServiceBookingExt, ServiceExt, ServicePackageExt } from "../../extendedSchemas.js";
4
+ import { FrontendServiceGetPriceToBookResult, ServiceAddonInput, ServicePackageInput } from "./frontendServiceBookingUtils.js";
5
5
  import { ServiceBookingRequiredData } from "./serviceBookingTypes.js";
6
6
  export type ApiServiceCantBookReason = {
7
7
  type: string;
@@ -17,10 +17,12 @@ export declare const ApiServiceCantBookReasons: {
17
17
  };
18
18
  export type ApiServiceCantBookReasons = keyof typeof ApiServiceCantBookReasons;
19
19
  export declare function apiTransformAddOnsToAddonInputs<AddonParams_t extends ApiServiceAddonParams>(addOnsApi: AddonParams_t[], serviceAddons: ServiceAddonExt[]): ServiceAddonInput[];
20
+ export declare function apiTransformPackagesToPackageInputs<PackageParams_t extends ApiServicePackageParams>(packagesApi: PackageParams_t[], servicePackages: ServicePackageExt[]): ServicePackageInput[];
20
21
  export declare function apiTransformBookedDays(priceToBook: ApiServicePriceToBookResult): Partial<ServiceBookingDayExt>[];
21
22
  export declare function serviceGetPriceToBookFromBooking(service: ServiceExt, booking: ServiceBookingExt): FrontendServiceGetPriceToBookResult;
22
23
  export declare function serviceBookingParamsToLuxon(params: ApiServiceBookingParams): ApiBookingParamsLuxon;
23
24
  export declare function servicePriceToBookToApiDays(serviceId: string, userId: string, priceToBook: FrontendServiceGetPriceToBookResult): ApiServiceBookedDayParams[];
25
+ export declare function servicePriceToBookToApiPackages(priceToBook: FrontendServiceGetPriceToBookResult): ApiServicePackageParams[];
24
26
  export interface ServicePriceToBookToApiBookingBaseArgs {
25
27
  bookingType: ServiceBookingType;
26
28
  status: ServiceBookingStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"apiServiceBookingApiUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EAEzB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EAEf,oBAAoB,EACpB,iBAAiB,EAGjB,UAAU,EACX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,mCAAmC,EACnC,iBAAiB,EAClB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,yBAAyB;2BAG/B,wBAAwB;iCAGxB,wBAAwB;+BAGxB,wBAAwB;0BAGxB,wBAAwB;4BAGxB,wBAAwB;8BAGxB,wBAAwB;CACrB,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,aAAa,SAAS,qBAAqB,EAE3C,SAAS,EAAE,aAAa,EAAE,EAC1B,aAAa,EAAE,eAAe,EAAE,GAC/B,iBAAiB,EAAE,CAgBrB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAkCjC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,iBAAiB,GACzB,mCAAmC,CAiDrC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAoBvB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mCAAmC,GAC/C,yBAAyB,EAAE,CAkC7B;AACD,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,kBAAkB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mCAAmC,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,kCAAkC,CAAC,EACjD,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,iBAAyB,EACzB,WAAmB,GACpB,EAAE,sCAAsC,GAAG,0BAA0B,CA+BrE"}
1
+ {"version":3,"file":"apiServiceBookingApiUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/service/apiServiceBookingApiUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EAEzB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EAEf,oBAAoB,EACpB,iBAAiB,EAIjB,UAAU,EACV,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,mCAAmC,EACnC,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAEL,0BAA0B,EAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,eAAO,MAAM,yBAAyB;2BAG/B,wBAAwB;iCAGxB,wBAAwB;+BAGxB,wBAAwB;0BAGxB,wBAAwB;4BAGxB,wBAAwB;8BAGxB,wBAAwB;CACrB,CAAC;AAEX,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAE/E,wBAAgB,+BAA+B,CAC7C,aAAa,SAAS,qBAAqB,EAE3C,SAAS,EAAE,aAAa,EAAE,EAC1B,aAAa,EAAE,eAAe,EAAE,GAC/B,iBAAiB,EAAE,CAgBrB;AAED,wBAAgB,mCAAmC,CACjD,eAAe,SAAS,uBAAuB,EAE/C,WAAW,EAAE,eAAe,EAAE,EAC9B,eAAe,EAAE,iBAAiB,EAAE,GACnC,mBAAmB,EAAE,CAkBvB;AAED,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,2BAA2B,GACvC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAoCjC;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,iBAAiB,GACzB,mCAAmC,CAkDrC;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAoBvB;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mCAAmC,GAC/C,yBAAyB,EAAE,CAkC7B;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,mCAAmC,GAC/C,uBAAuB,EAAE,CAO3B;AAED,MAAM,WAAW,sCAAsC;IACrD,WAAW,EAAE,kBAAkB,CAAC;IAChC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,mCAAmC,CAAC;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,kCAAkC,CAAC,EACjD,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,iBAAyB,EACzB,WAAmB,GACpB,EAAE,sCAAsC,GAAG,0BAA0B,CAuCrE"}