@pisell/pisellos 2.3.74 → 2.3.76

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 (283) 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.d.ts +1 -1
  11. package/dist/modules/Order/index.js +75 -91
  12. package/dist/modules/Order/types.d.ts +3 -1
  13. package/dist/modules/Payment/index.js +97 -162
  14. package/dist/modules/Rules/index.js +1 -4
  15. package/dist/modules/Schedule/index.js +0 -1
  16. package/dist/modules/Schedule/utils.js +0 -1
  17. package/dist/modules/Step/index.js +0 -1
  18. package/dist/plugins/request.js +1 -4
  19. package/dist/plugins/window.js +2 -6
  20. package/dist/server/index.js +97 -129
  21. package/dist/server/modules/menu/index.js +32 -41
  22. package/dist/server/modules/order/index.js +2 -4
  23. package/dist/server/modules/products/index.js +24 -42
  24. package/dist/server/modules/quotation/index.js +29 -38
  25. package/dist/server/modules/resource/index.js +3 -4
  26. package/dist/server/modules/schedule/index.js +27 -35
  27. package/dist/server/utils/product.js +0 -1
  28. package/dist/solution/BaseSales/index.js +100 -72
  29. package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  30. package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
  31. package/dist/solution/BookingByStep/index.js +7 -59
  32. package/dist/solution/BookingByStep/utils/capacity.js +1 -11
  33. package/dist/solution/BookingByStep/utils/resources.js +1 -3
  34. package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
  35. package/dist/solution/BookingTicket/index.js +0 -2
  36. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
  37. package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
  38. package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
  39. package/dist/solution/BuyTickets/index.js +9 -12
  40. package/dist/solution/Checkout/index.js +177 -252
  41. package/dist/solution/Checkout/utils/index.js +4 -16
  42. package/dist/solution/RegisterAndLogin/index.js +30 -76
  43. package/dist/solution/ScanOrder/index.js +50 -60
  44. package/dist/solution/ShopDiscount/index.js +2 -7
  45. package/dist/solution/VenueBooking/index.js +45 -55
  46. package/dist/utils/task.js +15 -18
  47. package/dist/utils/watch.js +0 -1
  48. package/lib/apis/picoding.js +2 -0
  49. package/lib/core/index.js +134 -134
  50. package/lib/effects/index.js +46 -57
  51. package/lib/index.js +82 -49
  52. package/lib/model/index.js +14 -21
  53. package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
  54. package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
  55. package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
  56. package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
  57. package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
  58. package/lib/model/strategy/adapter/index.js +100 -64
  59. package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
  60. package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
  61. package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
  62. package/lib/model/strategy/adapter/itemRule/index.js +83 -57
  63. package/lib/model/strategy/adapter/itemRule/type.js +97 -36
  64. package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
  65. package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
  66. package/lib/model/strategy/adapter/promotion/examples.js +222 -234
  67. package/lib/model/strategy/adapter/promotion/index.js +1 -0
  68. package/lib/model/strategy/adapter/promotion/type.js +243 -36
  69. package/lib/model/strategy/adapter/type.js +4 -16
  70. package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
  71. package/lib/model/strategy/adapter/walletPass/example.js +217 -190
  72. package/lib/model/strategy/adapter/walletPass/index.js +75 -51
  73. package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
  74. package/lib/model/strategy/adapter/walletPass/type.js +4 -16
  75. package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
  76. package/lib/model/strategy/engine.js +270 -168
  77. package/lib/model/strategy/index.js +49 -34
  78. package/lib/model/strategy/strategy-example.js +243 -239
  79. package/lib/model/strategy/type.js +100 -40
  80. package/lib/modules/Account/index.js +39 -53
  81. package/lib/modules/Account/types.js +20 -33
  82. package/lib/modules/AccountList/index.js +116 -154
  83. package/lib/modules/AccountList/types.js +30 -31
  84. package/lib/modules/AccountList/utils.js +18 -30
  85. package/lib/modules/BaseModule.js +23 -42
  86. package/lib/modules/BookingContext/index.js +158 -136
  87. package/lib/modules/BookingContext/types.js +46 -32
  88. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
  89. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
  90. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
  91. package/lib/modules/BookingContext/utils/flexible.js +38 -55
  92. package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
  93. package/lib/modules/BookingContext/utils/index.js +124 -41
  94. package/lib/modules/BookingContext/utils/noResource.js +58 -70
  95. package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
  96. package/lib/modules/BookingContext/utils/productExtend.js +202 -155
  97. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  98. package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
  99. package/lib/modules/BookingContext/utils/resources.js +209 -167
  100. package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
  101. package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
  102. package/lib/modules/Cart/index.js +170 -124
  103. package/lib/modules/Cart/types.js +46 -51
  104. package/lib/modules/Cart/utils/cartAccount.js +40 -39
  105. package/lib/modules/Cart/utils/cartDate.js +56 -61
  106. package/lib/modules/Cart/utils/cartDiscount.js +28 -33
  107. package/lib/modules/Cart/utils/cartNote.js +27 -32
  108. package/lib/modules/Cart/utils/cartProduct.js +321 -251
  109. package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
  110. package/lib/modules/Cart/utils/cartResource.js +70 -78
  111. package/lib/modules/Cart/utils/changePrice.js +22 -50
  112. package/lib/modules/Cart/utils/index.js +106 -48
  113. package/lib/modules/Customer/constants.js +13 -34
  114. package/lib/modules/Customer/index.js +235 -172
  115. package/lib/modules/Customer/types.js +38 -35
  116. package/lib/modules/Date/index.js +116 -115
  117. package/lib/modules/Date/types.js +16 -28
  118. package/lib/modules/Date/utils.js +174 -123
  119. package/lib/modules/Discount/index.js +122 -127
  120. package/lib/modules/Discount/types.js +9 -31
  121. package/lib/modules/Guests/index.js +30 -56
  122. package/lib/modules/Guests/types.js +23 -33
  123. package/lib/modules/Holder/index.js +209 -189
  124. package/lib/modules/Holder/types.js +4 -16
  125. package/lib/modules/Holder/utils.js +20 -49
  126. package/lib/modules/OpenData/index.js +70 -76
  127. package/lib/modules/OpenData/types.js +4 -16
  128. package/lib/modules/OpenData/utils.js +44 -78
  129. package/lib/modules/Order/index.d.ts +1 -1
  130. package/lib/modules/Order/index.js +1733 -2121
  131. package/lib/modules/Order/payment-utils.js +77 -120
  132. package/lib/modules/Order/types.d.ts +3 -1
  133. package/lib/modules/Order/types.js +88 -35
  134. package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
  135. package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
  136. package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
  137. package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
  138. package/lib/modules/Order/utils.js +814 -647
  139. package/lib/modules/Payment/cash.js +20 -33
  140. package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
  141. package/lib/modules/Payment/eftpos.js +16 -30
  142. package/lib/modules/Payment/index.js +532 -399
  143. package/lib/modules/Payment/mx51.js +1 -0
  144. package/lib/modules/Payment/types.js +230 -108
  145. package/lib/modules/Payment/utils.js +52 -51
  146. package/lib/modules/Payment/walletpass.js +485 -660
  147. package/lib/modules/Product/index.js +51 -46
  148. package/lib/modules/Product/types.js +4 -16
  149. package/lib/modules/Product/utils.js +32 -33
  150. package/lib/modules/ProductList/index.js +113 -123
  151. package/lib/modules/ProductList/types.js +9 -31
  152. package/lib/modules/Quotation/index.js +81 -118
  153. package/lib/modules/Quotation/types.js +4 -16
  154. package/lib/modules/Resource/index.js +27 -59
  155. package/lib/modules/Resource/types.js +22 -32
  156. package/lib/modules/Resource/utils.js +30 -38
  157. package/lib/modules/ResourcePlanner/index.js +25 -23
  158. package/lib/modules/ResourcePlanner/localClock.js +54 -119
  159. package/lib/modules/ResourcePlanner/planner.js +589 -770
  160. package/lib/modules/ResourcePlanner/types.js +10 -29
  161. package/lib/modules/Rules/index.js +1218 -959
  162. package/lib/modules/Rules/types.js +17 -40
  163. package/lib/modules/SalesSummary/index.js +85 -90
  164. package/lib/modules/SalesSummary/types.js +4 -16
  165. package/lib/modules/SalesSummary/utils.js +355 -430
  166. package/lib/modules/ScanOrderLogger/index.js +59 -79
  167. package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
  168. package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
  169. package/lib/modules/ScanOrderLogger/types.js +4 -16
  170. package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
  171. package/lib/modules/Schedule/index.js +100 -114
  172. package/lib/modules/Schedule/type.js +4 -16
  173. package/lib/modules/Schedule/types.js +4 -16
  174. package/lib/modules/Schedule/utils.js +433 -291
  175. package/lib/modules/Step/index.js +40 -52
  176. package/lib/modules/Step/tyeps.js +4 -16
  177. package/lib/modules/Summary/index.js +66 -71
  178. package/lib/modules/Summary/types.js +4 -16
  179. package/lib/modules/Summary/utils.js +773 -418
  180. package/lib/modules/SurchargeList/index.js +46 -60
  181. package/lib/modules/SurchargeList/types.js +4 -16
  182. package/lib/modules/index.js +245 -63
  183. package/lib/plugins/app.js +4 -16
  184. package/lib/plugins/index.js +36 -25
  185. package/lib/plugins/request.js +137 -126
  186. package/lib/plugins/shopStore.js +4 -16
  187. package/lib/plugins/user.js +4 -16
  188. package/lib/plugins/window.js +171 -179
  189. package/lib/server/index.js +3050 -2665
  190. package/lib/server/modules/floor-plan/index.js +118 -134
  191. package/lib/server/modules/floor-plan/types.js +15 -30
  192. package/lib/server/modules/index.js +106 -68
  193. package/lib/server/modules/menu/index.js +142 -122
  194. package/lib/server/modules/menu/types.js +18 -31
  195. package/lib/server/modules/order/index.js +784 -1002
  196. package/lib/server/modules/order/types.js +122 -33
  197. package/lib/server/modules/order/utils/filterBookings.js +219 -194
  198. package/lib/server/modules/order/utils/filterOrders.js +118 -92
  199. package/lib/server/modules/payment/index.js +59 -83
  200. package/lib/server/modules/payment/types.js +4 -16
  201. package/lib/server/modules/products/index.js +583 -471
  202. package/lib/server/modules/products/types.js +44 -34
  203. package/lib/server/modules/quotation/index.js +137 -172
  204. package/lib/server/modules/quotation/types.js +21 -31
  205. package/lib/server/modules/resource/index.js +220 -186
  206. package/lib/server/modules/resource/types.js +42 -33
  207. package/lib/server/modules/schedule/index.js +135 -123
  208. package/lib/server/modules/schedule/types.js +14 -21
  209. package/lib/server/modules/schedule/utils.js +334 -163
  210. package/lib/server/types.js +4 -16
  211. package/lib/server/utils/index.js +25 -23
  212. package/lib/server/utils/product.js +196 -139
  213. package/lib/server/utils/schedule.js +34 -41
  214. package/lib/server/utils/small-ticket.js +479 -456
  215. package/lib/server/utils/time.js +40 -49
  216. package/lib/solution/BaseSales/index.js +1220 -1412
  217. package/lib/solution/BaseSales/types.js +42 -38
  218. package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
  219. package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
  220. package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
  221. package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
  222. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
  223. package/lib/solution/BaseSales/utils.js +158 -143
  224. package/lib/solution/BookingByStep/index.js +1527 -1340
  225. package/lib/solution/BookingByStep/types.js +40 -99
  226. package/lib/solution/BookingByStep/utils/capacity.js +192 -160
  227. package/lib/solution/BookingByStep/utils/products.js +42 -52
  228. package/lib/solution/BookingByStep/utils/resources.js +527 -330
  229. package/lib/solution/BookingByStep/utils/stock.js +65 -44
  230. package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
  231. package/lib/solution/BookingTicket/index.js +607 -522
  232. package/lib/solution/BookingTicket/types.js +99 -77
  233. package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
  234. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
  235. package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
  236. package/lib/solution/BookingTicket/utils/cartView.js +114 -99
  237. package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
  238. package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
  239. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
  240. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
  241. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
  242. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
  243. package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
  244. package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
  245. package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
  246. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
  247. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
  248. package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
  249. package/lib/solution/BuyTickets/index.js +67 -70
  250. package/lib/solution/BuyTickets/types.js +22 -38
  251. package/lib/solution/Checkout/index.js +1451 -1158
  252. package/lib/solution/Checkout/types.js +91 -61
  253. package/lib/solution/Checkout/utils/index.js +228 -156
  254. package/lib/solution/PlaceOrder/index.js +55 -0
  255. package/lib/solution/RegisterAndLogin/config.js +493 -460
  256. package/lib/solution/RegisterAndLogin/index.js +633 -630
  257. package/lib/solution/RegisterAndLogin/types.js +189 -76
  258. package/lib/solution/RegisterAndLogin/utils.js +183 -125
  259. package/lib/solution/Sales/index.js +328 -324
  260. package/lib/solution/Sales/types.js +27 -33
  261. package/lib/solution/ScanOrder/index.js +832 -864
  262. package/lib/solution/ScanOrder/types.js +33 -34
  263. package/lib/solution/ScanOrder/utils.js +409 -374
  264. package/lib/solution/ShopDiscount/index.js +226 -232
  265. package/lib/solution/ShopDiscount/types.js +15 -37
  266. package/lib/solution/ShopDiscount/utils.js +300 -172
  267. package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
  268. package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
  269. package/lib/solution/UnifiedBookingSales/types.js +10 -32
  270. package/lib/solution/VenueBooking/index.js +811 -879
  271. package/lib/solution/VenueBooking/types.js +19 -39
  272. package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
  273. package/lib/solution/VenueBooking/utils/resource.js +31 -54
  274. package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
  275. package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
  276. package/lib/solution/VenueBooking/utils.js +130 -67
  277. package/lib/solution/index.js +124 -41
  278. package/lib/store/createStore.js +32 -29
  279. package/lib/types/index.js +4 -16
  280. package/lib/utils/payment-number.js +26 -46
  281. package/lib/utils/task.js +36 -36
  282. package/lib/utils/watch.js +81 -47
  283. 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
+ }({});