@pisell/pisellos 0.0.569 → 0.10.1

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 (329) 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/walletPass/evaluator.js +7 -5
  5. package/dist/model/strategy/adapter/walletPass/example.js +26 -3
  6. package/dist/model/strategy/adapter/walletPass/index.js +5 -5
  7. package/dist/model/strategy/adapter/walletPass/type.d.ts +0 -3
  8. package/dist/model/strategy/adapter/walletPass/utils.d.ts +0 -26
  9. package/dist/model/strategy/adapter/walletPass/utils.js +17 -92
  10. package/dist/model/strategy/strategy-example.js +19 -5
  11. package/dist/modules/BaseModule.d.ts +1 -1
  12. package/dist/modules/BaseModule.js +8 -10
  13. package/dist/modules/Cart/index.js +3 -0
  14. package/dist/modules/Cart/utils/cartProduct.js +1 -0
  15. package/dist/modules/Cart/utils/cartResource.js +0 -2
  16. package/dist/modules/Cart/utils/changePrice.js +9 -16
  17. package/dist/modules/Date/index.js +5 -1
  18. package/dist/modules/Discount/index.d.ts +0 -1
  19. package/dist/modules/Discount/index.js +7 -22
  20. package/dist/modules/Discount/types.d.ts +0 -1
  21. package/dist/modules/OpenData/index.js +2 -0
  22. package/dist/modules/Order/index.d.ts +1 -1
  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 +0 -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.d.ts +1 -1
  167. package/lib/modules/Order/index.js +1909 -1572
  168. package/lib/modules/Order/types.js +35 -78
  169. package/lib/modules/Order/utils/bundleDiscountHydration.js +74 -41
  170. package/lib/modules/Order/utils/manualProductDiscount.js +123 -124
  171. package/lib/modules/Order/utils/orderCollectionIdentity.js +210 -148
  172. package/lib/modules/Order/utils.js +634 -799
  173. package/lib/modules/Payment/cash.js +33 -20
  174. package/lib/modules/Payment/cashRecommendationAlgorithm.js +76 -145
  175. package/lib/modules/Payment/eftpos.js +30 -16
  176. package/lib/modules/Payment/index.js +378 -518
  177. package/lib/modules/Payment/mx51.js +0 -1
  178. package/lib/modules/Payment/types.d.ts +4 -8
  179. package/lib/modules/Payment/types.js +107 -216
  180. package/lib/modules/Payment/utils.js +48 -51
  181. package/lib/modules/Payment/walletpass.d.ts +0 -2
  182. package/lib/modules/Payment/walletpass.js +211 -226
  183. package/lib/modules/Product/index.js +46 -51
  184. package/lib/modules/Product/types.js +16 -4
  185. package/lib/modules/Product/utils.js +33 -32
  186. package/lib/modules/ProductList/index.d.ts +1 -1
  187. package/lib/modules/ProductList/index.js +117 -117
  188. package/lib/modules/ProductList/types.d.ts +0 -1
  189. package/lib/modules/ProductList/types.js +31 -9
  190. package/lib/modules/Quotation/index.js +100 -66
  191. package/lib/modules/Quotation/types.js +16 -4
  192. package/lib/modules/Resource/index.js +59 -27
  193. package/lib/modules/Resource/types.js +32 -22
  194. package/lib/modules/Resource/utils.js +38 -30
  195. package/lib/modules/ResourcePlanner/index.js +61 -60
  196. package/lib/modules/ResourcePlanner/planner.js +384 -346
  197. package/lib/modules/ResourcePlanner/types.js +16 -4
  198. package/lib/modules/Rules/index.js +903 -1475
  199. package/lib/modules/Rules/types.js +40 -17
  200. package/lib/modules/SalesSummary/index.js +90 -85
  201. package/lib/modules/SalesSummary/types.js +16 -4
  202. package/lib/modules/SalesSummary/utils.js +427 -351
  203. package/lib/modules/ScanOrderLogger/index.js +79 -59
  204. package/lib/modules/ScanOrderLogger/providers/feishu.js +78 -54
  205. package/lib/modules/ScanOrderLogger/providers/grafana.js +36 -13
  206. package/lib/modules/ScanOrderLogger/types.js +16 -4
  207. package/lib/modules/Schedule/getDateIsInSchedule.js +163 -339
  208. package/lib/modules/Schedule/index.js +114 -100
  209. package/lib/modules/Schedule/type.js +16 -4
  210. package/lib/modules/Schedule/types.js +16 -4
  211. package/lib/modules/Schedule/utils.js +291 -433
  212. package/lib/modules/Step/index.js +52 -40
  213. package/lib/modules/Step/tyeps.js +16 -4
  214. package/lib/modules/Summary/index.js +71 -66
  215. package/lib/modules/Summary/types.js +16 -4
  216. package/lib/modules/Summary/utils.js +418 -791
  217. package/lib/modules/SurchargeList/index.js +60 -46
  218. package/lib/modules/SurchargeList/types.js +16 -4
  219. package/lib/modules/index.js +63 -245
  220. package/lib/plugins/app.js +16 -4
  221. package/lib/plugins/index.js +25 -36
  222. package/lib/plugins/request.js +126 -137
  223. package/lib/plugins/shopStore.js +16 -4
  224. package/lib/plugins/user.js +16 -4
  225. package/lib/plugins/window.js +179 -171
  226. package/lib/server/index.js +2337 -2675
  227. package/lib/server/modules/floor-plan/index.js +123 -102
  228. package/lib/server/modules/floor-plan/types.js +30 -15
  229. package/lib/server/modules/index.js +68 -106
  230. package/lib/server/modules/menu/index.js +122 -146
  231. package/lib/server/modules/menu/types.js +31 -18
  232. package/lib/server/modules/order/index.js +642 -567
  233. package/lib/server/modules/order/types.js +32 -117
  234. package/lib/server/modules/order/utils/filterBookings.js +194 -219
  235. package/lib/server/modules/order/utils/filterOrders.js +92 -118
  236. package/lib/server/modules/payment/index.js +83 -59
  237. package/lib/server/modules/payment/types.js +16 -4
  238. package/lib/server/modules/products/index.js +459 -575
  239. package/lib/server/modules/products/types.js +34 -44
  240. package/lib/server/modules/quotation/index.js +172 -137
  241. package/lib/server/modules/quotation/types.js +31 -21
  242. package/lib/server/modules/resource/index.js +184 -213
  243. package/lib/server/modules/resource/types.js +33 -42
  244. package/lib/server/modules/schedule/index.js +123 -135
  245. package/lib/server/modules/schedule/types.js +21 -14
  246. package/lib/server/modules/schedule/utils.js +163 -334
  247. package/lib/server/types.js +16 -4
  248. package/lib/server/utils/index.js +23 -25
  249. package/lib/server/utils/product.js +139 -196
  250. package/lib/server/utils/schedule.js +41 -34
  251. package/lib/server/utils/small-ticket.js +456 -478
  252. package/lib/server/utils/time.js +49 -40
  253. package/lib/solution/BaseSales/index.js +1016 -850
  254. package/lib/solution/BaseSales/types.js +37 -41
  255. package/lib/solution/BaseSales/utils/cartPromotion.js +460 -611
  256. package/lib/solution/BaseSales/utils/parseSalesResponse.js +105 -85
  257. package/lib/solution/BaseSales/utils/quotationPrice.js +114 -56
  258. package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +143 -102
  259. package/lib/solution/BaseSales/utils.js +140 -155
  260. package/lib/solution/BookingByStep/index.d.ts +1 -1
  261. package/lib/solution/BookingByStep/index.js +1340 -1530
  262. package/lib/solution/BookingByStep/types.js +99 -40
  263. package/lib/solution/BookingByStep/utils/capacity.js +160 -192
  264. package/lib/solution/BookingByStep/utils/products.js +52 -42
  265. package/lib/solution/BookingByStep/utils/resources.js +330 -527
  266. package/lib/solution/BookingByStep/utils/stock.js +44 -65
  267. package/lib/solution/BookingByStep/utils/timeslots.js +131 -129
  268. package/lib/solution/BookingTicket/index.d.ts +1 -1
  269. package/lib/solution/BookingTicket/index.js +459 -543
  270. package/lib/solution/BookingTicket/types.js +77 -99
  271. package/lib/solution/BookingTicket/utils/addProductDecision.js +184 -219
  272. package/lib/solution/BookingTicket/utils/addTimeAvailability.js +89 -58
  273. package/lib/solution/BookingTicket/utils/bookingStatus.js +78 -107
  274. package/lib/solution/BookingTicket/utils/cartView.js +94 -110
  275. package/lib/solution/BookingTicket/utils/exampleData.js +0 -185
  276. package/lib/solution/BookingTicket/utils/orderCustomer.js +41 -18
  277. package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +86 -219
  278. package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +93 -144
  279. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +91 -79
  280. package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +41 -54
  281. package/lib/solution/BookingTicket/utils/scan/handleScan.js +81 -84
  282. package/lib/solution/BookingTicket/utils/scan/index.js +104 -98
  283. package/lib/solution/BookingTicket/utils/scan/scanCache.js +43 -90
  284. package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +64 -52
  285. package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +58 -56
  286. package/lib/solution/BuyTickets/index.js +70 -67
  287. package/lib/solution/BuyTickets/types.js +38 -22
  288. package/lib/solution/Checkout/index.js +1158 -1451
  289. package/lib/solution/Checkout/types.js +61 -91
  290. package/lib/solution/Checkout/utils/index.js +156 -228
  291. package/lib/solution/PlaceOrder/index.js +0 -55
  292. package/lib/solution/RegisterAndLogin/config.js +460 -493
  293. package/lib/solution/RegisterAndLogin/index.js +630 -633
  294. package/lib/solution/RegisterAndLogin/types.js +76 -189
  295. package/lib/solution/RegisterAndLogin/utils.js +125 -183
  296. package/lib/solution/Sales/index.js +320 -317
  297. package/lib/solution/Sales/types.js +33 -27
  298. package/lib/solution/ScanOrder/index.js +862 -831
  299. package/lib/solution/ScanOrder/types.js +34 -33
  300. package/lib/solution/ScanOrder/utils.js +371 -406
  301. package/lib/solution/ShopDiscount/index.js +233 -235
  302. package/lib/solution/ShopDiscount/types.d.ts +4 -5
  303. package/lib/solution/ShopDiscount/types.js +37 -15
  304. package/lib/solution/ShopDiscount/utils.d.ts +0 -9
  305. package/lib/solution/ShopDiscount/utils.js +172 -309
  306. package/lib/solution/UnifiedBookingSales/index.js +405 -379
  307. package/lib/solution/UnifiedBookingSales/types.js +31 -12
  308. package/lib/solution/VenueBooking/index.d.ts +3 -31
  309. package/lib/solution/VenueBooking/index.js +916 -967
  310. package/lib/solution/VenueBooking/types.d.ts +1 -3
  311. package/lib/solution/VenueBooking/types.js +39 -20
  312. package/lib/solution/VenueBooking/utils/dateSummary.d.ts +2 -2
  313. package/lib/solution/VenueBooking/utils/dateSummary.js +62 -25
  314. package/lib/solution/VenueBooking/utils/resource.js +54 -31
  315. package/lib/solution/VenueBooking/utils/slotMerge.js +107 -94
  316. package/lib/solution/VenueBooking/utils/timeSlot.d.ts +0 -2
  317. package/lib/solution/VenueBooking/utils/timeSlot.js +133 -138
  318. package/lib/solution/VenueBooking/utils.js +67 -130
  319. package/lib/solution/index.js +41 -124
  320. package/lib/store/createStore.js +29 -32
  321. package/lib/types/index.d.ts +1 -1
  322. package/lib/types/index.js +16 -4
  323. package/lib/utils/task.js +36 -36
  324. package/lib/utils/watch.js +47 -81
  325. package/package.json +2 -4
  326. package/dist/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  327. package/dist/solution/VenueBooking/utils/smartPricing.js +0 -233
  328. package/lib/solution/VenueBooking/utils/smartPricing.d.ts +0 -70
  329. 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
+ });