@pisell/pisellos 0.0.562 → 0.0.563

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.
@@ -0,0 +1,9 @@
1
+ // 导出评估器
2
+ export { PromotionEvaluator } from "./evaluator";
3
+
4
+ // 导出适配器
5
+ export { PromotionAdapter } from "./adapter";
6
+ export { default } from "./adapter";
7
+
8
+ // 导出策略配置示例常量
9
+ export { X_ITEMS_FOR_Y_PRICE_STRATEGY, BUY_X_GET_Y_FREE_STRATEGY } from "./examples";
@@ -38,6 +38,8 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
38
38
  private loginEffectDisposers;
39
39
  private customerLoginRefreshInFlight;
40
40
  private customerLoginRefreshIdInFlight;
41
+ /** 最近一次确认登录的客户;登录事件与 user 插件更新之间可能存在时序差。 */
42
+ private smartPricingCustomerId;
41
43
  private loadAllProductsInFlight;
42
44
  private productsLoaded;
43
45
  private loadOpenDataConfigInFlight;
@@ -46,6 +48,7 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
46
48
  private slotPriceMapCache;
47
49
  /** loadProducts 后缓存的全量商品(venue + addon),供分段算价复用 */
48
50
  private smartPricingProductCatalog;
51
+ private static readonly PISELL1_LOGIN_SUCCESS;
49
52
  private getLoggerContext;
50
53
  private safeStringify;
51
54
  private pickErrorMessage;
@@ -101,6 +101,8 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
101
101
  _defineProperty(_assertThisInitialized(_this), "loginEffectDisposers", []);
102
102
  _defineProperty(_assertThisInitialized(_this), "customerLoginRefreshInFlight", null);
103
103
  _defineProperty(_assertThisInitialized(_this), "customerLoginRefreshIdInFlight", null);
104
+ /** 最近一次确认登录的客户;登录事件与 user 插件更新之间可能存在时序差。 */
105
+ _defineProperty(_assertThisInitialized(_this), "smartPricingCustomerId", void 0);
104
106
  _defineProperty(_assertThisInitialized(_this), "loadAllProductsInFlight", null);
105
107
  _defineProperty(_assertThisInitialized(_this), "productsLoaded", false);
106
108
  _defineProperty(_assertThisInitialized(_this), "loadOpenDataConfigInFlight", null);
@@ -423,16 +425,9 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
423
425
  }, {
424
426
  key: "registerCustomerLoginListeners",
425
427
  value: function registerCustomerLoginListeners() {
426
- var _this$core2,
427
- _this$core3,
428
- _accountModule$getCur,
429
- _accountModule$getAcc,
430
- _this2 = this;
428
+ var _this2 = this;
431
429
  this.clearLoginEffectListeners();
432
- var accountModule = (_this$core2 = this.core) === null || _this$core2 === void 0 ? void 0 : _this$core2.getModule('account');
433
- var registerAndLoginModule = (_this$core3 = this.core) === null || _this$core3 === void 0 ? void 0 : _this$core3.getModule('registerAndLogin');
434
- var currentAccount = (accountModule === null || accountModule === void 0 || (_accountModule$getCur = accountModule.getCurrentAccount) === null || _accountModule$getCur === void 0 ? void 0 : _accountModule$getCur.call(accountModule)) || (accountModule === null || accountModule === void 0 || (_accountModule$getAcc = accountModule.getAccount) === null || _accountModule$getAcc === void 0 ? void 0 : _accountModule$getAcc.call(accountModule)) || null;
435
- var createHandleLogin = function createHandleLogin(eventName) {
430
+ var createHandleLogin = function createHandleLogin() {
436
431
  return /*#__PURE__*/function () {
437
432
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(payload) {
438
433
  var customerId;
@@ -461,8 +456,9 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
461
456
  };
462
457
  }();
463
458
  };
464
- this.registerLoginEffect(AccountHooks.OnLogin, createHandleLogin(AccountHooks.OnLogin));
465
- this.registerLoginEffect(RegisterAndLoginHooks.onLoginSuccess, createHandleLogin(RegisterAndLoginHooks.onLoginSuccess));
459
+ this.registerLoginEffect(VenueBookingImpl.PISELL1_LOGIN_SUCCESS, createHandleLogin());
460
+ this.registerLoginEffect(AccountHooks.OnLogin, createHandleLogin());
461
+ this.registerLoginEffect(RegisterAndLoginHooks.onLoginSuccess, createHandleLogin());
466
462
  }
467
463
  }, {
468
464
  key: "refreshOrderMarketingAfterLogin",
@@ -497,49 +493,57 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
497
493
  case 9:
498
494
  this.customerLoginRefreshIdInFlight = params.customerId;
499
495
  refreshTask = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
496
+ var _this3$core, _this3$core$emit;
500
497
  var _this3$otherParams;
501
498
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
502
499
  while (1) switch (_context5.prev = _context5.next) {
503
500
  case 0:
504
- _context5.next = 2;
501
+ // 用户插件可能晚于登录 effect 更新;以已确认的登录 payload 作为本次及后续网格算价的身份来源。
502
+ _this3.smartPricingCustomerId = params.customerId;
503
+ _context5.next = 3;
505
504
  return _this3.store.order.loadDiscountConfig({
506
505
  customerId: params.customerId
507
506
  });
508
- case 2:
507
+ case 3:
509
508
  _this3.clearSlotPriceMapCache();
510
509
  _this3.recalculateOrderPricesFromSmartPricing();
511
510
  // 刷新 holder 表单数据
512
511
  if (!_this3.store.holder) {
513
- _context5.next = 7;
512
+ _context5.next = 8;
514
513
  break;
515
514
  }
516
- _context5.next = 7;
515
+ _context5.next = 8;
517
516
  return _this3.store.holder.refreshAllFormRecords({
518
517
  customer_id: params.customerId,
519
518
  useCache: false
520
519
  });
521
- case 7:
520
+ case 8:
522
521
  if (!_this3.store.quotation) {
523
- _context5.next = 10;
522
+ _context5.next = 11;
524
523
  break;
525
524
  }
526
- _context5.next = 10;
525
+ _context5.next = 11;
527
526
  return _this3.store.quotation.loadQuotations({
528
527
  channel: (_this3$otherParams = _this3.otherParams) === null || _this3$otherParams === void 0 ? void 0 : _this3$otherParams.channel
529
528
  });
530
- case 10:
531
- _context5.next = 12;
529
+ case 11:
530
+ _context5.next = 13;
532
531
  return _this3.store.order.recalculateSummary({
533
532
  createIfMissing: true
534
533
  });
535
- case 12:
534
+ case 13:
536
535
  _this3.store.order.persistTempOrder();
537
- _context5.next = 15;
536
+ _context5.next = 16;
538
537
  return _this3.refreshItemRuleQuantityLimits();
539
- case 15:
540
- _context5.next = 17;
538
+ case 16:
539
+ _context5.next = 18;
541
540
  return _this3.refreshCartValidationPassed();
542
- case 17:
541
+ case 18:
542
+ _context5.next = 20;
543
+ return (_this3$core = _this3.core) === null || _this3$core === void 0 || (_this3$core = _this3$core.effects) === null || _this3$core === void 0 || (_this3$core$emit = _this3$core.emit) === null || _this3$core$emit === void 0 ? void 0 : _this3$core$emit.call(_this3$core, VenueBookingHooks.onSmartPricingUpdated, {
544
+ customerId: params.customerId
545
+ });
546
+ case 20:
543
547
  case "end":
544
548
  return _context5.stop();
545
549
  }
@@ -613,6 +617,7 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
613
617
  this.core = core;
614
618
  this.initializeOptions = options || {};
615
619
  this.store = _objectSpread(_objectSpread({}, this.store), options.store);
620
+ this.smartPricingCustomerId = undefined;
616
621
  this.store.entryContext = ((_options$otherParams = options.otherParams) === null || _options$otherParams === void 0 ? void 0 : _options$otherParams.entryContext) || this.store.entryContext;
617
622
  this.store.status = 'initializing';
618
623
  this.store.error = null;
@@ -633,19 +638,19 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
633
638
  this.window = core.getPlugin('window');
634
639
  this.request = core.getPlugin('request');
635
640
  if (this.window) {
636
- _context7.next = 24;
641
+ _context7.next = 25;
637
642
  break;
638
643
  }
639
644
  this.logMethodError('initialize', 'window plugin missing');
640
645
  throw new Error('venueBooking解决方案需要 window 插件支持');
641
- case 24:
646
+ case 25:
642
647
  if (this.request) {
643
- _context7.next = 27;
648
+ _context7.next = 28;
644
649
  break;
645
650
  }
646
651
  this.logMethodError('initialize', 'request plugin missing');
647
652
  throw new Error('venueBooking解决方案需要 request 插件支持');
648
- case 27:
653
+ case 28:
649
654
  // 注册基础模块(order, salesSummary, products, logger)
650
655
  baseModules = ['scanOrderLogger', 'products', 'order', 'salesSummary'];
651
656
  baseModules.forEach(function (step) {
@@ -763,41 +768,41 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
763
768
  }
764
769
  this.registerCustomerLoginListeners();
765
770
  console.log('[VenueBooking] 初始化开始');
766
- _context7.prev = 54;
767
- _context7.next = 57;
771
+ _context7.prev = 55;
772
+ _context7.next = 58;
768
773
  return (_this$store$order = this.store.order) === null || _this$store$order === void 0 ? void 0 : _this$store$order.recalculateSummary({
769
774
  createIfMissing: false
770
775
  });
771
- case 57:
776
+ case 58:
772
777
  (_this$store$order2 = this.store.order) === null || _this$store$order2 === void 0 || _this$store$order2.persistTempOrder();
773
- _context7.next = 60;
778
+ _context7.next = 61;
774
779
  return this.loadRuntimeConfigs();
775
- case 60:
780
+ case 61:
776
781
  if (!this.store.schedule) {
777
- _context7.next = 63;
782
+ _context7.next = 64;
778
783
  break;
779
784
  }
780
- _context7.next = 63;
785
+ _context7.next = 64;
781
786
  return this.store.schedule.loadAllSchedule();
782
- case 63:
783
- _context7.next = 65;
787
+ case 64:
788
+ _context7.next = 66;
784
789
  return this.refreshItemRuleQuantityLimits();
785
- case 65:
790
+ case 66:
786
791
  this.store.status = 'ready';
787
792
  console.log('[VenueBooking] 初始化完成');
788
- _context7.next = 69;
793
+ _context7.next = 70;
789
794
  return this.core.effects.emit(VenueBookingHooks.onInited, {
790
795
  status: this.store.status
791
796
  });
792
- case 69:
797
+ case 70:
793
798
  this.logMethodSuccess('initialize', {
794
799
  status: this.store.status
795
800
  });
796
- _context7.next = 79;
801
+ _context7.next = 80;
797
802
  break;
798
- case 72:
799
- _context7.prev = 72;
800
- _context7.t0 = _context7["catch"](54);
803
+ case 73:
804
+ _context7.prev = 73;
805
+ _context7.t0 = _context7["catch"](55);
801
806
  this.store.status = 'error';
802
807
  this.store.error = _context7.t0 instanceof Error ? _context7.t0.message : '初始化失败';
803
808
  console.error('[VenueBooking] 初始化失败', _context7.t0);
@@ -805,11 +810,11 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
805
810
  status: this.store.status
806
811
  });
807
812
  throw _context7.t0;
808
- case 79:
813
+ case 80:
809
814
  case "end":
810
815
  return _context7.stop();
811
816
  }
812
- }, _callee7, this, [[54, 72]]);
817
+ }, _callee7, this, [[55, 73]]);
813
818
  }));
814
819
  function initialize(_x6) {
815
820
  return _initialize.apply(this, arguments);
@@ -961,9 +966,10 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
961
966
  }, {
962
967
  key: "resolveCustomerIdForSmartPricing",
963
968
  value: function resolveCustomerIdForSmartPricing() {
969
+ if (this.smartPricingCustomerId) return this.smartPricingCustomerId;
964
970
  try {
965
- var _this$core4, _userPlugin$get;
966
- var userPlugin = (_this$core4 = this.core) === null || _this$core4 === void 0 ? void 0 : _this$core4.getPlugin('user');
971
+ var _this$core2, _userPlugin$get;
972
+ var userPlugin = (_this$core2 = this.core) === null || _this$core2 === void 0 ? void 0 : _this$core2.getPlugin('user');
967
973
  var customerId = Number(userPlugin === null || userPlugin === void 0 || (_userPlugin$get = userPlugin.get) === null || _userPlugin$get === void 0 || (_userPlugin$get = _userPlugin$get.call(userPlugin)) === null || _userPlugin$get === void 0 ? void 0 : _userPlugin$get.id);
968
974
  return Number.isFinite(customerId) && customerId > 0 ? customerId : undefined;
969
975
  } catch (_unused3) {
@@ -1000,8 +1006,8 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
1000
1006
  }, {
1001
1007
  key: "buildSmartPricingContext",
1002
1008
  value: function buildSmartPricingContext(customerId) {
1003
- var _this$core5, _this$otherParams13, _this$otherParams14, _this$otherParams15, _this$otherParams16, _this$otherParams17, _this$otherParams18, _this$otherParams19;
1004
- var evaluator = (_this$core5 = this.core) === null || _this$core5 === void 0 || (_this$core5 = _this$core5.context) === null || _this$core5 === void 0 ? void 0 : _this$core5.dataVariantEvaluator;
1009
+ var _this$core3, _this$otherParams13, _this$otherParams14, _this$otherParams15, _this$otherParams16, _this$otherParams17, _this$otherParams18, _this$otherParams19;
1010
+ var evaluator = (_this$core3 = this.core) === null || _this$core3 === void 0 || (_this$core3 = _this$core3.context) === null || _this$core3 === void 0 ? void 0 : _this$core3.dataVariantEvaluator;
1005
1011
  return {
1006
1012
  evaluator: evaluator,
1007
1013
  scheduleList: this.getScheduleListForSmartPricing(),
@@ -3809,4 +3815,5 @@ export var VenueBookingImpl = /*#__PURE__*/function (_BaseModule) {
3809
3815
  return VenueBookingImpl;
3810
3816
  }(BaseModule);
3811
3817
  _defineProperty(VenueBookingImpl, "OPEN_DATA_CACHE_TTL", 5 * 60 * 1000);
3818
+ _defineProperty(VenueBookingImpl, "PISELL1_LOGIN_SUCCESS", 'pisell1.login.success');
3812
3819
  _defineProperty(VenueBookingImpl, "UI_STATE_KEY_PREFIX", 'pisell.venueBooking.uiState:');
@@ -7,7 +7,9 @@ export declare enum VenueBookingHooks {
7
7
  onDestroy = "venueBooking:onDestroy",
8
8
  onRetryInit = "venueBooking:onRetryInit",
9
9
  onRefresh = "venueBooking:onRefresh",
10
- onCartValidationChanged = "venueBooking:onCartValidationChanged"
10
+ onCartValidationChanged = "venueBooking:onCartValidationChanged",
11
+ /** 登录客户的智能定价、营销配置与订单汇总已完成刷新 */
12
+ onSmartPricingUpdated = "venueBooking:onSmartPricingUpdated"
11
13
  }
12
14
  export type VenueBookingStatus = 'idle' | 'initializing' | 'ready' | 'error';
13
15
  export interface VenueBookingEntryContext {
@@ -4,6 +4,7 @@ export var VenueBookingHooks = /*#__PURE__*/function (VenueBookingHooks) {
4
4
  VenueBookingHooks["onRetryInit"] = "venueBooking:onRetryInit";
5
5
  VenueBookingHooks["onRefresh"] = "venueBooking:onRefresh";
6
6
  VenueBookingHooks["onCartValidationChanged"] = "venueBooking:onCartValidationChanged";
7
+ VenueBookingHooks["onSmartPricingUpdated"] = "venueBooking:onSmartPricingUpdated";
7
8
  return VenueBookingHooks;
8
9
  }({});
9
10
 
@@ -38,6 +38,8 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
38
38
  private loginEffectDisposers;
39
39
  private customerLoginRefreshInFlight;
40
40
  private customerLoginRefreshIdInFlight;
41
+ /** 最近一次确认登录的客户;登录事件与 user 插件更新之间可能存在时序差。 */
42
+ private smartPricingCustomerId;
41
43
  private loadAllProductsInFlight;
42
44
  private productsLoaded;
43
45
  private loadOpenDataConfigInFlight;
@@ -46,6 +48,7 @@ export declare class VenueBookingImpl extends BaseModule implements Module {
46
48
  private slotPriceMapCache;
47
49
  /** loadProducts 后缓存的全量商品(venue + addon),供分段算价复用 */
48
50
  private smartPricingProductCatalog;
51
+ private static readonly PISELL1_LOGIN_SUCCESS;
49
52
  private getLoggerContext;
50
53
  private safeStringify;
51
54
  private pickErrorMessage;
@@ -315,19 +315,16 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
315
315
  });
316
316
  }
317
317
  registerCustomerLoginListeners() {
318
- var _a, _b, _c, _d;
319
318
  this.clearLoginEffectListeners();
320
- const accountModule = (_a = this.core) == null ? void 0 : _a.getModule("account");
321
- const registerAndLoginModule = (_b = this.core) == null ? void 0 : _b.getModule("registerAndLogin");
322
- const currentAccount = ((_c = accountModule == null ? void 0 : accountModule.getCurrentAccount) == null ? void 0 : _c.call(accountModule)) || ((_d = accountModule == null ? void 0 : accountModule.getAccount) == null ? void 0 : _d.call(accountModule)) || null;
323
- const createHandleLogin = (eventName) => async (payload) => {
319
+ const createHandleLogin = () => async (payload) => {
324
320
  const customerId = this.resolveCustomerIdFromLoginPayload(payload);
325
321
  if (!customerId)
326
322
  return;
327
323
  await this.refreshOrderMarketingAfterLogin({ customerId });
328
324
  };
329
- this.registerLoginEffect(import_types3.AccountHooks.OnLogin, createHandleLogin(import_types3.AccountHooks.OnLogin));
330
- this.registerLoginEffect(import_types4.RegisterAndLoginHooks.onLoginSuccess, createHandleLogin(import_types4.RegisterAndLoginHooks.onLoginSuccess));
325
+ this.registerLoginEffect(_VenueBookingImpl.PISELL1_LOGIN_SUCCESS, createHandleLogin());
326
+ this.registerLoginEffect(import_types3.AccountHooks.OnLogin, createHandleLogin());
327
+ this.registerLoginEffect(import_types4.RegisterAndLoginHooks.onLoginSuccess, createHandleLogin());
331
328
  }
332
329
  async refreshOrderMarketingAfterLogin(params) {
333
330
  if (!this.store.order)
@@ -341,7 +338,8 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
341
338
  }
342
339
  this.customerLoginRefreshIdInFlight = params.customerId;
343
340
  const refreshTask = (async () => {
344
- var _a;
341
+ var _a, _b, _c, _d;
342
+ this.smartPricingCustomerId = params.customerId;
345
343
  await this.store.order.loadDiscountConfig({
346
344
  customerId: params.customerId
347
345
  });
@@ -362,6 +360,9 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
362
360
  this.store.order.persistTempOrder();
363
361
  await this.refreshItemRuleQuantityLimits();
364
362
  await this.refreshCartValidationPassed();
363
+ await ((_d = (_c = (_b = this.core) == null ? void 0 : _b.effects) == null ? void 0 : _c.emit) == null ? void 0 : _d.call(_c, import_types.VenueBookingHooks.onSmartPricingUpdated, {
364
+ customerId: params.customerId
365
+ }));
365
366
  })();
366
367
  this.customerLoginRefreshInFlight = refreshTask;
367
368
  try {
@@ -381,6 +382,7 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
381
382
  this.core = core;
382
383
  this.initializeOptions = options || {};
383
384
  this.store = { ...this.store, ...options.store };
385
+ this.smartPricingCustomerId = void 0;
384
386
  this.store.entryContext = ((_a = options.otherParams) == null ? void 0 : _a.entryContext) || this.store.entryContext;
385
387
  this.store.status = "initializing";
386
388
  this.store.error = null;
@@ -616,6 +618,8 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
616
618
  /** 读取当前登录 customerId */
617
619
  resolveCustomerIdForSmartPricing() {
618
620
  var _a, _b, _c;
621
+ if (this.smartPricingCustomerId)
622
+ return this.smartPricingCustomerId;
619
623
  try {
620
624
  const userPlugin = (_a = this.core) == null ? void 0 : _a.getPlugin("user");
621
625
  const customerId = Number((_c = (_b = userPlugin == null ? void 0 : userPlugin.get) == null ? void 0 : _b.call(userPlugin)) == null ? void 0 : _c.id);
@@ -2143,6 +2147,7 @@ var _VenueBookingImpl = class extends import_BaseModule.BaseModule {
2143
2147
  };
2144
2148
  var VenueBookingImpl = _VenueBookingImpl;
2145
2149
  VenueBookingImpl.OPEN_DATA_CACHE_TTL = 5 * 60 * 1e3;
2150
+ VenueBookingImpl.PISELL1_LOGIN_SUCCESS = "pisell1.login.success";
2146
2151
  // ─── UI 状态缓存(按 cacheId 分桶,sessionStorage) ───
2147
2152
  //
2148
2153
  // 用于物料层持久化 UI 层面的轻量状态(如当前步骤、登录回跳意图等)。
@@ -7,7 +7,9 @@ export declare enum VenueBookingHooks {
7
7
  onDestroy = "venueBooking:onDestroy",
8
8
  onRetryInit = "venueBooking:onRetryInit",
9
9
  onRefresh = "venueBooking:onRefresh",
10
- onCartValidationChanged = "venueBooking:onCartValidationChanged"
10
+ onCartValidationChanged = "venueBooking:onCartValidationChanged",
11
+ /** 登录客户的智能定价、营销配置与订单汇总已完成刷新 */
12
+ onSmartPricingUpdated = "venueBooking:onSmartPricingUpdated"
11
13
  }
12
14
  export type VenueBookingStatus = 'idle' | 'initializing' | 'ready' | 'error';
13
15
  export interface VenueBookingEntryContext {
@@ -29,6 +29,7 @@ var VenueBookingHooks = /* @__PURE__ */ ((VenueBookingHooks2) => {
29
29
  VenueBookingHooks2["onRetryInit"] = "venueBooking:onRetryInit";
30
30
  VenueBookingHooks2["onRefresh"] = "venueBooking:onRefresh";
31
31
  VenueBookingHooks2["onCartValidationChanged"] = "venueBooking:onCartValidationChanged";
32
+ VenueBookingHooks2["onSmartPricingUpdated"] = "venueBooking:onSmartPricingUpdated";
32
33
  return VenueBookingHooks2;
33
34
  })(VenueBookingHooks || {});
34
35
  var DEFAULT_SLOT_CONFIG = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "0.0.562",
4
+ "version": "0.0.563",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",