@bash-app/bash-common 30.113.0 → 30.115.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 (40) hide show
  1. package/dist/definitions.d.ts +2 -2
  2. package/dist/definitions.d.ts.map +1 -1
  3. package/dist/definitions.js +2 -2
  4. package/dist/definitions.js.map +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/utils/__tests__/recurrenceUtils.test.d.ts +2 -0
  10. package/dist/utils/__tests__/recurrenceUtils.test.d.ts.map +1 -0
  11. package/dist/utils/__tests__/recurrenceUtils.test.js +193 -0
  12. package/dist/utils/__tests__/recurrenceUtils.test.js.map +1 -0
  13. package/dist/utils/discountEngine/bestPriceResolver.d.ts +31 -0
  14. package/dist/utils/discountEngine/bestPriceResolver.d.ts.map +1 -0
  15. package/dist/utils/discountEngine/bestPriceResolver.js +147 -0
  16. package/dist/utils/discountEngine/bestPriceResolver.js.map +1 -0
  17. package/dist/utils/discountEngine/discountCalculator.d.ts +56 -0
  18. package/dist/utils/discountEngine/discountCalculator.d.ts.map +1 -0
  19. package/dist/utils/discountEngine/discountCalculator.js +219 -0
  20. package/dist/utils/discountEngine/discountCalculator.js.map +1 -0
  21. package/dist/utils/discountEngine/eligibilityValidator.d.ts +36 -0
  22. package/dist/utils/discountEngine/eligibilityValidator.d.ts.map +1 -0
  23. package/dist/utils/discountEngine/eligibilityValidator.js +189 -0
  24. package/dist/utils/discountEngine/eligibilityValidator.js.map +1 -0
  25. package/dist/utils/discountEngine/index.d.ts +4 -0
  26. package/dist/utils/discountEngine/index.d.ts.map +1 -0
  27. package/dist/utils/discountEngine/index.js +5 -0
  28. package/dist/utils/discountEngine/index.js.map +1 -0
  29. package/dist/utils/recurrenceUtils.d.ts.map +1 -1
  30. package/dist/utils/recurrenceUtils.js +17 -4
  31. package/dist/utils/recurrenceUtils.js.map +1 -1
  32. package/package.json +5 -5
  33. package/prisma/schema.prisma +387 -81
  34. package/src/definitions.ts +2 -1
  35. package/src/index.ts +2 -0
  36. package/src/utils/discountEngine/bestPriceResolver.ts +212 -0
  37. package/src/utils/discountEngine/discountCalculator.ts +281 -0
  38. package/src/utils/discountEngine/eligibilityValidator.ts +256 -0
  39. package/src/utils/discountEngine/index.ts +5 -0
  40. package/src/utils/recurrenceUtils.ts +20 -4
@@ -0,0 +1,189 @@
1
+ import { SpecialOfferType } from "@prisma/client";
2
+ /**
3
+ * Validate if a user is eligible to use a promo code
4
+ */
5
+ export const validatePromoCodeEligibility = (promoCode, userId, usersWhoUsedCode = []) => {
6
+ // Check if expired
7
+ if (promoCode.redeemBy && new Date() > promoCode.redeemBy) {
8
+ return {
9
+ eligible: false,
10
+ reason: `This promo code expired on ${promoCode.redeemBy.toLocaleDateString()}`,
11
+ };
12
+ }
13
+ // Check max redemptions
14
+ if (promoCode.maxRedemptions && usersWhoUsedCode.length >= promoCode.maxRedemptions) {
15
+ return {
16
+ eligible: false,
17
+ reason: "This promo code has reached its maximum number of uses",
18
+ };
19
+ }
20
+ // Check if user already used this code
21
+ if (usersWhoUsedCode.includes(userId)) {
22
+ return {
23
+ eligible: false,
24
+ reason: "You have already used this promo code",
25
+ };
26
+ }
27
+ return { eligible: true };
28
+ };
29
+ /**
30
+ * Validate if a user is eligible for a special offer
31
+ */
32
+ export const validateOfferEligibility = (offer, userId, quantity, currentDate, userRedemptionCount = 0) => {
33
+ // Check if offer is active
34
+ if (!offer.isActive) {
35
+ return {
36
+ eligible: false,
37
+ reason: "This offer is no longer active",
38
+ };
39
+ }
40
+ // Check start date
41
+ if (offer.startDate && currentDate < offer.startDate) {
42
+ return {
43
+ eligible: false,
44
+ reason: `This offer starts on ${offer.startDate.toLocaleDateString()}`,
45
+ };
46
+ }
47
+ // Check end date
48
+ if (offer.endDate && currentDate > offer.endDate) {
49
+ return {
50
+ eligible: false,
51
+ reason: `This offer ended on ${offer.endDate.toLocaleDateString()}`,
52
+ };
53
+ }
54
+ // Check early bird cutoff
55
+ if (offer.availableUntil && currentDate > offer.availableUntil) {
56
+ return {
57
+ eligible: false,
58
+ reason: "The early bird period has ended",
59
+ };
60
+ }
61
+ // Check price increase countdown
62
+ if (offer.priceIncreasesAt && currentDate > offer.priceIncreasesAt) {
63
+ return {
64
+ eligible: false,
65
+ reason: "This special pricing is no longer available",
66
+ };
67
+ }
68
+ // Check max redemptions (total)
69
+ if (offer.maxRedemptions && offer.currentRedemptions >= offer.maxRedemptions) {
70
+ return {
71
+ eligible: false,
72
+ reason: "This offer has reached its maximum number of uses",
73
+ };
74
+ }
75
+ // Check max redemptions per user
76
+ if (offer.maxPerUser && userRedemptionCount >= offer.maxPerUser) {
77
+ return {
78
+ eligible: false,
79
+ reason: "You have reached the maximum number of times you can use this offer",
80
+ };
81
+ }
82
+ // Check limited quantity
83
+ if (offer.limitedQuantity && offer.currentRedemptions >= offer.limitedQuantity) {
84
+ return {
85
+ eligible: false,
86
+ reason: "This offer is sold out",
87
+ };
88
+ }
89
+ // Check quantity requirements for specific offer types
90
+ if (offer.offerType === SpecialOfferType.GROUP_DISCOUNT) {
91
+ if (offer.minGroupSize && quantity < offer.minGroupSize) {
92
+ return {
93
+ eligible: false,
94
+ reason: `You must purchase at least ${offer.minGroupSize} tickets to qualify for this group discount`,
95
+ };
96
+ }
97
+ if (offer.maxGroupSize && quantity > offer.maxGroupSize) {
98
+ return {
99
+ eligible: false,
100
+ reason: `This group discount only applies to groups of ${offer.maxGroupSize} or fewer`,
101
+ };
102
+ }
103
+ }
104
+ if (offer.offerType === SpecialOfferType.BOGO) {
105
+ const buyQuantity = offer.buyQuantity || 1;
106
+ const getQuantity = offer.getQuantity || 1;
107
+ const minQuantity = buyQuantity + getQuantity;
108
+ if (quantity < minQuantity) {
109
+ return {
110
+ eligible: false,
111
+ reason: `You must purchase at least ${minQuantity} tickets for this Buy ${buyQuantity} Get ${getQuantity} offer`,
112
+ };
113
+ }
114
+ }
115
+ // All checks passed
116
+ return { eligible: true };
117
+ };
118
+ /**
119
+ * Validate if an offer can stack with promo codes
120
+ */
121
+ export const validateOfferStacking = (offer, hasPromoCode, hasOtherOffer) => {
122
+ if (hasPromoCode && !offer.canStackWithPromoCodes) {
123
+ return {
124
+ eligible: false,
125
+ reason: "This offer cannot be combined with promo codes",
126
+ };
127
+ }
128
+ if (hasOtherOffer && !offer.canStackWithOtherOffers) {
129
+ return {
130
+ eligible: false,
131
+ reason: "This offer cannot be combined with other offers",
132
+ };
133
+ }
134
+ return { eligible: true };
135
+ };
136
+ /**
137
+ * Validate loyalty offer requirements
138
+ */
139
+ export const validateLoyaltyRequirements = (offer, userEventAttendanceCount, isHostEvent) => {
140
+ if (offer.offerType !== SpecialOfferType.LOYALTY) {
141
+ return { eligible: true };
142
+ }
143
+ // Check event attendance requirement
144
+ if (offer.requiresEventAttendance && userEventAttendanceCount < offer.requiresEventAttendance) {
145
+ return {
146
+ eligible: false,
147
+ reason: `You must have attended at least ${offer.requiresEventAttendance} events to qualify for this loyalty offer`,
148
+ };
149
+ }
150
+ // Check if it's host-specific loyalty
151
+ if (offer.hostSpecificLoyalty && !isHostEvent) {
152
+ return {
153
+ eligible: false,
154
+ reason: "This loyalty offer only applies to events by this host",
155
+ };
156
+ }
157
+ return { eligible: true };
158
+ };
159
+ /**
160
+ * Batch validate multiple offers for a user
161
+ */
162
+ export const validateMultipleOffers = (offers, userId, quantity, currentDate, userRedemptions) => {
163
+ const results = new Map();
164
+ offers.forEach(offer => {
165
+ const userCount = userRedemptions.get(offer.id) || 0;
166
+ const result = validateOfferEligibility(offer, userId, quantity, currentDate, userCount);
167
+ results.set(offer.id, result);
168
+ });
169
+ return results;
170
+ };
171
+ /**
172
+ * Get time remaining until offer expires (for countdown timers)
173
+ */
174
+ export const getTimeRemaining = (offer, currentDate) => {
175
+ const expiryDate = offer.endDate || offer.priceIncreasesAt || offer.availableUntil;
176
+ if (!expiryDate) {
177
+ return { expired: false, days: 999, hours: 0, minutes: 0, seconds: 0 };
178
+ }
179
+ const diff = expiryDate.getTime() - currentDate.getTime();
180
+ if (diff <= 0) {
181
+ return { expired: true, days: 0, hours: 0, minutes: 0, seconds: 0 };
182
+ }
183
+ const days = Math.floor(diff / (1000 * 60 * 60 * 24));
184
+ const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
185
+ const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
186
+ const seconds = Math.floor((diff % (1000 * 60)) / 1000);
187
+ return { expired: false, days, hours, minutes, seconds };
188
+ };
189
+ //# sourceMappingURL=eligibilityValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eligibilityValidator.js","sourceRoot":"","sources":["../../../src/utils/discountEngine/eligibilityValidator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './discountCalculator';
2
+ export * from './bestPriceResolver';
3
+ export * from './eligibilityValidator';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/discountEngine/index.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Unified Discount Engine - All discount calculation and validation logic
2
+ export * from './discountCalculator';
3
+ export * from './bestPriceResolver';
4
+ export * from './eligibilityValidator';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/discountEngine/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recurrenceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/recurrenceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUjD,wBAAgB,sCAAsC,CACpD,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GACxC,IAAI,EAAE,CAMR;AAED,wBAAgB,uCAAuC,CACrD,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GACxC,QAAQ,EAAE,CAMZ;AAwPD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAqBR;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,eAAe,GAChC,QAAQ,GAAG,SAAS,CAEtB"}
1
+ {"version":3,"file":"recurrenceUtils.d.ts","sourceRoot":"","sources":["../../src/utils/recurrenceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUjD,wBAAgB,sCAAsC,CACpD,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GACxC,IAAI,EAAE,CAMR;AAED,wBAAgB,uCAAuC,CACrD,aAAa,EAAE,eAAe,EAC9B,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,GACxC,QAAQ,EAAE,CAMZ;AAwQD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,GAAE,OAAe,GAC3B,MAAM,CAqBR;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,eAAe,GAChC,QAAQ,GAAG,SAAS,CAEtB"}
@@ -38,6 +38,10 @@ function getRecurringBashEventPossibleDatesTimesInternal(startDateTime, recurren
38
38
  default:
39
39
  console.error(`Unsupported frequency: ${recurrence.frequency}`);
40
40
  }
41
+ // If repeatCount is specified, limit to that many occurrences
42
+ if (recurrence.repeatCount && recurrence.repeatCount > 0) {
43
+ recurrenceDates = recurrenceDates.slice(0, recurrence.repeatCount);
44
+ }
41
45
  return recurrenceDates
42
46
  .map((date) => date.toFormat(LUXON_DATETIME_FORMAT_ISO_LIKE))
43
47
  .sort()
@@ -61,7 +65,10 @@ function getDailyRecurringDates(beginningDateTime, recurrence) {
61
65
  throw new Error(`Cannot do a daily recurrence if the frequency isn't daily.`);
62
66
  }
63
67
  const interval = recurrence.interval ?? 1;
64
- const recurrenceEnds = dateTimeFromDate(recurrence.ends).endOf("day");
68
+ // Default to 1 year from now if no end date specified
69
+ const recurrenceEnds = recurrence.ends
70
+ ? dateTimeFromDate(recurrence.ends).endOf("day")
71
+ : DateTime.local().plus({ years: 1 }).endOf("day");
65
72
  const numberOfDays = recurrenceEnds.diff(beginningDateTime, "days").days;
66
73
  const numberOfOccurrences = Math.ceil(numberOfDays / interval);
67
74
  const recurrenceDates = [];
@@ -84,7 +91,9 @@ function getWeeklyRecurringDates(beginningDateTime, recurrence) {
84
91
  throw new Error(`Cannot do a weekly recurrence if the frequency isn't weekly.`);
85
92
  }
86
93
  const interval = recurrence.interval ?? 1;
87
- const recurrenceEnds = dateTimeFromDate(recurrence.ends).endOf("day"); // Get the end of the day to not miss the last day
94
+ const recurrenceEnds = recurrence.ends
95
+ ? dateTimeFromDate(recurrence.ends).endOf("day")
96
+ : DateTime.local().plus({ years: 1 }).endOf("day");
88
97
  const numberOfDays = recurrenceEnds.diff(beginningDateTime, "days").days;
89
98
  const numberOfWeeks = Math.ceil(numberOfDays / 7 / interval); // Get the number of days and then round up so that we include the ending date
90
99
  const recurrenceDates = [];
@@ -133,7 +142,9 @@ function getMonthlyRecurringDates(beginningDateTime, recurrence) {
133
142
  throw new Error(`Cannot do a monthly recurrence if the frequency isn't monthly.`);
134
143
  }
135
144
  const interval = recurrence.interval ?? 1;
136
- const recurrenceEnds = dateTimeFromDate(recurrence.ends).endOf("day");
145
+ const recurrenceEnds = recurrence.ends
146
+ ? dateTimeFromDate(recurrence.ends).endOf("day")
147
+ : DateTime.local().plus({ years: 1 }).endOf("day");
137
148
  const dayOfMonth = recurrence.repeatOnDayOfMonth ?? beginningDateTime.day;
138
149
  const recurrenceDates = [];
139
150
  let currentDate = beginningDateTime.set({ day: Math.min(dayOfMonth, beginningDateTime.daysInMonth || 31) });
@@ -166,7 +177,9 @@ function getYearlyRecurringDates(beginningDateTime, recurrence) {
166
177
  throw new Error(`Cannot do a yearly recurrence if the frequency isn't yearly.`);
167
178
  }
168
179
  const interval = recurrence.interval ?? 1;
169
- const recurrenceEnds = dateTimeFromDate(recurrence.ends).endOf("day");
180
+ const recurrenceEnds = recurrence.ends
181
+ ? dateTimeFromDate(recurrence.ends).endOf("day")
182
+ : DateTime.local().plus({ years: 20 }).endOf("day");
170
183
  // Use the repeatYearlyDate if provided, otherwise use the beginning date
171
184
  const baseDate = recurrence.repeatYearlyDate
172
185
  ? dateTimeFromDate(recurrence.repeatYearlyDate)
@@ -1 +1 @@
1
- {"version":3,"file":"recurrenceUtils.js","sourceRoot":"","sources":["../../src/utils/recurrenceUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,8BAA8B,GAC/B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,UAAU,sCAAsC,CACpD,aAA8B,EAC9B,UAAyC;IAEzC,OAAO,+CAA+C,CACpD,aAAa,EACb,UAAU,EACV,IAAI,CACK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,aAA8B,EAC9B,UAAyC;IAEzC,OAAO,+CAA+C,CACpD,aAAa,EACb,UAAU,EACV,KAAK,CACQ,CAAC;AAClB,CAAC;AAED,SAAS,+CAA+C,CACtD,aAA8B,EAC9B,UAAyC,EACzC,MAAe;IAEf,IACE,CAAC,UAAU;QACX,CAAC,UAAU,CAAC,SAAS;QACrB,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,KAAK,EACjD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,eAAe,GAAe,EAAE,CAAC;IAErC,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,kBAAkB,GACtB,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,OAAO;QACnD,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,MAAM,CAAC;IAErD,MAAM,aAAa,GAAG,kBAAkB;QACtC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClF,CAAC,CAAC,iCAAiC,CAAC,aAAa,CAAa,CAAC;IAEjE,QAAQ,UAAU,CAAC,SAAS,EAAE,CAAC;QAC7B,KAAK,kBAAkB,CAAC,KAAK;YAC3B,eAAe,GAAG,sBAAsB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACpE,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,eAAe,GAAG,uBAAuB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM;QACR,KAAK,kBAAkB,CAAC,OAAO;YAC7B,eAAe,GAAG,wBAAwB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,eAAe,GAAG,uBAAuB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,0BAA0B,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,eAAe;SACnB,GAAG,CAAC,CAAC,IAAc,EAAU,EAAE,CAC9B,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAC9C;SACA,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,OAAe,EAAmB,EAAE;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CACnC,OAAO,EACP,8BAA8B,CAC/B,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,iBAA2B,EAC3B,UAAsB;IAEtB,IAAI,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;IAE/D,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,IAAI,WAAW,GAAG,iBAAiB,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9E,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,iBAA2B,EAC3B,UAAsB;IAEtB,IAAI,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,kDAAkD;IACzH,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,8EAA8E;IAE5I,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,IAAI,wBAAwB,GAAG,iBAAiB,CAAC;IAEjD,mDAAmD;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,GAAoB,IAAI,CAAC;QACpC,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;YACpD,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC;gBACrC,OAAO,EAAE,YAA8B;aACxC,CAAC,CAAC;YACH,IAAI,OAAO,GAAG,cAAc,IAAI,OAAO,GAAG,iBAAiB,EAAE,CAAC;gBAC5D,SAAS,CAAC,oEAAoE;YAChF,CAAC;YACD,6EAA6E;YAC7E,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YACtD,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,wBAAwB,GAAG,0BAA0B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,IAAc,EACd,QAAgB;IAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,CAAC,CAAC,CAAC,UAAU;IAC1B,CAAC;IACD,qGAAqG;IACrG,MAAM,iBAAiB,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAC/B,iBAA2B,EAC3B,UAAsB;IAEtB,IAAI,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,UAAU,CAAC,kBAAkB,IAAI,iBAAiB,CAAC,GAAG,CAAC;IAE1E,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,IAAI,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAE5G,6EAA6E;IAC7E,IAAI,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,WAAW,IAAI,cAAc,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;QACzD,UAAU,EAAE,CAAC;QAEb,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACrC,2CAA2C;YAC3C,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YACrE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,4DAA4D;QAC5D,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,iBAA2B,EAC3B,UAAsB;IAEtB,IAAI,UAAU,CAAC,SAAS,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEtE,yEAAyE;IACzE,MAAM,QAAQ,GAAG,UAAU,CAAC,gBAAgB;QAC1C,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAC/C,CAAC,CAAC,iBAAiB,CAAC;IAEtB,MAAM,eAAe,GAAe,EAAE,CAAC;IACvC,IAAI,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,MAAM,EAAE,iBAAiB,CAAC,MAAM;QAChC,MAAM,EAAE,iBAAiB,CAAC,MAAM;KACjC,CAAC,CAAC;IAEH,oEAAoE;IACpE,IAAI,WAAW,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,WAAW,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QACD,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAwB,EACxB,QAA4B,EAC5B,cAAuB,KAAK;IAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,GAAW,IAAI,CAAC;IAC1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,kBAAkB,CAAC,KAAK;YAC3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACnC,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,MAAM;QACR,KAAK,kBAAkB,CAAC,OAAO;YAC7B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YACvC,MAAM;QACR,KAAK,kBAAkB,CAAC,MAAM;YAC5B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACrC,MAAM;IACV,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,gBAAiC;IAEjC,OAAO,yCAAyC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,yCAAyC,CAChD,gBAAiC,EACjC,SAAkB;IAElB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,4CAA4C;IAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,eAAe,CACtC,eAAe,CAAC,QAAQ,EAAE,EAC1B,gBAAgB,CACjB,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,OAAO,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"recurrenceUtils.js","sourceRoot":"","sources":["../../src/utils/recurrenceUtils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bash-app/bash-common",
3
- "version": "30.113.0",
3
+ "version": "30.115.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",
@@ -26,7 +26,7 @@
26
26
  "@types/qrcode": "^1.5.5",
27
27
  "lodash-es": "^4.17.21",
28
28
  "mixpanel-browser": "^2.65.0",
29
- "npm": "^10.5.0",
29
+ "npm": "^11.7.0",
30
30
  "qrcode": "^1.5.3",
31
31
  "slugify": "^1.6.6"
32
32
  },
@@ -44,10 +44,10 @@
44
44
  "@types/mixpanel-browser": "^2.60.0",
45
45
  "@types/node": "^20.11.1",
46
46
  "@types/react": "^18.3.2",
47
- "@types/shelljs": "^0.8.15",
47
+ "@types/shelljs": "^0.10.0",
48
48
  "jest": "^29.7.0",
49
- "shelljs": "^0.8.5",
50
- "stripe": "^16.12.0",
49
+ "shelljs": "^0.10.0",
50
+ "stripe": "^20.1.2",
51
51
  "ts-jest": "^29.1.1",
52
52
  "ts-node": "^10.9.1",
53
53
  "tslib": "^2.6.2",