@pisell/pisellos 0.10.15 → 0.10.16

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