@pisell/pisellos 2.3.73 → 2.3.75

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