@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,190 +1,159 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
28
2
 
29
- // src/modules/Order/utils/virtualSettlement.ts
30
- var virtualSettlement_exports = {};
31
- __export(virtualSettlement_exports, {
32
- OrderSettlementConflictError: () => OrderSettlementConflictError,
33
- VirtualCurrencyAssetNotFoundError: () => VirtualCurrencyAssetNotFoundError,
34
- VirtualCurrencyBalanceError: () => VirtualCurrencyBalanceError,
35
- applyTempOrderSettlementState: () => applyTempOrderSettlementState,
36
- buildCurrencyDisplaySnapshot: () => buildCurrencyDisplaySnapshot,
37
- getSelectedSettlementSnapshot: () => getSelectedSettlementSnapshot,
38
- getSettlementKey: () => getSettlementKey,
39
- getTempOrderSettlementKey: () => getTempOrderSettlementKey,
40
- getTempOrderSettlementSnapshot: () => getTempOrderSettlementSnapshot,
41
- isVirtualSettlementDisplayOrder: () => isVirtualSettlementDisplayOrder,
42
- isVirtualSettlementOrder: () => isVirtualSettlementOrder,
43
- isVirtualSettlementProduct: () => isVirtualSettlementProduct,
44
- normalizeVirtualSettlementOrderProduct: () => normalizeVirtualSettlementOrderProduct,
45
- normalizeVirtualSettlementProducts: () => normalizeVirtualSettlementProducts,
46
- releaseTempOrderSettlementState: () => releaseTempOrderSettlementState,
47
- resolveSettlementDisplayValue: () => resolveSettlementDisplayValue
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
48
5
  });
49
- module.exports = __toCommonJS(virtualSettlement_exports);
50
- var import_decimal = __toESM(require("decimal.js"));
51
- var import_lodash_es = require("lodash-es");
6
+ exports.VirtualCurrencyBalanceError = exports.VirtualCurrencyAssetNotFoundError = exports.OrderSettlementConflictError = void 0;
7
+ exports.applyTempOrderSettlementState = applyTempOrderSettlementState;
8
+ exports.buildCurrencyDisplaySnapshot = buildCurrencyDisplaySnapshot;
9
+ exports.getSelectedSettlementSnapshot = getSelectedSettlementSnapshot;
10
+ exports.getSettlementKey = getSettlementKey;
11
+ exports.getTempOrderSettlementKey = getTempOrderSettlementKey;
12
+ exports.getTempOrderSettlementSnapshot = getTempOrderSettlementSnapshot;
13
+ exports.isVirtualSettlementDisplayOrder = isVirtualSettlementDisplayOrder;
14
+ exports.isVirtualSettlementOrder = isVirtualSettlementOrder;
15
+ exports.isVirtualSettlementProduct = isVirtualSettlementProduct;
16
+ exports.normalizeVirtualSettlementOrderProduct = normalizeVirtualSettlementOrderProduct;
17
+ exports.normalizeVirtualSettlementProducts = normalizeVirtualSettlementProducts;
18
+ exports.releaseTempOrderSettlementState = releaseTempOrderSettlementState;
19
+ exports.resolveSettlementDisplayValue = resolveSettlementDisplayValue;
20
+ var _decimal = _interopRequireDefault(require("decimal.js"));
21
+ var _lodashEs = require("lodash-es");
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
52
23
  function buildCurrencyDisplaySnapshot(snapshot) {
53
- return (0, import_lodash_es.cloneDeep)({
54
- amount_format: String(snapshot.amount_format || "").trim(),
24
+ return (0, _lodashEs.cloneDeep)({
25
+ amount_format: String(snapshot.amount_format || '').trim(),
55
26
  symbol: snapshot.symbol ?? {},
56
27
  unit_label: snapshot.unit_label ?? {}
57
28
  });
58
29
  }
59
30
  function resolveSettlementDisplayValue(value) {
60
- if (value === void 0 || value === null)
61
- return "";
62
- if (typeof value === "string" || typeof value === "number") {
31
+ if (value === undefined || value === null) return '';
32
+ if (typeof value === 'string' || typeof value === 'number') {
63
33
  return String(value);
64
34
  }
65
35
  const localized = value;
66
- return String(
67
- localized.auto ?? localized.default ?? localized.original ?? localized.en ?? localized["zh-CN"] ?? localized["zh-HK"] ?? ""
68
- );
36
+ return String(localized.auto ?? localized.default ?? localized.original ?? localized.en ?? localized['zh-CN'] ?? localized['zh-HK'] ?? '');
69
37
  }
70
- var OrderSettlementConflictError = class extends Error {
38
+ class OrderSettlementConflictError extends Error {
39
+ code = 'ORDER_SETTLEMENT_CONFLICT';
71
40
  constructor(currentSettlementKey, incomingSettlementKey) {
72
- super("Different currencies and WalletPass units cannot be mixed in one cart.");
41
+ super('Different currencies and WalletPass units cannot be mixed in one cart.');
73
42
  this.currentSettlementKey = currentSettlementKey;
74
43
  this.incomingSettlementKey = incomingSettlementKey;
75
- this.code = "ORDER_SETTLEMENT_CONFLICT";
76
- this.name = "OrderSettlementConflictError";
44
+ this.name = 'OrderSettlementConflictError';
77
45
  }
78
- };
79
- var VirtualCurrencyAssetNotFoundError = class extends Error {
46
+ }
47
+ exports.OrderSettlementConflictError = OrderSettlementConflictError;
48
+ class VirtualCurrencyAssetNotFoundError extends Error {
49
+ code = 'VIRTUAL_CURRENCY_ASSET_NOT_FOUND';
80
50
  constructor(currencyProductId) {
81
- super("No matching virtual currency card is available.");
51
+ super('No matching virtual currency card is available.');
82
52
  this.currencyProductId = currencyProductId;
83
- this.code = "VIRTUAL_CURRENCY_ASSET_NOT_FOUND";
84
- this.name = "VirtualCurrencyAssetNotFoundError";
53
+ this.name = 'VirtualCurrencyAssetNotFoundError';
85
54
  }
86
- };
87
- var VirtualCurrencyBalanceError = class extends Error {
55
+ }
56
+ exports.VirtualCurrencyAssetNotFoundError = VirtualCurrencyAssetNotFoundError;
57
+ class VirtualCurrencyBalanceError extends Error {
58
+ code = 'VIRTUAL_CURRENCY_BALANCE_INSUFFICIENT';
88
59
  constructor(balance, requiredAmount) {
89
- super("Insufficient virtual currency balance.");
60
+ super('Insufficient virtual currency balance.');
90
61
  this.balance = balance;
91
62
  this.requiredAmount = requiredAmount;
92
- this.code = "VIRTUAL_CURRENCY_BALANCE_INSUFFICIENT";
93
- this.name = "VirtualCurrencyBalanceError";
63
+ this.name = 'VirtualCurrencyBalanceError';
94
64
  }
95
- };
65
+ }
66
+ exports.VirtualCurrencyBalanceError = VirtualCurrencyBalanceError;
96
67
  function getSelectedSettlementSnapshot(product) {
97
- var _a;
98
- const snapshot = (_a = product == null ? void 0 : product.metadata) == null ? void 0 : _a.selected_settlement_snapshot;
99
- if (!snapshot || typeof snapshot !== "object")
100
- return null;
101
- if (snapshot.settlement_type !== "legal_currency" && snapshot.settlement_type !== "virtual_currency") {
68
+ const snapshot = product?.metadata?.selected_settlement_snapshot;
69
+ if (!snapshot || typeof snapshot !== 'object') return null;
70
+ if (snapshot.settlement_type !== 'legal_currency' && snapshot.settlement_type !== 'virtual_currency') {
102
71
  return null;
103
72
  }
104
73
  return snapshot;
105
74
  }
106
75
  function getTempOrderSettlementSnapshot(tempOrder) {
107
- var _a, _b;
108
- const snapshot = (_a = tempOrder == null ? void 0 : tempOrder.metadata) == null ? void 0 : _a.cart_settlement_snapshot;
109
- if (snapshot && typeof snapshot === "object" && (snapshot.settlement_type === "legal_currency" || snapshot.settlement_type === "virtual_currency")) {
76
+ const snapshot = tempOrder?.metadata?.cart_settlement_snapshot;
77
+ if (snapshot && typeof snapshot === 'object' && (snapshot.settlement_type === 'legal_currency' || snapshot.settlement_type === 'virtual_currency')) {
110
78
  return snapshot;
111
79
  }
112
- return getSelectedSettlementSnapshot((_b = tempOrder == null ? void 0 : tempOrder.products) == null ? void 0 : _b[0]);
80
+ return getSelectedSettlementSnapshot(tempOrder?.products?.[0]);
113
81
  }
114
82
  function isVirtualSettlementProduct(product) {
115
- var _a;
116
- return ((_a = getSelectedSettlementSnapshot(product)) == null ? void 0 : _a.settlement_type) === "virtual_currency";
83
+ return getSelectedSettlementSnapshot(product)?.settlement_type === 'virtual_currency';
117
84
  }
118
85
  function getSettlementKey(snapshot) {
119
- if (!snapshot)
120
- return null;
121
- if (snapshot.settlement_type === "legal_currency")
122
- return "legal_currency";
86
+ if (!snapshot) return null;
87
+ if (snapshot.settlement_type === 'legal_currency') return 'legal_currency';
123
88
  const currencyProductId = Number(snapshot.currency_product_id);
124
89
  return Number.isFinite(currencyProductId) && currencyProductId > 0 ? `virtual_currency:${currencyProductId}` : null;
125
90
  }
126
91
  function getTempOrderSettlementKey(tempOrder) {
127
- var _a, _b;
128
- if (!((_a = tempOrder == null ? void 0 : tempOrder.products) == null ? void 0 : _a.length))
129
- return null;
130
- const storedKey = (_b = tempOrder.metadata) == null ? void 0 : _b.cart_settlement_key;
131
- if (typeof storedKey === "string" && storedKey)
132
- return storedKey;
133
- return getSettlementKey(getTempOrderSettlementSnapshot(tempOrder)) || "legal_currency";
92
+ if (!tempOrder?.products?.length) return null;
93
+ const storedKey = tempOrder.metadata?.cart_settlement_key;
94
+ if (typeof storedKey === 'string' && storedKey) return storedKey;
95
+ return getSettlementKey(getTempOrderSettlementSnapshot(tempOrder)) || 'legal_currency';
134
96
  }
135
97
  function isVirtualSettlementOrder(tempOrder) {
136
- var _a;
137
- return ((_a = getTempOrderSettlementKey(tempOrder)) == null ? void 0 : _a.startsWith("virtual_currency:")) === true;
98
+ return getTempOrderSettlementKey(tempOrder)?.startsWith('virtual_currency:') === true;
138
99
  }
100
+
101
+ /**
102
+ * 详情展示识别同时支持已提交订单的 currency_settlement_config。
103
+ * cart_settlement_* 是交易过程内部状态,服务端详情不保证返回。
104
+ */
139
105
  function isVirtualSettlementDisplayOrder(tempOrder) {
140
- var _a, _b;
141
- return ((_b = (_a = tempOrder == null ? void 0 : tempOrder.metadata) == null ? void 0 : _a.currency_settlement_config) == null ? void 0 : _b.settlement_type) === "virtual_currency" || isVirtualSettlementOrder(tempOrder);
106
+ return tempOrder?.metadata?.currency_settlement_config?.settlement_type === 'virtual_currency' || isVirtualSettlementOrder(tempOrder);
142
107
  }
143
108
  function getLegalCurrencySnapshot(tempOrder) {
144
- var _a;
145
- const snapshot = (_a = tempOrder.metadata) == null ? void 0 : _a.legal_currency_snapshot;
146
- if (!snapshot || typeof snapshot !== "object")
147
- return null;
109
+ const snapshot = tempOrder.metadata?.legal_currency_snapshot;
110
+ if (!snapshot || typeof snapshot !== 'object') return null;
148
111
  return {
149
- currency_code: String(snapshot.currency_code || ""),
150
- currency_symbol: String(snapshot.currency_symbol || ""),
151
- currency_format: String(snapshot.currency_format || "symbol_first")
112
+ currency_code: String(snapshot.currency_code || ''),
113
+ currency_symbol: String(snapshot.currency_symbol || ''),
114
+ currency_format: String(snapshot.currency_format || 'symbol_first')
152
115
  };
153
116
  }
154
117
  function captureLegalCurrencySnapshot(tempOrder) {
155
118
  tempOrder.metadata = tempOrder.metadata || {};
156
- if (getLegalCurrencySnapshot(tempOrder))
157
- return;
119
+ if (getLegalCurrencySnapshot(tempOrder)) return;
158
120
  tempOrder.metadata.legal_currency_snapshot = {
159
- currency_code: String(tempOrder.currency_code || ""),
160
- currency_symbol: String(tempOrder.currency_symbol || ""),
161
- currency_format: String(tempOrder.currency_format || "symbol_first")
121
+ currency_code: String(tempOrder.currency_code || ''),
122
+ currency_symbol: String(tempOrder.currency_symbol || ''),
123
+ currency_format: String(tempOrder.currency_format || 'symbol_first')
162
124
  };
163
125
  }
126
+
127
+ /**
128
+ * 将购物车锁定的结算单位提升为订单级状态。
129
+ * 商品行快照同时负责价格归一化和生成订单级多语言展示快照;
130
+ * 交易中的即时展示仍统一读取 tempOrder.currency_*。
131
+ */
164
132
  function applyTempOrderSettlementState(tempOrder, snapshot) {
165
- var _a;
166
133
  tempOrder.metadata = tempOrder.metadata || {};
167
- const settlementKey = getSettlementKey(snapshot) || "legal_currency";
168
- if (snapshot.settlement_type === "virtual_currency") {
134
+ const settlementKey = getSettlementKey(snapshot) || 'legal_currency';
135
+ if (snapshot.settlement_type === 'virtual_currency') {
169
136
  captureLegalCurrencySnapshot(tempOrder);
170
137
  const currencyProductId = Number(snapshot.currency_product_id);
171
- const existingDisplaySnapshot = (_a = tempOrder.metadata.currency_settlement_config) == null ? void 0 : _a.currency_display_snapshot;
138
+ const existingDisplaySnapshot = tempOrder.metadata.currency_settlement_config?.currency_display_snapshot;
172
139
  tempOrder.metadata.currency_settlement_config = {
173
- settlement_type: "virtual_currency",
140
+ settlement_type: 'virtual_currency',
174
141
  settlement_ids: Number.isFinite(currencyProductId) && currencyProductId > 0 ? [currencyProductId] : [],
175
- currency_display_snapshot: existingDisplaySnapshot ? (0, import_lodash_es.cloneDeep)(existingDisplaySnapshot) : buildCurrencyDisplaySnapshot(snapshot)
142
+ currency_display_snapshot: existingDisplaySnapshot ? (0, _lodashEs.cloneDeep)(existingDisplaySnapshot) : buildCurrencyDisplaySnapshot(snapshot)
176
143
  };
177
144
  } else {
178
145
  delete tempOrder.metadata.currency_settlement_config;
179
146
  }
180
147
  tempOrder.metadata.cart_settlement_key = settlementKey;
181
- tempOrder.metadata.cart_settlement_snapshot = { ...snapshot };
148
+ tempOrder.metadata.cart_settlement_snapshot = {
149
+ ...snapshot
150
+ };
182
151
  tempOrder.currency_code = resolveSettlementDisplayValue(snapshot.unit_label) || tempOrder.currency_code;
183
152
  tempOrder.currency_symbol = resolveSettlementDisplayValue(snapshot.symbol) || tempOrder.currency_symbol;
184
- tempOrder.currency_format = String(
185
- snapshot.amount_format || tempOrder.currency_format || "symbol_first"
186
- );
153
+ tempOrder.currency_format = String(snapshot.amount_format || tempOrder.currency_format || 'symbol_first');
187
154
  }
155
+
156
+ /** 清空购物车结算锁,并恢复进入虚拟币结算前的店铺法币。 */
188
157
  function releaseTempOrderSettlementState(tempOrder) {
189
158
  tempOrder.metadata = tempOrder.metadata || {};
190
159
  const legalCurrency = getLegalCurrencySnapshot(tempOrder);
@@ -199,23 +168,21 @@ function releaseTempOrderSettlementState(tempOrder) {
199
168
  }
200
169
  function toMoney(value) {
201
170
  try {
202
- return new import_decimal.default(String(value ?? 0)).toDecimalPlaces(2).toFixed(2);
171
+ return new _decimal.default(String(value ?? 0)).toDecimalPlaces(2).toFixed(2);
203
172
  } catch {
204
- return "0.00";
173
+ return '0.00';
205
174
  }
206
175
  }
207
176
  function zeroOptions(options) {
208
- if (!Array.isArray(options))
209
- return [];
210
- return options.map((option) => ({
177
+ if (!Array.isArray(options)) return [];
178
+ return options.map(option => ({
211
179
  ...option,
212
180
  add_price: 0
213
181
  }));
214
182
  }
215
183
  function zeroBundles(bundles) {
216
- if (!Array.isArray(bundles))
217
- return [];
218
- return bundles.map((bundle) => ({
184
+ if (!Array.isArray(bundles)) return [];
185
+ return bundles.map(bundle => ({
219
186
  ...bundle,
220
187
  price: 0,
221
188
  custom_price: 0,
@@ -227,37 +194,40 @@ function zeroBundles(bundles) {
227
194
  is_charge_tax: 0,
228
195
  discount_list: [],
229
196
  relation_surcharge_ids: [],
230
- option: zeroOptions(bundle == null ? void 0 : bundle.option),
197
+ option: zeroOptions(bundle?.option),
231
198
  metadata: {
232
- ...(bundle == null ? void 0 : bundle.metadata) || {},
233
- surcharge_fee: "0.00",
199
+ ...(bundle?.metadata || {}),
200
+ surcharge_fee: '0.00',
234
201
  relation_surcharge_ids: [],
235
- product_discount_difference: "",
236
- tax_fee_rounding_remainder: "0.00",
237
- surcharge_rounding_remainder: "0.00"
202
+ product_discount_difference: '',
203
+ tax_fee_rounding_remainder: '0.00',
204
+ surcharge_rounding_remainder: '0.00'
238
205
  }
239
206
  }));
240
207
  }
208
+
209
+ /**
210
+ * 将已选择虚拟币的订单商品行固化为最终价语义。
211
+ * 函数幂等,可安全用于加车、合并、hydrate 和提交前兜底。
212
+ */
241
213
  function normalizeVirtualSettlementOrderProduct(product) {
242
- var _a;
243
214
  const snapshot = getSelectedSettlementSnapshot(product);
244
- if ((snapshot == null ? void 0 : snapshot.settlement_type) !== "virtual_currency")
245
- return product;
215
+ if (snapshot?.settlement_type !== 'virtual_currency') return product;
246
216
  const virtualPrice = toMoney(snapshot.price);
247
217
  const metadata = {
248
- ...product.metadata || {},
218
+ ...(product.metadata || {}),
249
219
  source_product_price: virtualPrice,
250
220
  main_product_original_price: virtualPrice,
251
221
  main_product_selling_price: virtualPrice,
252
222
  main_product_attached_bundle_selling_price: virtualPrice,
253
223
  main_product_attached_bundle_payment_price: virtualPrice,
254
- main_product_attached_bundle_surcharge_fee: "0.00",
255
- main_product_attached_bundle_tax_fee: "0.00",
256
- surcharge_rounding_remainder: "0.00",
257
- tax_fee_rounding_remainder: "0.00",
224
+ main_product_attached_bundle_surcharge_fee: '0.00',
225
+ main_product_attached_bundle_tax_fee: '0.00',
226
+ surcharge_rounding_remainder: '0.00',
227
+ tax_fee_rounding_remainder: '0.00',
258
228
  relation_surcharge_ids: [],
259
- average_discount_amount_rate: "1",
260
- product_discount_difference: "",
229
+ average_discount_amount_rate: '1',
230
+ product_discount_difference: '',
261
231
  discountable_flag: 0,
262
232
  price_schema_version: 2,
263
233
  selected_settlement_snapshot: {
@@ -272,42 +242,21 @@ function normalizeVirtualSettlementOrderProduct(product) {
272
242
  payment_price: virtualPrice,
273
243
  discount_list: [],
274
244
  is_charge_tax: 0,
275
- tax_fee: "0.00",
245
+ tax_fee: '0.00',
276
246
  original_tax_fee: 0,
277
247
  tax_fee_rounding_remainder: 0,
278
248
  original_tax_fee_rounding_remainder: 0,
279
- surcharge_fee: "0.00",
249
+ surcharge_fee: '0.00',
280
250
  surcharge_rounding_remainder: 0,
281
251
  relation_surcharge_ids: [],
282
252
  product_sku: {
283
- ...product.product_sku || {},
284
- option: zeroOptions((_a = product.product_sku) == null ? void 0 : _a.option)
253
+ ...(product.product_sku || {}),
254
+ option: zeroOptions(product.product_sku?.option)
285
255
  },
286
256
  product_bundle: zeroBundles(product.product_bundle),
287
257
  metadata
288
258
  };
289
259
  }
290
260
  function normalizeVirtualSettlementProducts(products) {
291
- return (products || []).map(
292
- (product) => normalizeVirtualSettlementOrderProduct(product)
293
- );
294
- }
295
- // Annotate the CommonJS export names for ESM import in node:
296
- 0 && (module.exports = {
297
- OrderSettlementConflictError,
298
- VirtualCurrencyAssetNotFoundError,
299
- VirtualCurrencyBalanceError,
300
- applyTempOrderSettlementState,
301
- buildCurrencyDisplaySnapshot,
302
- getSelectedSettlementSnapshot,
303
- getSettlementKey,
304
- getTempOrderSettlementKey,
305
- getTempOrderSettlementSnapshot,
306
- isVirtualSettlementDisplayOrder,
307
- isVirtualSettlementOrder,
308
- isVirtualSettlementProduct,
309
- normalizeVirtualSettlementOrderProduct,
310
- normalizeVirtualSettlementProducts,
311
- releaseTempOrderSettlementState,
312
- resolveSettlementDisplayValue
313
- });
261
+ return (products || []).map(product => normalizeVirtualSettlementOrderProduct(product));
262
+ }