@pisell/pisellos 2.1.98 → 2.1.100

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 (82) hide show
  1. package/dist/effects/index.d.ts +2 -2
  2. package/dist/modules/Customer/types.d.ts +1 -1
  3. package/dist/modules/Payment/types.d.ts +7 -7
  4. package/dist/modules/Product/index.d.ts +1 -1
  5. package/dist/modules/Rules/types.d.ts +1 -1
  6. package/dist/modules/Schedule/getDateIsInSchedule.d.ts +1 -1
  7. package/dist/modules/Schedule/type.d.ts +7 -7
  8. package/dist/modules/Schedule/types.d.ts +9 -9
  9. package/dist/solution/BookingByStep/index.d.ts +1 -1
  10. package/dist/solution/BookingByStep/utils/resources.d.ts +1 -1
  11. package/dist/solution/ShopDiscount/types.d.ts +1 -1
  12. package/dist/solution/ShopDiscount/utils.d.ts +2 -2
  13. package/dist/types/index.d.ts +1 -1
  14. package/dist/utils/task.d.ts +2 -2
  15. package/dist/utils/watch.d.ts +2 -2
  16. package/lib/core/index.js +27 -28
  17. package/lib/effects/index.d.ts +2 -2
  18. package/lib/effects/index.js +3 -7
  19. package/lib/modules/Account/index.js +9 -10
  20. package/lib/modules/AccountList/index.js +14 -11
  21. package/lib/modules/BaseModule.js +6 -3
  22. package/lib/modules/Cart/index.js +14 -9
  23. package/lib/modules/Cart/utils/cartProduct.js +3 -6
  24. package/lib/modules/Customer/constants.js +1 -1
  25. package/lib/modules/Customer/index.js +18 -15
  26. package/lib/modules/Customer/types.d.ts +1 -1
  27. package/lib/modules/Date/index.js +10 -6
  28. package/lib/modules/Date/types.js +1 -0
  29. package/lib/modules/Discount/index.js +11 -6
  30. package/lib/modules/Guests/index.js +10 -15
  31. package/lib/modules/Order/index.js +10 -7
  32. package/lib/modules/Payment/cash.js +1 -1
  33. package/lib/modules/Payment/cashRecommendationAlgorithm.js +1 -1
  34. package/lib/modules/Payment/eftpos.js +1 -1
  35. package/lib/modules/Payment/index.js +84 -73
  36. package/lib/modules/Payment/types.d.ts +7 -7
  37. package/lib/modules/Payment/utils.js +3 -6
  38. package/lib/modules/Payment/walletpass.js +31 -31
  39. package/lib/modules/Product/index.d.ts +1 -1
  40. package/lib/modules/Product/index.js +6 -5
  41. package/lib/modules/ProductList/index.js +5 -3
  42. package/lib/modules/Resource/index.js +8 -12
  43. package/lib/modules/Rules/index.js +21 -35
  44. package/lib/modules/Rules/types.d.ts +1 -1
  45. package/lib/modules/Schedule/getDateIsInSchedule.d.ts +1 -1
  46. package/lib/modules/Schedule/index.js +8 -5
  47. package/lib/modules/Schedule/type.d.ts +7 -7
  48. package/lib/modules/Schedule/types.d.ts +9 -9
  49. package/lib/modules/Schedule/utils.js +2 -4
  50. package/lib/modules/Step/index.js +7 -4
  51. package/lib/modules/Summary/index.js +9 -4
  52. package/lib/modules/Summary/utils.js +8 -16
  53. package/lib/plugins/request.js +34 -33
  54. package/lib/plugins/window.js +101 -113
  55. package/lib/solution/BookingByStep/index.d.ts +1 -1
  56. package/lib/solution/BookingByStep/index.js +110 -177
  57. package/lib/solution/BookingByStep/utils/capacity.js +11 -16
  58. package/lib/solution/BookingByStep/utils/resources.d.ts +1 -1
  59. package/lib/solution/BookingByStep/utils/resources.js +4 -8
  60. package/lib/solution/BookingByStep/utils/stock.js +3 -6
  61. package/lib/solution/BookingByStep/utils/timeslots.js +24 -27
  62. package/lib/solution/BookingTicket/index.js +19 -14
  63. package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +3 -3
  64. package/lib/solution/BookingTicket/utils/scan/handleScan.js +6 -6
  65. package/lib/solution/BookingTicket/utils/scan/index.js +3 -1
  66. package/lib/solution/BookingTicket/utils/scan/scanCache.js +10 -9
  67. package/lib/solution/BuyTickets/index.js +15 -15
  68. package/lib/solution/Checkout/index.js +216 -211
  69. package/lib/solution/Checkout/utils/index.js +18 -22
  70. package/lib/solution/RegisterAndLogin/config.js +2 -2
  71. package/lib/solution/RegisterAndLogin/index.js +114 -110
  72. package/lib/solution/RegisterAndLogin/utils.js +9 -9
  73. package/lib/solution/ShopDiscount/index.js +16 -13
  74. package/lib/solution/ShopDiscount/types.d.ts +1 -1
  75. package/lib/solution/ShopDiscount/utils.d.ts +2 -2
  76. package/lib/solution/ShopDiscount/utils.js +1 -2
  77. package/lib/types/index.d.ts +1 -1
  78. package/lib/utils/task.d.ts +2 -2
  79. package/lib/utils/task.js +3 -3
  80. package/lib/utils/watch.d.ts +2 -2
  81. package/lib/utils/watch.js +5 -7
  82. package/package.json +16 -17
@@ -56,22 +56,22 @@ function validatePhone(phone) {
56
56
  function validatePassword(password) {
57
57
  const errors = [];
58
58
  if (password.length < 8) {
59
- errors.push("密码长度至少为8位");
59
+ errors.push("\u5BC6\u7801\u957F\u5EA6\u81F3\u5C11\u4E3A8\u4F4D");
60
60
  }
61
61
  if (password.length > 128) {
62
- errors.push("密码长度不能超过128位");
62
+ errors.push("\u5BC6\u7801\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC7128\u4F4D");
63
63
  }
64
64
  if (!/[a-z]/.test(password)) {
65
- errors.push("密码必须包含至少一个小写字母");
65
+ errors.push("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4E2A\u5C0F\u5199\u5B57\u6BCD");
66
66
  }
67
67
  if (!/[A-Z]/.test(password)) {
68
- errors.push("密码必须包含至少一个大写字母");
68
+ errors.push("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4E2A\u5927\u5199\u5B57\u6BCD");
69
69
  }
70
70
  if (!/\d/.test(password)) {
71
- errors.push("密码必须包含至少一个数字");
71
+ errors.push("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4E2A\u6570\u5B57");
72
72
  }
73
73
  if (!/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) {
74
- errors.push("密码必须包含至少一个特殊字符");
74
+ errors.push("\u5BC6\u7801\u5FC5\u987B\u5305\u542B\u81F3\u5C11\u4E00\u4E2A\u7279\u6B8A\u5B57\u7B26");
75
75
  }
76
76
  return {
77
77
  isValid: errors.length === 0,
@@ -124,7 +124,7 @@ function getOAuthProviderDisplayName(provider) {
124
124
  [import_types.OAuthProvider.FACEBOOK]: "Facebook",
125
125
  [import_types.OAuthProvider.APPLE]: "Apple",
126
126
  [import_types.OAuthProvider.GOOGLE]: "Google",
127
- [import_types.OAuthProvider.WECHAT]: "微信",
127
+ [import_types.OAuthProvider.WECHAT]: "\u5FAE\u4FE1",
128
128
  [import_types.OAuthProvider.GITHUB]: "GitHub"
129
129
  };
130
130
  return displayNames[provider] || provider;
@@ -224,7 +224,7 @@ function safeJsonParse(jsonString, defaultValue) {
224
224
  try {
225
225
  return JSON.parse(jsonString);
226
226
  } catch (error) {
227
- console.warn("JSON 解析失败:", error);
227
+ console.warn("JSON \u89E3\u6790\u5931\u8D25:", error);
228
228
  return defaultValue;
229
229
  }
230
230
  }
@@ -232,7 +232,7 @@ function safeJsonStringify(obj, defaultValue = "{}") {
232
232
  try {
233
233
  return JSON.stringify(obj);
234
234
  } catch (error) {
235
- console.warn("JSON 字符串化失败:", error);
235
+ console.warn("JSON \u5B57\u7B26\u4E32\u5316\u5931\u8D25:", error);
236
236
  return defaultValue;
237
237
  }
238
238
  }
@@ -41,12 +41,16 @@ var import_types = require("../../modules/Rules/types");
41
41
  var import_decimal = __toESM(require("decimal.js"));
42
42
  var import_lodash_es = require("lodash-es");
43
43
  var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
44
+ defaultName = "shopDiscount";
45
+ defaultVersion = "1.0.0";
46
+ isSolution = true;
47
+ request;
48
+ window;
49
+ store;
50
+ options = {};
51
+ hooks;
44
52
  constructor(name, version) {
45
53
  super(name, version);
46
- this.defaultName = "shopDiscount";
47
- this.defaultVersion = "1.0.0";
48
- this.isSolution = true;
49
- this.options = {};
50
54
  this.store = {
51
55
  customer: null,
52
56
  productList: [],
@@ -66,7 +70,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
66
70
  this.options = options;
67
71
  this.store = { ...this.store, ...options.store || {} };
68
72
  this.hooks = (_b = (_a = options.otherParams) == null ? void 0 : _a.rules) == null ? void 0 : _b.hooks;
69
- console.log("[ShopDiscount] 初始化完成");
73
+ console.log("[ShopDiscount] \u521D\u59CB\u5316\u5B8C\u6210");
70
74
  this.initializePlugins();
71
75
  this.registerDependentModules();
72
76
  this.registerEventListeners();
@@ -79,7 +83,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
79
83
  (_b = this.store.rules) == null ? void 0 : _b.destroy();
80
84
  this.core.effects.offByModuleDestroy(this.name);
81
85
  await this.core.effects.emit(`${this.name}:onDestroy`, {});
82
- console.log("[ShopDiscount] 已销毁");
86
+ console.log("[ShopDiscount] \u5DF2\u9500\u6BC1");
83
87
  }
84
88
  async clear() {
85
89
  var _a, _b;
@@ -94,10 +98,10 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
94
98
  this.request = this.core.getPlugin("request");
95
99
  this.window = this.core.getPlugin("window");
96
100
  if (!this.request) {
97
- throw new Error("ShopDiscount需要 request 插件支持");
101
+ throw new Error("ShopDiscount\u9700\u8981 request \u63D2\u4EF6\u652F\u6301");
98
102
  }
99
103
  if (!this.window) {
100
- throw new Error("ShopDiscount需要 window 插件支持");
104
+ throw new Error("ShopDiscount\u9700\u8981 window \u63D2\u4EF6\u652F\u6301");
101
105
  }
102
106
  }
103
107
  registerDependentModules() {
@@ -345,7 +349,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
345
349
  unavailableReason
346
350
  };
347
351
  } catch (error) {
348
- console.error("[ShopDiscount] 扫码出错:", error);
352
+ console.error("[ShopDiscount] \u626B\u7801\u51FA\u9519:", error);
349
353
  return {
350
354
  type: "clientCalc",
351
355
  isAvailable: false,
@@ -429,8 +433,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
429
433
  const isProductFree = (id) => {
430
434
  var _a2;
431
435
  const targetProduct = productList.find((n) => n.id === id);
432
- if (!targetProduct)
433
- return false;
436
+ if (!targetProduct) return false;
434
437
  const product = (_a2 = this.hooks) == null ? void 0 : _a2.getProduct(targetProduct);
435
438
  return Number(product == null ? void 0 : product.total) <= 0 && (Number(product == null ? void 0 : product.origin_total) <= 0 || !(product == null ? void 0 : product.origin_total)) || (0, import_lodash_es.isBoolean)(product == null ? void 0 : product.vouchersApplicable) && !(product == null ? void 0 : product.vouchersApplicable);
436
439
  };
@@ -479,7 +482,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
479
482
  );
480
483
  }
481
484
  } catch (error) {
482
- console.error("[ShopDiscount] 获取客户钱包信息出错:", error);
485
+ console.error("[ShopDiscount] \u83B7\u53D6\u5BA2\u6237\u94B1\u5305\u4FE1\u606F\u51FA\u9519:", error);
483
486
  }
484
487
  }
485
488
  async bestDiscount(cb) {
@@ -535,7 +538,7 @@ var ShopDiscountImpl = class extends import_BaseModule.BaseModule {
535
538
  filteredDiscountList
536
539
  );
537
540
  } catch (error) {
538
- console.error("[ShopDiscount] 加载准备配置出错:", error);
541
+ console.error("[ShopDiscount] \u52A0\u8F7D\u51C6\u5907\u914D\u7F6E\u51FA\u9519:", error);
539
542
  }
540
543
  }
541
544
  };
@@ -11,7 +11,7 @@ export declare enum ShopDiscountHooks {
11
11
  onRulesListChange = "shopDiscount:onRulesListChange",
12
12
  onLoadPrepareCalcResult = "shopDiscount:onLoadPrepareCalcResult"
13
13
  }
14
- export type Customer = {
14
+ export declare type Customer = {
15
15
  id: string | number;
16
16
  name: string;
17
17
  email: string;
@@ -12,13 +12,13 @@ export declare const isAllNormalProduct: (items: any[]) => boolean;
12
12
  * @returns
13
13
  */
14
14
  export declare const getDiscountAmount: (discount: Discount, total: number, price: number) => number;
15
- export declare const getDiscountListAmountTotal: (discount: Discount[]) => any;
15
+ export declare const getDiscountListAmountTotal: (discount: Discount[]) => Discount;
16
16
  /**
17
17
  * 获取折扣金额 计算每个折扣的金额
18
18
  * @param discount
19
19
  * @returns
20
20
  */
21
- export declare const getDiscountListAmount: (discount: Discount[]) => any;
21
+ export declare const getDiscountListAmount: (discount: Discount[]) => Discount;
22
22
  export interface ScheduleItem {
23
23
  id: number;
24
24
  name: string | {
@@ -351,8 +351,7 @@ var calculateOrderLevelDiscountAllocation = (discount, applicableProducts) => {
351
351
  if (singleQuantityProducts.length > 0) {
352
352
  const productsWithEnoughSpace = singleQuantityProducts.filter((product) => {
353
353
  const allocation = result.get(product.productId);
354
- if (!allocation)
355
- return false;
354
+ if (!allocation) return false;
356
355
  const remainingSpace = new import_decimal.default(product.amount).minus(allocation.discountAmount).toNumber();
357
356
  return remainingSpace >= totalDifference;
358
357
  });
@@ -27,7 +27,7 @@ export interface ModuleOptions {
27
27
  initialState?: Record<string, any>;
28
28
  otherParams?: Record<string, any>;
29
29
  }
30
- export type EventHandler = (data?: any) => void;
30
+ export declare type EventHandler = (data?: any) => void;
31
31
  export interface PisellCore {
32
32
  registerPlugin: (plugin: Plugin, options?: PluginOptions) => void;
33
33
  getPlugin: <T extends Plugin>(name: string) => T | null;
@@ -1,5 +1,5 @@
1
- type Action = (...args: any[]) => Promise<any>;
2
- type Task = {
1
+ declare type Action = (...args: any[]) => Promise<any>;
2
+ declare type Task = {
3
3
  uuid: string;
4
4
  type: string;
5
5
  actionParams?: Record<string, any>;
package/lib/utils/task.js CHANGED
@@ -23,10 +23,10 @@ __export(task_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(task_exports);
25
25
  var Tasks = class {
26
+ actions = /* @__PURE__ */ new Map();
27
+ taskQueue = [];
28
+ isRunning = false;
26
29
  constructor(actions) {
27
- this.actions = /* @__PURE__ */ new Map();
28
- this.taskQueue = [];
29
- this.isRunning = false;
30
30
  if (actions) {
31
31
  this.actions = actions;
32
32
  }
@@ -2,8 +2,8 @@
2
2
  * 监听模块
3
3
  *
4
4
  */
5
- export type WatchEventCallback = (...args: any[]) => void;
6
- export type WatchEventItem = {
5
+ export declare type WatchEventCallback = (...args: any[]) => void;
6
+ export declare type WatchEventItem = {
7
7
  key: string;
8
8
  callback: WatchEventCallback;
9
9
  };
@@ -23,12 +23,10 @@ __export(watch_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(watch_exports);
25
25
  var Watch = class {
26
- constructor() {
27
- // 监听列表
28
- this.events = /* @__PURE__ */ new Map();
29
- // 启用列表 - 使用数组保持顺序
30
- this.enableListMap = /* @__PURE__ */ new Map();
31
- }
26
+ // 监听列表
27
+ events = /* @__PURE__ */ new Map();
28
+ // 启用列表 - 使用数组保持顺序
29
+ enableListMap = /* @__PURE__ */ new Map();
32
30
  /**
33
31
  * 订阅事件
34
32
  * @param event 事件名称
@@ -132,7 +130,7 @@ var Watch = class {
132
130
  try {
133
131
  (_a = callbacks.get(lastCallbackKey)) == null ? void 0 : _a(...args);
134
132
  } catch (error) {
135
- console.error(`执行事件"${watchKey}"的回调时出错:`, error);
133
+ console.error(`\u6267\u884C\u4E8B\u4EF6"${watchKey}"\u7684\u56DE\u8C03\u65F6\u51FA\u9519:`, error);
136
134
  }
137
135
  }
138
136
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "2.1.98",
4
+ "version": "2.1.100",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -9,22 +9,6 @@
9
9
  "dist",
10
10
  "lib"
11
11
  ],
12
- "scripts": {
13
- "build": "father build",
14
- "dev": "father dev --watch",
15
- "push": "yalc push --replace",
16
- "test": "vitest",
17
- "lint": "eslint src --ext .ts",
18
- "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
19
- "changeset": "changeset",
20
- "version": "changeset version",
21
- "release": "changeset publish --registry=https://registry.npmjs.com/ && npm run sync && git push",
22
- "example": "npx parcel-bundler examples/index.html",
23
- "docs": "typedoc --out docs src/index.ts",
24
- "sync": "node sync.js",
25
- "prepublishOnly": "npm run build",
26
- "deploy": "npm run build && npm run changeset && npm run version && npm run release"
27
- },
28
12
  "repository": {
29
13
  "type": "git",
30
14
  "url": "git+https://github.com/username/pisell-os.git"
@@ -68,5 +52,20 @@
68
52
  },
69
53
  "publishConfig": {
70
54
  "access": "public"
55
+ },
56
+ "scripts": {
57
+ "build": "father build",
58
+ "dev": "father dev --watch",
59
+ "push": "yalc push --replace",
60
+ "test": "vitest",
61
+ "lint": "eslint src --ext .ts",
62
+ "format": "prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\"",
63
+ "changeset": "changeset",
64
+ "version": "changeset version",
65
+ "release": "changeset publish --registry=https://registry.npmjs.com/ && npm run sync && git push",
66
+ "example": "npx parcel-bundler examples/index.html",
67
+ "docs": "typedoc --out docs src/index.ts",
68
+ "sync": "node sync.js",
69
+ "deploy": "npm run build && npm run changeset && npm run version && npm run release"
71
70
  }
72
71
  }