@pisell/pisellos 0.0.569 → 0.10.2

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 (328) hide show
  1. package/dist/core/index.js +10 -6
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -3
  4. package/dist/model/strategy/adapter/promotion/index.js +9 -0
  5. package/dist/model/strategy/adapter/walletPass/evaluator.js +7 -5
  6. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  7. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  8. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  9. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  10. package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
  11. package/dist/model/strategy/strategy-example.js +19 -5
  12. package/dist/modules/BaseModule.d.ts +1 -1
  13. package/dist/modules/BaseModule.js +8 -10
  14. package/dist/modules/Cart/index.js +3 -0
  15. package/dist/modules/Cart/utils/cartProduct.js +1 -0
  16. package/dist/modules/Cart/utils/cartResource.js +0 -2
  17. package/dist/modules/Cart/utils/changePrice.js +9 -16
  18. package/dist/modules/Date/index.js +5 -1
  19. package/dist/modules/Discount/index.d.ts +0 -1
  20. package/dist/modules/Discount/index.js +7 -22
  21. package/dist/modules/Discount/types.d.ts +0 -1
  22. package/dist/modules/OpenData/index.js +2 -0
  23. package/dist/modules/Order/index.js +70 -40
  24. package/dist/modules/Payment/index.js +162 -97
  25. package/dist/modules/Payment/types.d.ts +4 -8
  26. package/dist/modules/Payment/walletpass.d.ts +0 -2
  27. package/dist/modules/Payment/walletpass.js +5 -4
  28. package/dist/modules/ProductList/index.d.ts +1 -1
  29. package/dist/modules/ProductList/index.js +3 -12
  30. package/dist/modules/ProductList/types.d.ts +0 -1
  31. package/dist/modules/Rules/index.js +126 -427
  32. package/dist/modules/SalesSummary/utils.js +1 -2
  33. package/dist/modules/Schedule/getDateIsInSchedule.js +0 -5
  34. package/dist/modules/Schedule/index.js +1 -0
  35. package/dist/modules/Schedule/utils.js +1 -0
  36. package/dist/modules/Step/index.js +1 -0
  37. package/dist/modules/Summary/utils.js +22 -43
  38. package/dist/plugins/request.js +4 -1
  39. package/dist/plugins/window.js +6 -2
  40. package/dist/server/index.js +129 -97
  41. package/dist/server/modules/menu/index.js +41 -32
  42. package/dist/server/modules/order/index.js +4 -2
  43. package/dist/server/modules/products/index.js +42 -24
  44. package/dist/server/modules/quotation/index.js +38 -29
  45. package/dist/server/modules/resource/index.js +4 -3
  46. package/dist/server/modules/schedule/index.js +35 -27
  47. package/dist/server/utils/product.js +1 -0
  48. package/dist/solution/BaseSales/index.js +41 -38
  49. package/dist/solution/BookingByStep/index.d.ts +1 -1
  50. package/dist/solution/BookingByStep/index.js +60 -11
  51. package/dist/solution/BookingByStep/utils/capacity.js +11 -1
  52. package/dist/solution/BookingByStep/utils/resources.js +3 -1
  53. package/dist/solution/BookingByStep/utils/timeslots.js +43 -2
  54. package/dist/solution/BookingTicket/index.d.ts +1 -1
  55. package/dist/solution/BookingTicket/index.js +2 -0
  56. package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +7 -6
  57. package/dist/solution/BookingTicket/utils/scan/handleScan.js +31 -25
  58. package/dist/solution/BookingTicket/utils/scan/index.js +10 -6
  59. package/dist/solution/BuyTickets/index.js +12 -9
  60. package/dist/solution/Checkout/index.js +252 -177
  61. package/dist/solution/Checkout/utils/index.js +16 -4
  62. package/dist/solution/RegisterAndLogin/index.js +76 -30
  63. package/dist/solution/ScanOrder/index.js +60 -50
  64. package/dist/solution/ShopDiscount/index.js +14 -15
  65. package/dist/solution/ShopDiscount/types.d.ts +4 -5
  66. package/dist/solution/ShopDiscount/utils.d.ts +0 -9
  67. package/dist/solution/ShopDiscount/utils.js +0 -9
  68. package/dist/solution/VenueBooking/index.d.ts +3 -31
  69. package/dist/solution/VenueBooking/index.js +496 -651
  70. package/dist/solution/VenueBooking/types.d.ts +1 -3
  71. package/dist/solution/VenueBooking/types.js +0 -1
  72. package/dist/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  73. package/dist/solution/VenueBooking/utils/dateSummary.js +25 -12
  74. package/dist/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  75. package/dist/solution/VenueBooking/utils/timeSlot.js +4 -9
  76. package/dist/types/index.d.ts +1 -1
  77. package/dist/utils/task.js +18 -15
  78. package/dist/utils/watch.js +1 -0
  79. package/lib/apis/picoding.js +0 -2
  80. package/lib/core/index.js +132 -130
  81. package/lib/effects/index.js +57 -46
  82. package/lib/index.d.ts +0 -1
  83. package/lib/index.js +50 -92
  84. package/lib/model/index.js +21 -14
  85. package/lib/model/strategy/adapter/dataVariant/adapter.js +50 -38
  86. package/lib/model/strategy/adapter/dataVariant/evaluator.js +236 -162
  87. package/lib/model/strategy/adapter/dataVariant/examples.js +237 -229
  88. package/lib/model/strategy/adapter/dataVariant/index.js +34 -39
  89. package/lib/model/strategy/adapter/dataVariant/type.js +28 -57
  90. package/lib/model/strategy/adapter/index.js +64 -100
  91. package/lib/model/strategy/adapter/itemRule/adapter.js +144 -156
  92. package/lib/model/strategy/adapter/itemRule/evaluator.js +48 -36
  93. package/lib/model/strategy/adapter/itemRule/examples.js +225 -295
  94. package/lib/model/strategy/adapter/itemRule/index.js +57 -83
  95. package/lib/model/strategy/adapter/itemRule/type.js +36 -97
  96. package/lib/model/strategy/adapter/promotion/adapter.js +63 -84
  97. package/lib/model/strategy/adapter/promotion/evaluator.js +231 -381
  98. package/lib/model/strategy/adapter/promotion/examples.js +159 -139
  99. package/lib/model/strategy/adapter/promotion/index.js +49 -1
  100. package/lib/model/strategy/adapter/promotion/type.js +35 -199
  101. package/lib/model/strategy/adapter/type.js +16 -4
  102. package/lib/model/strategy/adapter/walletPass/evaluator.js +152 -180
  103. package/lib/model/strategy/adapter/walletPass/example.js +190 -217
  104. package/lib/model/strategy/adapter/walletPass/index.js +51 -75
  105. package/lib/model/strategy/adapter/walletPass/locales.js +58 -36
  106. package/lib/model/strategy/adapter/walletPass/type.d.ts +0 -3
  107. package/lib/model/strategy/adapter/walletPass/type.js +16 -4
  108. package/lib/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  109. package/lib/model/strategy/adapter/walletPass/utils.js +383 -678
  110. package/lib/model/strategy/engine.js +168 -270
  111. package/lib/model/strategy/index.js +34 -49
  112. package/lib/model/strategy/strategy-example.js +239 -243
  113. package/lib/model/strategy/type.js +40 -100
  114. package/lib/modules/Account/index.js +53 -39
  115. package/lib/modules/Account/types.js +33 -20
  116. package/lib/modules/AccountList/index.js +154 -116
  117. package/lib/modules/AccountList/types.js +31 -30
  118. package/lib/modules/AccountList/utils.js +30 -18
  119. package/lib/modules/BaseModule.d.ts +1 -1
  120. package/lib/modules/BaseModule.js +46 -25
  121. package/lib/modules/BookingContext/index.js +136 -158
  122. package/lib/modules/BookingContext/types.js +32 -46
  123. package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +143 -131
  124. package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +82 -75
  125. package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +150 -170
  126. package/lib/modules/BookingContext/utils/flexible.js +55 -38
  127. package/lib/modules/BookingContext/utils/formatResourceList.js +34 -19
  128. package/lib/modules/BookingContext/utils/index.js +41 -124
  129. package/lib/modules/BookingContext/utils/noResource.js +70 -58
  130. package/lib/modules/BookingContext/utils/orderLineDisplay.js +41 -14
  131. package/lib/modules/BookingContext/utils/productExtend.js +155 -202
  132. package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
  133. package/lib/modules/BookingContext/utils/resourceSelection.js +41 -19
  134. package/lib/modules/BookingContext/utils/resources.js +167 -209
  135. package/lib/modules/BookingContext/utils/serviceTimes.js +116 -115
  136. package/lib/modules/BookingContext/utils/timeSlices.js +80 -70
  137. package/lib/modules/Cart/index.js +124 -170
  138. package/lib/modules/Cart/types.js +51 -46
  139. package/lib/modules/Cart/utils/cartAccount.js +39 -40
  140. package/lib/modules/Cart/utils/cartDate.js +61 -56
  141. package/lib/modules/Cart/utils/cartDiscount.js +33 -28
  142. package/lib/modules/Cart/utils/cartNote.js +32 -27
  143. package/lib/modules/Cart/utils/cartProduct.js +251 -321
  144. package/lib/modules/Cart/utils/cartRelationForms.js +35 -29
  145. package/lib/modules/Cart/utils/cartResource.js +78 -72
  146. package/lib/modules/Cart/utils/changePrice.js +50 -28
  147. package/lib/modules/Cart/utils/index.js +48 -106
  148. package/lib/modules/Customer/constants.js +34 -13
  149. package/lib/modules/Customer/index.js +169 -232
  150. package/lib/modules/Customer/types.js +35 -38
  151. package/lib/modules/Date/index.js +115 -116
  152. package/lib/modules/Date/types.js +28 -16
  153. package/lib/modules/Date/utils.js +123 -174
  154. package/lib/modules/Discount/index.d.ts +0 -1
  155. package/lib/modules/Discount/index.js +128 -130
  156. package/lib/modules/Discount/types.d.ts +0 -1
  157. package/lib/modules/Discount/types.js +31 -9
  158. package/lib/modules/Guests/index.js +56 -30
  159. package/lib/modules/Guests/types.js +33 -23
  160. package/lib/modules/Holder/index.js +189 -209
  161. package/lib/modules/Holder/types.js +16 -4
  162. package/lib/modules/Holder/utils.js +49 -20
  163. package/lib/modules/OpenData/index.js +76 -69
  164. package/lib/modules/OpenData/types.js +16 -4
  165. package/lib/modules/OpenData/utils.js +78 -44
  166. package/lib/modules/Order/index.js +1909 -1572
  167. package/lib/modules/Order/types.js +35 -78
  168. package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
  169. package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
  170. package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
  171. package/lib/modules/Order/utils.js +634 -799
  172. package/lib/modules/Payment/cash.js +33 -20
  173. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  174. package/lib/modules/Payment/eftpos.js +30 -16
  175. package/lib/modules/Payment/index.js +378 -518
  176. package/lib/modules/Payment/mx51.js +0 -1
  177. package/lib/modules/Payment/types.d.ts +4 -8
  178. package/lib/modules/Payment/types.js +107 -216
  179. package/lib/modules/Payment/utils.js +48 -51
  180. package/lib/modules/Payment/walletpass.d.ts +0 -2
  181. package/lib/modules/Payment/walletpass.js +211 -226
  182. package/lib/modules/Product/index.js +46 -51
  183. package/lib/modules/Product/types.js +16 -4
  184. package/lib/modules/Product/utils.js +33 -32
  185. package/lib/modules/ProductList/index.d.ts +1 -1
  186. package/lib/modules/ProductList/index.js +117 -117
  187. package/lib/modules/ProductList/types.d.ts +0 -1
  188. package/lib/modules/ProductList/types.js +31 -9
  189. package/lib/modules/Quotation/index.js +100 -66
  190. package/lib/modules/Quotation/types.js +16 -4
  191. package/lib/modules/Resource/index.js +59 -27
  192. package/lib/modules/Resource/types.js +32 -22
  193. package/lib/modules/Resource/utils.js +38 -30
  194. package/lib/modules/ResourcePlanner/index.js +61 -60
  195. package/lib/modules/ResourcePlanner/planner.js +384 -346
  196. package/lib/modules/ResourcePlanner/types.js +16 -4
  197. package/lib/modules/Rules/index.js +903 -1475
  198. package/lib/modules/Rules/types.js +40 -17
  199. package/lib/modules/SalesSummary/index.js +90 -85
  200. package/lib/modules/SalesSummary/types.js +16 -4
  201. package/lib/modules/SalesSummary/utils.js +427 -351
  202. package/lib/modules/ScanOrderLogger/index.js +79 -59
  203. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  204. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  205. package/lib/modules/ScanOrderLogger/types.js +16 -4
  206. package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
  207. package/lib/modules/Schedule/index.js +114 -100
  208. package/lib/modules/Schedule/type.js +16 -4
  209. package/lib/modules/Schedule/types.js +16 -4
  210. package/lib/modules/Schedule/utils.js +291 -433
  211. package/lib/modules/Step/index.js +52 -40
  212. package/lib/modules/Step/tyeps.js +16 -4
  213. package/lib/modules/Summary/index.js +71 -66
  214. package/lib/modules/Summary/types.js +16 -4
  215. package/lib/modules/Summary/utils.js +418 -791
  216. package/lib/modules/SurchargeList/index.js +60 -46
  217. package/lib/modules/SurchargeList/types.js +16 -4
  218. package/lib/modules/index.js +63 -245
  219. package/lib/plugins/app.js +16 -4
  220. package/lib/plugins/index.js +25 -36
  221. package/lib/plugins/request.js +126 -137
  222. package/lib/plugins/shopStore.js +16 -4
  223. package/lib/plugins/user.js +16 -4
  224. package/lib/plugins/window.js +179 -171
  225. package/lib/server/index.js +2337 -2675
  226. package/lib/server/modules/floor-plan/index.js +123 -102
  227. package/lib/server/modules/floor-plan/types.js +30 -15
  228. package/lib/server/modules/index.js +68 -106
  229. package/lib/server/modules/menu/index.js +122 -146
  230. package/lib/server/modules/menu/types.js +31 -18
  231. package/lib/server/modules/order/index.js +642 -567
  232. package/lib/server/modules/order/types.js +32 -117
  233. package/lib/server/modules/order/utils/filterBookings.js +194 -219
  234. package/lib/server/modules/order/utils/filterOrders.js +92 -118
  235. package/lib/server/modules/payment/index.js +83 -59
  236. package/lib/server/modules/payment/types.js +16 -4
  237. package/lib/server/modules/products/index.js +459 -575
  238. package/lib/server/modules/products/types.js +34 -44
  239. package/lib/server/modules/quotation/index.js +172 -137
  240. package/lib/server/modules/quotation/types.js +31 -21
  241. package/lib/server/modules/resource/index.js +184 -213
  242. package/lib/server/modules/resource/types.js +33 -42
  243. package/lib/server/modules/schedule/index.js +123 -135
  244. package/lib/server/modules/schedule/types.js +21 -14
  245. package/lib/server/modules/schedule/utils.js +163 -334
  246. package/lib/server/types.js +16 -4
  247. package/lib/server/utils/index.js +23 -25
  248. package/lib/server/utils/product.js +139 -196
  249. package/lib/server/utils/schedule.js +41 -34
  250. package/lib/server/utils/small-ticket.js +456 -478
  251. package/lib/server/utils/time.js +49 -40
  252. package/lib/solution/BaseSales/index.js +1016 -850
  253. package/lib/solution/BaseSales/types.js +37 -41
  254. package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
  255. package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
  256. package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
  257. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
  258. package/lib/solution/BaseSales/utils.js +140 -155
  259. package/lib/solution/BookingByStep/index.d.ts +1 -1
  260. package/lib/solution/BookingByStep/index.js +1340 -1530
  261. package/lib/solution/BookingByStep/types.js +99 -40
  262. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  263. package/lib/solution/BookingByStep/utils/products.js +52 -42
  264. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  265. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  266. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  267. package/lib/solution/BookingTicket/index.d.ts +1 -1
  268. package/lib/solution/BookingTicket/index.js +459 -543
  269. package/lib/solution/BookingTicket/types.js +77 -99
  270. package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
  271. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
  272. package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
  273. package/lib/solution/BookingTicket/utils/cartView.js +94 -110
  274. package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
  275. package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
  276. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
  277. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
  278. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
  279. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
  280. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
  281. package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
  282. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  283. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
  284. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
  285. package/lib/solution/BuyTickets/index.js +70 -67
  286. package/lib/solution/BuyTickets/types.js +38 -22
  287. package/lib/solution/Checkout/index.js +1158 -1451
  288. package/lib/solution/Checkout/types.js +61 -91
  289. package/lib/solution/Checkout/utils/index.js +156 -228
  290. package/lib/solution/PlaceOrder/index.js +0 -55
  291. package/lib/solution/RegisterAndLogin/config.js +460 -493
  292. package/lib/solution/RegisterAndLogin/index.js +630 -633
  293. package/lib/solution/RegisterAndLogin/types.js +76 -189
  294. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  295. package/lib/solution/Sales/index.js +320 -317
  296. package/lib/solution/Sales/types.js +33 -27
  297. package/lib/solution/ScanOrder/index.js +862 -831
  298. package/lib/solution/ScanOrder/types.js +34 -33
  299. package/lib/solution/ScanOrder/utils.js +371 -406
  300. package/lib/solution/ShopDiscount/index.js +233 -235
  301. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  302. package/lib/solution/ShopDiscount/types.js +37 -15
  303. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  304. package/lib/solution/ShopDiscount/utils.js +172 -309
  305. package/lib/solution/UnifiedBookingSales/index.js +405 -379
  306. package/lib/solution/UnifiedBookingSales/types.js +31 -12
  307. package/lib/solution/VenueBooking/index.d.ts +3 -31
  308. package/lib/solution/VenueBooking/index.js +916 -967
  309. package/lib/solution/VenueBooking/types.d.ts +1 -3
  310. package/lib/solution/VenueBooking/types.js +39 -20
  311. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  312. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  313. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  314. package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
  315. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  316. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  317. package/lib/solution/VenueBooking/utils.js +67 -130
  318. package/lib/solution/index.js +41 -124
  319. package/lib/store/createStore.js +29 -32
  320. package/lib/types/index.d.ts +1 -1
  321. package/lib/types/index.js +16 -4
  322. package/lib/utils/task.js +36 -36
  323. package/lib/utils/watch.js +47 -81
  324. package/package.json +2 -4
  325. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  326. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  327. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  328. package/lib/solution/VenueBooking/utils/smartPricing.js +0 -192
@@ -1,53 +1,38 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- StrategyEngine: true,
8
- createStrategyEngine: true,
9
- evaluate: true
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 });
10
8
  };
11
- Object.defineProperty(exports, "StrategyEngine", {
12
- enumerable: true,
13
- get: function () {
14
- return _engine.StrategyEngine;
15
- }
16
- });
17
- Object.defineProperty(exports, "createStrategyEngine", {
18
- enumerable: true,
19
- get: function () {
20
- return _engine.createStrategyEngine;
21
- }
22
- });
23
- Object.defineProperty(exports, "evaluate", {
24
- enumerable: true,
25
- get: function () {
26
- return _engine.evaluate;
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 });
27
14
  }
15
+ return to;
16
+ };
17
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/model/strategy/index.ts
21
+ var strategy_exports = {};
22
+ __export(strategy_exports, {
23
+ StrategyEngine: () => import_engine.StrategyEngine,
24
+ createStrategyEngine: () => import_engine.createStrategyEngine,
25
+ evaluate: () => import_engine.evaluate
28
26
  });
29
- var _engine = require("./engine");
30
- var _type = require("./type");
31
- Object.keys(_type).forEach(function (key) {
32
- if (key === "default" || key === "__esModule") return;
33
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
34
- if (key in exports && exports[key] === _type[key]) return;
35
- Object.defineProperty(exports, key, {
36
- enumerable: true,
37
- get: function () {
38
- return _type[key];
39
- }
40
- });
27
+ module.exports = __toCommonJS(strategy_exports);
28
+ var import_engine = require("./engine");
29
+ __reExport(strategy_exports, require("./type"), module.exports);
30
+ __reExport(strategy_exports, require("./adapter"), module.exports);
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ StrategyEngine,
34
+ createStrategyEngine,
35
+ evaluate,
36
+ ...require("./type"),
37
+ ...require("./adapter")
41
38
  });
42
- var _adapter = require("./adapter");
43
- Object.keys(_adapter).forEach(function (key) {
44
- if (key === "default" || key === "__esModule") return;
45
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
46
- if (key in exports && exports[key] === _adapter[key]) return;
47
- Object.defineProperty(exports, key, {
48
- enumerable: true,
49
- get: function () {
50
- return _adapter[key];
51
- }
52
- });
53
- });
@@ -1,188 +1,206 @@
1
- "use strict";
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);
2
18
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
19
+ // src/model/strategy/strategy-example.ts
20
+ var strategy_example_exports = {};
21
+ __export(strategy_example_exports, {
22
+ runExamples: () => runExamples
5
23
  });
6
- exports.runExamples = runExamples;
7
- var _index = require("./index");
8
- /**
9
- * 策略模型使用示例
10
- */
11
-
12
- // ============================================
13
- // 示例1: 简单的代金券(单层条件)
14
- // ============================================
15
-
16
- const voucherConfig = {
24
+ module.exports = __toCommonJS(strategy_example_exports);
25
+ var import_index = require("./index");
26
+ var voucherConfig = {
17
27
  metadata: {
18
- id: 'VOUCHER_10',
19
- name: '10元代金券',
20
- type: 'wallet_pass',
21
- calculationType: 'single'
28
+ id: "VOUCHER_10",
29
+ name: "10元代金券",
30
+ type: "wallet_pass",
31
+ calculationType: "single"
22
32
  },
23
33
  conditions: {
24
- operator: 'and',
25
- rules: [{
26
- type: 'operator',
27
- dimension: 'scope_product',
28
- field: 'productId',
29
- operator: 'in',
30
- value: [60734, 60735]
31
- }, {
32
- type: 'operator',
33
- dimension: 'scope_channel',
34
- field: 'channel',
35
- operator: 'in',
36
- value: ['pos', 'mini_program']
37
- }, {
38
- type: 'operator',
39
- dimension: 'transaction',
40
- field: 'applicableProductTotal',
41
- operator: '>=',
42
- value: 100
43
- }, {
44
- type: 'operator',
45
- dimension: 'limit_usage',
46
- field: 'perUserUsedCount',
47
- operator: '<',
48
- value: 1
49
- }],
50
- actionIds: ['deduct_10']
34
+ operator: "and",
35
+ rules: [
36
+ {
37
+ type: "operator",
38
+ dimension: "scope_product",
39
+ field: "productId",
40
+ operator: "in",
41
+ value: [60734, 60735]
42
+ },
43
+ {
44
+ type: "operator",
45
+ dimension: "scope_channel",
46
+ field: "channel",
47
+ operator: "in",
48
+ value: ["pos", "mini_program"]
49
+ },
50
+ {
51
+ type: "operator",
52
+ dimension: "transaction",
53
+ field: "applicableProductTotal",
54
+ operator: ">=",
55
+ value: 100
56
+ },
57
+ {
58
+ type: "operator",
59
+ dimension: "limit_usage",
60
+ field: "perUserUsedCount",
61
+ operator: "<",
62
+ value: 1
63
+ }
64
+ ],
65
+ actionIds: ["deduct_10"]
51
66
  },
52
- actions: [{
53
- id: 'deduct_10',
54
- type: 'DEDUCT_AMOUNT',
55
- value: 10,
56
- valueType: 'number',
57
- valueUnit: '元',
58
- target: 'applicable_products',
59
- priority: 1,
60
- config: {
61
- allowCrossProduct: true,
62
- deductTaxAndFee: true
67
+ actions: [
68
+ {
69
+ id: "deduct_10",
70
+ type: "DEDUCT_AMOUNT",
71
+ value: 10,
72
+ valueType: "number",
73
+ valueUnit: "元",
74
+ target: "applicable_products",
75
+ priority: 1,
76
+ config: {
77
+ allowCrossProduct: true,
78
+ deductTaxAndFee: true
79
+ }
63
80
  }
64
- }]
81
+ ]
65
82
  };
66
-
67
- // 运行时上下文
68
- const voucherContext = {
83
+ var voucherContext = {
69
84
  entities: {
70
85
  order: {
71
- id: 'ORDER_001',
86
+ id: "ORDER_001",
72
87
  total: 150,
73
- items: [{
74
- productId: 60734,
75
- quantity: 2,
76
- price: 75
77
- }]
88
+ items: [
89
+ { productId: 60734, quantity: 2, price: 75 }
90
+ ]
78
91
  },
79
92
  customer: {
80
- id: 'USER_001',
81
- level: 'vip'
93
+ id: "USER_001",
94
+ level: "vip"
82
95
  }
83
96
  },
84
97
  attributes: {
85
98
  productId: 60734,
86
- channel: 'pos',
99
+ channel: "pos",
87
100
  applicableProductTotal: 150,
88
101
  perUserUsedCount: 0
89
102
  },
90
103
  metadata: {
91
104
  timestamp: Date.now(),
92
- locale: 'zh-CN'
105
+ locale: "zh-CN"
93
106
  }
94
107
  };
95
-
96
- // ============================================
97
- // 示例2: 阶梯式满减(嵌套条件)
98
- // ============================================
99
-
100
- const tieredDiscountConfig = {
108
+ var tieredDiscountConfig = {
101
109
  metadata: {
102
- id: 'TIERED_DISCOUNT',
103
- name: '阶梯满减',
104
- type: 'promotion',
105
- calculationType: 'single'
110
+ id: "TIERED_DISCOUNT",
111
+ name: "阶梯满减",
112
+ type: "promotion",
113
+ calculationType: "single"
106
114
  },
107
115
  conditions: {
108
- operator: 'or',
116
+ operator: "or",
109
117
  rules: [
110
- // 档位1:100-199 减10
118
+ // 档位1:100-199 减10
119
+ {
120
+ operator: "and",
121
+ rules: [
122
+ {
123
+ type: "operator",
124
+ dimension: "transaction",
125
+ field: "orderTotal",
126
+ operator: ">=",
127
+ value: 100
128
+ },
129
+ {
130
+ type: "operator",
131
+ dimension: "transaction",
132
+ field: "orderTotal",
133
+ operator: "<",
134
+ value: 200
135
+ }
136
+ ],
137
+ actionIds: ["deduct_10"]
138
+ },
139
+ // 档位2:200-299 减25
140
+ {
141
+ operator: "and",
142
+ rules: [
143
+ {
144
+ type: "operator",
145
+ dimension: "transaction",
146
+ field: "orderTotal",
147
+ operator: ">=",
148
+ value: 200
149
+ },
150
+ {
151
+ type: "operator",
152
+ dimension: "transaction",
153
+ field: "orderTotal",
154
+ operator: "<",
155
+ value: 300
156
+ }
157
+ ],
158
+ actionIds: ["deduct_25"]
159
+ },
160
+ // 档位3:>= 300 减40
161
+ {
162
+ operator: "and",
163
+ rules: [
164
+ {
165
+ type: "operator",
166
+ dimension: "transaction",
167
+ field: "orderTotal",
168
+ operator: ">=",
169
+ value: 300
170
+ }
171
+ ],
172
+ actionIds: ["deduct_40"]
173
+ }
174
+ ],
175
+ actionIds: []
176
+ },
177
+ actions: [
111
178
  {
112
- operator: 'and',
113
- rules: [{
114
- type: 'operator',
115
- dimension: 'transaction',
116
- field: 'orderTotal',
117
- operator: '>=',
118
- value: 100
119
- }, {
120
- type: 'operator',
121
- dimension: 'transaction',
122
- field: 'orderTotal',
123
- operator: '<',
124
- value: 200
125
- }],
126
- actionIds: ['deduct_10']
179
+ id: "deduct_10",
180
+ type: "DEDUCT_AMOUNT",
181
+ value: 10,
182
+ target: "order",
183
+ priority: 1
127
184
  },
128
- // 档位2:200-299 减25
129
185
  {
130
- operator: 'and',
131
- rules: [{
132
- type: 'operator',
133
- dimension: 'transaction',
134
- field: 'orderTotal',
135
- operator: '>=',
136
- value: 200
137
- }, {
138
- type: 'operator',
139
- dimension: 'transaction',
140
- field: 'orderTotal',
141
- operator: '<',
142
- value: 300
143
- }],
144
- actionIds: ['deduct_25']
186
+ id: "deduct_25",
187
+ type: "DEDUCT_AMOUNT",
188
+ value: 25,
189
+ target: "order",
190
+ priority: 2
145
191
  },
146
- // 档位3:>= 300 减40
147
192
  {
148
- operator: 'and',
149
- rules: [{
150
- type: 'operator',
151
- dimension: 'transaction',
152
- field: 'orderTotal',
153
- operator: '>=',
154
- value: 300
155
- }],
156
- actionIds: ['deduct_40']
157
- }],
158
- actionIds: []
159
- },
160
- actions: [{
161
- id: 'deduct_10',
162
- type: 'DEDUCT_AMOUNT',
163
- value: 10,
164
- target: 'order',
165
- priority: 1
166
- }, {
167
- id: 'deduct_25',
168
- type: 'DEDUCT_AMOUNT',
169
- value: 25,
170
- target: 'order',
171
- priority: 2
172
- }, {
173
- id: 'deduct_40',
174
- type: 'DEDUCT_AMOUNT',
175
- value: 40,
176
- target: 'order',
177
- priority: 3
178
- }]
193
+ id: "deduct_40",
194
+ type: "DEDUCT_AMOUNT",
195
+ value: 40,
196
+ target: "order",
197
+ priority: 3
198
+ }
199
+ ]
179
200
  };
180
- const tieredContext = {
201
+ var tieredContext = {
181
202
  entities: {
182
- order: {
183
- id: 'ORDER_002',
184
- total: 250
185
- }
203
+ order: { id: "ORDER_002", total: 250 }
186
204
  },
187
205
  attributes: {
188
206
  orderTotal: 250
@@ -191,52 +209,44 @@ const tieredContext = {
191
209
  timestamp: Date.now()
192
210
  }
193
211
  };
194
-
195
- // ============================================
196
- // 示例3: 使用 Code 模式的条件
197
- // ============================================
198
-
199
- const codeConditionConfig = {
212
+ var codeConditionConfig = {
200
213
  metadata: {
201
- id: 'CODE_CONDITION_EXAMPLE',
202
- name: '代码条件示例',
203
- type: 'custom'
214
+ id: "CODE_CONDITION_EXAMPLE",
215
+ name: "代码条件示例",
216
+ type: "custom"
204
217
  },
205
218
  conditions: {
206
- operator: 'and',
219
+ operator: "and",
207
220
  rules: [
208
- // 使用 code 模式
209
- {
210
- type: 'code',
211
- code: 'attributes.orderTotal >= 100 && entities.customer.level === "vip"'
212
- },
213
- // 混合使用 operator 模式
214
- {
215
- type: 'operator',
216
- field: 'productCount',
217
- operator: '>=',
218
- value: 2
219
- }],
220
- actionIds: ['vip_discount']
221
+ // 使用 code 模式
222
+ {
223
+ type: "code",
224
+ code: 'attributes.orderTotal >= 100 && entities.customer.level === "vip"'
225
+ },
226
+ // 混合使用 operator 模式
227
+ {
228
+ type: "operator",
229
+ field: "productCount",
230
+ operator: ">=",
231
+ value: 2
232
+ }
233
+ ],
234
+ actionIds: ["vip_discount"]
221
235
  },
222
- actions: [{
223
- id: 'vip_discount',
224
- type: 'DISCOUNT_RATE',
225
- value: 0.85,
226
- target: 'order',
227
- priority: 1
228
- }]
236
+ actions: [
237
+ {
238
+ id: "vip_discount",
239
+ type: "DISCOUNT_RATE",
240
+ value: 0.85,
241
+ target: "order",
242
+ priority: 1
243
+ }
244
+ ]
229
245
  };
230
- const codeContext = {
246
+ var codeContext = {
231
247
  entities: {
232
- customer: {
233
- id: 'USER_002',
234
- level: 'vip'
235
- },
236
- order: {
237
- id: 'ORDER_003',
238
- total: 150
239
- }
248
+ customer: { id: "USER_002", level: "vip" },
249
+ order: { id: "ORDER_003", total: 150 }
240
250
  },
241
251
  attributes: {
242
252
  orderTotal: 150,
@@ -246,77 +256,63 @@ const codeContext = {
246
256
  timestamp: Date.now()
247
257
  }
248
258
  };
249
-
250
- // ============================================
251
- // 执行示例
252
- // ============================================
253
-
254
259
  function runExamples() {
255
- // 创建引擎实例(开启调试和追踪)
256
- const engine = (0, _index.createStrategyEngine)({
260
+ console.log("====== 策略模型使用示例 ======\n");
261
+ const engine = (0, import_index.createStrategyEngine)({
257
262
  debug: true,
258
263
  enableTrace: true
259
264
  });
260
-
261
- // 示例1: 代金券
262
-
265
+ console.log("示例1: 10元代金券");
263
266
  const result1 = engine.evaluate(voucherConfig, voucherContext);
264
-
265
- // 示例2: 阶梯满减
266
-
267
+ console.log("结果:", JSON.stringify(result1, null, 2));
268
+ console.log("\n");
269
+ console.log("示例2: 阶梯满减(订单金额250)");
267
270
  const result2 = engine.evaluate(tieredDiscountConfig, tieredContext);
268
-
269
- // 示例3: Code 模式
270
-
271
+ console.log("结果:", JSON.stringify(result2, null, 2));
272
+ console.log("\n");
273
+ console.log("示例3: Code 模式条件");
271
274
  const result3 = engine.evaluate(codeConditionConfig, codeContext);
272
-
273
- // 快速评估(不需要创建引擎实例)
274
-
275
- const result4 = (0, _index.evaluate)(voucherConfig, voucherContext);
276
-
277
- // 注册自定义运算符
278
-
279
- engine.registerOperator('divisible_by', (fieldValue, compareValue) => {
275
+ console.log("结果:", JSON.stringify(result3, null, 2));
276
+ console.log("\n");
277
+ console.log("示例4: 快速评估");
278
+ const result4 = (0, import_index.evaluate)(voucherConfig, voucherContext);
279
+ console.log("适用:", result4.applicable);
280
+ console.log("匹配动作数:", result4.matchedActions.length);
281
+ console.log("\n");
282
+ console.log("示例5: 自定义运算符");
283
+ engine.registerOperator("divisible_by", (fieldValue, compareValue) => {
280
284
  return Number(fieldValue) % Number(compareValue) === 0;
281
285
  });
282
286
  const customOperatorConfig = {
283
- metadata: {
284
- id: 'CUSTOM_OP',
285
- name: '自定义运算符',
286
- type: 'test'
287
- },
287
+ metadata: { id: "CUSTOM_OP", name: "自定义运算符", type: "test" },
288
288
  conditions: {
289
- operator: 'and',
290
- rules: [{
291
- type: 'operator',
292
- field: 'amount',
293
- operator: 'divisible_by',
294
- value: 10
295
- }],
296
- actionIds: ['bonus']
289
+ operator: "and",
290
+ rules: [
291
+ {
292
+ type: "operator",
293
+ field: "amount",
294
+ operator: "divisible_by",
295
+ value: 10
296
+ }
297
+ ],
298
+ actionIds: ["bonus"]
297
299
  },
298
- actions: [{
299
- id: 'bonus',
300
- type: 'ADD_POINTS',
301
- value: 100,
302
- target: 'customer'
303
- }]
300
+ actions: [{ id: "bonus", type: "ADD_POINTS", value: 100, target: "customer" }]
304
301
  };
305
302
  const customContext = {
306
303
  entities: {},
307
- attributes: {
308
- amount: 50
309
- },
310
- metadata: {
311
- timestamp: Date.now()
312
- }
304
+ attributes: { amount: 50 },
305
+ metadata: { timestamp: Date.now() }
313
306
  };
314
307
  const result5 = engine.evaluate(customOperatorConfig, customContext);
315
-
316
- // 调试信息
308
+ console.log("结果:", result5.applicable ? "适用" : "不适用");
309
+ console.log("匹配动作:", result5.matchedActions);
310
+ console.log("\n引擎调试信息:", engine.getDebugInfo());
317
311
  }
318
-
319
- // 运行示例(如果直接执行此文件)
320
312
  if (require.main === module) {
321
313
  runExamples();
322
- }
314
+ }
315
+ // Annotate the CommonJS export names for ESM import in node:
316
+ 0 && (module.exports = {
317
+ runExamples
318
+ });