@pisell/pisellos 1.0.80 → 1.0.81

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.
@@ -268,7 +268,8 @@ export var DiscountModule = /*#__PURE__*/function (_BaseModule) {
268
268
  }
269
269
  if (discount.appliedProductDetails) {
270
270
  return discount.appliedProductDetails.reduce(function (total, product) {
271
- var price = new Decimal((product === null || product === void 0 ? void 0 : product.amount) || 0);
271
+ var _product$discount;
272
+ var price = new Decimal((product === null || product === void 0 || (_product$discount = product.discount) === null || _product$discount === void 0 ? void 0 : _product$discount.fixed_amount) * product._num);
272
273
  return new Decimal(total).plus(price).toNumber();
273
274
  }, 0);
274
275
  }
@@ -34,12 +34,14 @@ interface ApplicableProductDetails {
34
34
  original_amount: string;
35
35
  num: number;
36
36
  discount?: {
37
+ fixed_amount?: number;
37
38
  product_id?: number;
38
39
  original_amount?: string;
39
40
  percent?: string;
40
41
  resource_id?: number;
41
42
  title?: string;
42
43
  };
44
+ _num: number;
43
45
  }
44
46
  interface UsageCreditsValue {
45
47
  total_credits: number;
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
49
49
  getCategories(): ProductCategory[];
50
50
  setOtherParams(key: string, value: any): void;
51
51
  getOtherParams(): any;
52
- getProductType(): "duration" | "session" | "normal";
52
+ getProductType(): "normal" | "duration" | "session";
53
53
  }
@@ -24,6 +24,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
24
24
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
25
25
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
26
26
  import { BaseModule } from "../BaseModule";
27
+ import { RulesHooks } from "./types";
27
28
  import { uniqueById, getDiscountAmount, getDiscountListAmountTotal, getDiscountListAmount } from "../../solution/ShopDiscount/utils";
28
29
  import { getProductOriginTotalPrice, getProductTotalPrice } from "../Cart/utils";
29
30
  import Decimal from 'decimal.js';
@@ -72,7 +73,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
72
73
  case 0:
73
74
  this.store.rulesList = rulesList;
74
75
  _context2.next = 3;
75
- return this.core.effects.emit("".concat(this.name, ":onRulesListChange"), rulesList);
76
+ return this.core.effects.emit(RulesHooks.OnRulesListChange, rulesList);
76
77
  case 3:
77
78
  case "end":
78
79
  return _context2.stop();
@@ -423,8 +424,12 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
423
424
  // 记录可抵扣的商品详情
424
425
  var applicableProducts = discountApplicableProducts.get(discount.id) || [];
425
426
  var discountType = discount.tag || discount.type;
427
+ var isGoodPass = discountType === 'good_pass';
428
+
429
+ // 使用数量
430
+ var num = isGoodPass || (flatItem === null || flatItem === void 0 ? void 0 : flatItem.type) === 'main' ? 1 : product.num;
426
431
  var productData = {
427
- amount: product.price * (product.num || 1),
432
+ amount: product.price * num,
428
433
  type: discountType,
429
434
  tag: discountType,
430
435
  discount: {
@@ -435,13 +440,11 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
435
440
  original_amount: product.price || product.origin_total,
436
441
  pre_value: discount.par_value,
437
442
  product_id: originProduct.id
443
+ },
444
+ metadata: {
445
+ num: num
438
446
  }
439
447
  };
440
-
441
- // 如果 discount.tag 或者 discount.type 是 good_pass,则不需要添加 num 属性
442
- if (discountType !== 'good_pass') {
443
- productData.num = product.num || 1;
444
- }
445
448
  applicableProducts.push(productData);
446
449
  discountApplicableProducts.set(discount.id, applicableProducts);
447
450
  }
@@ -454,7 +457,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
454
457
  // 然后再处理应用哪些优惠券,此时只考虑filteredDiscountList中的优惠券
455
458
  // 🔥 使用扁平化后的列表进行处理
456
459
  sortedFlattenedList.forEach(function (flatItem, index) {
457
- var _product4, _product$discount_lis2, _product5, _product$discount_lis4, _product6, _product6$every, _product$discount_lis5, _product$discount_lis6;
460
+ var _product4, _product$discount_lis2, _product5;
458
461
  // 获取商品数据
459
462
  var product, originProduct;
460
463
  if (flatItem.type === 'main') {
@@ -534,28 +537,85 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
534
537
  var selectedDiscount = selectedDiscountCard || applicableDiscounts[0];
535
538
 
536
539
  // 如果是手动折扣,则不适用优惠券
537
- var isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && flatItem.type === 'main' && (product.bundle || []).every(function (item) {
538
- var _ref3;
539
- return !((_ref3 = item.discount_list || []) !== null && _ref3 !== void 0 && _ref3.length);
540
- }) && (!((_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.length) || ((_product6 = product) === null || _product6 === void 0 || (_product6 = _product6.discount_list) === null || _product6 === void 0 || (_product6$every = _product6.every) === null || _product6$every === void 0 ? void 0 : _product6$every.call(_product6, function (item) {
541
- return item.type === 'product';
542
- })));
540
+ var isManualDiscount = false;
541
+ if (flatItem.type === 'main') {
542
+ var _product$discount_lis4, _product6, _product6$every;
543
+ // 主商品:判断自身是否手动折扣
544
+ isManualDiscount = typeof product.isManualDiscount === 'boolean' ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every(function (item) {
545
+ var _ref3;
546
+ return !((_ref3 = item.discount_list || []) !== null && _ref3 !== void 0 && _ref3.length);
547
+ }) && (!((_product$discount_lis4 = product.discount_list) !== null && _product$discount_lis4 !== void 0 && _product$discount_lis4.length) || ((_product6 = product) === null || _product6 === void 0 || (_product6 = _product6.discount_list) === null || _product6 === void 0 || (_product6$every = _product6.every) === null || _product6$every === void 0 ? void 0 : _product6$every.call(_product6, function (item) {
548
+ return item.type === 'product';
549
+ })));
550
+ } else {
551
+ // bundle子商品:判断父主商品是否手动折扣
552
+ var parentProduct = flatItem.parentProduct;
553
+ if (parentProduct) {
554
+ var _parentProduct$discou, _parentProduct$discou2, _parentProduct$discou3;
555
+ isManualDiscount = typeof parentProduct.isManualDiscount === 'boolean' ? parentProduct.isManualDiscount : parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every(function (item) {
556
+ var _ref4;
557
+ return !((_ref4 = item.discount_list || []) !== null && _ref4 !== void 0 && _ref4.length);
558
+ }) && (!((_parentProduct$discou = parentProduct.discount_list) !== null && _parentProduct$discou !== void 0 && _parentProduct$discou.length) || (parentProduct === null || parentProduct === void 0 || (_parentProduct$discou2 = parentProduct.discount_list) === null || _parentProduct$discou2 === void 0 || (_parentProduct$discou3 = _parentProduct$discou2.every) === null || _parentProduct$discou3 === void 0 ? void 0 : _parentProduct$discou3.call(_parentProduct$discou2, function (item) {
559
+ return item.type === 'product';
560
+ })));
561
+ }
562
+ }
543
563
 
544
564
  // 勾选时覆盖手动折扣
545
- if (options !== null && options !== void 0 && options.discountId && (_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.some(function (item) {
546
- var _item$discount;
547
- return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
548
- })) {
549
- isManualDiscount = false;
565
+ if (options !== null && options !== void 0 && options.discountId) {
566
+ var _product$discount_lis5;
567
+ // 主商品:检查自己的 discount_list
568
+ if (flatItem.type === 'main' && (_product$discount_lis5 = product.discount_list) !== null && _product$discount_lis5 !== void 0 && _product$discount_lis5.some(function (item) {
569
+ var _item$discount;
570
+ return ((_item$discount = item.discount) === null || _item$discount === void 0 ? void 0 : _item$discount.resource_id) === options.discountId;
571
+ })) {
572
+ isManualDiscount = false;
573
+ }
574
+ // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
575
+ if (flatItem.type === 'bundle') {
576
+ var _product$discount_lis6, _flatItem$parentProdu;
577
+ if ((_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.some(function (item) {
578
+ var _item$discount2;
579
+ return ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id) === options.discountId;
580
+ }) || (_flatItem$parentProdu = flatItem.parentProduct) !== null && _flatItem$parentProdu !== void 0 && (_flatItem$parentProdu = _flatItem$parentProdu.discount_list) !== null && _flatItem$parentProdu !== void 0 && _flatItem$parentProdu.some(function (item) {
581
+ var _item$discount3;
582
+ return ((_item$discount3 = item.discount) === null || _item$discount3 === void 0 ? void 0 : _item$discount3.resource_id) === options.discountId;
583
+ })) {
584
+ isManualDiscount = false;
585
+ }
586
+ }
550
587
  }
551
- if (options !== null && options !== void 0 && options.selectedList && (_product$discount_lis6 = product.discount_list) !== null && _product$discount_lis6 !== void 0 && _product$discount_lis6.some(function (item) {
552
- var _options$selectedList;
553
- return options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.some(function (n) {
554
- var _item$discount2;
555
- return n.discountId === ((_item$discount2 = item.discount) === null || _item$discount2 === void 0 ? void 0 : _item$discount2.resource_id);
556
- });
557
- })) {
558
- isManualDiscount = false;
588
+ if (options !== null && options !== void 0 && options.selectedList) {
589
+ var _product$discount_lis7;
590
+ // 主商品:检查自己的 discount_list
591
+ if (flatItem.type === 'main' && (_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.some(function (item) {
592
+ var _options$selectedList;
593
+ return options === null || options === void 0 || (_options$selectedList = options.selectedList) === null || _options$selectedList === void 0 ? void 0 : _options$selectedList.some(function (n) {
594
+ var _item$discount4;
595
+ return n.discountId === ((_item$discount4 = item.discount) === null || _item$discount4 === void 0 ? void 0 : _item$discount4.resource_id);
596
+ });
597
+ })) {
598
+ isManualDiscount = false;
599
+ }
600
+ // bundle子商品:检查自己的 discount_list 或父主商品的 discount_list
601
+ if (flatItem.type === 'bundle') {
602
+ var _product$discount_lis8, _flatItem$parentProdu2;
603
+ if ((_product$discount_lis8 = product.discount_list) !== null && _product$discount_lis8 !== void 0 && _product$discount_lis8.some(function (item) {
604
+ var _options$selectedList2;
605
+ return options === null || options === void 0 || (_options$selectedList2 = options.selectedList) === null || _options$selectedList2 === void 0 ? void 0 : _options$selectedList2.some(function (n) {
606
+ var _item$discount5;
607
+ return n.discountId === ((_item$discount5 = item.discount) === null || _item$discount5 === void 0 ? void 0 : _item$discount5.resource_id);
608
+ });
609
+ }) || (_flatItem$parentProdu2 = flatItem.parentProduct) !== null && _flatItem$parentProdu2 !== void 0 && (_flatItem$parentProdu2 = _flatItem$parentProdu2.discount_list) !== null && _flatItem$parentProdu2 !== void 0 && _flatItem$parentProdu2.some(function (item) {
610
+ var _options$selectedList3;
611
+ return options === null || options === void 0 || (_options$selectedList3 = options.selectedList) === null || _options$selectedList3 === void 0 ? void 0 : _options$selectedList3.some(function (n) {
612
+ var _item$discount6;
613
+ return n.discountId === ((_item$discount6 = item.discount) === null || _item$discount6 === void 0 ? void 0 : _item$discount6.resource_id);
614
+ });
615
+ })) {
616
+ isManualDiscount = false;
617
+ }
618
+ }
559
619
  }
560
620
 
561
621
  // 如果没有适用的优惠券,或者手动折扣,则不适用优惠券
@@ -588,7 +648,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
588
648
  processedProductsMap.set(product._id, [_this3.hooks.setProduct(originProduct, _objectSpread(_objectSpread({}, isManualDiscount ? {} : {
589
649
  _id: product._id.split('___')[0] + '___' + index,
590
650
  total: product.origin_total || product.total,
591
- price: product.price
651
+ price: product.price,
652
+ main_product_selling_price: product.price
592
653
  }), {}, {
593
654
  discount_list: []
594
655
  }))]);
@@ -629,7 +690,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
629
690
  }));
630
691
  }
631
692
  for (var i = 0; i < splitCount; i++) {
632
- var _product$discount_lis7, _originProduct, _selectedDiscount$met;
693
+ var _product$discount_lis9, _originProduct, _selectedDiscount$met;
633
694
  // 如果用过折扣卡,也就不存在拆分的情况了,这里直接使用上面计算出来的折扣卡
634
695
  var _selectedDiscount = selectedDiscountCard || applicableDiscounts[i];
635
696
  // 标记优惠券为已使用
@@ -641,7 +702,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
641
702
  // 优先从 origin_total拿,可能会拿不到(比如用户端预约在没有配置 original_price 的情况下)
642
703
  var productOriginTotal = product.origin_total || product.total || 0;
643
704
  // 如果当前 product 有 discount_list,则先从 origin_total 拿
644
- if ((_product$discount_lis7 = product.discount_list) !== null && _product$discount_lis7 !== void 0 && _product$discount_lis7.length && product.origin_total) {
705
+ if ((_product$discount_lis9 = product.discount_list) !== null && _product$discount_lis9 !== void 0 && _product$discount_lis9.length && product.origin_total) {
645
706
  productOriginTotal = product.origin_total;
646
707
  }
647
708
  // 如果originProduct?._productInit?.original_price为 0,product.origin_total可能为空,此时取 product.total
@@ -651,24 +712,27 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
651
712
 
652
713
  // 计算使用折扣卡/商品券以后,单个商品的总 total
653
714
  var targetProductTotal = getDiscountAmount(_selectedDiscount, product.price, product.price);
715
+ var discountType = _selectedDiscount.tag || _selectedDiscount.type;
716
+ var isGoodPass = discountType === 'good_pass';
717
+ var amount = new Decimal(product.price).minus(new Decimal(targetProductTotal)).toNumber();
654
718
  var discountDetail = {
655
- amount: new Decimal(product.price).minus(new Decimal(targetProductTotal)).toNumber() * (product.num || 1),
656
- type: _selectedDiscount.tag === 'product_discount_card' ? 'discount_card' : _selectedDiscount.tag,
719
+ amount: amount,
720
+ type: _selectedDiscount.tag === 'product_discount_card' ? 'discount_card' : discountType,
657
721
  discount: {
658
722
  discount_card_type: _selectedDiscount === null || _selectedDiscount === void 0 || (_selectedDiscount$met = _selectedDiscount.metadata) === null || _selectedDiscount$met === void 0 ? void 0 : _selectedDiscount$met.discount_card_type,
659
- fixed_amount: new Decimal(product.price).minus(new Decimal(targetProductTotal)).toNumber(),
723
+ fixed_amount: amount,
660
724
  resource_id: _selectedDiscount.id,
661
725
  title: _selectedDiscount.format_title,
662
726
  original_amount: product.price,
663
727
  product_id: originProduct.id,
664
728
  percent: _selectedDiscount.par_value
729
+ },
730
+ // 前端使用的num数量,为了计算优惠金额
731
+ _num: isGoodPass ? 1 : product.num,
732
+ metadata: {
733
+ num: 1
665
734
  }
666
735
  };
667
-
668
- // 如果 discount.tag 或者 discount.type 是 good_pass,则不需要添加 num 属性
669
- if ((_selectedDiscount.tag || _selectedDiscount.type) !== 'good_pass') {
670
- discountDetail.num = product.num || 1;
671
- }
672
736
  appliedProducts.push(discountDetail);
673
737
  appliedDiscountProducts.set(_selectedDiscount.id, appliedProducts);
674
738
 
@@ -698,7 +762,8 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
698
762
  price: _selectedDiscount.tag === 'good_pass' ? 0 : product.price,
699
763
  quantity: isNeedSplit ? 1 : product.quantity,
700
764
  total: targetProductTotal,
701
- origin_total: productOriginTotal
765
+ origin_total: productOriginTotal,
766
+ main_product_selling_price: targetProductTotal
702
767
  }));
703
768
  }
704
769
  }
@@ -732,7 +797,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
732
797
  custom_product_bundle_map_id: uniqueId,
733
798
  num: 1
734
799
  },
735
- num: 1
800
+ _num: 1
736
801
  };
737
802
 
738
803
  // 记录实际应用的折扣
@@ -765,7 +830,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
765
830
  }));
766
831
  }
767
832
  } else {
768
- var _selectedDiscount3$me;
833
+ var _selectedDiscount3$me, _flatItem$parentProdu3;
769
834
  // 折扣卡:不拆分数量,直接应用
770
835
  var _selectedDiscount3 = selectedDiscountCard || applicableDiscounts[0];
771
836
  usedDiscounts.set(_selectedDiscount3.id, true);
@@ -791,7 +856,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
791
856
  custom_product_bundle_map_id: _uniqueId,
792
857
  num: product.num || 1
793
858
  },
794
- num: product.num || 1
859
+ _num: (product.num || 1) * ((flatItem === null || flatItem === void 0 || (_flatItem$parentProdu3 = flatItem.parentProduct) === null || _flatItem$parentProdu3 === void 0 ? void 0 : _flatItem$parentProdu3.num) || 1)
795
860
  };
796
861
 
797
862
  // 记录实际应用的折扣
@@ -909,7 +974,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
909
974
  // 🔥 更新 discount_list 中的 num,使其与拆分后的 item.num 一致
910
975
  var updatedDiscountList = (item.discount_list || []).map(function (discount) {
911
976
  return _objectSpread(_objectSpread({}, discount), {}, {
912
- num: item.num // 使用拆分后的 num
977
+ metadata: {
978
+ num: item.num
979
+ }
980
+ // num: item.num, // 使用拆分后的 num
913
981
  });
914
982
  });
915
983
  newBundleWithDiscount.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
@@ -927,7 +995,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
927
995
  // 🔥 同样需要更新 discount_list 中的 num
928
996
  var _updatedDiscountList = (item.discount_list || []).map(function (discount) {
929
997
  return _objectSpread(_objectSpread({}, discount), {}, {
930
- num: item.num // 使用当前的 num
998
+ metadata: {
999
+ num: item.num
1000
+ }
1001
+ // num: item.num, // 使用当前的 num
931
1002
  });
932
1003
  });
933
1004
  newBundleWithDiscount.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
@@ -946,16 +1017,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
946
1017
  // 计算第一个主商品的总价(包含拆分后的bundle)
947
1018
  var newTotalWithDiscount = Number(mainProductData.price || 0);
948
1019
  var newOriginTotalWithDiscount = Number(mainProductData.original_price || mainProductData.price || 0);
949
- if (newBundleWithDiscount.length > 0) {
950
- newBundleWithDiscount.forEach(function (item) {
951
- newTotalWithDiscount += Number(item.price) * Number(item.num);
952
- });
953
- newBundleWithDiscount.forEach(function (item) {
954
- var _item$discount_list2;
955
- var originalPrice = ((_item$discount_list2 = item.discount_list) === null || _item$discount_list2 === void 0 || (_item$discount_list2 = _item$discount_list2[0]) === null || _item$discount_list2 === void 0 || (_item$discount_list2 = _item$discount_list2.discount) === null || _item$discount_list2 === void 0 ? void 0 : _item$discount_list2.original_amount) || item.price;
956
- newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
957
- });
958
- }
959
1020
 
960
1021
  // 🔥 更新主商品自己的 discount_list 中的 num(quantity=1)
961
1022
  var updatedMainDiscountList = mainProductData.discount_list.map(function (discount) {
@@ -966,7 +1027,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
966
1027
  }
967
1028
  // 主商品自己的discount,更新num为1
968
1029
  return _objectSpread(_objectSpread({}, discount), {}, {
969
- num: 1
1030
+ // num: 1,
1031
+ metadata: {
1032
+ num: 1
1033
+ }
970
1034
  });
971
1035
  });
972
1036
 
@@ -980,14 +1044,18 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
980
1044
  var allDiscountAmount = getDiscountListAmountTotal(mainDiscountList);
981
1045
  newTotalWithDiscount = (_Decimal$minus$toNumb = new Decimal(mainProductData.price || 0).minus(allDiscountAmount).toNumber()) !== null && _Decimal$minus$toNumb !== void 0 ? _Decimal$minus$toNumb : newTotalWithDiscount;
982
1046
  newOriginTotalWithDiscount = (_mainProductData$orig = mainProductData.origin_total) !== null && _mainProductData$orig !== void 0 ? _mainProductData$orig : newOriginTotalWithDiscount;
983
- if (newBundleWithDiscount.length > 0) {
984
- newBundleWithDiscount.forEach(function (item) {
985
- var _item$discount_list3;
986
- newTotalWithDiscount += Number(item.price) * Number(item.num);
987
- var originalPrice = ((_item$discount_list3 = item.discount_list) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3[0]) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3.discount) === null || _item$discount_list3 === void 0 ? void 0 : _item$discount_list3.original_amount) || item.price;
988
- newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
989
- });
990
- }
1047
+ }
1048
+
1049
+ // 累加bundle的价格(只累加一次)
1050
+ if (newBundleWithDiscount.length > 0) {
1051
+ newBundleWithDiscount.forEach(function (item) {
1052
+ newTotalWithDiscount += Number(item.price) * Number(item.num);
1053
+ });
1054
+ newBundleWithDiscount.forEach(function (item) {
1055
+ var _item$discount_list2;
1056
+ var originalPrice = ((_item$discount_list2 = item.discount_list) === null || _item$discount_list2 === void 0 || (_item$discount_list2 = _item$discount_list2[0]) === null || _item$discount_list2 === void 0 || (_item$discount_list2 = _item$discount_list2.discount) === null || _item$discount_list2 === void 0 ? void 0 : _item$discount_list2.original_amount) || item.price;
1057
+ newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
1058
+ });
991
1059
  }
992
1060
 
993
1061
  // 添加第一个主商品:qty=1,包含拆分后的bundle
@@ -1013,12 +1081,6 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1013
1081
  // 计算第二个主商品的总价
1014
1082
  var newTotalOriginal = Number(mainProductData.price || 0);
1015
1083
  var newOriginTotalOriginal = Number(mainProductData.original_price || mainProductData.price || 0);
1016
- if (newBundleOriginal.length > 0) {
1017
- newBundleOriginal.forEach(function (item) {
1018
- newTotalOriginal += Number(item.price) * Number(item.num);
1019
- newOriginTotalOriginal += Number(item.price) * Number(item.num);
1020
- });
1021
- }
1022
1084
 
1023
1085
  // 🔥 更新主商品自己的 discount_list 中的 num(quantity=原quantity-1)
1024
1086
  var updatedMainDiscountListOriginal = mainProductData.discount_list.map(function (discount) {
@@ -1029,7 +1091,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1029
1091
  }
1030
1092
  // 主商品自己的discount,更新num为 mainProductQuantity - 1
1031
1093
  return _objectSpread(_objectSpread({}, discount), {}, {
1032
- num: mainProductQuantity - 1
1094
+ metadata: {
1095
+ num: mainProductQuantity - 1
1096
+ }
1097
+ // num: mainProductQuantity - 1,
1033
1098
  });
1034
1099
  });
1035
1100
 
@@ -1043,12 +1108,14 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1043
1108
  var _allDiscountAmount = getDiscountListAmount(mainDiscountListOriginal);
1044
1109
  newTotalOriginal = (_Decimal$minus$toNumb2 = new Decimal(mainProductData.price || 0).minus(_allDiscountAmount).toNumber()) !== null && _Decimal$minus$toNumb2 !== void 0 ? _Decimal$minus$toNumb2 : newTotalOriginal;
1045
1110
  newOriginTotalOriginal = (_mainProductData$orig2 = mainProductData.origin_total) !== null && _mainProductData$orig2 !== void 0 ? _mainProductData$orig2 : newOriginTotalOriginal;
1046
- if (newBundleOriginal.length > 0) {
1047
- newBundleOriginal.forEach(function (item) {
1048
- newTotalOriginal += Number(item.price) * Number(item.num);
1049
- newOriginTotalOriginal += Number(item.price) * Number(item.num);
1050
- });
1051
- }
1111
+ }
1112
+
1113
+ // 累加bundle的价格(只累加一次)
1114
+ if (newBundleOriginal.length > 0) {
1115
+ newBundleOriginal.forEach(function (item) {
1116
+ newTotalOriginal += Number(item.price) * Number(item.num);
1117
+ newOriginTotalOriginal += Number(item.price) * Number(item.num);
1118
+ });
1052
1119
  }
1053
1120
 
1054
1121
  // 添加第二个主商品:qty=原quantity-1,包含原始bundle
@@ -1064,6 +1131,7 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1064
1131
  } else {
1065
1132
  // 🔥 没有子商品被拆分,使用原有逻辑
1066
1133
  mainProductArr.forEach(function (mainProduct) {
1134
+ var _mainProductData$disc, _mainProductData$disc2, _mainProductData$disc3;
1067
1135
  var mainProductData = _this3.hooks.getProduct(mainProduct);
1068
1136
 
1069
1137
  // 重组bundle
@@ -1081,7 +1149,10 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1081
1149
  // 🔥 更新 discount_list 中的 num,使其与拆分后的 item.num 一致
1082
1150
  var updatedDiscountList = (item.discount_list || []).map(function (discount) {
1083
1151
  return _objectSpread(_objectSpread({}, discount), {}, {
1084
- num: item.num // 使用拆分后的 num
1152
+ metadata: {
1153
+ num: item.num
1154
+ }
1155
+ // num: item.num, // 使用拆分后的 num
1085
1156
  });
1086
1157
  });
1087
1158
  newBundle.push(_objectSpread(_objectSpread({}, bundleItem), {}, {
@@ -1100,37 +1171,41 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1100
1171
  var newTotal = Number(mainProductData.price || 0);
1101
1172
  var newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
1102
1173
 
1103
- // 累加bundle的价格
1104
- if (newBundle.length > 0) {
1105
- newBundle.forEach(function (item) {
1106
- newTotal += Number(item.price) * Number(item.num);
1107
- });
1174
+ // 判断是否是手动折扣
1175
+ var isManualDiscount = typeof mainProductData.isManualDiscount === 'boolean' ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((_mainProductData$disc = mainProductData.discount_list) !== null && _mainProductData$disc !== void 0 && _mainProductData$disc.length) || (mainProductData === null || mainProductData === void 0 || (_mainProductData$disc2 = mainProductData.discount_list) === null || _mainProductData$disc2 === void 0 || (_mainProductData$disc3 = _mainProductData$disc2.every) === null || _mainProductData$disc3 === void 0 ? void 0 : _mainProductData$disc3.call(_mainProductData$disc2, function (item) {
1176
+ return item.type === 'product';
1177
+ })));
1108
1178
 
1109
- // 计算原始总价(不考虑折扣)
1110
- newBundle.forEach(function (item) {
1111
- var _item$discount_list4;
1112
- var originalPrice = ((_item$discount_list4 = item.discount_list) === null || _item$discount_list4 === void 0 || (_item$discount_list4 = _item$discount_list4[0]) === null || _item$discount_list4 === void 0 || (_item$discount_list4 = _item$discount_list4.discount) === null || _item$discount_list4 === void 0 ? void 0 : _item$discount_list4.original_amount) || item.price;
1113
- newOriginTotal += Number(originalPrice) * Number(item.num);
1179
+ // 如果是手动折扣,使用原有的total和origin_total,不重新计算
1180
+ if (isManualDiscount) {
1181
+ var _mainProductData$tota, _mainProductData$orig3;
1182
+ newTotal = (_mainProductData$tota = mainProductData.total) !== null && _mainProductData$tota !== void 0 ? _mainProductData$tota : newTotal;
1183
+ newOriginTotal = (_mainProductData$orig3 = mainProductData.origin_total) !== null && _mainProductData$orig3 !== void 0 ? _mainProductData$orig3 : newOriginTotal;
1184
+ } else {
1185
+ // 不是手动折扣时,才重新计算
1186
+ var _mainDiscountList = mainProductData.discount_list.filter(function (item) {
1187
+ var _item$metadata3;
1188
+ return !(item !== null && item !== void 0 && (_item$metadata3 = item.metadata) !== null && _item$metadata3 !== void 0 && _item$metadata3.custom_product_bundle_map_id);
1114
1189
  });
1115
- }
1116
- var mainDiscountList = mainProductData.discount_list.filter(function (item) {
1117
- var _item$metadata3;
1118
- return !(item !== null && item !== void 0 && (_item$metadata3 = item.metadata) !== null && _item$metadata3 !== void 0 && _item$metadata3.custom_product_bundle_map_id);
1119
- });
1120
1190
 
1121
- // 如果主商品本身有折扣,需要重新计算
1122
- if (mainDiscountList && mainDiscountList.length > 0) {
1123
- var _Decimal$minus$toNumb3, _mainProductData$orig3;
1124
- var _allDiscountAmount2 = getDiscountListAmount(mainDiscountList);
1125
- newTotal = (_Decimal$minus$toNumb3 = new Decimal(mainProductData.price || 0).minus(_allDiscountAmount2).toNumber()) !== null && _Decimal$minus$toNumb3 !== void 0 ? _Decimal$minus$toNumb3 : newTotal;
1126
- newOriginTotal = (_mainProductData$orig3 = mainProductData.origin_total) !== null && _mainProductData$orig3 !== void 0 ? _mainProductData$orig3 : newOriginTotal;
1191
+ // 如果主商品本身有折扣,需要重新计算主商品价格
1192
+ if (_mainDiscountList && _mainDiscountList.length > 0) {
1193
+ var _Decimal$minus$toNumb3, _mainProductData$orig4;
1194
+ var _allDiscountAmount2 = getDiscountListAmount(_mainDiscountList);
1195
+ newTotal = (_Decimal$minus$toNumb3 = new Decimal(mainProductData.price || 0).minus(_allDiscountAmount2).toNumber()) !== null && _Decimal$minus$toNumb3 !== void 0 ? _Decimal$minus$toNumb3 : newTotal;
1196
+ newOriginTotal = (_mainProductData$orig4 = mainProductData.origin_total) !== null && _mainProductData$orig4 !== void 0 ? _mainProductData$orig4 : newOriginTotal;
1197
+ }
1127
1198
 
1128
- // 累加bundle的价格
1199
+ // 累加bundle的价格(只累加一次)
1129
1200
  if (newBundle.length > 0) {
1130
1201
  newBundle.forEach(function (item) {
1131
- var _item$discount_list5;
1132
1202
  newTotal += Number(item.price) * Number(item.num);
1133
- var originalPrice = ((_item$discount_list5 = item.discount_list) === null || _item$discount_list5 === void 0 || (_item$discount_list5 = _item$discount_list5[0]) === null || _item$discount_list5 === void 0 || (_item$discount_list5 = _item$discount_list5.discount) === null || _item$discount_list5 === void 0 ? void 0 : _item$discount_list5.original_amount) || item.price;
1203
+ });
1204
+
1205
+ // 计算原始总价(不考虑折扣)
1206
+ newBundle.forEach(function (item) {
1207
+ var _item$discount_list3;
1208
+ var originalPrice = ((_item$discount_list3 = item.discount_list) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3[0]) === null || _item$discount_list3 === void 0 || (_item$discount_list3 = _item$discount_list3.discount) === null || _item$discount_list3 === void 0 ? void 0 : _item$discount_list3.original_amount) || item.price;
1134
1209
  newOriginTotal += Number(originalPrice) * Number(item.num);
1135
1210
  });
1136
1211
  }
@@ -1299,8 +1374,34 @@ export var RulesModule = /*#__PURE__*/function (_BaseModule) {
1299
1374
  // 套餐中购买时,判断是否为原价
1300
1375
  var _priceType = (_flatItem$bundleItem7 = flatItem.bundleItem) === null || _flatItem$bundleItem7 === void 0 ? void 0 : _flatItem$bundleItem7.price_type;
1301
1376
  var _priceTypeExt = (_flatItem$bundleItem8 = flatItem.bundleItem) === null || _flatItem$bundleItem8 === void 0 ? void 0 : _flatItem$bundleItem8.price_type_ext;
1377
+
1378
+ // original_price 对应:
1379
+ // 1. price_type: "markup" && price_type_ext: "product_price"
1380
+ // markup_price 对应:
1381
+ // price_type: "markup" && price_type_ext: ""
1382
+ /** 原价 */
1383
+ var _isOriginalPrice = _priceType === 'markup' && _priceTypeExt === 'product_price';
1384
+ /** 加价 */
1385
+ var _isMarkupPrice = _priceType === 'markup' && (_priceTypeExt === '' || !_priceTypeExt);
1386
+
1387
+ // 检查 rules
1388
+ if (rules.length > 0) {
1389
+ // 检查原价
1390
+ if (_isOriginalPrice && rules.includes('original_price')) {
1391
+ return true;
1392
+ }
1393
+
1394
+ // 检查加价
1395
+ if (_isMarkupPrice && rules.includes('markup_price')) {
1396
+ return true;
1397
+ }
1398
+
1399
+ // 如果都不匹配,则不可用
1400
+ return false;
1401
+ }
1402
+
1302
1403
  // 原价包括:price_type: "markup" && price_type_ext: "product_price"
1303
- return _priceType === 'markup' && _priceTypeExt === 'product_price';
1404
+ return _isOriginalPrice;
1304
1405
  }
1305
1406
  return false;
1306
1407
  }
@@ -53,6 +53,7 @@ export interface RulesParamsHooks {
53
53
  original_price?: number | string;
54
54
  quantity?: number;
55
55
  bundle?: any[];
56
+ main_product_selling_price?: string | number;
56
57
  }) => Record<string, any>;
57
58
  }
58
59
  export {};
@@ -383,22 +383,46 @@ export var CheckoutImpl = /*#__PURE__*/function (_BaseModule) {
383
383
  return pre + (item.amount || 0);
384
384
  }, 0);
385
385
  };
386
- var productList = ((_this$store$currentOr = this.store.currentOrder.order_info) === null || _this$store$currentOr === void 0 || (_this$store$currentOr = _this$store$currentOr.original_order_data.bookings) === null || _this$store$currentOr === void 0 ? void 0 : _this$store$currentOr.map(function (item) {
387
- return {
388
- product_id: item.product.product_id,
389
- product_variant_id: item.product.product_variant_id,
390
- quantity: item.product.num,
391
- selling_price: item.product.calculated_selling_price
392
- };
393
- })) || [];
394
- var relationProducts = ((_this$store$currentOr2 = this.store.currentOrder.order_info) === null || _this$store$currentOr2 === void 0 || (_this$store$currentOr2 = _this$store$currentOr2.original_order_data) === null || _this$store$currentOr2 === void 0 || (_this$store$currentOr2 = _this$store$currentOr2.relation_products) === null || _this$store$currentOr2 === void 0 ? void 0 : _this$store$currentOr2.map(function (item) {
395
- return {
396
- product_id: item.product_id,
397
- product_variant_id: item.product_variant_id,
398
- quantity: item.num,
399
- selling_price: item.source_product_price
400
- };
401
- })) || [];
386
+ var formatProduct = function formatProduct(items) {
387
+ return items.map(function (item) {
388
+ var _item$is_charge_tax;
389
+ return {
390
+ product_id: item.product_id,
391
+ product_variant_id: item.product_variant_id,
392
+ quantity: item.num,
393
+ // 商品是否含税:1;0
394
+ is_charge_tax: (_item$is_charge_tax = item.is_charge_tax) !== null && _item$is_charge_tax !== void 0 ? _item$is_charge_tax : 0,
395
+ // 若商品不含税,计算得到的税费,单位(元)
396
+ tax_fee: item.tax_fee,
397
+ // 整个商品折扣后的总金额
398
+ selling_price: item.calculated_selling_price,
399
+ // 整个商品折扣前的总金额
400
+ original_price: item.calculated_original_price,
401
+ // 主商品折扣前金额,不包含套餐子商品
402
+ main_product_original_price: item.price,
403
+ // 主商品折扣后金额,不包含套餐子商品
404
+ main_product_selling_price: item.main_product_selling_price,
405
+ product_bundle: item.product_bundle.map(function (bundle) {
406
+ return {
407
+ bundle_id: bundle.bundle_id,
408
+ bundle_product_id: bundle.bundle_product_id,
409
+ bundle_variant_id: bundle.bundle_variant_id,
410
+ price_type: bundle.price_type,
411
+ price_type_ext: bundle.price_type_ext,
412
+ // 套餐子商品总价,不包含折扣金额
413
+ bundle_sum_price: bundle.bundle_sum_price,
414
+ // 套餐子商品折扣后金额
415
+ bundle_selling_price: bundle.bundle_selling_price,
416
+ num: bundle.num
417
+ };
418
+ })
419
+ };
420
+ }) || [];
421
+ };
422
+ var productList = formatProduct(((_this$store$currentOr = this.store.currentOrder.order_info) === null || _this$store$currentOr === void 0 || (_this$store$currentOr = _this$store$currentOr.original_order_data) === null || _this$store$currentOr === void 0 || (_this$store$currentOr = _this$store$currentOr.bookings) === null || _this$store$currentOr === void 0 ? void 0 : _this$store$currentOr.map(function (item) {
423
+ return item.product;
424
+ })) || []);
425
+ var relationProducts = formatProduct(((_this$store$currentOr2 = this.store.currentOrder.order_info) === null || _this$store$currentOr2 === void 0 || (_this$store$currentOr2 = _this$store$currentOr2.original_order_data) === null || _this$store$currentOr2 === void 0 ? void 0 : _this$store$currentOr2.relation_products) || []);
402
426
  return [].concat(_toConsumableArray(productList), _toConsumableArray(relationProducts));
403
427
  }
404
428
  }, {
@@ -163,7 +163,8 @@ var DiscountModule = class extends import_BaseModule.BaseModule {
163
163
  }
164
164
  if (discount.appliedProductDetails) {
165
165
  return discount.appliedProductDetails.reduce((total, product) => {
166
- const price = new import_decimal.default((product == null ? void 0 : product.amount) || 0);
166
+ var _a;
167
+ const price = new import_decimal.default(((_a = product == null ? void 0 : product.discount) == null ? void 0 : _a.fixed_amount) * product._num);
167
168
  return new import_decimal.default(total).plus(price).toNumber();
168
169
  }, 0);
169
170
  }
@@ -34,12 +34,14 @@ interface ApplicableProductDetails {
34
34
  original_amount: string;
35
35
  num: number;
36
36
  discount?: {
37
+ fixed_amount?: number;
37
38
  product_id?: number;
38
39
  original_amount?: string;
39
40
  percent?: string;
40
41
  resource_id?: number;
41
42
  title?: string;
42
43
  };
44
+ _num: number;
43
45
  }
44
46
  interface UsageCreditsValue {
45
47
  total_credits: number;
@@ -49,5 +49,5 @@ export declare class Product extends BaseModule implements Module {
49
49
  getCategories(): ProductCategory[];
50
50
  setOtherParams(key: string, value: any): void;
51
51
  getOtherParams(): any;
52
- getProductType(): "duration" | "session" | "normal";
52
+ getProductType(): "normal" | "duration" | "session";
53
53
  }
@@ -33,6 +33,7 @@ __export(Rules_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(Rules_exports);
35
35
  var import_BaseModule = require("../BaseModule");
36
+ var import_types = require("./types");
36
37
  var import_utils = require("../../solution/ShopDiscount/utils");
37
38
  var import_utils2 = require("../Cart/utils");
38
39
  var import_decimal = __toESM(require("decimal.js"));
@@ -51,7 +52,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
51
52
  }
52
53
  async setRulesList(rulesList) {
53
54
  this.store.rulesList = rulesList;
54
- await this.core.effects.emit(`${this.name}:onRulesListChange`, rulesList);
55
+ await this.core.effects.emit(import_types.RulesHooks.OnRulesListChange, rulesList);
55
56
  }
56
57
  getRulesList() {
57
58
  return this.store.rulesList;
@@ -273,8 +274,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
273
274
  (_e = discountApplicability.get(discount.id)) == null ? void 0 : _e.push(product.id);
274
275
  const applicableProducts = discountApplicableProducts.get(discount.id) || [];
275
276
  const discountType = discount.tag || discount.type;
277
+ const isGoodPass = discountType === "good_pass";
278
+ const num = isGoodPass || (flatItem == null ? void 0 : flatItem.type) === "main" ? 1 : product.num;
276
279
  const productData = {
277
- amount: product.price * (product.num || 1),
280
+ amount: product.price * num,
278
281
  type: discountType,
279
282
  tag: discountType,
280
283
  discount: {
@@ -285,11 +288,11 @@ var RulesModule = class extends import_BaseModule.BaseModule {
285
288
  original_amount: product.price || product.origin_total,
286
289
  pre_value: discount.par_value,
287
290
  product_id: originProduct.id
291
+ },
292
+ metadata: {
293
+ num
288
294
  }
289
295
  };
290
- if (discountType !== "good_pass") {
291
- productData.num = product.num || 1;
292
- }
293
296
  applicableProducts.push(productData);
294
297
  discountApplicableProducts.set(discount.id, applicableProducts);
295
298
  }
@@ -297,7 +300,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
297
300
  });
298
301
  const processedFlatItemsMap = /* @__PURE__ */ new Map();
299
302
  sortedFlattenedList.forEach((flatItem, index) => {
300
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
303
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
301
304
  let product, originProduct;
302
305
  if (flatItem.type === "main") {
303
306
  product = flatItem.product;
@@ -356,24 +359,67 @@ var RulesModule = class extends import_BaseModule.BaseModule {
356
359
  });
357
360
  const selectedDiscountCard = applicableDiscounts.find((n) => n.isScan && n.isSelected && (n.tag || n.type) !== "good_pass");
358
361
  const selectedDiscount = selectedDiscountCard || applicableDiscounts[0];
359
- let isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && (flatItem.type === "main" && (product.bundle || []).every((item) => {
360
- var _a2;
361
- return !((_a2 = item.discount_list || []) == null ? void 0 : _a2.length);
362
- })) && (!((_f = product.discount_list) == null ? void 0 : _f.length) || ((_h = (_g = product == null ? void 0 : product.discount_list) == null ? void 0 : _g.every) == null ? void 0 : _h.call(_g, (item) => item.type === "product")));
363
- if ((options == null ? void 0 : options.discountId) && ((_i = product.discount_list) == null ? void 0 : _i.some((item) => {
364
- var _a2;
365
- return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
366
- }))) {
367
- isManualDiscount = false;
362
+ let isManualDiscount = false;
363
+ if (flatItem.type === "main") {
364
+ isManualDiscount = typeof product.isManualDiscount === "boolean" ? product.isManualDiscount : product.total != product.origin_total && (product.bundle || []).every((item) => {
365
+ var _a2;
366
+ return !((_a2 = item.discount_list || []) == null ? void 0 : _a2.length);
367
+ }) && (!((_f = product.discount_list) == null ? void 0 : _f.length) || ((_h = (_g = product == null ? void 0 : product.discount_list) == null ? void 0 : _g.every) == null ? void 0 : _h.call(_g, (item) => item.type === "product")));
368
+ } else {
369
+ const parentProduct = flatItem.parentProduct;
370
+ if (parentProduct) {
371
+ isManualDiscount = typeof parentProduct.isManualDiscount === "boolean" ? parentProduct.isManualDiscount : parentProduct.total != parentProduct.origin_total && (parentProduct.bundle || []).every((item) => {
372
+ var _a2;
373
+ return !((_a2 = item.discount_list || []) == null ? void 0 : _a2.length);
374
+ }) && (!((_i = parentProduct.discount_list) == null ? void 0 : _i.length) || ((_k = (_j = parentProduct == null ? void 0 : parentProduct.discount_list) == null ? void 0 : _j.every) == null ? void 0 : _k.call(_j, (item) => item.type === "product")));
375
+ }
368
376
  }
369
- if ((options == null ? void 0 : options.selectedList) && ((_j = product.discount_list) == null ? void 0 : _j.some((item) => {
370
- var _a2;
371
- return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some((n) => {
372
- var _a3;
373
- return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
374
- });
375
- }))) {
376
- isManualDiscount = false;
377
+ if (options == null ? void 0 : options.discountId) {
378
+ if (flatItem.type === "main" && ((_l = product.discount_list) == null ? void 0 : _l.some((item) => {
379
+ var _a2;
380
+ return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
381
+ }))) {
382
+ isManualDiscount = false;
383
+ }
384
+ if (flatItem.type === "bundle") {
385
+ if (((_m = product.discount_list) == null ? void 0 : _m.some((item) => {
386
+ var _a2;
387
+ return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
388
+ })) || ((_o = (_n = flatItem.parentProduct) == null ? void 0 : _n.discount_list) == null ? void 0 : _o.some((item) => {
389
+ var _a2;
390
+ return ((_a2 = item.discount) == null ? void 0 : _a2.resource_id) === options.discountId;
391
+ }))) {
392
+ isManualDiscount = false;
393
+ }
394
+ }
395
+ }
396
+ if (options == null ? void 0 : options.selectedList) {
397
+ if (flatItem.type === "main" && ((_p = product.discount_list) == null ? void 0 : _p.some((item) => {
398
+ var _a2;
399
+ return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some((n) => {
400
+ var _a3;
401
+ return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
402
+ });
403
+ }))) {
404
+ isManualDiscount = false;
405
+ }
406
+ if (flatItem.type === "bundle") {
407
+ if (((_q = product.discount_list) == null ? void 0 : _q.some((item) => {
408
+ var _a2;
409
+ return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some((n) => {
410
+ var _a3;
411
+ return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
412
+ });
413
+ })) || ((_s = (_r = flatItem.parentProduct) == null ? void 0 : _r.discount_list) == null ? void 0 : _s.some((item) => {
414
+ var _a2;
415
+ return (_a2 = options == null ? void 0 : options.selectedList) == null ? void 0 : _a2.some((n) => {
416
+ var _a3;
417
+ return n.discountId === ((_a3 = item.discount) == null ? void 0 : _a3.resource_id);
418
+ });
419
+ }))) {
420
+ isManualDiscount = false;
421
+ }
422
+ }
377
423
  }
378
424
  if (applicableDiscounts.length === 0 || isManualDiscount || (0, import_lodash_es.isBoolean)(product.vouchersApplicable) && !product.vouchersApplicable) {
379
425
  if (flatItem.type === "main") {
@@ -410,7 +456,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
410
456
  ...isManualDiscount ? {} : {
411
457
  _id: product._id.split("___")[0] + "___" + index,
412
458
  total: product.origin_total || product.total,
413
- price: product.price
459
+ price: product.price,
460
+ main_product_selling_price: product.price
414
461
  },
415
462
  discount_list: []
416
463
  })]
@@ -447,29 +494,34 @@ var RulesModule = class extends import_BaseModule.BaseModule {
447
494
  usedDiscounts.set(selectedDiscount2.id, true);
448
495
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
449
496
  let productOriginTotal = product.origin_total || product.total || 0;
450
- if (((_k = product.discount_list) == null ? void 0 : _k.length) && product.origin_total) {
497
+ if (((_t = product.discount_list) == null ? void 0 : _t.length) && product.origin_total) {
451
498
  productOriginTotal = product.origin_total;
452
499
  }
453
- if (Number(((_l = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _l.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
500
+ if (Number(((_u = originProduct == null ? void 0 : originProduct._productInit) == null ? void 0 : _u.original_price) || 0) > 0 && product.origin_total && product.total && product.origin_total !== product.total) {
454
501
  productOriginTotal = product.total;
455
502
  }
456
503
  const targetProductTotal = (0, import_utils.getDiscountAmount)(selectedDiscount2, product.price, product.price);
504
+ const discountType = selectedDiscount2.tag || selectedDiscount2.type;
505
+ const isGoodPass = discountType === "good_pass";
506
+ const amount = new import_decimal.default(product.price).minus(new import_decimal.default(targetProductTotal)).toNumber();
457
507
  const discountDetail = {
458
- amount: new import_decimal.default(product.price).minus(new import_decimal.default(targetProductTotal)).toNumber() * (product.num || 1),
459
- type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : selectedDiscount2.tag,
508
+ amount,
509
+ type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : discountType,
460
510
  discount: {
461
- discount_card_type: (_m = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _m.discount_card_type,
462
- fixed_amount: new import_decimal.default(product.price).minus(new import_decimal.default(targetProductTotal)).toNumber(),
511
+ discount_card_type: (_v = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _v.discount_card_type,
512
+ fixed_amount: amount,
463
513
  resource_id: selectedDiscount2.id,
464
514
  title: selectedDiscount2.format_title,
465
515
  original_amount: product.price,
466
516
  product_id: originProduct.id,
467
517
  percent: selectedDiscount2.par_value
518
+ },
519
+ // 前端使用的num数量,为了计算优惠金额
520
+ _num: isGoodPass ? 1 : product.num,
521
+ metadata: {
522
+ num: 1
468
523
  }
469
524
  };
470
- if ((selectedDiscount2.tag || selectedDiscount2.type) !== "good_pass") {
471
- discountDetail.num = product.num || 1;
472
- }
473
525
  appliedProducts.push(discountDetail);
474
526
  appliedDiscountProducts.set(selectedDiscount2.id, appliedProducts);
475
527
  if (product.isClient) {
@@ -496,7 +548,8 @@ var RulesModule = class extends import_BaseModule.BaseModule {
496
548
  price: selectedDiscount2.tag === "good_pass" ? 0 : product.price,
497
549
  quantity: isNeedSplit ? 1 : product.quantity,
498
550
  total: targetProductTotal,
499
- origin_total: productOriginTotal
551
+ origin_total: productOriginTotal,
552
+ main_product_selling_price: targetProductTotal
500
553
  }));
501
554
  }
502
555
  }
@@ -524,7 +577,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
524
577
  custom_product_bundle_map_id: uniqueId,
525
578
  num: 1
526
579
  },
527
- num: 1
580
+ _num: 1
528
581
  };
529
582
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
530
583
  appliedProducts.push(discountDetail);
@@ -568,7 +621,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
568
621
  amount: new import_decimal.default(productOriginTotal).minus(targetProductTotal).toNumber() * (product.num || 1),
569
622
  type: selectedDiscount2.tag === "product_discount_card" ? "discount_card" : selectedDiscount2.tag,
570
623
  discount: {
571
- discount_card_type: (_n = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _n.discount_card_type,
624
+ discount_card_type: (_w = selectedDiscount2 == null ? void 0 : selectedDiscount2.metadata) == null ? void 0 : _w.discount_card_type,
572
625
  fixed_amount: new import_decimal.default(productOriginTotal).minus(targetProductTotal).toNumber(),
573
626
  resource_id: selectedDiscount2.id,
574
627
  title: selectedDiscount2.format_title,
@@ -581,7 +634,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
581
634
  custom_product_bundle_map_id: uniqueId,
582
635
  num: product.num || 1
583
636
  },
584
- num: product.num || 1
637
+ _num: (product.num || 1) * (((_x = flatItem == null ? void 0 : flatItem.parentProduct) == null ? void 0 : _x.num) || 1)
585
638
  };
586
639
  const appliedProducts = appliedDiscountProducts.get(selectedDiscount2.id) || [];
587
640
  appliedProducts.push(discountDetail);
@@ -676,8 +729,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
676
729
  processedItems.forEach((item) => {
677
730
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => ({
678
731
  ...discount,
679
- num: item.num
680
- // 使用拆分后的 num
732
+ metadata: {
733
+ num: item.num
734
+ }
735
+ // num: item.num, // 使用拆分后的 num
681
736
  }));
682
737
  newBundleWithDiscount.push({
683
738
  ...bundleItem,
@@ -693,8 +748,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
693
748
  if (item.processed) {
694
749
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => ({
695
750
  ...discount,
696
- num: item.num
697
- // 使用当前的 num
751
+ metadata: {
752
+ num: item.num
753
+ }
754
+ // num: item.num, // 使用当前的 num
698
755
  }));
699
756
  newBundleWithDiscount.push({
700
757
  ...bundleItem,
@@ -711,16 +768,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
711
768
  });
712
769
  let newTotalWithDiscount = Number(mainProductData.price || 0);
713
770
  let newOriginTotalWithDiscount = Number(mainProductData.original_price || mainProductData.price || 0);
714
- if (newBundleWithDiscount.length > 0) {
715
- newBundleWithDiscount.forEach((item) => {
716
- newTotalWithDiscount += Number(item.price) * Number(item.num);
717
- });
718
- newBundleWithDiscount.forEach((item) => {
719
- var _a, _b, _c;
720
- const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
721
- newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
722
- });
723
- }
724
771
  const updatedMainDiscountList = mainProductData.discount_list.map((discount) => {
725
772
  var _a;
726
773
  if ((_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a.custom_product_bundle_map_id) {
@@ -728,7 +775,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
728
775
  }
729
776
  return {
730
777
  ...discount,
731
- num: 1
778
+ // num: 1,
779
+ metadata: {
780
+ num: 1
781
+ }
732
782
  };
733
783
  });
734
784
  const mainDiscountList = updatedMainDiscountList.filter((item) => {
@@ -739,14 +789,16 @@ var RulesModule = class extends import_BaseModule.BaseModule {
739
789
  const allDiscountAmount = (0, import_utils.getDiscountListAmountTotal)(mainDiscountList);
740
790
  newTotalWithDiscount = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotalWithDiscount;
741
791
  newOriginTotalWithDiscount = mainProductData.origin_total ?? newOriginTotalWithDiscount;
742
- if (newBundleWithDiscount.length > 0) {
743
- newBundleWithDiscount.forEach((item) => {
744
- var _a, _b, _c;
745
- newTotalWithDiscount += Number(item.price) * Number(item.num);
746
- const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
747
- newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
748
- });
749
- }
792
+ }
793
+ if (newBundleWithDiscount.length > 0) {
794
+ newBundleWithDiscount.forEach((item) => {
795
+ newTotalWithDiscount += Number(item.price) * Number(item.num);
796
+ });
797
+ newBundleWithDiscount.forEach((item) => {
798
+ var _a, _b, _c;
799
+ const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
800
+ newOriginTotalWithDiscount += Number(originalPrice) * Number(item.num);
801
+ });
750
802
  }
751
803
  result.push(
752
804
  this.hooks.setProduct(mainProduct, {
@@ -769,12 +821,6 @@ var RulesModule = class extends import_BaseModule.BaseModule {
769
821
  });
770
822
  let newTotalOriginal = Number(mainProductData.price || 0);
771
823
  let newOriginTotalOriginal = Number(mainProductData.original_price || mainProductData.price || 0);
772
- if (newBundleOriginal.length > 0) {
773
- newBundleOriginal.forEach((item) => {
774
- newTotalOriginal += Number(item.price) * Number(item.num);
775
- newOriginTotalOriginal += Number(item.price) * Number(item.num);
776
- });
777
- }
778
824
  const updatedMainDiscountListOriginal = mainProductData.discount_list.map((discount) => {
779
825
  var _a;
780
826
  if ((_a = discount == null ? void 0 : discount.metadata) == null ? void 0 : _a.custom_product_bundle_map_id) {
@@ -782,7 +828,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
782
828
  }
783
829
  return {
784
830
  ...discount,
785
- num: mainProductQuantity - 1
831
+ metadata: {
832
+ num: mainProductQuantity - 1
833
+ }
834
+ // num: mainProductQuantity - 1,
786
835
  };
787
836
  });
788
837
  const mainDiscountListOriginal = updatedMainDiscountListOriginal.filter((item) => {
@@ -793,12 +842,12 @@ var RulesModule = class extends import_BaseModule.BaseModule {
793
842
  const allDiscountAmount = (0, import_utils.getDiscountListAmount)(mainDiscountListOriginal);
794
843
  newTotalOriginal = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotalOriginal;
795
844
  newOriginTotalOriginal = mainProductData.origin_total ?? newOriginTotalOriginal;
796
- if (newBundleOriginal.length > 0) {
797
- newBundleOriginal.forEach((item) => {
798
- newTotalOriginal += Number(item.price) * Number(item.num);
799
- newOriginTotalOriginal += Number(item.price) * Number(item.num);
800
- });
801
- }
845
+ }
846
+ if (newBundleOriginal.length > 0) {
847
+ newBundleOriginal.forEach((item) => {
848
+ newTotalOriginal += Number(item.price) * Number(item.num);
849
+ newOriginTotalOriginal += Number(item.price) * Number(item.num);
850
+ });
802
851
  }
803
852
  result.push(
804
853
  this.hooks.setProduct(mainProduct, {
@@ -814,6 +863,7 @@ var RulesModule = class extends import_BaseModule.BaseModule {
814
863
  }
815
864
  } else {
816
865
  mainProductArr.forEach((mainProduct) => {
866
+ var _a, _b, _c;
817
867
  const mainProductData = this.hooks.getProduct(mainProduct);
818
868
  const newBundle = [];
819
869
  if (product.bundle && Array.isArray(product.bundle)) {
@@ -826,8 +876,10 @@ var RulesModule = class extends import_BaseModule.BaseModule {
826
876
  processedBundleItems.forEach((item) => {
827
877
  const updatedDiscountList2 = (item.discount_list || []).map((discount) => ({
828
878
  ...discount,
829
- num: item.num
830
- // 使用拆分后的 num
879
+ metadata: {
880
+ num: item.num
881
+ }
882
+ // num: item.num, // 使用拆分后的 num
831
883
  }));
832
884
  newBundle.push({
833
885
  ...bundleItem,
@@ -843,29 +895,27 @@ var RulesModule = class extends import_BaseModule.BaseModule {
843
895
  }
844
896
  let newTotal = Number(mainProductData.price || 0);
845
897
  let newOriginTotal = Number(mainProductData.original_price || mainProductData.price || 0);
846
- if (newBundle.length > 0) {
847
- newBundle.forEach((item) => {
848
- newTotal += Number(item.price) * Number(item.num);
849
- });
850
- newBundle.forEach((item) => {
851
- var _a, _b, _c;
852
- const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
853
- newOriginTotal += Number(originalPrice) * Number(item.num);
854
- });
855
- }
856
- const mainDiscountList = mainProductData.discount_list.filter((item) => {
857
- var _a;
858
- return !((_a = item == null ? void 0 : item.metadata) == null ? void 0 : _a.custom_product_bundle_map_id);
859
- });
860
- if (mainDiscountList && mainDiscountList.length > 0) {
861
- const allDiscountAmount = (0, import_utils.getDiscountListAmount)(mainDiscountList);
862
- newTotal = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotal;
898
+ const isManualDiscount = typeof mainProductData.isManualDiscount === "boolean" ? mainProductData.isManualDiscount : mainProductData.total != mainProductData.origin_total && (!((_a = mainProductData.discount_list) == null ? void 0 : _a.length) || ((_c = (_b = mainProductData == null ? void 0 : mainProductData.discount_list) == null ? void 0 : _b.every) == null ? void 0 : _c.call(_b, (item) => item.type === "product")));
899
+ if (isManualDiscount) {
900
+ newTotal = mainProductData.total ?? newTotal;
863
901
  newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
902
+ } else {
903
+ const mainDiscountList = mainProductData.discount_list.filter((item) => {
904
+ var _a2;
905
+ return !((_a2 = item == null ? void 0 : item.metadata) == null ? void 0 : _a2.custom_product_bundle_map_id);
906
+ });
907
+ if (mainDiscountList && mainDiscountList.length > 0) {
908
+ const allDiscountAmount = (0, import_utils.getDiscountListAmount)(mainDiscountList);
909
+ newTotal = new import_decimal.default(mainProductData.price || 0).minus(allDiscountAmount).toNumber() ?? newTotal;
910
+ newOriginTotal = mainProductData.origin_total ?? newOriginTotal;
911
+ }
864
912
  if (newBundle.length > 0) {
865
913
  newBundle.forEach((item) => {
866
- var _a, _b, _c;
867
914
  newTotal += Number(item.price) * Number(item.num);
868
- const originalPrice = ((_c = (_b = (_a = item.discount_list) == null ? void 0 : _a[0]) == null ? void 0 : _b.discount) == null ? void 0 : _c.original_amount) || item.price;
915
+ });
916
+ newBundle.forEach((item) => {
917
+ var _a2, _b2, _c2;
918
+ const originalPrice = ((_c2 = (_b2 = (_a2 = item.discount_list) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.discount) == null ? void 0 : _c2.original_amount) || item.price;
869
919
  newOriginTotal += Number(originalPrice) * Number(item.num);
870
920
  });
871
921
  }
@@ -998,7 +1048,18 @@ var RulesModule = class extends import_BaseModule.BaseModule {
998
1048
  if (isBundleItem) {
999
1049
  const priceType = (_c = flatItem.bundleItem) == null ? void 0 : _c.price_type;
1000
1050
  const priceTypeExt = (_d = flatItem.bundleItem) == null ? void 0 : _d.price_type_ext;
1001
- return priceType === "markup" && priceTypeExt === "product_price";
1051
+ const isOriginalPrice = priceType === "markup" && priceTypeExt === "product_price";
1052
+ const isMarkupPrice = priceType === "markup" && (priceTypeExt === "" || !priceTypeExt);
1053
+ if (rules.length > 0) {
1054
+ if (isOriginalPrice && rules.includes("original_price")) {
1055
+ return true;
1056
+ }
1057
+ if (isMarkupPrice && rules.includes("markup_price")) {
1058
+ return true;
1059
+ }
1060
+ return false;
1061
+ }
1062
+ return isOriginalPrice;
1002
1063
  }
1003
1064
  return false;
1004
1065
  }
@@ -53,6 +53,7 @@ export interface RulesParamsHooks {
53
53
  original_price?: number | string;
54
54
  quantity?: number;
55
55
  bundle?: any[];
56
+ main_product_selling_price?: string | number;
56
57
  }) => Record<string, any>;
57
58
  }
58
59
  export {};
@@ -122,12 +122,6 @@ var BookingTicketImpl = class extends import_BaseModule.BaseModule {
122
122
  throw error;
123
123
  }
124
124
  }
125
- /**
126
- * 初始化外设扫码结果监听
127
- */
128
- initPeripheralsListener() {
129
- this.scan.initPeripheralsListener();
130
- }
131
125
  /**
132
126
  * 获取商品列表(不加载到模块中)
133
127
  * @returns 商品列表
@@ -206,22 +206,43 @@ var CheckoutImpl = class extends import_BaseModule.BaseModule {
206
206
  return pre + (item.amount || 0);
207
207
  }, 0);
208
208
  };
209
- const productList = ((_b = (_a = this.store.currentOrder.order_info) == null ? void 0 : _a.original_order_data.bookings) == null ? void 0 : _b.map(
210
- (item) => ({
211
- product_id: item.product.product_id,
212
- product_variant_id: item.product.product_variant_id,
213
- quantity: item.product.num,
214
- selling_price: item.product.calculated_selling_price
215
- })
216
- )) || [];
217
- const relationProducts = ((_e = (_d = (_c = this.store.currentOrder.order_info) == null ? void 0 : _c.original_order_data) == null ? void 0 : _d.relation_products) == null ? void 0 : _e.map(
218
- (item) => ({
219
- product_id: item.product_id,
220
- product_variant_id: item.product_variant_id,
221
- quantity: item.num,
222
- selling_price: item.source_product_price
223
- })
224
- )) || [];
209
+ const formatProduct = (items) => {
210
+ return items.map(
211
+ (item) => ({
212
+ product_id: item.product_id,
213
+ product_variant_id: item.product_variant_id,
214
+ quantity: item.num,
215
+ // 商品是否含税:1;0
216
+ is_charge_tax: item.is_charge_tax ?? 0,
217
+ // 若商品不含税,计算得到的税费,单位(元)
218
+ tax_fee: item.tax_fee,
219
+ // 整个商品折扣后的总金额
220
+ selling_price: item.calculated_selling_price,
221
+ // 整个商品折扣前的总金额
222
+ original_price: item.calculated_original_price,
223
+ // 主商品折扣前金额,不包含套餐子商品
224
+ main_product_original_price: item.price,
225
+ // 主商品折扣后金额,不包含套餐子商品
226
+ main_product_selling_price: item.main_product_selling_price,
227
+ product_bundle: item.product_bundle.map((bundle) => {
228
+ return {
229
+ bundle_id: bundle.bundle_id,
230
+ bundle_product_id: bundle.bundle_product_id,
231
+ bundle_variant_id: bundle.bundle_variant_id,
232
+ price_type: bundle.price_type,
233
+ price_type_ext: bundle.price_type_ext,
234
+ // 套餐子商品总价,不包含折扣金额
235
+ bundle_sum_price: bundle.bundle_sum_price,
236
+ // 套餐子商品折扣后金额
237
+ bundle_selling_price: bundle.bundle_selling_price,
238
+ num: bundle.num
239
+ };
240
+ })
241
+ })
242
+ ) || [];
243
+ };
244
+ const productList = formatProduct(((_c = (_b = (_a = this.store.currentOrder.order_info) == null ? void 0 : _a.original_order_data) == null ? void 0 : _b.bookings) == null ? void 0 : _c.map((item) => item.product)) || []);
245
+ const relationProducts = formatProduct(((_e = (_d = this.store.currentOrder.order_info) == null ? void 0 : _d.original_order_data) == null ? void 0 : _e.relation_products) || []);
225
246
  return [...productList, ...relationProducts];
226
247
  }
227
248
  async initWalletData(params) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "1.0.80",
4
+ "version": "1.0.81",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -72,4 +72,4 @@
72
72
  "volta": {
73
73
  "node": "18.20.8"
74
74
  }
75
- }
75
+ }