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