@pisell/pisellos 2.3.74 → 2.3.75

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 (276) hide show
  1. package/dist/core/index.js +6 -10
  2. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  3. package/dist/model/strategy/adapter/walletPass/example.js +3 -26
  4. package/dist/model/strategy/strategy-example.js +5 -19
  5. package/dist/modules/Cart/index.js +0 -3
  6. package/dist/modules/Cart/utils/cartProduct.js +0 -1
  7. package/dist/modules/Date/index.js +1 -5
  8. package/dist/modules/Discount/index.js +2 -4
  9. package/dist/modules/OpenData/index.js +0 -2
  10. package/dist/modules/Order/index.js +36 -64
  11. package/dist/modules/Payment/index.js +97 -162
  12. package/dist/modules/Rules/index.js +1 -4
  13. package/dist/modules/Schedule/index.js +0 -1
  14. package/dist/modules/Schedule/utils.js +0 -1
  15. package/dist/modules/Step/index.js +0 -1
  16. package/dist/plugins/request.js +1 -4
  17. package/dist/plugins/window.js +2 -6
  18. package/dist/server/index.js +97 -129
  19. package/dist/server/modules/menu/index.js +32 -41
  20. package/dist/server/modules/order/index.js +2 -4
  21. package/dist/server/modules/products/index.js +24 -42
  22. package/dist/server/modules/quotation/index.js +29 -38
  23. package/dist/server/modules/resource/index.js +3 -4
  24. package/dist/server/modules/schedule/index.js +27 -35
  25. package/dist/server/utils/product.js +0 -1
  26. package/dist/solution/BaseSales/index.js +38 -41
  27. package/dist/solution/BookingByStep/index.js +7 -59
  28. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  29. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  30. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  31. package/dist/solution/BookingTicket/index.js +0 -2
  32. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  33. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  34. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  35. package/dist/solution/BuyTickets/index.js +9 -12
  36. package/dist/solution/Checkout/index.js +177 -252
  37. package/dist/solution/Checkout/utils/index.js +4 -16
  38. package/dist/solution/RegisterAndLogin/index.js +30 -76
  39. package/dist/solution/ScanOrder/index.js +50 -60
  40. package/dist/solution/ShopDiscount/index.js +2 -7
  41. package/dist/solution/VenueBooking/index.js +45 -55
  42. package/dist/utils/task.js +15 -18
  43. package/dist/utils/watch.js +0 -1
  44. package/lib/apis/picoding.js +2 -0
  45. package/lib/core/index.js +134 -134
  46. package/lib/effects/index.js +46 -57
  47. package/lib/index.js +82 -49
  48. package/lib/model/index.js +14 -21
  49. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  50. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  51. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  52. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  53. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  54. package/lib/model/strategy/adapter/index.js +100 -64
  55. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  56. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  57. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  58. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  59. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  60. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  61. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  62. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  63. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  64. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  65. package/lib/model/strategy/adapter/type.js +4 -16
  66. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  67. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  68. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  69. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  70. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  71. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  72. package/lib/model/strategy/engine.js +270 -168
  73. package/lib/model/strategy/index.js +49 -34
  74. package/lib/model/strategy/strategy-example.js +243 -239
  75. package/lib/model/strategy/type.js +100 -40
  76. package/lib/modules/Account/index.js +39 -53
  77. package/lib/modules/Account/types.js +20 -33
  78. package/lib/modules/AccountList/index.js +116 -154
  79. package/lib/modules/AccountList/types.js +30 -31
  80. package/lib/modules/AccountList/utils.js +18 -30
  81. package/lib/modules/BaseModule.js +23 -42
  82. package/lib/modules/BookingContext/index.js +158 -136
  83. package/lib/modules/BookingContext/types.js +46 -32
  84. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  85. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  86. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  87. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  88. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  89. package/lib/modules/BookingContext/utils/index.js +124 -41
  90. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  91. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  92. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  93. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  94. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  95. package/lib/modules/BookingContext/utils/resources.js +209 -167
  96. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  97. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  98. package/lib/modules/Cart/index.js +170 -124
  99. package/lib/modules/Cart/types.js +46 -51
  100. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  101. package/lib/modules/Cart/utils/cartDate.js +56 -61
  102. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  103. package/lib/modules/Cart/utils/cartNote.js +27 -32
  104. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  105. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  106. package/lib/modules/Cart/utils/cartResource.js +70 -78
  107. package/lib/modules/Cart/utils/changePrice.js +22 -50
  108. package/lib/modules/Cart/utils/index.js +106 -48
  109. package/lib/modules/Customer/constants.js +13 -34
  110. package/lib/modules/Customer/index.js +235 -172
  111. package/lib/modules/Customer/types.js +38 -35
  112. package/lib/modules/Date/index.js +116 -115
  113. package/lib/modules/Date/types.js +16 -28
  114. package/lib/modules/Date/utils.js +174 -123
  115. package/lib/modules/Discount/index.js +122 -127
  116. package/lib/modules/Discount/types.js +9 -31
  117. package/lib/modules/Guests/index.js +30 -56
  118. package/lib/modules/Guests/types.js +23 -33
  119. package/lib/modules/Holder/index.js +209 -189
  120. package/lib/modules/Holder/types.js +4 -16
  121. package/lib/modules/Holder/utils.js +20 -49
  122. package/lib/modules/OpenData/index.js +70 -76
  123. package/lib/modules/OpenData/types.js +4 -16
  124. package/lib/modules/OpenData/utils.js +44 -78
  125. package/lib/modules/Order/index.js +1713 -2118
  126. package/lib/modules/Order/payment-utils.js +77 -120
  127. package/lib/modules/Order/types.js +88 -35
  128. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  129. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  130. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  131. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  132. package/lib/modules/Order/utils.js +814 -647
  133. package/lib/modules/Payment/cash.js +20 -33
  134. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  135. package/lib/modules/Payment/eftpos.js +16 -30
  136. package/lib/modules/Payment/index.js +532 -399
  137. package/lib/modules/Payment/mx51.js +1 -0
  138. package/lib/modules/Payment/types.js +230 -108
  139. package/lib/modules/Payment/utils.js +52 -51
  140. package/lib/modules/Payment/walletpass.js +485 -660
  141. package/lib/modules/Product/index.js +51 -46
  142. package/lib/modules/Product/types.js +4 -16
  143. package/lib/modules/Product/utils.js +32 -33
  144. package/lib/modules/ProductList/index.js +113 -123
  145. package/lib/modules/ProductList/types.js +9 -31
  146. package/lib/modules/Quotation/index.js +81 -118
  147. package/lib/modules/Quotation/types.js +4 -16
  148. package/lib/modules/Resource/index.js +27 -59
  149. package/lib/modules/Resource/types.js +22 -32
  150. package/lib/modules/Resource/utils.js +30 -38
  151. package/lib/modules/ResourcePlanner/index.js +25 -23
  152. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  153. package/lib/modules/ResourcePlanner/planner.js +589 -770
  154. package/lib/modules/ResourcePlanner/types.js +10 -29
  155. package/lib/modules/Rules/index.js +1218 -959
  156. package/lib/modules/Rules/types.js +17 -40
  157. package/lib/modules/SalesSummary/index.js +85 -90
  158. package/lib/modules/SalesSummary/types.js +4 -16
  159. package/lib/modules/SalesSummary/utils.js +355 -430
  160. package/lib/modules/ScanOrderLogger/index.js +59 -79
  161. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  162. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  163. package/lib/modules/ScanOrderLogger/types.js +4 -16
  164. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  165. package/lib/modules/Schedule/index.js +100 -114
  166. package/lib/modules/Schedule/type.js +4 -16
  167. package/lib/modules/Schedule/types.js +4 -16
  168. package/lib/modules/Schedule/utils.js +433 -291
  169. package/lib/modules/Step/index.js +40 -52
  170. package/lib/modules/Step/tyeps.js +4 -16
  171. package/lib/modules/Summary/index.js +66 -71
  172. package/lib/modules/Summary/types.js +4 -16
  173. package/lib/modules/Summary/utils.js +773 -418
  174. package/lib/modules/SurchargeList/index.js +46 -60
  175. package/lib/modules/SurchargeList/types.js +4 -16
  176. package/lib/modules/index.js +245 -63
  177. package/lib/plugins/app.js +4 -16
  178. package/lib/plugins/index.js +36 -25
  179. package/lib/plugins/request.js +137 -126
  180. package/lib/plugins/shopStore.js +4 -16
  181. package/lib/plugins/user.js +4 -16
  182. package/lib/plugins/window.js +171 -179
  183. package/lib/server/index.js +3050 -2665
  184. package/lib/server/modules/floor-plan/index.js +118 -134
  185. package/lib/server/modules/floor-plan/types.js +15 -30
  186. package/lib/server/modules/index.js +106 -68
  187. package/lib/server/modules/menu/index.js +142 -122
  188. package/lib/server/modules/menu/types.js +18 -31
  189. package/lib/server/modules/order/index.js +784 -1002
  190. package/lib/server/modules/order/types.js +122 -33
  191. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  192. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  193. package/lib/server/modules/payment/index.js +59 -83
  194. package/lib/server/modules/payment/types.js +4 -16
  195. package/lib/server/modules/products/index.js +583 -471
  196. package/lib/server/modules/products/types.js +44 -34
  197. package/lib/server/modules/quotation/index.js +137 -172
  198. package/lib/server/modules/quotation/types.js +21 -31
  199. package/lib/server/modules/resource/index.js +220 -186
  200. package/lib/server/modules/resource/types.js +42 -33
  201. package/lib/server/modules/schedule/index.js +135 -123
  202. package/lib/server/modules/schedule/types.js +14 -21
  203. package/lib/server/modules/schedule/utils.js +334 -163
  204. package/lib/server/types.js +4 -16
  205. package/lib/server/utils/index.js +25 -23
  206. package/lib/server/utils/product.js +196 -139
  207. package/lib/server/utils/schedule.js +34 -41
  208. package/lib/server/utils/small-ticket.js +479 -456
  209. package/lib/server/utils/time.js +40 -49
  210. package/lib/solution/BaseSales/index.js +1186 -1410
  211. package/lib/solution/BaseSales/types.js +42 -38
  212. package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
  213. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  214. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  215. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  216. package/lib/solution/BaseSales/utils.js +158 -143
  217. package/lib/solution/BookingByStep/index.js +1527 -1340
  218. package/lib/solution/BookingByStep/types.js +40 -99
  219. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  220. package/lib/solution/BookingByStep/utils/products.js +42 -52
  221. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  222. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  223. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  224. package/lib/solution/BookingTicket/index.js +607 -522
  225. package/lib/solution/BookingTicket/types.js +99 -77
  226. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  227. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  228. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  229. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  230. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  231. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  232. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  233. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  234. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  235. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  236. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  237. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  238. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  239. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  240. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  241. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  242. package/lib/solution/BuyTickets/index.js +67 -70
  243. package/lib/solution/BuyTickets/types.js +22 -38
  244. package/lib/solution/Checkout/index.js +1451 -1158
  245. package/lib/solution/Checkout/types.js +91 -61
  246. package/lib/solution/Checkout/utils/index.js +228 -156
  247. package/lib/solution/PlaceOrder/index.js +55 -0
  248. package/lib/solution/RegisterAndLogin/config.js +493 -460
  249. package/lib/solution/RegisterAndLogin/index.js +633 -630
  250. package/lib/solution/RegisterAndLogin/types.js +189 -76
  251. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  252. package/lib/solution/Sales/index.js +328 -324
  253. package/lib/solution/Sales/types.js +27 -33
  254. package/lib/solution/ScanOrder/index.js +832 -864
  255. package/lib/solution/ScanOrder/types.js +33 -34
  256. package/lib/solution/ScanOrder/utils.js +409 -374
  257. package/lib/solution/ShopDiscount/index.js +226 -232
  258. package/lib/solution/ShopDiscount/types.js +15 -37
  259. package/lib/solution/ShopDiscount/utils.js +300 -172
  260. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  261. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  262. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  263. package/lib/solution/VenueBooking/index.js +811 -879
  264. package/lib/solution/VenueBooking/types.js +19 -39
  265. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  266. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  267. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  268. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  269. package/lib/solution/VenueBooking/utils.js +130 -67
  270. package/lib/solution/index.js +124 -41
  271. package/lib/store/createStore.js +32 -29
  272. package/lib/types/index.js +4 -16
  273. package/lib/utils/payment-number.js +26 -46
  274. package/lib/utils/task.js +36 -36
  275. package/lib/utils/watch.js +81 -47
  276. package/package.json +2 -1
@@ -1,51 +1,30 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/solution/UnifiedBookingSales/remoteOccupancyCache.ts
20
- var remoteOccupancyCache_exports = {};
21
- __export(remoteOccupancyCache_exports, {
22
- AvailabilityRemoteOccupancyCache: () => AvailabilityRemoteOccupancyCache
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
23
5
  });
24
- module.exports = __toCommonJS(remoteOccupancyCache_exports);
25
- var import_lodash_es = require("lodash-es");
26
- var import_localClock = require("../../modules/ResourcePlanner/localClock");
6
+ exports.AvailabilityRemoteOccupancyCache = void 0;
7
+ var _lodashEs = require("lodash-es");
8
+ var _localClock = require("../../modules/ResourcePlanner/localClock");
27
9
  function uniqueIds(values) {
28
- const result = /* @__PURE__ */ new Map();
29
- values.forEach((value) => {
30
- if (value === void 0 || value === null || value === "")
31
- return;
10
+ const result = new Map();
11
+ values.forEach(value => {
12
+ if (value === undefined || value === null || value === '') return;
32
13
  result.set(String(value), value);
33
14
  });
34
15
  return Array.from(result.values());
35
16
  }
36
17
  function buildDateList(dateRange) {
37
- if (!(dateRange == null ? void 0 : dateRange.startDate) || !(dateRange == null ? void 0 : dateRange.endDate))
38
- return [];
18
+ if (!dateRange?.startDate || !dateRange?.endDate) return [];
39
19
  try {
40
- const startOrdinal = (0, import_localClock.dateOrdinalFromLocalDate)(dateRange.startDate);
41
- const endOrdinal = (0, import_localClock.dateOrdinalFromLocalDate)(dateRange.endDate);
42
- if (endOrdinal < startOrdinal)
43
- return [];
20
+ const startOrdinal = (0, _localClock.dateOrdinalFromLocalDate)(dateRange.startDate);
21
+ const endOrdinal = (0, _localClock.dateOrdinalFromLocalDate)(dateRange.endDate);
22
+ if (endOrdinal < startOrdinal) return [];
44
23
  const dates = [];
45
- let cursor = (0, import_localClock.localDateToScalarStart)(dateRange.startDate);
24
+ let cursor = (0, _localClock.localDateToScalarStart)(dateRange.startDate);
46
25
  for (let ordinal = startOrdinal; ordinal <= endOrdinal; ordinal += 1) {
47
- dates.push((0, import_localClock.formatLocalDate)(cursor));
48
- cursor = (0, import_localClock.addLocalCalendarDays)(cursor, 1);
26
+ dates.push((0, _localClock.formatLocalDate)(cursor));
27
+ cursor = (0, _localClock.addLocalCalendarDays)(cursor, 1);
49
28
  }
50
29
  return dates;
51
30
  } catch {
@@ -54,8 +33,7 @@ function buildDateList(dateRange) {
54
33
  }
55
34
  function resolveResourceId(raw) {
56
35
  const id = raw.resourceId ?? raw.resource_id ?? raw.id;
57
- if (id === void 0 || id === null || id === "")
58
- return null;
36
+ if (id === undefined || id === null || id === '') return null;
59
37
  return id;
60
38
  }
61
39
  function getRawEventStartAt(rawEvent) {
@@ -67,53 +45,44 @@ function getRawEventEndAt(rawEvent) {
67
45
  return endAt ? String(endAt) : null;
68
46
  }
69
47
  function parseEventScalar(value) {
70
- return (0, import_localClock.localDateTimeToScalar)((0, import_localClock.parseLocalDateTime)(value));
48
+ return (0, _localClock.localDateTimeToScalar)((0, _localClock.parseLocalDateTime)(value));
71
49
  }
72
50
  function buildEventIdentity(resourceId, rawEvent) {
73
- var _a, _b;
74
51
  const scheduleEventId = rawEvent.schedule_event_id ?? rawEvent.scheduleEventId;
75
- if (scheduleEventId !== void 0 && scheduleEventId !== null && scheduleEventId !== "") {
52
+ if (scheduleEventId !== undefined && scheduleEventId !== null && scheduleEventId !== '') {
76
53
  return `scheduleEvent:${String(resourceId)}:${String(scheduleEventId)}`;
77
54
  }
78
- const bookingUid = rawEvent.booking_uid ?? rawEvent.bookingUid ?? ((_a = rawEvent.metadata) == null ? void 0 : _a.unique_identification_number);
79
- if (bookingUid !== void 0 && bookingUid !== null && bookingUid !== "") {
55
+ const bookingUid = rawEvent.booking_uid ?? rawEvent.bookingUid ?? rawEvent.metadata?.unique_identification_number;
56
+ if (bookingUid !== undefined && bookingUid !== null && bookingUid !== '') {
80
57
  return `bookingUid:${String(resourceId)}:${String(bookingUid)}`;
81
58
  }
82
- const productUid = rawEvent.product_uid ?? rawEvent.productUid ?? ((_b = rawEvent.metadata) == null ? void 0 : _b.product_uid);
83
- if (productUid !== void 0 && productUid !== null && productUid !== "") {
59
+ const productUid = rawEvent.product_uid ?? rawEvent.productUid ?? rawEvent.metadata?.product_uid;
60
+ if (productUid !== undefined && productUid !== null && productUid !== '') {
84
61
  return `productUid:${String(resourceId)}:${String(productUid)}`;
85
62
  }
86
- return [
87
- "range",
88
- String(resourceId),
89
- getRawEventStartAt(rawEvent) || "",
90
- getRawEventEndAt(rawEvent) || ""
91
- ].join(":");
63
+ return ['range', String(resourceId), getRawEventStartAt(rawEvent) || '', getRawEventEndAt(rawEvent) || ''].join(':');
92
64
  }
93
65
  function bucketEventDates(params) {
94
66
  const startAt = getRawEventStartAt(params.rawEvent);
95
67
  const endAt = getRawEventEndAt(params.rawEvent);
96
- if (!startAt || !endAt)
97
- return [];
68
+ if (!startAt || !endAt) return [];
98
69
  try {
99
70
  const startScalar = parseEventScalar(startAt);
100
71
  const endScalar = parseEventScalar(endAt);
101
- if (endScalar <= startScalar)
102
- return [];
103
- const endInclusiveScalar = endScalar - 1e3;
104
- const startDate = (0, import_localClock.formatLocalDate)(startScalar);
105
- const endDate = (0, import_localClock.formatLocalDate)(endInclusiveScalar);
106
- const startOrdinal = (0, import_localClock.dateOrdinalFromLocalDate)(startDate);
107
- const endOrdinal = (0, import_localClock.dateOrdinalFromLocalDate)(endDate);
108
- if (endOrdinal < startOrdinal)
109
- return [];
72
+ if (endScalar <= startScalar) return [];
73
+ const endInclusiveScalar = endScalar - 1000;
74
+ const startDate = (0, _localClock.formatLocalDate)(startScalar);
75
+ const endDate = (0, _localClock.formatLocalDate)(endInclusiveScalar);
76
+ const startOrdinal = (0, _localClock.dateOrdinalFromLocalDate)(startDate);
77
+ const endOrdinal = (0, _localClock.dateOrdinalFromLocalDate)(endDate);
78
+ if (endOrdinal < startOrdinal) return [];
110
79
  const dates = [];
111
80
  let cursorDate = startDate;
112
81
  for (let ordinal = startOrdinal; ordinal <= endOrdinal; ordinal += 1) {
113
82
  if (params.requestedDates.has(cursorDate)) {
114
83
  dates.push(cursorDate);
115
84
  }
116
- cursorDate = (0, import_localClock.nextDate)(cursorDate);
85
+ cursorDate = (0, _localClock.nextDate)(cursorDate);
117
86
  }
118
87
  return dates;
119
88
  } catch {
@@ -122,22 +91,21 @@ function bucketEventDates(params) {
122
91
  }
123
92
  function sortEventList(events) {
124
93
  return [...events].sort((left, right) => {
125
- const leftStart = getRawEventStartAt(left) || "";
126
- const rightStart = getRawEventStartAt(right) || "";
127
- if (leftStart !== rightStart)
128
- return leftStart.localeCompare(rightStart);
129
- const leftEnd = getRawEventEndAt(left) || "";
130
- const rightEnd = getRawEventEndAt(right) || "";
131
- if (leftEnd !== rightEnd)
132
- return leftEnd.localeCompare(rightEnd);
133
- return buildEventIdentity(left.resource_id ?? left.resourceId ?? "", left).localeCompare(buildEventIdentity(right.resource_id ?? right.resourceId ?? "", right));
94
+ const leftStart = getRawEventStartAt(left) || '';
95
+ const rightStart = getRawEventStartAt(right) || '';
96
+ if (leftStart !== rightStart) return leftStart.localeCompare(rightStart);
97
+ const leftEnd = getRawEventEndAt(left) || '';
98
+ const rightEnd = getRawEventEndAt(right) || '';
99
+ if (leftEnd !== rightEnd) return leftEnd.localeCompare(rightEnd);
100
+ return buildEventIdentity(left.resource_id ?? left.resourceId ?? '', left).localeCompare(buildEventIdentity(right.resource_id ?? right.resourceId ?? '', right));
134
101
  });
135
102
  }
136
- var AvailabilityRemoteOccupancyCache = class {
103
+ class AvailabilityRemoteOccupancyCache {
104
+ maxCells;
105
+ cells = new Map();
106
+ resourceMeta = new Map();
107
+ resourceCellCounts = new Map();
137
108
  constructor(maxCells = 4096) {
138
- this.cells = /* @__PURE__ */ new Map();
139
- this.resourceMeta = /* @__PURE__ */ new Map();
140
- this.resourceCellCounts = /* @__PURE__ */ new Map();
141
109
  this.maxCells = maxCells;
142
110
  }
143
111
  clear() {
@@ -148,30 +116,25 @@ var AvailabilityRemoteOccupancyCache = class {
148
116
  read(params) {
149
117
  const requestedResourceIds = uniqueIds(params.resourceIds);
150
118
  const requestedDates = buildDateList(params.dateRange);
151
- if (requestedResourceIds.length === 0 || requestedDates.length === 0)
152
- return [];
119
+ if (requestedResourceIds.length === 0 || requestedDates.length === 0) return [];
153
120
  const resources = [];
154
121
  for (const resourceId of requestedResourceIds) {
155
122
  const resourceKey = this.buildResourceKey(params.scopeKey, resourceId);
156
- const eventList = /* @__PURE__ */ new Map();
123
+ const eventList = new Map();
157
124
  for (const date of requestedDates) {
158
125
  const cellKey = this.buildCellKey(resourceKey, date);
159
126
  const cell = this.touchCell(cellKey);
160
- if (!cell)
161
- return null;
162
- cell.eventList.forEach((rawEvent) => {
163
- eventList.set(buildEventIdentity(resourceId, rawEvent), (0, import_lodash_es.cloneDeep)(rawEvent));
127
+ if (!cell) return null;
128
+ cell.eventList.forEach(rawEvent => {
129
+ eventList.set(buildEventIdentity(resourceId, rawEvent), (0, _lodashEs.cloneDeep)(rawEvent));
164
130
  });
165
131
  }
166
132
  const metadataEntry = this.resourceMeta.get(resourceKey);
167
- if (!metadataEntry)
168
- return null;
169
- if (metadataEntry.status === "absent")
170
- continue;
171
- if (!metadataEntry.metadata)
172
- return null;
133
+ if (!metadataEntry) return null;
134
+ if (metadataEntry.status === 'absent') continue;
135
+ if (!metadataEntry.metadata) return null;
173
136
  resources.push({
174
- ...(0, import_lodash_es.cloneDeep)(metadataEntry.metadata),
137
+ ...(0, _lodashEs.cloneDeep)(metadataEntry.metadata),
175
138
  event_list: sortEventList(Array.from(eventList.values()))
176
139
  });
177
140
  }
@@ -180,14 +143,12 @@ var AvailabilityRemoteOccupancyCache = class {
180
143
  hasCompleteCoverage(params) {
181
144
  const requestedResourceIds = uniqueIds(params.resourceIds);
182
145
  const requestedDates = buildDateList(params.dateRange);
183
- if (requestedResourceIds.length === 0 || requestedDates.length === 0)
184
- return true;
146
+ if (requestedResourceIds.length === 0 || requestedDates.length === 0) return true;
185
147
  for (const resourceId of requestedResourceIds) {
186
148
  const resourceKey = this.buildResourceKey(params.scopeKey, resourceId);
187
149
  for (const date of requestedDates) {
188
150
  const cell = this.cells.get(this.buildCellKey(resourceKey, date));
189
- if (!cell)
190
- return false;
151
+ if (!cell) return false;
191
152
  }
192
153
  }
193
154
  return true;
@@ -195,31 +156,23 @@ var AvailabilityRemoteOccupancyCache = class {
195
156
  publish(params) {
196
157
  const requestedResourceIds = uniqueIds(params.resourceIds);
197
158
  const requestedDates = buildDateList(params.dateRange);
198
- if (requestedResourceIds.length === 0 || requestedDates.length === 0)
199
- return;
159
+ if (requestedResourceIds.length === 0 || requestedDates.length === 0) return;
200
160
  const requestedDateSet = new Set(requestedDates);
201
161
  const publishedAt = Date.now();
202
- const requestedResourceKeyById = new Map(
203
- requestedResourceIds.map((resourceId) => [
204
- String(resourceId),
205
- this.buildResourceKey(params.scopeKey, resourceId)
206
- ])
207
- );
208
- const rawResourceById = /* @__PURE__ */ new Map();
209
- (params.rawResources || []).forEach((rawResource) => {
162
+ const requestedResourceKeyById = new Map(requestedResourceIds.map(resourceId => [String(resourceId), this.buildResourceKey(params.scopeKey, resourceId)]));
163
+ const rawResourceById = new Map();
164
+ (params.rawResources || []).forEach(rawResource => {
210
165
  const resourceId = resolveResourceId(rawResource);
211
166
  if (resourceId !== null && requestedResourceKeyById.has(String(resourceId))) {
212
167
  rawResourceById.set(String(resourceId), rawResource);
213
168
  }
214
169
  });
215
- requestedResourceIds.forEach((resourceId) => {
170
+ requestedResourceIds.forEach(resourceId => {
216
171
  const resourceKey = requestedResourceKeyById.get(String(resourceId));
217
- if (!resourceKey)
218
- return;
219
- if (!this.canPublishResourceRange(resourceKey, requestedDates, params.version))
220
- return;
172
+ if (!resourceKey) return;
173
+ if (!this.canPublishResourceRange(resourceKey, requestedDates, params.version)) return;
221
174
  const rawResource = rawResourceById.get(String(resourceId));
222
- const nextStatus = rawResource ? "present" : "absent";
175
+ const nextStatus = rawResource ? 'present' : 'absent';
223
176
  const currentMetadata = this.resourceMeta.get(resourceKey);
224
177
  if (currentMetadata && currentMetadata.version <= params.version && currentMetadata.status !== nextStatus) {
225
178
  this.deleteResourceCells(resourceKey);
@@ -229,32 +182,33 @@ var AvailabilityRemoteOccupancyCache = class {
229
182
  requestedDates: requestedDateSet,
230
183
  timezoneName: params.timezoneName
231
184
  });
232
- const metadata = rawResource ? (({ event_list: _eventList, ...rest }) => rest)(rawResource) : void 0;
185
+ const metadata = rawResource ? (({
186
+ event_list: _eventList,
187
+ ...rest
188
+ }) => rest)(rawResource) : undefined;
233
189
  this.writeResourceMeta(resourceKey, nextStatus, metadata, params.version);
234
- const eventsByDate = /* @__PURE__ */ new Map();
235
- requestedDates.forEach((date) => {
236
- eventsByDate.set(date, /* @__PURE__ */ new Map());
190
+ const eventsByDate = new Map();
191
+ requestedDates.forEach(date => {
192
+ eventsByDate.set(date, new Map());
237
193
  });
238
- const eventList = Array.isArray(rawResource == null ? void 0 : rawResource.event_list) ? rawResource.event_list : [];
239
- eventList.forEach((event) => {
240
- const rawEvent = (0, import_lodash_es.cloneDeep)(event);
194
+ const eventList = Array.isArray(rawResource?.event_list) ? rawResource.event_list : [];
195
+ eventList.forEach(event => {
196
+ const rawEvent = (0, _lodashEs.cloneDeep)(event);
241
197
  const identity = buildEventIdentity(resourceId, rawEvent);
242
198
  bucketEventDates({
243
199
  rawEvent,
244
200
  timezoneName: params.timezoneName,
245
201
  requestedDates: requestedDateSet
246
- }).forEach((date) => {
247
- var _a;
248
- (_a = eventsByDate.get(date)) == null ? void 0 : _a.set(identity, rawEvent);
202
+ }).forEach(date => {
203
+ eventsByDate.get(date)?.set(identity, rawEvent);
249
204
  });
250
205
  });
251
- requestedDates.forEach((date) => {
252
- var _a;
206
+ requestedDates.forEach(date => {
253
207
  this.writeCell({
254
208
  key: this.buildCellKey(resourceKey, date),
255
209
  resourceKey,
256
210
  version: params.version,
257
- eventList: sortEventList(Array.from(((_a = eventsByDate.get(date)) == null ? void 0 : _a.values()) || [])),
211
+ eventList: sortEventList(Array.from(eventsByDate.get(date)?.values() || [])),
258
212
  fetchedAt: publishedAt,
259
213
  lastAccessedAt: publishedAt
260
214
  });
@@ -269,13 +223,13 @@ var AvailabilityRemoteOccupancyCache = class {
269
223
  }
270
224
  touchCell(cellKey) {
271
225
  const entry = this.cells.get(cellKey);
272
- if (!entry)
273
- return null;
226
+ if (!entry) return null;
274
227
  entry.lastAccessedAt = Date.now();
275
228
  this.cells.delete(cellKey);
276
229
  this.cells.set(cellKey, entry);
277
230
  return entry;
278
231
  }
232
+
279
233
  /**
280
234
  * A response is one coherent resource snapshot for its requested range. If any overlapping day
281
235
  * already contains a newer response, publishing only the older response's remaining days would
@@ -283,13 +237,13 @@ var AvailabilityRemoteOccupancyCache = class {
283
237
  */
284
238
  canPublishResourceRange(resourceKey, requestedDates, version) {
285
239
  const metadata = this.resourceMeta.get(resourceKey);
286
- if (metadata && metadata.version > version)
287
- return false;
288
- return requestedDates.every((date) => {
240
+ if (metadata && metadata.version > version) return false;
241
+ return requestedDates.every(date => {
289
242
  const current = this.cells.get(this.buildCellKey(resourceKey, date));
290
243
  return !current || current.version <= version;
291
244
  });
292
245
  }
246
+
293
247
  /**
294
248
  * A day cell stores the original event range so it can be reconstructed without losing server
295
249
  * identity. When a newer adjacent-day response replaces that event, evict older neighbour cells
@@ -299,25 +253,21 @@ var AvailabilityRemoteOccupancyCache = class {
299
253
  invalidateAdjacentOverlappingCells(params) {
300
254
  const keysToDelete = [];
301
255
  this.cells.forEach((cell, cellKey) => {
302
- if (cell.resourceKey !== params.resourceKey)
303
- return;
256
+ if (cell.resourceKey !== params.resourceKey) return;
304
257
  const cellDate = cellKey.slice(cell.resourceKey.length + 1);
305
- if (params.requestedDates.has(cellDate))
306
- return;
307
- const overlapsRequestedDate = cell.eventList.some((rawEvent) => bucketEventDates({
258
+ if (params.requestedDates.has(cellDate)) return;
259
+ const overlapsRequestedDate = cell.eventList.some(rawEvent => bucketEventDates({
308
260
  rawEvent,
309
261
  timezoneName: params.timezoneName,
310
262
  requestedDates: params.requestedDates
311
263
  }).length > 0);
312
- if (overlapsRequestedDate)
313
- keysToDelete.push(cellKey);
264
+ if (overlapsRequestedDate) keysToDelete.push(cellKey);
314
265
  });
315
- keysToDelete.forEach((cellKey) => this.deleteCell(cellKey));
266
+ keysToDelete.forEach(cellKey => this.deleteCell(cellKey));
316
267
  }
317
268
  deleteCell(cellKey) {
318
269
  const entry = this.cells.get(cellKey);
319
- if (!entry)
320
- return;
270
+ if (!entry) return;
321
271
  this.cells.delete(cellKey);
322
272
  const nextCount = (this.resourceCellCounts.get(entry.resourceKey) || 1) - 1;
323
273
  if (nextCount <= 0) {
@@ -330,47 +280,37 @@ var AvailabilityRemoteOccupancyCache = class {
330
280
  deleteResourceCells(resourceKey) {
331
281
  const keysToDelete = [];
332
282
  this.cells.forEach((cell, cellKey) => {
333
- if (cell.resourceKey === resourceKey)
334
- keysToDelete.push(cellKey);
283
+ if (cell.resourceKey === resourceKey) keysToDelete.push(cellKey);
335
284
  });
336
- keysToDelete.forEach((cellKey) => this.deleteCell(cellKey));
285
+ keysToDelete.forEach(cellKey => this.deleteCell(cellKey));
337
286
  }
338
287
  writeResourceMeta(resourceKey, status, metadata, version) {
339
288
  const current = this.resourceMeta.get(resourceKey);
340
- if (current && current.version > version)
341
- return;
289
+ if (current && current.version > version) return;
342
290
  this.resourceMeta.set(resourceKey, {
343
291
  version,
344
292
  status,
345
- metadata: metadata ? (0, import_lodash_es.cloneDeep)(metadata) : void 0
293
+ metadata: metadata ? (0, _lodashEs.cloneDeep)(metadata) : undefined
346
294
  });
347
295
  }
348
296
  writeCell(entry) {
349
297
  const current = this.cells.get(entry.key);
350
- if (current && current.version > entry.version)
351
- return;
298
+ if (current && current.version > entry.version) return;
352
299
  if (!current) {
353
- this.resourceCellCounts.set(
354
- entry.resourceKey,
355
- (this.resourceCellCounts.get(entry.resourceKey) || 0) + 1
356
- );
300
+ this.resourceCellCounts.set(entry.resourceKey, (this.resourceCellCounts.get(entry.resourceKey) || 0) + 1);
357
301
  } else {
358
302
  this.cells.delete(entry.key);
359
303
  }
360
304
  this.cells.set(entry.key, {
361
305
  ...entry,
362
- eventList: (0, import_lodash_es.cloneDeep)(entry.eventList)
306
+ eventList: (0, _lodashEs.cloneDeep)(entry.eventList)
363
307
  });
364
308
  while (this.cells.size > this.maxCells) {
365
309
  const oldest = this.cells.entries().next().value;
366
- if (!oldest)
367
- break;
310
+ if (!oldest) break;
368
311
  const [oldestKey] = oldest;
369
312
  this.deleteCell(oldestKey);
370
313
  }
371
314
  }
372
- };
373
- // Annotate the CommonJS export names for ESM import in node:
374
- 0 && (module.exports = {
375
- AvailabilityRemoteOccupancyCache
376
- });
315
+ }
316
+ exports.AvailabilityRemoteOccupancyCache = AvailabilityRemoteOccupancyCache;
@@ -1,34 +1,12 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
18
2
 
19
- // src/solution/UnifiedBookingSales/types.ts
20
- var types_exports = {};
21
- __export(types_exports, {
22
- UnifiedBookingSalesHooks: () => UnifiedBookingSalesHooks
23
- });
24
- module.exports = __toCommonJS(types_exports);
25
- var UnifiedBookingSalesHooks = /* @__PURE__ */ ((UnifiedBookingSalesHooks2) => {
26
- UnifiedBookingSalesHooks2["onAvailabilityProjectionPrepared"] = "unifiedBookingSales:onAvailabilityProjectionPrepared";
27
- UnifiedBookingSalesHooks2["onAvailabilitySelectionCommitted"] = "unifiedBookingSales:onAvailabilitySelectionCommitted";
28
- UnifiedBookingSalesHooks2["onAvailabilityProjectionDiagnostic"] = "unifiedBookingSales:onAvailabilityProjectionDiagnostic";
29
- return UnifiedBookingSalesHooks2;
30
- })(UnifiedBookingSalesHooks || {});
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- UnifiedBookingSalesHooks
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
34
5
  });
6
+ exports.UnifiedBookingSalesHooks = void 0;
7
+ let UnifiedBookingSalesHooks = exports.UnifiedBookingSalesHooks = /*#__PURE__*/function (UnifiedBookingSalesHooks) {
8
+ UnifiedBookingSalesHooks["onAvailabilityProjectionPrepared"] = "unifiedBookingSales:onAvailabilityProjectionPrepared";
9
+ UnifiedBookingSalesHooks["onAvailabilitySelectionCommitted"] = "unifiedBookingSales:onAvailabilitySelectionCommitted";
10
+ UnifiedBookingSalesHooks["onAvailabilityProjectionDiagnostic"] = "unifiedBookingSales:onAvailabilityProjectionDiagnostic";
11
+ return UnifiedBookingSalesHooks;
12
+ }({});